You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2007/02/07 11:27:34 UTC
svn commit: r504490 - in /webservices/axis2/trunk/java/modules:
adb/src/org/apache/axis2/databinding/utils/
adb/src/org/apache/axis2/rpc/client/ adb/src/org/apache/axis2/rpc/receivers/
kernel/src/org/apache/axis2/deployment/ kernel/src/org/apache/axis2...
Author: deepal
Date: Wed Feb 7 02:27:33 2007
New Revision: 504490
URL: http://svn.apache.org/viewvc?view=rev&rev=504490
Log:
applied the patch AXIS2-1606
Modified:
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java
Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java Wed Feb 7 02:27:33 2007
@@ -78,6 +78,15 @@
QName elemntNameSpace = null;
if (typeTable != null && qualified) {
QName qNamefortheType = typeTable.getQNamefortheType(beanObject.getClass().getName());
+ if (qNamefortheType == null) {
+ qNamefortheType = typeTable.getQNamefortheType(
+ beanObject.getClass().getPackage().getName());
+ }
+ if (qNamefortheType == null) {
+ throw new AxisFault("Mapping qname not fond for the package: " +
+ beanObject.getClass().getPackage().getName());
+ }
+
elemntNameSpace = new QName(qNamefortheType.getNamespaceURI(),
"elementName");
}
@@ -196,7 +205,7 @@
object.add(value);
}
}
- return new ADBXMLStreamReaderImpl(beanName, object.toArray(), null, typeTable,qualified);
+ return new ADBXMLStreamReaderImpl(beanName, object.toArray(), null, typeTable, qualified);
} catch (java.io.IOException e) {
throw new RuntimeException(e);
} catch (java.beans.IntrospectionException e) {
@@ -561,7 +570,8 @@
Object [] args,
QName partName,
boolean qualifed,
- TypeTable typeTable) {
+ TypeTable typeTable,
+ boolean isCustomwsdl) {
ArrayList objects;
objects = new ArrayList();
int argCount = 0;
Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java Wed Feb 7 02:27:33 2007
@@ -63,7 +63,7 @@
* @return Response OMElement
*/
public OMElement invokeBlocking(QName opName, Object [] args) throws AxisFault {
- OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+ OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
if (notNullService) {
return super.sendReceive(opName, omElement);
}
@@ -87,7 +87,7 @@
*/
public Object[] invokeBlocking(QName opName, Object [] args, Class [] returnTypes) throws AxisFault {
- OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+ OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
OMElement response;
if (notNullService) {
response = super.sendReceive(opName, omElement);
@@ -112,7 +112,7 @@
Object [] args,
Callback callback)
throws AxisFault {
- OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+ OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
//call the underline implementation
if (notNullService) {
super.sendReceiveNonBlocking(opName, omElement, callback);
@@ -123,7 +123,7 @@
public void invokeRobust(QName opName,
Object [] args) throws AxisFault {
- OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+ OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
//call the underline implementation
if (notNullService) {
super.sendRobust(opName, omElement);
Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java Wed Feb 7 02:27:33 2007
@@ -73,7 +73,7 @@
.getFirstElement();
AxisMessage inaxisMessage = op.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
- String messageNameSpace;
+ String messageNameSpace = null;
QName elementQName;
String methodName = op.getName().getLocalPart();
Method[] methods = ImplClass.getMethods();
@@ -114,7 +114,13 @@
SOAPFactory fac = getSOAPFactory(inMessage);
// Handling the response
- OMNamespace ns = fac.createOMNamespace(service.getSchematargetNamespace(),
+
+ AxisMessage outaxisMessage = op.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+ if (outaxisMessage != null) {
+ messageNameSpace = outaxisMessage.getElementQName().getNamespaceURI();
+ }
+
+ OMNamespace ns = fac.createOMNamespace(messageNameSpace,
service.getSchematargetNamespacePrefix());
SOAPEnvelope envelope = fac.getDefaultEnvelope();
OMElement bodyContent = null;
Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java Wed Feb 7 02:27:33 2007
@@ -148,8 +148,8 @@
method.getName();
}
log.error(msg, e);
- if(cause instanceof AxisFault) {
- throw (AxisFault)cause;
+ if (cause instanceof AxisFault) {
+ throw (AxisFault) cause;
}
throw new AxisFault(msg);
} catch (Exception e) {
Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java Wed Feb 7 02:27:33 2007
@@ -109,25 +109,44 @@
return BeanUtil.deserialize(methodElement, parameters, objectSupplier);
}
- public static OMElement getResponseElement(QName resname, Object [] objs,
- boolean qualified, TypeTable typeTable) {
+ public static OMElement getResponseElement(QName resname,
+ Object [] objs,
+ boolean qualified,
+ TypeTable typeTable,
+ boolean isCustomWsdl) {
if (qualified) {
return BeanUtil.getOMElement(resname, objs,
- new QName(resname.getNamespaceURI(), RETURN_WRAPPER, resname.getPrefix()), qualified, typeTable);
+ new QName(resname.getNamespaceURI(),
+ RETURN_WRAPPER,
+ resname.getPrefix()),
+ qualified,
+ typeTable,
+ isCustomWsdl);
} else {
return BeanUtil.getOMElement(resname, objs,
- new QName(RETURN_WRAPPER), qualified, typeTable);
+ new QName(RETURN_WRAPPER), qualified,
+ typeTable,
+ isCustomWsdl);
}
}
public static OMElement getResponseElementForArray(QName resname, Object [] objs,
- boolean qualified, TypeTable typeTable) {
+ boolean qualified,
+ TypeTable typeTable, boolean isCustomWsdl) {
if (qualified) {
return BeanUtil.getOMElement(resname, objs,
- new QName(resname.getNamespaceURI(), RETURN_WRAPPER, resname.getPrefix()), qualified, typeTable);
+ new QName(resname.getNamespaceURI(),
+ RETURN_WRAPPER,
+ resname.getPrefix()),
+ qualified,
+ typeTable,
+ isCustomWsdl);
} else {
return BeanUtil.getOMElement(resname, objs,
- new QName(RETURN_WRAPPER), qualified, typeTable);
+ new QName(RETURN_WRAPPER),
+ qualified,
+ typeTable,
+ isCustomWsdl);
}
}
@@ -140,6 +159,7 @@
OMElement bodyContent,
MessageContext outMessage
) throws Exception {
+ QName elementQName = outMessage.getAxisMessage().getElementQName();
if (resObject == null) {
QName resName;
if (service.isElementFormDefault()) {
@@ -161,11 +181,14 @@
envelope.getBody().addChild(bodyChild);
} else {
if (resObject instanceof Object[]) {
- QName resName = new QName(service.getSchematargetNamespace(),
+ QName resName = new QName(elementQName.getNamespaceURI(),
method.getName() + "Response",
- service.getSchematargetNamespacePrefix());
+ elementQName.getPrefix());
OMElement bodyChild = RPCUtil.getResponseElement(resName,
- (Object[]) resObject, service.isElementFormDefault(), service.getTypeTable());
+ (Object[]) resObject,
+ service.isElementFormDefault(),
+ service.getTypeTable(),
+ service.isCustomWsld());
envelope.getBody().addChild(bodyChild);
} else {
if (resObject.getClass().isArray()) {
@@ -181,11 +204,12 @@
}
}
- QName resName = new QName(service.getSchematargetNamespace(),
+ QName resName = new QName(elementQName.getNamespaceURI(),
method.getName() + "Response",
- service.getSchematargetNamespacePrefix());
+ elementQName.getPrefix());
OMElement bodyChild = RPCUtil.getResponseElementForArray(resName,
- objArray, service.isElementFormDefault(), service.getTypeTable());
+ objArray, service.isElementFormDefault(), service.getTypeTable(),
+ service.isCustomWsld());
envelope.getBody().addChild(bodyChild);
} else {
if (service.isElementFormDefault()) {
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java Wed Feb 7 02:27:33 2007
@@ -39,6 +39,10 @@
String TAG_PHASE_ORDER = "phaseOrder";
String TAG_PHASE = "phase";
String TAG_PARAMETER = "parameter";
+ String TAG_MAPPING = "mapping";
+ String TAG_PACKAGE_NAME = "packageName";
+ String TAG_QNAME= "qName";
+ String TAG_PACKAGE2QNAME= "packageMapping";
String TAG_MODULE = "module";
String TAG_MODULE_CONFIG = "moduleConfig";
String TAG_MESSAGE = "message";
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Feb 7 02:27:33 2007
@@ -249,6 +249,7 @@
new WSDL11ToAxisServiceBuilder(wsdlStream, null, null);
axisService = wsdl2AxisServiceBuilder.populateService();
axisService.setWsdlFound(true);
+ axisService.setCustomWsld(true);
axisService.setName(serviceName);
}
if (axisService == null) {
@@ -279,6 +280,7 @@
new WSDL11ToAxisServiceBuilder(wsdlStream, axisService);
axisService = wsdl2AxisServiceBuilder.populateService();
axisService.setWsdlFound(true);
+ axisService.setCustomWsld(true);
// Set the default message receiver for the operations that were
// not listed in the services.xml
Iterator operations = axisService.getOperations();
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Wed Feb 7 02:27:33 2007
@@ -33,6 +33,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ws.java2wsdl.Java2WSDLConstants;
+import org.apache.ws.java2wsdl.utils.TypeTable;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
@@ -314,6 +315,14 @@
}
}
}
+ if (service.isCustomWsld()) {
+ OMElement mappingElement = service_element.getFirstChildWithName(
+ new QName(TAG_PACKAGE2QNAME));
+ if (mappingElement != null) {
+ processTypeMappings(mappingElement);
+ }
+ }
+
for (int i = 0; i < excludeops.size(); i++) {
String opName = (String) excludeops.get(i);
service.removeOperation(new QName(opName));
@@ -351,6 +360,41 @@
} catch (Exception e) {
throw new AxisFault(e);
}
+ }
+
+ /**
+ * To process the packe name to Qname mapping
+ * <packageMapping>
+ * <mapping packageName="foo.bar" qname="http://foo/bar/xsd">
+ * ......
+ * ......
+ * </packageMapping>
+ *
+ * @param packageMappingElement
+ */
+ private void processTypeMappings(OMElement packageMappingElement) {
+ Iterator elementItr = packageMappingElement.getChildrenWithName(new QName(TAG_MAPPING));
+ TypeTable typeTable = service.getTypeTable();
+ if (typeTable == null) {
+ typeTable = new TypeTable();
+ }
+ while (elementItr.hasNext()) {
+ OMElement mappingElement = (OMElement) elementItr.next();
+ String packageName = mappingElement.getAttributeValue(new QName(TAG_PACKAGE_NAME));
+ String qName = mappingElement.getAttributeValue(new QName(TAG_QNAME));
+ if (packageName == null || qName == null) {
+ continue;
+ }
+ Iterator keys = service.getNameSpacesMap().keySet().iterator();
+ while (keys.hasNext()) {
+ String key = (String) keys.next();
+ if (qName.equals(service.getNameSpacesMap().get(key))) {
+ typeTable.addComplexSchema(packageName,
+ new QName(qName, packageName, key));
+ }
+ }
+ }
+ service.setTypeTable(typeTable);
}
private void loadServiceLifeCycleClass(String className) throws DeploymentException {
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java Wed Feb 7 02:27:33 2007
@@ -86,6 +86,7 @@
axisService = new AxisService(serviceName);
} else {
axisService.setWsdlFound(true);
+ axisService.setCustomWsld(true);
}
// the service that has to be deployed
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java Wed Feb 7 02:27:33 2007
@@ -84,6 +84,7 @@
axisService = new AxisService(serviceName);
} else {
axisService.setWsdlFound(true);
+ axisService.setCustomWsld(true);
}
axisService.setParent(axisServiceGroup);
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=504490&r1=504489&r2=504490
==============================================================================
--- 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 Wed Feb 7 02:27:33 2007
@@ -202,6 +202,8 @@
this.endpointMap.put(key,axisEndpoint);
}
+ private boolean customWsld = false;
+
public String getWSAddressingFlag() {
return wsaddressingFlag;
}
@@ -1909,5 +1911,13 @@
public Map getEndpoints() {
return endpointMap;
+ }
+
+ public boolean isCustomWsld() {
+ return customWsld;
+ }
+
+ public void setCustomWsld(boolean customWsld) {
+ this.customWsld = customWsld;
}
}
Modified: webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java (original)
+++ webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java Wed Feb 7 02:27:33 2007
@@ -82,17 +82,17 @@
Book[] bookList = allBookList.getBookList();
libElement.addChild(BeanUtil.getOMElement(
new QName(LibraryConstants.ALL_BOOK),
- bookList, new QName("book"), false, null));
+ bookList, new QName("book"), false, null, false));
libElement.addChild(BeanUtil.getOMElement(
new QName(LibraryConstants.AVAILABLE_BOOK),
- availableBookList.getBookList(), new QName("book"), false, null));
+ availableBookList.getBookList(), new QName("book"), false, null, false));
libElement.addChild(BeanUtil.getOMElement(
new QName(LibraryConstants.LEND_BOOK),
- lendBookList.getBookList(), new QName("book"), false, null));
+ lendBookList.getBookList(), new QName("book"), false, null, false));
libElement.addChild(BeanUtil.getOMElement(
new QName(LibraryConstants.USER_LIST),
- userList.getUsers(), new QName("user"), false, null));
+ userList.getUsers(), new QName("user"), false, null,false));
String tempDir = System.getProperty("java.io.tmpdir");
File tempFile = new File(tempDir);
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org