private void createTempManifest() throws DeploymentException, IOException { Environment env = new Environment(environment); Artifact id = env.getConfigId(); env.setConfigId(new Artifact(id.getGroupId(), id.getArtifactId() + "-DEPLOYMENT", id.getVersion(), id.getType())); env.addToBundleClassPath(bundleClassPath); env.setBundleActivator(null); env.addDynamicImportPackage("*"); OSGiMetaDataBuilder osgiMetaDataBuilder = new OSGiMetaDataBuilder(bundleContext, new DummyExportPackagesSelector()); try { osgiMetaDataBuilder.build(env); } catch (IllegalConfigurationException e) { throw new DeploymentException(e); } Manifest manifest; try { manifest = env.getManifest(); } catch (ManifestException e) { throw new DeploymentException(e); } File metaInf = new File(getConfigurationDir(), "META-INF"); metaInf.mkdirs(); FileWriter fw = new FileWriter(new File(metaInf, "MANIFEST.MF")); PrintWriter pw = new PrintWriter(fw); try { manifest.write(pw); } finally { pw.close(); fw.close(); } }
environment.setBundleActivator(ConfigurationActivator.class.getName()); environment.addImportPackage(getImportPackageName(ConfigurationActivator.class.getName()));
public static void mergeEnvironments(Environment environment, Environment additionalEnvironment) { if (additionalEnvironment != null) { //TODO merge configIds?? if (environment.getConfigId() == null) { environment.setConfigId(additionalEnvironment.getConfigId()); } environment.addDependencies(additionalEnvironment.getDependencies()); environment.addToBundleClassPath(additionalEnvironment.getBundleClassPath()); environment.addImportPackages(additionalEnvironment.getImportPackages()); environment.addExportPackages(additionalEnvironment.getExportPackages()); environment.addRequireBundles(additionalEnvironment.getRequireBundles()); environment.addDynamicImportPackages(additionalEnvironment.getDynamicImportPackages()); if (environment.getBundleActivator() == null && additionalEnvironment.getBundleActivator() != null) { environment.setBundleActivator(additionalEnvironment.getBundleActivator()); } environment.setSuppressDefaultEnvironment(environment.isSuppressDefaultEnvironment() || additionalEnvironment.isSuppressDefaultEnvironment()); ClassLoadingRules classLoadingRules = environment.getClassLoadingRules(); ClassLoadingRules additionalClassLoadingRules = additionalEnvironment.getClassLoadingRules(); classLoadingRules.merge(additionalClassLoadingRules); } }
environment.setBundleActivator(environmentType.getBundleActivator()); environment.addToBundleClassPath(environmentType.getBundleClassPath()); environment.addRequireBundles(environmentType.getRequireBundle());
environment.setBundleActivator(trim(environmentType.getBundleActivator()));