You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2007/06/04 06:16:31 UTC
svn commit: r544041 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2:
deployment/util/Utils.java description/AxisService.java
description/java2wsdl/SchemaGenerator.java
Author: dims
Date: Sun Jun 3 21:16:31 2007
New Revision: 544041
URL: http://svn.apache.org/viewvc?view=rev&rev=544041
Log:
consolidate duplicate code into SchemaGenerator basically maintain subset of all the methods in the service class
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java?view=diff&rev=544041&r1=544040&r2=544041
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java Sun Jun 3 21:16:31 2007
@@ -338,19 +338,6 @@
for (int i = 0; i < method.length; i++) {
JMethod jmethod = method[i];
- JAnnotation methodAnnon = jmethod.getAnnotation(AnnotationConstants.WEB_METHOD);
- if (methodAnnon != null) {
- if (methodAnnon.getValue(AnnotationConstants.EXCLUDE).asBoolean()) {
- continue;
- }
- }
- if (!jmethod.isPublic()) {
- // no need to expose , private and protected methods
- continue;
- }
- if (excludeOperations != null && excludeOperations.contains(jmethod.getSimpleName())) {
- continue;
- }
String opName = jmethod.getSimpleName();
AxisOperation operation = axisService.getOperation(new QName(opName));
// if the operation there in services.xml then try to set it schema element name
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java?view=diff&rev=544041&r1=544040&r2=544041
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java Sun Jun 3 21:16:31 2007
@@ -1629,23 +1629,8 @@
PhasesInfo pinfo = axisConfiguration.getPhasesInfo();
- List excludes = schemaGenerator.getExcludeMethods();
for (int i = 0; i < method.length; i++) {
JMethod jmethod = method[i];
- JAnnotation methodAnnon = jmethod.getAnnotation(AnnotationConstants.WEB_METHOD);
- if (methodAnnon != null) {
- if (methodAnnon.getValue(AnnotationConstants.EXCLUDE).asBoolean()) {
- continue;
- }
- }
- if (!jmethod.isPublic()) {
- // no need to expose , private and protected methods
- continue;
- } else {
- if (excludes.contains(jmethod.getSimpleName())) {
- continue;
- }
- }
AxisOperation operation = Utils.getAxisOperationforJmethod(jmethod, table);
String mep = operation.getMessageExchangePattern();
MessageReceiver mr;
@@ -1779,18 +1764,6 @@
for (int i = 0; i < method.length; i++) {
JMethod jmethod = method[i];
- JAnnotation methodAnnon = jmethod.getAnnotation(AnnotationConstants.WEB_METHOD);
- if (methodAnnon != null) {
- if (methodAnnon.getValue(AnnotationConstants.EXCLUDE).asBoolean()) {
- continue;
- }
- }
- if (!jmethod.isPublic()) {
- // no need to expose , private and protected methods
- continue;
- } else if (excludeOpeartion.contains(jmethod.getSimpleName())) {
- continue;
- }
AxisOperation operation = Utils.getAxisOperationforJmethod(jmethod, table);
// loading message receivers
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java?view=diff&rev=544041&r1=544040&r2=544041
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java Sun Jun 3 21:16:31 2007
@@ -39,6 +39,7 @@
import java.util.Map;
import java.util.Set;
import java.util.List;
+import java.lang.reflect.Array;
/*
* Copyright 2004,2005 The Apache Software Foundation.
@@ -190,118 +191,128 @@
targetNamespace = tns;
}
}
- methods = jclass.getDeclaredMethods();
- //short the elements in the array
- Arrays.sort(methods);
-
- // since we do not support overload
- HashMap uniqueMethods = new HashMap();
- XmlSchemaComplexType methodSchemaType;
- XmlSchemaSequence sequence = null;
-
- for (int i = 0; i < methods.length; i++) {
- JMethod jMethod = methods[i];
- JAnnotation methodAnnon = jMethod.getAnnotation(AnnotationConstants.WEB_METHOD);
- if (methodAnnon != null) {
- if (methodAnnon.getValue(AnnotationConstants.EXCLUDE).asBoolean()) {
- continue;
- }
- }
- String methodName = getSimpleName(jMethod);
- // no need to think abt this method , since that is system
- // config method
- if (excludeMethods.contains(getSimpleName(jMethod))) {
- continue;
- }
+ methods = processMethods(jclass.getDeclaredMethods());
- if (uniqueMethods.get(getSimpleName(jMethod)) != null) {
- log.warn("We don't support methods overloading. Ignoring [" + jMethod.getQualifiedName() + "]");
- continue;
- }
+ } else {
+ //generate the schema type for extra classes
+ extraSchemaTypeName = typeTable.getSimpleSchemaTypeName(getQualifiedName(jclass));
+ if (extraSchemaTypeName == null) {
+ generateSchema(jclass);
+ }
+ }
+ }
+ return schemaMap.values();
+ }
- if (!jMethod.isPublic()) {
- // no need to generate Schema for non public methods
- continue;
- }
- if (jMethod.getExceptionTypes().length > 0) {
- JClass[] extypes = jMethod.getExceptionTypes() ;
- for (int j= 0 ; j < extypes.length ; j++) {
- JClass extype = extypes[j] ;
- methodSchemaType = createSchemaTypeForMethodPart(extype.getSimpleName()+ "Fault");
- sequence = new XmlSchemaSequence();
- generateSchemaForType(sequence, extype, extype.getSimpleName());
- methodSchemaType.setParticle(sequence);
- }
- }
- uniqueMethods.put(getSimpleName(jMethod), jMethod);
- //create the schema type for the method wrapper
+ private JMethod[] processMethods(JMethod[] declaredMethods) throws Exception {
+ ArrayList list = new ArrayList();
+ //short the elements in the array
+ Arrays.sort(declaredMethods);
+
+ // since we do not support overload
+ HashMap uniqueMethods = new HashMap();
+ XmlSchemaComplexType methodSchemaType;
+ XmlSchemaSequence sequence = null;
+
+ for (int i = 0; i < declaredMethods.length; i++) {
+ JMethod jMethod = declaredMethods[i];
+ JAnnotation methodAnnon = jMethod.getAnnotation(AnnotationConstants.WEB_METHOD);
+ if (methodAnnon != null) {
+ if (methodAnnon.getValue(AnnotationConstants.EXCLUDE).asBoolean()) {
+ continue;
+ }
+ }
+ String methodName = getSimpleName(jMethod);
+ // no need to think abt this method , since that is system
+ // config method
+ if (excludeMethods.contains(getSimpleName(jMethod))) {
+ continue;
+ }
- uniqueMethods.put(getSimpleName(jMethod), jMethod);
- JParameter[] paras = jMethod.getParameters();
- String parameterNames[] = null;
- if (paras.length > 0) {
- parameterNames = methodTable.getParameterNames(methodName);
- sequence = new XmlSchemaSequence();
+ if (uniqueMethods.get(getSimpleName(jMethod)) != null) {
+ log.warn("We don't support methods overloading. Ignoring [" + jMethod.getQualifiedName() + "]");
+ continue;
+ }
- methodSchemaType = createSchemaTypeForMethodPart(getSimpleName(jMethod));
- methodSchemaType.setParticle(sequence);
- }
+ if (!jMethod.isPublic()) {
+ // no need to generate Schema for non public methods
+ continue;
+ }
- for (int j = 0; j < paras.length; j++) {
- JParameter methodParameter = paras[j];
- String parameterName = null;
- JAnnotation paramterAnnon =
- methodParameter.getAnnotation(AnnotationConstants.WEB_PARAM);
- if (paramterAnnon != null) {
- parameterName =
- paramterAnnon.getValue(AnnotationConstants.NAME).asString();
- }
- if (parameterName == null || "".equals(parameterName)) {
- parameterName = (parameterNames != null && parameterNames[j] != null) ?
- parameterNames[j] : getSimpleName(methodParameter);
- }
- JClass paraType = methodParameter.getType();
- if (nonRpcMethods.contains(getSimpleName(jMethod))) {
- generateSchemaForType(sequence, null, getSimpleName(jMethod));
- break;
- } else {
- generateSchemaForType(sequence, paraType, parameterName);
- }
- }
- // for its return type
- JClass returnType = jMethod.getReturnType();
+ // Maintain a list of methods we actually work with
+ list.add(jMethod);
+
+ if (jMethod.getExceptionTypes().length > 0) {
+ JClass[] extypes = jMethod.getExceptionTypes() ;
+ for (int j= 0 ; j < extypes.length ; j++) {
+ JClass extype = extypes[j] ;
+ methodSchemaType = createSchemaTypeForMethodPart(extype.getSimpleName()+ "Fault");
+ sequence = new XmlSchemaSequence();
+ generateSchemaForType(sequence, extype, extype.getSimpleName());
+ methodSchemaType.setParticle(sequence);
+ }
+ }
+ uniqueMethods.put(getSimpleName(jMethod), jMethod);
+ //create the schema type for the method wrapper
- if (!returnType.isVoidType()) {
- methodSchemaType =
- createSchemaTypeForMethodPart(getSimpleName(jMethod) + RESPONSE);
- sequence = new XmlSchemaSequence();
- methodSchemaType.setParticle(sequence);
- JAnnotation returnAnnon =
- jMethod.getAnnotation(AnnotationConstants.WEB_RESULT);
- String returnName = "return";
- if (returnAnnon != null) {
- returnName = returnAnnon.getValue(AnnotationConstants.NAME).asString();
- if (returnName != null && !"".equals(returnName)) {
- returnName = "return";
- }
- }
- if (nonRpcMethods.contains(getSimpleName(jMethod))) {
- generateSchemaForType(sequence, null, returnName);
- } else {
- generateSchemaForType(sequence, returnType, returnName);
- }
+ uniqueMethods.put(getSimpleName(jMethod), jMethod);
+ JParameter[] paras = jMethod.getParameters();
+ String parameterNames[] = null;
+ if (paras.length > 0) {
+ parameterNames = methodTable.getParameterNames(methodName);
+ sequence = new XmlSchemaSequence();
+ methodSchemaType = createSchemaTypeForMethodPart(getSimpleName(jMethod));
+ methodSchemaType.setParticle(sequence);
+ }
+
+ for (int j = 0; j < paras.length; j++) {
+ JParameter methodParameter = paras[j];
+ String parameterName = null;
+ JAnnotation paramterAnnon =
+ methodParameter.getAnnotation(AnnotationConstants.WEB_PARAM);
+ if (paramterAnnon != null) {
+ parameterName =
+ paramterAnnon.getValue(AnnotationConstants.NAME).asString();
+ }
+ if (parameterName == null || "".equals(parameterName)) {
+ parameterName = (parameterNames != null && parameterNames[j] != null) ?
+ parameterNames[j] : getSimpleName(methodParameter);
+ }
+ JClass paraType = methodParameter.getType();
+ if (nonRpcMethods.contains(getSimpleName(jMethod))) {
+ generateSchemaForType(sequence, null, getSimpleName(jMethod));
+ break;
+ } else {
+ generateSchemaForType(sequence, paraType, parameterName);
+ }
+ }
+ // for its return type
+ JClass returnType = jMethod.getReturnType();
+
+ if (!returnType.isVoidType()) {
+ methodSchemaType =
+ createSchemaTypeForMethodPart(getSimpleName(jMethod) + RESPONSE);
+ sequence = new XmlSchemaSequence();
+ methodSchemaType.setParticle(sequence);
+ JAnnotation returnAnnon =
+ jMethod.getAnnotation(AnnotationConstants.WEB_RESULT);
+ String returnName = "return";
+ if (returnAnnon != null) {
+ returnName = returnAnnon.getValue(AnnotationConstants.NAME).asString();
+ if (returnName != null && !"".equals(returnName)) {
+ returnName = "return";
}
}
- } else {
- //generate the schema type for extra classes
- extraSchemaTypeName = typeTable.getSimpleSchemaTypeName(getQualifiedName(jclass));
- if (extraSchemaTypeName == null) {
- generateSchema(jclass);
+ if (nonRpcMethods.contains(getSimpleName(jMethod))) {
+ generateSchemaForType(sequence, null, returnName);
+ } else {
+ generateSchemaForType(sequence, returnType, returnName);
}
+
}
}
- return schemaMap.values();
+ return (JMethod[]) list.toArray(new JMethod[list.size()]);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org