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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]