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/09/02 13:48:29 UTC
cvs commit: ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils AntExecuter.java
hemapani 2004/09/02 04:48:29
Modified: contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager
ModulePackager.java
contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils
AntExecuter.java
Log:
break the AntExecutor code to small methods
Revision Changes Path
1.2 +0 -1 ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/ModulePackager.java
Index: ModulePackager.java
===================================================================
RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/packager/ModulePackager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ModulePackager.java 2 Sep 2004 05:45:14 -0000 1.1
+++ ModulePackager.java 2 Sep 2004 11:48:29 -0000 1.2
@@ -98,7 +98,6 @@
ZipEntry entry = new ZipEntry(entryName);
InputStream instream = (InputStream)entries.get(entryName);
- System.out.println(entry.getName());
jarFile.putNextEntry(entry);
int anz;
while ((anz = instream.read(buf)) != -1) {
1.12 +147 -75 ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/AntExecuter.java
Index: AntExecuter.java
===================================================================
RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/AntExecuter.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- AntExecuter.java 2 Sep 2004 05:45:14 -0000 1.11
+++ AntExecuter.java 2 Sep 2004 11:48:29 -0000 1.12
@@ -17,16 +17,21 @@
package org.apache.geronimo.ews.ws4j2ee.utils;
import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
import java.util.Vector;
import java.util.jar.JarOutputStream;
import org.apache.geronimo.ews.ws4j2ee.context.J2EEWebServiceContext;
+import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationConstants;
import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
import org.apache.geronimo.ews.ws4j2ee.utils.packager.ModulePackager;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Ant;
import org.apache.tools.ant.taskdefs.Javac;
+import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.Path;
/**
@@ -68,101 +73,168 @@
// "directory in the conf/ws4j2ee.propertites Build fill ignore the faliure");
}
}
+
+
+
public void execute()throws GenerationFault {
try{
Class.forName("com.sun.tools.javac.Main");
File outDir = new File(wscontext.getMiscInfo().getOutPutPath());
File dest = new File(outDir,"build/classes");
-
- Project project = new Project();
- project.init();
- project.setCoreLoader(Thread.currentThread().getContextClassLoader());
-
-
- Javac comp = new Javac();
- comp.setProject(project);
-
- dest.mkdirs();
- comp.setDestdir(dest);
-
- Path path = new Path(project);
- path.setLocation(outDir);
- comp.setSrcdir(path);
+ compile(outDir,dest);
+ createModule(outDir,dest);
+ }catch(IOException e){
+ throw GenerationFault.createGenerationFault(e);
+ }catch(ClassNotFoundException e){
+ System.out.println("Ant file will not be run programatcally as the " +
+ "$JAVA_HOME/lib/tool.jar is not in the class path. To run the ant " +
+ "prgramatically add that jar to classpath");
+//NOW as the code is used by Geronimo we can not afford to let the build
+//failure tests beside if you use maven it works fine. it will find your maven
+//repository itself :)
+// }catch(BuildException e){
+// System.out.println(e.getMessage() +
+// "if it is a compile error you may not have set the maven reposiroty " +
+// "directory in the conf/ws4j2ee.propertites Build fill ignore the faliure");
+ }
+ }
-
- comp.init();
- comp.execute();
-
- String jarName = wscontext.getWSDLContext().getTargetPortType().getName().toLowerCase();
- int index = jarName.lastIndexOf(".");
- if(index>0){
- jarName = jarName.substring(index+1);
- }
+ private void createModule(File outDir,File dest)throws IOException{
+ String jarName = wscontext.getWSDLContext().getTargetPortType().getName().toLowerCase();
+ int index = jarName.lastIndexOf(".");
+ if(index>0){
+ jarName = jarName.substring(index+1);
+ }
- ModulePackager module = new ModulePackager(new File(outDir,jarName+"-ewsImpl.jar"));
- module.addClassFiles(dest);
+ ModulePackager module = new ModulePackager(new File(outDir,jarName+"-ewsImpl.jar"));
+ module.addClassFiles(dest);
- Vector classpathelements = wscontext.getMiscInfo().getClasspathElements();
- if(classpathelements != null){
- for(int i = 0;i<classpathelements.size();i++){
- module.addJarFile((File)classpathelements.get(i));
- }
+ Vector classpathelements = wscontext.getMiscInfo().getClasspathElements();
+ if(classpathelements != null){
+ for(int i = 0;i<classpathelements.size();i++){
+ module.addJarFile((File)classpathelements.get(i));
}
+ }
- File dir = outDir;
- File[] files = dir.listFiles();
- if(files != null){
- for(int i = 0;i<files.length;i++){
- String file = files[i].getName();
- if(files[i].isFile() &&
- !(file.endsWith(".jar")||
- file.endsWith(".zip")||
- file.endsWith(".war")||
- file.endsWith(".ear")||
- file.endsWith(".java"))
- ){
- module.addFileToJar(file,files[i]);
- }
-
+ File dir = outDir;
+ File[] files = dir.listFiles();
+ if(files != null){
+ for(int i = 0;i<files.length;i++){
+ String file = files[i].getName();
+ if(files[i].isFile() &&
+ !(file.endsWith(".jar")||
+ file.endsWith(".zip")||
+ file.endsWith(".war")||
+ file.endsWith(".ear")||
+ file.endsWith(".java"))
+ ){
+ module.addFileToJar(file,files[i]);
}
+
}
+ }
- dir = new File(outDir,"META-INF");
- files = dir.listFiles();
- if(files != null){
- for(int i = 0;i<files.length;i++){
- String file = files[i].getName();
- if(files[i].isFile() &&
- !(file.endsWith(".jar")||
- file.endsWith(".zip")||
- file.endsWith(".war")||
- file.endsWith(".ear")||
- file.endsWith(".java"))
- ){
- module.addFileToJar("META-INF/"+file,files[i]);
- }
-
+ dir = new File(outDir,"META-INF");
+ files = dir.listFiles();
+ if(files != null){
+ for(int i = 0;i<files.length;i++){
+ String file = files[i].getName();
+ if(files[i].isFile() &&
+ !(file.endsWith(".jar")||
+ file.endsWith(".zip")||
+ file.endsWith(".war")||
+ file.endsWith(".ear")||
+ file.endsWith(".java"))
+ ){
+ module.addFileToJar("META-INF/"+file,files[i]);
}
+
}
+ }
- module.finalizeJar();
+ module.finalizeJar();
+
+ }
+ private void compile(File outDir,File destDir) throws IOException{
+ Project project = new Project();
+ project.init();
+ project.setCoreLoader(Thread.currentThread().getContextClassLoader());
+
+
+ Javac comp = new Javac();
+ comp.setProject(project);
- }catch(IOException e){
- throw GenerationFault.createGenerationFault(e);
- }catch(ClassNotFoundException e){
- System.out.println("Ant file will not be run programatcally as the " +
- "$JAVA_HOME/lib/tool.jar is not in the class path. To run the ant " +
- "prgramatically add that jar to classpath");
-//NOW as the code is used by Geronimo we can not afford to let the build
-//failure tests beside if you use maven it works fine. it will find your maven
-//repository itself :)
-// }catch(BuildException e){
-// System.out.println(e.getMessage() +
-// "if it is a compile error you may not have set the maven reposiroty " +
-// "directory in the conf/ws4j2ee.propertites Build fill ignore the faliure");
+ destDir.mkdirs();
+ comp.setDestdir(destDir);
+
+ Path path = new Path(project);
+ path.setLocation(outDir);
+ comp.setSrcdir(path);
+
+ File repository = findMavenRepository();
+ if(repository != null){
+ Path compileClasspath = new Path(project);
+ FileSet fileset = new FileSet();
+ fileset.setDir(repository);
+ fileset.setIncludes("axis/**/*.jar");
+ fileset.setIncludes("geronimo-spec/**/*.jar");
+ fileset.setIncludes("geronimo/**/*.jar");
+ fileset.setIncludes("sec/**/*.jar");
+ fileset.setIncludes("dom4j/**/*.jar");
+ fileset.setIncludes("jaxb-ri/**/*.jar");
+ fileset.setIncludes("xerces/**/*.jar");
+ fileset.setIncludes("ews/**/*.jar");
+ fileset.setIncludes("openejb/**/*.jar");
+ compileClasspath.addFileset(fileset);
+ comp.setClasspath(compileClasspath);
+ }else{
+
+ }
+
+ comp.init();
+ comp.execute();
+
+ }
+
+ private File findMavenRepository() throws IOException{
+ Properties pro = new Properties();
+ InputStream prpertyIn = null;
+ File file = new File(GenerationConstants.WS4J2EE_PROPERTY_FILE);
+ if(file.exists()){
+ prpertyIn = new FileInputStream(file);
+ }else{
+ file = new File("modules/axis/target/"+GenerationConstants.WS4J2EE_PROPERTY_FILE);
+ if(file.exists()){
+ prpertyIn = new FileInputStream(file);
+ }else{
+ file = new File("target/"+GenerationConstants.WS4J2EE_PROPERTY_FILE);
+ if(file.exists()){
+ prpertyIn = new FileInputStream(file);
+ }else{
+ prpertyIn = getClass().getClassLoader().getResourceAsStream(GenerationConstants.WS4J2EE_PROPERTY_FILE);
+ }
+ }
+ }
+ if(prpertyIn!= null){
+ String location = null;
+ try{
+ pro.load(prpertyIn);
+ location = pro.getProperty(GenerationConstants.MAVEN_LOCAL_REPOSITARY);
+ }finally{
+ prpertyIn.close();
+ }
+ if(location != null){
+ File locationFile = new File(location);
+ if(locationFile.exists()){
+ return locationFile;
+ }
+ }
+
+
}
+ return null;
}