You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/11/09 23:55:53 UTC

svn commit: r593682 - in /incubator/cxf/branches/2.0.x-fixes: ./ common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java

Author: dkulp
Date: Fri Nov  9 14:55:51 2007
New Revision: 593682

URL: http://svn.apache.org/viewvc?rev=593682&view=rev
Log:
Merged part of revisions 593243 via svnmerge from 
https://svn.apache.org/repos/asf/incubator/cxf/trunk

........
  r593243 | dkulp | 2007-11-08 13:30:36 -0500 (Thu, 08 Nov 2007) | 3 lines
  
  Fix some issues with not generating imports into schemas
........

Modified:
    incubator/cxf/branches/2.0.x-fixes/   (props changed)
    incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
    incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java

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

Modified: incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java?rev=593682&r1=593681&r2=593682&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java Fri Nov  9 14:55:51 2007
@@ -254,6 +254,10 @@
      * @throws XMLStreamException
      */
     public static void copy(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+        copy(reader, writer, false);
+    }
+    public static void copy(XMLStreamReader reader, XMLStreamWriter writer,
+                            boolean fragment) throws XMLStreamException {
         // number of elements read in
         int read = 0;
         int event = reader.getEventType();
@@ -267,7 +271,7 @@
             case XMLStreamConstants.END_ELEMENT:
                 writer.writeEndElement();
                 read--;
-                if (read <= 0) {
+                if (read <= 0 && !fragment) {
                     return;
                 }
                 break;

Modified: incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?rev=593682&r1=593681&r2=593682&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Fri Nov  9 14:55:51 2007
@@ -692,6 +692,9 @@
                 if (!oldEl.getQName().equals(qname)) {
                     el.setSchemaTypeName(oldEl.getSchemaTypeName());
                     el.setSchemaType(oldEl.getSchemaType());
+                    if (oldEl.getSchemaTypeName() != null) {
+                        addImport(schema, oldEl.getSchemaTypeName().getNamespaceURI());
+                    }
                 }
                 mpi.setXmlSchema(el);
                 mpi.setElementQName(qname);
@@ -699,14 +702,7 @@
                 continue;
             } else {
                 el.setSchemaTypeName(mpi.getTypeQName());
-                String ns = mpi.getTypeQName().getNamespaceURI();
-                if (!ns.equals(schema.getTargetNamespace()) && !ns.equals(WSDLConstants.NU_SCHEMA_XSD)) {
-                    XmlSchemaImport is = new XmlSchemaImport();
-                    is.setNamespace(ns);
-                    if (!isExistImport(schema, ns)) {
-                        schema.getItems().add(is);
-                    }
-                }
+                addImport(schema, mpi.getTypeQName().getNamespaceURI());
             }
 
             schemaInfo.setSchema(schema);
@@ -717,6 +713,16 @@
         }
     }
 
+    private void addImport(XmlSchema schema, String ns) {
+        if (!ns.equals(schema.getTargetNamespace()) 
+            && !ns.equals(WSDLConstants.NS_SCHEMA_XSD)
+            && !isExistImport(schema, ns)) {
+            
+            XmlSchemaImport is = new XmlSchemaImport();
+            is.setNamespace(ns);
+            schema.getItems().add(is);
+        }
+    }
     private boolean isExistImport(XmlSchema schema, String ns) {
         boolean isExist = false;
 
@@ -767,7 +773,7 @@
         
         if (!isAnonymousWrapperTypes()) {
             ct.setName(wrapperName.getLocalPart());
-            el.setSchemaTypeName(wrapperName);
+            el.setSchemaTypeName(wrapperName);            
             schema.addType(ct);
             schema.getItems().add(ct);
         }
@@ -783,9 +789,14 @@
             el.setName(mpi.getName().getLocalPart());
             el.setQName(mpi.getName());
             if (mpi.isElement()) {
+                addImport(schema, mpi.getElementQName().getNamespaceURI());
                 el.setRefName(mpi.getElementQName());
             } else {
-                el.setSchemaTypeName(mpi.getTypeQName());
+                if (mpi.getTypeQName() != null) {
+                    el.setSchemaTypeName(mpi.getTypeQName());
+                    addImport(schema, mpi.getTypeQName().getNamespaceURI());
+                }
+
                 el.setSchemaType((XmlSchemaType)mpi.getXmlSchema());
                 if (schema.getElementFormDefault().getValue().equals(XmlSchemaForm.UNQUALIFIED)) {
                     mpi.setConcreteName(new QName(null, mpi.getName().getLocalPart()));