View Javadoc

1   /*
2    * Copyright 2001-2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
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      publicPackager(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  }