MappingFileManagerWrapper.java

00001 
00025 package org.objectweb.jonas_ws.deployment.lib.wrapper;
00026 
00027 import java.io.File;
00028 import java.io.InputStream;
00029 import java.lang.reflect.InvocationTargetException;
00030 import java.lang.reflect.Method;
00031 
00032 import org.objectweb.jonas_ws.deployment.api.MappingFile;
00033 import org.objectweb.jonas_ws.deployment.api.WSDeploymentDescException;
00034 
00035 import org.objectweb.jonas.server.LoaderManager;
00036 
00037 
00044 public class MappingFileManagerWrapper {
00045 
00049     private static final String MAPPINGFILEMANAGER_CLASSNAME = "org.objectweb.jonas_ws.deployment.lib.MappingFileManager";
00050 
00054     private MappingFileManagerWrapper() { }
00055 
00066     public static MappingFile getMappingFile(File module, String filename)
00067     throws WSDeploymentDescException {
00068         LoaderManager lm = LoaderManager.getInstance();
00069         MappingFile mf = null;
00070 
00071         try {
00072             ClassLoader tools = lm.getToolsLoader();
00073             Class manager = tools.loadClass(MAPPINGFILEMANAGER_CLASSNAME);
00074             Method m = manager.getDeclaredMethod("getInstance", new Class[] {File.class, String.class});
00075             mf = (MappingFile) m.invoke(null, new Object[] {module, filename});
00076         } catch (InvocationTargetException ite) {
00077             Throwable t = ite.getTargetException();
00078             if (WSDeploymentDescException.class.isInstance(t)) {
00079                 throw (WSDeploymentDescException) ite.getTargetException();
00080             } else {
00081                 throw new WSDeploymentDescException("MappingFileManager.getInstance fails", t);
00082             }
00083         } catch (Exception e) {
00084             // TODO add i18n here
00085             throw new WSDeploymentDescException("Problems when using reflection on MappingFileManager", e);
00086         }
00087 
00088         return mf;
00089     }
00090 
00101     public static MappingFile getMappingFile(InputStream is, String filename)
00102     throws WSDeploymentDescException {
00103         LoaderManager lm = LoaderManager.getInstance();
00104         MappingFile mf = null;
00105 
00106         try {
00107             ClassLoader tools = lm.getToolsLoader();
00108             Class manager = tools.loadClass(MAPPINGFILEMANAGER_CLASSNAME);
00109             Method m = manager.getDeclaredMethod("getInstance", new Class[] {InputStream.class, String.class});
00110             mf = (MappingFile) m.invoke(null, new Object[] {is, filename});
00111         } catch (InvocationTargetException ite) {
00112             Throwable t = ite.getTargetException();
00113             if (WSDeploymentDescException.class.isInstance(t)) {
00114                 throw (WSDeploymentDescException) ite.getTargetException();
00115             } else {
00116                 throw new WSDeploymentDescException("MappingFileManager.getInstance fails", t);
00117             }
00118         } catch (Exception e) {
00119             // TODO add i18n here
00120             throw new WSDeploymentDescException("Problems when using reflection on MappingFileManager", e);
00121         }
00122 
00123         return mf;
00124     }
00125 }

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