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">