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 2012/01/06 03:39:18 UTC

svn commit: r1227942 - in /geronimo/server/trunk: framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ framework/configs/j2ee-system/src/main/plan/ framework/modules/geronimo-deployment/src/main/java/org...

Author: djencks
Date: Fri Jan  6 02:39:17 2012
New Revision: 1227942

URL: http://svn.apache.org/viewvc?rev=1227942&view=rev
Log:
GERONIMO-6251 determine if server is actually fully started, provide access to DependencyManager for osgi metadata purposes

Added:
    geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/PersistentConfigurationListGBean.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManagerGBean.java   (with props)
    geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/OsgiMetaDataProvider.java   (with props)
Modified:
    geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java
    geronimo/server/trunk/framework/configs/j2ee-system/src/main/plan/plan.xml
    geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/HighVersionFirstExportPackagesSelector.java
    geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiBuildContext.java
    geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java
    geronimo/server/trunk/framework/modules/geronimo-deployment/src/test/java/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
    geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java
    geronimo/server/trunk/plugins/client/client-deployer/src/main/plan/plan.xml
    geronimo/server/trunk/plugins/connector-1_6/geronimo-connector-builder-1_6/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java
    geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java

Modified: geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java (original)
+++ geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java Fri Jan  6 02:39:17 2012
@@ -123,7 +123,7 @@ public class ServerProxy
     }
     
     public boolean isFullyStarted() {
-        boolean fullyStarted = true;
+        boolean fullyStarted = false;
 
         try {
             AbstractNameQuery query = new AbstractNameQuery(PersistentConfigurationList.class.getName());
@@ -132,8 +132,8 @@ public class ServerProxy
             while (iter.hasNext()) {
                 AbstractName name = (AbstractName)iter.next();
                 boolean started = getBooleanAttribute(name, "kernelFullyStarted");
-                if (!started) {
-                    fullyStarted = false;
+                if (started) {
+                    fullyStarted = true;
                     break;
                 }
             }

Modified: geronimo/server/trunk/framework/configs/j2ee-system/src/main/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/j2ee-system/src/main/plan/plan.xml?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/j2ee-system/src/main/plan/plan.xml (original)
+++ geronimo/server/trunk/framework/configs/j2ee-system/src/main/plan/plan.xml Fri Jan  6 02:39:17 2012
@@ -45,6 +45,9 @@ specific services - those should be prov
     <gbean name="AttributeManager" class="org.apache.geronimo.system.configuration.LocalPluginAttributeStoreGBean">
     </gbean>
 
+    <gbean name="PersistentConfigurationList" class="org.apache.geronimo.kernel.config.PersistentConfigurationListGBean">
+    </gbean>
+
     <gbean name="ConfigurationManager" class="org.apache.geronimo.kernel.config.ConfigurationManagerGBean">
     </gbean>
 

Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/HighVersionFirstExportPackagesSelector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/HighVersionFirstExportPackagesSelector.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/HighVersionFirstExportPackagesSelector.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/HighVersionFirstExportPackagesSelector.java Fri Jan  6 02:39:17 2012
@@ -25,7 +25,7 @@ import java.util.Set;
 
 import org.apache.geronimo.kernel.repository.Artifact;
 import org.apache.geronimo.kernel.repository.Dependency;
-import org.apache.geronimo.system.configuration.DependencyManager;
+import org.apache.geronimo.system.configuration.OsgiMetaDataProvider;
 import org.apache.xbean.osgi.bundle.util.BundleDescription.ExportPackage;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.Version;
@@ -43,14 +43,14 @@ public class HighVersionFirstExportPacka
     public Map<Long, Set<ExportPackage>> select(OSGiBuildContext context) {
         Map<Long, Set<ExportPackage>> bundleIdExportPackages = new HashMap<Long, Set<ExportPackage>>();
         Map<String, Version> packageNameVersionMap = new HashMap<String, Version>();
-        DependencyManager dependencyManager = context.getDependencyManager();
+        OsgiMetaDataProvider osgiMetaDataProvider = context.getOsgiMetaDataProvider();
         for (Dependency dependency : context.getEnvironment().getDependencies()) {
             Artifact resolvedArtifact = context.resolveArtifact(dependency.getArtifact());
             if(resolvedArtifact == null) {
                 logger.warn("Dependency " + dependency.getArtifact() + " could not be resolved, its export packages are ignored");
                 continue;
             }
-            Bundle dependentBundle = dependencyManager.getBundle(resolvedArtifact);
+            Bundle dependentBundle = osgiMetaDataProvider.getBundle(resolvedArtifact);
             if (dependentBundle == null) {
                 logger.warn("Fail to resolve the bundle corresponding to the artifact " + dependency.getArtifact() + ", its export packages are ignored");
                 continue;

Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiBuildContext.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiBuildContext.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiBuildContext.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiBuildContext.java Fri Jan  6 02:39:17 2012
@@ -29,7 +29,7 @@ import org.apache.geronimo.kernel.reposi
 import org.apache.geronimo.kernel.repository.ArtifactResolver;
 import org.apache.geronimo.kernel.repository.Environment;
 import org.apache.geronimo.kernel.repository.MissingDependencyException;
-import org.apache.geronimo.system.configuration.DependencyManager;
+import org.apache.geronimo.system.configuration.OsgiMetaDataProvider;
 import org.apache.geronimo.system.plugin.model.DependencyType;
 import org.apache.geronimo.system.plugin.model.PluginArtifactType;
 import org.apache.xbean.osgi.bundle.util.BundleDescription.ExportPackage;
@@ -48,7 +48,7 @@ public class OSGiBuildContext {
 
     private Set<String> hiddenImportPackageNames;
 
-    private DependencyManager dependencyManager;
+    private OsgiMetaDataProvider osgiMetaDataProvider;
 
     private Environment environment;
 
@@ -58,11 +58,11 @@ public class OSGiBuildContext {
 
     private ArtifactResolver clientArtifactResolver;
 
-    public OSGiBuildContext(Environment environment, List<String> hiddenImportPackageNamePrefixes, Set<String> hiddenImportPackageNames, DependencyManager dependencyManager,
+    public OSGiBuildContext(Environment environment, List<String> hiddenImportPackageNamePrefixes, Set<String> hiddenImportPackageNames, OsgiMetaDataProvider dependencyManager,
             boolean inverseClassLoading) {
         this.hiddenImportPackageNamePrefixes = hiddenImportPackageNamePrefixes;
         this.hiddenImportPackageNames = hiddenImportPackageNames;
-        this.dependencyManager = dependencyManager;
+        this.osgiMetaDataProvider = dependencyManager;
         this.environment = environment;
         this.inverseClassLoading = inverseClassLoading;
     }
@@ -94,8 +94,8 @@ public class OSGiBuildContext {
         return false;
     }
 
-    public DependencyManager getDependencyManager() {
-        return dependencyManager;
+    public OsgiMetaDataProvider getOsgiMetaDataProvider() {
+        return osgiMetaDataProvider;
     }
 
     public Environment getEnvironment() {
@@ -103,7 +103,7 @@ public class OSGiBuildContext {
     }
 
     public Set<ExportPackage> getEffectExportPackages(Long bundleId) {
-        Set<ExportPackage> exportPackages = new HashSet<ExportPackage>(dependencyManager.getExportedPackages(bundleId));
+        Set<ExportPackage> exportPackages = new HashSet<ExportPackage>(osgiMetaDataProvider.getExportedPackages(bundleId));
         for (Iterator<ExportPackage> it = exportPackages.iterator(); it.hasNext();) {
             ExportPackage exportPackage = it.next();
             if (isHiddenExportPackage(exportPackage) || exportPackage.getDirectives().get("mandatory") != null) {
@@ -129,11 +129,11 @@ public class OSGiBuildContext {
         if (clientModule) {
             return getFullClientDependentBundleIds(bundle.getBundleId());
         }
-        return dependencyManager.getFullDependentBundleIds(bundle);
+        return osgiMetaDataProvider.getFullDependentBundleIds(bundle);
     }
 
     private Set<Long> getFullClientDependentBundleIds(long bundleId) {
-        Artifact artifact = dependencyManager.getArtifact(bundleId);
+        Artifact artifact = osgiMetaDataProvider.getArtifact(bundleId);
         if (artifact == null) {
             return Collections.emptySet();
         }
@@ -151,11 +151,11 @@ public class OSGiBuildContext {
         if (resolvedClientArtifact == null) {
             return;
         }
-        Bundle resolvedBundle = dependencyManager.getBundle(resolvedClientArtifact);
+        Bundle resolvedBundle = osgiMetaDataProvider.getBundle(resolvedClientArtifact);
         if (resolvedBundle == null || dependentBundleIds.contains(resolvedBundle.getBundleId())) {
             return;
         }
-        PluginArtifactType pluginArtifact = dependencyManager.getCachedPluginMetadata(resolvedBundle);
+        PluginArtifactType pluginArtifact = osgiMetaDataProvider.getCachedPluginMetadata(resolvedBundle);
         if (pluginArtifact != null) {
             for (DependencyType dependency : pluginArtifact.getDependency()) {
                 Artifact resolvedDependentArtifact = resolveArtifact(dependency.toArtifact());

Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java Fri Jan  6 02:39:17 2012
@@ -30,6 +30,7 @@ import org.apache.geronimo.kernel.Kernel
 import org.apache.geronimo.kernel.repository.ArtifactResolver;
 import org.apache.geronimo.kernel.repository.Environment;
 import org.apache.geronimo.system.configuration.DependencyManager;
+import org.apache.geronimo.system.configuration.OsgiMetaDataProvider;
 import org.apache.xbean.osgi.bundle.util.BundleDescription.ExportPackage;
 import org.apache.xbean.osgi.bundle.util.HeaderParser;
 import org.apache.xbean.osgi.bundle.util.HeaderParser.HeaderElement;
@@ -72,12 +73,12 @@ public class OSGiMetaDataBuilder {
         processClassloadingRules(environment);
         ServiceReference serviceReference = null;
         try {
-            serviceReference = bundleContext.getServiceReference(DependencyManager.class.getName());
-            DependencyManager dependencyManager = null;
+            serviceReference = bundleContext.getServiceReference(OsgiMetaDataProvider.class.getName());
+            OsgiMetaDataProvider osgiMetaDataProvider = null;
             if (serviceReference != null) {
-                dependencyManager = (DependencyManager) bundleContext.getService(serviceReference);
+                osgiMetaDataProvider = (OsgiMetaDataProvider) bundleContext.getService(serviceReference);
             }
-            OSGiBuildContext context = createOSGiBuildContext(environment, dependencyManager, clientModule);
+            OSGiBuildContext context = createOSGiBuildContext(environment, osgiMetaDataProvider, clientModule);
             processImportPackages(context);
         } finally {
             if (serviceReference != null) {
@@ -97,7 +98,7 @@ public class OSGiMetaDataBuilder {
         }*/
     }
 
-    protected OSGiBuildContext createOSGiBuildContext(Environment environment, DependencyManager dependencyManager, boolean clientModule) throws IllegalConfigurationException {
+    protected OSGiBuildContext createOSGiBuildContext(Environment environment, OsgiMetaDataProvider osgiMetaDataProvider, boolean clientModule) throws IllegalConfigurationException {
         List<String> hiddenImportPackageNamePrefixes = new ArrayList<String>();
         Set<String> hiddenImportPackageNames = new HashSet<String>();
 
@@ -168,7 +169,7 @@ public class OSGiMetaDataBuilder {
         }
         environment.removeDynamicImportPackages(removedDynamicImportPackages);
 
-        OSGiBuildContext osgiBuildContext = new OSGiBuildContext(environment, hiddenImportPackageNamePrefixes, hiddenImportPackageNames, dependencyManager, environment.getClassLoadingRules()
+        OSGiBuildContext osgiBuildContext = new OSGiBuildContext(environment, hiddenImportPackageNamePrefixes, hiddenImportPackageNames, osgiMetaDataProvider, environment.getClassLoadingRules()
                 .isInverseClassLoading());
         osgiBuildContext.setClientModule(clientModule);
         if (clientModule) {

Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/test/java/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/test/java/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/test/java/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/test/java/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java Fri Jan  6 02:39:17 2012
@@ -47,6 +47,7 @@ import org.apache.geronimo.kernel.reposi
 import org.apache.geronimo.kernel.repository.Environment;
 import org.apache.geronimo.kernel.repository.Repository;
 import org.apache.geronimo.system.configuration.DependencyManager;
+import org.apache.geronimo.system.configuration.OsgiMetaDataProvider;
 import org.apache.geronimo.testsupport.TestSupport;
 import org.apache.xbean.osgi.bundle.util.BundleDescription.ExportPackage;
 import org.osgi.framework.Bundle;
@@ -96,7 +97,7 @@ public class SingleFileHotDeployerTest e
         }
         bundleContext = new MockBundleContext(getClass().getClassLoader(), BASEDIR.getAbsolutePath(), null, Collections.singletonMap(baseLocation, NEW_ID));
         ((MockBundleContext)bundleContext).setConfigurationManager(new MockConfigurationManager());
-        bundleContext.registerService(DependencyManager.class.getName(), new MockDependencyManager(bundleContext, Collections.<Repository> emptyList(), null), new Hashtable());
+        bundleContext.registerService(OsgiMetaDataProvider.class.getName(), new MockDependencyManager(bundleContext, Collections.<Repository> emptyList(), null), new Hashtable());
         File someFile = new File(dir, "someFile");
         someFile.createNewFile();
 

Added: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/PersistentConfigurationListGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/PersistentConfigurationListGBean.java?rev=1227942&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/PersistentConfigurationListGBean.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/PersistentConfigurationListGBean.java Fri Jan  6 02:39:17 2012
@@ -0,0 +1,96 @@
+/*
+ * 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.kernel.config;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamSpecial;
+import org.apache.geronimo.gbean.annotation.SpecialAttributeType;
+import org.apache.geronimo.gbean.wrapper.AbstractServiceWrapper;
+import org.apache.geronimo.kernel.repository.Artifact;
+import org.osgi.framework.Bundle;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+@GBean
+public class PersistentConfigurationListGBean extends AbstractServiceWrapper<PersistentConfigurationList> implements PersistentConfigurationList {
+    public PersistentConfigurationListGBean(@ParamSpecial(type = SpecialAttributeType.bundle)final Bundle bundle) {
+        super(bundle, PersistentConfigurationList.class);
+    }
+
+    @Override
+    public boolean isKernelFullyStarted() {
+        return get().isKernelFullyStarted();
+    }
+
+    @Override
+    public void setKernelFullyStarted(boolean kernelFullyStarted) {
+        get().setKernelFullyStarted(kernelFullyStarted);
+    }
+
+    @Override
+    public void save() throws IOException {
+        get().save();
+    }
+
+    @Override
+    public List<Artifact> restore() throws IOException {
+        return get().restore();
+    }
+
+    @Override
+    public void addConfiguration(Artifact configName) {
+        get().addConfiguration(configName);
+    }
+
+    @Override
+    public void startConfiguration(Artifact configName) {
+        get().startConfiguration(configName);
+    }
+
+    @Override
+    public void stopConfiguration(Artifact configName) {
+        get().stopConfiguration(configName);
+    }
+
+    @Override
+    public void removeConfiguration(Artifact configName) {
+        get().removeConfiguration(configName);
+    }
+
+    @Override
+    public Artifact[] getListedConfigurations(Artifact query) {
+        return get().getListedConfigurations(query);
+    }
+
+    @Override
+    public void migrateConfiguration(Artifact oldName, Artifact newName, Configuration configuration) {
+        get().migrateConfiguration(oldName, newName, configuration);
+    }
+
+    @Override
+    public boolean hasGBeanAttributes(Artifact configName) {
+        return get().hasGBeanAttributes(configName);
+    }
+}

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

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

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

Added: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManagerGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManagerGBean.java?rev=1227942&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManagerGBean.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManagerGBean.java Fri Jan  6 02:39:17 2012
@@ -0,0 +1,55 @@
+/*
+ * 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.kernel.repository;
+
+import java.util.Set;
+import java.util.SortedSet;
+
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamSpecial;
+import org.apache.geronimo.gbean.annotation.SpecialAttributeType;
+import org.apache.geronimo.gbean.wrapper.AbstractServiceWrapper;
+import org.osgi.framework.Bundle;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+@GBean(j2eeType = "ArtifactManager")
+public class ArtifactManagerGBean extends AbstractServiceWrapper<ArtifactManager> implements ArtifactManager {
+    public ArtifactManagerGBean(@ParamSpecial(type = SpecialAttributeType.bundle)final Bundle bundle) {
+        super(bundle, ArtifactManager.class);
+    }
+
+    @Override
+    public void loadArtifacts(Artifact artifact, Set<Artifact> artifacts) {
+        get().loadArtifacts(artifact, artifacts);
+    }
+
+    @Override
+    public void unloadAllArtifacts(Artifact artifact) {
+        get().unloadAllArtifacts(artifact);
+    }
+
+    @Override
+    public SortedSet<Artifact> getLoadedArtifacts(Artifact query) {
+        return get().getLoadedArtifacts(query);
+    }
+}

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

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

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

Modified: geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java Fri Jan  6 02:39:17 2012
@@ -44,6 +44,7 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.ReferencePolicy;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.geronimo.gbean.AbstractName;
 import org.apache.geronimo.kernel.GBeanNotFoundException;
 import org.apache.geronimo.kernel.InternalKernelException;
@@ -84,8 +85,9 @@ import org.slf4j.LoggerFactory;
 /**
  * @version $Rev$ $Date$
  */
-@Component
-public class DependencyManager {
+@Component(immediate = true)
+@Service //for OsgiMetaDataBuilder
+public class DependencyManager implements OsgiMetaDataProvider {
 
     private static final Logger log = LoggerFactory.getLogger(DependencyManager.class);
 
@@ -253,10 +255,12 @@ public class DependencyManager {
         }
     }
 
+    @Override
     public Set<ExportPackage> getExportedPackages(Bundle bundle) {
         return getExportedPackages(bundle.getBundleId());
     }
 
+    @Override
     public Set<ExportPackage> getExportedPackages(Long bundleId) {
         synchronized (bundleExportPackagesMap) {
             Set<ExportPackage> exportPackages = bundleExportPackagesMap.get(bundleId);
@@ -307,6 +311,7 @@ public class DependencyManager {
         return dependentBundles;
     }
 
+    @Override
     public Set<Long> getFullDependentBundleIds(Bundle bundle) {
         return getFullDependentBundleIds(bundle.getBundleId());
     }
@@ -316,6 +321,7 @@ public class DependencyManager {
         return fullDependentBundleIds == null ? Collections.<Long> emptySet() : new HashSet<Long>(fullDependentBundleIds);
     }
 
+    @Override
     public Bundle getBundle(Artifact artifact) {
         if (!artifact.isResolved()) {
             try {
@@ -328,6 +334,7 @@ public class DependencyManager {
         return artifactBundleMap.get(artifact);
     }
 
+    @Override
     public Artifact getArtifact(long bundleId) {
         return bundleIdArtifactMap.get(bundleId);
     }
@@ -549,6 +556,7 @@ public class DependencyManager {
         }
     }
 
+    @Override
     public PluginArtifactType getCachedPluginMetadata(Bundle bundle) {
         PluginArtifactType pluginArtifactType = pluginMap.get(bundle.getBundleId());
         if (pluginArtifactType == null) {

Added: geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/OsgiMetaDataProvider.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/OsgiMetaDataProvider.java?rev=1227942&view=auto
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/OsgiMetaDataProvider.java (added)
+++ geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/OsgiMetaDataProvider.java Fri Jan  6 02:39:17 2012
@@ -0,0 +1,45 @@
+/*
+ * 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.system.configuration;
+
+import java.util.Set;
+
+import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.system.plugin.model.PluginArtifactType;
+import org.apache.xbean.osgi.bundle.util.BundleDescription;
+import org.osgi.framework.Bundle;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public interface OsgiMetaDataProvider {
+    Set<BundleDescription.ExportPackage> getExportedPackages(Bundle bundle);
+
+    Set<BundleDescription.ExportPackage> getExportedPackages(Long bundleId);
+
+    Set<Long> getFullDependentBundleIds(Bundle bundle);
+
+    Bundle getBundle(Artifact artifact);
+
+    Artifact getArtifact(long bundleId);
+
+    PluginArtifactType getCachedPluginMetadata(Bundle bundle);
+}

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

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

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

Modified: geronimo/server/trunk/plugins/client/client-deployer/src/main/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/client/client-deployer/src/main/plan/plan.xml?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/client/client-deployer/src/main/plan/plan.xml (original)
+++ geronimo/server/trunk/plugins/client/client-deployer/src/main/plan/plan.xml Fri Jan  6 02:39:17 2012
@@ -131,6 +131,8 @@
         <attribute name="port">4201</attribute>
     </gbean>
 
+    <gbean name="ArtifactManager" class="org.apache.geronimo.kernel.repository.ArtifactManagerGBean"/>
+
     <gbean name="ClientArtifactResolver" class="org.apache.geronimo.client.builder.OptionalExplicitDefaultArtifactResolver">
         <reference name="ArtifactManager">
             <name>ArtifactManager</name>

Modified: geronimo/server/trunk/plugins/connector-1_6/geronimo-connector-builder-1_6/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/connector-1_6/geronimo-connector-builder-1_6/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/connector-1_6/geronimo-connector-builder-1_6/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java (original)
+++ geronimo/server/trunk/plugins/connector-1_6/geronimo-connector-builder-1_6/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java Fri Jan  6 02:39:17 2012
@@ -78,6 +78,7 @@ import org.apache.geronimo.kernel.reposi
 import org.apache.geronimo.kernel.util.FileUtils;
 import org.apache.geronimo.kernel.util.JarUtils;
 import org.apache.geronimo.system.configuration.DependencyManager;
+import org.apache.geronimo.system.configuration.OsgiMetaDataProvider;
 import org.apache.geronimo.system.serverinfo.BasicServerInfo;
 import org.apache.geronimo.testsupport.TestSupport;
 import org.apache.geronimo.transaction.wrapper.manager.GeronimoTransactionManagerGBean;
@@ -670,7 +671,7 @@ public class ConnectorModuleBuilderTest 
                 }
             };
         bundleContext.registerService(PackageAdmin.class.getName(), packageAdmin, null);
-        bundleContext.registerService(DependencyManager.class.getName(), new MockDependencyManager(bundleContext, Collections.<Repository> emptyList(), null), new Hashtable());
+        bundleContext.registerService(OsgiMetaDataProvider.class.getName(), new MockDependencyManager(bundleContext, Collections.<Repository> emptyList(), null), new Hashtable());
         kernel = KernelFactory.newInstance(bundleContext).createKernel("test");
         kernel.boot(bundleContext);
 

Modified: geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java?rev=1227942&r1=1227941&r2=1227942&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java (original)
+++ geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java Fri Jan  6 02:39:17 2012
@@ -53,6 +53,7 @@ import org.apache.geronimo.kernel.reposi
 import org.apache.geronimo.kernel.repository.Repository;
 import org.apache.geronimo.kernel.util.FileUtils;
 import org.apache.geronimo.system.configuration.DependencyManager;
+import org.apache.geronimo.system.configuration.OsgiMetaDataProvider;
 import org.apache.geronimo.testsupport.TestSupport;
 import org.apache.xbean.osgi.bundle.util.BundleDescription.ExportPackage;
 import org.osgi.framework.Bundle;
@@ -147,7 +148,7 @@ public abstract class EARConfigBuilderTe
         super.setUp();
         bundleContext = new MockBundleContext(getClass().getClassLoader(), "", new HashMap<Artifact, ConfigurationData>(), locations);
         ((MockBundleContext)bundleContext).setConfigurationManager(new MockConfigurationManager());
-        bundleContext.registerService(DependencyManager.class.getName(), new MockDependencyManager(bundleContext, Collections.<Repository> emptyList(), null), new Hashtable());
+        bundleContext.registerService(OsgiMetaDataProvider.class.getName(), new MockDependencyManager(bundleContext, Collections.<Repository> emptyList(), null), new Hashtable());
         Set<Artifact> repo = new HashSet<Artifact>();
         repo.add(Artifact.create("org.apache.geronimo.tests/test/1/car"));
         repository = new MockRepository(repo);