On Oct 26, 2009, at 12:28 AM, Ivan wrote:

In the ActiveMQ portlet, the constructor of ConnectorDeployable is changed, it needs the geronimo-activemq-ra bundle to install the JMS resource.

--- geronimo/server/trunk/plugins/
activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/wizard/AbstractHandler.java (original)
+++ geronimo/server/trunk/plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/wizard/AbstractHandler.java Mon Oct 26 02:45:29 2009
@@ -56,6 +56,7 @@
 import org.apache.geronimo.deployment.tools.loader.ConnectorDeployable;
 import org.apache.geronimo.kernel.repository.Artifact;
 import org.apache.geronimo.naming.deployment.jsr88.GBeanLocator;
+import org.osgi.framework.Bundle;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

@@ -495,7 +496,8 @@
            DeploymentManager mgr = ManagementHelper.getManagementHelper(request).getDeploymentManager();
            try {
                File rarFile = PortletManager.getRepositoryEntry(request, data.getRarURI());
-                ConnectorDeployable deployable = new ConnectorDeployable(rarFile.toURL());
+                Bundle rarBundle = PortletManager.getRepositoryEntryBundle(request, data.getRarURI());
+                ConnectorDeployable deployable = new ConnectorDeployable(rarBundle);
                DeploymentConfiguration config = mgr.createConfiguration(deployable);
                final DDBeanRoot ddBeanRoot = deployable.getDDBeanRoot();
                Connector15DCBRoot root = (Connector15DCBRoot) config.getDConfigBeanRoot(ddBeanRoot);

Using a bundle here may or may not be a good idea.  However, we're talking about installing a rar as a javaee app here, not deploying an osgi bundle.  There will never be a installed bundle for this rar file, only for already deployed instances of it.  We could create a temporary bundle for the rar file, but we should be sure to uninstall it as soon as we are done peeking inside.  So, any kind of information about already installed bundles would be irrelevant.

david jencks

2009/10/26 David Jencks <david_jencks@yahoo.com>

On Oct 25, 2009, at 8:31 PM, Ivan wrote:

   While working with the code refactoring of some plug-ins, it seems that I did not have a way to get a Bundle object via Artifact.
   Is it possible for us to maintain a artifact-bundle or location-bundle map for those bundles loaded by Geronimo (More accurately, I mean the DependencyManager),  so that we could more easily to know whether the bundle is installed, and we could get the bundle object.
   Any comment ?

The KernelConfigurationManager has a map of Artifact to Configuration from which you can get the BundleContext and thence the Bundle.  This only tells you about the plugins that are loaded, not all the jars that are installed.  In the DependencyManager so far I've relied on the mvn artifact urls to convert the artifact to a location string and compared that to the locations of the installed bundles.

What are you working on that you need this?

david jencks