You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ch...@apache.org on 2006/09/30 11:49:10 UTC

svn commit: r451568 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2: client/ handlers/ msgprocessors/ workers/

Author: chamikara
Date: Sat Sep 30 02:49:09 2006
New Revision: 451568

URL: http://svn.apache.org/viewvc?view=rev&rev=451568
Log:
A fix in the SandeshaClient to add an Anonymous OutONly operation to a Service
Client if one is not present. This will be useful for invocation
using stubs.

Some other bug fixes.

Modified:
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java?view=diff&rev=451568&r1=451567&r2=451568
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java Sat Sep 30 02:49:09 2006
@@ -36,6 +36,10 @@
 import org.apache.axis2.client.async.Callback;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisOperationFactory;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.Sandesha2Constants;
@@ -304,6 +308,9 @@
 	}
 
 	public static void createSequence(ServiceClient serviceClient, boolean offer) throws SandeshaException {
+		
+		setUpServiceClientAnonymousOperation(serviceClient);
+		
 		Options options = serviceClient.getOptions();
 		if (options == null)
 			throw new SandeshaException(SandeshaMessageHelper.getMessage(
@@ -376,6 +383,9 @@
 	 * @throws SandeshaException
 	 */
 	public static void terminateSequence(ServiceClient serviceClient) throws SandeshaException {
+		
+		setUpServiceClientAnonymousOperation(serviceClient);
+		
 		ServiceContext serviceContext = serviceClient.getServiceContext();
 		if (serviceContext == null)
 			throw new SandeshaException(SandeshaMessageHelper.getMessage(
@@ -432,6 +442,9 @@
 	 * @throws SandeshaException
 	 */
 	public static void closeSequence(ServiceClient serviceClient) throws SandeshaException {
+		
+		setUpServiceClientAnonymousOperation(serviceClient);
+		
 		ServiceContext serviceContext = serviceClient.getServiceContext();
 		if (serviceContext == null)
 			throw new SandeshaException(SandeshaMessageHelper.getMessage(
@@ -615,6 +628,8 @@
 
 	public static void sendAckRequest(ServiceClient serviceClient) throws SandeshaException {
 
+		setUpServiceClientAnonymousOperation(serviceClient);
+		
 		Options options = serviceClient.getOptions();
 		if (options == null)
 			throw new SandeshaException(SandeshaMessageHelper.getMessage(
@@ -1067,6 +1082,22 @@
 		terminateSequence.toSOAPEnvelope(dummyEnvelope);
 
 		return dummyEnvelope;
+	}
+	
+	private static void setUpServiceClientAnonymousOperation (ServiceClient serviceClient) throws SandeshaException {
+		try {
+			AxisService service = serviceClient.getAxisService();
+			AxisOperation anonOutOnlyOperation = service.getOperation(ServiceClient.ANON_OUT_ONLY_OP);
+			
+			if (anonOutOnlyOperation==null) {
+				anonOutOnlyOperation = AxisOperationFactory.getAxisOperation(WSDL20_2004Constants.MEP_CONSTANT_OUT_ONLY);
+				anonOutOnlyOperation.setName(ServiceClient.ANON_OUT_ONLY_OP);
+				anonOutOnlyOperation.setParent(service);
+				service.addChild(anonOutOnlyOperation);
+			}
+		} catch (AxisFault e) {
+			throw new SandeshaException (e);
+		}
 	}
 
 }

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?view=diff&rev=451568&r1=451567&r2=451568
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java Sat Sep 30 02:49:09 2006
@@ -229,6 +229,8 @@
 
 		boolean drop = false;
 
+		
+		
 		if (rmMsgContext.getMessageType() == Sandesha2Constants.MessageTypes.APPLICATION) {
 
 			Sequence sequence = (Sequence) rmMsgContext.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
@@ -289,6 +291,9 @@
 
 							ApplicationMsgProcessor ackProcessor = new ApplicationMsgProcessor();
 							ackProcessor.sendAckIfNeeded(rmMsgContext, receivedMsgStr, storageManager);
+							
+							
+							drop = true;
 
 						}
 					}

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?view=diff&rev=451568&r1=451567&r2=451568
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java Sat Sep 30 02:49:09 2006
@@ -56,7 +56,7 @@
 	}
 
 	public void invoke(MessageContext msgCtx) throws AxisFault {
-
+		
 		if (log.isDebugEnabled())
 			log.debug("Enter: SandeshaInHandler::invoke, " + msgCtx.getEnvelope().getHeader());
 

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?view=diff&rev=451568&r1=451567&r2=451568
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Sat Sep 30 02:49:09 2006
@@ -306,4 +306,5 @@
 		if (log.isDebugEnabled())
 			log.debug("Exit: CreateSeqMsgProcessor::processOutMessage");
 	}
+	
 }

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java?view=diff&rev=451568&r1=451567&r2=451568
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java Sat Sep 30 02:49:09 2006
@@ -157,70 +157,83 @@
 
 			try {
 				if (context == null) {
-					String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.configContextNotSet);
-					message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotCointinueSender, message);
+					String message = SandeshaMessageHelper
+							.getMessage(SandeshaMessageKeys.configContextNotSet);
+					message = SandeshaMessageHelper.getMessage(
+							SandeshaMessageKeys.cannotCointinueSender, message);
 					log.debug(message);
 					throw new SandeshaException(message);
 				}
 
-				//TODO make sure this locks on reads.
+				// TODO make sure this locks on reads.
 				transaction = storageManager.getTransaction();
 
 				SenderBeanMgr mgr = storageManager.getRetransmitterBeanMgr();
 				SenderBean senderBean = mgr.getNextMsgToSend();
 				if (senderBean == null) {
 					if (log.isDebugEnabled()) {
-						String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.senderBeanNotFound);
+						String message = SandeshaMessageHelper
+								.getMessage(SandeshaMessageKeys.senderBeanNotFound);
 						log.debug(message);
 					}
 					continue;
 				}
-				
+
 				String messageId = senderBean.getMessageID();
-				
+
 				String toAddress = senderBean.getToAddress();
-				if (toAddress!=null) {
+				if (toAddress != null) {
 					boolean unsendableAddress = false;
-					
-					if (toAddress.equals(AddressingConstants.Submission.WSA_ANONYMOUS_URL))
+
+					if (toAddress
+							.equals(AddressingConstants.Submission.WSA_ANONYMOUS_URL))
 						unsendableAddress = true;
-					else if (toAddress.equals(AddressingConstants.Final.WSA_ANONYMOUS_URL))
+					else if (toAddress
+							.equals(AddressingConstants.Final.WSA_ANONYMOUS_URL))
 						unsendableAddress = true;
-					else if (toAddress.startsWith(Sandesha2Constants.WSRM_ANONYMOUS_URI_PREFIX))
+					else if (toAddress
+							.startsWith(Sandesha2Constants.WSRM_ANONYMOUS_URI_PREFIX))
 						unsendableAddress = true;
-					
+
 					if (unsendableAddress) {
 						if (log.isDebugEnabled()) {
-							String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendToTheAddress,toAddress);
+							String message = SandeshaMessageHelper.getMessage(
+									SandeshaMessageKeys.cannotSendToTheAddress,
+									toAddress);
 							log.debug(message);
 						}
 						continue;
 					}
 				}
-				
-				//work Id is used to define the piece of work that will be assigned to the Worker thread,
-				//to handle this Sender bean.
+
+				// work Id is used to define the piece of work that will be
+				// assigned to the Worker thread,
+				// to handle this Sender bean.
 				String workId = messageId;
-				
-				//check weather the bean is already assigned to a worker.
+
+				// check weather the bean is already assigned to a worker.
 				if (lock.isWorkPresent(workId)) {
 					if (log.isDebugEnabled()) {
-						String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.workAlreadyAssigned, workId);
+						String message = SandeshaMessageHelper
+								.getMessage(
+										SandeshaMessageKeys.workAlreadyAssigned,
+										workId);
 						log.debug(message);
 					}
 					continue;
 				}
-				
+
 				transaction.commit();
-				
-				//start a worker which will work on this messages.
-				SenderWorker worker = new SenderWorker (context,messageId);
-				worker.setLock (lock);
+
+				// start a worker which will work on this messages.
+				SenderWorker worker = new SenderWorker(context, messageId);
+				worker.setLock(lock);
 				worker.setWorkId(messageId);
 				threadPool.execute(worker);
-				
-				//adding the workId to the lock after assigning it to a thread makes sure 
-				//that all the workIds in the Lock are handled by threads.
+
+				// adding the workId to the lock after assigning it to a thread
+				// makes sure
+				// that all the workIds in the Lock are handled by threads.
 				lock.addWork(workId);
 
 			} catch (Exception e) {

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java?view=diff&rev=451568&r1=451567&r2=451568
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java Sat Sep 30 02:49:09 2006
@@ -162,7 +162,8 @@
 					// TODO Auto-generated catch block
 					String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.sendMsgError, e
 							.toString());
-					log.debug(message, e);
+					log.error (message, e);
+
 				} finally {
 					transaction = storageManager.getTransaction();
 					msgCtx.setProperty(Sandesha2Constants.WITHIN_TRANSACTION, Sandesha2Constants.VALUE_TRUE);



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org