Author: gatfora
Date: Fri Dec 22 00:49:11 2006
New Revision: 489582

URL: http://svn.apache.org/viewvc?view=rev&rev=489582
Log:
Move the last error properties to the RMSBean

Modified:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
    
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=489582&r1=489581&r2=489582
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 Fri Dec 22 00:49:11 2006
@@ -319,10 +319,6 @@
                String SOAP_VERSION = "SOAPVersion";
                
                String OFFERED_ENDPOINT = "OfferedEndpoint";
-               
-               static final String LAST_FAILED_TO_SEND_ERROR = 
"LastFailToSendError";
-               
-               static final String LAST_FAILED_TO_SEND_ERROR_TIMESTAMP = 
"LastFailToSendErrorTimeStamp";
 
        }
 

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=489582&r1=489581&r2=489582
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
 Fri Dec 22 00:49:11 2006
@@ -1252,7 +1252,7 @@
         * @return
         * @throws SandeshaException
         */
-       public static String getLastSendError(ServiceClient serviceClient) 
+       public static Exception getLastSendError(ServiceClient serviceClient) 
        
        throws SandeshaException
        {
@@ -1274,20 +1274,18 @@
 
                // Get the in use storage manager and the sequence property 
bean manager
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configurationContext,configurationContext.getAxisConfiguration());
-               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropertyBeanMgr();
                
                Transaction transaction = null;
-               String resultString = null;
+               Exception resultException = null;
     
                try 
                {
                        transaction = storageManager.getTransaction();
-                       // Lookup the last failed to send error
-                       SequencePropertyBean errorBean = 
seqPropMgr.retrieve(internalSequenceId, 
Sandesha2Constants.SequenceProperties.LAST_FAILED_TO_SEND_ERROR);
+                       RMSBean bean = 
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, 
internalSequenceId);
                        
-                       // Get the value from the 
-                       if (errorBean != null)
-                               resultString = errorBean.getValue();
+                       if (bean != null) {                                     
        
+                               resultException = bean.getLastSendError();
+                       }
                }
                finally
                {
@@ -1296,9 +1294,9 @@
                }
                
                if (log.isDebugEnabled())
-                       log.debug("Exit: SandeshaClient::getLastSendError, " + 
resultString);
+                       log.debug("Exit: SandeshaClient::getLastSendError, " + 
resultException);
                
-               return resultString;
+               return resultException;
        }
        
        /**
@@ -1332,7 +1330,6 @@
 
                // Get the in use storage manager and the sequence property 
bean manager
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configurationContext,configurationContext.getAxisConfiguration());
-               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropertyBeanMgr();
                
                // Create a transaction for the retrieve operation
                Transaction transaction = null;
@@ -1342,13 +1339,11 @@
                {
                        transaction = storageManager.getTransaction();
                        
-                       // Lookup the last failed to send error
-                       SequencePropertyBean errorTSBean = 
-                               seqPropMgr.retrieve(internalSequenceId, 
Sandesha2Constants.SequenceProperties.LAST_FAILED_TO_SEND_ERROR_TIMESTAMP);
-                               
-                       // Get the value from the 
-                       if (errorTSBean != null)
-                               resultTime = 
Long.valueOf(errorTSBean.getValue()).longValue();
+                       RMSBean bean = 
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, 
internalSequenceId);
+                       
+                       if (bean != null) {                                     
        
+                               resultTime = bean.getLastSendErrorTimestamp();
+                       }
                }
                finally
                {

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java?view=diff&rev=489582&r1=489581&r2=489582
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
 Fri Dec 22 00:49:11 2006
@@ -75,6 +75,16 @@
         */
        private String referenceMessageStoreKey;
        
+       /** 
+        * This is the last error that was encountered when sending a message
+        */
+       private Exception lastSendError = null;
+       
+       /**
+        * This is the timestamp of when the last error occured when sending
+        */
+       private long lastSendErrorTimestamp = -1;
+       
        public RMSBean() {
        }
 
@@ -135,6 +145,24 @@
        public void setPollingMode(boolean pollingMode) {
                this.pollingMode = pollingMode;
        }
+
+       public Exception getLastSendError() {
+       return lastSendError;
+  }
+
+       public void setLastSendError(Exception lastSendError) {
+       this.lastSendError = lastSendError;
+  }
+
+
+       public long getLastSendErrorTimestamp() {
+       return lastSendErrorTimestamp;
+  }
+
+
+       public void setLastSendErrorTimestamp(long lastSendErrorTimestamp) {
+       this.lastSendErrorTimestamp = lastSendErrorTimestamp;
+  }
 
        public String toString() {
                StringBuffer result = new StringBuffer();

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java?view=diff&rev=489582&r1=489581&r2=489582
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java 
Fri Dec 22 00:49:11 2006
@@ -18,9 +18,7 @@
 package org.apache.sandesha2.util;
 
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.OutputStream;
-import java.io.PrintWriter;
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -73,6 +71,7 @@
 import org.apache.sandesha2.polling.PollingManager;
 import org.apache.sandesha2.security.SecurityManager;
 import org.apache.sandesha2.storage.StorageManager;
+import org.apache.sandesha2.storage.beanmanagers.RMSBeanMgr;
 import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
 import org.apache.sandesha2.storage.beans.RMSBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
@@ -749,13 +748,22 @@
                return Sandesha2Constants.INTERNAL_SEQUENCE_PREFIX + ":" + 
sequenceID;
        }
 
+       public static final RMSBean 
getRMSBeanFromInternalSequenceId(StorageManager storageManager, String 
internalSequenceID) 
+       
+       throws SandeshaException {
+               RMSBeanMgr rmsBeanMgr = storageManager.getRMSBeanMgr();
+               RMSBean bean = new RMSBean();
+               bean.setInternalSequenceID(internalSequenceID);
+               
+               bean = rmsBeanMgr.findUnique(bean);
+
+               return bean;
+       }
+       
        public static String getSequenceIDFromInternalSequenceID(String 
internalSequenceID,
                        StorageManager storageManager) throws SandeshaException 
{
 
-               RMSBean createSeqFindBean = new RMSBean();
-               createSeqFindBean.setInternalSequenceID(internalSequenceID);
-
-               RMSBean rMSBean = 
storageManager.getRMSBeanMgr().findUnique(createSeqFindBean);
+               RMSBean rMSBean = 
getRMSBeanFromInternalSequenceId(storageManager, internalSequenceID);
 
                String sequeunceID = null;
                if (rMSBean != null && 
@@ -1183,22 +1191,6 @@
                return newMsg;
                
        }
-
-       /**
-        * Returns an Exception as a String
-        * 
-        * @param exc
-        * @return
-        */
-  public static String getStackTrace(Throwable exc)
-  {
-    ByteArrayOutputStream baos = new ByteArrayOutputStream();
-    PrintWriter pw = new PrintWriter(baos);
-    exc.printStackTrace(pw);
-    pw.flush();
-    String stackTrace = baos.toString();
-    return stackTrace;
-  }
   
        public static PollingManager getPollingManager (ConfigurationContext 
configurationContext) {
                PollingManager pollingManager = (PollingManager) 
configurationContext.getProperty(

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=489582&r1=489581&r2=489582
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
 Fri Dec 22 00:49:11 2006
@@ -1,7 +1,6 @@
 package org.apache.sandesha2.workers;
 
 import java.util.ArrayList;
-import java.util.MissingResourceException;
 
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFault;
@@ -10,13 +9,13 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.context.OperationContextFactory;
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.engine.Handler.InvocationResponse;
 import org.apache.axis2.transport.RequestResponseTransport;
 import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -24,13 +23,11 @@
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.i18n.SandeshaMessageHelper;
 import org.apache.sandesha2.i18n.SandeshaMessageKeys;
-import org.apache.sandesha2.storage.SandeshaStorageException;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.storage.Transaction;
 import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
-import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.storage.beans.RMSBean;
 import org.apache.sandesha2.storage.beans.SenderBean;
-import org.apache.sandesha2.storage.beans.SequencePropertyBean;
 import org.apache.sandesha2.util.AcknowledgementManager;
 import org.apache.sandesha2.util.MessageRetransmissionAdjuster;
 import org.apache.sandesha2.util.MsgInitializer;
@@ -124,7 +121,7 @@
                                RequestResponseTransport t = null;
                                MessageContext inMsg = null;
                                OperationContext op = 
msgCtx.getOperationContext();
-                               if(op != null) inMsg = 
op.getMessageContext(OperationContextFactory.MESSAGE_LABEL_IN_VALUE);
+                               if(op != null) inMsg = 
op.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
                                if(inMsg != null) t = 
(RequestResponseTransport) 
inMsg.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
                                if(t == null) {
                                        if(log.isDebugEnabled()) 
log.debug("Exit: SenderWorker::run, no response transport for anonymous 
message");
@@ -132,8 +129,6 @@
                                }
                        }
 
-                       updateMessage(msgCtx);
-
                        int messageType = senderBean.getMessageType();
                        
 //                     if (messageType == 
Sandesha2Constants.MessageTypes.APPLICATION) {
@@ -201,7 +196,7 @@
                                        RequestResponseTransport t = null;
                                        MessageContext inMsg = null;
                                        OperationContext op = 
msgCtx.getOperationContext();
-                                       if(op != null) inMsg = 
op.getMessageContext(OperationContextFactory.MESSAGE_LABEL_IN_VALUE);
+                                       if(op != null) inMsg = 
op.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
                                        if(inMsg != null) t = 
(RequestResponseTransport) 
inMsg.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
                                        if(t != null) {
                                                if(log.isDebugEnabled()) 
log.debug("Signalling transport in " + t);
@@ -228,27 +223,15 @@
                                        // Get the internal sequence id from 
the context
                                        String internalSequenceId = 
(String)rmMsgCtx.getProperty(Sandesha2Constants.MessageContextProperties.INTERNAL_SEQUENCE_ID);
                                        
-                                       // Get the sequence property bean 
manager
-                                       SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropertyBeanMgr();
-                                       
-                                       // Add the new sequence property beans.
-                                       String exceptionStr = 
SandeshaUtil.getStackTrace(e);
-                                       SequencePropertyBean eBean = 
-                                               new 
SequencePropertyBean(internalSequenceId, 
-                                                                               
                                                           
Sandesha2Constants.SequenceProperties.LAST_FAILED_TO_SEND_ERROR, 
-                                                                               
                                                           exceptionStr);
-                                       
-                                       SequencePropertyBean etsBean = 
-                                               new 
SequencePropertyBean(internalSequenceId, 
-                                                                               
                                                           
Sandesha2Constants.SequenceProperties.LAST_FAILED_TO_SEND_ERROR_TIMESTAMP, 
-                                                                               
                                                           
String.valueOf(System.currentTimeMillis()));
-                                       
+                                       RMSBean bean = 
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, 
internalSequenceId);
                                        
-                                       // Insert the exception bean
-                                       seqPropMgr.insert(eBean);
+                                       if (bean != null) {                     
                        
+                                               bean.setLastSendError(e);
+                                               
bean.setLastSendErrorTimestamp(System.currentTimeMillis());
+                                       }
                                        
-                                       // Insert the timestamp bean
-                                       seqPropMgr.insert(etsBean);
+                                       // Update the RMSBean
+                                       
storageManager.getRMSBeanMgr().update(bean);
                                        
                                        // Commit the properties
                                        if(transaction != null) {
@@ -337,10 +320,6 @@
                
                if (log.isDebugEnabled())
                        log.debug("Exit: SenderWorker::run");
-       }
-       
-       private void updateMessage(MessageContext msgCtx1) throws 
SandeshaException {
-               // do updates if required.
        }
        
        private boolean isAckPiggybackableMsgType(int messageType) {

Modified: 
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java?view=diff&rev=489582&r1=489581&r2=489582
==============================================================================
--- 
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java
 (original)
+++ 
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java
 Fri Dec 22 00:49:11 2006
@@ -598,7 +598,7 @@
                        
                        try {
                                // Check that the last error and last error 
time stamp have been set
-                               String lastSendError = 
SandeshaClient.getLastSendError(serviceClient);
+                               Exception lastSendError = 
SandeshaClient.getLastSendError(serviceClient);
                                long lastSendErrorTime = 
SandeshaClient.getLastSendErrorTimestamp(serviceClient);
                                
                                // Check the values are valid



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to