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 2008/08/15 20:44:22 UTC
svn commit: r686314 -
/cxf/trunk/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java
Author: dkulp
Date: Fri Aug 15 11:44:21 2008
New Revision: 686314
URL: http://svn.apache.org/viewvc?rev=686314&view=rev
Log:
[CXF-1751] Patch to handle ws-addressing refrences from Matteo applied.
Modified:
cxf/trunk/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java
Modified: cxf/trunk/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java?rev=686314&r1=686313&r2=686314&view=diff
==============================================================================
--- cxf/trunk/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java (original)
+++ cxf/trunk/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java Fri Aug 15 11:44:21 2008
@@ -462,10 +462,24 @@
scopedName = new Scope(currentScope, node);
}
if (scopedNames.getScope(scopedName) != null) {
- XmlSchema wsaSchema = new XmlSchema(ReferenceConstants.WSADDRESSING_NAMESPACE, schemas);
- XmlSchemaType wsaType = new XmlSchemaType(wsaSchema);
- wsaType.setName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
- result = wsaType;
+ XmlSchema wsaSchema = null;
+ // check whether a schema with the required namespace has already been created
+ XmlSchema[] existingSchemas = schemas.getXmlSchemas();
+ for (XmlSchema xs : existingSchemas) {
+ if (xs.getTargetNamespace().equals(ReferenceConstants.WSADDRESSING_NAMESPACE)) {
+ // if it has been created, reuse it
+ wsaSchema = xs;
+ result = wsaSchema.getTypeByName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
+ break;
+ }
+ }
+ // if not, create a new one and create the WS-Addressing EndpointReferenceType
+ if (wsaSchema == null) {
+ wsaSchema = new XmlSchema(ReferenceConstants.WSADDRESSING_NAMESPACE, schemas);
+ XmlSchemaType wsaType = new XmlSchemaType(wsaSchema);
+ wsaType.setName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
+ result = wsaType;
+ }
}
currentScope = currentScope.getParent();
}
@@ -478,10 +492,24 @@
scopedName = scope;
}
if (scopedNames.getScope(scopedName) != null) {
- XmlSchema wsaSchema = new XmlSchema(ReferenceConstants.WSADDRESSING_NAMESPACE, schemas);
- XmlSchemaType wsaType = new XmlSchemaType(wsaSchema);
- wsaType.setName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
- result = wsaType;
+ XmlSchema wsaSchema = null;
+ // check whether a schema with the required namespace has already been created
+ XmlSchema[] existingSchemas = schemas.getXmlSchemas();
+ for (XmlSchema xs : existingSchemas) {
+ if (xs.getTargetNamespace().equals(ReferenceConstants.WSADDRESSING_NAMESPACE)) {
+ // if it has been created, reuse it
+ wsaSchema = xs;
+ result = wsaSchema.getTypeByName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
+ break;
+ }
+ }
+ // if not, create a new one and create the WS-Addressing EndpointReferenceType
+ if (wsaSchema == null) {
+ wsaSchema = new XmlSchema(ReferenceConstants.WSADDRESSING_NAMESPACE, schemas);
+ XmlSchemaType wsaType = new XmlSchemaType(wsaSchema);
+ wsaType.setName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
+ result = wsaType;
+ }
}
}