You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by dm...@apache.org on 2007/02/08 19:33:23 UTC
svn commit: r505016 - in
/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl:
ObjectReferenceVisitor.java OperationVisitor.java ParamDclVisitor.java
Author: dmiddlem
Date: Thu Feb 8 11:33:21 2007
New Revision: 505016
URL: http://svn.apache.org/viewvc?view=rev&rev=505016
Log:
Updating support for object references to fix some issues that arose while running
wsdl2java on the generate wsdl output. (YOKO-269)
Modified:
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ObjectReferenceVisitor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ObjectReferenceVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ObjectReferenceVisitor.java?view=diff&rev=505016&r1=505015&r2=505016
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ObjectReferenceVisitor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ObjectReferenceVisitor.java Thu Feb 8 11:33:21 2007
@@ -155,6 +155,12 @@
throw new RuntimeException("[ObjectReferenceVisitor: No binding available for endpoint]");
}
+ // Create a schema namespace for WS addressing and use it to create an endpoint
+ // reference type. This will be used as the type for our endpoint reference.
+ XmlSchema wsaSchema = new XmlSchema(ReferenceConstants.WSADDRESSING_NAMESPACE, schemas);
+ XmlSchemaType wsaType = new XmlSchemaType(wsaSchema);
+ wsaType.setName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
+
// Check to see if we have already defined an element for this reference type. If
// we have, then there is no need to add it to the schema again.
if (!isReferenceSchemaTypeDefined(referenceName)) {
@@ -164,12 +170,6 @@
XmlSchemaElement refElement = new XmlSchemaElement();
refElement.setQName(referenceName);
refElement.setName(referenceName.getLocalPart());
-
- // Create a schema namespace for WS addressing and use it to create an endpoint
- // reference type. This will be used as the type for our endpoint reference.
- XmlSchema wsaSchema = new XmlSchema(ReferenceConstants.WSADDRESSING_NAMESPACE, schemas);
- XmlSchemaType wsaType = new XmlSchemaType(wsaSchema);
- wsaType.setName(ReferenceConstants.WSADDRESSING_LOCAL_NAME);
refElement.setSchemaType(wsaType);
refElement.setSchemaTypeName(wsaType.getQName());
@@ -207,7 +207,7 @@
corbaObject.setBinding(bindingName);
corbaObject.setQName(new QName(typeMap.getTargetNamespace(), customScope.toString()));
corbaObject.setRepositoryID(repositoryID);
- corbaObject.setType(endpointType.getQName());
+ corbaObject.setType(wsaType.getQName());
setCorbaType(corbaObject);
// Add the object definition to the typemap. We only need to add the default
@@ -264,7 +264,7 @@
if (element instanceof BindingType) {
BindingType bt = (BindingType)element;
- if (bt.getRepositoryID().equals(repositoryID)) {
+ if (bt.getRepositoryID().equals(repositoryID)) {
return b.getQName();
}
}
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java?view=diff&rev=505016&r1=505015&r2=505016
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java Thu Feb 8 11:33:21 2007
@@ -309,10 +309,17 @@
private XmlSchemaElement addElement(XmlSchemaSequence schemaSequence,
XmlSchemaType schemaType,
- String name) {
+ String name,
+ boolean isObjectReference) {
XmlSchemaElement element = new XmlSchemaElement();
element.setName(name);
- element.setSchemaTypeName(schemaType.getQName());
+ // REVISIT: An object reference requires that we use a ref name. An element type produces
+ // a wsdltojava error.
+ if (isObjectReference) {
+ element.setRefName(schemaType.getQName());
+ } else {
+ element.setSchemaTypeName(schemaType.getQName());
+ }
schemaSequence.getItems().add(element);
@@ -335,7 +342,12 @@
XmlSchemaType schemaType = visitor.getSchemaType();
CorbaTypeImpl corbaType = visitor.getCorbaType();
- addElement(outputWrappingSequence, schemaType, RETURN_PARAMETER);
+ boolean isObjectReference = false;
+ if (corbaType instanceof org.apache.schemas.yoko.bindings.corba.Object) {
+ isObjectReference = true;
+ }
+
+ addElement(outputWrappingSequence, schemaType, RETURN_PARAMETER, isObjectReference);
addCorbaReturn(corbaType, RETURN_PARAMETER);
}
}
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java?view=diff&rev=505016&r1=505015&r2=505016
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java Thu Feb 8 11:33:21 2007
@@ -85,18 +85,23 @@
XmlSchemaType schemaType = visitor.getSchemaType();
CorbaTypeImpl corbaType = visitor.getCorbaType();
+ boolean isObjectReference = false;
+ if (corbaType instanceof org.apache.schemas.yoko.bindings.corba.Object) {
+ isObjectReference = true;
+ }
+
switch (node.getType()) {
case IDLTokenTypes.LITERAL_in:
- addElement(inWrappingSequence, schemaType, nameNode.toString());
+ addElement(inWrappingSequence, schemaType, nameNode.toString(), isObjectReference);
addCorbaParam(corbaType, ModeType.IN, nameNode.toString());
break;
case IDLTokenTypes.LITERAL_out:
- addElement(outWrappingSequence, schemaType, nameNode.toString());
+ addElement(outWrappingSequence, schemaType, nameNode.toString(), isObjectReference);
addCorbaParam(corbaType, ModeType.OUT, nameNode.toString());
break;
case IDLTokenTypes.LITERAL_inout:
- addElement(inWrappingSequence, schemaType, nameNode.toString());
- addElement(outWrappingSequence, schemaType, nameNode.toString());
+ addElement(inWrappingSequence, schemaType, nameNode.toString(), isObjectReference);
+ addElement(outWrappingSequence, schemaType, nameNode.toString(), isObjectReference);
addCorbaParam(corbaType, ModeType.INOUT, nameNode.toString());
break;
default:
@@ -116,10 +121,17 @@
private XmlSchemaElement addElement(XmlSchemaSequence schemaSequence,
XmlSchemaType schemaType,
- String name) {
+ String name,
+ boolean isObjectReference) {
XmlSchemaElement element = new XmlSchemaElement();
element.setName(name);
- element.setSchemaTypeName(schemaType.getQName());
+ // REVISIT: An object reference requires that we use a ref name. An element type produces
+ // a wsdltojava error.
+ if (isObjectReference) {
+ element.setRefName(schemaType.getQName());
+ } else {
+ element.setSchemaTypeName(schemaType.getQName());
+ }
schemaSequence.getItems().add(element);
return element;
}