Return-Path: Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: (qmail 55641 invoked from network); 2 Apr 2009 21:13:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 2 Apr 2009 21:13:15 -0000 Received: (qmail 49616 invoked by uid 500); 2 Apr 2009 21:13:15 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 49551 invoked by uid 500); 2 Apr 2009 21:13:14 -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 49542 invoked by uid 99); 2 Apr 2009 21:13:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Apr 2009 21:13:14 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.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; Thu, 02 Apr 2009 21:13:14 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id C7FFF23889D0; Thu, 2 Apr 2009 21:12:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r761429 - in /cxf/trunk/tools/wsdlto: core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Date: Thu, 02 Apr 2009 21:12:53 -0000 To: commits@cxf.apache.org From: dkulp@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090402211253.C7FFF23889D0@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dkulp Date: Thu Apr 2 21:12:52 2009 New Revision: 761429 URL: http://svn.apache.org/viewvc?rev=761429&view=rev Log: Workaround a bug in xmlschema where namespaces are being mucked up a bit. If the schema is a file, let JAXB parse it to get line numbers. Modified: cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Modified: cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java?rev=761429&r1=761428&r2=761429&view=diff ============================================================================== --- cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java (original) +++ cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java Thu Apr 2 21:12:52 2009 @@ -146,6 +146,8 @@ // TODO: wsdl2.0 support } } + context.put(ToolConstants.SERVICE_LIST, serviceList); + Map interfaces = new LinkedHashMap(); ServiceInfo service0 = serviceList.get(0); @@ -185,6 +187,7 @@ } } } + context.remove(ToolConstants.SERVICE_LIST); // Build projects: compile classes and copy resources etc. if (context.optionSet(ToolConstants.CFG_COMPILE)) { Modified: cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?rev=761429&r1=761428&r2=761429&view=diff ============================================================================== --- cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java (original) +++ cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Thu Apr 2 21:12:52 2009 @@ -72,6 +72,8 @@ import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.helpers.DOMUtils; import org.apache.cxf.helpers.FileUtils; +import org.apache.cxf.service.model.SchemaInfo; +import org.apache.cxf.service.model.ServiceInfo; import org.apache.cxf.tools.common.ToolConstants; import org.apache.cxf.tools.common.ToolContext; import org.apache.cxf.tools.common.ToolException; @@ -196,9 +198,7 @@ } } - addSchemas(opts, schemaCompiler, schemas); - for (InputSource binding : jaxbBindings) { opts.addBindFile(binding); } @@ -242,34 +242,70 @@ initialized = true; } - private void addSchemas(Options opts, SchemaCompiler schemaCompiler, + @SuppressWarnings("unchecked") + private void addSchemas(Options opts, + SchemaCompiler schemaCompiler, SchemaCollection schemaCollection) { + + Set ids = new HashSet(); + List serviceList = (List)context.get(ToolConstants.SERVICE_LIST); + for (ServiceInfo si : serviceList) { + for (SchemaInfo sci : si.getSchemas()) { + String key = sci.getSystemId(); + if (ids.contains(key)) { + continue; + } + ids.add(key); + + Element ele = sci.getElement(); + ele = removeImportElement(ele); + if (context.get(ToolConstants.CFG_VALIDATE_WSDL) != null) { + validateSchema(ele); + } + InputSource is = new InputSource((InputStream)null); + //key = key.replaceFirst("#types[0-9]+$", ""); + is.setSystemId(key); + is.setPublicId(key); + opts.addGrammar(is); + schemaCompiler.parseSchema(key, ele); + } + } for (XmlSchema schema : schemaCollection.getXmlSchemas()) { if (XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(schema.getTargetNamespace())) { continue; } - String key = schema.getSourceURI(); - XmlSchemaSerializer xser = new XmlSchemaSerializer(); - xser.setExtReg(schemaCollection.getExtReg()); - Document[] docs; - try { - docs = xser.serializeSchema(schema, false); - } catch (XmlSchemaSerializerException e) { - throw new RuntimeException(e); - } - Element ele = docs[0].getDocumentElement(); - - ele = removeImportElement(ele); - if (context.get(ToolConstants.CFG_VALIDATE_WSDL) != null) { - validateSchema(ele); - } - InputSource is = new InputSource((InputStream)null); - // key = key.replaceFirst("#types[0-9]+$", ""); - is.setSystemId(key); - is.setPublicId(key); - opts.addGrammar(is); - schemaCompiler.parseSchema(key, ele); + if (ids.contains(key)) { + continue; + } + + if (key.startsWith("file:")) { + InputSource is = new InputSource(key); + //key = key.replaceFirst("#types[0-9]+$", ""); + opts.addGrammar(is); + schemaCompiler.parseSchema(is); + } else { + XmlSchemaSerializer xser = new XmlSchemaSerializer(); + xser.setExtReg(schemaCollection.getExtReg()); + Document[] docs; + try { + docs = xser.serializeSchema(schema, false); + } catch (XmlSchemaSerializerException e) { + throw new RuntimeException(e); + } + Element ele = docs[0].getDocumentElement(); + + ele = removeImportElement(ele); + if (context.get(ToolConstants.CFG_VALIDATE_WSDL) != null) { + validateSchema(ele); + } + InputSource is = new InputSource((InputStream)null); + //key = key.replaceFirst("#types[0-9]+$", ""); + is.setSystemId(key); + is.setPublicId(key); + opts.addGrammar(is); + schemaCompiler.parseSchema(key, ele); + } } } private String getPluginUsageString(Options opts) {