1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.geronimo.ews.ws4j2ee.utils.packager;
18
19 import org.apache.commons.logging.Log;
20 import org.apache.commons.logging.LogFactory;
21 import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
22
23 import java.io.File;
24 import java.io.FileInputStream;
25 import java.io.IOException;
26 import java.util.ArrayList;
27
28 public Packager {/package-summary.html">class Packager {
29 protected static Log log =
30 LogFactory.getLog(Packager.class.getName());
31
32 private String[] args;
33
34 public Packager(String[] args) throws GenerationFault {/package-summary.html">ong> Packager(String[] args) throws GenerationFault {
35 this.args = args;
36 }
37
38 public void createJar() throws GenerationFault {
39 try {
40 JARFile jfile = new JARFile(new File(args[0]))/package-summary.html">JARFile jfile = new JARFile(new File(args[0]));
41 log.info("creating the jar " + args[0]);
42 for (int i = 1; i < args.length; i++) {
43 if (args[i].endsWith(".jar")) {
44 jfile.addJarFile(args[i]);
45 } else {
46 File file = new File(args[i]);
47 if (file.isDirectory()) {
48 ArrayList list = new ArrayList();
49 getSourceFiles(list, file);
50 for (int j = 0; j < list.size(); j++) {
51 File temp = new File((String) list.get(j));
52 String filename = temp.getAbsolutePath();
53 String checkedfor = "classes";
54 int index = filename.indexOf(checkedfor);
55 if (index > 0) {
56 filename = filename.substring(index + checkedfor.length()+1);
57 }
58 filename = filename.replace('//','/');
59 JARFileEntry newEntry =/package-summary.html">JARFileEntry newEntry =
60 JARFileEntry(filename,/package-summary.html">new JARFileEntry(filename,
61 new FileInputStream(temp));
62 jfile.addJarEntry(newEntry);
63 }
64 }
65 }
66 }
67 log.info("jar file creation done ");
68 jfile.createNewJarFile();
69 } catch (IOException e) {
70 log.error(e);
71 throw GenerationFault.createGenerationFault(e);
72 }
73 }
74
75 public static void main(String[] args) throws GenerationFault {
76 Packager packger = new Packager(args)/package-summary.html">Packager packger = new Packager(args);
77 packger.createJar();
78 }
79
80 private void getSourceFiles(ArrayList list, File location) {
81 String[] dirs = location.list();
82 if (dirs == null)
83 return;
84 for (int i = 0; i < dirs.length; i++) {
85 String filename = location.getAbsolutePath() + "/" + dirs[i];
86 File file = new File(filename);
87 if (file.isFile()) {
88 list.add(filename);
89 } else {
90 getSourceFiles(list, new File(filename));
91 }
92 }
93 }
94
95 }