Return-Path: Delivered-To: apmail-ws-sandesha-dev-archive@www.apache.org Received: (qmail 24746 invoked from network); 5 Jan 2006 06:01:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 5 Jan 2006 06:01:36 -0000 Received: (qmail 20762 invoked by uid 500); 5 Jan 2006 06:01:35 -0000 Delivered-To: apmail-ws-sandesha-dev-archive@ws.apache.org Received: (qmail 20604 invoked by uid 500); 5 Jan 2006 06:01:33 -0000 Mailing-List: contact sandesha-dev-help@ws.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list sandesha-dev@ws.apache.org Received: (qmail 20584 invoked by uid 500); 5 Jan 2006 06:01:33 -0000 Delivered-To: apmail-ws-sandesha-cvs@ws.apache.org Received: (qmail 20580 invoked by uid 99); 5 Jan 2006 06:01:33 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Jan 2006 22:01:33 -0800 X-ASF-Spam-Status: No, hits=-8.6 required=10.0 tests=ALL_TRUSTED,INFO_TLD,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Wed, 04 Jan 2006 22:01:30 -0800 Received: (qmail 24491 invoked by uid 65534); 5 Jan 2006 06:01:19 -0000 Message-ID: <20060105060119.24463.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r366091 - in /webservices/sandesha/trunk/src/org/apache/sandesha2: ./ handlers/ msgprocessors/ storage/inmemory/ util/ workers/ Date: Thu, 05 Jan 2006 06:01:00 -0000 To: sandesha-cvs@ws.apache.org From: chamikara@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: chamikara Date: Wed Jan 4 21:59:57 2006 New Revision: 366091 URL: http://svn.apache.org/viewcvs?rev=366091&view=rev Log: Updated code to comply with the latest Axis2 source. Changes to the RM Report functionality. Added loggers. Cleaned the code. Removed: webservices/sandesha/trunk/src/org/apache/sandesha2/RMReport.java webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2ClientAPI.java Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaException.java webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/storage/inmemory/InMemorySequencePropertyBeanMgr.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java Wed Jan 4 21:59:57 2006 @@ -22,6 +22,8 @@ import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr; import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr; @@ -40,6 +42,8 @@ public class AcknowledgementManager { + private static Log log = LogFactory.getLog(AcknowledgementManager.class); + /** * Piggybacks any available acks of the same sequence to the given * application message. @@ -63,9 +67,11 @@ Sequence sequence = (Sequence) applicationRMMsgContext .getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE); - if (sequence == null) - throw new SandeshaException( - "Application message does not contain a sequence part"); + if (sequence == null) { + String message = "Application message does not contain a sequence part"; + log.debug(message); + throw new SandeshaException(message); + } String sequenceId = sequence.getIdentifier().getIdentifier(); @@ -73,8 +79,11 @@ .retrieve( sequenceId, Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID); - if (internalSequenceBean == null) - throw new SandeshaException("Temp Sequence is not set"); + if (internalSequenceBean == null) { + String message = "Temp Sequence is not set"; + log.debug(message); + throw new SandeshaException(message); + } String internalSequenceId = (String) internalSequenceBean.getValue(); findBean.setInternalSequenceID(internalSequenceId); @@ -89,7 +98,8 @@ SenderBean ackBean = (SenderBean) it.next(); long timeNow = System.currentTimeMillis(); - if (ackBean.getTimeToSend() > timeNow) { //Piggybacking will happen only if the end of ack interval (timeToSend) is not reached. + if (ackBean.getTimeToSend() > timeNow) { + //Piggybacking will happen only if the end of ack interval (timeToSend) is not reached. //deleting the ack entry. retransmitterBeanMgr.delete(ackBean.getMessageID()); @@ -100,8 +110,11 @@ .getMessageContextRefKey()); RMMsgContext ackRMMsgContext = MsgInitializer .initializeMessage(ackMsgContext); - if (ackRMMsgContext.getMessageType() != Sandesha2Constants.MessageTypes.ACK) - throw new SandeshaException("Invalid ack message entry"); + if (ackRMMsgContext.getMessageType() != Sandesha2Constants.MessageTypes.ACK) { + String message = "Invalid ack message entry"; + log.debug(message); + throw new SandeshaException(message); + } SequenceAcknowledgement sequenceAcknowledgement = (SequenceAcknowledgement) ackRMMsgContext .getMessagePart(Sandesha2Constants.MessageParts.SEQ_ACKNOWLEDGEMENT); Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java Wed Jan 4 21:59:57 2006 @@ -20,9 +20,6 @@ import java.util.HashMap; import java.util.Iterator; -import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamWriter; - import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.addressing.RelatesTo; @@ -169,17 +166,6 @@ } } - public void serializeSOAPEnvelop() { - try { - SOAPEnvelope envelop = msgContext.getEnvelope(); - XMLStreamWriter writer = XMLOutputFactory.newInstance() - .createXMLStreamWriter(System.out); - envelop.serialize(writer); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - public void setFrom(EndpointReference epr) { msgContext.setFrom(epr); } @@ -240,5 +226,15 @@ public void setSOAPAction(String SOAPAction) { msgContext.setSoapAction(SOAPAction); + } + + public void pause () { + if (msgContext!=null) + msgContext.pause(); + } + + public void setPaused (boolean pause) { + if (msgContext!=null) + msgContext.setPaused(pause); } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaException.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaException.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaException.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaException.java Wed Jan 4 21:59:57 2006 @@ -31,4 +31,5 @@ public SandeshaException (String message) { super (message); } + } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java Wed Jan 4 21:59:57 2006 @@ -24,16 +24,13 @@ import org.apache.axis2.context.ConfigurationContext; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.beanmanagers.CreateSeqBeanMgr; -import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr; +import org.apache.sandesha2.storage.beanmanagers.InvokerBeanMgr; import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr; import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr; -import org.apache.sandesha2.storage.beanmanagers.InvokerBeanMgr; import org.apache.sandesha2.storage.beans.CreateSeqBean; -import org.apache.sandesha2.storage.beans.NextMsgBean; +import org.apache.sandesha2.storage.beans.InvokerBean; import org.apache.sandesha2.storage.beans.SenderBean; import org.apache.sandesha2.storage.beans.SequencePropertyBean; -import org.apache.sandesha2.storage.beans.InvokerBean; -import org.apache.sandesha2.util.PropertyManager; import org.apache.sandesha2.util.SandeshaUtil; /** @@ -55,7 +52,7 @@ * @throws SandeshaException */ public static void terminateReceivingSide (ConfigurationContext configContext, String sequenceID) throws SandeshaException { - StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext); + /*StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext); NextMsgBeanMgr nextMsgBeanMgr = storageManager.getNextMsgBeanMgr(); //removing nextMsgMgr entries @@ -71,7 +68,7 @@ boolean inOrderInvocation = PropertyManager.getInstance().isInOrderInvocation(); if(!inOrderInvocation) { terminateAfterInvocation(configContext,sequenceID); - } + }*/ } @@ -151,9 +148,7 @@ Collection collection = retransmitterBeanMgr.find(internalSequenceId); Iterator iterator = collection.iterator(); while (iterator.hasNext()) { - Object obj = iterator.next(); - System.out.println(obj); - SenderBean retransmitterBean = (SenderBean) obj; + SenderBean retransmitterBean = (SenderBean) iterator.next(); retransmitterBeanMgr.delete(retransmitterBean.getMessageID()); } @@ -174,21 +169,29 @@ iterator = collection.iterator(); while (iterator.hasNext()) { SequencePropertyBean sequencePropertyBean = (SequencePropertyBean) iterator.next(); - sequencePropertyBeanMgr.delete(sequencePropertyBean.getSequenceID(),sequencePropertyBean.getName()); + + if (isProportyDeletable(sequencePropertyBean.getName())) { + sequencePropertyBeanMgr.delete(sequencePropertyBean.getSequenceID(),sequencePropertyBean.getName()); + } + } - SequencePropertyBean findSequencePropertyBean2 = new SequencePropertyBean (); - findSequencePropertyBean2.setSequenceID(internalSequenceId); - collection = sequencePropertyBeanMgr.find(findSequencePropertyBean2); - iterator = collection.iterator(); - while (iterator.hasNext()) { - SequencePropertyBean sequencePropertyBean = (SequencePropertyBean) iterator.next(); - sequencePropertyBeanMgr.delete(sequencePropertyBean.getSequenceID(),sequencePropertyBean.getName()); - } +// SequencePropertyBean findSequencePropertyBean2 = new SequencePropertyBean (); +// findSequencePropertyBean2.setSequenceID(internalSequenceId); +// collection = sequencePropertyBeanMgr.find(findSequencePropertyBean2); +// iterator = collection.iterator(); +// while (iterator.hasNext()) { +// SequencePropertyBean sequencePropertyBean = (SequencePropertyBean) iterator.next(); +// sequencePropertyBeanMgr.delete(sequencePropertyBean.getSequenceID(),sequencePropertyBean.getName()); +// } } - private boolean isProportyDeletable (String name) { + private static boolean isProportyDeletable (String name) { boolean deleatable = true; + +// if (name.equals(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID)) { +// int i=1; +// } if (Sandesha2Constants.SequenceProperties.TERMINATE_ADDED.equals(name)) deleatable = false; Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java Wed Jan 4 21:59:57 2006 @@ -31,9 +31,8 @@ import org.apache.axis2.soap.SOAPBody; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.sandesha2.Sandesha2ClientAPI; -import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.RMMsgContext; +import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.msgprocessors.ApplicationMsgProcessor; import org.apache.sandesha2.storage.StorageManager; @@ -83,24 +82,10 @@ ServiceContext serviceContext = msgContext.getServiceContext(); Object debug = null; - if (serviceContext != null) { - debug = msgContext.getProperty(Sandesha2ClientAPI.SANDESHA_DEBUG_MODE); - if (debug != null && "on".equals(debug)) { - System.out.println("DEBUG: SandeshaGlobalInHandler got a '" - + SandeshaUtil.getMessageTypeString(rmMessageContext - .getMessageType()) + "' message."); - } - } //Dropping duplicates boolean dropped = dropIfDuplicate(rmMessageContext); if (dropped) { - if (debug != null && "on".equals(debug)) { - System.out.println("DEBUG: SandeshaGlobalInHandler DROPPED a '" - + SandeshaUtil.getMessageTypeString(rmMessageContext - .getMessageType()) + "' message."); - } - processDroppedMessage(rmMessageContext); return; } @@ -152,7 +137,6 @@ drop = true; } } - } if (drop == false) { @@ -164,10 +148,8 @@ } if (emptyBody) { - boolean lastMessage = false; if (sequence.getLastMessage() != null) { - System.out - .println("Empty Body Last Message Received"); + log.info ("Empty Body LastMessage Received"); drop = true; if (receivedMsgsBean == null) { @@ -200,8 +182,7 @@ } if (drop) { - //rmMsgContext.getMessageContext().pause(); - rmMsgContext.getMessageContext().setPausedTrue(new QName (Sandesha2Constants.IN_HANDLER_NAME)); + rmMsgContext.getMessageContext().pause(); return true; } @@ -229,8 +210,7 @@ String receivedMsgStr = (String) receivedMsgsBean.getValue(); ApplicationMsgProcessor ackProcessor = new ApplicationMsgProcessor(); - //Even though the duplicate message is dropped, hv to send the ack - // if needed. + //Even though the duplicate message is dropped, hv to send the ack if needed. ackProcessor.sendAckIfNeeded(rmMsgContext, receivedMsgStr); } @@ -240,9 +220,8 @@ throws SandeshaException { switch (rmMsgCtx.getMessageType()) { case Sandesha2Constants.MessageTypes.ACK: - rmMsgCtx.setRelatesTo(null); //Removing the relatesTo part from - // ackMessageIf present. - //Some Frameworks tend to send this. + rmMsgCtx.setRelatesTo(null); + //Removing the relatesTo part from ackMessageIf present. Some Frameworks tend to send this. } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java Wed Jan 4 21:59:57 2006 @@ -22,22 +22,18 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.context.ServiceContext; import org.apache.axis2.description.AxisService; import org.apache.axis2.engine.AxisEngine; import org.apache.axis2.handlers.AbstractHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; -import org.apache.sandesha2.Sandesha2ClientAPI; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.msgprocessors.MsgProcessor; import org.apache.sandesha2.msgprocessors.MsgProcessorFactory; -import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.util.FaultManager; import org.apache.sandesha2.util.MsgInitializer; -import org.apache.sandesha2.util.SandeshaUtil; /** * This is invoked in the inFlow of an RM endpoint. This is responsible for selecting an suitable @@ -57,8 +53,11 @@ public void invoke(MessageContext msgCtx) throws AxisFault { ConfigurationContext context = msgCtx.getConfigurationContext(); - if (context == null) - throw new AxisFault("ConfigurationContext is null"); + if (context == null) { + String message = "ConfigurationContext is null"; + log.debug(message); + throw new AxisFault(message); + } String DONE = (String) msgCtx .getProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE); @@ -75,41 +74,36 @@ } AxisService axisService = msgCtx.getAxisService(); - if (axisService == null) - throw new AxisFault("AxisService is null"); + if (axisService == null) { + String message = "AxisService is null"; + log.debug(message); + throw new AxisFault(message); + } RMMsgContext rmMsgCtx = null; try { rmMsgCtx = MsgInitializer.initializeMessage(msgCtx); } catch (SandeshaException ex) { - throw new AxisFault("Cant initialize the message"); - } - - ServiceContext serviceContext = msgCtx.getServiceContext(); - Object debug = null; - if (serviceContext != null) { - debug = msgCtx.getProperty(Sandesha2ClientAPI.SANDESHA_DEBUG_MODE); - if (debug != null && "on".equals(debug)) { - System.out.println("DEBUG: SandeshaInHandler got a '" - + SandeshaUtil.getMessageTypeString(rmMsgCtx - .getMessageType()) + "' message."); - } + String message = "Cant initialize the message"; + log.debug(message); + throw new AxisFault(message); } MsgProcessor msgProcessor = MsgProcessorFactory .getMessageProcessor(rmMsgCtx.getMessageType()); - if (msgProcessor == null) - throw new AxisFault("Cant find a suitable message processor"); + if (msgProcessor == null) { + String message = "Cant find a suitable message processor"; + log.debug(message); + throw new AxisFault(message); + } try { - StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(rmMsgCtx.getMessageContext().getConfigurationContext()); - msgProcessor.processMessage(rmMsgCtx); - } catch (SandeshaException se) { - se.printStackTrace(); - throw new AxisFault("Error in processing the message"); + String message = "Error in processing the message"; + log.debug(message); + throw new AxisFault(message); } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java Wed Jan 4 21:59:57 2006 @@ -36,9 +36,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; -import org.apache.sandesha2.Sandesha2ClientAPI; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; +import org.apache.sandesha2.client.Sandesha2ClientAPI; import org.apache.sandesha2.policy.RMPolicyBean; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.Transaction; @@ -76,12 +76,18 @@ public void invoke(MessageContext msgCtx) throws AxisFault { ConfigurationContext context = msgCtx.getConfigurationContext(); - if (context == null) - throw new AxisFault("ConfigurationContext is null"); + if (context == null) { + String message = "ConfigurationContext is null"; + log.debug(message); + throw new AxisFault(message); + } AxisService axisService = msgCtx.getAxisService(); - if (axisService == null) - throw new AxisFault("AxisService is null"); + if (axisService == null) { + String message = "AxisService is null"; + log.debug(message); + throw new AxisFault(message); + } //getting rm message RMMsgContext rmMsgCtx = MsgInitializer.initializeMessage(msgCtx); @@ -100,15 +106,6 @@ ServiceContext serviceContext = msgCtx.getServiceContext(); OperationContext operationContext = msgCtx.getOperationContext(); - Object debug = null; - if (serviceContext != null) { - debug = msgCtx.getProperty(Sandesha2ClientAPI.SANDESHA_DEBUG_MODE); - if (debug != null && "on".equals(debug)) { - System.out.println("DEBUG: SandeshaOutHandler got a '" - + SandeshaUtil.getMessageTypeString(rmMsgCtx - .getMessageType()) + "' message."); - } - } //continue only if an possible application message if (!(rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.UNKNOWN)) { @@ -151,12 +148,18 @@ Sequence reqSequence = (Sequence) requestRMMsgCtx .getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE); - if (reqSequence == null) - throw new SandeshaException("Sequence part is null"); + if (reqSequence == null) { + String message = "Sequence part is null"; + log.debug(message); + throw new SandeshaException(message); + } String incomingSeqId = reqSequence.getIdentifier().getIdentifier(); - if (incomingSeqId == null || incomingSeqId == "") - throw new SandeshaException("Invalid seqence Id"); + if (incomingSeqId == null || incomingSeqId == "") { + String message = "Invalid seqence Id"; + log.debug(message); + throw new SandeshaException(message); + } internalSequenceId = incomingSeqId; @@ -164,12 +167,13 @@ //set the internal sequence id for the client side. EndpointReference toEPR = msgCtx.getTo(); if (toEPR == null || toEPR.getAddress() == null - || "".equals(toEPR.getAddress())) - throw new AxisFault( - "TO End Point Reference is not set correctly. This is a must for the sandesha client side."); - + || "".equals(toEPR.getAddress())){ + String message = "TO End Point Reference is not set correctly. This is a must for the sandesha client side."; + log.debug(message); + throw new AxisFault(message); + } + String to = toEPR.getAddress(); - OperationContext opContext = msgCtx.getOperationContext(); String sequenceKey = (String) msgCtx .getProperty(Sandesha2ClientAPI.SEQUENCE_KEY); @@ -224,7 +228,9 @@ MessageContext requestMessage = operationContext.getMessageContext(OperationContextFactory.MESSAGE_LABEL_IN_VALUE); if (requestMessage==null) { - throw new SandeshaException ("Request message is not present"); + String message = "Request message is not present"; + log.debug(message); + throw new SandeshaException (message); } acksTo = requestMessage.getTo().getAddress(); @@ -264,9 +270,7 @@ } } - addCreateSequenceMessage(rmMsgCtx, internalSequenceId, acksTo); - } } @@ -280,10 +284,12 @@ } SOAPBody soapBody = rmMsgCtx.getSOAPEnvelope().getBody(); - if (soapBody == null) - throw new SandeshaException( - "Invalid SOAP message. Body is not present"); - + if (soapBody == null) { + String message = "Invalid SOAP message. Body is not present"; + log.debug(message); + throw new SandeshaException(message); + } + String messageId1 = SandeshaUtil.getUUID(); if (rmMsgCtx.getMessageId() == null) { rmMsgCtx.setMessageId(messageId1); @@ -309,8 +315,11 @@ } else { EndpointReference toEPR = msgCtx.getTo(); - if (toEPR == null) - throw new SandeshaException("To EPR is not found"); + if (toEPR == null) { + String message = "To EPR is not found"; + log.debug(message); + throw new SandeshaException(message); + } String to = toEPR.getAddress(); String operationName = msgCtx.getOperationContext() @@ -330,8 +339,8 @@ } //pausing the message - //msgCtx.pause(); - rmMsgCtx.getMessageContext().setPausedTrue(new QName (Sandesha2Constants.OUT_HANDLER_NAME)); + msgCtx.pause(); + //rmMsgCtx.getMessageContext().setPausedTrue(new QName (Sandesha2Constants.OUT_HANDLER_NAME)); transaction.commit(); } @@ -340,15 +349,21 @@ String internalSequenceId, String acksTo) throws SandeshaException { MessageContext applicationMsg = applicationRMMsg.getMessageContext(); - if (applicationMsg == null) - throw new SandeshaException("Message context is null"); + if (applicationMsg == null) { + String message = "Message context is null"; + log.debug(message); + throw new SandeshaException(message); + } + RMMsgContext createSeqRMMessage = RMMsgCreator.createCreateSeqMsg( applicationRMMsg, internalSequenceId, acksTo); CreateSequence createSequencePart = (CreateSequence) createSeqRMMessage .getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ); - if (createSequencePart == null) - throw new SandeshaException( - "Create Sequence part is null for a CreateSequence message"); + if (createSequencePart == null) { + String message = "Create Sequence part is null for a CreateSequence message"; + log.debug(message); + throw new SandeshaException(message); + } SequenceOffer offer = createSequencePart.getSequenceOffer(); if (offer != null) { @@ -380,8 +395,11 @@ createSeqMsg.setRelatesTo(null); //create seq msg does not relateTo // anything AbstractContext context = applicationRMMsg.getContext(); - if (context == null) - throw new SandeshaException("Context is null"); + if (context == null) { + String message = "Context is null"; + log.debug(message); + throw new SandeshaException(message); + } StorageManager storageManager = SandeshaUtil .getSandeshaStorageManager(applicationMsg.getConfigurationContext()); @@ -418,12 +436,18 @@ SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SandeshaUtil .getSOAPVersion(rmMsg.getSOAPEnvelope())); - if (rmMsg == null) - throw new SandeshaException("Message or reques message is null"); + if (rmMsg == null) { + String message = "Message or reques message is null"; + log.debug(message); + throw new SandeshaException(message); + } AbstractContext context = rmMsg.getContext(); - if (context == null) - throw new SandeshaException("Context is null"); + if (context == null) { + String message = "Context is null"; + log.debug(message); + throw new SandeshaException(message); + } StorageManager storageManager = SandeshaUtil .getSandeshaStorageManager(msg.getConfigurationContext()); @@ -443,8 +467,11 @@ internalSequenceId, Sandesha2Constants.SequenceProperties.OUT_SEQUENCE_ID); - if (toBean == null) - throw new SandeshaException("To is null"); + if (toBean == null) { + String message = "To is null"; + log.debug(message); + throw new SandeshaException(message); + } EndpointReference toEPR = new EndpointReference (toBean.getValue()); EndpointReference replyToEPR = null; @@ -454,8 +481,11 @@ } if (toEPR == null || toEPR.getAddress() == null - || toEPR.getAddress() == "") - throw new SandeshaException("To Property has an invalid value"); + || toEPR.getAddress() == "") { + String message = "To Property has an invalid value"; + log.debug(message); + throw new SandeshaException(message); + } String newToStr = null; @@ -504,8 +534,11 @@ .initializeMessage(requestMsg); Sequence requestSequence = (Sequence) reqRMMsgCtx .getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE); - if (requestSequence == null) - throw new SandeshaException("Request Sequence is null"); + if (requestSequence == null) { + String message = "Request Sequence is null"; + log.debug(message); + throw new SandeshaException(message); + } if (requestSequence.getLastMessage() != null) { lastMessage = true; Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java Wed Jan 4 21:59:57 2006 @@ -20,12 +20,12 @@ import java.util.Collection; import java.util.Iterator; -import javax.xml.namespace.QName; - import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.context.AbstractContext; import org.apache.axis2.context.MessageContextConstants; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; @@ -50,37 +50,48 @@ public class AcknowledgementProcessor implements MsgProcessor { + Log log = LogFactory.getLog(getClass()); + public void processMessage(RMMsgContext rmMsgCtx) throws SandeshaException { - - SequenceAcknowledgement sequenceAck = (SequenceAcknowledgement) rmMsgCtx .getMessagePart(Sandesha2Constants.MessageParts.SEQ_ACKNOWLEDGEMENT); - if (sequenceAck == null) - throw new SandeshaException("Sequence acknowledgement part is null"); + if (sequenceAck == null) { + String message = "Sequence acknowledgement part is null"; + log.debug(message); + throw new SandeshaException(message); + } AbstractContext context = rmMsgCtx.getContext(); if (context == null) - throw new SandeshaException("Context is null"); + { + String message = "Context is null"; + log.debug(message); + throw new SandeshaException(message); + } StorageManager storageManager = SandeshaUtil .getSandeshaStorageManager(rmMsgCtx.getMessageContext() .getConfigurationContext()); - - Transaction ackTransaction = storageManager.getTransaction(); - SenderBeanMgr retransmitterMgr = storageManager .getRetransmitterBeanMgr(); SequencePropertyBeanMgr seqPropMgr = storageManager .getSequencePropretyBeanMgr(); + + //Starting transaction + Transaction ackTransaction = storageManager.getTransaction(); + Iterator ackRangeIterator = sequenceAck.getAcknowledgementRanges() .iterator(); Iterator nackIterator = sequenceAck.getNackList().iterator(); String outSequenceId = sequenceAck.getIdentifier().getIdentifier(); - if (outSequenceId == null || "".equals(outSequenceId)) - throw new SandeshaException("OutSequenceId is null"); + if (outSequenceId == null || "".equals(outSequenceId)) { + String message = "OutSequenceId is null"; + log.debug(message); + throw new SandeshaException(message); + } //updating the last activated time of the sequence. SequenceManager.updateLastActivatedTime(outSequenceId,rmMsgCtx.getMessageContext().getConfigurationContext()); @@ -88,8 +99,11 @@ SequencePropertyBean internalSequenceBean = seqPropMgr.retrieve( outSequenceId, Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID); - if (internalSequenceBean == null || internalSequenceBean.getValue() == null) - throw new SandeshaException("TempSequenceId is not set correctly"); + if (internalSequenceBean == null || internalSequenceBean.getValue() == null) { + String message = "TempSequenceId is not set correctly"; + log.debug(message); + throw new SandeshaException(message); + } String internalSequenceId = (String) internalSequenceBean.getValue(); @@ -97,12 +111,9 @@ rmMsgCtx.getMessageContext() .setProperty(Sandesha2Constants.ACK_PROCSSED, "true"); - //Removing relatesTo - Some WSRM endpoints tend to set relatesTo value - // for ack messages. - //Because of this dispatching may go wrong. - //So we set relatesTo value to null for ackMessages. (this happens in - // the SandeshaGlobal handler) - //Do this only if this is a standalone ACK. + //Removing relatesTo - Some WSRM endpoints tend to set relatesTo value for ack messages. + //Because of this dispatching may go wrong. So we set relatesTo value to null for ackMessages. + //(this happens in the SandeshaGlobal handler). Do this only if this is a standalone ACK. if (rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.ACK) rmMsgCtx.setRelatesTo(null); @@ -156,22 +167,23 @@ seqPropMgr.update(ackedMessagesBean); - //following get called in the SandesaInHandler - //if (justSendTerminateIfNeeded) { - //If all messages up to last message have been acknowledged. - //Add terminate Sequence message. + //If all messages up to last message have been acknowledged. Add terminate Sequence message. SequencePropertyBean lastOutMsgBean = seqPropMgr.retrieve( internalSequenceId, Sandesha2Constants.SequenceProperties.LAST_OUT_MESSAGE); if (lastOutMsgBean != null) { Long lastOutMsgNoLng = new Long (lastOutMsgBean.getValue()); - if (lastOutMsgNoLng == null) - throw new SandeshaException( - "Invalid object set for the Last Out Message"); - + if (lastOutMsgNoLng == null) { + String message = "Invalid object set for the Last Out Message"; + log.debug(message); + throw new SandeshaException(message); + } + long lastOutMessageNo = lastOutMsgNoLng.longValue(); - if (lastOutMessageNo <= 0) - throw new SandeshaException( - "Invalid value set for the last out message"); + if (lastOutMessageNo <= 0) { + String message = "Invalid value set for the last out message"; + log.debug(message); + throw new SandeshaException(message); + } boolean complete = SandeshaUtil.verifySequenceCompletion( sequenceAck.getAcknowledgementRanges().iterator(), @@ -184,13 +196,11 @@ } - //stopping the progress of the message further. - //rmMsgCtx.getMessageContext().pause(); - rmMsgCtx.getMessageContext().setPausedTrue(new QName (Sandesha2Constants.IN_HANDLER_NAME)); + rmMsgCtx.pause(); + //commiting transaction ackTransaction.commit(); - } private SenderBean getRetransmitterEntry(Collection collection, @@ -221,7 +231,8 @@ if (terminated != null && terminated.getValue() != null && "true".equals(terminated.getValue())) { - System.out.println("TERMINATE WAS ADDED PREVIOUSLY...."); + String message = "Terminate was added previously."; + log.info(message); return; } @@ -234,8 +245,10 @@ Sandesha2Constants.SequenceProperties.TO_EPR); EndpointReference toEPR = new EndpointReference ( toBean.getValue()); - if (toEPR == null) - throw new SandeshaException("To EPR has an invalid value"); + if (toEPR == null) { + String message = "To EPR has an invalid value"; + throw new SandeshaException(message); + } terminateRMMessage.setTo(new EndpointReference(toEPR.getAddress())); terminateRMMessage.setFrom(new EndpointReference( @@ -266,6 +279,7 @@ //Set a retransmitter lastSentTime so that terminate will be send with // some delay. //Otherwise this get send before return of the current request (ack). + //TODO: refine the terminate delay. terminateBean.setTimeToSend(System.currentTimeMillis() + Sandesha2Constants.TERMINATE_DELAY); @@ -276,8 +290,6 @@ SenderBeanMgr retramsmitterMgr = storageManager .getRetransmitterBeanMgr(); - - retramsmitterMgr.insert(terminateBean); SequencePropertyBean terminateAdded = new SequencePropertyBean(); @@ -286,9 +298,6 @@ terminateAdded.setValue("true"); seqPropMgr.insert(terminateAdded); - - - } private static long getNoOfMessagesAcked (Iterator ackRangeIterator) { @@ -305,5 +314,4 @@ return noOfMsgs; } - } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Wed Jan 4 21:59:57 2006 @@ -34,6 +34,8 @@ import org.apache.axis2.engine.AxisEngine; import org.apache.axis2.soap.SOAPEnvelope; import org.apache.axis2.soap.SOAPFactory; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; @@ -69,6 +71,8 @@ private boolean letInvoke = false; + private Log log = LogFactory.getLog(getClass()); + public void processMessage(RMMsgContext rmMsgCtx) throws SandeshaException { //Processing for ack if any @@ -81,8 +85,11 @@ //Processing the application message. MessageContext msgCtx = rmMsgCtx.getMessageContext(); - if (msgCtx == null) - throw new SandeshaException("Message context is null"); + if (msgCtx == null) { + String message = "Message context is null"; + log.debug(message); + throw new SandeshaException(message); + } if (rmMsgCtx .getProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE) != null @@ -115,8 +122,11 @@ String sequenceId = sequence.getIdentifier().getIdentifier(); ConfigurationContext configCtx = rmMsgCtx.getMessageContext() .getConfigurationContext(); - if (configCtx == null) - throw new SandeshaException("Configuration Context is null"); + if (configCtx == null) { + String message = "Configuration Context is null"; + log.debug(message); + throw new SandeshaException(message); + } //updating the last activated time of the sequence. SequenceManager.updateLastActivatedTime(sequenceId,configCtx); @@ -125,9 +135,12 @@ Sandesha2Constants.SequenceProperties.RECEIVED_MESSAGES); long msgNo = sequence.getMessageNumber().getMessageNumber(); - if (msgNo == 0) - throw new SandeshaException("Wrong message number"); - + if (msgNo == 0) { + String message = "Wrong message number"; + log.debug(message); + throw new SandeshaException(message); + } + String messagesStr = (String) msgsBean.getValue(); if (msgNoPresentInList(messagesStr, msgNo) @@ -135,9 +148,7 @@ //this is a duplicate message and the invocation type is // EXACTLY_ONCE. - //msgCtx.pause(); - rmMsgCtx.getMessageContext().setPausedTrue( - new QName(Sandesha2Constants.IN_HANDLER_NAME)); + rmMsgCtx.pause(); } @@ -169,10 +180,12 @@ boolean inOrderInvocation = PropertyManager.getInstance() .isInOrderInvocation(); if (inOrderInvocation) { + //pause the message - //msgCtx.pause(); - rmMsgCtx.getMessageContext().setPausedTrue( - new QName(Sandesha2Constants.IN_HANDLER_NAME)); + rmMsgCtx.pause(); +// rmMsgCtx.getMessageContext().setPausedTrue( +// new QName(Sandesha2Constants.IN_HANDLER_NAME)); + SequencePropertyBean incomingSequenceListBean = (SequencePropertyBean) seqPropMgr .retrieve( Sandesha2Constants.SequenceProperties.ALL_SEQUENCES, @@ -296,8 +309,7 @@ AxisOperation ackOperation = null; try { - ackOperation = AxisOperationFactory - .getOperetionDescription(AxisOperationFactory.MEP_URI_IN_ONLY); + ackOperation = AxisOperationFactory.getOperationDescription(AxisOperationFactory.MEP_URI_IN_ONLY); } catch (AxisFault e) { throw new SandeshaException("Could not create the Operation"); } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Wed Jan 4 21:59:57 2006 @@ -25,6 +25,8 @@ import org.apache.axis2.context.MessageContext; import org.apache.axis2.engine.AxisEngine; import org.apache.axis2.util.Utils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.RMMsgContext; import org.apache.sandesha2.SandeshaException; @@ -50,22 +52,22 @@ public class CreateSeqMsgProcessor implements MsgProcessor { + private Log log = LogFactory.getLog(getClass()); + public void processMessage(RMMsgContext createSeqRMMsg) throws SandeshaException { MessageContext createSeqMsg = createSeqRMMsg.getMessageContext(); CreateSequence createSeqPart = (CreateSequence) createSeqRMMsg .getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ); - if (createSeqPart == null) - throw new SandeshaException( - "No create sequence part is present in the create sequence message"); + if (createSeqPart == null) { + String message = "No create sequence part is present in the create sequence message"; + log.debug(message); + throw new SandeshaException(message); + } MessageContext outMessage = null; - try { - outMessage = Utils.createOutMessageContext(createSeqMsg); - } catch (AxisFault e) { - throw new SandeshaException(e.getMessage()); - } + outMessage = Utils.createOutMessageContext(createSeqMsg); ConfigurationContext context = createSeqRMMsg.getMessageContext() .getConfigurationContext(); @@ -94,9 +96,11 @@ Accept accept = createSeqResPart.getAccept(); if (accept != null) { SequenceOffer offer = createSeqPart.getSequenceOffer(); - if (offer == null) - throw new SandeshaException( - "Internal error - no offer for the response message with Accept"); + if (offer == null) { + String message = "Internal error - no offer for the response message with Accept"; + log.debug(message); + throw new SandeshaException(message); + } //Setting the CreateSequence table entry. String incomingSeqId = createSeqResPart.getIdentifier() @@ -105,11 +109,7 @@ CreateSeqBean createSeqBean = new CreateSeqBean(); createSeqBean.setSequenceID(outSequenceId); createSeqBean.setInternalSequenceID(newSequenceId); - createSeqBean.setCreateSeqMsgID(SandeshaUtil.getUUID()); //this - // is a - // dummy - // value. - + createSeqBean.setCreateSeqMsgID(SandeshaUtil.getUUID()); //this is a dummy value. CreateSeqBeanMgr createSeqMgr = storageManager .getCreateSeqBeanMgr(); @@ -142,23 +142,25 @@ CreateSequence createSeq = (CreateSequence) createSeqRMMsg .getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ); - if (createSeq == null) - throw new AxisFault( - "Create sequence part not present in the create sequence message"); + if (createSeq == null) { + String message = "Create sequence part not present in the create sequence message"; + log.debug(message); + throw new AxisFault(message); + } EndpointReference acksTo = createSeq.getAcksTo().getAddress() .getEpr(); if (acksTo == null || acksTo.getAddress() == null - || acksTo.getAddress() == "") - throw new AxisFault( - "Acks to not present in the create sequence message"); + || acksTo.getAddress() == "") { + String message = "Acks to not present in the create sequence message"; + log.debug(message); + throw new AxisFault(message); + } SequencePropertyBean seqPropBean = new SequencePropertyBean( newSequenceId, Sandesha2Constants.SequenceProperties.ACKS_TO_EPR, acksTo.getAddress()); -// StorageManager storageManager = SandeshaUtil -// .getSandeshaStorageManager(context); SequencePropertyBeanMgr seqPropMgr = storageManager .getSequencePropretyBeanMgr(); seqPropMgr.insert(seqPropBean); @@ -175,8 +177,11 @@ SequencePropertyBean toBean = seqPropMgr.retrieve(newSequenceId,Sandesha2Constants.SequenceProperties.TO_EPR); - if (toBean==null) - throw new SandeshaException ("Internal Error: wsa:To value is not set"); + if (toBean==null) { + String message = "Internal Error: wsa:To value is not set"; + log.debug(message); + throw new SandeshaException (message); + } EndpointReference toEPR = new EndpointReference (toBean.getValue()); @@ -192,8 +197,7 @@ throw new SandeshaException(e1.getMessage()); } - //createSeqMsg.pause(); - createSeqRMMsg.getMessageContext().setPausedTrue(new QName (Sandesha2Constants.IN_HANDLER_NAME)); + createSeqRMMsg.pause(); createSequenceTransaction.commit(); } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java Wed Jan 4 21:59:57 2006 @@ -17,8 +17,17 @@ package org.apache.sandesha2.msgprocessors; -import org.apache.sandesha2.Sandesha2Constants; +import java.util.Iterator; + +import org.apache.axis2.AxisFault; +import org.apache.axis2.addressing.EndpointReference; +import org.apache.axis2.context.ConfigurationContext; +import org.apache.axis2.context.MessageContext; +import org.apache.axis2.soap.SOAPFactory; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; +import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.Transaction; @@ -40,14 +49,6 @@ import org.apache.sandesha2.wsrm.Identifier; import org.apache.sandesha2.wsrm.Sequence; import org.apache.sandesha2.wsrm.SequenceAcknowledgement; -import org.apache.axis2.AxisFault; -import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.context.MessageContext; -import org.apache.axis2.soap.SOAPFactory; - -import java.util.Iterator; -import javax.xml.namespace.QName; /** * Responsible for processing an incoming Create Sequence Response message. @@ -56,6 +57,9 @@ */ public class CreateSeqResponseMsgProcessor implements MsgProcessor { + + private Log log = LogFactory.getLog(getClass()); + public void processMessage(RMMsgContext createSeqResponseRMMsgCtx) throws SandeshaException { @@ -66,8 +70,8 @@ .getMessageContext().getConfigurationContext(); StorageManager storageManager = SandeshaUtil .getSandeshaStorageManager(configCtx); - //Processing for ack if any + //Processing for ack if available Transaction ackProcessTransaction = storageManager.getTransaction(); SequenceAcknowledgement sequenceAck = (SequenceAcknowledgement) createSeqResponseRMMsgCtx @@ -86,30 +90,41 @@ CreateSequenceResponse createSeqResponsePart = (CreateSequenceResponse) createSeqResponseRMMsgCtx .getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ_RESPONSE); - if (createSeqResponsePart == null) - throw new SandeshaException("Create Sequence Response part is null"); + if (createSeqResponsePart == null) { + String message = "Create Sequence Response part is null"; + log.debug(message); + throw new SandeshaException(message); + } String newOutSequenceId = createSeqResponsePart.getIdentifier() .getIdentifier(); - if (newOutSequenceId == null) - throw new SandeshaException("New sequence Id is null"); + if (newOutSequenceId == null) { + String message = "New sequence Id is null"; + log.debug(message); + throw new SandeshaException(message); + } String createSeqMsgId = createSeqResponseRMMsgCtx.getMessageContext() .getRelatesTo().getValue(); - SenderBeanMgr retransmitterMgr = storageManager .getRetransmitterBeanMgr(); CreateSeqBeanMgr createSeqMgr = storageManager.getCreateSeqBeanMgr(); CreateSeqBean createSeqBean = createSeqMgr.retrieve(createSeqMsgId); - if (createSeqBean == null) - throw new SandeshaException("Create Sequence entry is not found"); + if (createSeqBean == null) { + String message = "Create Sequence entry is not found"; + log.debug(message); + throw new SandeshaException(message); + } String internalSequenceId = createSeqBean.getInternalSequenceID(); - if (internalSequenceId == null || "".equals(internalSequenceId)) - throw new SandeshaException("TempSequenceId has is not set"); + if (internalSequenceId == null || "".equals(internalSequenceId)) { + String message = "TempSequenceId has is not set"; + log.debug(message); + throw new SandeshaException(message); + } //deleting the create sequence entry. retransmitterMgr.delete(createSeqMsgId); @@ -142,9 +157,11 @@ Sandesha2Constants.SequenceProperties.OFFERED_SEQUENCE); //TODO this should be detected in the Fault manager. - if (offeredSequenceBean == null) - throw new SandeshaException( - "No offered sequence. But an accept was received"); + if (offeredSequenceBean == null) { + String message = "No offered sequence. But an accept was received"; + log.debug(message); + throw new SandeshaException(message); + } String offeredSequenceId = (String) offeredSequenceBean.getValue(); @@ -189,9 +206,11 @@ Sequence sequencePart = (Sequence) applicaionRMMsg .getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE); - if (sequencePart == null) - throw new SandeshaException("Sequence part is null"); - + if (sequencePart == null) { + String message = "Sequence part is null"; + log.debug(message); + throw new SandeshaException(message); + } Identifier identifier = new Identifier(factory); identifier.setIndentifer(newOutSequenceId); @@ -210,7 +229,7 @@ } catch (AxisFault e) { throw new SandeshaException(e.getMessage()); } - + //asking to send the application msssage tempBean.setSend(true); retransmitterMgr.update(tempBean); @@ -224,7 +243,6 @@ .setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN, "false"); - //createSeqResponseRMMsgCtx.getMessageContext().pause(); - createSeqResponseRMMsgCtx.getMessageContext().setPausedTrue(new QName (Sandesha2Constants.IN_HANDLER_NAME)); + createSeqResponseRMMsgCtx.pause(); } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java Wed Jan 4 21:59:57 2006 @@ -17,10 +17,10 @@ package org.apache.sandesha2.msgprocessors; -import javax.xml.namespace.QName; - import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; @@ -42,27 +42,35 @@ public class TerminateSeqMsgProcessor implements MsgProcessor { - public void processMessage(RMMsgContext terminateSeqRMMSg) + private Log log = LogFactory.getLog(getClass()); + + public void processMessage(RMMsgContext terminateSeqRMMsg) throws SandeshaException { - MessageContext terminateSeqMsg = terminateSeqRMMSg.getMessageContext(); + MessageContext terminateSeqMsg = terminateSeqRMMsg.getMessageContext(); //Processing for ack if any - SequenceAcknowledgement sequenceAck = (SequenceAcknowledgement) terminateSeqRMMSg + SequenceAcknowledgement sequenceAck = (SequenceAcknowledgement) terminateSeqRMMsg .getMessagePart(Sandesha2Constants.MessageParts.SEQ_ACKNOWLEDGEMENT); if (sequenceAck != null) { AcknowledgementProcessor ackProcessor = new AcknowledgementProcessor(); - ackProcessor.processMessage(terminateSeqRMMSg); + ackProcessor.processMessage(terminateSeqRMMsg); } //Processing the terminate message //TODO Add terminate sequence message logic. - TerminateSequence terminateSequence = (TerminateSequence) terminateSeqRMMSg.getMessagePart(Sandesha2Constants.MessageParts.TERMINATE_SEQ); - if (terminateSequence==null) - throw new SandeshaException ("Terminate Sequence part is not available"); + TerminateSequence terminateSequence = (TerminateSequence) terminateSeqRMMsg.getMessagePart(Sandesha2Constants.MessageParts.TERMINATE_SEQ); + if (terminateSequence==null) { + String message = "Terminate Sequence part is not available"; + log.debug(message); + throw new SandeshaException (message); + } String sequenceId = terminateSequence.getIdentifier().getIdentifier(); - if (sequenceId==null || "".equals(sequenceId)) - throw new SandeshaException ("Invalid sequence id"); + if (sequenceId==null || "".equals(sequenceId)) { + String message = "Invalid sequence id"; + log.debug(message); + throw new SandeshaException (message); + } ConfigurationContext context = terminateSeqMsg.getConfigurationContext(); StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(context); @@ -86,8 +94,6 @@ SequenceManager.updateLastActivatedTime(sequenceId,context); - //terminateSeqMsg.pause(); - terminateSeqRMMSg.getMessageContext().setPausedTrue(new QName (Sandesha2Constants.IN_HANDLER_NAME)); - + terminateSeqRMMsg.pause(); } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/storage/inmemory/InMemorySequencePropertyBeanMgr.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/storage/inmemory/InMemorySequencePropertyBeanMgr.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/storage/inmemory/InMemorySequencePropertyBeanMgr.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/storage/inmemory/InMemorySequencePropertyBeanMgr.java Wed Jan 4 21:59:57 2006 @@ -46,6 +46,13 @@ } public boolean delete(String sequenceId, String name) { + + SequencePropertyBean bean = retrieve( sequenceId,name); + + if (bean.getName().equals(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID)) { + int i=1; + } + return table.remove(sequenceId + ":" + name) != null; } @@ -54,6 +61,9 @@ } public boolean insert(SequencePropertyBean bean) { + + + table.put(bean.getSequenceID() + ":" + bean.getName(), bean); return true; } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java Wed Jan 4 21:59:57 2006 @@ -21,6 +21,8 @@ import java.io.InputStream; import java.util.Properties; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.policy.RMPolicyBean; @@ -34,6 +36,8 @@ public static PropertyManager instance = null; + Log log = LogFactory.getLog(getClass()); + private SandeshaPropertyBean propertyBean = null; private PropertyManager () { @@ -53,7 +57,7 @@ loadPropertiesToBean (properties); } catch (IOException e) { - System.out.println("A valid property file was not found. Using default values..."); + log.info ("A valid property file was not found. Using default values..."); } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java Wed Jan 4 21:59:57 2006 @@ -32,9 +32,9 @@ import org.apache.axis2.soap.SOAPEnvelope; import org.apache.axis2.soap.SOAPFactory; import org.apache.sandesha2.RMMsgContext; -import org.apache.sandesha2.Sandesha2ClientAPI; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; +import org.apache.sandesha2.client.Sandesha2ClientAPI; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr; import org.apache.sandesha2.storage.beans.SequencePropertyBean; Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java Wed Jan 4 21:59:57 2006 @@ -16,7 +16,6 @@ */ package org.apache.sandesha2.util; -import java.io.InputStream; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.HashMap; @@ -25,10 +24,9 @@ import java.util.StringTokenizer; import javax.xml.namespace.QName; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLStreamReader; import org.apache.axis2.AxisFault; +import org.apache.axis2.Constants; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; import org.apache.axis2.context.MessageContextConstants; @@ -39,21 +37,16 @@ import org.apache.axis2.description.AxisService; import org.apache.axis2.description.AxisServiceGroup; import org.apache.axis2.engine.AxisConfiguration; -import org.apache.axis2.i18n.Messages; import org.apache.axis2.om.OMElement; -import org.apache.axis2.om.impl.llom.builder.StAXBuilder; -import org.apache.axis2.om.impl.llom.builder.StAXOMBuilder; import org.apache.axis2.soap.SOAP11Constants; import org.apache.axis2.soap.SOAP12Constants; import org.apache.axis2.soap.SOAPEnvelope; import org.apache.axis2.soap.SOAPFactory; import org.apache.axis2.soap.SOAPHeader; -import org.apache.axis2.soap.impl.llom.builder.StAXSOAPModelBuilder; -import org.apache.axis2.soap.impl.llom.soap11.SOAP11Factory; -import org.apache.axis2.transport.http.HTTPConstants; -import org.apache.axis2.transport.http.HTTPTransportUtils; import org.apache.axis2.util.UUIDGenerator; import org.apache.axis2.util.Utils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; @@ -79,6 +72,8 @@ private static Sender sender = new Sender(); private static InOrderInvoker invoker = new InOrderInvoker(); + + private static Log log = LogFactory.getLog(SandeshaUtil.class); /** * Create a new UUID. @@ -159,7 +154,9 @@ long msgNo = Long.parseLong(temp); msgNubers.add(new Long(msgNo)); } catch (Exception ex) { - throw new SandeshaException("Invalid msg number list"); + String message = "Invalid msg number list"; + log.debug(message); + throw new SandeshaException(message); } } @@ -202,8 +199,11 @@ */ public static String storeMessageContext(MessageContext ctx) throws SandeshaException { - if (ctx == null) - throw new SandeshaException("Stored Msg Ctx is null"); + if (ctx == null) { + String message = "Stored Msg Ctx is null"; + log.debug(message); + throw new SandeshaException(message); + } String key = getUUID(); storedMsgContexts.put(key, ctx); @@ -261,7 +261,7 @@ return false; } - public static SOAPEnvelope createSOAPMessage(MessageContext msgContext, + /*public static SOAPEnvelope createSOAPMessage(MessageContext msgContext, String soapNamespaceURI) throws AxisFault { try { @@ -310,7 +310,7 @@ throw new AxisFault(e); } - } + }*/ public static String getMessageTypeString(int messageType) { switch (messageType) { @@ -409,7 +409,6 @@ return storageManager; } catch (Exception e) { - System.out.println(e.getMessage()); throw new SandeshaException(e.getMessage()); } } @@ -467,6 +466,7 @@ return faultRMMsgCtx; } catch (AxisFault e) { + log.debug(e.getMessage()); throw new SandeshaException(e.getMessage()); } } @@ -506,7 +506,7 @@ newMessageContext.setServiceContextID(referenceMessage .getServiceContextID()); } else { - AxisService axisService = new AxisService (new QName ("AnonymousRMService")); //just a dummy name. + AxisService axisService = new AxisService ("AnonymousRMService"); //just a dummy name. ServiceContext serviceContext = new ServiceContext (axisService,newMessageContext.getServiceGroupContext()); newMessageContext.setAxisService(axisService); @@ -530,26 +530,25 @@ .getTransportOut()); copyNecessaryPropertiesFromRelatedContext (referenceMessage,newMessageContext); + //copying transport info. newMessageContext.setProperty(MessageContext.TRANSPORT_OUT, referenceMessage.getProperty(MessageContext.TRANSPORT_OUT)); - newMessageContext.setProperty(HTTPConstants.HTTPOutTransportInfo, - referenceMessage - .getProperty(HTTPConstants.HTTPOutTransportInfo)); newMessageContext.setProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN, referenceMessage .getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN)); -// newMessageContext.setProperty(Constants.OUT_TRANSPORT_INFO,referenceMessage.getProperty(Constants.OUT_TRANSPORT_INFO)); -// newMessageContext.setProperty(MessageContext.TRANSPORT_HEADERS,referenceMessage.getProperty(MessageContext.TRANSPORT_HEADERS)); -// newMessageContext.setProperty(MessageContext.TRANSPORT_IN,referenceMessage.getProperty(MessageContext.TRANSPORT_IN)); -// newMessageContext.setProperty(MessageContext.TRANSPORT_OUT,referenceMessage.getProperty(MessageContext.TRANSPORT_OUT)); -// newMessageContext.setExecutionChain(referenceMessage.getExecutionChain()); + newMessageContext.setProperty(Constants.OUT_TRANSPORT_INFO,referenceMessage.getProperty(Constants.OUT_TRANSPORT_INFO)); + newMessageContext.setProperty(MessageContext.TRANSPORT_HEADERS,referenceMessage.getProperty(MessageContext.TRANSPORT_HEADERS)); + newMessageContext.setProperty(MessageContext.TRANSPORT_IN,referenceMessage.getProperty(MessageContext.TRANSPORT_IN)); + newMessageContext.setProperty(MessageContext.TRANSPORT_OUT,referenceMessage.getProperty(MessageContext.TRANSPORT_OUT)); + newMessageContext.setExecutionChain(referenceMessage.getExecutionChain()); return newMessageContext; } catch (AxisFault e) { + log.debug(e.getMessage()); throw new SandeshaException(e.getMessage()); } @@ -563,13 +562,19 @@ if (str==null) return new ArrayList (); - if (str.length()<2) - throw new SandeshaException ("Invalid String array"); + if (str.length()<2) { + String message = "Invalid String array"; + log.debug(message); + throw new SandeshaException (message); + } int length = str.length(); - if (str.charAt(0)!='[' || str.charAt(length-1)!=']') - throw new SandeshaException ("Invalid String array"); + if (str.charAt(0)!='[' || str.charAt(length-1)!=']') { + String message = "Invalid String array"; + log.debug(message); + throw new SandeshaException (message); + } ArrayList retArr = new ArrayList (); Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java Wed Jan 4 21:59:57 2006 @@ -11,14 +11,15 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.context.AbstractContext; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; import org.apache.axis2.context.MessageContextConstants; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.RMMsgContext; -import org.apache.sandesha2.Sandesha2ClientAPI; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; +import org.apache.sandesha2.client.Sandesha2ClientAPI; import org.apache.sandesha2.policy.RMPolicyBean; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.Transaction; @@ -36,30 +37,38 @@ public class SequenceManager { + private static Log log = LogFactory.getLog(SequenceManager.class); + public static String setupNewSequence(RMMsgContext createSequenceMsg) throws AxisFault { String sequenceId = SandeshaUtil.getUUID(); - AbstractContext context = createSequenceMsg.getContext(); EndpointReference to = createSequenceMsg.getTo(); - if (to == null) - throw new AxisFault("To is null"); + if (to == null) { + String message = "To is null"; + log.debug(message); + throw new AxisFault(message); + } EndpointReference replyTo = createSequenceMsg.getReplyTo(); -// if (replyTo == null) -// throw new AxisFault("ReplyTo is null"); CreateSequence createSequence = (CreateSequence) createSequenceMsg .getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ); - if (createSequence == null) - throw new AxisFault("Create Sequence Part is null"); + if (createSequence == null) { + String message = "Create Sequence Part is null"; + log.debug(message); + throw new AxisFault(message); + } EndpointReference acksTo = createSequence.getAcksTo().getAddress() .getEpr(); - if (acksTo == null) - throw new AxisFault("AcksTo is null"); + if (acksTo == null) { + String message = "AcksTo is null"; + log.debug(message); + throw new AxisFault(message); + } StorageManager storageManager = null; @@ -101,8 +110,7 @@ NextMsgBeanMgr nextMsgMgr = storageManager.getNextMsgBeanMgr(); nextMsgMgr.insert(new NextMsgBean(sequenceId, 1)); // 1 will be the next - // message to invoke - //this will apply for only in-order invocations. + // message to invoke. This will apply for only in-order invocations. updateLastActivatedTime(sequenceId,createSequenceMsg.getMessageContext().getConfigurationContext()); @@ -117,8 +125,6 @@ MessageContext firstAplicationMsgCtx, String internalSequenceId) throws SandeshaException { - AbstractContext context = firstAplicationMsgCtx.getConfigurationContext(); - StorageManager storageManager = SandeshaUtil .getSandeshaStorageManager(firstAplicationMsgCtx .getConfigurationContext()); @@ -127,12 +133,14 @@ .getSequencePropretyBeanMgr(); EndpointReference toEPR = firstAplicationMsgCtx.getTo(); - EndpointReference replyToEPR = firstAplicationMsgCtx.getReplyTo(); String acksTo = (String) firstAplicationMsgCtx .getProperty(Sandesha2ClientAPI.AcksTo); - if (toEPR == null) - throw new SandeshaException("WS-Addressing To is null"); + if (toEPR == null) { + String message = "WS-Addressing To is null"; + log.debug(message); + throw new SandeshaException(message); + } SequencePropertyBean toBean = new SequencePropertyBean(internalSequenceId, Sandesha2Constants.SequenceProperties.TO_EPR, toEPR.getAddress()); @@ -240,11 +248,17 @@ findSeqIDBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID); Collection seqIDBeans = seqPropBeanMgr.find(findSeqIDBean); - if (seqIDBeans.size()==0) - throw new SandeshaException ("A sequence with give data has not been created"); + if (seqIDBeans.size()==0) { + String message = "A sequence with give data has not been created"; + log.debug(message); + throw new SandeshaException (message); + } - if (seqIDBeans.size()>1) - throw new SandeshaException ("Sequence data is not unique. Cant generate report"); + if (seqIDBeans.size()>1) { + String message = "Sequence data is not unique. Cant generate report"; + log.debug(message); + throw new SandeshaException (message); + } SequencePropertyBean seqIDBean = (SequencePropertyBean) seqIDBeans.iterator().next(); String sequenceID = seqIDBean.getSequenceID(); @@ -269,11 +283,17 @@ findSeqIDBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID); Collection seqIDBeans = seqPropBeanMgr.find(findSeqIDBean); - if (seqIDBeans.size()==0) - throw new SandeshaException ("A sequence with give data has not been created"); + if (seqIDBeans.size()==0) { + String message = "A sequence with give data has not been created"; + log.debug(message); + throw new SandeshaException (message); + } - if (seqIDBeans.size()>1) - throw new SandeshaException ("Sequence data is not unique. Cant generate report"); + if (seqIDBeans.size()>1) { + String message = "Sequence data is not unique. Cant generate report"; + log.debug(message); + throw new SandeshaException (message); + } SequencePropertyBean seqIDBean = (SequencePropertyBean) seqIDBeans.iterator().next(); String sequenceID = seqIDBean.getSequenceID(); @@ -306,7 +326,6 @@ String temp = tokenizer.nextToken(); count++; } - transaction.commit(); return count; Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java Wed Jan 4 21:59:57 2006 @@ -24,11 +24,13 @@ import org.apache.axis2.context.MessageContext; import org.apache.axis2.context.ServiceContext; import org.apache.axis2.engine.AxisEngine; -import org.apache.sandesha2.Sandesha2ClientAPI; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.RMMsgContext; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.TerminateManager; +import org.apache.sandesha2.client.Sandesha2ClientAPI; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr; import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr; @@ -52,6 +54,8 @@ boolean invokerStarted = false; ConfigurationContext context = null; + + Log log = LogFactory.getLog(getClass()); public synchronized void stopInvoker() { invokerStarted = false; @@ -78,9 +82,8 @@ try { Thread.sleep(1000); } catch (InterruptedException ex) { - System.out.println("Invoker was Inturrepted...."); - ex.printStackTrace(); - System.out.println("End printing Interrupt..."); + log.debug("Invoker was Inturrepted...."); + log.debug(ex.getMessage()); } try { @@ -142,27 +145,14 @@ try { //Invoking the message. - new AxisEngine(msgToInvoke.getConfigurationContext()) - .receive(msgToInvoke); -// new AxisEngine (msgToInvoke.getConfigurationContext()) -// .resumeReceive(msgToInvoke); +// new AxisEngine(msgToInvoke.getConfigurationContext()) +// .receive(msgToInvoke); + new AxisEngine (msgToInvoke.getConfigurationContext()) + .resume(msgToInvoke); + + log.info("Invoker invoking a '" + SandeshaUtil.getMessageTypeString(rmMsg + .getMessageType()) + "' message."); - ServiceContext serviceContext = msgToInvoke - .getServiceContext(); - Object debug = null; - if (serviceContext != null) { - debug = msgToInvoke - .getProperty(Sandesha2ClientAPI.SANDESHA_DEBUG_MODE); - if (debug != null && "on".equals(debug)) { - System.out - .println("DEBUG: Invoker invoking a '" - + SandeshaUtil - .getMessageTypeString(rmMsg - .getMessageType()) - + "' message."); - } - } - //deleting the message entry. storageMapMgr.delete(key); Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java?rev=366091&r1=366090&r2=366091&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Wed Jan 4 21:59:57 2006 @@ -22,12 +22,16 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.context.ServiceContext; +import org.apache.axis2.context.OperationContext; +import org.apache.axis2.description.AxisOperation; +import org.apache.axis2.description.AxisOperationFactory; import org.apache.axis2.engine.AxisEngine; import org.apache.axis2.soap.SOAPEnvelope; +import org.apache.axis2.transport.TransportUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.sandesha2.AcknowledgementManager; import org.apache.sandesha2.RMMsgContext; -import org.apache.sandesha2.Sandesha2ClientAPI; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.TerminateManager; @@ -55,6 +59,8 @@ private boolean senderStarted = false; private ConfigurationContext context = null; + + Log log = LogFactory.getLog(getClass()); public synchronized void stopSender() { senderStarted = false; @@ -72,16 +78,18 @@ storageManager = SandeshaUtil.getSandeshaStorageManager(context); } catch (SandeshaException e2) { // TODO Auto-generated catch block - System.out.println("ERROR: Could not start sender"); + log.debug ("ERROR: Could not start sender"); e2.printStackTrace(); return; } while (senderStarted) { try { - if (context == null) - throw new SandeshaException( - "Can't continue the Sender. Context is null"); + if (context == null) { + String message = "Can't continue the Sender. Context is null"; + log.debug(message); + throw new SandeshaException(message); + } Transaction pickMessagesToSendTransaction = storageManager.getTransaction(); //starting // a @@ -105,8 +113,7 @@ try { if (msgCtx == null) { - System.out - .println("ERROR: Sender has an Unavailable Message entry"); + log.debug ("ERROR: Sender has an Unavailable Message entry"); break; } RMMsgContext rmMsgCtx = MsgInitializer @@ -114,21 +121,9 @@ updateMessage(msgCtx); - ServiceContext serviceContext = msgCtx - .getServiceContext(); - Object debug = null; - if (serviceContext != null) { - debug = msgCtx - .getProperty(Sandesha2ClientAPI.SANDESHA_DEBUG_MODE); - if (debug != null && "on".equals(debug)) { - System.out - .println("DEBUG: Sender is sending a '" - + SandeshaUtil - .getMessageTypeString(rmMsgCtx - .getMessageType()) - + "' message."); - } - } + + log.info("Sender is sending a '" + SandeshaUtil + .getMessageTypeString(rmMsgCtx.getMessageType()) + "' message."); Transaction preSendTransaction = storageManager.getTransaction(); @@ -145,34 +140,36 @@ //do time out processing. TerminateManager.terminateSendingSide(context,sequenceID); - throw new SandeshaException ("Sequence timed out"); + String message = "Sequence timed out"; + log.debug(message); + throw new SandeshaException (message); } //piggybacking if an ack if available for the same // sequence. AcknowledgementManager .piggybackAckIfPresent(rmMsgCtx); - } preSendTransaction.commit(); try { + //every message should be resumed (pause==false) when sending + boolean paused = msgCtx.isPaused(); AxisEngine engine = new AxisEngine(msgCtx .getConfigurationContext()); - engine.send(msgCtx); - // if (msgCtx.isPaused()) - // engine.resumeSend(msgCtx); - // else - // engine.send(msgCtx); - + if (paused) { + engine.resume(msgCtx); + }else { + engine.send(msgCtx); + } + } catch (Exception e) { //Exception is sending. retry later - System.out - .println("Exception thrown in sending..."); - e.printStackTrace(); - //e.printStackTrace(); + String message = "Exception thrown in sending..."; + log.debug(message); + log.debug(e.getMessage()); } @@ -241,9 +238,9 @@ Thread.sleep(Sandesha2Constants.SENDER_SLEEP_TIME); } catch (InterruptedException e1) { //e1.printStackTrace(); - System.out.println("Sender was interupted..."); - e1.printStackTrace(); - System.out.println("End printing Interrupt..."); + log.debug("Sender was interupted..."); + log.debug(e1.getMessage()); + log.debug("End printing Interrupt..."); } } @@ -279,7 +276,9 @@ rmMsgCtx1.addSOAPEnvelope(); } catch (AxisFault e) { - throw new SandeshaException("Exception in updating contexts"); + String message = "Exception in updating contexts"; + log.debug(message); + throw new SandeshaException(message); } } @@ -287,8 +286,55 @@ private void checkForSyncResponses(MessageContext msgCtx) { try { + boolean responsePresent = (msgCtx .getProperty(MessageContext.TRANSPORT_IN) != null); + if (!responsePresent) + return; + + //we never expect sync responses. so we can freely create a new operation context for the incoming RM Specific message. + // create the responseMessageContext + MessageContext responseMessageContext = new MessageContext(msgCtx.getConfigurationContext(), + msgCtx.getSessionContext(), msgCtx.getTransportIn(), + msgCtx.getTransportOut()); + + responseMessageContext.setProperty(MessageContext.TRANSPORT_IN, + msgCtx.getProperty(MessageContext.TRANSPORT_IN)); + // msgCtx.getAxisOperation().registerOperationContext(responseMessageContext, msgCtx.getOperationContext()); + responseMessageContext.setServerSide(false); + responseMessageContext.setServiceContext(msgCtx.getServiceContext()); + responseMessageContext.setServiceGroupContext(msgCtx.getServiceGroupContext()); + + //we never expect sync responses. so we can freely create a new operation context for the incoming RM Specific message. + AxisOperation inOnlyOperation = AxisOperationFactory.getAxisOperation(AxisOperationFactory.MEP_CONSTANT_IN_ONLY); + inOnlyOperation.setRemainingPhasesInFlow(msgCtx.getAxisOperation().getRemainingPhasesInFlow()); + + OperationContext inOnlyOperationContext = new OperationContext (inOnlyOperation); + responseMessageContext.setAxisOperation(inOnlyOperation); + responseMessageContext.setOperationContext(inOnlyOperationContext); + + // If request is REST we assume the responseMessageContext is REST, so set the variable + responseMessageContext.setDoingREST(msgCtx.isDoingREST()); + + SOAPEnvelope resenvelope = TransportUtils.createSOAPMessage(responseMessageContext, + msgCtx.getEnvelope().getNamespace().getName()); + + if (resenvelope != null) { + responseMessageContext.setEnvelope(resenvelope); + AxisEngine engine = new AxisEngine(msgCtx.getConfigurationContext()); + engine.receive(responseMessageContext); + } else { + String message = "Exception is Receiving message..."; + log.debug(message); + throw new AxisFault(message); + } + + + + + + /*boolean responsePresent = (msgCtx + .getProperty(MessageContext.TRANSPORT_IN) != null); if (responsePresent) { //create the response @@ -311,34 +357,36 @@ response.setAxisService(msgCtx.getAxisService()); response.setAxisServiceGroup(msgCtx.getAxisServiceGroup()); + //setting the in-flow. //ArrayList inPhaseHandlers = // response.getAxisOperation().getRemainingPhasesInFlow(); - /* - * if (inPhaseHandlers==null || inPhaseHandlers.isEmpty()) { - * ArrayList phases = - * msgCtx.getSystemContext().getAxisConfiguration().getInPhasesUptoAndIncludingPostDispatch(); - * response.getAxisOperation().setRemainingPhasesInFlow(phases); } - */ + // + // if (inPhaseHandlers==null || inPhaseHandlers.isEmpty()) { + // ArrayList phases = + // msgCtx.getSystemContext().getAxisConfiguration().getInPhasesUptoAndIncludingPostDispatch(); + // response.getAxisOperation().setRemainingPhasesInFlow(phases); } + // //Changed following from TransportUtils to SandeshaUtil since // op. // context is anavailable. SOAPEnvelope resenvelope = null; - resenvelope = SandeshaUtil.createSOAPMessage(response, msgCtx - .getEnvelope().getNamespace().getName()); +// resenvelope = SandeshaUtil.createSOAPMessage(response, msgCtx +// .getEnvelope().getNamespace().getName()); + resenvelope = TransportUtils.createSOAPMessage(response,msgCtx + .getEnvelope().getNamespace().getName()); if (resenvelope != null) { AxisEngine engine = new AxisEngine(msgCtx .getConfigurationContext()); response.setEnvelope(resenvelope); engine.receive(response); } - } + } */ } catch (Exception e) { - System.out - .println("Exception was throws in processing the sync response..."); + log.info("No valid Sync response..."); } } --------------------------------------------------------------------- To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org For additional commands, e-mail: sandesha-dev-help@ws.apache.org