You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2010/02/17 02:30:14 UTC

svn commit: r910793 [1/2] - in /geronimo/server/trunk: framework/buildsupport/car-maven-plugin/ framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ framework/configs/ framework/configs/client-system/src/main/hist...

Author: djencks
Date: Wed Feb 17 01:30:12 2010
New Revision: 910793

URL: http://svn.apache.org/viewvc?rev=910793&view=rev
Log:
GERONIMO-4971 include obr repository.xml in every plugin, and install it into an obr instance when the plugin is installed.  Also update the aries plugin and build it.

Added:
    geronimo/server/trunk/framework/modules/geronimo-obr/
    geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Resource.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/xsd/
    geronimo/server/trunk/framework/modules/geronimo-obr/src/main/xsd/SchemaObr.xsd   (with props)
Modified:
    geronimo/server/trunk/framework/buildsupport/car-maven-plugin/pom.xml
    geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java
    geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java
    geronimo/server/trunk/framework/configs/client-system/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/geronimo-gbean-deployer-bootstrap/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/geronimo-gbean-deployer/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/gshell-geronimo/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/j2ee-system/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/jsr88-cli/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/karaf-framework/pom.xml
    geronimo/server/trunk/framework/configs/online-deployer/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/configs/pom.xml
    geronimo/server/trunk/framework/configs/shutdown/src/main/history/dependencies.xml
    geronimo/server/trunk/framework/modules/geronimo-system/pom.xml
    geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java
    geronimo/server/trunk/framework/modules/pom.xml
    geronimo/server/trunk/plugins/aries/aries-deployer/pom.xml
    geronimo/server/trunk/plugins/aries/aries-deployer/src/main/history/dependencies.xml
    geronimo/server/trunk/plugins/aries/geronimo-aries-builder/src/main/java/org/apache/geronimo/aries/builder/AriesAppConfigBuilder.java
    geronimo/server/trunk/plugins/axis2/axis2/src/main/history/dependencies.xml
    geronimo/server/trunk/plugins/connector-1_6/connector-deployer-1_6/src/main/history/dependencies.xml
    geronimo/server/trunk/plugins/j2ee/j2ee-server/pom.xml
    geronimo/server/trunk/plugins/openjpa2/openjpa2/src/main/history/dependencies.xml
    geronimo/server/trunk/plugins/pom.xml
    geronimo/server/trunk/plugins/wab/web-jetty-server/pom.xml

Modified: geronimo/server/trunk/framework/buildsupport/car-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/buildsupport/car-maven-plugin/pom.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/buildsupport/car-maven-plugin/pom.xml (original)
+++ geronimo/server/trunk/framework/buildsupport/car-maven-plugin/pom.xml Wed Feb 17 01:30:12 2010
@@ -87,6 +87,12 @@
             <artifactId>geronimo-system</artifactId>
             <version>${version}</version>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.geronimo.framework</groupId>
+            <artifactId>geronimo-obr</artifactId>
+            <version>${version}</version>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.geronimo.framework</groupId>

Modified: geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java (original)
+++ geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java Wed Feb 17 01:30:12 2010
@@ -25,6 +25,7 @@
 import java.io.IOException;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
@@ -105,7 +106,7 @@
     protected File basedir;
 
     protected Set<Artifact> dependencyArtifacts;
-    protected Map<Artifact, Set<Artifact>> localDependencies;
+    protected Set<Artifact> localDependencies;
 
 
     /**
@@ -333,7 +334,7 @@
 
         Scanner scanner = new Scanner();
         scanner.scan(rootNode, useTransitiveDependencies);
-        localDependencies = scanner.localDependencies;
+        localDependencies = scanner.localDependencies.keySet();
         treeListing = scanner.getLog();
     }
 
@@ -371,6 +372,10 @@
 
         if (useMavenDependencies == null || !useMavenDependencies.isValue()) {
             dependencies.addAll(dependencyTypes);
+            localDependencies = new HashSet<Artifact>();
+            for (DependencyType dependency: dependencies) {
+                localDependencies.add(geronimoToMavenArtifact(dependency.toArtifact()));
+            }
         } else {
             Map<String, DependencyType> explicitDependencyMap = new HashMap<String, DependencyType>();
             for (DependencyType dependency : dependencyTypes) {
@@ -379,25 +384,15 @@
 
 
             getDependencies(project, useMavenDependencies.isUseTransitiveDependencies());
-            for (Map.Entry<Artifact, Set<Artifact>> entry : localDependencies.entrySet()) {
-                dependencies.add(toDependencyType(entry.getKey(), explicitDependencyMap, localDependencies, useMavenDependencies.isIncludeVersion(), includeImport));
-//                Artifact artifact = entry.getKey();
-//                DependencyType explicitDependency = explicitDependencyMap.get(getKey(artifact));
-//                DependencyType dependency = toDependencyType(artifact, useMavenDependencies.isIncludeVersion(), explicitDependency, includeImport);
-//                for (Artifact parent : entry.getValue()) {
-//                    dependency.getDependency().add(toDependencyType(parent, true, null, false));
-//                }
-//                dependencies.add(dependency);
-//            for (Artifact artifact : localDependencies) {
-//                Dependency explicitDependency = explicitDependencyMap.get(getKey(artifact));
-//                dependencies.add(toDependency(artifact, useMavenDependencies.isIncludeVersion(), explicitDependency, includeImport));
+            for (Artifact entry : localDependencies) {
+                dependencies.add(toDependencyType(entry, explicitDependencyMap, useMavenDependencies.isIncludeVersion(), includeImport));
             }
         }
 
         return dependencies;
     }
 
-    DependencyType toDependencyType(Artifact artifact, Map<String, DependencyType> explicitDependencyMap, Map<Artifact, Set<Artifact>> localDependencies, boolean includeVersion, boolean includeImport) {
+    DependencyType toDependencyType(Artifact artifact, Map<String, DependencyType> explicitDependencyMap, boolean includeVersion, boolean includeImport) {
         DependencyType explicitDependency = explicitDependencyMap.get(getKey(artifact));
         DependencyType dependency = toDependencyType(artifact, includeVersion, explicitDependency, includeImport);
         return dependency;

Modified: geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java (original)
+++ geronimo/server/trunk/framework/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java Wed Feb 17 01:30:12 2010
@@ -24,12 +24,21 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.StringReader;
+import java.net.URI;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.LinkedHashSet;
+import java.util.Set;
+
+import javax.xml.bind.JAXBException;
 
 import org.apache.geronimo.kernel.config.InvalidConfigException;
 import org.apache.geronimo.kernel.config.NoSuchConfigException;
+import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.kernel.repository.Maven2Repository;
+import org.apache.geronimo.kernel.repository.Repository;
+import org.apache.geronimo.obr.GeronimoOBRGBean;
 import org.apache.geronimo.system.plugin.model.PluginXmlUtil;
 import org.apache.geronimo.system.plugin.model.ArtifactType;
 import org.apache.geronimo.system.plugin.model.LicenseType;
@@ -83,6 +92,14 @@
     protected String pluginMetadataFileName = null;
 
     /**
+     * Name of generated obr repository.xml file.
+     *
+     * @parameter default-value="OSGI-INF/obr/repository.xml"
+     * @required
+     */
+    protected String obrFileName;
+
+    /**
      * Full path of generated plugin metadata file.
      *
      * @ parameter expression="${project.build.directory}/resources/META-INF/geronimo-plugin.xml"
@@ -247,6 +264,20 @@
         } catch (Exception e) {
             throw new MojoExecutionException("Could not create plugin metadata", e);
         }
+
+        try {
+//generate obr repository.xml
+            File obr = new File(targetDir.toURI().resolve(obrFileName));
+            obr.getParentFile().mkdirs();
+            Set<Artifact> artifacts = new HashSet<Artifact>();
+            for (org.apache.maven.artifact.Artifact artifact: localDependencies) {
+                artifacts.add(mavenToGeronimoArtifact(artifact));
+            }
+            Repository repo = new Maven2Repository(new File(getArtifactRepository().getBasedir()));
+            GeronimoOBRGBean.generateOBR(project.getName(), artifacts, repo, obr);
+        } catch (Exception e) {
+            throw new MojoExecutionException("Could not construct obr repository.xml", e);
+        }
     }
 
     private void addDependencies(PluginArtifactType instance) throws InvalidConfigException, IOException, NoSuchConfigException, InvalidDependencyVersionException, ArtifactResolutionException, ProjectBuildingException, MojoExecutionException {

Modified: geronimo/server/trunk/framework/configs/client-system/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/client-system/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/client-system/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/client-system/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -18,6 +18,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.apache.felix.configadmin</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/geronimo-gbean-deployer-bootstrap/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/geronimo-gbean-deployer-bootstrap/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/geronimo-gbean-deployer-bootstrap/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/geronimo-gbean-deployer-bootstrap/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<plugin-artifact xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3" xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2">
+<plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3">
     <module-id>
         <groupId>org.apache.geronimo.framework</groupId>
         <artifactId>geronimo-gbean-deployer-bootstrap</artifactId>
@@ -13,6 +13,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.osgi.core</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/geronimo-gbean-deployer/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/geronimo-gbean-deployer/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/geronimo-gbean-deployer/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/geronimo-gbean-deployer/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<plugin-artifact xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3" xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2">
+<plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3">
     <module-id>
         <groupId>org.apache.geronimo.framework</groupId>
         <artifactId>geronimo-gbean-deployer</artifactId>
@@ -8,6 +8,11 @@
     </module-id>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.osgi.core</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/gshell-geronimo/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/gshell-geronimo/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/gshell-geronimo/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/gshell-geronimo/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<plugin-artifact xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3" xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2">
+<plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3">
     <module-id>
         <groupId>org.apache.geronimo.framework</groupId>
         <artifactId>gshell-geronimo</artifactId>
@@ -28,6 +28,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.osgi.core</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/j2ee-system/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/j2ee-system/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/j2ee-system/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/j2ee-system/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -18,6 +18,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.apache.felix.configadmin</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/jsr88-cli/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/jsr88-cli/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/jsr88-cli/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/jsr88-cli/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<plugin-artifact xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3" xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2">
+<plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3">
     <module-id>
         <groupId>org.apache.geronimo.framework</groupId>
         <artifactId>jsr88-cli</artifactId>
@@ -18,6 +18,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.osgi.core</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -13,6 +13,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.osgi.core</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/karaf-framework/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/karaf-framework/pom.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/karaf-framework/pom.xml (original)
+++ geronimo/server/trunk/framework/configs/karaf-framework/pom.xml Wed Feb 17 01:30:12 2010
@@ -117,8 +117,8 @@
             </dependency>
 
             <dependency>
-                <groupId>org.apache.geronimo.bundles</groupId>
-                <artifactId>karaf-client</artifactId>
+                <groupId>org.apache.felix.karaf</groupId>
+                <artifactId>org.apache.felix.karaf.client</artifactId>
                 <version>${felix.karaf.version}</version>
                 <exclusions>
                     <exclusion>
@@ -257,8 +257,8 @@
             <artifactId>org.apache.felix.karaf.main</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.bundles</groupId>
-            <artifactId>karaf-client</artifactId>                                  
+            <groupId>org.apache.felix.karaf</groupId>
+            <artifactId>org.apache.felix.karaf.client</artifactId>                                  
         </dependency>
         <!--<dependency>-->
             <!--<groupId>org.apache.felix.karaf.deployer</groupId>-->
@@ -585,8 +585,8 @@
                                     <destFileName>karaf.jar</destFileName>
                                 </artifactItem>
                                 <artifactItem>
-                                    <groupId>org.apache.geronimo.bundles</groupId>
-                                    <artifactId>karaf-client</artifactId>
+                                    <groupId>org.apache.felix.karaf</groupId>
+                                    <artifactId>org.apache.felix.karaf.client</artifactId>
                                     <outputDirectory>target/dependencies/lib</outputDirectory>
                                     <destFileName>karaf-client.jar</destFileName>
                                 </artifactItem>

Modified: geronimo/server/trunk/framework/configs/online-deployer/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/online-deployer/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/online-deployer/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/online-deployer/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -18,6 +18,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.osgi.core</artifactId>
         <type>jar</type>
     </dependency>

Modified: geronimo/server/trunk/framework/configs/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/pom.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/pom.xml (original)
+++ geronimo/server/trunk/framework/configs/pom.xml Wed Feb 17 01:30:12 2010
@@ -54,7 +54,7 @@
         <module>gshell-geronimo</module>
         <module>jmx-security</module>
         <!--<module>geronimo-boilerplate</module>-->
-        <module>karaf-framework</module>
+        <module>karaf-framework-aries-blueprint</module>
     </modules>
     
     <build>

Modified: geronimo/server/trunk/framework/configs/shutdown/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/shutdown/src/main/history/dependencies.xml?rev=910793&r1=910792&r2=910793&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/shutdown/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/framework/configs/shutdown/src/main/history/dependencies.xml Wed Feb 17 01:30:12 2010
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<plugin-artifact xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3" xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2">
+<plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3">
     <module-id>
         <groupId>org.apache.geronimo.framework</groupId>
         <artifactId>shutdown</artifactId>
@@ -18,6 +18,11 @@
     </dependency>
     <dependency>
         <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.bundlerepository</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
         <artifactId>org.osgi.core</artifactId>
         <type>jar</type>
     </dependency>

Added: geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml Wed Feb 17 01:30:12 2010
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+    
+       http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.geronimo.framework</groupId>
+        <artifactId>modules</artifactId>
+        <version>3.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>geronimo-obr</artifactId>
+    <packaging>bundle</packaging>
+    <name>Geronimo Framework, Modules :: OBR</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.geronimo.framework</groupId>
+            <artifactId>geronimo-kernel</artifactId>
+            <version>${version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.geronimo.framework</groupId>
+            <artifactId>geronimo-system</artifactId>
+            <version>${version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.bundlerepository</artifactId>
+            <version>1.5.0-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>org.osgi.core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>org.osgi.compendium</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>org.apache.felix.shell</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.osgi</groupId>
+                    <artifactId>org.osgi.core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xmlpull</groupId>
+                    <artifactId>xmlpull</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>net.sf.kxml</groupId>
+                    <artifactId>kxml2</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Export-Package>org.apache.geronimo.obr*</Export-Package>
+                        <Bundle-Activator>org.apache.geronimo.obr.Activator</Bundle-Activator>
+                    </instructions>
+                </configuration>
+            </plugin>
+<!--
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                           <goal>xjc</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <packageName>org.apache.geronimo.obr.model</packageName>
+                    <extension>true</extension>
+                </configuration>
+            </plugin>
+-->
+        </plugins>
+    </build>
+
+</project>
+

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,135 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.geronimo.obr;
+
+import java.io.File;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.geronimo.kernel.osgi.BundleDescription;
+import org.apache.geronimo.obr.model.Resource;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.obr.Repository;
+import org.osgi.service.obr.RepositoryAdmin;
+import org.osgi.service.obr.Resolver;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+
+public class Activator implements BundleActivator {
+
+    public void start(final BundleContext context) throws Exception {
+        ServiceTracker tracker = new ServiceTracker(context, RepositoryAdmin.class.getName(), 
+                new ServiceTrackerCustomizer() {
+
+                    public Object addingService(ServiceReference reference) {
+                        RepositoryAdmin repositoryAdmin = (RepositoryAdmin) context.getService(reference);
+                        
+//                        System.out.println("GOT REPO");
+//                        File f = new File("/home/gawor/.m2/repository/repository.xml");
+//                        try {
+//                            repositoryAdmin.addRepository(f.toURI().toURL());
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                        }
+                        
+                        for (Repository repo : repositoryAdmin.listRepositories()) {
+                            System.out.println(repo.getName() + " " + repo.getURL());
+                        }
+                        
+                        org.apache.geronimo.obr.model.Repository r = new org.apache.geronimo.obr.model.Repository();
+                        r.setName("foo");
+                        
+                        for (Bundle b : context.getBundles()) {
+                            BundleDescription desc = new BundleDescription(b.getHeaders());
+                            ResourceBuilder builder = new ResourceBuilder(desc);
+                                                        
+                            Resource resource = builder.createResource();
+                            if (resource != null) {
+                                r.getResource().add(resource);
+                            }
+                            
+                            /*
+                            List<BundleDescription.Package> imports = desc.getImportPackage();
+                            for (BundleDescription.Package importPackage : imports) {
+                                String filter = "(symbolicname=" + desc.getSymbolicName() + ")";
+                                Resource[] resources = repositoryAdmin.discoverResources(filter);
+                                if (resources != null && resources.length > 0) {
+                                    System.out.println("Results found for: " + filter);
+                                    for (Resource r : resources) {
+                                        //System.out.println(r.getId() + " " + r.getSymbolicName() + " " + r.getURL());
+                                        Resolver resolver = repositoryAdmin.resolver();
+                                        resolver.add(r);
+                                        if (resolver.resolve()) {
+                                            System.out.println("Resolved");
+                                        } else {
+                                            System.out.println("Unresolved: " + resolver.getReason(r));
+                                        }
+                                    }
+                                } else {
+                                    System.out.println("Results not found for: " + filter);
+                                }
+                            }
+                            */
+                        }
+                        
+//                        try {
+//                            JAXBContext context = JAXBContext.newInstance(org.apache.geronimo.obr.model.Repository.class);
+//                            Marshaller marshaller = context.createMarshaller();
+//                            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+//                            marshaller.marshal(r, new File("/home/gawor/repo.xml"));
+//
+//
+//                            Unmarshaller unmarshaller = context.createUnmarshaller();
+//                            org.apache.geronimo.obr.model.Repository rr = (org.apache.geronimo.obr.model.Repository) unmarshaller.unmarshal(f);
+//                            for (Resource rrr : rr.getResource()) {
+//                                System.out.println(rrr.getId() + " " + rrr.getPresentationname() + " " + rrr.getSymbolicname() + " " + rrr.getDescription());
+//                            }
+//
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                        }
+                        return reference;
+                    }
+
+                    public void modifiedService(ServiceReference arg0, Object arg1) {
+                    }
+
+                    public void removedService(ServiceReference arg0, Object arg1) {
+                    }
+            
+        });
+        
+        tracker.open();
+                       
+    }
+
+    private <T> T getService(BundleContext context, Class<T> name) {
+        ServiceReference ref = context.getServiceReference(name.getName());
+        return (ref == null) ? null : (T) context.getService(ref);
+    }
+    
+    public void stop(BundleContext context) throws Exception {
+    }
+   
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,177 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.geronimo.obr;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamAttribute;
+import org.apache.geronimo.gbean.annotation.ParamReference;
+import org.apache.geronimo.gbean.annotation.ParamSpecial;
+import org.apache.geronimo.gbean.annotation.SpecialAttributeType;
+import org.apache.geronimo.kernel.osgi.BundleDescription;
+import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.kernel.repository.ListableRepository;
+import org.apache.geronimo.obr.model.Repository;
+import org.apache.geronimo.obr.model.Resource;
+import org.apache.geronimo.system.serverinfo.ServerInfo;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.obr.RepositoryAdmin;
+
+@GBean
+public class GeronimoOBRGBean implements GBeanLifecycle {
+    
+    private BundleContext bundleContext;
+    private ListableRepository repository;
+    private File obrFile;
+    private List<URL> repositories;
+    
+    public GeronimoOBRGBean(@ParamReference(name = "Repository", namingType = "Repository") ListableRepository repository,
+                            @ParamReference(name = "ServerInfo") ServerInfo serverInfo,
+                            @ParamSpecial(type = SpecialAttributeType.bundleContext) BundleContext bundleContext,
+                            @ParamAttribute(name = "repositoryList") String repositoryList) throws Exception {
+        this.repository = repository;         
+        this.bundleContext = bundleContext;
+        this.obrFile = serverInfo.resolveServer("var/obr.xml");
+        this.repositories = parseRepositories(repositoryList);
+    }
+
+    private static List<URL> parseRepositories(String repositoryList) throws MalformedURLException {
+        List<URL> list = new ArrayList<URL>();
+        if (repositoryList != null) {
+            StringTokenizer tokenizer = new StringTokenizer(repositoryList, ",");
+            while (tokenizer.hasMoreElements()) {
+                String token = (String) tokenizer.nextElement();
+                list.add(new URL(token.trim()));
+            }
+        }
+        return list;
+    }
+    
+    private void generateOBR() throws Exception {
+        
+        String obrName = "Geronimo OBR Repository";
+
+        org.apache.geronimo.kernel.repository.Repository geronimoRepository = repository;
+        Set<Artifact> artifacts = repository.list();
+        generateOBR(obrName, artifacts, geronimoRepository, obrFile);
+    }
+
+    public static void generateOBR(String obrName, Set<Artifact> artifacts, org.apache.geronimo.kernel.repository.Repository geronimoRepository, File obrFile) throws IOException, JAXBException {
+        Repository repo = generateOBRModel(obrName, geronimoRepository, artifacts);
+        marshallOBRModel(repo, obrFile);
+    }
+
+    public static void marshallOBRModel(Repository repo, File obrFile) throws JAXBException {
+        JAXBContext context = JAXBContext.newInstance(Repository.class);
+        Marshaller marshaller = context.createMarshaller();
+        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+        marshaller.marshal(repo, obrFile);
+    }
+
+    public static Repository generateOBRModel(String obrName, org.apache.geronimo.kernel.repository.Repository geronimoRepository, Set<Artifact> artifacts) throws IOException {
+        Repository repo = new Repository();
+        repo.setName(obrName);
+        for (Artifact artifact : artifacts) {
+            File location = geronimoRepository.getLocation(artifact);
+            Manifest mf = null;
+            if (location.isFile()) {
+                JarFile file = new JarFile(location);
+                try {
+                    mf = file.getManifest();
+                } finally {
+                    try { file.close(); } catch (IOException ignore) {}
+                }
+
+            } else if (location.isDirectory()) {
+                File mfFile = new File(location, JarFile.MANIFEST_NAME);
+                FileInputStream in = new FileInputStream(mfFile);
+                try {
+                    mf = new Manifest(in);
+                } finally {
+                    try { in.close(); } catch (IOException ignore) {}
+                }
+            } else {
+                continue;
+            }
+
+            if (mf == null) {
+                continue;
+            }
+
+            BundleDescription desc = new BundleDescription(mf);
+            ResourceBuilder builder = new ResourceBuilder(desc);
+
+            Resource resource = builder.createResource();
+            if (resource != null) {
+                resource.setUri(getURL(artifact));
+                if (location.isFile()) {
+                    resource.setSize(location.length());
+                }
+                repo.getResource().add(resource);
+            } else {
+                System.out.println("Warning: Artifact " + artifact + " is not a bundle.");
+            }
+        }
+        return repo;
+    }
+
+    private static String getURL(Artifact artifact) {
+        return "mvn:" + artifact.getGroupId() + "/" + artifact.getArtifactId() + "/" + artifact.getVersion() + ("jar".equals(artifact.getType())?  "": "/" + artifact.getType());
+    }
+
+    private void registerOBR() throws Exception {
+        ServiceReference ref = bundleContext.getServiceReference(RepositoryAdmin.class.getName());
+        RepositoryAdmin repositoryAdmin = (RepositoryAdmin) bundleContext.getService(ref);
+        
+        repositoryAdmin.addRepository(obrFile.toURI().toURL());
+        
+        for (URL repository : repositories) {
+            repositoryAdmin.addRepository(repository);
+        }
+        
+        bundleContext.ungetService(ref); 
+    }
+    
+    public void doStart() throws Exception {
+        generateOBR();
+        registerOBR();
+    }
+    
+    public void doStop() throws Exception {
+    }
+   
+    public void doFail() {
+    }
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/GeronimoOBRGBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,198 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.geronimo.obr;
+
+import java.util.List;
+
+import org.apache.geronimo.kernel.osgi.BundleDescription;
+import org.apache.geronimo.kernel.osgi.VersionRange;
+import org.apache.geronimo.obr.model.Capability;
+import org.apache.geronimo.obr.model.P;
+import org.apache.geronimo.obr.model.Require;
+import org.apache.geronimo.obr.model.Resource;
+import org.osgi.framework.Constants;
+
+public class ResourceBuilder {
+    
+    private BundleDescription bundleDescription;
+
+    public ResourceBuilder(BundleDescription bundleDescription) {
+        this.bundleDescription = bundleDescription;
+    }
+        
+    public Resource createResource()  {
+        
+        BundleDescription.SymbolicName symbolicName = bundleDescription.getSymbolicName();
+        if (symbolicName == null) {
+            // not a bundle
+            return null;            
+        }
+        
+        Resource resource = new Resource();
+        resource.setId(String.valueOf(System.currentTimeMillis()));
+        resource.setSymbolicname(symbolicName.getName());
+               
+        // Convert bundle manifest header attributes to resource properties.
+        convertAttributesToProperties(resource);
+            
+        // Convert Import-Package declarations into requirements.
+        convertImportPackageToRequirement(resource);
+        
+        // Convert Require-Bundle to requirements.
+        convertRequireBundleToRequirement(resource);
+        
+        // Convert Fragment-Host to requirement/extend.
+        convertFragmentHostToExtends(resource);
+
+        // Convert bundle to capability
+        convertBundleToCapability(resource, symbolicName);
+        
+        // Convert Export-Package declarations into capabilities.
+        convertExportPackageToCapability(resource);
+        
+        return resource;
+    }
+    
+    private String getProperty(String name) {
+        return (String) bundleDescription.getHeaders().get(name);
+    }
+    
+    private void convertAttributesToProperties(Resource resource) {
+        String bundleName = getProperty(Constants.BUNDLE_NAME);
+        if (bundleName == null) {
+            bundleName = resource.getSymbolicname();
+        }
+        resource.setPresentationname(bundleName);
+        
+        resource.setVersion(getProperty(Constants.BUNDLE_VERSION));
+        resource.setDescription(getProperty(Constants.BUNDLE_DESCRIPTION));
+        resource.setDocumentation(getProperty(Constants.BUNDLE_DOCURL));
+        resource.setSource(getProperty("Bundle-Source"));
+        resource.setLicense(getProperty("Bundle-License"));
+
+        // resource.setCopyright(getProperty(Constants.BUNDLE_COPYRIGHT));
+    }
+       
+    private void convertImportPackageToRequirement(Resource resource) {
+        List<BundleDescription.ImportPackage> imports = bundleDescription.getImportPackage();
+        for (BundleDescription.ImportPackage importPackage : imports) {
+            Require require = new Require();
+            require.setMultiple(false);
+            require.setOptional(importPackage.isOptional());
+            require.setName("package");
+            require.setContent("Import-Package: " + importPackage.getName());
+
+            VersionRange range = importPackage.getVersionRange();
+            String versionFilter = getVersionFilter(range);
+            require.setFilter("(&(package=" + importPackage.getName() + ")" + versionFilter + ")");            
+
+            resource.getRequire().add(require);
+        }
+    }
+    
+    private void convertRequireBundleToRequirement(Resource resource) {
+        List<BundleDescription.RequireBundle> requireBundles = bundleDescription.getRequireBundle();
+        for (BundleDescription.RequireBundle requireBundle : requireBundles) {
+            Require require = new Require();
+            require.setMultiple(false);
+            require.setOptional(requireBundle.isOptional());
+            require.setName("bundle");
+            require.setContent("Require-Bundle: " + requireBundle.getName());
+            
+            VersionRange range = requireBundle.getVersionRange();
+            String versionExpression = getVersionFilter(range);
+            require.setFilter("(&(symbolicname=" + requireBundle.getName() + ")" + versionExpression + ")");  
+            
+            resource.getRequire().add(require);
+        }
+    }
+    
+    private void convertFragmentHostToExtends(Resource resource) {
+        BundleDescription.FragmentHost fragment = bundleDescription.getFragmentHost();
+        if (fragment != null) {
+            /*
+             * In RFC 112 the Fragment-Host is represented as a "<extend/>" element
+             * not a "<require extend="true"/>" element. 
+             */
+            Require require = new Require(); 
+            require.setExtend(true);
+            require.setMultiple(false);
+            require.setOptional(false);
+            require.setName("bundle");
+            require.setContent("Fragment-Host: " + fragment.getName());
+            
+            VersionRange range = fragment.getVersionRange();
+            String versionExpression = getVersionFilter(range);
+            require.setFilter("(&(symbolicname=" + fragment.getName() + ")" + versionExpression + ")");  
+            
+            resource.getRequire().add(require);
+        }
+    }
+    
+    private void convertExportPackageToCapability(Resource resource) {
+        List<BundleDescription.ExportPackage> exports = bundleDescription.getExportPackage();
+        for (BundleDescription.ExportPackage exportPackage : exports) {
+            Capability cap = new Capability();
+            cap.setName("package");
+            cap.getP().add(createP("package", null, exportPackage.getName()));
+            cap.getP().add(createP("version", "version", exportPackage.getVersion().toString()));
+            resource.getCapability().add(cap);
+        }
+    }
+
+    private void convertBundleToCapability(Resource resource, BundleDescription.SymbolicName symbolicName) {
+        Capability cap = new Capability();
+        cap.setName("bundle");
+        
+        cap.getP().add(createP("symbolicname", null, symbolicName.getName()));
+        cap.getP().add(createP("version", "version", bundleDescription.getVersion().toString()));
+        cap.getP().add(createP("manifestversion", "version", (String) bundleDescription.getHeaders().get(Constants.BUNDLE_MANIFESTVERSION)));
+        
+        String attachment = symbolicName.getDirectives().get("fragment-attachment");
+        if (attachment != null) {
+            cap.getP().add(createP("fragment-attachment", null, attachment));
+        }
+        
+        String singleton = symbolicName.getDirectives().get("singleton");
+        if (singleton != null) {
+            cap.getP().add(createP("singleton", null, singleton));
+        }
+        
+        resource.getCapability().add(cap);
+    }
+    
+    private P createP(String name, String type, String value) {
+        P p = new P();
+        p.setN(name);
+        p.setV(value);
+        p.setT(type);
+        return p;
+    }
+    
+    private String getVersionFilter(VersionRange range) {
+        String low = range.isLowInclusive() ? "(version>=" + range.getLow() + ")"
+                : "(!(version<=" + range.getLow() + "))";
+
+        if (range.getHigh() != null) {
+            String high = range.isHighInclusive() ? "(version<=" + range.getHigh() + ")"
+                    : "(!(version>=" + range.getHigh() + "))";            
+            return low + high;
+        }
+        
+        return low; 
+    }
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/ResourceBuilder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,104 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.3-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.12.17 at 12:58:15 PM EST 
+//
+
+
+package org.apache.geronimo.obr.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element ref="{}p" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "p"
+})
+@XmlRootElement(name = "capability")
+public class Capability {
+
+    protected List<P> p;
+    @XmlAttribute(required = true)
+    protected String name;
+
+    /**
+     * Gets the value of the p property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the p property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getP().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link P }
+     * 
+     * 
+     */
+    public List<P> getP() {
+        if (p == null) {
+            p = new ArrayList<P>();
+        }
+        return this.p;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Capability.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,67 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.3-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.12.17 at 12:58:15 PM EST 
+//
+
+
+package org.apache.geronimo.obr.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;attribute ref="{}id use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+@XmlRootElement(name = "category")
+public class Category {
+
+    @XmlAttribute(required = true)
+    protected String id;
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Category.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,87 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.3-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.12.17 at 12:58:15 PM EST 
+//
+
+
+package org.apache.geronimo.obr.model;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.apache.geronimo.obr.model package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.apache.geronimo.obr.model
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link P }
+     * 
+     */
+    public P createP() {
+        return new P();
+    }
+
+    /**
+     * Create an instance of {@link Require }
+     * 
+     */
+    public Require createRequire() {
+        return new Require();
+    }
+
+    /**
+     * Create an instance of {@link Resource }
+     * 
+     */
+    public Resource createResource() {
+        return new Resource();
+    }
+
+    /**
+     * Create an instance of {@link Capability }
+     * 
+     */
+    public Capability createCapability() {
+        return new Capability();
+    }
+
+    /**
+     * Create an instance of {@link Category }
+     * 
+     */
+    public Category createCategory() {
+        return new Category();
+    }
+
+    /**
+     * Create an instance of {@link Repository }
+     * 
+     */
+    public Repository createRepository() {
+        return new Repository();
+    }
+
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/ObjectFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,121 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.3-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.12.17 at 12:58:15 PM EST 
+//
+
+
+package org.apache.geronimo.obr.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;attribute ref="{}n use="required""/>
+ *       &lt;attribute ref="{}t"/>
+ *       &lt;attribute ref="{}v use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+@XmlRootElement(name = "p")
+public class P {
+
+    @XmlAttribute(required = true)
+    protected String n;
+    @XmlAttribute
+    protected String t;
+    @XmlAttribute(required = true)
+    protected String v;
+
+    /**
+     * Gets the value of the n property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getN() {
+        return n;
+    }
+
+    /**
+     * Sets the value of the n property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setN(String value) {
+        this.n = value;
+    }
+
+    /**
+     * Gets the value of the t property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getT() {
+        return t;
+    }
+
+    /**
+     * Sets the value of the t property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setT(String value) {
+        this.t = value;
+    }
+
+    /**
+     * Gets the value of the v property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getV() {
+        return v;
+    }
+
+    /**
+     * Sets the value of the v property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setV(String value) {
+        this.v = value;
+    }
+
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/P.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,131 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.3-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.12.17 at 12:58:15 PM EST 
+//
+
+
+package org.apache.geronimo.obr.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element ref="{}resource" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="lastmodified" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "resource"
+})
+@XmlRootElement(name = "repository")
+public class Repository {
+
+    protected List<Resource> resource;
+    @XmlAttribute
+    protected String lastmodified;
+    @XmlAttribute(required = true)
+    protected String name;
+
+    /**
+     * Gets the value of the resource property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the resource property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getResource().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Resource }
+     * 
+     * 
+     */
+    public List<Resource> getResource() {
+        if (resource == null) {
+            resource = new ArrayList<Resource>();
+        }
+        return this.resource;
+    }
+
+    /**
+     * Gets the value of the lastmodified property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getLastmodified() {
+        return lastmodified;
+    }
+
+    /**
+     * Sets the value of the lastmodified property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setLastmodified(String value) {
+        this.lastmodified = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Repository.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java?rev=910793&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java Wed Feb 17 01:30:12 2010
@@ -0,0 +1,180 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.3-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.12.17 at 12:58:15 PM EST 
+//
+
+
+package org.apache.geronimo.obr.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;attribute ref="{}extend use="required""/>
+ *       &lt;attribute ref="{}filter use="required""/>
+ *       &lt;attribute ref="{}multiple use="required""/>
+ *       &lt;attribute ref="{}name use="required""/>
+ *       &lt;attribute ref="{}optional use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "content"
+})
+@XmlRootElement(name = "require")
+public class Require {
+
+    @XmlValue
+    protected String content;
+    @XmlAttribute(required = true)
+    protected boolean extend;
+    @XmlAttribute(required = true)
+    protected String filter;
+    @XmlAttribute(required = true)
+    protected boolean multiple;
+    @XmlAttribute(required = true)
+    protected String name;
+    @XmlAttribute(required = true)
+    protected boolean optional;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getContent() {
+        return content;
+    }
+
+    /**
+     * Sets the value of the content property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setContent(String value) {
+        this.content = value;
+    }
+
+    /**
+     * Gets the value of the extend property.
+     * 
+     */
+    public boolean isExtend() {
+        return extend;
+    }
+
+    /**
+     * Sets the value of the extend property.
+     * 
+     */
+    public void setExtend(boolean value) {
+        this.extend = value;
+    }
+
+    /**
+     * Gets the value of the filter property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getFilter() {
+        return filter;
+    }
+
+    /**
+     * Sets the value of the filter property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setFilter(String value) {
+        this.filter = value;
+    }
+
+    /**
+     * Gets the value of the multiple property.
+     * 
+     */
+    public boolean isMultiple() {
+        return multiple;
+    }
+
+    /**
+     * Sets the value of the multiple property.
+     * 
+     */
+    public void setMultiple(boolean value) {
+        this.multiple = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the optional property.
+     * 
+     */
+    public boolean isOptional() {
+        return optional;
+    }
+
+    /**
+     * Sets the value of the optional property.
+     * 
+     */
+    public void setOptional(boolean value) {
+        this.optional = value;
+    }
+
+}

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/modules/geronimo-obr/src/main/java/org/apache/geronimo/obr/model/Require.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain