cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ff...@apache.org
Subject svn commit: r1063238 - in /cxf/branches/2.3.x-fixes: ./ tools/corba/src/main/java/org/apache/cxf/tools/corba/ tools/corba/src/main/java/org/apache/cxf/tools/corba/idlpreprocessor/ tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ too...
Date Tue, 25 Jan 2011 11:44:31 GMT
Author: ffang
Date: Tue Jan 25 11:44:30 2011
New Revision: 1063238

URL: http://svn.apache.org/viewvc?rev=1063238&view=rev
Log:
Merged revisions 1063236 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1063236 | ffang | 2011-01-25 19:35:43 +0800 (二, 25  1 2011) | 1 line
  
  [CXF-3280]idl2wsdl does not process multiple include directories -I <dir> correctly.
........

Added:
    cxf/branches/2.3.x-fixes/tools/corba/src/test/resources/idl/Parent.idl
      - copied unchanged from r1063236, cxf/trunk/tools/corba/src/test/resources/idl/Parent.idl
    cxf/branches/2.3.x-fixes/tools/corba/src/test/resources/idl/expected_Parent.wsdl
      - copied unchanged from r1063236, cxf/trunk/tools/corba/src/test/resources/idl/expected_Parent.wsdl
    cxf/branches/2.3.x-fixes/tools/corba/src/test/resources/idl/subdir1/
      - copied from r1063236, cxf/trunk/tools/corba/src/test/resources/idl/subdir1/
    cxf/branches/2.3.x-fixes/tools/corba/src/test/resources/idl/subdir1/Included1.idl
      - copied unchanged from r1063236, cxf/trunk/tools/corba/src/test/resources/idl/subdir1/Included1.idl
    cxf/branches/2.3.x-fixes/tools/corba/src/test/resources/idl/subdir2/
      - copied from r1063236, cxf/trunk/tools/corba/src/test/resources/idl/subdir2/
    cxf/branches/2.3.x-fixes/tools/corba/src/test/resources/idl/subdir2/Included2.idl
      - copied unchanged from r1063236, cxf/trunk/tools/corba/src/test/resources/idl/subdir2/Included2.idl
Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/IDLToWSDL.java
    cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/idlpreprocessor/DefaultIncludeResolver.java
    cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/IDLProcessor.java
    cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/OperationVisitor.java
    cxf/branches/2.3.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/IDLToWSDLTest.java

Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/IDLToWSDL.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/IDLToWSDL.java?rev=1063238&r1=1063237&r2=1063238&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/IDLToWSDL.java
(original)
+++ cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/IDLToWSDL.java
Tue Jan 25 11:44:30 2011
@@ -51,7 +51,9 @@ public class IDLToWSDL extends AbstractC
     }
 
     private Set getArrayKeys() {
-        return new HashSet<String>();
+        Set<String> arrayKeys = new HashSet<String>();
+        arrayKeys.add(ToolCorbaConstants.CFG_INCLUDEDIR);
+        return arrayKeys;
     }
 
     public void execute(boolean exitOnFinish) {
@@ -144,7 +146,7 @@ public class IDLToWSDL extends AbstractC
         
         if (env.optionSet(ToolCorbaConstants.CFG_INCLUDEDIR)) {
             env.put(ToolCorbaConstants.CFG_INCLUDEDIR,
-                    doc.getParameter(ToolCorbaConstants.CFG_INCLUDEDIR));
+                    doc.getParameters(ToolCorbaConstants.CFG_INCLUDEDIR));
         }
         if (env.optionSet(ToolCorbaConstants.CFG_WSDLOUTPUTFILE)) {
             env.put(ToolCorbaConstants.CFG_WSDLOUTPUTFILE,

Modified: cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/idlpreprocessor/DefaultIncludeResolver.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/idlpreprocessor/DefaultIncludeResolver.java?rev=1063238&r1=1063237&r2=1063238&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/idlpreprocessor/DefaultIncludeResolver.java
(original)
+++ cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/idlpreprocessor/DefaultIncludeResolver.java
Tue Jan 25 11:44:30 2011
@@ -20,10 +20,17 @@
 package org.apache.cxf.tools.corba.idlpreprocessor;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 import java.util.Arrays;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.cxf.common.logging.LogUtils;
+
 
 /**
  * @author lk
@@ -31,6 +38,7 @@ import java.util.Arrays;
  */
 public class DefaultIncludeResolver implements IncludeResolver {
 
+    private static final Logger LOG = LogUtils.getL7dLogger(DefaultIncludeResolver.class);
     private final File[] userIdlDirs;
 
     public DefaultIncludeResolver(File... idlDirs) {
@@ -61,8 +69,21 @@ public class DefaultIncludeResolver impl
                 // offload slash vs backslash to URL machinery
                 URL searchDirURL = searchDirURI.toURL();
                 final URL url = new URL(searchDirURL, spec);
-                // TODO: if "file in URL exists"
-                return url;
+                
+                // Check if file in URL exists, otherwise try next searchDir 
+                try {
+                    // If we can open a stream, the file exists 
+                    InputStream str = url.openStream();
+                    str.close();
+                    return url;
+                } catch (IOException ioe) {
+                    if (LOG.isLoggable(Level.WARNING)) {
+                        LOG.fine("Not able to resolve " 
+                                 + spec  
+                                 + "from  " 
+                                 + searchDirURL.toString());
+                    }
+                } 
             } catch (MalformedURLException e) {
                 final PreprocessingException preprocessingException = new PreprocessingException(
                     "Unable to resolve user include '" + spec + "' in '"

Modified: cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/IDLProcessor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/IDLProcessor.java?rev=1063238&r1=1063237&r2=1063238&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/IDLProcessor.java
(original)
+++ cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/IDLProcessor.java
Tue Jan 25 11:44:30 2011
@@ -21,7 +21,6 @@ package org.apache.cxf.tools.corba.proce
 import java.io.File;
 import java.net.URL;
 import java.util.HashMap;
-import java.util.StringTokenizer;
 
 import antlr.TokenStreamHiddenTokenFilter;
 import antlr.collections.AST;
@@ -85,17 +84,13 @@ public class IDLProcessor implements Pro
 
     private DefaultIncludeResolver getDefaultIncludeResolver(File currentDir) {
         DefaultIncludeResolver includeResolver;
-        if (env.optionSet(ToolCorbaConstants.CFG_INCLUDEDIR)) {                        
-            String includedDirs = env.get(ToolCorbaConstants.CFG_INCLUDEDIR).toString();
-            StringTokenizer tok = new StringTokenizer(includedDirs, "");
-            File[] includeDirs = new File[tok.countTokens()];
-            int i = 0;
-            while (tok.hasMoreTokens()) {
-                String includeDir = tok.nextToken();
-                File infile = new File(includeDir);
-                includeDirs[i] = infile;
-                i++;
+        if (env.optionSet(ToolCorbaConstants.CFG_INCLUDEDIR)) {      
+            String[] includedDirs = (String[]) env.get(ToolCorbaConstants.CFG_INCLUDEDIR);
+            File[] includeDirs = new File[includedDirs.length];
+            for (int i = 0; i < includedDirs.length; i++) {
+                includeDirs[i] = new File(includedDirs[i]);
             }
+            
             includeResolver = new DefaultIncludeResolver(includeDirs);
         } else {
             includeResolver = new DefaultIncludeResolver(currentDir);

Modified: cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/OperationVisitor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/OperationVisitor.java?rev=1063238&r1=1063237&r2=1063238&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/OperationVisitor.java
(original)
+++ cxf/branches/2.3.x-fixes/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/OperationVisitor.java
Tue Jan 25 11:44:30 2011
@@ -89,7 +89,11 @@ public class OperationVisitor extends Vi
                                  WSDLASTVisitor wsdlVisitor) {
         boolean result = false;
         AST node2 = node.getFirstChild();
-        if (node2.getType() == IDLTokenTypes.LITERAL_oneway) {
+        
+        if (null == node2) {
+           // throw whatever appropriate error 
+           // or do nothing and return false
+        } else if (node2.getType() == IDLTokenTypes.LITERAL_oneway) {
             result = true;
         } else {
             int type = node2.getType();

Modified: cxf/branches/2.3.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/IDLToWSDLTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/IDLToWSDLTest.java?rev=1063238&r1=1063237&r2=1063238&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/IDLToWSDLTest.java
(original)
+++ cxf/branches/2.3.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/IDLToWSDLTest.java
Tue Jan 25 11:44:30 2011
@@ -319,4 +319,24 @@ public class IDLToWSDLTest extends ToolT
         assertEquals("IDLToWSDL Failed", noError, exc);
         doTestGeneratedWsdl(expected, actual);
     }
+    
+    public void testMultipleIncludes() throws Exception {
+        File input = new File(getClass().getResource("/idl/Parent.idl").toURI());
+        File actual = new File(output, "Parent.wsdl");
+        File expected = 
+            new File(getClass().getResource("/idl/expected_Parent.wsdl").toURI());
+        
+        File include1Dir = new File(getClass().getResource("/idl/subdir1").toURI());
+        File include2Dir = new File(getClass().getResource("/idl/subdir2").toURI());
+        
+        String[] args = new String[] {"-ow", "Parent.wsdl",
+                                      "-o", output.toString(),
+                                      "-I", include1Dir.toString(),
+                                      "-I", include2Dir.toString(),
+                                      input.toString()
+        };
+        int exc = execute(args);
+        assertEquals("IDLToWSDL Failed", noError, exc);
+        doTestGeneratedWsdl(expected, actual);
+    }
 }



Mime
View raw message