You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ch...@apache.org on 2006/05/14 20:34:50 UTC

svn commit: r406396 [2/2] - in /webservices/sandesha/trunk/src/org/apache/sandesha2: ./ client/ handlers/ msgprocessors/ policy/ policy/processors/ transport/ util/ workers/

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=406396&r1=406395&r2=406396&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java Sun May 14 11:34:48 2006
@@ -203,7 +203,7 @@
 	 */
 	public static RMMsgContext createCreateSeqMsg(
 			RMMsgContext applicationRMMsg, String internalSequenceId,
-			String acksTo) throws SandeshaException {
+			String acksTo,StorageManager storageManager) throws SandeshaException {
 
 		MessageContext applicationMsgContext = applicationRMMsg
 				.getMessageContext();
@@ -217,8 +217,6 @@
 		SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SandeshaUtil
 				.getSOAPVersion(applicationMsgContext.getEnvelope()));
 
-		StorageManager storageManager = SandeshaUtil
-				.getSandeshaStorageManager(context);
 		SequencePropertyBeanMgr seqPropMgr = storageManager
 				.getSequencePropretyBeanMgr();
 		MessageContext createSeqmsgContext;
@@ -268,13 +266,13 @@
 
 		RMMsgContext createSeqRMMsg = new RMMsgContext(createSeqmsgContext);
 
-		String rmVersion = SandeshaUtil.getRMVersion(internalSequenceId,context);
+		String rmVersion = SandeshaUtil.getRMVersion(internalSequenceId,storageManager);
 		if (rmVersion==null)
 			throw new SandeshaException ("Cant find the rmVersion of the given message");
 		
 		String rmNamespaceValue = SpecSpecificConstants.getRMNamespaceValue(rmVersion);
 		
-		String addressingNamespaceValue = SandeshaUtil.getSequenceProperty(internalSequenceId,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,context);
+		String addressingNamespaceValue = SandeshaUtil.getSequenceProperty(internalSequenceId,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,storageManager);
 		
 		CreateSequence createSequencePart = new CreateSequence(factory,rmNamespaceValue,addressingNamespaceValue);
 
@@ -336,8 +334,8 @@
 		}
 		
 
-		createSeqRMMsg.setAction(SpecSpecificConstants.getCreateSequenceAction(SandeshaUtil.getRMVersion(internalSequenceId,context)));
-		createSeqRMMsg.setSOAPAction(SpecSpecificConstants.getCreateSequenceSOAPAction(SandeshaUtil.getRMVersion(internalSequenceId,context)));
+		createSeqRMMsg.setAction(SpecSpecificConstants.getCreateSequenceAction(SandeshaUtil.getRMVersion(internalSequenceId,storageManager)));
+		createSeqRMMsg.setSOAPAction(SpecSpecificConstants.getCreateSequenceSOAPAction(SandeshaUtil.getRMVersion(internalSequenceId,storageManager)));
 
 		finalizeCreation(applicationMsgContext, createSeqmsgContext);
 		
@@ -353,7 +351,7 @@
 	 * @throws SandeshaException
 	 */
 	public static RMMsgContext createTerminateSequenceMessage(
-			RMMsgContext referenceRMMessage, String sequenceId, String internalSequenceID)
+			RMMsgContext referenceRMMessage, String sequenceId, String internalSequenceID,StorageManager storageManager)
 			throws SandeshaException {
 		MessageContext referenceMessage = referenceRMMessage
 				.getMessageContext();
@@ -397,7 +395,7 @@
 					.getRemainingPhasesInFlow());
 		}
 		
-		String rmVersion = SandeshaUtil.getRMVersion(internalSequenceID,configCtx);
+		String rmVersion = SandeshaUtil.getRMVersion(internalSequenceID,storageManager);
 		if (rmVersion==null)
 			throw new SandeshaException ("Cant find the rmVersion of the given message");
 		
@@ -462,7 +460,7 @@
 	 */
 	public static RMMsgContext createCreateSeqResponseMsg(
 			RMMsgContext createSeqMessage, MessageContext outMessage,
-			String newSequenceID) throws AxisFault {
+			String newSequenceID,StorageManager storageManager) throws AxisFault {
 
 		SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SandeshaUtil
 				.getSOAPVersion(createSeqMessage.getSOAPEnvelope()));
@@ -473,12 +471,12 @@
 				.getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ);
 		CreateSequence cs = (CreateSequence) messagePart;
 
-		String rmVersion = SandeshaUtil.getRMVersion(newSequenceID,configurationContext);
+		String rmVersion = SandeshaUtil.getRMVersion(newSequenceID,storageManager);
 		if (rmVersion==null)
 			throw new SandeshaException ("Cant find the rmVersion of the given message");
 		
 		String rmNamespaceValue = SpecSpecificConstants.getRMNamespaceValue(rmVersion);		
-		String addressingNamespaceValue = SandeshaUtil.getSequenceProperty(newSequenceID,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,configurationContext);
+		String addressingNamespaceValue = SandeshaUtil.getSequenceProperty(newSequenceID,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,storageManager);
 		
 		CreateSequenceResponse response = new CreateSequenceResponse(factory,rmNamespaceValue,addressingNamespaceValue);
 
@@ -507,8 +505,8 @@
 
 		SOAPEnvelope envelope = factory.getDefaultEnvelope();
 		response.toOMElement(envelope.getBody());
-		outMessage.setWSAAction(SpecSpecificConstants.getCreateSequenceResponseAction(SandeshaUtil.getRMVersion(newSequenceID,configurationContext)));
-		outMessage.setSoapAction(SpecSpecificConstants.getCreateSequenceResponseSOAPAction(SandeshaUtil.getRMVersion(newSequenceID,configurationContext)));
+		outMessage.setWSAAction(SpecSpecificConstants.getCreateSequenceResponseAction(SandeshaUtil.getRMVersion(newSequenceID,storageManager)));
+		outMessage.setSoapAction(SpecSpecificConstants.getCreateSequenceResponseSOAPAction(SandeshaUtil.getRMVersion(newSequenceID,storageManager)));
 		outMessage.setProperty(AddressingConstants.WS_ADDRESSING_VERSION,addressingNamespaceValue);
 		
 		String newMessageId = SandeshaUtil.getUUID();
@@ -534,7 +532,7 @@
 	}
 	
 	
-	public static RMMsgContext createTerminateSeqResponseMsg (RMMsgContext terminateSeqRMMsg, MessageContext outMessage) throws SandeshaException {
+	public static RMMsgContext createTerminateSeqResponseMsg (RMMsgContext terminateSeqRMMsg, MessageContext outMessage,StorageManager storageManager) throws SandeshaException {
 		
 		RMMsgContext terminateSeqResponseRMMsg = new RMMsgContext (outMessage);
 		ConfigurationContext configurationContext = terminateSeqRMMsg.getMessageContext().getConfigurationContext();
@@ -557,8 +555,8 @@
 		terminateSeqResponseRMMsg.setSOAPEnvelop(envelope);
 		terminateSeqResponseRMMsg.setMessagePart(Sandesha2Constants.MessageParts.TERMINATE_SEQ_RESPONSE,terminateSequenceResponse);
 		
-		outMessage.setWSAAction(SpecSpecificConstants.getTerminateSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,configurationContext)));
-		outMessage.setSoapAction(SpecSpecificConstants.getTerminateSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,configurationContext)));
+		outMessage.setWSAAction(SpecSpecificConstants.getTerminateSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,storageManager)));
+		outMessage.setSoapAction(SpecSpecificConstants.getTerminateSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,storageManager)));
 
 		initializeCreation(terminateSeqRMMsg.getMessageContext(),outMessage);
 		
@@ -572,7 +570,7 @@
 	}
 	
 	
-	public static RMMsgContext createCloseSeqResponseMsg (RMMsgContext closeSeqRMMsg, MessageContext outMessage) throws SandeshaException {
+	public static RMMsgContext createCloseSeqResponseMsg (RMMsgContext closeSeqRMMsg, MessageContext outMessage,StorageManager storageManager) throws SandeshaException {
 		
 		RMMsgContext closeSeqResponseRMMsg = new RMMsgContext (outMessage);
 		ConfigurationContext configurationContext = closeSeqRMMsg.getMessageContext().getConfigurationContext();
@@ -595,8 +593,8 @@
 		closeSeqResponseRMMsg.setSOAPEnvelop(envelope);
 		closeSeqResponseRMMsg.setMessagePart(Sandesha2Constants.MessageParts.CLOSE_SEQUENCE_RESPONSE,closeSequenceResponse);
 		
-		outMessage.setWSAAction(SpecSpecificConstants.getCloseSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,configurationContext)));
-		outMessage.setSoapAction(SpecSpecificConstants.getCloseSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,configurationContext)));
+		outMessage.setWSAAction(SpecSpecificConstants.getCloseSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,storageManager)));
+		outMessage.setSoapAction(SpecSpecificConstants.getCloseSequenceResponseAction(SandeshaUtil.getRMVersion(sequenceID,storageManager)));
 
 		initializeCreation(closeSeqRMMsg.getMessageContext(),outMessage);
 		
@@ -617,7 +615,7 @@
 	 * @throws SandeshaException
 	 */
 	public static void addAckMessage(RMMsgContext applicationMsg,
-			String sequenceId) throws SandeshaException {
+			String sequenceId,StorageManager storageManager) throws SandeshaException {
 
 		SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SandeshaUtil
 				.getSOAPVersion(applicationMsg.getSOAPEnvelope()));
@@ -632,7 +630,7 @@
 		ConfigurationContext ctx = applicationMsg.getMessageContext()
 		.getConfigurationContext();
 		
-		String rmVersion = SandeshaUtil.getRMVersion(sequenceId,ctx);
+		String rmVersion = SandeshaUtil.getRMVersion(sequenceId,storageManager);
 		if (rmVersion==null)
 			throw new SandeshaException ("Cant find the rmVersion of the given message");
 		
@@ -644,9 +642,6 @@
 		id.setIndentifer(sequenceId);
 		sequenceAck.setIdentifier(id);
 
-
-		StorageManager storageManager = SandeshaUtil
-				.getSandeshaStorageManager(ctx);
 		SequencePropertyBeanMgr seqPropMgr = storageManager
 				.getSequencePropretyBeanMgr();
 
@@ -678,9 +673,9 @@
 		
 		sequenceAck.toOMElement(envelope.getHeader());
 		applicationMsg
-				.setAction(SpecSpecificConstants.getSequenceAcknowledgementAction(SandeshaUtil.getRMVersion(sequenceId,ctx)));
+				.setAction(SpecSpecificConstants.getSequenceAcknowledgementAction(SandeshaUtil.getRMVersion(sequenceId,storageManager)));
 		applicationMsg
-				.setSOAPAction(SpecSpecificConstants.getSequenceAcknowledgementSOAPAction(SandeshaUtil.getRMVersion(sequenceId,ctx)));
+				.setSOAPAction(SpecSpecificConstants.getSequenceAcknowledgementSOAPAction(SandeshaUtil.getRMVersion(sequenceId,storageManager)));
 		applicationMsg.setMessageId(SandeshaUtil.getUUID());
 	}
 
@@ -691,7 +686,7 @@
 	 * @return
 	 * @throws SandeshaException
 	 */
-	public static RMMsgContext createAckMessage(RMMsgContext relatedRMMessage, String sequenceID, String rmNamespaceValue)
+	public static RMMsgContext createAckMessage(RMMsgContext relatedRMMessage, String sequenceID, String rmNamespaceValue,StorageManager storageManager)
 			throws SandeshaException {
 		
 		try {
@@ -710,7 +705,7 @@
 
 			initializeCreation(applicationMsgCtx, ackMsgCtx);
 
-			addAckMessage(ackRMMsgCtx, sequenceID);
+			addAckMessage(ackRMMsgCtx, sequenceID,storageManager);
 
 			ackMsgCtx.setProperty(MessageContext.TRANSPORT_IN,null);
 			

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java?rev=406396&r1=406395&r2=406396&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java Sun May 14 11:34:48 2006
@@ -30,10 +30,12 @@
 public class SandeshaPropertyBean {
 
 	RMPolicyBean policyBean = new RMPolicyBean ();
-	String storageManagerClass = null;
+//	String storageManagerClass = null;
 	boolean inOrder = true;
 	ArrayList msgTypesToDrop = null;
-    
+	private String inMemoryStorageManagerClass = null;
+	private String permanentStorageManagerClass = null;
+	
     public long getInactiveTimeoutInterval() {
         return policyBean.getInactiveTimeoutInterval();
     }
@@ -86,12 +88,28 @@
         policyBean.setAcknowledgementInterval(acknowledgementInterval);
     }
 	
-	public String getStorageManagerClass() {
-		return storageManagerClass;
+//	public String getStorageManagerClass() {
+//		return storageManagerClass;
+//	}
+//	
+//	public void setStorageManagerClass(String storageManagerClass) {
+//		this.storageManagerClass = storageManagerClass;
+//	}
+	
+	public String getInMemoryStorageManagerClass() {
+		return inMemoryStorageManagerClass;
+	}
+	
+	public void setInMemoryStorageManagerClass(String inMemoryStorageManagerClass) {
+		this.inMemoryStorageManagerClass = inMemoryStorageManagerClass;
+	}
+	
+	public String getPermanentStorageManagerClass() {
+		return permanentStorageManagerClass;
 	}
 	
-	public void setStorageManagerClass(String storageManagerClass) {
-		this.storageManagerClass = storageManagerClass;
+	public void setPermanentStorageManagerClass(String permanentStorageManagerClass) {
+		this.permanentStorageManagerClass = permanentStorageManagerClass;
 	}
 	
 	public RMPolicyBean getPolicyBean () {

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=406396&r1=406395&r2=406396&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java Sun May 14 11:34:48 2006
@@ -326,18 +326,56 @@
 	 * @return
 	 * @throws SandeshaException
 	 */
-	public static StorageManager getSandeshaStorageManager(ConfigurationContext context) throws SandeshaException {
+	public static StorageManager getSandeshaStorageManager(ConfigurationContext context,AxisDescription description) throws SandeshaException {
 
-		StorageManager storageManager = (StorageManager) context.getProperty(Sandesha2Constants.STORAGE_MANAGER);
-		if (storageManager != null)
-			return storageManager;
+		Parameter parameter = description.getParameter(Sandesha2Constants.STORAGE_MANAGER_PARAMETER);
+		if (parameter==null) 
+			parameter = new Parameter (Sandesha2Constants.STORAGE_MANAGER_PARAMETER,Sandesha2Constants.DEFAULT_STORAGE_MANAGER);
+		
+		String value = (String) parameter.getValue();
+		if (Sandesha2Constants.INMEMORY_STORAGE_MANAGER.equals(value))
+			return getInMemoryStorageManager(context);
+		else if (Sandesha2Constants.PERMANENT_STORAGE_MANAGER.equals(value))
+			return getPermanentStorageManager(context);
+		else
+			throw new SandeshaException ("Unknown StorageManager type. Please check your parameter value.");
+	}
+	
+	public static StorageManager getInMemoryStorageManager(ConfigurationContext context) throws SandeshaException {
+
+		StorageManager inMemoryStorageManager = (StorageManager) context.getProperty(Sandesha2Constants.INMEMORY_STORAGE_MANAGER);
+		if (inMemoryStorageManager != null)
+			return inMemoryStorageManager;
 
 		//Currently module policies (default) are used to find the storage manager. These cant be overriden
 		//TODO change this so that different services can hv different storage managers.
-		String srotageManagerClassStr = getDefaultPropertyBean(context.getAxisConfiguration()).getStorageManagerClass();
+		String storageManagerClassStr = getDefaultPropertyBean(context.getAxisConfiguration()).getInMemoryStorageManagerClass();
+		inMemoryStorageManager = getStorageManagerInstance(storageManagerClassStr,context);
+		context.setProperty(Sandesha2Constants.INMEMORY_STORAGE_MANAGER,inMemoryStorageManager);
+		
+		return inMemoryStorageManager;
+	}
+	
+	public static StorageManager getPermanentStorageManager(ConfigurationContext context) throws SandeshaException {
+
+		StorageManager permanentStorageManager = (StorageManager) context.getProperty(Sandesha2Constants.PERMANENT_STORAGE_MANAGER);
+		if (permanentStorageManager != null)
+			return permanentStorageManager;
 
+		//Currently module policies (default) are used to find the storage manager. These cant be overriden
+		//TODO change this so that different services can hv different storage managers.
+		String storageManagerClassStr = getDefaultPropertyBean(context.getAxisConfiguration()).getPermanentStorageManagerClass ();
+		permanentStorageManager = getStorageManagerInstance(storageManagerClassStr,context);
+		context.setProperty(Sandesha2Constants.PERMANENT_STORAGE_MANAGER,permanentStorageManager);
+		
+		return permanentStorageManager;
+	}
+	
+	private static StorageManager getStorageManagerInstance (String className,ConfigurationContext context) throws SandeshaException {
+		
+		StorageManager storageManager = null;
 		try {
-			Class c = Class.forName(srotageManagerClassStr);
+			Class c = Class.forName(className);
 			Class configContextClass = Class.forName(context.getClass().getName());
 			Constructor constructor = c.getConstructor(new Class[] { configContextClass });
 			Object obj = constructor.newInstance(new Object[] { context });
@@ -347,7 +385,6 @@
 
 			StorageManager mgr = (StorageManager) obj;
 			storageManager = mgr;
-			context.setProperty(Sandesha2Constants.STORAGE_MANAGER,storageManager);
 			return storageManager;
 			
 		} catch (Exception e) {
@@ -643,9 +680,8 @@
 	}
 
 	public static String getSequenceIDFromInternalSequenceID(String internalSequenceID,
-			ConfigurationContext configurationContext) throws SandeshaException {
+			StorageManager storageManager) throws SandeshaException {
 
-		StorageManager storageManager = getSandeshaStorageManager(configurationContext);
 		SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropretyBeanMgr();
 
 		SequencePropertyBean outSequenceBean = sequencePropertyBeanMgr.retrieve(internalSequenceID,
@@ -771,9 +807,8 @@
 	 * @return
 	 * @throws SandeshaException
 	 */
-	public static String getRMVersion(String propertyKey, ConfigurationContext configurationContext)
+	public static String getRMVersion(String propertyKey, StorageManager storageManager)
 			throws SandeshaException {
-		StorageManager storageManager = getSandeshaStorageManager(configurationContext);
 
 		SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		SequencePropertyBean specVersionBean = sequencePropertyBeanMgr.retrieve(propertyKey,
@@ -785,9 +820,8 @@
 		return specVersionBean.getValue();
 	}
 
-	public static String getSequenceProperty(String id, String name, ConfigurationContext context)
+	public static String getSequenceProperty(String id, String name, StorageManager storageManager)
 			throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(context);
 		SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropretyBeanMgr();
 
 		SequencePropertyBean sequencePropertyBean = sequencePropertyBeanMgr.retrieve(id, name);
@@ -798,10 +832,10 @@
 	}
 
 	public static boolean isAllMsgsAckedUpto(long highestInMsgNo, String internalSequenceID,
-			ConfigurationContext configCtx) throws SandeshaException {
+			StorageManager storageManager) throws SandeshaException {
 
 		String clientCompletedMessages = getSequenceProperty(internalSequenceID,
-				Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES, configCtx);
+				Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES, storageManager);
 		ArrayList ackedMsgsList = getArrayListFromString(clientCompletedMessages);
 
 		long smallestMsgNo = 1;

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=406396&r1=406395&r2=406396&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java Sun May 14 11:34:48 2006
@@ -45,7 +45,7 @@
 
 	private static Log log = LogFactory.getLog(SequenceManager.class);
 	
-	public static String setupNewSequence(RMMsgContext createSequenceMsg)
+	public static String setupNewSequence(RMMsgContext createSequenceMsg,StorageManager storageManager)
 			throws AxisFault {		
 		
 		String sequenceId = SandeshaUtil.getUUID();
@@ -76,15 +76,9 @@
 			throw new AxisFault(message);
 		}
 
-		StorageManager storageManager = null;
 		ConfigurationContext configurationContext = createSequenceMsg.getMessageContext()
 									.getConfigurationContext();
-		try {
-			storageManager = SandeshaUtil
-					.getSandeshaStorageManager(configurationContext);
-		} catch (SandeshaException e) {
-			e.printStackTrace();
-		}
+
 
 		SequencePropertyBeanMgr seqPropMgr = storageManager
 				.getSequencePropretyBeanMgr();
@@ -164,15 +158,12 @@
 	}
 
 	public static void setupNewClientSequence(
-			MessageContext firstAplicationMsgCtx, String internalSequenceId, String specVersion)
+			MessageContext firstAplicationMsgCtx, String internalSequenceId, String specVersion,StorageManager storageManager)
 			throws SandeshaException {
 		
 		ConfigurationContext configurationContext = firstAplicationMsgCtx
 										.getConfigurationContext();
 
-		StorageManager storageManager = SandeshaUtil
-				.getSandeshaStorageManager(configurationContext);
-
 		SequencePropertyBeanMgr seqPropMgr = storageManager
 				.getSequencePropretyBeanMgr();
 
@@ -308,7 +299,7 @@
 		seqPropMgr.insert(specVerionBean);
 		
 		//updating the last activated time.
-		updateLastActivatedTime(internalSequenceId,configurationContext);
+		updateLastActivatedTime(internalSequenceId,storageManager);
 		
 		SandeshaUtil.startSenderForTheSequence(configurationContext,internalSequenceId);
 		
@@ -358,8 +349,7 @@
 	 * @param configContext
 	 * @throws SandeshaException
 	 */
-	public static void updateLastActivatedTime (String propertyKey, ConfigurationContext configContext) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext);
+	public static void updateLastActivatedTime (String propertyKey, StorageManager storageManager) throws SandeshaException {
 		//Transaction lastActivatedTransaction = storageManager.getTransaction();
 		SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		
@@ -385,9 +375,8 @@
 	}
 	
 	
-	public static long getLastActivatedTime (String propertyKey, ConfigurationContext configContext) throws SandeshaException {
+	public static long getLastActivatedTime (String propertyKey, StorageManager storageManager) throws SandeshaException {
 		
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext);
 		SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		
 		SequencePropertyBean lastActivatedBean = seqPropBeanMgr.retrieve(propertyKey,Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME);
@@ -401,7 +390,7 @@
 		return lastActivatedTime;
 	}
 		
-	public static boolean hasSequenceTimedOut (String propertyKey, RMMsgContext rmMsgCtx) throws SandeshaException {
+	public static boolean hasSequenceTimedOut (String propertyKey, RMMsgContext rmMsgCtx,StorageManager storageManager) throws SandeshaException {
 		
 		//operation is the lowest level, Sandesha2 could be engaged.
 		SandeshaPropertyBean propertyBean = SandeshaUtil.getPropertyBean(rmMsgCtx.getMessageContext().getAxisOperation());
@@ -411,7 +400,7 @@
 
 		boolean sequenceTimedOut = false;
 		
-		long lastActivatedTime = getLastActivatedTime(propertyKey,rmMsgCtx.getMessageContext().getConfigurationContext());
+		long lastActivatedTime = getLastActivatedTime(propertyKey,storageManager);
 		long timeNow = System.currentTimeMillis();
 		if (lastActivatedTime>0 && (lastActivatedTime+propertyBean.getInactiveTimeoutInterval()<timeNow))
 			sequenceTimedOut = true;
@@ -419,8 +408,7 @@
 		return sequenceTimedOut;
 	}
 	
-	public static long getOutGoingSequenceAckedMessageCount (String internalSequenceID,ConfigurationContext configurationContext) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext);
+	public static long getOutGoingSequenceAckedMessageCount (String internalSequenceID,StorageManager storageManager) throws SandeshaException {
 ///		Transaction transaction = storageManager.getTransaction();
 		SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		
@@ -454,8 +442,7 @@
 		return noOfMessagesAcked;
 	}
 	
-	public static boolean isOutGoingSequenceCompleted (String internalSequenceID,ConfigurationContext configurationContext) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext);
+	public static boolean isOutGoingSequenceCompleted (String internalSequenceID,StorageManager storageManager) throws SandeshaException {
 ///		Transaction transaction = storageManager.getTransaction();
 		SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		
@@ -490,9 +477,8 @@
 		return false;
 	}
 	
-	public static boolean isIncomingSequenceCompleted (String sequenceID, ConfigurationContext configurationContext) throws SandeshaException {
+	public static boolean isIncomingSequenceCompleted (String sequenceID, StorageManager storageManager) throws SandeshaException {
 		
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext);
 ///		Transaction transaction = storageManager.getTransaction();
 		SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/TerminateManager.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/TerminateManager.java?rev=406396&r1=406395&r2=406396&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/TerminateManager.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/TerminateManager.java Sun May 14 11:34:48 2006
@@ -73,7 +73,7 @@
 	 * @param sequenceID
 	 * @throws SandeshaException
 	 */
-	public static void cleanReceivingSideOnTerminateMessage (ConfigurationContext configContext, String sequenceID) throws SandeshaException {
+	public static void cleanReceivingSideOnTerminateMessage (ConfigurationContext configContext, String sequenceID,StorageManager storageManager) throws SandeshaException {
 		//clean senderMap
 		
 		//Currently in-order invocation is done for default values.
@@ -81,12 +81,12 @@
 		
 		if(!inOrderInvocation) { 
 			//there is no invoking by Sandesha2. So clean invocations storages.
-			cleanReceivingSideAfterInvocation(configContext,sequenceID);
+			cleanReceivingSideAfterInvocation(configContext,sequenceID,storageManager);
 		}
 
 		String cleanStatus = (String) receivingSideCleanMap.get(sequenceID);
 		if (cleanStatus!=null && CLEANED_AFTER_INVOCATION.equals(cleanStatus))
-			completeTerminationOfReceivingSide(configContext,sequenceID);
+			completeTerminationOfReceivingSide(configContext,sequenceID,storageManager);
 		else {
 			receivingSideCleanMap.put(sequenceID,CLEANED_ON_TERMINATE_MSG);
 		}
@@ -100,8 +100,7 @@
 	 * @param sequenceID
 	 * @throws SandeshaException
 	 */
-	public static void cleanReceivingSideAfterInvocation (ConfigurationContext configContext, String sequenceID) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext);
+	public static void cleanReceivingSideAfterInvocation (ConfigurationContext configContext, String sequenceID,StorageManager storageManager) throws SandeshaException {
 		InvokerBeanMgr storageMapBeanMgr = storageManager.getStorageMapBeanMgr();
 				
 		//removing storageMap entries
@@ -123,7 +122,7 @@
 		
 		String cleanStatus = (String) receivingSideCleanMap.get(sequenceID);
 		if (cleanStatus!=null && CLEANED_ON_TERMINATE_MSG.equals(cleanStatus))
-			completeTerminationOfReceivingSide(configContext,sequenceID);
+			completeTerminationOfReceivingSide(configContext,sequenceID,storageManager);
 		else {
 			receivingSideCleanMap.put(sequenceID,CLEANED_AFTER_INVOCATION);
 		}
@@ -133,8 +132,7 @@
 	 * This has to be called by the lastly invocated one of the above two methods.
 	 *
 	 */
-	private static void completeTerminationOfReceivingSide (ConfigurationContext configContext, String sequenceID) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext);
+	private static void completeTerminationOfReceivingSide (ConfigurationContext configContext, String sequenceID,StorageManager storageManager) throws SandeshaException {
 		InvokerBeanMgr storageMapBeanMgr = storageManager.getStorageMapBeanMgr();
 		NextMsgBeanMgr nextMsgBeanMgr = storageManager.getNextMsgBeanMgr();
 		
@@ -149,16 +147,15 @@
 		}
 		
 		//removing the HighestInMessage entry.
-		String highestInMessageKey = SandeshaUtil.getSequenceProperty(sequenceID,Sandesha2Constants.SequenceProperties.HIGHEST_IN_MSG_KEY,configContext);
+		String highestInMessageKey = SandeshaUtil.getSequenceProperty(sequenceID,Sandesha2Constants.SequenceProperties.HIGHEST_IN_MSG_KEY,storageManager);
 		if (highestInMessageKey!=null) {
 			storageManager.removeMessageContext(highestInMessageKey);
 		}
 		
-		removeReceivingSideProperties(configContext,sequenceID);
+		removeReceivingSideProperties(configContext,sequenceID,storageManager);
 	}
 
-	private static void removeReceivingSideProperties (ConfigurationContext configContext, String sequenceID) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext);
+	private static void removeReceivingSideProperties (ConfigurationContext configContext, String sequenceID,StorageManager storageManager) throws SandeshaException {
 		SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		SequencePropertyBean allSequenceBean = sequencePropertyBeanMgr.retrieve(Sandesha2Constants.SequenceProperties.ALL_SEQUENCES,Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
 		
@@ -193,16 +190,14 @@
 	 * @param sequenceID
 	 * @throws SandeshaException
 	 */
-	public static void terminateSendingSide (ConfigurationContext configContext, String internalSequenceID,boolean serverSide) throws SandeshaException {
-		
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext);
+	public static void terminateSendingSide (ConfigurationContext configContext, String internalSequenceID,boolean serverSide,StorageManager storageManager) throws SandeshaException {
 		
 		SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropretyBeanMgr();
 		
 		SequencePropertyBean seqTerminatedBean = new SequencePropertyBean (internalSequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TERMINATED,Sandesha2Constants.VALUE_TRUE);
 		seqPropMgr.insert(seqTerminatedBean);
 		
-		cleanSendingSideData(configContext,internalSequenceID,serverSide);
+		cleanSendingSideData(configContext,internalSequenceID,serverSide,storageManager);
 	}
 	
 	private static void doUpdatesIfNeeded (String sequenceID, SequencePropertyBean propertyBean, SequencePropertyBeanMgr seqPropMgr) throws SandeshaException {
@@ -268,30 +263,28 @@
 		return deleatable;
 	}
 	
-	public static void timeOutSendingSideSequence (ConfigurationContext context,String internalSequenceID, boolean serverside) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(context);
+	public static void timeOutSendingSideSequence (ConfigurationContext context,String internalSequenceID, boolean serverside,StorageManager storageManager) throws SandeshaException {
 		
 		SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropretyBeanMgr();
 		SequencePropertyBean seqTerminatedBean = new SequencePropertyBean (internalSequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT,Sandesha2Constants.VALUE_TRUE);
 		seqPropMgr.insert(seqTerminatedBean);
 		
-		cleanSendingSideData(context,internalSequenceID,serverside);
+		cleanSendingSideData(context,internalSequenceID,serverside,storageManager);
 	}
 	
-	private static void cleanSendingSideData (ConfigurationContext configContext,String internalSequenceID, boolean serverSide) throws SandeshaException {
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext);
+	private static void cleanSendingSideData (ConfigurationContext configContext,String internalSequenceID, boolean serverSide,StorageManager storageManager) throws SandeshaException {
 		
 		SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropretyBeanMgr();
 		SenderBeanMgr retransmitterBeanMgr = storageManager.getRetransmitterBeanMgr();
 		CreateSeqBeanMgr createSeqBeanMgr = storageManager.getCreateSeqBeanMgr();
 		
-		String outSequenceID = SandeshaUtil.getSequenceProperty(internalSequenceID,Sandesha2Constants.SequenceProperties.OUT_SEQUENCE_ID,configContext);
+		String outSequenceID = SandeshaUtil.getSequenceProperty(internalSequenceID,Sandesha2Constants.SequenceProperties.OUT_SEQUENCE_ID,storageManager);
 		
 		if (!serverSide) {
 			boolean stopListnerForAsyncAcks = false;
 			SequencePropertyBean acksToBean = sequencePropertyBeanMgr.retrieve(internalSequenceID,Sandesha2Constants.SequenceProperties.ACKS_TO_EPR);
 				
-			String addressingNamespace = SandeshaUtil.getSequenceProperty(internalSequenceID,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,configContext);
+			String addressingNamespace = SandeshaUtil.getSequenceProperty(internalSequenceID,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,storageManager);
 			String anonymousURI = SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace);
 				
 			if (acksToBean!=null) {
@@ -340,12 +333,10 @@
 	}
 	
 	public static void addTerminateSequenceMessage(RMMsgContext referenceMessage,
-			String outSequenceId, String internalSequenceId)
+			String outSequenceId, String internalSequenceId,StorageManager storageManager)
 			throws SandeshaException {
 
 		ConfigurationContext configurationContext = referenceMessage.getMessageContext().getConfigurationContext();
-		StorageManager storageManager = SandeshaUtil
-				.getSandeshaStorageManager(configurationContext);
 
 ///		Transaction addTerminateSeqTransaction = storageManager.getTransaction();
 		
@@ -362,7 +353,7 @@
 		}
 
 		RMMsgContext terminateRMMessage = RMMsgCreator
-				.createTerminateSequenceMessage(referenceMessage, outSequenceId,internalSequenceId);
+				.createTerminateSequenceMessage(referenceMessage, outSequenceId,internalSequenceId,storageManager);
 		terminateRMMessage.setFlow(MessageContext.OUT_FLOW);
 		terminateRMMessage.setProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE,"true");
 		
@@ -377,10 +368,10 @@
 
 		terminateRMMessage.setTo(new EndpointReference(toEPR.getAddress()));
 		
-		String addressingNamespaceURI = SandeshaUtil.getSequenceProperty(internalSequenceId,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,configurationContext);
+		String addressingNamespaceURI = SandeshaUtil.getSequenceProperty(internalSequenceId,Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,storageManager);
 		String anonymousURI = SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespaceURI);
 		
-		String rmVersion = SandeshaUtil.getRMVersion(internalSequenceId,configurationContext);
+		String rmVersion = SandeshaUtil.getRMVersion(internalSequenceId,storageManager);
 		if (rmVersion==null)
 			throw new SandeshaException ("Cant find the rmVersion of the given message");
 		terminateRMMessage.setWSAAction(SpecSpecificConstants.getTerminateSequenceAction(rmVersion));
@@ -404,7 +395,6 @@
 
 		
 		storageManager.storeMessageContext(key,terminateRMMessage.getMessageContext());
-
 		
 		//Set a retransmitter lastSentTime so that terminate will be send with
 		// some delay.
@@ -423,8 +413,7 @@
 		
 		terminateBean.setReSend(false);
 
-		SenderBeanMgr retramsmitterMgr = storageManager
-				.getRetransmitterBeanMgr();
+		SenderBeanMgr retramsmitterMgr = storageManager.getRetransmitterBeanMgr();
 
 		retramsmitterMgr.insert(terminateBean);
 		
@@ -449,7 +438,6 @@
 		} catch (AxisFault e) {
 			throw new SandeshaException (e.getMessage());
 		}
-	    
 	}
 	
 }

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=406396&r1=406395&r2=406396&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java Sun May 14 11:34:48 2006
@@ -104,7 +104,7 @@
 			boolean rolebacked = false;
 			
 			try {
-				StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(context);
+				StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(context,context.getAxisConfiguration());
 				NextMsgBeanMgr nextMsgMgr = storageManager.getNextMsgBeanMgr();
 
 				InvokerBeanMgr storageMapMgr = storageManager.getStorageMapBeanMgr();
@@ -196,7 +196,7 @@
 							Sequence sequence = (Sequence) rmMsg
 									.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
 							if (sequence.getLastMessage() != null) {
-								TerminateManager.cleanReceivingSideAfterInvocation(context, sequenceId);
+								TerminateManager.cleanReceivingSideAfterInvocation(context, sequenceId,storageManager);
 								//exit from current iteration. (since an entry was removed)
 								break currentIteration;
 							}

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=406396&r1=406395&r2=406396&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Sun May 14 11:34:48 2006
@@ -82,7 +82,7 @@
 		StorageManager storageManager = null;
 
 		try {
-			storageManager = SandeshaUtil.getSandeshaStorageManager(context);
+			storageManager = SandeshaUtil.getSandeshaStorageManager(context,context.getAxisConfiguration());
 		} catch (SandeshaException e2) {
 			// TODO Auto-generated catch block
 			log.debug("ERROR: Could not start sender");
@@ -124,7 +124,7 @@
 				msgCtx.setProperty(Sandesha2Constants.WITHIN_TRANSACTION,Sandesha2Constants.VALUE_TRUE);
 				
 				MessageRetransmissionAdjuster retransmitterAdjuster = new MessageRetransmissionAdjuster();
-				boolean continueSending = retransmitterAdjuster.adjustRetransmittion(senderBean, context);
+				boolean continueSending = retransmitterAdjuster.adjustRetransmittion(senderBean, context,storageManager);
 				if (!continueSending) {
 					continue;
 				}
@@ -171,7 +171,7 @@
 				if (isAckPiggybackableMsgType(messageType) && !isAckAlreadyPiggybacked(rmMsgCtx)) {
 					// piggybacking if an ack if available for the same sequence.
 					//TODO do piggybacking based on wsa:To
-					AcknowledgementManager.piggybackAcksIfPresent(rmMsgCtx);
+					AcknowledgementManager.piggybackAcksIfPresent(rmMsgCtx,storageManager);
 				}
 				
 				//sending the message
@@ -225,8 +225,8 @@
 					String sequenceID = terminateSequence.getIdentifier().getIdentifier();
 					ConfigurationContext configContext = msgCtx.getConfigurationContext();
 					
-					String internalSequenceID = SandeshaUtil.getSequenceProperty(sequenceID,Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID,configContext);
-					TerminateManager.terminateSendingSide(configContext,internalSequenceID, msgCtx.isServerSide());
+					String internalSequenceID = SandeshaUtil.getSequenceProperty(sequenceID,Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID,storageManager);
+					TerminateManager.terminateSendingSide(configContext,internalSequenceID, msgCtx.isServerSide(),storageManager);
 				}
 
 				msgCtx.setProperty(Sandesha2Constants.WITHIN_TRANSACTION,Sandesha2Constants.VALUE_FALSE);



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org