Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 711EF1093D for ; Mon, 15 Jul 2013 18:04:43 +0000 (UTC) Received: (qmail 56031 invoked by uid 500); 15 Jul 2013 18:04:43 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 55981 invoked by uid 500); 15 Jul 2013 18:04:42 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 55974 invoked by uid 99); 15 Jul 2013 18:04:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Jul 2013 18:04:42 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Jul 2013 18:04:41 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 02E832388831; Mon, 15 Jul 2013 18:04:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1503382 - in /cxf/branches/2.6.x-fixes/tools: common/src/main/java/org/apache/cxf/tools/common/ common/src/main/java/org/apache/cxf/tools/util/ corba/src/test/java/org/apache/cxf/tools/corba/processors/ corba/src/test/java/org/apache/cxf/t... Date: Mon, 15 Jul 2013 18:04:20 -0000 To: commits@cxf.apache.org From: dkulp@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130715180421.02E832388831@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dkulp Date: Mon Jul 15 18:04:20 2013 New Revision: 1503382 URL: http://svn.apache.org/r1503382 Log: Merged revisions 1503350 via git cherry-pick from https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes ........ r1503350 | dkulp | 2013-07-15 13:12:15 -0400 (Mon, 15 Jul 2013) | 10 lines Merged revisions 1502891 via git cherry-pick from https://svn.apache.org/repos/asf/cxf/trunk ........ r1502891 | dkulp | 2013-07-13 17:29:51 -0400 (Sat, 13 Jul 2013) | 2 lines Fix how the wsdls are parsed to try and process qnames as qnames, not strings, so namespace prefixes can be irrelevant. ........ ........ Modified: cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/IDLToWSDLGenerationTest.java cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/WSDLToCorbaBindingTest.java cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/utils/WSDLGenerationTester.java Modified: cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java?rev=1503382&r1=1503381&r2=1503382&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java (original) +++ cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java Mon Jul 15 18:04:20 2013 @@ -23,7 +23,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; - import java.net.URI; import java.net.URISyntaxException; import java.net.URL; @@ -31,9 +30,12 @@ import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.StringTokenizer; import java.util.jar.Attributes; import java.util.jar.JarFile; @@ -43,6 +45,8 @@ import javax.xml.namespace.QName; import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.helpers.FileUtils; import org.apache.cxf.tools.util.ToolsStaxUtils; +import org.apache.ws.commons.schema.constants.Constants; + import org.junit.After; import org.junit.Assert; import org.junit.ComparisonFailure; @@ -71,7 +75,20 @@ public class ProcessorTestBase extends A protected File output; protected ToolContext env = new ToolContext(); - + protected Map> qnameAtts = new HashMap>(); + + public ProcessorTestBase() { + addQNameAttribute(new QName(Constants.URI_2001_SCHEMA_XSD, "element"), "type"); + } + + protected final void addQNameAttribute(QName element, String local) { + Set a = qnameAtts.get(element); + if (a == null) { + qnameAtts.put(element, new HashSet()); + a = qnameAtts.get(element); + } + a.add(local); + } @After public void tearDown() { @@ -296,7 +313,7 @@ public class ProcessorTestBase extends A } Tag sourceTag = getFromSource(source, expectedTag); if (sourceTag == null) { - throw new AssertionError("\n" + expected.toString() + throw new AssertionError("\n" + expectedTag.toString() + " is missing in the source file:" + "\n" + source.toString()); } @@ -316,8 +333,8 @@ public class ProcessorTestBase extends A public void assertWsdlEquals(final File expected, final File source, List attr, List tag) throws Exception { - Tag expectedTag = ToolsStaxUtils.getTagTree(expected, attr); - Tag sourceTag = ToolsStaxUtils.getTagTree(source, attr); + Tag expectedTag = ToolsStaxUtils.getTagTree(expected, attr, qnameAtts); + Tag sourceTag = ToolsStaxUtils.getTagTree(source, attr, qnameAtts); assertTagEquals(expectedTag, sourceTag, attr, tag); } @@ -328,8 +345,8 @@ public class ProcessorTestBase extends A public void assertWsdlEquals(final InputStream expected, final InputStream source, List attr, List tag) throws Exception { - Tag expectedTag = ToolsStaxUtils.getTagTree(expected, attr); - Tag sourceTag = ToolsStaxUtils.getTagTree(source, attr); + Tag expectedTag = ToolsStaxUtils.getTagTree(expected, attr, qnameAtts); + Tag sourceTag = ToolsStaxUtils.getTagTree(source, attr, qnameAtts); assertTagEquals(expectedTag, sourceTag, attr, tag); } Modified: cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java?rev=1503382&r1=1503381&r2=1503382&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java (original) +++ cxf/branches/2.6.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java Mon Jul 15 18:04:20 2013 @@ -26,7 +26,10 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.Stack; + import javax.xml.namespace.QName; import javax.xml.stream.XMLStreamReader; @@ -101,9 +104,17 @@ public final class ToolsStaxUtils { public static Tag getTagTree(final File source, final List ignoreAttr) throws Exception { InputStream is = new BufferedInputStream(new FileInputStream(source)); - return getTagTree(is, ignoreAttr); + return getTagTree(is, ignoreAttr, null); } - public static Tag getTagTree(final InputStream is, final List ignoreAttr) throws Exception { + public static Tag getTagTree(final File source, + final List ignoreAttr, + Map> types) throws Exception { + InputStream is = new BufferedInputStream(new FileInputStream(source)); + return getTagTree(is, ignoreAttr, types); + } + public static Tag getTagTree(final InputStream is, + final List ignoreAttr, + Map> types) throws Exception { Tag root = new Tag(); root.setName(new QName("root", "root")); @@ -123,25 +134,25 @@ public final class ToolsStaxUtils { } for (int i = 0; i < reader.getAttributeCount(); i++) { - if ("type".equals(reader.getAttributeLocalName(i)) - && "element".equals(reader.getLocalName())) { - //probably a qname to a type, pull namespace in differently - String tp = reader.getAttributeValue(i); - if (tp.contains(":")) { - String ns = tp.substring(0, tp.indexOf(":")); - if ("tns".equals(ns)) { - tp = tp.substring(tp.indexOf(":") + 1); - } else { - ns = reader.getNamespaceURI(ns); - tp = "{" + ns + "}" + tp.substring(tp.indexOf(":") + 1); + //probably a qname to a type, pull namespace in differently + String tp = reader.getAttributeValue(i); + if (isType(types, reader.getName(), reader.getAttributeName(i))) { + int idx = tp.indexOf(':'); + if (idx > 0 && tp.length() > idx && tp.substring(idx + 1).indexOf(':') == -1) { + String pfx = tp.substring(0, idx); + String ns = reader.getNamespaceURI(pfx); + if (ns != null) { + tp = "{" + ns + "}" + tp.substring(idx + 1); + } + } else { + String ns = reader.getNamespaceURI(""); + if (ns != null) { + tp = "{" + ns + "}" + tp.substring(idx + 1); } } - newTag.getAttributes().put(reader.getAttributeName(i), - tp); - } else { - newTag.getAttributes().put(reader.getAttributeName(i), - reader.getAttributeValue(i)); } + newTag.getAttributes().put(reader.getAttributeName(i), + tp); } newTag.setParent(currentTag); @@ -160,8 +171,12 @@ public final class ToolsStaxUtils { return root; } - public Tag getLastTag(Tag tag) { - int lastIndex = tag.getTags().size() - 1; - return tag.getTags().get(lastIndex); + private static boolean isType(Map> types, QName name, QName attributeName) { + if (types == null) { + return false; + } + Set a = types.get(name); + return a != null && a.contains(attributeName.getLocalPart()); } -} + +} \ No newline at end of file Modified: cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/IDLToWSDLGenerationTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/IDLToWSDLGenerationTest.java?rev=1503382&r1=1503381&r2=1503382&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/IDLToWSDLGenerationTest.java (original) +++ cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/IDLToWSDLGenerationTest.java Mon Jul 15 18:04:20 2013 @@ -34,11 +34,14 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.xml.namespace.QName; +import org.apache.cxf.binding.corba.wsdl.CorbaConstants; import org.apache.cxf.tools.common.ProcessorTestBase; import org.apache.cxf.tools.corba.common.ProcessorEnvironment; import org.apache.cxf.tools.corba.common.ToolCorbaConstants; import org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -51,6 +54,28 @@ public class IDLToWSDLGenerationTest ext @Before public void setUp() { + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "anonarray"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "struct"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "member"), "idltype"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "object"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "object"), "binding"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "enum"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "union"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "unionbranch"), "idltype"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "anonstring"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "anonwstring"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "exception"), "idltype"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "exception"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "fixed"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "const"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "const"), "idltype"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "array"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "array"), "elemtype"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "alias"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "alias"), "basetype"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "anonsequence"), "type"); + addQNameAttribute(new QName(CorbaConstants.NU_WSDL_CORBA, "anonsequence"), "elemtype"); + } @After @@ -74,6 +99,7 @@ public class IDLToWSDLGenerationTest ext InputStream origStream = getClass().getResourceAsStream(expectedWsdlFilename); InputStream actualStream = new ByteArrayInputStream(out.toString().getBytes()); + System.out.println(out.toString()); assertWsdlEquals(origStream, actualStream, DEFAULT_IGNORE_ATTR, DEFAULT_IGNORE_TAG); } Modified: cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/WSDLToCorbaBindingTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/WSDLToCorbaBindingTest.java?rev=1503382&r1=1503381&r2=1503382&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/WSDLToCorbaBindingTest.java (original) +++ cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/processors/WSDLToCorbaBindingTest.java Mon Jul 15 18:04:20 2013 @@ -49,6 +49,7 @@ import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.tools.corba.common.WSDLCorbaFactory; import org.apache.cxf.tools.corba.processors.wsdl.WSDLToCorbaBinding; import org.apache.cxf.tools.corba.processors.wsdl.WSDLToIDLAction; + import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -506,7 +507,6 @@ public class WSDLToCorbaBindingTest exte Definition model = generator.generateCORBABinding(); Document document = writer.getDocument(model); - Element typemap = getElementNode(document, "corba:typeMapping"); assertNotNull(typemap); assertEquals(1, typemap.getElementsByTagName("corba:enum").getLength()); Modified: cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/utils/WSDLGenerationTester.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/utils/WSDLGenerationTester.java?rev=1503382&r1=1503381&r2=1503382&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/utils/WSDLGenerationTester.java (original) +++ cxf/branches/2.6.x-fixes/tools/corba/src/test/java/org/apache/cxf/tools/corba/utils/WSDLGenerationTester.java Mon Jul 15 18:04:20 2013 @@ -103,11 +103,19 @@ public class WSDLGenerationTester { //skip this atribute origAttrCount--; } else { + String s1 = orig.getAttributeValue(origAttrName.getNamespaceURI(), + origAttrName.getLocalPart()); + String s2 = actual.getAttributeValue(origAttrName.getNamespaceURI(), + origAttrName.getLocalPart()); + + if (!s1.equals(s2) + && (s1.contains(":") || s2.contains(":"))) { + s1 = mapToQName(orig, s1); + s2 = mapToQName(actual, s2); + } + Assert.assertEquals("Attribute " + origAttrName + " not found or value not matching", - orig.getAttributeValue(origAttrName.getNamespaceURI(), - origAttrName.getLocalPart()), - actual.getAttributeValue(origAttrName.getNamespaceURI(), - origAttrName.getLocalPart())); + s1, s2); } } for (int i = 0; i < actualAttrCount; i++) { @@ -123,6 +131,22 @@ public class WSDLGenerationTester { actualAttrCount); } + private String mapToQName(XMLStreamReader reader, String s2) { + int idx = s2.indexOf(':'); + String ns = null; + if (idx == -1) { + ns = reader.getNamespaceURI(""); + } else { + ns = reader.getNamespaceURI(s2.substring(0, idx)); + if (ns == null) { + ns = reader.getNamespaceURI(""); + } else { + s2 = s2.substring(idx + 1); + } + } + return new QName(ns, s2).toString(); + } + private void compareEndElement(XMLStreamReader orig, XMLStreamReader actual) throws Exception { Assert.assertEquals("End element is not matched", orig.getName(), actual.getName());