You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2010/04/29 17:01:03 UTC

svn commit: r939337 - /geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java

Author: gawor
Date: Thu Apr 29 15:01:03 2010
New Revision: 939337

URL: http://svn.apache.org/viewvc?rev=939337&view=rev
Log:
Avoid creating gbean proxies in GeronimoAsMavenServlet

Modified:
    geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java

Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java?rev=939337&r1=939336&r2=939337&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java (original)
+++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java Thu Apr 29 15:01:03 2010
@@ -186,7 +186,7 @@ public class GeronimoAsMavenServlet exte
         // Step 2: check if it's in a repository
         Set<AbstractName> repos = kernel.listGBeans(new AbstractNameQuery(Repository.class.getName()));
         for (AbstractName name : repos) {
-            Repository repo = (Repository) kernel.getProxyManager().createProxy(name, Repository.class);
+            Repository repo = getGBean(kernel, name, Repository.class);
             if(repo.contains(configId)) {
                 File path = repo.getLocation(configId);
                 if(!path.exists()) throw new IllegalStateException("Can't find file '"+path.getAbsolutePath()+"' though repository said there's an artifact there!");
@@ -226,7 +226,20 @@ public class GeronimoAsMavenServlet exte
         if(names.size() == 0) {
             return null;
         }
-        return (PluginInstaller) kernel.getProxyManager().createProxy((AbstractName) names.iterator().next(), PluginInstaller.class);
+        return getGBean(kernel, names.iterator().next(), PluginInstaller.class);
+    }
+
+    private <T> T getGBean(Kernel kernel, AbstractName name, Class<T> clazz) {
+        boolean createProxy = false;
+        if (createProxy) {
+            return kernel.getProxyManager().createProxy(name, clazz);
+        } else {
+            try {
+                return clazz.cast(kernel.getGBean(name));
+            } catch (GBeanNotFoundException e) {
+                throw new IllegalStateException("No implementation for " + clazz.getName(), e);
+            }
+        }
     }
 
     private void generateMavenFile(Kernel kernel, PrintWriter writer, String groupId, String artifactId, boolean reply) throws ParserConfigurationException, TransformerException {