antelder 2002/06/12 08:35:38
Modified: java/src/org/apache/wsif/util/jms WSIFJMSDestination.java
java/src/org/apache/wsif/providers/soap/apacheaxis
WSIFOperation_ApacheAxis.java
java/test/async AsyncTest.java
java/src/org/apache/wsif/providers/soap/apachesoap
WSIFOperation_ApacheSOAP.java
SOAPJMSConnection.java
java/src/org/apache/wsif WSIFConstants.java
java/test/addressbook AddressBookTest.java
Log:
Allow setting JMS input properties from the context message
Revision Changes Path
1.4 +1 -1
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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WSIFJMSDestination.java 10 Jun 2002 17:03:53 -0000 1.3
+++ WSIFJMSDestination.java 12 Jun 2002 15:35:38 -0000 1.4
@@ -453,7 +453,7 @@
* Sets a HashMap of JMS property value pairs. The property values will be only
* be used for the next message that is sent, then all the properties will be
reset.
*/
- public void setProperties(HashMap propMap) throws WSIFException {
+ public void setProperties(HashMap propMap) {
Tr.entry(this, propMap);
if (propMap != null && !propMap.isEmpty())
inProps.putAll(propMap);
1.6 +34 -11
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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WSIFOperation_ApacheAxis.java 12 Jun 2002 10:27:25 -0000 1.5
+++ WSIFOperation_ApacheAxis.java 12 Jun 2002 15:35:38 -0000 1.6
@@ -93,6 +93,7 @@
import org.apache.wsif.WSIFOperation;
import org.apache.wsif.WSIFResponseHandler;
import org.apache.wsif.base.WSIFDefaultOperation;
+import org.apache.wsif.base.WSIFDefaultMessage;
import org.apache.wsif.base.WSIFServiceImpl;
import org.apache.wsif.logging.Tr;
import org.apache.wsif.providers.WSIFDynamicTypeMap;
@@ -593,6 +594,8 @@
return false;
}
+ // setJMSOutPropsInContext( dest ); TODO doesn't work yet
+
if (!isAsyncOperation() && returnType != null) {
return buildResponseMessages(response, wsifmessage1, wsifmessage2);
}
@@ -862,23 +865,43 @@
}
/**
- * This sets up any context property values in the Destination
+ * This sets up the output JMS property values in the context
+ */
+ private void setJMSOutPropsInContext(WSIFJMSDestination dest) throws
WSIFException {
+ if ( dest == null ) {
+ return;
+ }
+ HashMap props = dest.getProperties();
+ if ( props != null ) {
+ if ( context == null ) {
+ context = new WSIFDefaultMessage();
+ }
+ context.setParts( props );
+ }
+ }
+
+ /**
+ * This sets up any context JMS property values in the Destination
*/
private void setDestinationContext(WSIFJMSDestination dest) {
if ( context == null
|| dest == null ) {
return;
}
-
- Object o;
-
- try {
- o = context.getObjectPart( WSIFConstants.CONTEXT_JMS_REPLYTO );
- if ( o instanceof String ) {
- dest.setProperty( WSIFConstants.JMS_REPLYTO, (String)o );
- }
- } catch (WSIFException ex) {} // ignore
-
+ String partName;
+ HashMap jmsProps = new HashMap();
+ for (Iterator i = context.getPartNames(); i.hasNext(); ) {
+ partName = (String)i.next();
+ if ( partName.startsWith( WSIFConstants.CONTEXT_JMS_PREFIX ) ) {
+ try {
+ jmsProps.put( partName.substring(
WSIFConstants.CONTEXT_JMS_PREFIX.length() ),
+ context.getObjectPart( partName ) );
+ } catch (WSIFException ex) {}
+ }
+ }
+ if ( jmsProps.size() > 0 ) {
+ dest.setProperties( jmsProps );
+ }
}
/**
1.8 +1 -1 xml-axis-wsif/java/test/async/AsyncTest.java
Index: AsyncTest.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/async/AsyncTest.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AsyncTest.java 12 Jun 2002 10:27:24 -0000 1.7
+++ AsyncTest.java 12 Jun 2002 15:35:38 -0000 1.8
@@ -182,7 +182,7 @@
AsyncResponseHandler quoteHandler = new AsyncResponseHandler(2); // 2 async
calls
WSIFMessage context = new WSIFDefaultMessage();
- context.setObjectPart( WSIFConstants.CONTEXT_JMS_REPLYTO,
+ context.setObjectPart( WSIFConstants.CONTEXT_JMS_PREFIX + "JMSReplyTo",
TestUtilities.getWsifProperty("wsif.async.replytoq")
);
// First do an async call to get a real quote from the remote service, ie
slow
1.5 +33 -11
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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WSIFOperation_ApacheSOAP.java 12 Jun 2002 10:27:25 -0000 1.4
+++ WSIFOperation_ApacheSOAP.java 12 Jun 2002 15:35:38 -0000 1.5
@@ -98,6 +98,7 @@
import org.apache.wsif.WSIFOperation;
import org.apache.wsif.WSIFResponseHandler;
import org.apache.wsif.base.WSIFDefaultOperation;
+import org.apache.wsif.base.WSIFDefaultMessage;
import org.apache.wsif.base.WSIFServiceImpl;
import org.apache.wsif.logging.MessageLogger;
import org.apache.wsif.logging.Tr;
@@ -594,6 +595,8 @@
e);
}
+ // setJMSOutPropsInContext( st ); TODO doesn't work yet
+
if (resp.generatedFault()) {
if (fault != null) {
org.apache.soap.Fault soapFault = resp.getFault();
@@ -1287,6 +1290,22 @@
}
/**
+ * This sets up the output JMS property values in the context
+ */
+ private void setJMSOutPropsInContext(SOAPTransport t) throws WSIFException {
+ if ( !(t instanceof SOAPJMSConnection) ) {
+ return;
+ }
+ HashMap props = ((SOAPJMSConnection)t).getJmsProperties();
+ if ( props != null ) {
+ if ( context == null ) {
+ context = new WSIFDefaultMessage();
+ }
+ context.setParts( props );
+ }
+ }
+
+ /**
* This sets up any context property values in the transport
*/
private void setTransportContext(SOAPTransport t) {
@@ -1294,17 +1313,20 @@
|| !(t instanceof SOAPJMSConnection) ) {
return;
}
-
- Object o;
- SOAPJMSConnection st = (SOAPJMSConnection) t;
-
- try {
- o = context.getObjectPart( WSIFConstants.CONTEXT_JMS_REPLYTO );
- if ( o instanceof String ) {
- st.setJmsProperty( WSIFConstants.JMS_REPLYTO, (String)o );
- }
- } catch (WSIFException ex) {} // ignore
-
+ String partName;
+ HashMap jmsProps = new HashMap();
+ for (Iterator i = context.getPartNames(); i.hasNext(); ) {
+ partName = (String)i.next();
+ if ( partName.startsWith( WSIFConstants.CONTEXT_JMS_PREFIX ) ) {
+ try {
+ jmsProps.put( partName.substring(
WSIFConstants.CONTEXT_JMS_PREFIX.length() ),
+ context.getObjectPart( partName ) );
+ } catch (WSIFException ex) {}
+ }
+ }
+ if ( jmsProps.size() > 0 ) {
+ ((SOAPJMSConnection) t).setJmsProperties( jmsProps );
+ }
}
/**
1.3 +8 -1
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.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SOAPJMSConnection.java 10 Jun 2002 17:03:53 -0000 1.2
+++ SOAPJMSConnection.java 12 Jun 2002 15:35:38 -0000 1.3
@@ -239,10 +239,17 @@
Tr.exit();
}
- public void setJmsProperties(HashMap hm) throws WSIFException {
+ public void setJmsProperties(HashMap hm) {
Tr.entry(this,hm);
destination.setProperties(hm);
Tr.exit();
+ }
+
+ public HashMap getJmsProperties() throws WSIFException {
+ Tr.entry(this);
+ HashMap hm = destination.getProperties();
+ Tr.exit(hm);
+ return hm;
}
void close() throws WSIFException {
1.4 +2 -5 xml-axis-wsif/java/src/org/apache/wsif/WSIFConstants.java
Index: WSIFConstants.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/WSIFConstants.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WSIFConstants.java 11 Jun 2002 15:09:23 -0000 1.3
+++ WSIFConstants.java 12 Jun 2002 15:35:38 -0000 1.4
@@ -121,11 +121,8 @@
public static final String CONTEXT_SOAP_HEADERS =
"org.apache.wsif.soap.RequestHeaders";
- // WSIF context part name for JMSProperty.JMSReplyTo
- public static final String CONTEXT_JMS_REPLYTO = "JMSProperty.JMSReplyTo";
-
- // WSIF JMS Property JMSReplyTo
- public static final String JMS_REPLYTO = "JMSReplyTo";
+ // WSIF context part name prefix for JMSProperties
+ public static final String CONTEXT_JMS_PREFIX = "JMSProperty.";
// SOAP faults WSIFMessage part name for the fault code
public static final String SOAP_FAULT_MSG_NAME =
1.4 +1 -1 xml-axis-wsif/java/test/addressbook/AddressBookTest.java
Index: AddressBookTest.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/addressbook/AddressBookTest.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AddressBookTest.java 12 Jun 2002 10:27:25 -0000 1.3
+++ AddressBookTest.java 12 Jun 2002 15:35:38 -0000 1.4
@@ -312,7 +312,7 @@
WSIFMessage faultMsg = op.createFaultMessage();
WSIFMessage context = new WSIFDefaultMessage();
- context.setObjectPart( WSIFConstants.CONTEXT_JMS_REPLYTO,
+ context.setObjectPart( WSIFConstants.CONTEXT_JMS_PREFIX + "JMSReplyTo",
TestUtilities.getWsifProperty("wsif.async.replytoq") );
op.setContext( context );