[ 
https://issues.apache.org/jira/browse/CXF-1798?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benson Margulies resolved CXF-1798.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.4

If it works, it works.

> DynamicClientFactory does not work when called through Ant
> ----------------------------------------------------------
>
>                 Key: CXF-1798
>                 URL: https://issues.apache.org/jira/browse/CXF-1798
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.5
>         Environment: I am using Groovy 1.5.6 with GroovyWS 0.3.1 on Windows 
> XP. I am calling Groovy via Ant 1.7.0.
>            Reporter: Peter Connolly
>            Priority: Minor
>             Fix For: 2.1.4
>
>         Attachments: build.xml, GroovyWSTest.java, output.log
>
>
> I've created GroovyWS code to talk to a web service.  GroovyWS uses ApacheCXF 
> 2.0.5 to dynamically create classes for the web services objects.  When this 
> code is run via a batch script, it runs correctly.  When this code is run via 
> Ant, I get this error:
>      [java]  javac: invalid flag: 
> C:/DOCUME~1/PCONNO~1/LOCALS~1/Temp/org.apache.
> [EMAIL PROTECTED]
> I think there are a couple of defects in the class DynamicClientFactory.  
> First, in the compileJavaSrc method, the call to javac is constructed without 
> checking if the classpath is populated.  The code could be modified to 
> conditionally append the classpath similar to this:
> static boolean compileJavaSrc(Path classPath, Path srcPath, String dest) {
>         String[] srcList = srcPath.list();
>         List<String> javacCommand = new ArrayList<String>();
>         javacCommand.add("javac");
>         if(classPath != null && classPath.size() > 0){
>             javacCommand.add("-classpath");
>             javacCommand.add(classPath.toString());
>         }
>         javacCommand.add("-d");
>         javacCommand.add(dest.toString());
>         javacCommand.add("-target");
>         javacCommand.add("1.5");
>         for (int i = 0; i < srcList.length; i++) {
>             javacCommand.add(srcList[i]);
>         }
>         org.apache.cxf.tools.util.Compiler javaCompiler
>             = new org.apache.cxf.tools.util.Compiler();
>         return javaCompiler.internalCompile(javacCommand.toArray(new 
> String[javacCommand.size()]), javacCommand.size());
>     } 
> The next issue with DynamicClientFactory is the setupClasspath method.  This 
> method explicitly tests if the ClassLoader inherits from URLClassLoader and 
> then appends the URLs from that URLClassloader to its own classpath.  The 
> AntClassLoader, unfortunately, does not extend from the URLClassLoader.  When 
> the classpath is constructed it is empty.  If the compileJavaSrc method is 
> fixed as above many calls will still fail because there is a dependency on 
> classes that are not present during compilation (i.e. GroovyWS classes).   

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to