[jboss-svn-commits] JBoss Common SVN: r3679 - shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Nov 12 05:05:46 EST 2009


Author: aslak
Date: 2009-11-12 05:05:45 -0500 (Thu, 12 Nov 2009)
New Revision: 3679

Modified:
   shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archives.java
Log:
SHRINKWRAP-74 Changed to use ReflectionUtil

Modified: shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archives.java
===================================================================
--- shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archives.java	2009-11-12 10:03:34 UTC (rev 3678)
+++ shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archives.java	2009-11-12 10:05:45 UTC (rev 3679)
@@ -16,7 +16,6 @@
  */
 package org.jboss.shrinkwrap.api;
 
-import java.lang.reflect.Constructor;
 
 /**
  * Generic unified factory for archive creation.
@@ -24,7 +23,7 @@
  * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
  * @version $Revision: $
  */
-public class Archives
+public final class Archives
 {
    //-------------------------------------------------------------------------------------||
    // Class Members ----------------------------------------------------------------------||
@@ -48,46 +47,14 @@
       {
          throw new IllegalArgumentException("Type must be specified");
       }
-      try 
-      {
-         return createArchive(archiveName).as(type);
-      } 
-      catch (Exception e) 
-      {
-         throw new RuntimeException("Could not create new archive, missing impl package from classpath?", e);
-      }
+      Archive<?> archive = (Archive<?>)ReflectionUtil.createInstance(
+                                 ARCHIVE_IMPL,
+                                 new Class<?>[]{String.class},
+                                 new Object[]{archiveName}); 
+      return archive.as(type);
    }
 
    //-------------------------------------------------------------------------------------||
-   // Class Members - Internal Helpers ---------------------------------------------------||
-   //-------------------------------------------------------------------------------------||
-   
-   /**
-    * Load and create a new archive instance. 
-    */
-   private static Archive<?> createArchive(String archiveName) throws Exception 
-   {
-      return (Archive<?>) findConstructor(
-            loadClass(ARCHIVE_IMPL)).newInstance(archiveName);
-   }
-   
-   /**
-    * Load the specified class using Thread Current Class Loader in a privileged block. 
-    */
-   private static Class<?> loadClass(String archiveImplClassName) throws Exception 
-   {
-      return SecurityActions.getThreadContextClassLoader().loadClass(archiveImplClassName);
-   }
-   
-   /**
-    * Find the archive implementations String based constructor.
-    */
-   private static Constructor<?> findConstructor(Class<?> archiveImplClazz) throws Exception 
-   {
-      return archiveImplClazz.getConstructor(String.class);
-   }
-
-   //-------------------------------------------------------------------------------------||
    // Constructor ------------------------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
 



More information about the jboss-svn-commits mailing list