EarManagerWrapper.java

00001 
00025 package org.objectweb.jonas_ear.deployment.lib.wrapper;
00026 
00027 import java.lang.reflect.InvocationTargetException;
00028 import java.lang.reflect.Method;
00029 
00030 import org.objectweb.jonas_ear.deployment.api.EarDeploymentDesc;
00031 import org.objectweb.jonas_ear.deployment.api.EarDeploymentDescException;
00032 
00033 import org.objectweb.jonas.common.Log;
00034 import org.objectweb.jonas.server.LoaderManager;
00035 
00036 import org.objectweb.util.monolog.api.BasicLevel;
00037 import org.objectweb.util.monolog.api.Logger;
00038 
00039 
00045 public class EarManagerWrapper {
00046 
00050     private static final String EAR_MANAGER_CLASSNAME = "org.objectweb.jonas_ear.deployment.lib.EarDeploymentDescManager";
00051 
00055     private static Logger logger = Log.getLogger(Log.JONAS_EAR_PREFIX);
00056 
00060     private EarManagerWrapper() { }
00061 
00072     public static EarDeploymentDesc getDeploymentDesc(String ear, ClassLoader cl)
00073     throws EarDeploymentDescException {
00074         LoaderManager lm = LoaderManager.getInstance();
00075         EarDeploymentDesc earDD = null;
00076         try {
00077             ClassLoader tools = lm.getToolsLoader();
00078             Class manager = tools.loadClass(EAR_MANAGER_CLASSNAME);
00079             Method m = manager.getDeclaredMethod("getDeploymentDesc", new Class[] {String.class, ClassLoader.class});
00080             earDD = (EarDeploymentDesc) m.invoke(null, new Object[] {ear, cl});
00081         } catch (InvocationTargetException ite) {
00082             Throwable t = ite.getTargetException();
00083             if (EarDeploymentDescException.class.isInstance(t)) {
00084                 throw (EarDeploymentDescException) ite.getTargetException();
00085             } else {
00086                 throw new EarDeploymentDescException("EarDeploymentDescManager.getDeploymentDesc fails", t);
00087             }
00088         } catch (Exception e) {
00089             // TODO add i18n here
00090             throw new EarDeploymentDescException("Problems when using reflection on EarDeploymentDescManager", e);
00091         }
00092 
00093         return earDD;
00094     }
00095 
00101     public static void setParsingWithValidation(boolean b) {
00102         LoaderManager lm = LoaderManager.getInstance();
00103 
00104         try {
00105             ClassLoader tools = lm.getToolsLoader();
00106             Class manager = tools.loadClass(EAR_MANAGER_CLASSNAME);
00107             Method m = manager.getDeclaredMethod("setParsingWithValidation", new Class[] {boolean.class});
00108             m.invoke(null, new Object[] {new Boolean(b)});
00109         } catch (Exception e) {
00110             // Should never occurs
00111             logger.log(BasicLevel.ERROR, e);
00112         }
00113     }
00114 
00115 }

Generated on Tue Feb 15 15:05:36 2005 for JOnAS by  doxygen 1.3.9.1