svn commit: r1084548 - /axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java

2011-03-23 Thread eranga
Author: eranga
Date: Wed Mar 23 11:46:40 2011
New Revision: 1084548

URL: http://svn.apache.org/viewvc?rev=1084548&view=rev
Log:
AXIS2-4780 - unions within structs not supported


Modified:

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java

Modified: 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java?rev=1084548&r1=1084547&r2=1084548&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java
 Wed Mar 23 11:46:40 2011
@@ -338,6 +338,7 @@ public class IDLVisitor /*implements AST
 private DataType findDataType(AST typeNode, String parentName) throws 
InvalidIDLException {
 return findDataType(typeNode, parentName, true, false);
 }
+
 private DataType findDataType(AST typeNode, String parentName, boolean 
root, boolean noTypeDefForSeqs) throws InvalidIDLException {
 // Check for sequences
 if (typeNode.getType()==IDLTokenTypes.LITERAL_sequence) {
@@ -387,6 +388,36 @@ public class IDLVisitor /*implements AST
 } else {
 typeName = "long";
 }
+} else if (typeNode.getType() == IDLTokenTypes.LITERAL_struct) {
+String innerModule = module + parentName + INNERTYPE_SUFFIX + 
CompositeDataType.MODULE_SEPERATOR;
+Struct innerElem = visitStruct(typeNode);
+innerElem.setModule(innerModule);
+idl.addType(innerElem);
+return innerElem;
+} else if (typeNode.getType() == IDLTokenTypes.LITERAL_valuetype) {
+String innerModule = module + parentName + INNERTYPE_SUFFIX + 
CompositeDataType.MODULE_SEPERATOR;
+ValueType innerElem = visitValueType(typeNode);
+innerElem.setModule(innerModule);
+idl.addType(innerElem);
+return innerElem;
+} else if (typeNode.getType() == IDLTokenTypes.LITERAL_exception) {
+String innerModule = module + parentName + INNERTYPE_SUFFIX + 
CompositeDataType.MODULE_SEPERATOR;
+Struct innerElem = visitException(typeNode);
+innerElem.setModule(innerModule);
+idl.addType(innerElem);
+return innerElem;
+} else if (typeNode.getType() == IDLTokenTypes.LITERAL_enum) {
+String innerModule = module + parentName + INNERTYPE_SUFFIX + 
CompositeDataType.MODULE_SEPERATOR;
+EnumType innerElem = visitEnum(typeNode);
+innerElem.setModule(innerModule);
+idl.addType(innerElem);
+return innerElem;
+} else if (typeNode.getType() == IDLTokenTypes.LITERAL_union) {
+String innerModule = module + parentName + INNERTYPE_SUFFIX + 
CompositeDataType.MODULE_SEPERATOR;
+UnionType innerElem = visitUnion(typeNode);
+innerElem.setModule(innerModule);
+idl.addType(innerElem);
+return innerElem;
 } else {
 typeName = getTypeName(typeNode);
 }




svn commit: r1085895 - /axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java

2011-03-27 Thread eranga
Author: eranga
Date: Sun Mar 27 09:13:39 2011
New Revision: 1085895

URL: http://svn.apache.org/viewvc?rev=1085895&view=rev
Log:
AXIS2-4987 - Cannot use constants as discriminators in CORBA union data types

Fixed. Updated the parseValue method.


Modified:

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java

Modified: 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java?rev=1085895&r1=1085894&r2=1085895&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
 Sun Mar 27 09:13:39 2011
@@ -631,7 +631,8 @@ public class CorbaUtil implements CorbaC
 return null;
 value = value.trim();
 Object ret = null;
-switch(type.getTypeCode().kind().value()) {
+int kind = type.getTypeCode().kind().value();
+switch(kind) {
 case TCKind._tk_long : ret = Integer.valueOf(value); break;
 case TCKind._tk_ulong : ret = Integer.valueOf(value); break;
 case TCKind._tk_longlong : ret = Long.valueOf(value); break;
@@ -653,8 +654,14 @@ public class CorbaUtil implements CorbaC
 enumValue.setValue(i);
 ret = enumValue;
 break;
+case TCKind._tk_alias:
+Typedef typedef = (Typedef) type;
+AliasValue aliasValue = new AliasValue(typedef);
+aliasValue.setValue(parseValue(typedef.getDataType(), value));
+ret = aliasValue;
+break;
 default:
-log.error("ERROR! Invalid dataType");
+log.error("ERROR! Invalid dataType (" + kind + ")");
 break;
 }
 return ret;




svn commit: r1087700 - /axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java

2011-04-01 Thread eranga
Author: eranga
Date: Fri Apr  1 13:25:48 2011
New Revision: 1087700

URL: http://svn.apache.org/viewvc?rev=1087700&view=rev
Log:
Use an empty sequence when there are no parameters in the CORBA operation.

Modified:

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java

Modified: 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java?rev=1087700&r1=1087699&r2=1087700&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
 Fri Apr  1 13:25:48 2011
@@ -203,13 +203,11 @@ public class SchemaGenerator implements 
 }
 uniqueMethods.put(operationName, operation);
 //create the schema type for the method wrapper
-List paras = operation.getParams();
-if (paras != null && paras.size() > 0) {
-sequence = new XmlSchemaSequence();
-methodSchemaType = 
createSchemaTypeForMethodPart(operationName);
-methodSchemaType.setParticle(sequence);
-}
+sequence = new XmlSchemaSequence();
+methodSchemaType = createSchemaTypeForMethodPart(operationName);
+methodSchemaType.setParticle(sequence);
 
+List paras = operation.getParams();
 List outparas = null;
 if (paras != null) {
 for (int j = 0; j < paras.size(); j++) {




svn commit: r1088207 - in /axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba: deployer/ idl/parser/ idl/types/ idl/values/ receivers/

2011-04-02 Thread eranga
Author: eranga
Date: Sun Apr  3 05:04:58 2011
New Revision: 1088207

URL: http://svn.apache.org/viewvc?rev=1088207&view=rev
Log:
AXIS2-4988 (The CORBA module does not fully support the 'any' data type.)

Fixed. Now, the CORBA module supports 'any' data type as defined in 
CORBA-WSDL/SOAP Interworking (C2WSDL) 1.2.1 
(http://www.omg.org/spec/C2WSDL/1.2.1)

Added:

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaToIDLMapping.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/types/AnyType.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/values/AnyValue.java
Modified:

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaConstants.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/types/Operation.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/types/PrimitiveDataType.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaInOnlyMessageReceiver.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaInOutAsyncMessageReceiver.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaInvoker.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaMessageReceiver.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java

Modified: 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaConstants.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaConstants.java?rev=1088207&r1=1088206&r2=1088207&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaConstants.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaConstants.java
 Sun Apr  3 05:04:58 2011
@@ -58,4 +58,8 @@ public interface CorbaConstants {
 String DEFAULT_SCHEMA_NAMESPACE_PREFIX = "xs";
 String URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";;
 String FORM_DEFAULT_UNQUALIFIED = "unqualified";
+
+String SCHEMA_TO_IDL_MAPPING_LITERAL = "SchemaToIDLMapping";
+String ANY_TYPE_NAME = "CORBA.Any";
+String TYPECODE_TYPE_NAME = "CORBA.TypeCode";
 }

Modified: 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java?rev=1088207&r1=1088206&r2=1088207&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
 Sun Apr  3 05:04:58 2011
@@ -466,6 +466,7 @@ public class CorbaDeployer extends Abstr
 axisService.addSchema(schemas);
 
axisService.setSchemaTargetNamespace(schemaGenerator.getSchemaTargetNameSpace());
 axisService.setTypeTable(schemaGenerator.getTypeTable());
+axisService.addParameter(SCHEMA_TO_IDL_MAPPING_LITERAL, 
schemaGenerator.getSchemaToIDLMapping());
 if (Java2WSDLConstants.DEFAULT_TARGET_NAMESPACE.equals(
 axisService.getTargetNamespace())) {
 
axisService.setTargetNamespace(schemaGenerator.getTargetNamespace());
@@ -548,23 +549,16 @@ public class CorbaDeployer extends Abstr
 AxisOperation operation;
 String opName = corbaOperation.getName();
 DataType returnType = corbaOperation.getReturnType();
-if (returnType == null || 
CorbaUtil.getQualifiedName(returnType).equals(VOID)) {
-if (corbaOperation.hasRaises()) {
-operation = 
AxisOperationFactory.getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_OUT);
-AxisMessage outMessage = operation.getMessage(
-WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
-outMessage.setElementQName(table.getQNamefortheType(opName + 
RESPONSE));
-outMessage.setName(opName + RESPONSE);
-} else {
-operation = 
AxisOperationFactory.getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_ONLY);
-}
+
+if (re

svn commit: r1089383 - in /axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba: deployer/ idl/parser/ idl/types/ idl/values/ receivers/

2011-04-06 Thread eranga
Author: eranga
Date: Wed Apr  6 10:19:19 2011
New Revision: 1089383

URL: http://svn.apache.org/viewvc?rev=1089383&view=rev
Log:
AXIS2-4779 (Datatype fixed is not supported)

Fixed. Bow this CORBA module supports fixed data type as well

Added:

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/types/FixedType.java
Modified:

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/ExpressionUtil.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/parser/IDLVisitor.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/values/AbstractValue.java

axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java

Modified: 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java?rev=1089383&r1=1089382&r2=1089383&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
 Wed Apr  6 10:19:19 2011
@@ -30,6 +30,7 @@ import org.apache.ws.commons.schema.*;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 
 import javax.xml.namespace.QName;
+import java.math.BigDecimal;
 import java.net.URI;
 import java.util.*;
 
@@ -343,29 +344,74 @@ public class SchemaGenerator implements 
 
 typeTable.addComplexSchema(name, eltOuter.getQName());
 } else {
-XmlSchemaComplexType complexType = new 
XmlSchemaComplexType(xmlSchema);
-XmlSchemaSequence sequence = new XmlSchemaSequence();
-XmlSchemaElement eltOuter = new XmlSchemaElement();
-eltOuter.setName(simpleName);
-eltOuter.setQName(schemaTypeName);
-complexType.setParticle(sequence);
-complexType.setName(simpleName);
-
-xmlSchema.getItems().add(eltOuter);
-xmlSchema.getElements().add(schemaTypeName, eltOuter);
-eltOuter.setSchemaTypeName(complexType.getQName());
-
-xmlSchema.getItems().add(complexType);
-xmlSchema.getSchemaTypes().add(schemaTypeName, complexType);
-
-// adding this type to the table
-typeTable.addComplexSchema(name, eltOuter.getQName());
 if (dataType instanceof Typedef) {
 Typedef typedef = (Typedef) dataType;
 DataType aliasType = typedef.getDataType();
-
sequence.getItems().add(generateSchemaforFieldsandProperties(xmlSchema, 
aliasType, "item", false));
+if (aliasType instanceof FixedType) {
+XmlSchemaSimpleType simpleType = new 
XmlSchemaSimpleType(xmlSchema);
+XmlSchemaElement eltOuter = new XmlSchemaElement();
+eltOuter.setName(simpleName);
+eltOuter.setQName(schemaTypeName);
+simpleType.setName(simpleName);
+
+xmlSchema.getItems().add(eltOuter);
+xmlSchema.getElements().add(schemaTypeName, eltOuter);
+eltOuter.setSchemaTypeName(simpleType.getQName());
+
+xmlSchema.getItems().add(simpleType);
+xmlSchema.getSchemaTypes().add(schemaTypeName, 
simpleType);
+
+typeTable.addComplexSchema(name, eltOuter.getQName());
+XmlSchemaElement elt1 = new XmlSchemaElement();
+elt1.setName(name);
+
+XmlSchemaSimpleTypeRestriction restriction = new 
XmlSchemaSimpleTypeRestriction();
+
restriction.setBaseTypeName(typeTable.getSimpleSchemaTypeName(BigDecimal.class.getName()));
+
+FixedType fixedType = (FixedType) aliasType;
+XmlSchemaTotalDigitsFacet totalDigits = new 
XmlSchemaTotalDigitsFacet(fixedType.getDigits(), false);
+restriction.getFacets().add(totalDigits);
+XmlSchemaFractionDigitsFacet fractionDigits = new 
XmlSchemaFractionDigitsFacet(fixedType.getScale(), true);
+restriction.getFacets().add(fractionDigits);
+
+simpleType.setContent(restriction);
+} else {
+XmlSchemaComplexType complexType = new 
XmlSchemaComplexType(xmlSchema);
+XmlSchemaSequence sequen