00001
00026 package org.objectweb.jonas_lib.genclientstub.modifier;
00027
00028 import java.io.File;
00029 import java.util.Iterator;
00030 import java.util.List;
00031
00032 import org.objectweb.jonas_lib.deployment.api.EjbRefDesc;
00033 import org.objectweb.jonas_lib.genbase.GenBaseException;
00034 import org.objectweb.jonas_lib.genbase.archive.Archive;
00035 import org.objectweb.jonas_lib.genbase.archive.Ejb;
00036 import org.objectweb.jonas_lib.genbase.archive.EjbJar;
00037 import org.objectweb.jonas_lib.genclientstub.ClientStubGenException;
00038 import org.objectweb.jonas_lib.genclientstub.generator.Generator;
00039 import org.objectweb.jonas_lib.genclientstub.generator.GeneratorFactory;
00040
00041 import org.objectweb.util.monolog.api.BasicLevel;
00042
00047 public class EjbJarModifier extends AbsArchiveModifier {
00048
00052 private EjbJar ejbjar = null;
00053
00058 public EjbJarModifier(EjbJar ejbjar) {
00059 super(ejbjar);
00060 this.ejbjar = ejbjar;
00061 }
00062
00073 public Archive modify() throws GenBaseException, ClientStubGenException {
00074
00075 getLogger().log(BasicLevel.INFO, "Processing EjbJar " + ejbjar.getName());
00076
00077 GeneratorFactory gf = GeneratorFactory.getInstance();
00078
00079
00080 generateFoundStubs(gf.getConfiguration(), ejbjar);
00081
00082
00083 List ejbs = ejbjar.getEjbs();
00084 for (Iterator i = ejbs.iterator(); i.hasNext();) {
00085 Ejb ejb = (Ejb) i.next();
00086 List ejbRefs = ejb.getEjbRefDescs();
00087 for (Iterator j = ejbRefs.iterator(); j.hasNext();) {
00088 EjbRefDesc ejbRef = (EjbRefDesc) j.next();
00089
00090
00091 Generator g = new Generator(gf.getConfiguration(), ejbRef, null, ejbjar);
00092 g.generate();
00093 g.compile();
00094
00095 g.addFiles(ejbjar);
00096 }
00097 }
00098
00099 return save(gf.getConfiguration(), "ejbjars" + File.separator + ejbjar.getRootFile().getName());
00100
00101 }
00102 }