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]

Reply via email to