Return-Path: Delivered-To: apmail-incubator-cxf-commits-archive@locus.apache.org Received: (qmail 68244 invoked from network); 29 Mar 2007 09:14:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 Mar 2007 09:14:55 -0000 Received: (qmail 82529 invoked by uid 500); 29 Mar 2007 09:15:02 -0000 Delivered-To: apmail-incubator-cxf-commits-archive@incubator.apache.org Received: (qmail 82481 invoked by uid 500); 29 Mar 2007 09:15:02 -0000 Mailing-List: contact cxf-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-commits@incubator.apache.org Received: (qmail 82471 invoked by uid 99); 29 Mar 2007 09:15:02 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Mar 2007 02:15:02 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Mar 2007 02:14:53 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 5F0201A9838; Thu, 29 Mar 2007 02:14:33 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r523641 - in /incubator/cxf/trunk/tools: common/src/main/java/org/apache/cxf/tools/common/ wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/ wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/ wsdl... Date: Thu, 29 Mar 2007 09:14:29 -0000 To: cxf-commits@incubator.apache.org From: ema@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070329091433.5F0201A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ema Date: Thu Mar 29 02:14:25 2007 New Revision: 523641 URL: http://svn.apache.org/viewvc?view=rev&rev=523641 Log: Fixed issue CXF-492 Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl (with props) incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd (with props) incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd (with props) incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd (with props) Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/Messages.properties incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java?view=diff&rev=523641&r1=523640&r2=523641 ============================================================================== --- incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java (original) +++ incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java Thu Mar 29 02:14:25 2007 @@ -235,4 +235,9 @@ } return null; } + + + public Map getNamespacePackageMap() { + return namespacePackageMap; + } } Modified: incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?view=diff&rev=523641&r1=523640&r2=523641 ============================================================================== --- incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java (original) +++ incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Thu Mar 29 02:14:25 2007 @@ -19,6 +19,7 @@ package org.apache.cxf.tools.wsdlto.databinding.jaxb; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -49,12 +50,13 @@ import org.apache.cxf.common.i18n.Message; import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.common.util.StringUtils; +import org.apache.cxf.helpers.DOMUtils; +import org.apache.cxf.helpers.FileUtils; import org.apache.cxf.service.model.InterfaceInfo; import org.apache.cxf.tools.common.ToolConstants; import org.apache.cxf.tools.common.ToolContext; import org.apache.cxf.tools.common.ToolException; import org.apache.cxf.tools.util.ClassCollector; -import org.apache.cxf.tools.util.JAXBUtils; import org.apache.cxf.tools.util.URIParserUtil; import org.apache.cxf.tools.wsdlto.core.DataBindingProfile; @@ -71,7 +73,6 @@ def = (Definition)env.get(Definition.class); SchemaCompilerImpl schemaCompiler = (SchemaCompilerImpl)XJC.createSchemaCompiler(); - ClassCollector classCollector = env.get(ClassCollector.class); ClassNameAllocatorImpl allocator = new ClassNameAllocatorImpl(classCollector); @@ -94,13 +95,10 @@ Element ele = schemaLists.get(key); this.removeImportElement(ele); String tns = ele.getAttribute("targetNamespace"); - if (StringUtils.isEmpty(tns)) { continue; } - String excludePkg = null; - if (env.hasExcludeNamespace(tns)) { excludePkg = env.getExcludePackageName(tns); if (excludePkg != null) { @@ -109,28 +107,28 @@ env.getExcludePkgList().add(URIParserUtil.getPackageName(tns)); } } - - String pkgName = null; - if (env.hasNamespace(tns) || env.get(ToolConstants.CFG_PACKAGENAME) != null) { - pkgName = env.mapPackageName(tns); - } - - pkgName = pkgName != null ? pkgName : excludePkg; - - if (pkgName != null) { - Node pkgNode = JAXBUtils.innerJaxbPackageBinding(ele, pkgName); - if (pkgNode != null) { - ele.appendChild(pkgNode); - } - } schemaCompiler.parseSchema(key, ele); } + - for (InputSource binding : jaxbBindings) { schemaCompiler.parseSchema(binding); } + + + if (env.getPackageName() != null) { + schemaCompiler.forcePackageName(env.getPackageName()); + } else { + Map nsPkgMap = env.getNamespacePackageMap(); + for (String ns : nsPkgMap.keySet()) { + File file = getCustomizedSchemaElement(ns, nsPkgMap.get(ns)); + InputSource ins = new InputSource(file.toURI().toString()); + schemaCompiler.parseSchema(ins); + FileUtils.delete(file); + } + } + rawJaxbModelGenCode = schemaCompiler.bind(); @@ -140,7 +138,7 @@ // JAXB bug. JAXB ClassNameCollector may not be invoked when generated // class is an enum. We need to use this method to add the missed file // to classCollector. - private void addedEnumClassToCollector(Map schemaList, + private void addedEnumClassToCollector(Map schemaList, ClassNameAllocatorImpl allocator) { for (Element schemaElement : schemaList.values()) { String targetNamespace = schemaElement.getAttribute("targetNamespace"); @@ -287,4 +285,42 @@ } return clone; } + + /** + * Create the jaxb binding file to customize namespace to package mapping + * + * @param namespace + * @param pkgName + * @return file + * + */ + public File getCustomizedSchemaElement(String namespace, String pkgName) { + Document doc = DOMUtils.createDocument(); + Element rootElement = doc.createElement("schema"); + rootElement.setAttribute("xmlns", ToolConstants.SCHEMA_URI); + rootElement.setAttribute("xmlns:jaxb", ToolConstants.NS_JAXB_BINDINGS); + rootElement.setAttribute("jaxb:version", "1.0"); + rootElement.setAttribute("targetNamespace", namespace); + Element annoElement = doc.createElement("annotation"); + Element appInfo = doc.createElement("appinfo"); + Element schemaBindings = doc.createElement("jaxb:schemaBindings"); + Element pkgElement = doc.createElement("jaxb:package"); + pkgElement.setAttribute("name", pkgName); + annoElement.appendChild(appInfo); + appInfo.appendChild(schemaBindings); + schemaBindings.appendChild(pkgElement); + rootElement.appendChild(annoElement); + File tmpFile = null; + try { + tmpFile = File.createTempFile("customzied", ".xsd"); + FileOutputStream fout = new FileOutputStream(tmpFile); + DOMUtils.writeXml(rootElement, fout); + fout.close(); + } catch (Exception e) { + Message msg = new Message("FAIL_TO_CREATE_JAXBBINIDNG_FILE", LOG); + throw new ToolException(msg, e); + } + return tmpFile; + } + } Modified: incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/Messages.properties URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/Messages.properties?view=diff&rev=523641&r1=523640&r2=523641 ============================================================================== --- incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/Messages.properties (original) +++ incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/Messages.properties Thu Mar 29 02:14:25 2007 @@ -20,6 +20,7 @@ # GENERATE_TYPES_ERROR = Generate types error FAIL_TO_GENERATE_TYPES = Fail to generate types +FAIL_TO_CREATE_JAXBBINIDNG_FILE = Fail to create jaxb binding file for customizing the namepace to package mapping Modified: incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java?view=diff&rev=523641&r1=523640&r2=523641 ============================================================================== --- incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java (original) +++ incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java Thu Mar 29 02:14:25 2007 @@ -104,7 +104,6 @@ } public void testNamespacePackageMapping1() throws Exception { - env.put(ToolConstants.CFG_PACKAGENAME, "org.cxf"); env.addNamespacePackageMap("http://apache.org/hello_world_soap_http/types", "org.apache.types"); env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/hello_world.wsdl")); processor.setContext(env); @@ -118,13 +117,13 @@ assertTrue(types.exists()); File[] files = apache.listFiles(); - assertEquals(1, files.length); + assertEquals(2, files.length); files = types.listFiles(); assertEquals(17, files.length); - Class clz = classLoader.loadClass("org.cxf.Greeter"); - assertTrue("Generate " + clz.getName() + "error", clz.isInterface()); - clz = classLoader.loadClass("org.apache.types.GreetMe"); + //Class clz = classLoader.loadClass("org.cxf.Greeter"); + //assertTrue("Generate " + clz.getName() + "error", clz.isInterface()); + Class clz = classLoader.loadClass("org.apache.types.GreetMe"); } public void testNamespacePackageMapping2() throws Exception { @@ -225,7 +224,6 @@ Class clz = classLoader.loadClass("org.cxf.Greeter"); assertTrue("Generate " + clz.getName() + "error", clz.isInterface()); - clz = classLoader.loadClass("org.apache.types.GreetMe"); } public void testDefaultLoadNSMappingOFF() throws Exception { @@ -356,5 +354,24 @@ Class clz = classLoader.loadClass("org.apache.cxf.no_port_or_service.types.TheComplexType"); assertNotNull(clz); } + //CXF-492 + public void testDefatultNsMap() throws Exception { + env.put(ToolConstants.CFG_ALL, ToolConstants.CFG_ALL); + env.put(ToolConstants.CFG_WSDLURL, + getLocation("/wsdl2java_wsdl/cxf492/locator.wsdl")); + processor.setContext(env); + processor.execute(); + File org = new File(output, "org"); + assertTrue("org directory is not exist", org.exists()); + File apache = new File(org, "apache"); + assertTrue(apache.exists()); + File cxf = new File(apache, "cxf"); + assertTrue(cxf.exists()); + File ws = new File(cxf, "ws"); + assertTrue(ws.exists()); + File address = new File(ws, "addressing"); + assertTrue(address.exists()); + } + } Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl?view=auto&rev=523641 ============================================================================== --- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl (added) +++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl Thu Mar 29 02:14:25 2007 @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Register a peer endpoint manager with the locator service. Once registered, + the Locator associates the peer_id with the peer endpoint manager. + + + + + + + Deregister a peer endpoint manager with the locator service. Deregistering a + peer manager also deregisters all endpoints that were registered by it. + + + + + + + Register an endpoint to become available in the locator. Once registered, an + endpoint will be returned in response to the "list_endpoints" and "query_endpoints" operations. + + + + + + + Deregister an endpoint from the locator. Once deregistered an endpoint will + no longer be returned in response to the "list_endpoints" and "query_endpoints operations. + + + + + + Lookup an endpoint from the locator based on a QName. + + + + + + List all endpoints available in the locator. + + + + + List all endpoints available in the locator based on selection filters. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/locator.wsdl ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd?view=auto&rev=523641 ============================================================================== --- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd (added) +++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd Thu Mar 29 02:14:25 2007 @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/query.xsd ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd?view=auto&rev=523641 ============================================================================== --- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd (added) +++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd Thu Mar 29 02:14:25 2007 @@ -0,0 +1,167 @@ + + + + + + + + + + + + Extensible endpoint identity type. + + + + + + + + + + Input message element for "registerPeerManager" operation. + + + + + + + + + + Output message element for "registerPeerManager" operation. + + + + + + + + + + + Input message element for "deregisterPeerManager" operation. + + + + + + + + + + + Input message element for "registerEndpoint" operation. + + + + + + + + + + + + Input message element for "deregisterEndpoint" operation. + + + + + + + + + + + + Input message element for "lookupEndpoint" operation. + + + + + + + + + + Output message element for "lookupEndpoint" operation. + + + + + + + + + + + Output message element for "listEndpoints" operation. + + + + + + + + + + + + + + + + + Input message element for "queryEndpoints" operation. + + + + + + + + + + + + + + + + + Fault exception when no endpoint available. + + + + + + + \ No newline at end of file Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/types.xsd ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd?view=auto&rev=523641 ============================================================================== --- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd (added) +++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd Thu Mar 29 02:14:25 2007 @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf492/wsaddressing.xsd ------------------------------------------------------------------------------ svn:mime-type = text/xml