whitlock 2002/06/10 10:03:54
Modified: java/src/org/apache/wsif/providers/soap/apachesoap
SOAPJMSConnection.java WSIFPort_ApacheSOAP.java
WSIFOperation_ApacheSOAP.java
java/test/inout InoutTest.java
java/src/org/apache/wsif/util/jms WSIFJMSDestination.java
WSIFJMSProperties.java
java/src/org/apache/wsif/wsdl/extensions/jms
JMSPropertyValueSerializer.java
java/src/org/apache/wsif WSIFClientProxy.java
java/src/org/apache/wsif/util WSIFDefaultOperation.java
java/src/org/apache/wsif/providers/soap/apacheaxis
WSIFOperation_ApacheAxis.java
WSIFPort_ApacheAxis.java
java/test/jms JmsTest.java Jms.wsdl
Log:
Migrate <jms:propertyValue and other JMS fixes to org.apache.wsif
Revision Changes Path
1.2 +7 -0
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/SOAPJMSConnection.java
Index: SOAPJMSConnection.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/SOAPJMSConnection.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SOAPJMSConnection.java 6 Jun 2002 08:28:51 -0000 1.1
+++ SOAPJMSConnection.java 10 Jun 2002 17:03:53 -0000 1.2
@@ -64,6 +64,7 @@
import java.io.StringWriter;
import java.net.URL;
import java.util.Hashtable;
+import java.util.HashMap;
import javax.mail.MessagingException;
import org.apache.soap.Envelope;
@@ -235,6 +236,12 @@
public void setJmsProperty(String name, Object value) throws WSIFException {
Tr.entry(this, name, value);
destination.setProperty(name, value);
+ Tr.exit();
+ }
+
+ public void setJmsProperties(HashMap hm) throws WSIFException {
+ Tr.entry(this,hm);
+ destination.setProperties(hm);
Tr.exit();
}
1.2 +24 -0
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFPort_ApacheSOAP.java
Index: WSIFPort_ApacheSOAP.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFPort_ApacheSOAP.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSIFPort_ApacheSOAP.java 6 Jun 2002 08:28:51 -0000 1.1
+++ WSIFPort_ApacheSOAP.java 10 Jun 2002 17:03:53 -0000 1.2
@@ -91,6 +91,7 @@
import org.apache.wsif.util.WSIFDefaultPort;
import org.apache.wsif.wsdl.extensions.jms.JMSAddress;
import org.apache.wsif.wsdl.extensions.jms.JMSProperty;
+import org.apache.wsif.wsdl.extensions.jms.JMSPropertyValue;
/**
* This is Apache SOAP dynamic WSIF port that is driven by WSDL.
@@ -116,6 +117,7 @@
protected String partSerializerName = null;
private static final boolean DEBUG = false; //for internal use only
private WSIFDynamicTypeMap wsifTypeMap = null;
+ private List jmsAddressPropVals = null;
/**
* Create dynamic port instance from WDL model defintion and port.
@@ -158,6 +160,7 @@
if (ja != null) {
// Port jms:address binding element
+ jmsAddressPropVals = ja.getJMSPropertyValues();
st = new SOAPJMSConnection(ja);
} else {
// Port soap:address bindng element
@@ -426,6 +429,14 @@
operation.setStyle(this.style);
operation.setPartSerializerName(this.partSerializerName);
+ if (jmsAddressPropVals != null
+ && jmsAddressPropVals.size() > 0) {
+ if (st instanceof SOAPJMSConnection)
+ operation.addInputJmsPropertyValues(jmsAddressPropVals);
+ else
+ throw new WSIFException("jms:propertyValue found in non-jms
address");
+ }
+
// get soapActionURI and style from soap:operation
SOAPOperation soapOperation =
(SOAPOperation) getExtElem(bop,
@@ -486,6 +497,18 @@
throw new WSIFException("jms:properties found in non-jms
binding");
}
+ List inJmsPropVals =
+ getExtElems(
+ binpt,
+ JMSPropertyValue.class,
+ binpt.getExtensibilityElements());
+ if (inJmsPropVals != null && inJmsPropVals.size() > 0) {
+ if (st instanceof SOAPJMSConnection)
+ operation.addInputJmsPropertyValues(inJmsPropVals);
+ else
+ throw new WSIFException("jms:propertyValue found in non-jms
binding");
+ }
+
// try to get soap:body for output message
BindingOutput boutpt = bop.getBindingOutput();
if (boutpt != null) {
@@ -608,6 +631,7 @@
buff += " style:" + style;
buff += " partSerializerName:" + partSerializerName;
buff += " wsifTypeMap:" + wsifTypeMap;
+ buff += " jmsAddressPropVals:" + jmsAddressPropVals;
} catch (Exception e) {
Tr.exceptionInTrace(e);
}
1.3 +8 -44
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFOperation_ApacheSOAP.java
Index: WSIFOperation_ApacheSOAP.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFOperation_ApacheSOAP.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WSIFOperation_ApacheSOAP.java 10 Jun 2002 10:23:05 -0000 1.2
+++ WSIFOperation_ApacheSOAP.java 10 Jun 2002 17:03:53 -0000 1.3
@@ -137,8 +137,6 @@
transient protected Class returnType;
transient protected String actionUri;
- transient protected HashMap inJmsProps = new HashMap();
- transient protected HashMap outJmsProps = new HashMap();
// info for async operation
transient protected boolean asyncOperation;
@@ -195,6 +193,7 @@
op.setResponseHandler(getResponseHandler());
op.setInputJmsProperties(getInputJmsProperties());
op.setOutputJmsProperties(getOutputJmsProperties());
+ op.setInputJmsPropertyValues(getInputJmsPropertyValues());
if (Tr.ON)
Tr.exit(op.deep());
@@ -514,6 +513,9 @@
call.setTargetObjectURI(getInputNamespace());
call.setMethodName(getName());
+ if (inJmsPropVals!=null && !inJmsPropVals.isEmpty())
+ ((SOAPJMSConnection)st).setJmsProperties(inJmsPropVals);
+
setTransportContext( st ); // TODO WSDL props override context???
Vector params = new Vector();
@@ -708,6 +710,9 @@
SOAPTransport st = getTransport();
+ if (inJmsPropVals!=null && !inJmsPropVals.isEmpty())
+ ((SOAPJMSConnection)st).setJmsProperties(inJmsPropVals);
+
//TODO docstyle headers
//setCallContext( call );
@@ -1257,48 +1262,6 @@
}
/**
- * Sets the input Jms properties for this operation
- */
- public void setInputJmsProperties(List list) {
- Tr.entry(this, list);
- inJmsProps = makeJmsPropertyMap(list);
- Tr.exit();
- }
-
- /**
- * Sets the output Jms properties for this operation
- */
- public void setOutputJmsProperties(List list) {
- Tr.entry(this, list);
- outJmsProps = makeJmsPropertyMap(list);
- Tr.exit();
- }
-
- public void setInputJmsProperties(HashMap hm) {
- Tr.entry(this, hm);
- inJmsProps = hm;
- Tr.exit();
- }
-
- public void setOutputJmsProperties(HashMap hm) {
- Tr.entry(this, hm);
- outJmsProps = hm;
- Tr.exit();
- }
-
- public HashMap getInputJmsProperties() {
- Tr.entry(this);
- Tr.exit(inJmsProps);
- return inJmsProps;
- }
-
- public HashMap getOutputJmsProperties() {
- Tr.entry(this);
- Tr.exit(outJmsProps);
- return outJmsProps;
- }
-
- /**
* Allows the application programmer or stub to pass context
* information to the binding. The Port implementation may use
* this context - for example to update a SOAP header. There is
@@ -1430,6 +1393,7 @@
buff += " actionUri:" + actionUri;
buff += " inJmsProps:" + inJmsProps;
buff += " outJmsProps:" + outJmsProps;
+ buff += " inJmsPropVals:"+inJmsPropVals;
buff += " asyncOperation:" + asyncOperation;
buff += " asyncRequestID:" + asyncRequestID;
buff += " responseHandler:" + responseHandler;
1.2 +37 -0 xml-axis-wsif/java/test/inout/InoutTest.java
Index: InoutTest.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/inout/InoutTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InoutTest.java 6 Jun 2002 08:28:55 -0000 1.1
+++ InoutTest.java 10 Jun 2002 17:03:53 -0000 1.2
@@ -115,6 +115,7 @@
private final static String ADD = "add";
private final static String DATE = "date";
private final static String SUPC = "supc";
+ private final static String GENC = "genericc";
private final static String WHOAMI = "whoami";
private final static String INOUT = "inout";
@@ -208,6 +209,22 @@
public void testSupCAxisJms() {
doit("SOAPJMSPort", AXIS, RPC, SUPC);
}
+ public void testGenCAxis() {
+ doit("SOAPPort", AXIS, RPC, GENC);
+ }
+ public void testGenCSoap() {
+ doit("SOAPPort", SOAP, RPC, GENC);
+ }
+ public void testGenCJava() {
+ doit("JavaPort", JAVA, RPC, GENC);
+ }
+ public void testGenCSoapJms() {
+ doit("SOAPJMSPort", SOAP, RPC, GENC);
+ }
+ public void testGenCAxisJms() {
+ doit("SOAPJMSPort", AXIS, RPC, GENC);
+ }
+
//public void testWhoAxis () { doit("SOAPPort" ,AXIS,RPC, WHOAMI );
} FAILS
public void testWhoSoap() {
@@ -272,6 +289,8 @@
date(stub);
else if (cmd.equals(SUPC))
supc(service, portName);
+ else if (cmd.equals(GENC))
+ genericc(service, portName);
else if (cmd.equals(WHOAMI))
whoami(stub);
else if (cmd.equals(INOUT))
@@ -397,6 +416,24 @@
Mutablestring msName2 = new Mutablestring(name2);
Address resp2 = stub.getAddressFromName(msName2);
assertTrue(new AddressUtility(addr2).equals(resp2));
+ }
+
+ private interface GenericInout {
+ public void addEntry(String wholeName, Object address)
+ throws java.rmi.RemoteException;
+ public Address getAddressFromName(Mutablestring name)
+ throws java.rmi.RemoteException;
+ }
+
+ private void genericc(WSIFService service, String portName)
+ throws Exception {
+ GenericInout stub =
+ (GenericInout) service.getStub(portName, GenericInout.class);
+
+ stub.addEntry(name1, addr1);
+ Mutablestring msName1 = new Mutablestring(name1);
+ Address resp1 = stub.getAddressFromName(msName1);
+ assertTrue(new AddressUtility(addr1).equals(resp1));
}
/**
1.3 +0 -12
xml-axis-wsif/java/src/org/apache/wsif/util/jms/WSIFJMSDestination.java
Index: WSIFJMSDestination.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/util/jms/WSIFJMSDestination.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WSIFJMSDestination.java 7 Jun 2002 08:42:29 -0000 1.2
+++ WSIFJMSDestination.java 10 Jun 2002 17:03:53 -0000 1.3
@@ -96,7 +96,6 @@
protected WSIFJMSProperties inProps;
protected WSIFJMSProperties outProps;
protected Message lastMessage = null;
- protected String header = null;
protected long timeout;
protected String replyToName = null;
@@ -301,7 +300,6 @@
if (propsSet)
sender = null;
inProps.clear();
- header = null;
}
Tr.exit(msgId);
@@ -503,15 +501,6 @@
return null;
}
- /**
- * Sets a JMS header
- */
- public void setHeader(String value) {
- Tr.entry(this, value);
- header = value;
- Tr.exit();
- }
-
protected void areWeClosed() throws WSIFException {
if (session == null)
throw new WSIFException("Cannot use a closed destination");
@@ -561,7 +550,6 @@
buff += " inProps: " + inProps;
buff += " outProps: " + outProps;
buff += " lastMessage: " + lastMessage;
- buff += " header: " + header;
buff += " timeout: " + timeout;
buff += " replyToName: " + replyToName;
} catch (Exception e) {
1.2 +99 -78
xml-axis-wsif/java/src/org/apache/wsif/util/jms/WSIFJMSProperties.java
Index: WSIFJMSProperties.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/util/jms/WSIFJMSProperties.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSIFJMSProperties.java 6 Jun 2002 08:28:52 -0000 1.1
+++ WSIFJMSProperties.java 10 Jun 2002 17:03:53 -0000 1.2
@@ -63,7 +63,9 @@
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.Enumeration;
+import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
@@ -85,6 +87,23 @@
private static final ArrayList allDirections =
new ArrayList(Arrays.asList(new Object[] { IN, OUT }));
+ private static final String CORRELATIONID = "JMSCorrelationID";
+ private static final String DELIVERYMODE = "JMSDeliveryMode";
+ private static final String DESTINATION = "JMSDestination";
+ private static final String EXPIRATION = "JMSExpiration";
+ private static final String MESSAGEID = "JMSMessageID";
+ private static final String PRIORITY = "JMSPriority";
+ private static final String REDELIVERED = "JMSRedelivered";
+ private static final String REPLYTO = "JMSReplyTo";
+ private static final String TIMESTAMP = "JMSTimestamp";
+ private static final String TIMETOLIVE = "JMSTimeToLive";
+ private static final String TYPE = "JMSType";
+
+ private static final ArrayList predefinedProps =
+ new ArrayList(Arrays.asList(new Object[]{
+ CORRELATIONID,DELIVERYMODE,DESTINATION,EXPIRATION,PRIORITY,
+ REDELIVERED,REPLYTO,TIMESTAMP,TIMETOLIVE}));
+
private String direction;
/**
@@ -116,83 +135,88 @@
*/
public boolean set(MessageProducer producer, Message message)
throws WSIFException {
- Tr.entry(this, producer);
+ Tr.entry(this, producer, message);
if (direction != IN)
throw new WSIFException("Only input properties can be set on a
MessageProducer");
-
+
if (isEmpty()) {
Tr.exit(false);
return false;
}
-
+
for (Iterator it = keySet().iterator(); it.hasNext();)
try {
String prop = (String) (it.next());
Object value = get(prop);
Class type = value.getClass();
- boolean found = false;
-
- Object[] targets = new Object[] { producer, message };
-
- if (prop.startsWith("JMS"))
- for (int targIdx = 0; targIdx < targets.length; targIdx++) {
- Method[] methods = targets[targIdx].getClass().getMethods();
- if (methods == null || methods.length == 0)
- throw new WSIFException(
- "No methods on " +
targets[targIdx].getClass().toString());
-
- String choppedProp = prop.substring(3);
- boolean foundInTarget = false;
- for (int methIdx = 0; methIdx < methods.length &&
!foundInTarget; methIdx++) {
- if (methods[methIdx].getName().equals("set" +
choppedProp)) {
- // Check types in case setXxx is overloaded.
- Class[] types =
methods[methIdx].getParameterTypes();
- if (types == null || types.length != 1)
- continue;
-
- if (types[0].equals(type)
- || (types[0].equals(int.class) &&
type.equals(Integer.class))
- || (types[0].equals(long.class) &&
type.equals(Long.class))) {
- foundInTarget = true;
- methods[methIdx].invoke(producer, new Object[]
{ value });
- }
- } // end if
- } // end for
-
- if (foundInTarget)
- found = true;
- } // end if
-
+
+ if (predefinedProps.contains(prop))
+ try {
+ if (prop.equals(CORRELATIONID)) {
+ message.setJMSCorrelationID((String) value);
+ } else if (prop.equals(DELIVERYMODE)) {
+ message.setJMSDeliveryMode(
+ ((Integer) value).intValue());
+ producer.setDeliveryMode(((Integer) value).intValue());
+ } else if (prop.equals(DESTINATION)) {
+ message.setJMSDestination((Destination) value);
+ } else if (prop.equals(EXPIRATION)) {
+ message.setJMSExpiration(((Integer) value).intValue());
+ } else if (prop.equals(PRIORITY)) {
+ message.setJMSPriority(((Integer) value).intValue());
+ producer.setPriority(((Integer) value).intValue());
+ } else if (prop.equals(REDELIVERED)) {
+ message.setJMSRedelivered(
+ ((Boolean) value).booleanValue());
+ } else if (prop.equals(REPLYTO)) {
+ message.setJMSReplyTo((Destination) value);
+ } else if (prop.equals(TIMESTAMP)) {
+ message.setJMSTimestamp(((Long) value).longValue());
+ } else if (prop.equals(TIMETOLIVE)) {
+ producer.setTimeToLive(((Long) value).longValue());
+ }
+ } catch (ClassCastException ce) {
+ throw new WSIFException(
+ "Unexpected type "
+ + type
+ + " for JMS property "
+ + prop
+ + ".");
+ }
+
// User defined properties
- if (!found) {
+ else {
if (type.equals(String.class))
message.setStringProperty(prop, value.toString());
- if (type.equals(Integer.class))
+ else if (type.equals(Integer.class))
message.setIntProperty(prop, ((Integer) value).intValue());
- if (type.equals(Boolean.class))
- message.setBooleanProperty(prop, ((Boolean)
value).booleanValue());
- if (type.equals(Byte.class))
+ else if (type.equals(Boolean.class))
+ message.setBooleanProperty(
+ prop,
+ ((Boolean) value).booleanValue());
+ else if (type.equals(Byte.class))
message.setByteProperty(prop, ((Byte) value).byteValue());
- if (type.equals(Double.class))
- message.setDoubleProperty(prop, ((Double)
value).doubleValue());
- if (type.equals(Float.class))
- message.setFloatProperty(prop, ((Float)
value).floatValue());
- if (type.equals(Long.class))
+ else if (type.equals(Double.class))
+ message.setDoubleProperty(
+ prop,
+ ((Double) value).doubleValue());
+ else if (type.equals(Float.class))
+ message.setFloatProperty(
+ prop,
+ ((Float) value).floatValue());
+ else if (type.equals(Long.class))
message.setLongProperty(prop, ((Long) value).longValue());
- if (type.equals(Short.class))
- message.setShortProperty(prop, ((Short)
value).shortValue());
+ else if (type.equals(Short.class))
+ message.setShortProperty(
+ prop,
+ ((Short) value).shortValue());
else
message.setObjectProperty(prop, value);
}
-
- } catch (InvocationTargetException ite) {
- throw WSIFJMSConstants.ToWsifException(ite.getTargetException());
- } catch (IllegalAccessException iae) {
- throw WSIFJMSConstants.ToWsifException(iae);
} catch (JMSException je) {
throw WSIFJMSConstants.ToWsifException(je);
}
-
+
Tr.exit(true);
return true;
}
@@ -204,33 +228,30 @@
Tr.entry(this, message);
if (direction != OUT)
throw new WSIFException("Only output properties can be got from a
message");
-
- Method[] methods = message.getClass().getMethods();
- if (methods == null || methods.length == 0)
- throw new WSIFException("No methods on Message");
-
+
clear();
-
- for (int i = 0; i < methods.length; i++) {
- try {
- if (methods[i].getName().startsWith("get")
- && methods[i].getParameterTypes().length == 0) {
- Object value = methods[i].invoke(message, null);
-
- String prop;
- if (methods[i].getName().startsWith("getJMS"))
- prop = methods[i].getName().substring(6);
- else
- prop = methods[i].getName().substring(3);
- String extendedProp = "JMS" + prop;
-
- put(extendedProp, value);
- }
- } catch (InvocationTargetException ignored) {
- } catch (IllegalAccessException ignored) {
+ try {
+ put(CORRELATIONID, message.getJMSCorrelationID());
+ put(DELIVERYMODE, new Integer(message.getJMSDeliveryMode()));
+ put(DESTINATION, message.getJMSDestination());
+ put(EXPIRATION, new Long(message.getJMSExpiration()));
+ put(MESSAGEID, message.getJMSMessageID());
+ put(PRIORITY, new Integer(message.getJMSPriority()));
+ put(REDELIVERED, new Boolean(message.getJMSRedelivered()));
+ put(REPLYTO, message.getJMSReplyTo());
+ put(TIMESTAMP, new Long(message.getJMSTimestamp()));
+ put(TYPE, message.getJMSType());
+
+ Enumeration enum = message.getPropertyNames();
+ while (enum.hasMoreElements()) {
+ String name = (String) enum.nextElement();
+ put(name, message.getObjectProperty(name));
}
+ } catch (JMSException je) {
+ throw WSIFJMSConstants.ToWsifException(je);
}
- Tr.exit();
+
+ Tr.exit(deep());
}
public void clear() {
1.2 +9 -0
xml-axis-wsif/java/src/org/apache/wsif/wsdl/extensions/jms/JMSPropertyValueSerializer.java
Index: JMSPropertyValueSerializer.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/wsdl/extensions/jms/JMSPropertyValueSerializer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JMSPropertyValueSerializer.java 6 Jun 2002 08:28:54 -0000 1.1
+++ JMSPropertyValueSerializer.java 10 Jun 2002 17:03:53 -0000 1.2
@@ -158,10 +158,19 @@
javax.wsdl.BindingInput.class,
JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE,
JMSPropertyValue.class);
+ registry.registerSerializer(
+ JMSAddress.class,
+ JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE,
+ this);
+ registry.registerDeserializer(
+ JMSAddress.class,
+ JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE,
+ this);
registry.mapExtensionTypes(
JMSAddress.class,
JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE,
JMSPropertyValue.class);
+
/*
registry.registerSerializer(
javax.wsdl.BindingOutput.class,
1.2 +14 -7 xml-axis-wsif/java/src/org/apache/wsif/WSIFClientProxy.java
Index: WSIFClientProxy.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/WSIFClientProxy.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSIFClientProxy.java 6 Jun 2002 08:28:48 -0000 1.1
+++ WSIFClientProxy.java 10 Jun 2002 17:03:54 -0000 1.2
@@ -223,7 +223,7 @@
throws WSIFException {
Tr.entry(this, method, args); // Tracing proxy cause a hang
- Operation operation = findMatchingOperation(method);
+ Operation operation = findMatchingOperation(method,args);
// Now set up the input and output messages.
Input input = operation.getInput();
@@ -339,8 +339,12 @@
* null to one of the types that are valid on the method. So the invoke
* method on our client proxy gets passed args[0]==null which is not typed.
* However method.getParameterTypes()[0] is the type that java picked to
- * invoke. So we use getParameterTypes() to choose the operation, not
- * args[i].getClass().
+ * invoke. So we use getParameterTypes() to choose the operation, as well
+ * as args[i].getClass().
+ *
+ * We also use args[i].getClass() to choose the operation in case
+ * getParameterTypes()[i].equals(Object.class) (no match) but
+ * args[i].getClass() is the class specified in the operation.
*
* The typeMap only contains complexTypes, so this class also uses the
* simpleTypeReg for simple types (int, string, etc).
@@ -363,7 +367,7 @@
* If the WSDL is correct, we do not expect that there will be multiple
* exact matches, so we do not test for this.
*/
- private Operation findMatchingOperation(Method method) throws WSIFException {
+ private Operation findMatchingOperation(Method method, Object[] args) throws
WSIFException {
// Check here that the method is in the interface iface
Method[] allMethods = iface.getMethods();
int i;
@@ -413,11 +417,14 @@
// Look this parameter up in the typeMap.
for (Iterator mapIt = typeMap.iterator(); mapIt.hasNext() &&
!foundThisArg;) {
WSIFDynamicTypeMapping mapping = (WSIFDynamicTypeMapping)
mapIt.next();
-
if (mapping.getXmlType().equals(partTypeName)) {
- if
(mapping.getJavaType().isAssignableFrom(types[argIndex])) {
+ if (mapping.getJavaType().isAssignableFrom(types[argIndex])
||
+ (args[argIndex]!=null &&
+
mapping.getJavaType().isAssignableFrom(args[argIndex].getClass()))) {
foundThisArg = true;
- if (mapping.getJavaType().equals(types[argIndex]))
+ if (mapping.getJavaType().equals(types[argIndex]) ||
+ (args[argIndex]!=null &&
+
mapping.getJavaType().equals(args[argIndex].getClass())))
exactMatchThisArg = true;
} else
break;
1.2 +167 -2
xml-axis-wsif/java/src/org/apache/wsif/util/WSIFDefaultOperation.java
Index: WSIFDefaultOperation.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/util/WSIFDefaultOperation.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSIFDefaultOperation.java 6 Jun 2002 08:28:52 -0000 1.1
+++ WSIFDefaultOperation.java 10 Jun 2002 17:03:54 -0000 1.2
@@ -58,19 +58,40 @@
package org.apache.wsif.util;
import java.util.HashMap;
+import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
+import javax.wsdl.QName;
+
+import org.apache.soap.Constants;
import org.apache.wsif.WSIFCorrelationId;
import org.apache.wsif.WSIFException;
import org.apache.wsif.WSIFMessage;
import org.apache.wsif.WSIFOperation;
import org.apache.wsif.WSIFResponseHandler;
+import org.apache.wsif.compiler.schema.tools.Schema2Java;
+import org.apache.wsif.compiler.util.TypeMapping;
import org.apache.wsif.logging.Tr;
import org.apache.wsif.wsdl.extensions.jms.JMSProperty;
+import org.apache.wsif.wsdl.extensions.jms.JMSPropertyValue;
public abstract class WSIFDefaultOperation implements WSIFOperation {
-
+ transient protected HashMap inJmsProps = new HashMap();
+ transient protected HashMap outJmsProps = new HashMap();
+ transient protected HashMap inJmsPropVals = new HashMap();
+ transient private Hashtable simpleTypeReg = null;
+
+ public WSIFDefaultOperation() {
+ simpleTypeReg = new Hashtable();
+ new Schema2Java(Constants.NS_URI_1999_SCHEMA_XSD).getRegistry(
+ simpleTypeReg);
+ new Schema2Java(Constants.NS_URI_2000_SCHEMA_XSD).getRegistry(
+ simpleTypeReg);
+ new Schema2Java(Constants.NS_URI_2001_SCHEMA_XSD).getRegistry(
+ simpleTypeReg);
+ }
+
/**
* @see WSIFOperation#executeRequestResponseOperation(WSIFMessage, WSIFMessage,
WSIFMessage)
*/
@@ -210,9 +231,78 @@
}
/**
+ * Sets the input Jms properties for this operation
+ */
+ public void setInputJmsProperties(List list) throws WSIFException {
+ Tr.entry(this, list);
+ inJmsProps = makeSomeKindOfJmsMap(list);
+ Tr.exit();
+ }
+
+ /**
+ * Sets the output Jms properties for this operation
+ */
+ public void setOutputJmsProperties(List list) throws WSIFException {
+ Tr.entry(this, list);
+ outJmsProps = makeSomeKindOfJmsMap(list);
+ Tr.exit();
+ }
+
+ public void setInputJmsProperties(HashMap hm) {
+ Tr.entry(this, hm);
+ inJmsProps = hm;
+ Tr.exit();
+ }
+
+ public void setOutputJmsProperties(HashMap hm) {
+ Tr.entry(this, hm);
+ outJmsProps = hm;
+ Tr.exit();
+ }
+
+ public HashMap getInputJmsProperties() {
+ Tr.entry(this);
+ Tr.exit(inJmsProps);
+ return inJmsProps;
+ }
+
+ public HashMap getOutputJmsProperties() {
+ Tr.entry(this);
+ Tr.exit(outJmsProps);
+ return outJmsProps;
+ }
+
+ /**
+ * This method adds new property values to existing HashMap.
+ * Where a property value exists in the existing HashMap and the new list,
+ * this method replaces the existing property value with the new one from the
list.
+ */
+ public void addInputJmsPropertyValues(List list) throws WSIFException {
+ Tr.entry(this, list);
+ if (list != null && !list.isEmpty()) {
+ HashMap newPvs = makeSomeKindOfJmsMap(list);
+ newPvs.putAll(inJmsPropVals);
+ inJmsPropVals = newPvs;
+ }
+ Tr.exit();
+ }
+
+ public void setInputJmsPropertyValues(HashMap hm) {
+ Tr.entry(this, hm);
+ inJmsPropVals = hm;
+ Tr.exit();
+ }
+
+ public HashMap getInputJmsPropertyValues() {
+ Tr.entry(this);
+ Tr.exit(inJmsPropVals);
+ return inJmsPropVals;
+ }
+
+ /**
* Utility method that sets the jms properties for this operation
*/
- protected HashMap makeJmsPropertyMap(List list) {
+ protected HashMap makeSomeKindOfJmsMap(List list) throws WSIFException {
Tr.entry(this, list);
HashMap props = new HashMap(list.size());
for (Iterator it = list.iterator(); it.hasNext();) {
@@ -220,6 +310,81 @@
if (ee instanceof JMSProperty) {
JMSProperty prop = (JMSProperty) ee;
props.put(prop.getPart(), prop.getName());
+ } else if (ee instanceof JMSPropertyValue) {
+ JMSPropertyValue propVal = (JMSPropertyValue) ee;
+
+ String name = propVal.getName();
+ if (name == null || name.length() == 0)
+ throw new WSIFException("jms:propertyValue found without a
name");
+
+ QName type = propVal.getType();
+ if (type == null)
+ throw new WSIFException(
+ "jms:propertyValue " + name + " did not have a type");
+ if (type.getNamespaceURI() == null || type.getLocalPart() == null)
+ throw new WSIFException(
+ "jms:propertyValue " + name + " has a badly formed type");
+
+ String value = propVal.getValue();
+ if (value == null || value.length() == 0)
+ throw new WSIFException(
+ "jms:propertyValue " + name + " did not have a value");
+
+ TypeMapping tm = (TypeMapping) (simpleTypeReg.get(type));
+ if (tm == null || tm.javaType == null)
+ throw new WSIFException(
+ "jms:propertyValue "
+ + name
+ + " had a type that was "
+ + "unknown or was not a simple type");
+
+ Class javaClass = null;
+ try {
+ javaClass =
+ Class.forName(
+ tm.javaType,
+ true,
+ Thread.currentThread().getContextClassLoader());
+ } catch (ClassNotFoundException cce) {
+ throw new WSIFException(
+ "Unexpected ClassNotFoundException when processing "
+ + "jms:propertyValue "
+ + name
+ + ". Could not convert the type to a java class. "
+ + cce);
+ }
+
+ Object obj = null;
+ try {
+ if (javaClass.equals(String.class))
+ obj = value;
+ else if (javaClass.equals(Integer.class))
+ obj = new Integer(value);
+ else if (javaClass.equals(Boolean.class))
+ obj = new Boolean(value);
+ else if (javaClass.equals(Byte.class))
+ obj = new Byte(value);
+ else if (javaClass.equals(Double.class))
+ obj = new Double(value);
+ else if (javaClass.equals(Float.class))
+ obj = new Float(value);
+ else if (javaClass.equals(Long.class))
+ obj = new Long(value);
+ else if (javaClass.equals(Short.class))
+ obj = new Short(value);
+ else
+ throw new WSIFException(
+ "jms:propertyValue " + name + " had an invalid type");
+ } catch (NumberFormatException nfe) {
+ throw new WSIFException(
+ "jms:propertyValue "
+ + name
+ + " a value that could not "
+ + "be converted into the specified type. Caught
NumberFormatException. "
+ + nfe);
+ }
+
+ props.put(name, obj);
}
}
Tr.exit(props);
1.4 +5 -61
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java
Index: WSIFOperation_ApacheAxis.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WSIFOperation_ApacheAxis.java 10 Jun 2002 10:23:06 -0000 1.3
+++ WSIFOperation_ApacheAxis.java 10 Jun 2002 17:03:54 -0000 1.4
@@ -116,9 +116,6 @@
transient protected String inputEncodingStyle;
transient protected String inputNamespace;
transient protected String actionUri;
- transient protected HashMap inJmsProps = new HashMap();
- transient protected HashMap outJmsProps = new HashMap();
- transient protected String jmsHeader = null;
transient protected WSIFMessage context;
transient protected Class returnType = null;
@@ -169,7 +166,7 @@
op.setResponseHandler(getResponseHandler());
op.setInputJmsProperties(getInputJmsProperties());
op.setOutputJmsProperties(getOutputJmsProperties());
- op.setJmsHeader(getJmsHeader());
+ op.setInputJmsPropertyValues(getInputJmsPropertyValues());
if (Tr.ON)
Tr.exit(op.deep());
@@ -534,8 +531,6 @@
call.setTransport(axistransport);
if (axistransport instanceof WSIFJmsTransport) {
dest = ((WSIFJmsTransport) axistransport).getDestination();
- if (jmsHeader != null)
- dest.setHeader(jmsHeader);
dest.setAsyncMode(isAsyncOperation());
}
}
@@ -543,6 +538,9 @@
if (names == null)
prepare(call);
+ if (inJmsPropVals!=null && !inJmsPropVals.isEmpty())
+ dest.setProperties(inJmsPropVals);
+
setDestinationContext( dest ); // TODO WSDL props override context???
ArrayList objects = new ArrayList();
@@ -781,60 +779,6 @@
}
/**
- * Sets the input Jms properties for this operation
- */
- public void setInputJmsProperties(List list) {
- Tr.entry(this, list);
- inJmsProps = makeJmsPropertyMap(list);
- Tr.exit();
- }
-
- /**
- * Sets the output Jms properties for this operation
- */
- public void setOutputJmsProperties(List list) {
- Tr.entry(this, list);
- outJmsProps = makeJmsPropertyMap(list);
- Tr.exit();
- }
-
- public void setInputJmsProperties(HashMap hm) {
- Tr.entry(this, hm);
- inJmsProps = hm;
- Tr.exit();
- }
-
- public void setOutputJmsProperties(HashMap hm) {
- Tr.entry(this, hm);
- outJmsProps = hm;
- Tr.exit();
- }
-
- public HashMap getInputJmsProperties() {
- Tr.entry(this);
- Tr.exit(inJmsProps);
- return inJmsProps;
- }
-
- public HashMap getOutputJmsProperties() {
- Tr.entry(this);
- Tr.exit(outJmsProps);
- return outJmsProps;
- }
-
- public void setJmsHeader(String value) {
- Tr.entry(this, value);
- jmsHeader = value;
- Tr.exit();
- }
-
- public String getJmsHeader() {
- Tr.entry(this);
- Tr.exit(jmsHeader);
- return jmsHeader;
- }
-
- /**
* Gets the target namespace URI of this WSIFOperation
*
* @return the target namespace URI
@@ -1033,7 +977,7 @@
buff += " actionUri:" + actionUri;
buff += " inJmsProps:" + inJmsProps;
buff += " outJmsProps:" + outJmsProps;
- buff += " jmsHeader:" + jmsHeader;
+ buff += " inJmsPropVals:" + inJmsPropVals;
buff += " context:" + context;
buff += " returnType:" + returnType;
buff += " asyncOperation:" + asyncOperation;
1.2 +20 -1
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFPort_ApacheAxis.java
Index: WSIFPort_ApacheAxis.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFPort_ApacheAxis.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSIFPort_ApacheAxis.java 6 Jun 2002 08:28:51 -0000 1.1
+++ WSIFPort_ApacheAxis.java 10 Jun 2002 17:03:54 -0000 1.2
@@ -95,6 +95,7 @@
import org.apache.wsif.util.jms.WSIFJMSFinder;
import org.apache.wsif.wsdl.extensions.jms.JMSAddress;
import org.apache.wsif.wsdl.extensions.jms.JMSProperty;
+import org.apache.wsif.wsdl.extensions.jms.JMSPropertyValue;
/**
* @author Mark Whitlock <[EMAIL PROTECTED]>
@@ -107,6 +108,7 @@
protected URL url = null;
protected int transportcode;
protected Transport st;
+ protected List jmsAddressPropVals = null;
private static final boolean DEBUG = false;
private static final int HTTP_TRANSPORT = 1;
private static final int JMS_TRANSPORT = 2;
@@ -161,6 +163,7 @@
}
} else {
isNotHTTP = true;
+ jmsAddressPropVals = jmsaddress.getJMSPropertyValues();
}
if (url == null && !isNotHTTP)
@@ -222,6 +225,13 @@
throw new WSIFException("missing input message for operation " +
s3);
wsifoperation_apacheaxis =
new WSIFOperation_ApacheAxis(this, operation, wsifdynamictypemap);
+
+ if (jmsAddressPropVals!=null && jmsAddressPropVals.size()>0) {
+ if (transportcode==JMS_TRANSPORT)
+
wsifoperation_apacheaxis.addInputJmsPropertyValues(jmsAddressPropVals);
+ else throw new WSIFException("jms:propertyValue found in non-jms
address");
+ }
+
BindingOperation bindingoperation =
binding.getBindingOperation(
s3,
@@ -229,7 +239,7 @@
output == null ? null : output.getName());
if (bindingoperation == null)
throw new WSIFException(
- "mising required in WSDL 1.1 binding operation for " + s3);
+ "missing required in WSDL 1.1 binding operation for " + s3);
SOAPOperation soapoperation =
(SOAPOperation) getExtElem(bindingoperation,
javax.wsdl.extensions.soap.SOAPOperation.class,
@@ -288,6 +298,14 @@
throw new WSIFException("jms:properties found in non-jms
binding");
}
+ List inJmsPropVals =
+ getExtElems(bindinginput, JMSPropertyValue.class,
bindinginput.getExtensibilityElements());
+ if (inJmsPropVals!=null && inJmsPropVals.size()>0) {
+ if (st instanceof WSIFJmsTransport)
+
wsifoperation_apacheaxis.addInputJmsPropertyValues(inJmsPropVals);
+ else throw new WSIFException("jms:propertyValue found in non-jms
binding");
+ }
+
BindingOutput bindingoutput = bindingoperation.getBindingOutput();
if (bindingoutput != null) {
SOAPBody soapbody1 =
@@ -483,6 +501,7 @@
buff += " url:" + url;
buff += " transportcode:" + transportcode;
buff += " st:" + st;
+ buff += " jmsAddressPropVals:" + jmsAddressPropVals;
} catch (Exception e) {
Tr.exceptionInTrace(e);
}
1.2 +179 -78 xml-axis-wsif/java/test/jms/JmsTest.java
Index: JmsTest.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/jms/JmsTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JmsTest.java 6 Jun 2002 08:28:57 -0000 1.1
+++ JmsTest.java 10 Jun 2002 17:03:54 -0000 1.2
@@ -60,6 +60,7 @@
import java.rmi.RemoteException;
import javax.jms.DeliveryMode;
+import javax.wsdl.QName;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -98,30 +99,43 @@
private final static String REPLYTOQ = "AddressBookReplyTo";
private final static int PERS = DeliveryMode.PERSISTENT;
private final static int NPERS = DeliveryMode.NON_PERSISTENT;
+ private final static String UP = "user properties";
+ private final static String APV = "address property values";
+ private final static String BPV = "binding property values";
+ private final static String ABPV = "address and binding property values";
+ private final static String UPV = "user properties values";
+ private final static String OPV = "overiding property values";
private interface AddressBookWithAttrs extends AddressBook {
- public Address getAddressFromName(String name) throws RemoteException;
- public void addEntry(String wholeName, Address address) throws
RemoteException;
- public void addEntry(String firstName, String lastName, Address address)
- throws RemoteException;
-
- public Address getAddressFromName(String name, int deliveryMode)
+ public void addEntry(String name, Address address) throws RemoteException;
+ public void addEntry(String name, Address address, int deliveryMode)
throws RemoteException;
-
public void addEntry(
- String wholeName,
+ String name,
Address address,
int priority,
String replyTo,
int deliveryMode,
long timeToLive)
throws RemoteException;
-
+
public void addEntry(
- String firstName,
- String lastName,
+ String name,
Address address,
- int deliveryMode)
+ int deliveryMode,
+ boolean boolUp,
+ byte byteUp,
+ short shUp,
+ int intUp,
+ long loUp,
+ float flUp,
+ double doUp,
+ String strUp,
+ Object obj)
+ throws RemoteException;
+
+ public Address getAddressFromName(String name) throws RemoteException;
+ public Address getAddressFromName(String name, int deliveryMode)
throws RemoteException;
}
@@ -142,255 +156,292 @@
}
public void testSoapDefault() {
- doit("default", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("default", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapDefaultAlt() {
- doit("default-alt", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("default-alt", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadQcfMixQ() {
- doit("bad-qcfmixq", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-qcfmixq", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadMixQ() {
- doit("bad-mixq", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-mixq", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadMixIcf() {
- doit("bad-mixicf", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-mixicf", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadQcf() {
- doit("bad-qcf", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-qcf", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadQ() {
- doit("bad-queue", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-queue", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadAltQ() {
- doit("bad-altqueue", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-altqueue", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadStyle() {
- doit("bad-style", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-style", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadIcf() {
- doit("bad-icf", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-icf", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadJurl() {
- doit("bad-jurl", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-jurl", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadNoQ() {
- doit("bad-noq", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-noq", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadNoStyle() {
- doit("bad-nostyle", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-nostyle", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadNoQcf() {
- doit("bad-noqcf", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-noqcf", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadNoIcfJurl() {
- doit("bad-noicfjurl", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-noicfjurl", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadAltAndQ() {
- doit("bad-altandq", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-altandq", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadTopic() {
- doit("bad-topic", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-topic", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadImplSpec() {
- doit("bad-implspec", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-implspec", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadMqAndJndi() {
- doit("bad-mqandjndi", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-mqandjndi", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadNothing() {
- doit("bad-nothing", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-nothing", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapBadNoBinding() {
- doit("bad-nobinding", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-nobinding", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapHttpNoAttrs() {
- doit("http-noattrs", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("http-noattrs", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
public void testSoapNullReplyTo() {
- doit("default", SOAP, null, 3, NPERS, 0);
+ doit("default", SOAP, null, 3, NPERS, 0, null);
}
public void testSoapShortReplyTo() {
- doit("default", SOAP, "", 3, NPERS, 0);
+ doit("default", SOAP, "", 3, NPERS, 0, null);
}
public void testSoapBadReplyTo() {
- doit("baddefault", SOAP, "trash", 3, NPERS, 0);
+ doit("baddefault", SOAP, "trash", 3, NPERS, 0, null);
}
public void testSoapZeroPriority() {
- doit("default", SOAP, REPLYTOQ, 0, NPERS, 0);
+ doit("default", SOAP, REPLYTOQ, 0, NPERS, 0, null);
}
public void testSoapNegPriority() {
- doit("baddefault", SOAP, REPLYTOQ, -1, NPERS, 0);
+ doit("baddefault", SOAP, REPLYTOQ, -1, NPERS, 0, null);
}
public void testSoapBigPriority() {
- doit("baddefault", SOAP, REPLYTOQ, 57, NPERS, 0);
+ doit("baddefault", SOAP, REPLYTOQ, 57, NPERS, 0, null);
}
public void testSoapPersistent() {
- doit("default", SOAP, REPLYTOQ, 3, PERS, 0);
+ doit("default", SOAP, REPLYTOQ, 3, PERS, 0, null);
}
public void testSoapBadPers() {
- doit("bad-persist", SOAP, REPLYTOQ, 3, PERS, 0);
+ doit("bad-persist", SOAP, REPLYTOQ, 3, PERS, 0, null);
}
public void testSoapNonPers() {
- doit("nonpersist", SOAP, REPLYTOQ, 3, NPERS, 0);
+ doit("nonpersist", SOAP, REPLYTOQ, 3, NPERS, 0, null);
}
- public void testAxisDefault() {
- doit("default", AXIS, REPLYTOQ, 3, NPERS, 0);
+ public void testSoapUserProp() {
+ doit("default", SOAP, REPLYTOQ, 3, NPERS, 0, UP);
+ }
+
+ public void testSoapAddrPrVals() {
+ doit("addrpv", SOAP, REPLYTOQ, 3, PERS, 0, APV);
}
+ public void testSoapBindPrVals() {
+ doit("bindpv", SOAP, REPLYTOQ, 3, PERS, 0, BPV);
+ }
+
+// public void testSoapAdBiPrVals() {
+// doit("adbipv", SOAP, REPLYTOQ, 3, PERS, 0, ABPV);
+// }
+// public void testSoapOvAdBiPrVals() {
+// doit("ovpv", SOAP, REPLYTOQ, 3, PERS, 0, OPV);
+// }
+// public void testSoapUserPrVals() {
+// doit("userpv", SOAP, REPLYTOQ, 3, NPERS, 0, UPV);
+// }
+// public void testSoapBadPVNoName() {
+// doit("bad-pvnoname", SOAP, REPLYTOQ, 3, NPERS, 0, APV);
+// }
+
+ public void testAxisDefault() {
+ doit("default", AXIS, REPLYTOQ, 3, NPERS, 0, null);
+ }
+
public void testAxisDefaultAlt() {
- doit("default-alt", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("default-alt", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadQcfMixQ() {
- doit("bad-qcfmixq", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-qcfmixq", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadMixQ() {
- doit("bad-mixq", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-mixq", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadMixIcf() {
- doit("bad-mixicf", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-mixicf", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadQcf() {
- doit("bad-qcf", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-qcf", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadQ() {
- doit("bad-queue", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-queue", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadAltQ() {
- doit("bad-altqueue", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-altqueue", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadStyle() {
- doit("bad-style", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-style", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadIcf() {
- doit("bad-icf", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-icf", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadJurl() {
- doit("bad-jurl", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-jurl", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadNoQ() {
- doit("bad-noq", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-noq", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadNoStyle() {
- doit("bad-nostyle", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-nostyle", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadNoQcf() {
- doit("bad-noqcf", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-noqcf", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadNoIcfJurl() {
- doit("bad-noicfjurl", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-noicfjurl", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadAltAndQ() {
- doit("bad-altandq", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-altandq", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadTopic() {
- doit("bad-topic", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-topic", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadImplSpec() {
- doit("bad-implspec", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-implspec", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadMqAndJndi() {
- doit("bad-mqandjndi", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-mqandjndi", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadNothing() {
- doit("bad-nothing", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-nothing", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisBadNoBinding() {
- doit("bad-nobinding", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("bad-nobinding", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisHttpNoAttrs() {
- doit("http-noattrs", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("http-noattrs", AXIS, REPLYTOQ, 3, NPERS, 0, null);
}
public void testAxisNullReplyTo() {
- doit("default", AXIS, null, 3, NPERS, 0);
+ doit("default", AXIS, null, 3, NPERS, 0, null);
}
public void testAxisShortReplyTo() {
- doit("default", AXIS, "", 3, NPERS, 0);
+ doit("default", AXIS, "", 3, NPERS, 0, null);
}
public void testAxisBadReplyTo() {
- doit("baddefault", AXIS, "trash", 3, NPERS, 0);
+ doit("baddefault", AXIS, "trash", 3, NPERS, 0, null);
}
public void testAxisZeroPriority() {
- doit("default", AXIS, REPLYTOQ, 0, NPERS, 0);
+ doit("default", AXIS, REPLYTOQ, 0, NPERS, 0, null);
}
public void testAxisNegPriority() {
- doit("baddefault", AXIS, REPLYTOQ, -1, NPERS, 0);
+ doit("baddefault", AXIS, REPLYTOQ, -1, NPERS, 0, null);
}
public void testAxisBigPriority() {
- doit("baddefault", AXIS, REPLYTOQ, 57, NPERS, 0);
+ doit("baddefault", AXIS, REPLYTOQ, 57, NPERS, 0, null);
}
public void testAxisPersistent() {
- doit("default", AXIS, REPLYTOQ, 3, PERS, 0);
+ doit("default", AXIS, REPLYTOQ, 3, PERS, 0, null);
}
public void testAxisBadPers() {
- doit("bad-persist", AXIS, REPLYTOQ, 3, PERS, 0);
+ doit("bad-persist", AXIS, REPLYTOQ, 3, PERS, 0, null);
}
public void testAxisNonPers() {
- doit("nonpersist", AXIS, REPLYTOQ, 3, NPERS, 0);
+ doit("nonpersist", AXIS, REPLYTOQ, 3, NPERS, 0, null);
+ }
+
+ public void testAxisUserProp() {
+ doit("default", AXIS, REPLYTOQ, 3, NPERS, 0, UP);
+ }
+
+ public void testAxisAddrPrVals() {
+ doit("addrpv", AXIS, REPLYTOQ, 3, PERS, 0, APV);
+ }
+
+ public void testAxisBindPrVals() {
+ doit("bindpv", AXIS, REPLYTOQ, 3, PERS, 0, BPV);
}
public void testJavaNoAttrs() {
- doit("java-noattrs", JAVA, null, 3, NPERS, 0);
+ doit("java-noattrs", JAVA, null, 3, NPERS, 0, null);
}
private void doit(
@@ -399,7 +450,8 @@
String replyTo,
int priority,
int deliveryMode,
- long timeToLive) {
+ long timeToLive,
+ String cmd) {
if (!TestUtilities.areWeTesting("jms"))
return;
@@ -421,10 +473,23 @@
"http://wsifservice.addressbook/",
"AddressBook");
+ service.mapType(
+ new QName("http://www.ibm.com/namespace/wsif/samples/ab/types",
"integer"),
+ Integer.class);
+
AddressBookWithAttrs stub =
(AddressBookWithAttrs) service.getStub(portName,
AddressBookWithAttrs.class);
- stub.addEntry(name, addr, priority, replyTo, deliveryMode, timeToLive);
+ if (cmd == null)
+ stub.addEntry(
+ name,
+ addr,
+ priority,
+ replyTo,
+ deliveryMode,
+ timeToLive);
+ else
+ doProperties(stub, cmd, deliveryMode);
Address resp = stub.getAddressFromName(name, deliveryMode);
assertTrue(new AddressUtility(resp).equals(addr));
@@ -441,5 +506,41 @@
null);
}
}
+ }
+
+ private void doProperties(
+ AddressBookWithAttrs stub,
+ String cmd,
+ int deliveryMode)
+ throws Exception {
+
+ if (UP.equals(cmd)) {
+ byte b = 52;
+ short s = 53;
+ int i = 54;
+ long l = 55;
+ float f = 56.57F;
+ double d = 58.59D;
+ stub.addEntry(
+ name,
+ addr,
+ deliveryMode,
+ true,
+ b,
+ s,
+ i,
+ l,
+ f,
+ d,
+ "60 through 67",
+ new Integer(68));
+ } else if (
+ APV.equals(cmd)
+ || BPV.equals(cmd)
+ || ABPV.equals(cmd)
+ || UPV.equals(cmd)) {
+ stub.addEntry(name, addr, deliveryMode);
+ } else
+ assertTrue(false);
}
}
1.2 +212 -51 xml-axis-wsif/java/test/jms/Jms.wsdl
Index: Jms.wsdl
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/jms/Jms.wsdl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Jms.wsdl 6 Jun 2002 08:28:57 -0000 1.1
+++ Jms.wsdl 10 Jun 2002 17:03:54 -0000 1.2
@@ -1,8 +1,8 @@
<?xml version="1.0" ?>
-<definitions targetNamespace="http://wsifservice.addressbook/"
- xmlns:tns="http://wsifservice.addressbook/"
- xmlns:typens="http://wsiftypes.addressbook/"
+<definitions targetNamespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ xmlns:tns="http://www.ibm.com/namespace/wsif/samples/ab"
+ xmlns:typens="http://www.ibm.com/namespace/wsif/samples/ab/types"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:jms="http://schemas.xmlsoap.org/wsdl/jms"
@@ -13,7 +13,7 @@
<!-- type defs -->
<types>
<xsd:schema
- targetNamespace="http://wsiftypes.addressbook/"
+ targetNamespace="http://www.ibm.com/namespace/wsif/samples/ab/types"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:complexType name="phone">
<xsd:element name="areaCode" type="xsd:int"/>
@@ -33,7 +33,16 @@
</types>
<!-- message declns -->
- <message name="AddEntryWholeNameRequestMessage">
+ <message name="AddEntryRequestMessage">
+ <part name="name" type="xsd:string"/>
+ <part name="address" type="typens:address"/>
+ <part name="requestDeliveryMode" type="xsd:int"/>
+ </message>
+
+ <message name="AddEntryResponseMessage">
+ </message>
+
+ <message name="AddEntryJmsPropRequestMessage">
<part name="name" type="xsd:string"/>
<part name="address" type="typens:address"/>
<part name="requestPriority" type="xsd:int"/>
@@ -42,17 +51,25 @@
<part name="requestTimeToLive" type="xsd:long"/>
</message>
- <message name="AddEntryWholeNameResponseMessage">
+ <message name="AddEntryJmsPropResponseMessage">
</message>
- <message name="AddEntryFirstAndLastNamesRequestMessage">
- <part name="firstName" type="xsd:string"/>
- <part name="lastName" type="xsd:string"/>
- <part name="address" type="typens:address"/>
+ <message name="AddEntryUserPropRequestMessage">
+ <part name="name" type="xsd:string"/>
+ <part name="address" type="typens:address"/>
<part name="requestDeliveryMode" type="xsd:int"/>
+ <part name="requestUPBoolean" type="xsd:boolean"/>
+ <part name="requestUPByte" type="xsd:byte"/>
+ <part name="requestUPShort" type="xsd:short"/>
+ <part name="requestUPInt" type="xsd:int"/>
+ <part name="requestUPLong" type="xsd:long"/>
+ <part name="requestUPFloat" type="xsd:float"/>
+ <part name="requestUPDouble" type="xsd:double"/>
+ <part name="requestUPString" type="xsd:string"/>
+ <part name="requestUPObject" type="typens:integer"/>
</message>
- <message name="AddEntryFirstAndLastNamesResponseMessage">
+ <message name="AddEntryUserPropResponseMessage">
</message>
<message name="GetAddressFromNameRequestMessage">
@@ -67,12 +84,16 @@
<!-- port type declns -->
<portType name="AddressBook">
<operation name="addEntry">
- <input name="AddEntryWholeNameRequest"
message="tns:AddEntryWholeNameRequestMessage"/>
- <output name="AddEntryWholeNameResponse"
message="tns:AddEntryWholeNameResponseMessage"/>
+ <input name="AddEntryRequest" message="tns:AddEntryRequestMessage"/>
+ <output name="AddEntryResponse" message="tns:AddEntryResponseMessage"/>
+ </operation>
+ <operation name="addEntry">
+ <input name="AddEntryJmsPropRequest"
message="tns:AddEntryJmsPropRequestMessage"/>
+ <output name="AddEntryJmsPropResponse"
message="tns:AddEntryJmsPropResponseMessage"/>
</operation>
<operation name="addEntry">
- <input name="AddEntryFirstAndLastNamesRequest"
message="tns:AddEntryFirstAndLastNamesRequestMessage"/>
- <output name="AddEntryFirstAndLastNamesResponse"
message="tns:AddEntryFirstAndLastNamesResponseMessage"/>
+ <input name="AddEntryUserPropRequest"
message="tns:AddEntryUserPropRequestMessage"/>
+ <output name="AddEntryUserPropResponse"
message="tns:AddEntryUserPropResponseMessage"/>
</operation>
<operation name="getAddressFromName">
<input name="GetAddressFromNameRequest"
message="tns:GetAddressFromNameRequestMessage"/>
@@ -85,29 +106,43 @@
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="addEntry">
<soap:operation soapAction=""/>
- <input name="AddEntryWholeNameRequest">
+ <input name="AddEntryRequest">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
parts="name address" />
</input>
- <output name="AddEntryWholeNameResponse">
+ <output name="AddEntryResponse">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
<operation name="addEntry">
<soap:operation soapAction=""/>
- <input name="AddEntryFirstAndLastNamesRequest">
+ <input name="AddEntryJmsPropRequest">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
- parts="firstName lastName address" />
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ parts="name address" />
</input>
- <output name="AddEntryFirstAndLastNamesResponse">
+ <output name="AddEntryJmsPropResponse">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </output>
+ </operation>
+ <operation name="addEntry">
+ <soap:operation soapAction=""/>
+ <input name="AddEntryUserPropRequest">
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ parts="name address" />
+ </input>
+ <output name="AddEntryUserPropResponse">
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
@@ -115,13 +150,13 @@
<soap:operation soapAction=""/>
<input name="GetAddressFromNameRequest">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
parts="name" />
</input>
<output name="GetAddressFromNameResponse">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
@@ -130,7 +165,7 @@
<binding name="JavaBinding" type="tns:AddressBook">
<java:binding/>
<format:typeMapping encoding="Java" style="Java">
- <format:typeMap typeName="typens:address"
formatType="addressbook.wsiftypes.Address" />
+ <format:typeMap typeName="typens:address"
formatType="com.ibm.www.namespace.wsif.samples.ab.types.Address" />
<format:typeMap typeName="xsd:string" formatType="java.lang.String" />
</format:typeMapping>
<operation name="addEntry">
@@ -138,16 +173,8 @@
methodName="addEntry"
parameterOrder="name address"
methodType="instance" />
- <input name="AddEntryWholeNameRequest"/>
- <output name="AddEntryWholeNameResponse"/>
- </operation>
- <operation name="addEntry">
- <java:operation
- methodName="addEntry"
- parameterOrder="firstName lastName address"
- methodType="instance" />
- <input name="AddEntryFirstAndLastNamesRequest"/>
- <output name="AddEntryFirstAndLastNamesResponse"/>
+ <input name="AddEntryJmsPropRequest"/>
+ <output name="AddEntryJmsPropResponse"/>
</operation>
<operation name="getAddressFromName">
<java:operation
@@ -165,46 +192,144 @@
transport="http://schemas.xmlsoap.org/soap/jms"/>
<operation name="addEntry">
<soap:operation soapAction=""/>
- <input name="AddEntryWholeNameRequest">
+ <input name="AddEntryRequest">
+ <jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </input>
+ <output name="AddEntryResponse">
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </output>
+ </operation>
+ <operation name="addEntry">
+ <soap:operation soapAction=""/>
+ <input name="AddEntryJmsPropRequest">
<jms:property name="JMSPriority" part="requestPriority" />
<jms:property name="JMSReplyTo" part="requestReplyTo" />
<jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
<jms:property name="JMSTimeToLive" part="requestTimeToLive" />
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
- <output name="AddEntryWholeNameResponse">
+ <output name="AddEntryJmsPropResponse">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
<operation name="addEntry">
<soap:operation soapAction=""/>
- <input name="AddEntryFirstAndLastNamesRequest">
+ <input name="AddEntryUserPropRequest">
+ <jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
+ <jms:property name="MyBooleanProperty" part="requestUPBoolean" />
+ <jms:property name="MyByteProperty" part="requestUPByte" />
+ <jms:property name="MyShortProperty" part="requestUPShort" />
+ <jms:property name="MyIntProperty" part="requestUPInt" />
+ <jms:property name="MyLongProperty" part="requestUPLong" />
+ <jms:property name="MyFloatProperty" part="requestUPFloat" />
+ <jms:property name="MyDoubleProperty" part="requestUPDouble" />
+ <jms:property name="MyStringProperty" part="requestUPString" />
+ <jms:property name="MyObjectProperty" part="requestUPObject" />
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </input>
+ <output name="AddEntryUserPropResponse">
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </output>
+ </operation>
+ <operation name="getAddressFromName">
+ <soap:operation soapAction=""/>
+ <input name="GetAddressFromNameRequest">
<jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
- <output name="AddEntryFirstAndLastNamesResponse">
+ <output name="GetAddressFromNameResponse">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
+ </binding>
+
+ <binding name="BindPV" type="tns:AddressBook">
+ <soap:binding style="rpc"
+ transport="http://schemas.xmlsoap.org/soap/jms"/>
+ <operation name="addEntry">
+ <soap:operation soapAction=""/>
+ <input name="AddEntryRequest">
+ <jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
+ <jms:propertyValue name="JMSReplyTo" type="xsd:string"
value="AddressBookReplyTo"/>
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </input>
+ <output name="AddEntryResponse">
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </output>
+ </operation>
+ <operation name="addEntry">
+ <soap:operation soapAction=""/>
+ <input name="AddEntryJmsPropRequest">
+ <jms:property name="JMSPriority" part="requestPriority" />
+ <jms:property name="JMSReplyTo" part="requestReplyTo" />
+ <jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
+ <jms:property name="JMSTimeToLive" part="requestTimeToLive" />
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </input>
+ <output name="AddEntryJmsPropResponse">
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </output>
+ </operation>
+ <operation name="addEntry">
+ <soap:operation soapAction=""/>
+ <input name="AddEntryUserPropRequest">
+ <jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
+ <jms:property name="MyBooleanProperty" part="requestUPBoolean" />
+ <jms:property name="MyByteProperty" part="requestUPByte" />
+ <jms:property name="MyShortProperty" part="requestUPShort" />
+ <jms:property name="MyIntProperty" part="requestUPInt" />
+ <jms:property name="MyLongProperty" part="requestUPLong" />
+ <jms:property name="MyFloatProperty" part="requestUPFloat" />
+ <jms:property name="MyDoubleProperty" part="requestUPDouble" />
+ <jms:property name="MyStringProperty" part="requestUPString" />
+ <jms:property name="MyObjectProperty" part="requestUPObject" />
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </input>
+ <output name="AddEntryUserPropResponse">
+ <soap:body use="encoded"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </output>
+ </operation>
<operation name="getAddressFromName">
<soap:operation soapAction=""/>
<input name="GetAddressFromNameRequest">
<jms:property name="JMSDeliveryMode" part="requestDeliveryMode" />
+ <jms:propertyValue name="JMSReplyTo" type="xsd:string"
value="AddressBookReplyTo"/>
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output name="GetAddressFromNameResponse">
<soap:body use="encoded"
- namespace="http://wsifservice.addressbook/"
+ namespace="http://www.ibm.com/namespace/wsif/samples/ab"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
@@ -254,7 +379,7 @@
<jms:address jndiDestinationName="SoapJmsAddressBookQueue"
destinationStyle="queue"
jndiConnectionFactoryName="WSIFSampleQCF"
- initialContextFactory="org.apache.wsif.test.WSIFTestRunner"
+ initialContextFactory="com.ibm.wsif.test.WSIFTestRunner"
jndiProviderURL="file://C:/JNDI-Directory"/>
</port>
<port name="bad-qcf" binding="tns:SOAPJmsBinding">
@@ -369,7 +494,7 @@
<soap:address location="http://localhost:8080/soap/servlet/rpcrouter"/>
</port>
<port name="java-noattrs" binding="tns:JavaBinding">
- <java:address className="addressbook.wsiftypes.AddressBook"/>
+ <java:address className="services.addressbook.AddressBook"/>
</port>
<port name="bad-persist" binding="tns:SOAPJmsBinding">
<jms:address jmsVendorURI="http://ibm.com/ns/mqseries"
@@ -387,6 +512,42 @@
initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory"
jndiProviderURL="file://C:/JNDI-Directory"/>
</port>
+ <port name="addrpv" binding="tns:SOAPJmsBinding">
+ <jms:address jndiDestinationName="SoapJmsAddressBookQueue"
+ destinationStyle="queue"
+ jndiConnectionFactoryName="TempQCF"
+
initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory"
+ jndiProviderURL="file://C:/JNDI-Directory">
+ <jms:propertyValue name="JMSReplyTo" type="xsd:string"
value="AddressBookReplyTo"/>
+ </jms:address>
+ </port>
+ <port name="bindpv" binding="tns:BindPV">
+ <jms:address jndiDestinationName="SoapJmsAddressBookQueue"
+ destinationStyle="queue"
+ jndiConnectionFactoryName="TempQCF"
+
initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory"
+ jndiProviderURL="file://C:/JNDI-Directory">
+ </jms:address>
+ </port>
+ <port name="adbipv" binding="tns:BindPV">
+ <jms:address jndiDestinationName="SoapJmsAddressBookQueue"
+ destinationStyle="queue"
+ jndiConnectionFactoryName="TempQCF"
+
initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory"
+ jndiProviderURL="file://C:/JNDI-Directory">
+ <jms:propertyValue name="JMSReplyTo" type="xsd:string" value="trash"/>
+ </jms:address>
+ </port>
+ <port name="ovpv" binding="tns:SOAPJmsBinding">
+ <jms:address jndiDestinationName="SoapJmsAddressBookQueue"
+ destinationStyle="queue"
+ jndiConnectionFactoryName="TempQCF"
+
initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory"
+ jndiProviderURL="file://C:/JNDI-Directory">
+ <jms:propertyValue name="JMSReplyTo" type="xsd:string" value="trash"/>
+ </jms:address>
+ </port>
</service>
-</definitions>
\ No newline at end of file
+</definitions>
+