func (app *app) buildApplierAndCompiler( dirProvider boshdirs.Provider, blobstore boshblob.Blobstore, jobSupervisor boshjobsuper.JobSupervisor, ) (boshapplier.Applier, boshcomp.Compiler) { jobsBc := boshbc.NewFileBundleCollection( dirProvider.DataDir(), dirProvider.BaseDir(), "jobs", app.platform.GetFs(), app.logger, ) packageApplierProvider := boshap.NewCompiledPackageApplierProvider( dirProvider.DataDir(), dirProvider.BaseDir(), dirProvider.JobsDir(), "packages", blobstore, app.platform.GetCompressor(), app.platform.GetFs(), app.logger, ) jobApplier := boshaj.NewRenderedJobApplier( jobsBc, jobSupervisor, packageApplierProvider, blobstore, app.platform.GetCompressor(), app.platform.GetFs(), app.logger, ) applier := boshapplier.NewConcreteApplier( jobApplier, packageApplierProvider.Root(), app.platform, jobSupervisor, dirProvider, ) platformRunner := app.platform.GetRunner() fileSystem := app.platform.GetFs() cmdRunner := boshrunner.NewFileLoggingCmdRunner( fileSystem, platformRunner, dirProvider.LogsDir(), 10*1024, // 10 Kb ) compiler := boshcomp.NewConcreteCompiler( app.platform.GetCompressor(), blobstore, fileSystem, cmdRunner, dirProvider, packageApplierProvider.Root(), packageApplierProvider.RootBundleCollection(), ) return applier, compiler }