You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2010/11/13 08:08:18 UTC
svn commit: r1034688 - in /geronimo/server/trunk/framework/modules:
geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/
geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/
geronimo-service-builder/src/main/xsd/
Author: gawor
Date: Sat Nov 13 07:08:18 2010
New Revision: 1034688
URL: http://svn.apache.org/viewvc?rev=1034688&view=rev
Log:
add support for DynamicImport-Package header in configuration environment
Modified:
geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Environment.java
geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/EnvironmentBuilder.java
geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/xsd/geronimo-module-1.2.xsd
Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Environment.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Environment.java?rev=1034688&r1=1034687&r2=1034688&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Environment.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Environment.java Sat Nov 13 07:08:18 2010
@@ -42,6 +42,7 @@ public class Environment implements Seri
private final LinkedHashSet<String> imports = new LinkedHashSet<String>();
private final LinkedHashSet<String> exports = new LinkedHashSet<String>();
private final LinkedHashSet<String> requireBundles = new LinkedHashSet<String>();
+ private final LinkedHashSet<String> dynamicImports = new LinkedHashSet<String>();
private String bundleActivator;
private final ClassLoadingRules classLoadingRules;
private boolean suppressDefaultEnvironment;
@@ -172,6 +173,18 @@ public class Environment implements Seri
return Collections.unmodifiableList(new ArrayList<String>(requireBundles));
}
+ public void addDynamicImportPackages(Collection<String> imports) {
+ this.dynamicImports.addAll(imports);
+ }
+
+ public void addDynamicImportPackage(String imports) {
+ this.dynamicImports.add(imports);
+ }
+
+ public List<String> getDynamicImportPackages() {
+ return Collections.unmodifiableList(new ArrayList<String>(dynamicImports));
+ }
+
public Manifest getManifest() throws ManifestException {
Manifest manifest = new Manifest();
manifest.addConfiguredAttribute(new Manifest.Attribute(Constants.BUNDLE_MANIFESTVERSION, "2"));
@@ -190,10 +203,16 @@ public class Environment implements Seri
if (!imports.isEmpty()) {
manifest.addConfiguredAttribute(new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.IMPORT_PACKAGE, imports));
}
+
if (!exports.isEmpty()) {
manifest.addConfiguredAttribute(new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.EXPORT_PACKAGE, exports));
}
- manifest.addConfiguredAttribute(new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.DYNAMICIMPORT_PACKAGE, "*"));
+
+ if (dynamicImports.isEmpty()) {
+ manifest.addConfiguredAttribute(new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.DYNAMICIMPORT_PACKAGE, "*"));
+ } else {
+ manifest.addConfiguredAttribute(new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.DYNAMICIMPORT_PACKAGE, dynamicImports));
+ }
if (!bundleClassPath.isEmpty()) {
Manifest.Attribute bundleClassPath = new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.BUNDLE_CLASSPATH, this.bundleClassPath);
Modified: geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/EnvironmentBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/EnvironmentBuilder.java?rev=1034688&r1=1034687&r2=1034688&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/EnvironmentBuilder.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/EnvironmentBuilder.java Sat Nov 13 07:08:18 2010
@@ -78,6 +78,9 @@ public class EnvironmentBuilder extends
for (String requireBundle : environmentType.getRequireBundleArray()) {
environment.addRequireBundle(requireBundle);
}
+ for (String dynamicImportPackage: environmentType.getDynamicImportPackageArray()) {
+ environment.addDynamicImportPackage(trim(dynamicImportPackage));
+ }
environment.setSuppressDefaultEnvironment(environmentType.isSetSuppressDefaultEnvironment());
@@ -98,6 +101,7 @@ public class EnvironmentBuilder extends
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());
}
@@ -145,6 +149,9 @@ public class EnvironmentBuilder extends
for (String requireBundle : environment.getRequireBundles()) {
environmentType.addRequireBundle(requireBundle);
}
+ for (String dynamicImportPackage: environment.getDynamicImportPackages()) {
+ environmentType.addDynamicImportPackage(dynamicImportPackage);
+ }
ClassLoadingRules classLoadingRules = environment.getClassLoadingRules();
if (classLoadingRules.isInverseClassLoading()) {
Modified: geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/xsd/geronimo-module-1.2.xsd
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/xsd/geronimo-module-1.2.xsd?rev=1034688&r1=1034687&r2=1034688&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/xsd/geronimo-module-1.2.xsd (original)
+++ geronimo/server/trunk/framework/modules/geronimo-service-builder/src/main/xsd/geronimo-module-1.2.xsd Sat Nov 13 07:08:18 2010
@@ -165,6 +165,7 @@
<xs:element name="import-package" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="export-package" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="require-bundle" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="dynamic-import-package" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="hidden-classes" type="sys:classFilterType"
minOccurs="0">