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/02/23 22:14:08 UTC

svn commit: r915523 - 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: Tue Feb 23 21:14:08 2010
New Revision: 915523

URL: http://svn.apache.org/viewvc?rev=915523&view=rev
Log:
add support for Require-Bundle 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=915523&r1=915522&r2=915523&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 Tue Feb 23 21:14:08 2010
@@ -41,6 +41,7 @@
     private final LinkedHashSet<String> bundleClassPath = new LinkedHashSet<String>();
     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 String bundleActivator;
     private final ClassLoadingRules classLoadingRules;
     private boolean suppressDefaultEnvironment;
@@ -61,6 +62,7 @@
         bundleClassPath.addAll(environment.bundleClassPath);
         imports.addAll(environment.imports);
         exports.addAll(environment.exports);
+        requireBundles.addAll(environment.requireBundles);
         bundleActivator = environment.bundleActivator;
         suppressDefaultEnvironment = environment.isSuppressDefaultEnvironment();
         classLoadingRules = environment.classLoadingRules;
@@ -158,6 +160,18 @@
         this.bundleActivator = bundleActivator;
     }
 
+    public void addRequireBundles(Collection<String> symbolicNames) {
+        this.requireBundles.addAll(symbolicNames);
+    }
+
+    public void addRequireBundle(String symbolicName) {
+        this.requireBundles.add(symbolicName);
+    }
+
+    public List<String> getRequireBundles() {
+        return Collections.unmodifiableList(new ArrayList<String>(requireBundles));
+    }
+        
     public Manifest getManifest() throws ManifestException {
         Manifest manifest = new Manifest();
         manifest.addConfiguredAttribute(new Manifest.Attribute(Constants.BUNDLE_MANIFESTVERSION, "2"));
@@ -185,6 +199,11 @@
             Manifest.Attribute bundleClassPath = new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.BUNDLE_CLASSPATH, this.bundleClassPath);
             manifest.addConfiguredAttribute(bundleClassPath);
         }
+        
+        if (!requireBundles.isEmpty()) {
+            Manifest.Attribute requireBundle = new Manifest.Attribute(Manifest.Attribute.Separator.COMMA, Constants.REQUIRE_BUNDLE, this.requireBundles);
+            manifest.addConfiguredAttribute(requireBundle);
+        }
         return manifest;
     }
 

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=915523&r1=915522&r2=915523&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 Tue Feb 23 21:14:08 2010
@@ -75,8 +75,10 @@
             for (String exportPackage: environmentType.getExportPackageArray()) {
                 environment.addExportPackage(trim(exportPackage));
             }
-            
-            
+            for (String requireBundle : environmentType.getRequireBundleArray()) {
+                environment.addRequireBundle(requireBundle);
+            }
+                        
             environment.setSuppressDefaultEnvironment(environmentType.isSetSuppressDefaultEnvironment());
             
             ClassLoadingRulesUtil.configureRules(environment.getClassLoadingRules(), environmentType);
@@ -95,6 +97,7 @@
             environment.addToBundleClassPath(additionalEnvironment.getBundleClassPath());
             environment.addImportPackages(additionalEnvironment.getImportPackages());
             environment.addExportPackages(additionalEnvironment.getExportPackages());
+            environment.addRequireBundles(additionalEnvironment.getRequireBundles());
             if (environment.getBundleActivator() == null && additionalEnvironment.getBundleActivator() != null) {
                 environment.setBundleActivator(additionalEnvironment.getBundleActivator());
             }
@@ -139,6 +142,9 @@
         for (String exportPackage: environment.getExportPackages()) {
             environmentType.addExportPackage(exportPackage);
         }
+        for (String requireBundle : environment.getRequireBundles()) {
+            environmentType.addRequireBundle(requireBundle);
+        }
         
         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=915523&r1=915522&r2=915523&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 Tue Feb 23 21:14:08 2010
@@ -164,6 +164,7 @@
             <xs:element name="bundle-classPath" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
             <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="hidden-classes" type="sys:classFilterType"
                 minOccurs="0">