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