00001
00026 package org.objectweb.jonas_lib.genbase.archive;
00027
00028 import java.io.File;
00029 import java.io.FileOutputStream;
00030 import java.io.IOException;
00031 import java.io.OutputStream;
00032 import java.util.Vector;
00033 import java.util.jar.Attributes;
00034 import java.util.jar.Manifest;
00035
00036 import org.objectweb.jonas_lib.genbase.GenBaseException;
00037 import org.objectweb.jonas_lib.genbase.utils.FileUtils;
00038 import org.objectweb.jonas_lib.genbase.utils.TempRepository;
00039 import org.objectweb.jonas_lib.genbase.utils.XMLUtils;
00040
00046 public class DummyApplication extends Application {
00047
00049 private String name;
00050
00058 public DummyApplication(String name) throws GenBaseException {
00059 super(createFileArchive());
00060 this.name = name;
00061 init();
00062 }
00063
00071 private static Archive createFileArchive() throws GenBaseException {
00072 TempRepository tr = TempRepository.getInstance();
00073
00074 try {
00075 File tmp = tr.createDir();
00076 File meta = new File(tmp, "META-INF");
00077 meta.mkdirs();
00078
00079 File manifest = new File(meta, "MANIFEST.MF");
00080
00081 Manifest mf = new Manifest();
00082 mf.getMainAttributes().putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
00083
00084 OutputStream os = new FileOutputStream(manifest);
00085 mf.write(os);
00086 os.close();
00087
00088 String jonasRoot = System.getProperty("install.root");
00089 File appTemplate = new File(new File(jonasRoot), "templates" + File.separator + "wsgen" + File.separator
00090 + "application.xml");
00091 FileUtils.copy(appTemplate, meta);
00092
00093 return new FileArchive(tmp);
00094 } catch (IOException ioe) {
00095 throw new GenBaseException(ioe);
00096 }
00097 }
00098
00105 protected void init() throws GenBaseException {
00106
00107 setEjbjars(new Vector());
00108 setWebapps(new Vector());
00109 setClients(new Vector());
00110
00111 loadDescriptors();
00112
00113 XMLUtils.cleanDummyApplication(getApp());
00114
00115 }
00116
00120 public String getName() {
00121 return name;
00122 }
00123
00124 }