public static void configureRules(ClassLoadingRules classLoadingRules, EnvironmentType environmentType) { classLoadingRules.setInverseClassLoading(environmentType.isSetInverseClassloading()); if (null != environmentType.getHiddenClasses()) { ClassLoadingRule hiddenRule = classLoadingRules.getHiddenRule(); hiddenRule.setClassPrefixes(toFilters(environmentType.getHiddenClasses())); } if (null != environmentType.getNonOverridableClasses()) { ClassLoadingRule nonOverrideableRule = classLoadingRules.getNonOverrideableRule(); nonOverrideableRule.setClassPrefixes(toFilters(environmentType.getNonOverridableClasses())); } if (null != environmentType.getPrivateClasses()) { ClassLoadingRule privateRule = classLoadingRules.getPrivateRule(); privateRule.setClassPrefixes(toFilters(environmentType.getPrivateClasses())); } }
.isInverseClassLoading()); osgiBuildContext.setClientModule(clientModule); if (clientModule) {
if (classLoadingRules.isInverseClassLoading()) { environmentType.addNewInverseClassloading(); ClassLoadingRule classLoadingRule = classLoadingRules.getHiddenRule(); environmentType.setHiddenClasses(toFilterType(classLoadingRule.getClassPrefixes())); classLoadingRule = classLoadingRules.getNonOverrideableRule(); environmentType.setNonOverridableClasses(toFilterType(classLoadingRule.getClassPrefixes())); classLoadingRule = classLoadingRules.getPrivateRule(); environmentType.setPrivateClasses(toFilterType(classLoadingRule.getClassPrefixes()));
classLoadingRules.setInverseClassLoading(environmentType.isInverseClassloading()); ClassLoadingRule hiddenRule = classLoadingRules.getHiddenRule(); List<String> filter = environmentType.getHiddenClasses().getFilter(); hiddenRule.setClassPrefixes(new HashSet<String>(filter)); ClassLoadingRule nonOverrideableRule = classLoadingRules.getNonOverrideableRule(); List<String> filter = environmentType.getNonOverridableClasses().getFilter(); nonOverrideableRule.setClassPrefixes(new HashSet<String>(filter));
protected void processClassloadingRules(Environment environment) { //Process Hidden Class for (String hiddenClassPrefix : environment.getClassLoadingRules().getHiddenRule().getClassPrefixes()) { String inversedImportPackage = hiddenClassPrefix.endsWith("*") ? hiddenClassPrefix : hiddenClassPrefix + "*"; environment.addImportPackage("!" + inversedImportPackage); } //Non-Overridable-Classes /*for (String hiddenClassPrefix : environment.getClassLoadingRules().getHiddenRule().getClassPrefixes()) { environment.getImportPackages().add(hiddenClassPrefix); }*/ }
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); } }