@Override public void execute(@NonNull GenerateAtomMetadata generateAtomMetadata) { AtomVariantOutputData variantOutputData = (AtomVariantOutputData) scope .getVariantOutputData(); // only care about first level direct atoms? DependencyContainer dependencyContainer = scope.getVariantScope().getVariantConfiguration().getPackageDependencies(); ImmutableSet.Builder<File> atomMetadataBuilder = ImmutableSet.builder(); for (AtomDependency atom : dependencyContainer.getDirectAtomDependencies()) { atomMetadataBuilder.add(atom.getAtomMetadataFile()); } generateAtomMetadata.setAtomMetadataDependency(atomMetadataBuilder.build()); generateAtomMetadata.setAtomName(scope.getGlobalScope().getProject().getName()); String versionName = variantOutputData.getVersionName(); checkState(!Strings.isNullOrEmpty(versionName), "versionName is not specified."); generateAtomMetadata.setAtomVersion(versionName); generateAtomMetadata.setAtomMetadataFolder(FileUtils.join( scope.getVariantScope().getBaseBundleDir(), FD_INSTANTAPP_METADATA)); generateAtomMetadata.setVariantName(variantOutputData.getFullName()); variantOutputData.generateAtomMetadataTask = generateAtomMetadata; }