You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ga...@apache.org on 2006/12/22 09:49:12 UTC

svn commit: r489582 - in /webservices/sandesha/trunk/java: src/org/apache/sandesha2/ src/org/apache/sandesha2/client/ src/org/apache/sandesha2/storage/beans/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/ test/src/org/apache/sandesha2/

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org