Skip to content

Commit

Permalink
Creating a common DefaultDependencies struct
Browse files Browse the repository at this point in the history
  • Loading branch information
ravirajj committed Oct 8, 2017
1 parent df35ed4 commit 77a070d
Show file tree
Hide file tree
Showing 17 changed files with 76 additions and 187 deletions.
34 changes: 14 additions & 20 deletions codegen/template_bundle/template_files.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 2 additions & 9 deletions codegen/templates/dependency_struct.tmpl
Expand Up @@ -8,24 +8,17 @@ import (
{{end -}}
{{end}}

"github.com/uber-go/tally"
"go.uber.org/zap"
zanzibar "github.com/uber/zanzibar/runtime"
)

// Dependencies contains dependencies for the {{$instance.InstanceName}} {{$instance.ClassName}} module
type Dependencies struct {
Default *DefaultDependencies
Default *zanzibar.DefaultDependencies
{{range $classType, $moduleInstances := $instance.ResolvedDependencies -}}
{{$classType | pascal}} *{{$classType | pascal}}Dependencies
{{end -}}
}

// DefaultDependencies contains default dependencies, such as logger and scope.
type DefaultDependencies struct {
Logger *zap.Logger
Scope tally.Scope
}

{{range $classType, $moduleInstances := $instance.ResolvedDependencies -}}
// {{$classType | pascal}}Dependencies contains {{$classType}} dependencies
type {{$classType | pascal}}Dependencies struct {
Expand Down
19 changes: 10 additions & 9 deletions codegen/templates/module_initializer.tmpl
Expand Up @@ -10,7 +10,7 @@ import (
{{end -}}
{{end}}

"github.com/uber/zanzibar/runtime"
zanzibar "github.com/uber/zanzibar/runtime"
)

// DependenciesTree contains all deps for this service.
Expand All @@ -37,17 +37,21 @@ func InitializeDependencies(
) (*DependenciesTree, *Dependencies) {
tree := &DependenciesTree{}

initializedDefaultDependencies := &zanzibar.DefaultDependencies{
Logger: gateway.Logger,
Scope: gateway.AllHostScope,
Config: gateway.Config,
Channel: gateway.Channel,
}

{{range $idx, $className := $instance.DependencyOrder}}
{{- $moduleInstances := (index $instance.RecursiveDependencies $className)}}
initialized{{$className | pascal}}Dependencies := &{{$className | title}}DependenciesNodes{}
tree.{{$className | title}} = initialized{{$className | pascal}}Dependencies

{{- range $idx, $dependency := $moduleInstances}}
initialized{{$className | pascal}}Dependencies.{{$dependency.PackageInfo.QualifiedInstanceName}} = {{$dependency.PackageInfo.ImportPackageAlias}}.{{$dependency.PackageInfo.ExportName}}(gateway, &{{$dependency.PackageInfo.ModulePackageAlias}}.Dependencies{
Default: &{{$dependency.PackageInfo.ModulePackageAlias}}.DefaultDependencies{
Logger: gateway.Logger,
Scope: gateway.AllHostScope,
},
Default: initializedDefaultDependencies,
{{- range $className, $moduleInstances := $dependency.ResolvedDependencies}}
{{$className | pascal}}: &{{$dependency.PackageInfo.ModulePackageAlias}}.{{$className | pascal}}Dependencies{
{{- range $idy, $subDependency := $moduleInstances}}
Expand All @@ -60,10 +64,7 @@ func InitializeDependencies(
{{end}}

return tree, &Dependencies{
Default: &DefaultDependencies{
Logger: gateway.Logger,
Scope: gateway.AllHostScope,
},
Default: initializedDefaultDependencies,
{{- range $className, $moduleInstances := $instance.ResolvedDependencies}}
{{$className | pascal}}: &{{$className | pascal}}Dependencies{
{{- range $idy, $subDependency := $moduleInstances}}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 77a070d

Please sign in to comment.