func (app *app) buildApplierAndCompiler( dirProvider boshdirs.DirectoriesProvider, blobstore boshblob.Blobstore, jobSupervisor boshjobsuper.JobSupervisor, ) (boshapplier.Applier, boshcomp.Compiler) { jobsBc := boshbc.NewFileBundleCollection( dirProvider.DataDir(), dirProvider.BaseDir(), "jobs", app.platform.GetFs(), app.logger, ) packageApplierProvider := boshpa.NewConcretePackageApplierProvider( dirProvider.DataDir(), dirProvider.BaseDir(), dirProvider.JobsDir(), "packages", blobstore, app.platform.GetCompressor(), app.platform.GetFs(), app.logger, ) jobApplier := boshja.NewRenderedJobApplier( jobsBc, jobSupervisor, packageApplierProvider, blobstore, app.platform.GetCompressor(), app.platform.GetFs(), app.logger, ) applier := boshapplier.NewConcreteApplier( jobApplier, packageApplierProvider.Root(), app.platform, jobSupervisor, dirProvider, ) compiler := boshcomp.NewConcreteCompiler( app.platform.GetCompressor(), blobstore, app.platform.GetFs(), app.platform.GetRunner(), dirProvider, packageApplierProvider.Root(), packageApplierProvider.RootBundleCollection(), ) return applier, compiler }