You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by he...@apache.org on 2004/06/10 13:33:12 UTC

cvs commit: ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager JARFileEntry.java JARFile.java Packager.java

hemapani    2004/06/10 04:33:12

  Modified:    contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager
                        JARFileEntry.java JARFile.java Packager.java
  Log:
  update the packager to able to add jar files and create new jar file having all files in the both jarfiles
  
  Revision  Changes    Path
  1.3       +4 -3      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/JARFileEntry.java
  
  Index: JARFileEntry.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/JARFileEntry.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JARFileEntry.java	4 Feb 2004 04:29:56 -0000	1.2
  +++ JARFileEntry.java	10 Jun 2004 11:33:12 -0000	1.3
  @@ -55,6 +55,7 @@
   
   package org.apache.geronimo.ews.ws4j2ee.utils.packager;
   
  +import java.io.InputStream;
   import java.util.jar.JarEntry;
   
   /**
  @@ -66,9 +67,9 @@
    */
   public class JARFileEntry {
       private JarEntry jarEntry;
  -    private String source;
  +    private InputStream source;
   
  -    public JARFileEntry(String jarfilePath, String source) {
  +    public JARFileEntry(String jarfilePath, InputStream source) {
           this.jarEntry = new JarEntry(jarfilePath);
           this.source = source;
           if (this.source == null || this.jarEntry == null)
  @@ -85,7 +86,7 @@
       /**
        * @return 
        */
  -    public String getSource() {
  +    public InputStream getSource() {
           return source;
       }
   
  
  
  
  1.3       +38 -17    ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/JARFile.java
  
  Index: JARFile.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/JARFile.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JARFile.java	4 Feb 2004 04:29:55 -0000	1.2
  +++ JARFile.java	10 Jun 2004 11:33:12 -0000	1.3
  @@ -58,13 +58,18 @@
   import java.io.BufferedInputStream;
   import java.io.BufferedOutputStream;
   import java.io.File;
  -import java.io.FileInputStream;
   import java.io.FileOutputStream;
   import java.io.IOException;
   import java.io.InputStream;
  -import java.util.Vector;
  +import java.util.Enumeration;
  +import java.util.HashMap;
  +import java.util.Iterator;
   import java.util.jar.JarEntry;
  +import java.util.jar.JarFile;
   import java.util.jar.JarOutputStream;
  +import java.util.zip.ZipEntry;
  +
  +import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
   
   /**
    * create a jar file with given set of jar entries.
  @@ -79,21 +84,36 @@
    * @author Srinath Perera(hemapani@opensource.lk)
    */
   public class JARFile {
  -    private Vector jarEntries;
  +    private HashMap jarEntries;
       private File path;
   
  -    public JARFile(String path, Vector entries) {
  +    public JARFile(String path, HashMap entries) {
           jarEntries = entries;
           this.path = new File(path);
       }
   
       public JARFile(File path) {
           this.path = path;
  -        jarEntries = new Vector();
  +        jarEntries = new HashMap();
  +    }
  +    
  +    public void addJarFile(String jarFile) throws GenerationFault{
  +        try {
  +    		JarFile file = new JarFile(jarFile);
  +    		Enumeration e = file.entries();
  +    		while(e.hasMoreElements()){
  +    			ZipEntry entry = (ZipEntry)e.nextElement();
  +    			JARFileEntry newEntry = new JARFileEntry(entry.getName(),file.getInputStream(entry));
  +				this.jarEntries.put(entry.getName(),newEntry);
  +    		}
  +        } catch (IOException e) {
  +            e.printStackTrace();
  +            throw new GenerationFault(e);
  +        }
       }
   
       public void addJarEntry(JARFileEntry entry) {
  -        this.jarEntries.add(entry);
  +        this.jarEntries.put(entry.getJarEntry().getName(),entry);
       }
   
       public void createNewJarFile() throws IOException {
  @@ -104,20 +124,21 @@
   
           BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream(path));
           JarOutputStream jo = new JarOutputStream(bo);
  +		Iterator it = jarEntries.values().iterator();
  +        for (; it.hasNext();) {
   
  -        for (int i = 0; i < jarEntries.size(); i++) {
  -
  -            JARFileEntry jarentry = (JARFileEntry) jarEntries.get(i);
  +            JARFileEntry jarentry = (JARFileEntry) it.next();
               System.out.println(jarentry.getSource() + " adding ..");
  +			InputStream instream = null;
  +//            File input = new File(jarentry.getSource());
   
  -            File input = new File(jarentry.getSource());
  -            InputStream instream = null;
  -
  -            if (input.exists())
  -                instream = new FileInputStream(input);
  -            else
  -                instream = JARFile.class.getClassLoader()
  -                        .getResourceAsStream(jarentry.getSource());
  +//
  +//            if (input.exists())
  +//                instream = new FileInputStream(input);
  +//            else
  +//                instream = JARFile.class.getClassLoader()
  +//                        .getResourceAsStream(jarentry.getSource());
  +			instream = jarentry.getSource();           
   
               BufferedInputStream source = new BufferedInputStream(instream);
   
  
  
  
  1.3       +175 -163  ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/Packager.java
  
  Index: Packager.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/Packager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Packager.java	4 Feb 2004 04:29:56 -0000	1.2
  +++ Packager.java	10 Jun 2004 11:33:12 -0000	1.3
  @@ -55,16 +55,11 @@
   
   package org.apache.geronimo.ews.ws4j2ee.utils.packager;
   
  -import org.apache.geronimo.ews.ws4j2ee.toWs.UnrecoverableGenarationFault;
  -
  -import java.io.BufferedReader;
   import java.io.File;
  -import java.io.FileInputStream;
  -import java.io.FileNotFoundException;
  -import java.io.FileReader;
   import java.io.IOException;
   import java.io.InputStream;
  -import java.util.ArrayList;
  +
  +import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
   
   /**
    * <p>Package the ws4j2ee genarated classes. For the time been a file
  @@ -81,176 +76,193 @@
       public Packager() {
           ejbjar = new JARFile(new File("x-ejb.jar"));
           jaxrpcjar = new JARFile(new File("x-jaxrpc.jar"));
  -
  -        JARFileEntry jentry1 = new JARFileEntry("META-INF/services/org.apache.axis.deployment.wsdd.Provider",
  -                "org.apache.axis.deployment.wsdd.Provider");
  -        JARFileEntry jentry2 = new JARFileEntry("org.apache.axis.deployment.wsdd.WSDDJavaJ2EEProvider.class",
  -                "org/apache/axis/deployment/wsdd/WSDDJavaJ2EEProvider.class");
  -
  -        JARFileEntry jentry3 = new JARFileEntry("org.apache.axis.J2EEProvider.class",
  -                "org/apache/axis/J2EEProvider.class");
  +		InputStream in = Packager.class.getClassLoader()
  +					.getResourceAsStream("org.apache.axis.deployment.wsdd.Provider");
  +        JARFileEntry jentry1 
  +        	= new JARFileEntry("META-INF/services/org.apache.axis.deployment.wsdd.Provider",in);
  +		in = Packager.class.getClassLoader()
  +					.getResourceAsStream("org/apache/axis/deployment/wsdd/WSDDJavaJ2EEProvider.class");
  +        JARFileEntry jentry2 = new JARFileEntry("org.apache.axis.deployment.wsdd.WSDDJavaJ2EEProvider.class",in);
  +		in = Packager.class.getClassLoader()
  +					.getResourceAsStream("org/apache/axis/J2EEProvider.class");
  +        JARFileEntry jentry3 = new JARFileEntry("org.apache.axis.J2EEProvider.class",in);
   
           jaxrpcjar.addJarEntry(jentry1);
           jaxrpcjar.addJarEntry(jentry2);
           jaxrpcjar.addJarEntry(jentry3);
       }
   
  -    public void loadFromDir(String ejbDir,
  -                            String jaxrpcDir) {
  -        //get EJBClass files							
  -        FileSerachAgent searcher = new FileSerachAgent(ejbDir);
  -        searcher.addAcceptedFile(".class");
  -        ArrayList ejbClassFiles = searcher.serach();
  -
  -        for (int i = 0; i < ejbClassFiles.size(); i++) {
  -            String filename = (String) ejbClassFiles.get(i);
  -            JARFileEntry jentry =
  -                    new JARFileEntry(filename, getOutClassFileName(filename, ejbDir));
  -            ejbjar.addJarEntry(jentry);
  -            jaxrpcjar.addJarEntry(jentry);
  -        }
  -
  -        searcher = new FileSerachAgent(ejbDir);
  -        searcher.addRejectedFile(".class");
  -        searcher.setDefaultForUnspsecified(true);
  -        ArrayList ejbDDFiles = searcher.serach();
  -
  -        for (int i = 0; i < ejbDDFiles.size(); i++) {
  -            String filename = (String) ejbDDFiles.get(i);
  -            JARFileEntry jentry =
  -                    new JARFileEntry(filename, getOutDDName(filename));
  -            ejbjar.addJarEntry(jentry);
  -        }
  -
  -        searcher = new FileSerachAgent(jaxrpcDir);
  -        searcher.addAcceptedFile(".class");
  -        ArrayList jaxrpcClassFiles = searcher.serach();
  -
  -        for (int i = 0; i < jaxrpcClassFiles.size(); i++) {
  -            String filename = (String) jaxrpcClassFiles.get(i);
  -            JARFileEntry jentry =
  -                    new JARFileEntry(filename, getOutClassFileName(filename, jaxrpcDir));
  -            jaxrpcjar.addJarEntry(jentry);
  -            ejbjar.addJarEntry(jentry);
  -        }
  -
  -        searcher = new FileSerachAgent(jaxrpcDir);
  -        searcher.addRejectedFile(".class");
  -        searcher.setDefaultForUnspsecified(true);
  -        ArrayList jaxrpcDDFiles = searcher.serach();
  -
  -        for (int i = 0; i < jaxrpcDDFiles.size(); i++) {
  -            String filename = (String) jaxrpcDDFiles.get(i);
  -            JARFileEntry jentry =
  -                    new JARFileEntry(filename, getOutDDName(filename));
  -            jaxrpcjar.addJarEntry(jentry);
  -        }
  -    }
  -
  -    public void loadFromCL(String[] args) {
  -        try {
  -            BufferedReader reader = new BufferedReader(new FileReader(JARCONF_FILE));
  -            String line = null;
  -            String inputfilename = null;
  -            String outfilename = null;
  -            InputStream inputStream = null;
  -
  -            for (int i = 0; i < args.length; i++) {
  -                line = args[i];
  -                if (line.length() < 2)
  -                    continue;
  -                if (!(line.endsWith(".xml") || line.endsWith(".wsdl") || line.endsWith(".class"))) {
  -                    inputfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  -                    outfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  -                } else {
  -                    inputfilename = (line.substring(line.indexOf(':') + 1));
  -                    outfilename = "META-INF/" + (line.substring(line.indexOf(':') + 1));
  -                }
  -
  -                JARFileEntry jentry = new JARFileEntry(outfilename, inputfilename);
  -
  -                if (line.startsWith("ejb:")) {
  -                    ejbjar.addJarEntry(jentry);
  -                } else if (line.startsWith("jaxrpc:")) {
  -                    jaxrpcjar.addJarEntry(jentry);
  -                }
  -            }
  -        } catch (FileNotFoundException e) {
  -            throw new UnrecoverableGenarationFault(e.getMessage());
  -        }
  -    }
  -
  -    private void loadFromFile() {
  -        try {
  -            BufferedReader reader = new BufferedReader(new FileReader(JARCONF_FILE));
  -            String line = null;
  -            String inputfilename = null;
  -            String outfilename = null;
  -            InputStream inputStream = null;
  -
  -            while ((line = reader.readLine()) != null) {
  -                if (line.length() < 2)
  -                    continue;
  -                if (!(line.endsWith(".xml") || line.endsWith(".wsdl") || line.endsWith(".class"))) {
  -                    inputfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  -                    outfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  -                } else {
  -                    inputfilename = (line.substring(line.indexOf(':') + 1));
  -                    outfilename = "META-INF/" + (line.substring(line.indexOf(':') + 1));
  -                }
  -
  -                File file = new File(inputfilename);
  -                if (file.exists())
  -                    inputStream = new FileInputStream(file);
  -                else
  -                    inputStream = Packager.class.getClassLoader().getResourceAsStream(inputfilename);
  -
  -                JARFileEntry jentry = new JARFileEntry(outfilename, inputfilename);
  -
  -                if (line.startsWith("ejb:")) {
  -                    ejbjar.addJarEntry(jentry);
  -                } else if (line.startsWith("jaxrpc:")) {
  -                    jaxrpcjar.addJarEntry(jentry);
  -                }
  -            }
  -
  -        } catch (FileNotFoundException e) {
  -            throw new UnrecoverableGenarationFault(e.getMessage());
  -        } catch (IOException e) {
  -            throw new UnrecoverableGenarationFault(e.getMessage());
  -        }
  -
  -    }
  -
  -    public void createNewJarFile() throws IOException {
  -        ejbjar.createNewJarFile();
  -        jaxrpcjar.createNewJarFile();
  -    }
  -
  -    private String getOutClassFileName(String filename, String dir) {
  -        String out = filename.substring(dir.length());
  -        if (out.startsWith("/"))
  -            out = out.substring(1);
  -        return out;
  -    }
  -
  -    private String getOutDDName(String filename) {
  -        String out = "META-INF/" + filename.substring(filename.lastIndexOf("/"));
  -        return out;
  -    }
  -
  -    public static void main(String[] args) throws Exception {
  -        Packager packager = new Packager();
  +//    public void loadFromDir(String ejbDir,
  +//                            String jaxrpcDir) {
  +//        //get EJBClass files							
  +//        FileSerachAgent searcher = new FileSerachAgent(ejbDir);
  +//        searcher.addAcceptedFile(".class");
  +//        ArrayList ejbClassFiles = searcher.serach();
  +//
  +//        for (int i = 0; i < ejbClassFiles.size(); i++) {
  +//            String filename = (String) ejbClassFiles.get(i);
  +//            JARFileEntry jentry =
  +//                    new JARFileEntry(filename, getOutClassFileName(filename, ejbDir));
  +//            ejbjar.addJarEntry(jentry);
  +//            jaxrpcjar.addJarEntry(jentry);
  +//        }
  +//
  +//        searcher = new FileSerachAgent(ejbDir);
  +//        searcher.addRejectedFile(".class");
  +//        searcher.setDefaultForUnspsecified(true);
  +//        ArrayList ejbDDFiles = searcher.serach();
  +//
  +//        for (int i = 0; i < ejbDDFiles.size(); i++) {
  +//            String filename = (String) ejbDDFiles.get(i);
  +//            JARFileEntry jentry =
  +//                    new JARFileEntry(filename, getOutDDName(filename));
  +//            ejbjar.addJarEntry(jentry);
  +//        }
  +//
  +//        searcher = new FileSerachAgent(jaxrpcDir);
  +//        searcher.addAcceptedFile(".class");
  +//        ArrayList jaxrpcClassFiles = searcher.serach();
  +//
  +//        for (int i = 0; i < jaxrpcClassFiles.size(); i++) {
  +//            String filename = (String) jaxrpcClassFiles.get(i);
  +//            JARFileEntry jentry =
  +//                    new JARFileEntry(filename, getOutClassFileName(filename, jaxrpcDir));
  +//            jaxrpcjar.addJarEntry(jentry);
  +//            ejbjar.addJarEntry(jentry);
  +//        }
  +//
  +//        searcher = new FileSerachAgent(jaxrpcDir);
  +//        searcher.addRejectedFile(".class");
  +//        searcher.setDefaultForUnspsecified(true);
  +//        ArrayList jaxrpcDDFiles = searcher.serach();
  +//
  +//        for (int i = 0; i < jaxrpcDDFiles.size(); i++) {
  +//            String filename = (String) jaxrpcDDFiles.get(i);
  +//            JARFileEntry jentry =
  +//                    new JARFileEntry(filename, getOutDDName(filename));
  +//            jaxrpcjar.addJarEntry(jentry);
  +//        }
  +//    }
  +
  +//    public void loadFromCL(String[] args) {
  +//        try {
  +//            BufferedReader reader = new BufferedReader(new FileReader(JARCONF_FILE));
  +//            String line = null;
  +//            String inputfilename = null;
  +//            String outfilename = null;
  +//            InputStream inputStream = null;
  +//
  +//            for (int i = 0; i < args.length; i++) {
  +//                line = args[i];
  +//                if (line.length() < 2)
  +//                    continue;
  +//                if (!(line.endsWith(".xml") || line.endsWith(".wsdl") || line.endsWith(".class"))) {
  +//                    inputfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  +//                    outfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  +//                } else {
  +//                    inputfilename = (line.substring(line.indexOf(':') + 1));
  +//                    outfilename = "META-INF/" + (line.substring(line.indexOf(':') + 1));
  +//                }
  +//
  +//                JARFileEntry jentry = new JARFileEntry(outfilename, inputfilename);
  +//
  +//                if (line.startsWith("ejb:")) {
  +//                    ejbjar.addJarEntry(jentry);
  +//                } else if (line.startsWith("jaxrpc:")) {
  +//                    jaxrpcjar.addJarEntry(jentry);
  +//                }
  +//            }
  +//        } catch (FileNotFoundException e) {
  +//            throw new UnrecoverableGenarationFault(e.getMessage());
  +//        }
  +//    }
  +//
  +//    private void loadFromFile() {
  +//        try {
  +//            BufferedReader reader = new BufferedReader(new FileReader(JARCONF_FILE));
  +//            String line = null;
  +//            String inputfilename = null;
  +//            String outfilename = null;
  +//            InputStream inputStream = null;
  +//
  +//            while ((line = reader.readLine()) != null) {
  +//                if (line.length() < 2)
  +//                    continue;
  +//                if (!(line.endsWith(".xml") || line.endsWith(".wsdl") || line.endsWith(".class"))) {
  +//                    inputfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  +//                    outfilename = (line.substring(line.indexOf(':') + 1)).replace('.', '/') + ".class";
  +//                } else {
  +//                    inputfilename = (line.substring(line.indexOf(':') + 1));
  +//                    outfilename = "META-INF/" + (line.substring(line.indexOf(':') + 1));
  +//                }
  +//
  +//                File file = new File(inputfilename);
  +//                if (file.exists())
  +//                    inputStream = new FileInputStream(file);
  +//                else
  +//                    inputStream = Packager.class.getClassLoader().getResourceAsStream(inputfilename);
  +//
  +//                JARFileEntry jentry = new JARFileEntry(outfilename, inputfilename);
  +//
  +//                if (line.startsWith("ejb:")) {
  +//                    ejbjar.addJarEntry(jentry);
  +//                } else if (line.startsWith("jaxrpc:")) {
  +//                    jaxrpcjar.addJarEntry(jentry);
  +//                }
  +//            }
  +//
  +//        } catch (FileNotFoundException e) {
  +//            throw new UnrecoverableGenarationFault(e.getMessage());
  +//        } catch (IOException e) {
  +//            throw new UnrecoverableGenarationFault(e.getMessage());
  +//        }
  +//
  +//    }
  +//
  +//    public void createNewJarFile() throws IOException {
  +//        ejbjar.createNewJarFile();
  +//        jaxrpcjar.createNewJarFile();
  +//    }
  +//
  +//    private String getOutClassFileName(String filename, String dir) {
  +//        String out = filename.substring(dir.length());
  +//        if (out.startsWith("/"))
  +//            out = out.substring(1);
  +//        return out;
  +//    }
  +//
  +//    private String getOutDDName(String filename) {
  +//        String out = "META-INF/" + filename.substring(filename.lastIndexOf("/"));
  +//        return out;
  +//    }
  +//
  +    public static void main(String[] args) {
  +//        Packager packager = new Packager();
   //		if(args.length > 0)
   //			packager.loadFromCL(args);
   //		else
   //			packager.loadFromFile();
   //		packager.createNewJarFile();
  -        //packager.loadFromDir();	
  -		
  +//        packager.loadFromDir();	
  +//		
   //		File file = new File(JARCONF_FILE);
   //		if(file.exists()){
   //			file.delete();
   //		}
  +        try {
  +            JARFile jfile = new JARFile(new File(args[0]));
  +            for(int i = 1;i<args.length;i++){
  +            	jfile.addJarFile(args[i]);
  +            	System.out.println(args[i]);
  +            }
  +            jfile.createNewJarFile();
  +            
  +        } catch (GenerationFault e) {
  +            // TODO Auto-generated catch block
  +            e.printStackTrace();
  +        } catch (IOException e) {
  +            // TODO Auto-generated catch block
  +            e.printStackTrace();
  +        }
       }
   }