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 pr...@apache.org on 2007/06/29 20:54:51 UTC
svn commit: r551999 [8/9] - in /webservices/axis2/branches/java/jaxws21:
modules/adb-codegen/src/org/apache/axis2/schema/
modules/adb-codegen/src/org/apache/axis2/schema/template/
modules/adb-codegen/test-resources/testsuite/ modules/adb-codegen/test/o...
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java Fri Jun 29 11:54:44 2007
@@ -90,7 +90,18 @@
// EPRs now to be used later, especially when we generate the WSDL.
serviceEndpointURLs = service.getEPRs();
if (serviceEndpointURLs == null) {
- serviceEndpointURLs = new String[]{service.getEndpointName()};
+ Map endpointMap = service.getEndpoints();
+ if (endpointMap.size() > 0) {
+ Iterator endpointItr = endpointMap.values().iterator();
+ while (endpointItr.hasNext()) {
+ AxisEndpoint endpoint = (AxisEndpoint) endpointItr.next();
+ serviceEndpointURLs = new String[]{endpoint.getEndpointURL()};
+ break;
+ }
+
+ } else {
+ serviceEndpointURLs = new String[]{service.getEndpointName()};
+ }
}
this.targetNamespace = service.getTargetNamespace();
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java Fri Jun 29 11:54:44 2007
@@ -98,15 +98,10 @@
} else {
throw new AxisFault(Messages.getMessage("modulenotavailble"));
}
- Module moduleImpl = axisModule.getModule();
- if (moduleImpl != null) {
- // notyfying module for service engagement
- moduleImpl.engageNotify(service);
- }
service.engageModule(axisModule);
}
- }
+ }
service.setLastupdate();
addChild(service);
if (axisConfig != null) {
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java Fri Jun 29 11:54:44 2007
@@ -17,6 +17,8 @@
import org.apache.axiom.om.util.UUIDGenerator;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.AddressingConstants.Final;
+import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.async.Callback;
@@ -241,11 +243,17 @@
}
ConfigurationContext cc = sc.getConfigurationContext();
prepareMessageContext(cc, mc);
- // setting message ID if it null
+ //As this is an out-only MEP we add a sensible default for
+ //the replyTo.
+ EndpointReference epr = mc.getReplyTo();
+ if (epr == null)
+ mc.setReplyTo(new EndpointReference(Final.WSA_NONE_URI));
+
// create the operation context for myself
OperationContext oc = sc.createOperationContext(axisOp);
oc.addMessageContext(mc);
+
// ship it out
AxisEngine engine = new AxisEngine(cc);
if (!block) {
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAllAxisServicesBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAllAxisServicesBuilder.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAllAxisServicesBuilder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAllAxisServicesBuilder.java Fri Jun 29 11:54:44 2007
@@ -60,6 +60,11 @@
axisServices = new ArrayList(); // create an empty ArrayList
}
+ public WSDL11ToAllAxisServicesBuilder(Definition def, String portName) {
+ super(def, null, portName);
+ axisServices = new ArrayList(); // create an empty ArrayList
+ }
+
/**
* Public method to access the wsdl 1.1 file and create a List of AxisService objects.
@@ -88,8 +93,11 @@
if (wsdl4jDefinition.getServices().size() > 0) {
Iterator wsdlServIter = wsdl4jDefinition.getServices().values().iterator();
- // let the wsdlToservice builder to decide the port to generate binding
- portName = null;
+ if (wsdl4jDefinition.getServices().size() > 1){
+ // let the wsdlToservice builder to decide the port to generate binding
+ portName = null;
+ }
+
while (wsdlServIter.hasNext()) {
Service service = (Service) wsdlServIter.next();
// set the serviceName on the parent to setup call to populateService
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Fri Jun 29 11:54:44 2007
@@ -165,6 +165,8 @@
// As bindings are processed add it to this array so that we dont process the same binding twice
private Map processedBindings;
+ private boolean isAllPorts;
+
/**
* constructor taking in the service name and the port name
*
@@ -188,8 +190,24 @@
super(null, serviceName);
this.wsdl4jDefinition = def;
this.portName = portName;
+ this.isAllPorts = false;
+ }
+
+ /**
+ * @param def
+ * @param serviceName
+ * @param portName
+ */
+ public WSDL11ToAxisServiceBuilder(Definition def,
+ QName serviceName,
+ String portName,
+ boolean isAllPorts) {
+ this(def,serviceName,portName);
+ this.isAllPorts = isAllPorts;
}
+
+
/**
* @param in
* @param service
@@ -244,6 +262,8 @@
Service wsdl4jService = findService(wsdl4jDefinition);
Binding binding = findBinding(wsdl4jDefinition, wsdl4jService);
+
+
if (binding.getPortType() == null) {
throw new AxisFault("There is no port type associated with the binding");
}
@@ -456,7 +476,7 @@
wsdl4jBindingOperation = (BindingOperation) iterator.next();
wsdl4jOperation = findOperation(portType, wsdl4jBindingOperation);
- axisBindingOperation.setName(new QName("", wsdl4jBindingOperation.getName()));
+ axisBindingOperation.setName(new QName(targetNamespace, wsdl4jBindingOperation.getName()));
addDocumentation(axisBindingOperation, wsdl4jBindingOperation.getDocumentationElement());
axisOperation = axisService.getOperation(new QName(targetNamespace, wsdl4jOperation.getName()));
@@ -485,6 +505,16 @@
AxisMessage axisInMessage =
axisOperation.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+ //This is a hack to get AXIS2-2771 working , I had to copy soap headers
+ // from binding message to AxisMessage
+ List soapHeaders =
+ (List) axisBindingInMessage.getProperty(WSDL2Constants.ATTR_WSOAP_HEADER);
+ if (soapHeaders != null) {
+ for (int i = 0; i < soapHeaders.size(); i++) {
+ SOAPHeaderMessage headerMessage = (SOAPHeaderMessage) soapHeaders.get(i);
+ axisInMessage.addSoapHeader(headerMessage);
+ }
+ }
if (isSetMessageQNames) {
addQNameReference(axisInMessage, wsdl4jOperation,
@@ -512,6 +542,17 @@
wsdl4jDefinition,
axisBindingOutMessage, BINDING_OPERATION_OUTPUT);
+ //This is a hack to get AXIS2-2771 working , I had to copy soap headers
+ // from binding message to AxisMessage
+ List soapHeaders =
+ (List) axisBindingOutMessage.getProperty(WSDL2Constants.ATTR_WSOAP_HEADER);
+ if (soapHeaders != null) {
+ for (int i = 0; i < soapHeaders.size(); i++) {
+ SOAPHeaderMessage headerMessage = (SOAPHeaderMessage) soapHeaders.get(i);
+ axisOutMessage.addSoapHeader(headerMessage);
+ }
+ }
+
if (isSetMessageQNames) {
addQNameReference(axisOutMessage, wsdl4jOperation,
wsdl4jBindingOutput,
@@ -682,14 +723,13 @@
// i.e if user has specified a service
port = service.getPort(portName);
if (port == null) {
- throw new AxisFault("No port found for the given name :"
- + portName);
+ throw new AxisFault("No port found for the given name :" + portName);
}
} else {
Map ports = service.getPorts();
if (ports != null && ports.size() > 0) {
// pick the port with the SOAP address as the default port
- port = findSOAPPort(ports);
+ port = findPort(ports);
if (port == null) {
// a SOAP port was not found - log a warning
// and use the first port in the list
@@ -697,6 +737,15 @@
+ "picking a random port!");
port = (Port) ports.values().toArray()[0];
}
+
+ if (port != null){
+ // i.e we have find a correct port
+ if (!this.isAllPorts){
+ // if user has not set all option
+ // we have to generate code only for that option.
+ this.portName = port.getName();
+ }
+ }
}
}
@@ -717,10 +766,22 @@
/**
* Finds a SOAP port given the port map
*
- * @param ports
+ * @param pHttpAddressHttpAddressorts
*/
- private Port findSOAPPort(Map ports) {
+ private Port findPort(Map ports) {
Port port;
+ for (Iterator portsIterator = ports.values().iterator(); portsIterator.hasNext();) {
+ port = (Port) portsIterator.next();
+ List extensibilityElements = port.getExtensibilityElements();
+ for (int i = 0; i < extensibilityElements.size(); i++) {
+ Object extElement = extensibilityElements.get(i);
+ if (extElement instanceof SOAP12Address) {
+ // SOAP 1.2 address found - return that port and we are done
+ return port;
+ }
+ }
+ }
+
for (Iterator portsIterator = ports.values().iterator(); portsIterator
.hasNext();) {
port = (Port) portsIterator.next();
@@ -731,9 +792,17 @@
// SOAP 1.1 address found - return that port and we are done
return port;
}
+ }
+ }
- if (extElement instanceof SOAP12Address) {
- // SOAP 1.2 address found - return that port and we are done
+ for (Iterator portsIterator = ports.values().iterator(); portsIterator
+ .hasNext();) {
+ port = (Port) portsIterator.next();
+ List extensibilityElements = port.getExtensibilityElements();
+ for (int i = 0; i < extensibilityElements.size(); i++) {
+ Object extElement = extensibilityElements.get(i);
+ if (extElement instanceof HTTPAddress) {
+ // SOAP 1.1 address found - return that port and we are done
return port;
}
}
@@ -2408,7 +2477,15 @@
}
}
-
+
+ public boolean isAllPorts() {
+ return isAllPorts;
+ }
+
+ public void setAllPorts(boolean allPorts) {
+ isAllPorts = allPorts;
+ }
+
// private void processPoliciesInDefinition() {
//
// Object obj;
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java Fri Jun 29 11:54:44 2007
@@ -86,6 +86,9 @@
protected Class serviceClass = null;
protected AxisService service;
+ //To check whether we need to generate Schema element for Exception
+ protected boolean generateBaseException ;
+
public NamespaceGenerator getNsGen() throws Exception {
if (nsGen == null) {
nsGen = new DefaultNamespaceGenerator();
@@ -235,20 +238,37 @@
if (AxisFault.class.getName().equals(extype.getQualifiedName())) {
continue;
}
- String partQname = extype.getSimpleName() + "Fault";
+ if (!generateBaseException) {
+ methodSchemaType = createSchemaTypeForMethodPart("Exception");
+ sequence = new XmlSchemaSequence();
+ QName schemaTypeName = typeTable.getSimpleSchemaTypeName(Exception.class.getName());
+ addContentToMethodSchemaType(sequence,
+ schemaTypeName,
+ "Exception",
+ false);
+ methodSchemaType.setParticle(sequence);
+ generateBaseException = true;
+ }
+ String partQname = extype.getSimpleName();
methodSchemaType = createSchemaTypeForMethodPart(partQname);
sequence = new XmlSchemaSequence();
- generateSchemaForType(sequence, extype, extype.getSimpleName());
- methodSchemaType.setParticle(sequence);
+ if (Exception.class.getName().equals(extype.getQualifiedName())) {
+ addContentToMethodSchemaType(sequence,
+ typeTable.getComplexSchemaType("Exception"),
+ partQname,
+ false);
+ methodSchemaType.setParticle(sequence);
+ typeTable.addComplexSchema(Exception.class.getPackage().getName(),
+ methodSchemaType.getQName());
+ } else {
+ generateSchemaForType(sequence, extype, extype.getSimpleName());
+ methodSchemaType.setParticle(sequence);
+ }
if (AxisFault.class.getName().equals(extype.getQualifiedName())) {
continue;
}
AxisMessage faultMessage = new AxisMessage();
- if (extypes.length > 1) {
- faultMessage.setName(methodName + "Fault" + j);
- } else {
- faultMessage.setName(methodName + "Fault");
- }
+ faultMessage.setName(extype.getSimpleName());
faultMessage.setElementQName(typeTable.getQNamefortheType(partQname));
axisOperation.setFaultMessages(faultMessage);
}
@@ -419,7 +439,7 @@
complexType.setName(simpleName);
- xmlSchema.getItems().add(eltOuter);
+// xmlSchema.getItems().add(eltOuter);
xmlSchema.getElements().add(schemaTypeName, eltOuter);
eltOuter.setSchemaTypeName(complexType.getQName());
@@ -494,7 +514,6 @@
for (int i = 0; i < froperties.length; i++) {
JField field = froperties[i];
- String propertyName = field.getType().getQualifiedName();
boolean isArryType = field.getType().isArrayType();
this.generateSchemaforFieldsandProperties(xmlSchema, sequence, field.getType(),
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java Fri Jun 29 11:54:44 2007
@@ -99,20 +99,37 @@
if (AxisFault.class.getName().equals(extype.getQualifiedName())) {
continue;
}
- String partQname = extype.getSimpleName() + "Fault";
+ if (!generateBaseException) {
+ methodSchemaType = createSchemaTypeForMethodPart("Exception");
+ sequence = new XmlSchemaSequence();
+ QName schemaTypeName = typeTable.getSimpleSchemaTypeName(Exception.class.getName());
+ addContentToMethodSchemaType(sequence,
+ schemaTypeName,
+ "Exception",
+ false);
+ methodSchemaType.setParticle(sequence);
+ generateBaseException = true;
+ }
+ String partQname = extype.getSimpleName();
methodSchemaType = createSchemaTypeForMethodPart(partQname);
sequence = new XmlSchemaSequence();
- generateSchemaForType(sequence, extype, extype.getSimpleName());
- methodSchemaType.setParticle(sequence);
+ if (Exception.class.getName().equals(extype.getQualifiedName())) {
+ addContentToMethodSchemaType(sequence,
+ typeTable.getComplexSchemaType("Exception"),
+ partQname,
+ false);
+ methodSchemaType.setParticle(sequence);
+ typeTable.addComplexSchema(Exception.class.getPackage().getName(),
+ methodSchemaType.getQName());
+ } else {
+ generateSchemaForType(sequence, extype, extype.getSimpleName());
+ methodSchemaType.setParticle(sequence);
+ }
if (AxisFault.class.getName().equals(extype.getQualifiedName())) {
continue;
}
AxisMessage faultMessage = new AxisMessage();
- if (extypes.length > 1) {
- faultMessage.setName(methodName + "Fault" + j);
- } else {
- faultMessage.setName(methodName + "Fault");
- }
+ faultMessage.setName(extype.getSimpleName());
faultMessage.setElementQName(typeTable.getQNamefortheType(partQname));
axisOperation.setFaultMessages(faultMessage);
}
@@ -178,6 +195,7 @@
generateSchemaForType(null, paras[0].getType(), parameterName);
inMessage.setElementQName(typeTable.getQNamefortheType(parameterName));
inMessage.setPartName(parameterName);
+ inMessage.setWrapped(false);
service.addMessageElementQNameToOperationMapping(typeTable.getQNamefortheType(parameterName),
axisOperation);
}
@@ -211,7 +229,7 @@
}
} else {
generateSchemaForType(null, returnType, methodName + RESULT);
-
+ outMessage.setWrapped(false);
}
outMessage.setElementQName(typeTable.getQNamefortheType(methodName + RESULT));
outMessage.setName(methodName + "ResponseMessage");
@@ -289,7 +307,9 @@
String schemaNamespace = resolveSchemaNamespace(getQualifiedName(
type.getContainingPackage()));
addImport(getXmlSchema(schemaNamespace), schemaTypeName);
-
+ if(sequence==null){
+ generateSchemaForSingleElement(schemaTypeName, partName, isArrayType, type);
+ }
} else {
if (sequence == null) {
generateSchemaForSingleElement(schemaTypeName, partName, isArrayType, type);
@@ -394,7 +414,7 @@
complexType.setName(simpleName);
- xmlSchema.getItems().add(eltOuter);
+// xmlSchema.getItems().add(eltOuter);
xmlSchema.getElements().add(schemaTypeName, eltOuter);
eltOuter.setSchemaTypeName(complexType.getQName());
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java Fri Jun 29 11:54:44 2007
@@ -172,6 +172,7 @@
}
}
catch (AxisFault e) {
+ msgContext.setFailureReason(e);
flowComplete(msgContext);
throw e;
}
@@ -422,6 +423,7 @@
}
}
catch (AxisFault e) {
+ msgContext.setFailureReason(e);
flowComplete(msgContext);
throw e;
}
@@ -470,6 +472,7 @@
}
}
catch (AxisFault e) {
+ msgContext.setFailureReason(e);
flowComplete(msgContext);
throw e;
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java Fri Jun 29 11:54:44 2007
@@ -20,6 +20,7 @@
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.util.JavaUtils;
import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004_Constants;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2006Constants;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPHeader;
@@ -106,35 +107,32 @@
msgContext.setAxisService(msgContext.getServiceContext().getAxisService());
}
-
- //We do not send the status even though it is In-Only to allow Sandesha to send a ack
- //https://issues.apache.org/jira/browse/AXIS2-2191. At F2F 2007 summer june, we decided may be
- //providing a option might not give us that much. I will keep the code commented so we might want to do this later.
-// if (msgContext.getAxisOperation().getMessageExchangePattern()
-// .equals(WSDL20_2004_Constants.MEP_URI_IN_ONLY)) {
-// Object requestResponseTransport =
-// msgContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
-// if (requestResponseTransport != null) {
-// ((RequestResponseTransport) requestResponseTransport)
-// .acknowledgeMessage(msgContext);
-// }
-// }
-
- if (msgContext.getAxisOperation().getMessageExchangePattern()
- .equals(WSDL2Constants.MEP_URI_IN_OUT))
- { // OR, if 2 way operation but the response is intended to not use the response channel of a 2-way transport
- // then we don't need to keep the transport waiting.
- Object requestResponseTransport =
- msgContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
- if (requestResponseTransport != null) {
- if (AddressingHelper.isReplyRedirected(msgContext) &&
- AddressingHelper.isFaultRedirected(msgContext)) {
- ((RequestResponseTransport) requestResponseTransport)
- .acknowledgeMessage(msgContext);
- }
- }
+ // We should send an early ack to the transport whever possible, but some modules need
+ // to use the backchannel, so we need to check if they have disabled this code.
+ Boolean disableAck = (Boolean) msgContext.getProperty(Constants.Configuration.DISABLE_RESPONSE_ACK);
+ if(disableAck == null || disableAck.booleanValue() == false) {
+ String mepString = msgContext.getAxisOperation().getMessageExchangePattern();
+ if (mepString.equals(WSDL20_2006Constants.MEP_URI_IN_ONLY)
+ || mepString.equals(WSDL20_2004_Constants.MEP_URI_IN_ONLY)) {
+ Object requestResponseTransport =
+ msgContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
+ if (requestResponseTransport != null) {
+ ((RequestResponseTransport) requestResponseTransport).acknowledgeMessage(msgContext);
+ }
+ } else if (mepString.equals(WSDL20_2006Constants.MEP_URI_IN_OUT)
+ || mepString.equals(WSDL20_2004_Constants.MEP_URI_IN_OUT)) { // OR, if 2 way operation but the response is intended to not use the response channel of a 2-way transport
+ // then we don't need to keep the transport waiting.
+ Object requestResponseTransport =
+ msgContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
+ if (requestResponseTransport != null) {
+ if (AddressingHelper.isReplyRedirected(msgContext)
+ && AddressingHelper.isFaultRedirected(msgContext)) {
+ ((RequestResponseTransport) requestResponseTransport).acknowledgeMessage(msgContext);
+ }
+ }
+ }
}
-
+
ArrayList operationChain = msgContext.getAxisOperation().getRemainingPhasesInFlow();
msgContext.setExecutionChain((ArrayList) operationChain.clone());
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/Handler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/Handler.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/Handler.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/Handler.java Fri Jun 29 11:54:44 2007
@@ -32,9 +32,7 @@
public interface Handler {
/**
- * Since this might change the whole behavior of Axis2 handlers, and since this is still under discussion
- * (http://marc.theaimsgroup.com/?l=axis-dev&m=114504084929285&w=2) implementation of this method is deferred.
- * Note : This method will not be automatically called, from Axis2 engine, until this is fully implemented.
+ * @deprecated This method will be going away after the 1.3 release, it was never used.
*/
public void cleanup();
@@ -72,7 +70,9 @@
* invoke(...) method called during the processing of the message, once
* the message processing has completed. During execution of the
* flowComplete's, handlers are invoked in the opposite order that they
- * were invoked originally.
+ * were invoked originally. Note that implementations SHOULD check
+ * msgContext.getFailureReason() to see if this is an error or a normal
+ * completion.
*
* @param msgContext the <code>MessageContext</code> to process with this
* <code>Handler</code>.
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/i18n/resource.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/i18n/resource.properties?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/i18n/resource.properties (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/i18n/resource.properties Fri Jun 29 11:54:44 2007
@@ -54,7 +54,7 @@
responseTimeOut=Time out while waiting for the server to send the response.
callBackCompletedWithError=The callback complete, but there was no envelope element or an error.
2channelNeedAddressing=To use two transport channels you must use the WS-Addressing module.
-useSeparateListenerLimited=A false value for the useSeparateListener is supported by the http/tcp and tcp commons transport only when they are set as the sender and receiver.
+useSeparateListenerLimited=Setting useSeparateListener to false is not a valid option when the Sender is {0} and Listener is {1}
replyNeedStarting=Before requesting the ReplyTo value, the system must start the TransportListener. The Transport is {0}
failedToOpenSocket=The system failed to open the socket.
noRecep4Email=A recipient is not specified in the e-mail message.
@@ -172,7 +172,8 @@
errorinschemagen=The following error occurred during schema generation: {0}
errorininputstreamclose=An error occurred in closing input stream.
phaseclassnotfound=The system cannot find the phase class: {0} : {1}
-modulenamecannotnull=The module name cannot be null in the version element for the side default module.
+modulenamecannotbenull=The following attribute /defaultModuleVersions/module/@name is not set in axis2.xml
+moduleversioncannotbenull=The following attribute /defaultModuleVersions/module/@version is not set in axis2.xml
# documentcreatingerror is not used.
#documentcreatingerror=An exception occurred when creating the document from the WSDL file: {0}
noserviceelemtfound=The javax.wsdl.Service element cannot be found.
@@ -253,4 +254,5 @@
wsaddressingrequirednotpresent=WS-Addressing is required, but it cannot be found.
nomessagereciever=Message Receiver not found for AxisOperation: {0}
duplicaterelatesto=The message is a duplicate (has the same reply relationship value) of an already processed message. RelatesTo = {0}
+getMessageContextError=The message context could not be retrieved due to the following error: {0}
mismatchedModuleVersions=Tried to deploy (to {0}) a module ''{1}'' when ''{2}'' was already deployed - version mismatch!
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/RequestResponseTransport.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/RequestResponseTransport.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/RequestResponseTransport.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/RequestResponseTransport.java Fri Jun 29 11:54:44 2007
@@ -79,6 +79,18 @@
* @return
*/
public RequestResponseTransportStatus getStatus();
+
+ /**
+ * This will indicate whether or not the response has already been written
+ */
+ public boolean isResponseWritten();
+
+ /**
+ * This is used to set the response written flag on the RequestResponseTransport
+ * instance
+ */
+ public void setResponseWritten(boolean responseWritten);
+
/**
* Used to give the current status of the RequestResponseTransport object.
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java Fri Jun 29 11:54:44 2007
@@ -37,6 +37,7 @@
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.SOAPMessageFormatter;
import org.apache.axis2.util.JavaUtils;
+import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -358,4 +359,79 @@
}
return messageFormatterProperty;
}
+
+
+ /**
+ * This is a helper method to get the response written flag from the RequestResponseTransport
+ * instance.
+ */
+ public static boolean isResponseWritten(MessageContext messageContext) {
+ RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
+ if (reqResTransport != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found RequestResponseTransport returning isResponseWritten()");
+ }
+ return reqResTransport.isResponseWritten();
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Did not find RequestResponseTransport returning false from get"
+ + "ResponseWritten()");
+ }
+ return false;
+ }
+ }
+
+ /**
+ * This is a helper method to set the response written flag on the RequestResponseTransport
+ * instance.
+ */
+ public static void setResponseWritten(MessageContext messageContext, boolean responseWritten) {
+ RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
+ if (reqResTransport != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found RequestResponseTransport setting response written");
+ }
+ reqResTransport.setResponseWritten(responseWritten);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Did not find RequestResponseTransport cannot set response written");
+ }
+ }
+ }
+
+ /**
+ * This is an internal helper method to retrieve the RequestResponseTransport instance
+ * from the MessageContext object. The MessageContext may be the response MessageContext so
+ * in that case we will have to retrieve the request MessageContext from the OperationContext.
+ */
+ private static RequestResponseTransport getRequestResponseTransport(MessageContext messageContext) {
+ try {
+ // If this is the request MessageContext we should find it directly by the getProperty()
+ // method
+ if (messageContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL)
+ != null) {
+ return (RequestResponseTransport) messageContext.getProperty(
+ RequestResponseTransport.TRANSPORT_CONTROL);
+ }
+ // If this is the response MessageContext we need to look for the request MessageContext
+ else if (messageContext.getOperationContext() != null
+ && messageContext.getOperationContext()
+ .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE) != null) {
+ return (RequestResponseTransport) messageContext.
+ getOperationContext().getMessageContext(
+ WSDLConstants.MESSAGE_LABEL_IN_VALUE).getProperty(
+ RequestResponseTransport.TRANSPORT_CONTROL);
+ }
+ else {
+ return null;
+ }
+ }
+ catch(AxisFault af) {
+ // probably should not be fatal, so just log the message
+ String msg = Messages.getMessage("getMessageContextError", af.toString());
+ log.debug(msg);
+ return null;
+ }
+ }
+
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Fri Jun 29 11:54:44 2007
@@ -140,13 +140,17 @@
String sessionCookie = null;
// Process old style headers first
Header[] cookieHeaders = method.getResponseHeaders(HTTPConstants.HEADER_SET_COOKIE);
+ String customCoookiId = (String) msgContext.getProperty(Constants.CUSTOM_COOKIE_ID);
for (int i = 0; i < cookieHeaders.length; i++) {
HeaderElement[] elements = cookieHeaders[i].getElements();
for (int e = 0; e < elements.length; e++) {
HeaderElement element = elements[e];
if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName()) ||
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
- sessionCookie = element.getValue();
+ sessionCookie = processCookieHeader(element);
+ }
+ if (customCoookiId != null && customCoookiId.equalsIgnoreCase(element.getName())) {
+ sessionCookie = processCookieHeader(element);
}
}
}
@@ -158,7 +162,10 @@
HeaderElement element = elements[e];
if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName()) ||
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
- sessionCookie = element.getValue();
+ sessionCookie = processCookieHeader(element);
+ }
+ if(customCoookiId!=null&&customCoookiId.equalsIgnoreCase(element.getName())){
+ sessionCookie = processCookieHeader(element);
}
}
}
@@ -168,6 +175,16 @@
}
}
+ private String processCookieHeader(HeaderElement element) {
+ String cookie = element.getName() + "=" + element.getValue();
+ NameValuePair[] parameters = element.getParameters();
+ for (int j = 0; j < parameters.length; j++) {
+ NameValuePair parameter = parameters[j];
+ cookie = cookie + "; " + parameter.getName() + "=" + parameter.getValue();
+ }
+ return cookie;
+ }
+
protected void processResponse(HttpMethodBase httpMethod,
MessageContext msgContext)
throws IOException {
@@ -378,8 +395,6 @@
if (cookieString != null) {
StringBuffer buffer = new StringBuffer();
- buffer.append(Constants.SESSION_COOKIE_JSESSIONID);
- buffer.append("=");
buffer.append(cookieString);
httpMethod.setRequestHeader(HTTPConstants.HEADER_COOKIE, buffer.toString());
}
@@ -460,17 +475,11 @@
HttpConnectionManager connManager =
(HttpConnectionManager) msgContext.getProperty(
HTTPConstants.MUTTITHREAD_HTTP_CONNECTION_MANAGER);
- if(connManager==null){
- connManager =
- new SimpleHttpConnectionManager();
- msgContext.getConfigurationContext().
- setProperty(
- HTTPConstants.MUTTITHREAD_HTTP_CONNECTION_MANAGER,
- connManager);
- }
- if(msgContext.isServerSide()){
- httpClient = new HttpClient();
+ if(connManager != null){
+ httpClient = new HttpClient(connManager);
} else {
+ //Multi threaded http connection manager has set as the default
+ connManager = new MultiThreadedHttpConnectionManager();
httpClient = new HttpClient(connManager);
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/ApplicationXMLFormatter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/ApplicationXMLFormatter.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/ApplicationXMLFormatter.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/ApplicationXMLFormatter.java Fri Jun 29 11:54:44 2007
@@ -119,7 +119,7 @@
if ((soapAction != null)
&& !"".equals(soapAction.trim())
&& !"\"\"".equals(soapAction.trim())) {
- contentType = contentType + ";action=\"" + soapAction + "\";";
+ contentType = contentType;
}
return contentType;
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java Fri Jun 29 11:54:44 2007
@@ -44,6 +44,7 @@
import org.apache.axis2.engine.ListenerManager;
import org.apache.axis2.transport.RequestResponseTransport;
import org.apache.axis2.transport.TransportListener;
+import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.transport.http.server.HttpUtils;
import org.apache.axis2.transport.http.util.RESTUtil;
import org.apache.axis2.util.JavaUtils;
@@ -128,19 +129,16 @@
.getProperty(RequestResponseTransport.TRANSPORT_CONTROL))
.awaitResponse();
}
-
- Object contextWritten = null;
- OperationContext operationContext = msgContext.getOperationContext();
-
- if (operationContext != null) {
- contextWritten = operationContext.getProperty(Constants.RESPONSE_WRITTEN);
- }
-
response.setContentType("text/xml; charset="
+ msgContext
.getProperty(Constants.Configuration.CHARACTER_SET_ENCODING));
-
- if ((contextWritten == null) || !Constants.VALUE_TRUE.equals(contextWritten)) {
+ // if data has not been sent back and this is not a signal response
+ if (!TransportUtils.isResponseWritten(msgContext)
+ && (((RequestResponseTransport)
+ msgContext.getProperty(
+ RequestResponseTransport.TRANSPORT_CONTROL)).
+ getStatus() != RequestResponseTransport.
+ RequestResponseTransportStatus.SIGNALLED)) {
response.setStatus(HttpServletResponse.SC_ACCEPTED);
}
@@ -365,7 +363,6 @@
MessageContext faultContext =
MessageContextBuilder.createFaultMessageContext(msgContext, e);
- msgContext.setEnvelope(faultContext.getEnvelope());
// SOAP 1.2 specification mentions that we should send HTTP code 400 in a fault if the
// fault code Sender
HttpServletResponse response =
@@ -671,6 +668,7 @@
protected class ServletRequestResponseTransport implements RequestResponseTransport {
private HttpServletResponse response;
+ private boolean responseWritten = false;
private CountDownLatch responseReadySignal = new CountDownLatch(1);
RequestResponseTransportStatus status = RequestResponseTransportStatus.INITIAL;
AxisFault faultToBeThrownOut = null;
@@ -721,6 +719,15 @@
faultToBeThrownOut = fault;
signalResponseReady();
}
+
+ public boolean isResponseWritten() {
+ return responseWritten;
+ }
+
+ public void setResponseWritten(boolean responseWritten) {
+ this.responseWritten = responseWritten;
+ }
+
}
private void setResponseState(MessageContext messageContext, HttpServletResponse response) {
@@ -779,13 +786,8 @@
}
private void checkResponseWritten() {
- OperationContext operationContext = messageContext.getOperationContext();
- if (operationContext != null) {
- Object contextWritten =
- operationContext.getProperty(Constants.RESPONSE_WRITTEN);
- if ((contextWritten == null) || !Constants.VALUE_TRUE.equals(contextWritten)) {
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
- }
+ if (!TransportUtils.isResponseWritten(messageContext)) {
+ response.setStatus(HttpServletResponse.SC_ACCEPTED);
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Fri Jun 29 11:54:44 2007
@@ -209,15 +209,8 @@
}
}
- /**
- * We should only set the property Constants.RESPONSE_WRITTEN=true only if we are in the
- * server side. If it is in the client side we may not know whether we have received the response
- * in an async request/response case.
- **/
- if (msgContext.isServerSide()&& msgContext.getOperationContext() != null) {
- msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,
- Constants.VALUE_TRUE);
- }
+ TransportUtils.setResponseWritten(msgContext, true);
+
} catch (XMLStreamException e) {
log.debug(e);
throw AxisFault.makeFault(e);
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java Fri Jun 29 11:54:44 2007
@@ -54,6 +54,9 @@
public class HTTPTransportUtils {
+ /**
+ * @deprecated This was used only by the now deprecated processHTTPGetRequest() method.
+ */
public static SOAPEnvelope createEnvelopeFromGetRequest(String requestUrl,
Map map, ConfigurationContext configCtx)
throws AxisFault {
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java Fri Jun 29 11:54:44 2007
@@ -32,6 +32,7 @@
import org.apache.axis2.description.AxisService;
import org.apache.axis2.engine.Handler.InvocationResponse;
import org.apache.axis2.transport.RequestResponseTransport;
+import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.transport.http.server.AxisHttpRequest;
import org.apache.axis2.transport.http.server.AxisHttpResponse;
import org.apache.axis2.transport.http.server.HttpUtils;
@@ -280,14 +281,12 @@
// Finalize response
OperationContext operationContext = msgContext.getOperationContext();
- Object contextWritten = null;
Object isTwoChannel = null;
if (operationContext != null) {
- contextWritten = operationContext.getProperty(Constants.RESPONSE_WRITTEN);
isTwoChannel = operationContext.getProperty(Constants.DIFFERENT_EPR);
}
- if ((contextWritten != null) && Constants.VALUE_TRUE.equals(contextWritten)) {
+ if (TransportUtils.isResponseWritten(msgContext)) {
if ((isTwoChannel != null) && Constants.VALUE_TRUE.equals(isTwoChannel)) {
response.setStatus(HttpStatus.SC_ACCEPTED);
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java Fri Jun 29 11:54:44 2007
@@ -301,9 +301,10 @@
class SimpleHTTPRequestResponseTransport implements RequestResponseTransport {
- private CountDownLatch responseReadySignal = new CountDownLatch(1);
+ private CountDownLatch responseReadySignal = new CountDownLatch(1);
RequestResponseTransportStatus status = RequestResponseTransportStatus.INITIAL;
AxisFault faultToBeThrownOut = null;
+ private boolean responseWritten = false;
public void acknowledgeMessage(MessageContext msgContext) throws AxisFault {
//TODO: Once the core HTTP API allows us to return an ack before unwinding, then the should be fixed
@@ -332,6 +333,14 @@
faultToBeThrownOut = fault;
signalResponseReady();
}
+
+ public boolean isResponseWritten() {
+ return responseWritten;
+ }
+
+ public void setResponseWritten(boolean responseWritten) {
+ this.responseWritten = responseWritten;
+ }
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/SOAPUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/SOAPUtil.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/SOAPUtil.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/SOAPUtil.java Fri Jun 29 11:54:44 2007
@@ -21,6 +21,7 @@
import org.apache.axis2.Constants;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.Parameter;
+import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.HTTPTransportUtils;
import org.apache.axis2.util.JavaUtils;
@@ -67,16 +68,10 @@
soapAction,
request.getRequestURL().toString());
- Object contextWritten = null;
- if (msgContext.getOperationContext() != null) {
- contextWritten =
- msgContext.getOperationContext().getProperty(Constants.RESPONSE_WRITTEN);
- }
-
response.setContentType("text/xml; charset="
+ msgContext.getProperty(Constants.Configuration.CHARACTER_SET_ENCODING));
- if ((contextWritten == null) || !Constants.VALUE_TRUE.equals(contextWritten)) {
+ if (!TransportUtils.isResponseWritten(msgContext)) {
Integer statusCode = (Integer) msgContext.getProperty(Constants.RESPONSE_CODE);
if (statusCode != null) {
response.setStatus(statusCode.intValue());
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalResponder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalResponder.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalResponder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalResponder.java Fri Jun 29 11:54:44 2007
@@ -97,12 +97,8 @@
}
}
- // TODO fix this, we do not set the value if the operation context is
- // not available
- if (msgContext.getOperationContext() != null) {
- msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,
- Constants.VALUE_TRUE);
- }
+ TransportUtils.setResponseWritten(msgContext, true);
+
return InvocationResponse.CONTINUE;
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalTransportSender.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalTransportSender.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/local/LocalTransportSender.java Fri Jun 29 11:54:44 2007
@@ -94,12 +94,8 @@
}
}
- // TODO fix this, we do not set the value if the operation context is
- // not available
- if (msgContext.getOperationContext() != null) {
- msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,
- Constants.VALUE_TRUE);
- }
+ TransportUtils.setResponseWritten(msgContext, true);
+
return InvocationResponse.CONTINUE;
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java Fri Jun 29 11:54:44 2007
@@ -37,9 +37,10 @@
*/
public class HttpCoreRequestResponseTransport implements RequestResponseTransport {
- private static final Log log = LogFactory.getLog(HttpCoreRequestResponseTransport.class);
+ private static final Log log = LogFactory.getLog(HttpCoreRequestResponseTransport.class);
private RequestResponseTransportStatus status = RequestResponseTransportStatus.INITIAL;
private MessageContext msgContext = null;
+ private boolean responseWritten = false;
HttpCoreRequestResponseTransport(MessageContext msgContext) {
this.msgContext = msgContext;
@@ -66,4 +67,12 @@
public void signalFaultReady(AxisFault fault) {
}
+
+ public boolean isResponseWritten() {
+ return responseWritten;
+ }
+
+ public void setResponseWritten(boolean responseWritten) {
+ this.responseWritten = responseWritten;
+ }
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/tcp/TCPTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/tcp/TCPTransportSender.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/tcp/TCPTransportSender.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/tcp/TCPTransportSender.java Fri Jun 29 11:54:44 2007
@@ -102,12 +102,8 @@
}
}
- // TODO fix this, we do not set the value if the operation context is
- // not available
- if (msgContext.getOperationContext() != null) {
- msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,
- Constants.VALUE_TRUE);
- }
+ TransportUtils.setResponseWritten(msgContext, true);
+
return InvocationResponse.CONTINUE;
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java Fri Jun 29 11:54:44 2007
@@ -47,6 +47,8 @@
String SOURCE_FOLDER_NAME_OPTION = "S";
String RESOURCE_FOLDER_OPTION = "R";
String XSDCONFIG_OPTION = "xc";
+ String All_PORTS_OPTION = "ap";
+ String OVERRIDE_OPTION = "or";
//long option constants
String OUTPUT_LOCATION_OPTION_LONG = "output";
@@ -76,6 +78,8 @@
String SOURCE_FOLDER_NAME_OPTION_LONG = "source-folder";
String RESOURCE_FOLDER_OPTION_LONG = "resource-folder";
String XSDCONFIG_OPTION_LONG = "xsdconfig";
+ String All_PORTS_OPTION_LONG = "all-ports";
+ String OVERRIDE_OPTION_LONG = "over-ride";
String WSDL_VERSION_2 = "2.0";
String WSDL_VERSION_2_OPTIONAL = "2";
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java Fri Jun 29 11:54:44 2007
@@ -89,7 +89,6 @@
handler.init(new HandlerDescription());
assertNull(handler.getName());
assertNull(handler.getParameter("hello"));
- handler.cleanup();
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/EnginePausingTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/EnginePausingTest.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/EnginePausingTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/EnginePausingTest.java Fri Jun 29 11:54:44 2007
@@ -47,6 +47,9 @@
public class EnginePausingTest extends TestCase {
+ public static final String FAULT_IDX = "FaultIndex";
+ public static final String FAULT_REASON = "I faulted because I was told to!";
+
private QName serviceName = new QName("NullService");
private QName operationName = new QName("DummyOp");
private ConfigurationContext configContext;
@@ -182,21 +185,36 @@
public void testReceive() throws Exception {
mc.setTo(new EndpointReference("/axis2/services/NullService"));
mc.setWSAAction("DummyOp");
- AxisEngine engine = new AxisEngine(configContext);
- engine.receive(mc);
+ AxisEngine.receive(mc);
assertEquals(14, executedHandlers.size());
for (int i = 0; i < 14; i++) {
assertEquals(((Integer) executedHandlers.get(i)).intValue(),
i + 1);
}
- engine.resume(mc);
+ AxisEngine.resume(mc);
assertEquals(27, executedHandlers.size());
for (int i = 15; i < 27; i++) {
assertEquals(((Integer) executedHandlers.get(i)).intValue(),
i + 1);
}
+ }
+ public void testFlowComplete() throws Exception {
+ mc.setTo(new EndpointReference("/axis2/services/NullService"));
+ mc.setWSAAction("DummyOp");
+
+ // Fault on Handler #5
+ mc.setProperty(FAULT_IDX, new Integer(5));
+
+ try {
+ AxisEngine.receive(mc);
+ } catch (AxisFault axisFault) {
+ // Expected this fault.
+ assertEquals(4, executedHandlers.size());
+ return;
+ }
+ fail("Expected fault did not occur");
}
public class TempHandler extends AbstractHandler {
@@ -219,11 +237,27 @@
msgContext.pause();
pause = false;
return InvocationResponse.SUSPEND;
- } else {
- executedHandlers.add(index);
- return InvocationResponse.CONTINUE;
}
+
+ Integer faultIndex = (Integer)msgContext.getProperty(FAULT_IDX);
+ if (faultIndex != null && faultIndex.equals(index)) {
+ throw new AxisFault(FAULT_REASON);
+ }
+
+ executedHandlers.add(index);
+ return InvocationResponse.CONTINUE;
}
+
+ public void flowComplete(MessageContext msgContext) {
+ if (msgContext.getProperty(FAULT_IDX) != null) {
+ // If we're here on an invocation where someone was supposed to fault...
+ AxisFault fault = (AxisFault)msgContext.getFailureReason();
+ assertNotNull("No fault!", fault);
+
+ // Make sure it's the right fault.
+ assertEquals(FAULT_REASON, fault.getReason());
+ }
+ }
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextChangeTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextChangeTest.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextChangeTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextChangeTest.java Fri Jun 29 11:54:44 2007
@@ -109,6 +109,7 @@
"class$org$apache$axis2$context$MessageContext"),
new FieldDescription("java.lang.Class",
"class$org$apache$axis2$context$SelfManagedDataManager"),
+ new FieldDescription("java.lang.Exception", "failureReason"),
};
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextSaveATest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextSaveATest.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextSaveATest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/MessageContextSaveATest.java Fri Jun 29 11:54:44 2007
@@ -859,7 +859,7 @@
Integer value3 = (Integer) restoredSimpleMsg.getProperty("key3");
Long value4 = (Long) restoredSimpleMsg.getProperty("key4");
- assertEquals(value1, "value1");
+ assertEquals("value1", value1);
assertNull(value2);
boolean isOk = false;
Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/SOAPActionBasedDispatcherTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/SOAPActionBasedDispatcherTest.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/SOAPActionBasedDispatcherTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/engine/SOAPActionBasedDispatcherTest.java Fri Jun 29 11:54:44 2007
@@ -15,6 +15,7 @@
import junit.framework.TestCase;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.InOnlyAxisOperation;
@@ -25,7 +26,8 @@
public class SOAPActionBasedDispatcherTest extends TestCase {
public void testFindOperation() throws Exception {
- MessageContext messageContext = new MessageContext();
+ ConfigurationContext cc = new ConfigurationContext(new AxisConfiguration());
+ MessageContext messageContext = cc.createMessageContext();
AxisService as = new AxisService("Service1");
messageContext.setAxisService(as);
Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java Fri Jun 29 11:54:44 2007
@@ -49,6 +49,14 @@
*/
public interface EndpointInterfaceDescription {
+
+ /**
+ * The name of a special operation added to EndpointInterfaceDescriptions for provider
+ * endpoints that do not specify WSDL, and therefore do not have specific WSDL operations
+ * created. Note that this is currently only supported for HTTP bindings, not for SOAP bindings.
+ */
+ public static String JAXWS_NOWSDL_PROVIDER_OPERATION_NAME = "jaxwsNoWSDLProviderOperation";
+
public abstract EndpointDescription getEndpointDescription();
public abstract String getTargetNamespace();
Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java Fri Jun 29 11:54:44 2007
@@ -190,5 +190,18 @@
public void setOperationRuntimeDesc(OperationRuntimeDescription ord);
+ /**
+ * For JAX-WS client-side async operations, this will return the corresponding sync
+ * OperationDescription.
+ *
+ * Note that if this method is used within the metadata layer, it is possible that it will return
+ * null. That will happen if the metadata layer is constructed from annotations on the SEI
+ * (not WSDL). In that case, it is possible that the async methods on the SEI are processed
+ * before the sync method. In that case, there will be no sync method yet. If this method
+ * is called outside the metadata layer, then if the async methods exist, the sync method
+ * should also exist.
+ *
+ * @return OperationDescription corresponding to the sync operation, or null (see note above).
+ */
public OperationDescription getSyncOperation();
}
Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java Fri Jun 29 11:54:44 2007
@@ -336,8 +336,8 @@
} else if (composite.getWsdlDefinition() == null) {
//This is a SOAP12 binding that does not contain a WSDL definition, log a WARNING
- log.warn("This implementation does not contain a WSDL definition and uses a SOAP 1.2 based binding. " +
- "Per JAXWS spec. - a WSDL definition cannot be generated for this implementation. Name: "
+ log.warn("This implementation does not contain a WSDL definition and is not a SOAP 1.1 based binding. "
+ + "Per JAXWS spec. - a WSDL definition cannot be generated for this implementation. Name: "
+ composite.getClassName());
}
@@ -547,7 +547,15 @@
}
}
} else {
- //TODO: process a WebServiceProvider
+ if (log.isDebugEnabled()) {
+ log.debug("WebServiceProvider without WSDL encountered");
+ }
+ // REVIEW: Currently this is only supported for HTTP Bindings; SOAPBindings
+ // for providers currently require that there be WSDL.
+ String bindingType = getBindingType();
+ if (javax.xml.ws.http.HTTPBinding.HTTP_BINDING.equals(bindingType)) {
+ endpointInterfaceDescription = new EndpointInterfaceDescriptionImpl(composite, this);
+ }
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java?view=diff&rev=551999&r1=551998&r2=551999
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java Fri Jun 29 11:54:44 2007
@@ -18,7 +18,9 @@
package org.apache.axis2.jaxws.description.impl;
+import org.apache.axis2.AxisFault;
import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisOperationFactory;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.description.EndpointDescription;
@@ -30,6 +32,7 @@
import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
import org.apache.axis2.jaxws.description.builder.MDQConstants;
import org.apache.axis2.jaxws.description.builder.MethodDescriptionComposite;
+import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -124,10 +127,52 @@
}
}
}
+ /**
+ * Construct as Provider-based endpoint which does not have specific WSDL operations. Since there
+ * are no specific WSDL operations in this case, there will be a single generic operation that
+ * will accept any incoming operation.
+ *
+ * @param dbc
+ * @param parent
+ */
+ EndpointInterfaceDescriptionImpl(DescriptionBuilderComposite dbc,
+ EndpointDescriptionImpl parent) {
+ if (log.isDebugEnabled()) {
+ log.debug("Creating a EndpointInterfaceDescription for a generic WSDL-less provider");
+ }
+ parentEndpointDescription = parent;
+ this.dbc = dbc;
+
+ // Construct the generic provider AxisOperation to use then construct
+ // an OperactionDescription for it.
+ AxisOperation genericProviderAxisOp = null;
+ try {
+ genericProviderAxisOp =
+ AxisOperationFactory.getOperationDescription(WSDLConstants.WSDL20_2006Constants.MEP_URI_IN_OUT);
+ } catch (AxisFault e) {
+ if (log.isDebugEnabled()) {
+ log.debug("Unable to build AxisOperation for generic Provider; caught exception.", e);
+ }
+ // TODO: NLS & RAS
+ throw ExceptionFactory.makeWebServiceException("Caught exception trying to create AxisOperation",
+ e);
+ }
+
+ genericProviderAxisOp.setName(new QName(JAXWS_NOWSDL_PROVIDER_OPERATION_NAME));
+ OperationDescription opDesc = new OperationDescriptionImpl(genericProviderAxisOp, this);
+
+ addOperation(opDesc);
+ AxisService axisService = getEndpointDescription().getAxisService();
+ axisService.addOperation(genericProviderAxisOp);
+ }
/**
- * Build an EndpointInterfaceDescription from a DescriptionBuilderComposite
- *
+ * Build an EndpointInterfaceDescription from a DescriptionBuilderComposite. This EID has
+ * WSDL operations associated with it. It could represent an SEI-based endpoint built from
+ * WSDL or annotations, OR it could represent a Provider-based enpoint built from WSDL. It will
+ * not represent a Provider-based endpoint built without WSDL (which does not know about
+ * specific WSDL operations). For that type of EID, see:
+ * @see #EndpointInterfaceDescriptionImpl(DescriptionBuilderComposite dbc, EndpointDescriptionImpl parent)
* @param dbc
* @param isClass
* @param parent
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org