[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