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 ch...@apache.org on 2005/11/23 07:13:08 UTC

svn commit: r348383 - in /webservices/sandesha/trunk/src/org/apache/sandesha2: ./ msgprocessors/ policy/ util/ workers/

Author: chamikara
Date: Tue Nov 22 22:12:24 2005
New Revision: 348383

URL: http://svn.apache.org/viewcvs?rev=348383&view=rev
Log:
Added a PropertyManager class.
This is responsible for loading properties from a sandesha2.properties file in the classpath. If the file is not found properties will be loaded from Constants.

Added:
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java
Modified:
    webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaDynamicProperties.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java?rev=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java Tue Nov 22 22:12:24 2005
@@ -120,13 +120,13 @@
 	}
 
 	public interface WSP {
-		long RETRANSMISSION_INTERVAL = 20000;
-
-		long ACKNOWLEDGEMENT_INTERVAL = 4000;
-
-		boolean EXPONENTION_BACKOFF = true;
-
-		long INACTIVITY_TIMEOUT_INTERVAL = 5000000;
+//		long RETRANSMISSION_INTERVAL = 20000;
+//
+//		long ACKNOWLEDGEMENT_INTERVAL = 4000;
+//
+//		boolean EXPONENTION_BACKOFF = true;
+//
+//		long INACTIVITY_TIMEOUT_INTERVAL = 5000000;
 
 		String RM_POLICY_BEAN = "RMPolicyBean";
 	}
@@ -284,12 +284,43 @@
 		}
 	}
 
+	public interface Properties {
+		
+		String RetransmissionInterval = "RetransmissionInterval";
+		
+		String AcknowledgementInterval = "AcknowledgementInterval";
+		
+		String ExponentialBackoff = "ExponentialBackoff";
+		
+		String InactivityTimeout = "InactivityTimeout";
+		
+		String InactivityTimeoutMeasure = "InactivityTimeoutMeasure";
+		
+		String StorageManager = "StorageManager";
+		
+		public interface DefaultValues {
+			
+			int RetransmissionInterval = 10000;
+			
+			int AcknowledgementInterval = 4000;
+			
+			boolean ExponentialBackoff = true;
+			
+			int InactivityTimeout = -1;
+			
+			String InactivityTimeoutMeasure = "seconds";   //this can be - seconds,minutes,hours,days
+			
+			String StorageManager = "org.apache.sandesha2.storage.inmemory.InMemoryStorageManager";
+		}
+		
+	}
+	
 	//TODO remove following three
-	int STORAGE_TYPE_IN_MEMORY = 1;
+	//int STORAGE_TYPE_IN_MEMORY = 1;
 
-	int STORAGE_TYPE_PERSISTANCE = 2;
+	//int STORAGE_TYPE_PERSISTANCE = 2;
 
-	int DEFAULT_STORAGE_TYPE = STORAGE_TYPE_IN_MEMORY;
+	//int DEFAULT_STORAGE_TYPE = STORAGE_TYPE_IN_MEMORY;
 
 	String IN_HANDLER_NAME = "SandeshaInHandler";
 
@@ -329,5 +360,7 @@
 	String STORAGE_MANAGER_IMPL = "org.apache.sandesha2.storage.inmemory.InMemoryStorageManager";
 
 	int MAXIMUM_RETRANSMISSION_ATTEMPTS = 5;
+	
+	String PROPERTY_FILE = "sandesha2.properties";
 
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaDynamicProperties.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaDynamicProperties.java?rev=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaDynamicProperties.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaDynamicProperties.java Tue Nov 22 22:12:24 2005
@@ -24,60 +24,60 @@
 
 public class SandeshaDynamicProperties {
 
-	private String storageManagerImpl = Constants.STORAGE_MANAGER_IMPL;
-
-	private RMPolicyBean policyBean = null;
-
-	//private String SOAPVersionURI = null;
-
-	public SandeshaDynamicProperties() {
-
-		loadPolicyBeanFromConstants();
-	}
-
-	private void loadPolicyBeanFromConstants() {
-		//loading default properties. these will be overriden later (most of
-		// the time).
-		policyBean = new RMPolicyBean();
-		policyBean
-				.setAcknowledgementInterval(Constants.WSP.ACKNOWLEDGEMENT_INTERVAL);
-		policyBean
-				.setRetransmissionInterval(Constants.WSP.RETRANSMISSION_INTERVAL);
-		policyBean.setExponentialBackoff(Constants.WSP.EXPONENTION_BACKOFF);
-		policyBean
-				.setInactiveTimeoutInterval(Constants.WSP.INACTIVITY_TIMEOUT_INTERVAL);
-
-		//		if (Constants.SOAPVersion.DEFAULT==Constants.SOAPVersion.v1_1){
-		//			SOAPVersionURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-		//		}else {
-		//			SOAPVersionURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-		//		}
-
-		//default is SOAP 1.1
-		//SOAPVersionURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-	}
-
-	public RMPolicyBean getPolicyBean() {
-		return policyBean;
-	}
-
-	public void setPolicyBean(RMPolicyBean policyBean) {
-		this.policyBean = policyBean;
-	}
-
-	//	public String getSOAPVersionURI() {
-	//		return SOAPVersionURI;
-	//	}
-	//	
-	//	public void setSOAPVersionURI(String versionURI) {
-	//		SOAPVersionURI = versionURI;
-	//	}
-
-	public String getStorageManagerImpl() {
-		return storageManagerImpl;
-	}
-
-	public void setStorageManagerImpl(String storageManagerImpl) {
-		this.storageManagerImpl = storageManagerImpl;
-	}
+//	private String storageManagerImpl = Constants.STORAGE_MANAGER_IMPL;
+//
+//	private RMPolicyBean policyBean = null;
+//
+//	//private String SOAPVersionURI = null;
+//
+//	public SandeshaDynamicProperties() {
+//
+//		loadPolicyBeanFromConstants();
+//	}
+//
+//	private void loadPolicyBeanFromConstants() {
+//		//loading default properties. these will be overriden later (most of
+//		// the time).
+//		policyBean = new RMPolicyBean();
+//		policyBean
+//				.setAcknowledgementInterval(Constants.WSP.ACKNOWLEDGEMENT_INTERVAL);
+//		policyBean
+//				.setRetransmissionInterval(Constants.WSP.RETRANSMISSION_INTERVAL);
+//		policyBean.setExponentialBackoff(Constants.WSP.EXPONENTION_BACKOFF);
+//		policyBean
+//				.setInactiveTimeoutInterval(Constants.WSP.INACTIVITY_TIMEOUT_INTERVAL);
+//
+//		//		if (Constants.SOAPVersion.DEFAULT==Constants.SOAPVersion.v1_1){
+//		//			SOAPVersionURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
+//		//		}else {
+//		//			SOAPVersionURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
+//		//		}
+//
+//		//default is SOAP 1.1
+//		//SOAPVersionURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
+//	}
+//
+//	public RMPolicyBean getPolicyBean() {
+//		return policyBean;
+//	}
+//
+//	public void setPolicyBean(RMPolicyBean policyBean) {
+//		this.policyBean = policyBean;
+//	}
+//
+//	//	public String getSOAPVersionURI() {
+//	//		return SOAPVersionURI;
+//	//	}
+//	//	
+//	//	public void setSOAPVersionURI(String versionURI) {
+//	//		SOAPVersionURI = versionURI;
+//	//	}
+//
+//	public String getStorageManagerImpl() {
+//		return storageManagerImpl;
+//	}
+//
+//	public void setStorageManagerImpl(String storageManagerImpl) {
+//		this.storageManagerImpl = storageManagerImpl;
+//	}
 }

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=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Tue Nov 22 22:12:24 2005
@@ -52,6 +52,7 @@
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
 import org.apache.sandesha2.storage.beans.StorageMapBean;
 import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.PropertyManager;
 import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.SOAPAbstractFactory;
 import org.apache.sandesha2.util.SandeshaUtil;
@@ -390,7 +391,7 @@
 
 			RMPolicyBean policyBean = (RMPolicyBean) rmMsgCtx
 					.getProperty(Constants.WSP.RM_POLICY_BEAN);
-			long ackInterval = Constants.WSP.ACKNOWLEDGEMENT_INTERVAL;
+			long ackInterval = PropertyManager.getInstance().getAcknowledgementInterval();
 			if (policyBean != null) {
 				ackInterval = policyBean.getAcknowledgementInaterval();
 			}

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java?rev=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java Tue Nov 22 22:12:24 2005
@@ -25,10 +25,10 @@
 import org.apache.sandesha2.Constants;
 
 public class RMPolicyBean {
-    private long inactiveTimeoutInterval = Constants.WSP.INACTIVITY_TIMEOUT_INTERVAL;
-    private long acknowledgementInterval = Constants.WSP.ACKNOWLEDGEMENT_INTERVAL;
-    private long retransmissionInterval = Constants.WSP.RETRANSMISSION_INTERVAL;
-    private boolean exponentialBackoff = Constants.WSP.EXPONENTION_BACKOFF;
+    private long inactiveTimeoutInterval;
+    private long acknowledgementInterval;
+    private long retransmissionInterval;
+    private boolean exponentialBackoff;
     
     public RMPolicyBean () {
     	loadValuesFromPropertyFile ();

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java?rev=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java Tue Nov 22 22:12:24 2005
@@ -45,7 +45,8 @@
 		RMPolicyBean policyBean = (RMPolicyBean) messageContext
 				.getProperty(Constants.WSP.RM_POLICY_BEAN);
 		if (policyBean == null) {
-			policyBean = new SandeshaDynamicProperties().getPolicyBean();
+			//loading default policies.
+			policyBean = PropertyManager.getInstance().getRMPolicyBean();
 		}
 
 		retransmitterBean.setSentCount(retransmitterBean.getSentCount() + 1);

Added: 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=348383&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java Tue Nov 22 22:12:24 2005
@@ -0,0 +1,219 @@
+/*
+ * Copyright  1999-2004 The Apache Software Foundation.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.sandesha2.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.axis2.InavalidModuleImpl;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.policy.RMPolicyBean;
+
+/**
+ * @author Chamikara Jayalath <ch...@gmail.com>
+ */
+
+public class PropertyManager {
+
+	public static PropertyManager instance = null;
+	
+	private SandeshaPropertyBean propertyBean = null;
+	 
+	private PropertyManager () {
+		propertyBean = new SandeshaPropertyBean ();
+		loadProperties(null);
+	}
+	
+	private void loadProperties (InputStream in) {
+		try {
+			if (in==null)
+				in = Thread.currentThread().getContextClassLoader().getResourceAsStream(Constants.PROPERTY_FILE);
+			
+			if (in==null)
+				throw new IOException ("sandesha2 property file not found");
+			
+			Properties properties = new Properties ();
+			properties.load(in);
+			
+			loadPropertiesToBean (properties);
+		} catch (IOException e) {
+			System.out.println("A valid property file was not found. Using default values...");
+		}
+	}
+	
+	public static PropertyManager getInstance () {
+		if (instance==null) {
+			instance = new PropertyManager ();	
+		}
+		
+		return instance;
+	}
+	
+	public void reload (InputStream stream) {
+		loadProperties(stream);
+	}
+	
+	
+	private void loadPropertiesToBean (Properties properties) {
+		
+		loadExponentialBackoff(properties);
+		loadRetransmissionInterval(properties);
+		loadAcknowledgementInterval(properties);
+		loadInactivityTimeout(properties);
+		loadStoragemanagerClass(properties);
+		
+	}
+	
+	private void loadExponentialBackoff (Properties properties) {
+		
+		String expoBackoffStr = properties.getProperty(Constants.Properties.ExponentialBackoff);
+		boolean loaded = false;
+		
+		if (expoBackoffStr!=null) {
+			expoBackoffStr = expoBackoffStr.trim();
+			if (expoBackoffStr.equals("true")) {
+				propertyBean.setExponentialBackoff(true);
+				loaded = true;
+			}else if (expoBackoffStr.equals("false")){
+				propertyBean.setExponentialBackoff(false);
+				loaded = true;
+			}
+		}
+		
+		if (!loaded)
+			propertyBean.setExponentialBackoff(Constants.Properties.DefaultValues.ExponentialBackoff);
+	}
+	
+	private void loadRetransmissionInterval (Properties properties) {
+		
+		String retransmissionIntStr = properties.getProperty(Constants.Properties.RetransmissionInterval);
+		boolean loaded = false;
+		
+		if (retransmissionIntStr!=null) {
+			try {
+				retransmissionIntStr = retransmissionIntStr.trim();
+				int retransmissionInterval = Integer.parseInt(retransmissionIntStr);
+				if (retransmissionInterval>0) {
+					propertyBean.setRetransmissionInterval(retransmissionInterval);
+					loaded = true;
+				}
+			} catch (NumberFormatException e) {
+				e.printStackTrace();
+				loaded = false;
+			}
+		}
+		
+		if (!loaded)
+			propertyBean.setRetransmissionInterval(Constants.Properties.DefaultValues.RetransmissionInterval);
+	}
+	
+	private void loadAcknowledgementInterval (Properties properties) {
+		
+		String acknowledgementIntStr = properties.getProperty(Constants.Properties.AcknowledgementInterval);
+		boolean loaded = false;
+		
+		if (acknowledgementIntStr!=null) {
+			try {
+				acknowledgementIntStr = acknowledgementIntStr.trim();
+				int acknowledgementInt = Integer.parseInt(acknowledgementIntStr);
+				if (acknowledgementInt>0) {
+					propertyBean.setAcknowledgementInterval(acknowledgementInt);
+					loaded = true;
+				}
+			} catch (NumberFormatException e) {
+				e.printStackTrace();
+				loaded = false;
+			}
+		}
+		
+		if (!loaded)
+			propertyBean.setAcknowledgementInterval(Constants.Properties.DefaultValues.AcknowledgementInterval);
+	}
+	
+	private void loadInactivityTimeout (Properties properties) {
+		
+		String inactivityTimeoutStr = properties.getProperty(Constants.Properties.InactivityTimeout);
+		String inactivityTimeoutMeasure = properties.getProperty(Constants.Properties.InactivityTimeoutMeasure);
+		
+		
+		boolean loaded = false;
+		
+		if (inactivityTimeoutStr!=null && inactivityTimeoutMeasure!=null) {
+			try {
+				inactivityTimeoutStr = inactivityTimeoutStr.trim();
+				inactivityTimeoutMeasure = inactivityTimeoutMeasure.trim();
+				
+				int inactivityTimeoutVal = Integer.parseInt(inactivityTimeoutStr);
+				if (inactivityTimeoutVal>0) {
+					propertyBean.setInactiveTimeoutInterval(inactivityTimeoutVal,inactivityTimeoutMeasure);
+					loaded = true;
+				}
+			} catch (NumberFormatException e) {
+				e.printStackTrace();
+				loaded = false;
+			}
+		}
+		
+		if (!loaded)
+			propertyBean.setInactiveTimeoutInterval(Constants.Properties.DefaultValues.InactivityTimeout,Constants.Properties.DefaultValues.InactivityTimeoutMeasure);
+	}
+	
+	private void loadStoragemanagerClass (Properties properties) {
+		String storageMgrClassStr = properties.getProperty(Constants.Properties.StorageManager);
+		boolean loaded = false;
+		
+		if (storageMgrClassStr!=null) {
+			storageMgrClassStr = storageMgrClassStr.trim();
+			propertyBean.setStorageManagerClass(storageMgrClassStr);
+			loaded = true;
+		}
+		
+		if (!loaded)
+			propertyBean.setStorageManagerClass(Constants.Properties.DefaultValues.StorageManager);
+	}
+	
+	
+	
+	public boolean isExponentialBackoff () {
+		
+		return propertyBean.isExponentialBackoff();
+	}
+	
+	public long getRetransmissionInterval () {
+		return propertyBean.getRetransmissionInterval();
+	}
+	
+	public long getAcknowledgementInterval () {
+		return propertyBean.getAcknowledgementInaterval();
+	}
+	
+	public long getInactivityTimeout () {
+		return propertyBean.getInactiveTimeoutInterval();
+	}
+	
+	public String getStorageManagerClass () {
+		return propertyBean.getStorageManagerClass();
+	}
+	
+	public RMPolicyBean getRMPolicyBean () {
+		return propertyBean.getPolicyBean();
+	}
+	
+}

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=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java Tue Nov 22 22:12:24 2005
@@ -61,9 +61,8 @@
 
 	private static void setUpMessage(MessageContext rmMsgCtx) {
 		//Seting RMPolicyBean
-		RMPolicyBean policyBean = new RMPolicyBean();
-		rmMsgCtx.setProperty(Constants.WSP.RM_POLICY_BEAN, policyBean);
-
+		if (rmMsgCtx.getProperty(Constants.WSP.RM_POLICY_BEAN)==null)
+			rmMsgCtx.setProperty(Constants.WSP.RM_POLICY_BEAN, PropertyManager.getInstance().getRMPolicyBean());
 	}
 
 	public static RMMsgContext createCreateSeqMsg(

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java?rev=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java Tue Nov 22 22:12:24 2005
@@ -28,7 +28,9 @@
 public class RMPolicyManager {
 
 	public static RMPolicyBean getPolicyBean(RMMsgContext msgContext) {
-		RMPolicyBean policyBean = new RMPolicyBean();
+		//TODO extract policies from the msgCtx.
+		
+		RMPolicyBean policyBean = PropertyManager.getInstance().getRMPolicyBean();
 		return policyBean;
 	}
 }

Added: 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=348383&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java Tue Nov 22 22:12:24 2005
@@ -0,0 +1,90 @@
+/*
+ * Copyright  1999-2004 The Apache Software Foundation.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.sandesha2.util;
+
+import org.apache.sandesha2.policy.RMPolicyBean;
+
+/**
+ * @author Chamikara Jayalath <ch...@gmail.com>
+ */
+
+public class SandeshaPropertyBean {
+
+	RMPolicyBean policyBean = new RMPolicyBean ();
+	String storageManagerClass = null;
+    
+    public long getInactiveTimeoutInterval() {
+        return policyBean.getInactiveTimeoutInterval();
+    }
+    
+    public long getAcknowledgementInaterval() {
+        return policyBean.getAcknowledgementInaterval();
+    }
+    
+    public long getRetransmissionInterval() {
+        return policyBean.getRetransmissionInterval();
+    }
+    
+    public boolean isExponentialBackoff() {
+        return policyBean.isExponentialBackoff();
+    }
+    
+    public void setExponentialBackoff(boolean exponentialBackoff) {
+        policyBean.setExponentialBackoff(exponentialBackoff);    
+    }
+    
+    public void setRetransmissionInterval(long retransmissionInterval) {
+        policyBean.setRetransmissionInterval(retransmissionInterval);
+    }
+    
+    public void setInactiveTimeoutInterval(int value, String measure) {
+    	long timeOut = -1;
+    	
+        if (measure==null) {
+        	policyBean.setInactiveTimeoutInterval(timeOut);
+        	return;
+        } else if ("seconds".equals(measure)){
+        	timeOut = value*1000;
+        } else if ("minutes".equals(measure)){
+        	timeOut = value*60*1000;
+        } else if ("hours".equals(measure)){
+        	timeOut = value*60*60*1000;
+        } else if ("days".equals(measure)){
+        	timeOut = value*24*60*60*1000;
+        }
+        
+        policyBean.setInactiveTimeoutInterval(timeOut);
+        
+    }
+    
+    public void setAcknowledgementInterval(long acknowledgementInterval) {
+        policyBean.setAcknowledgementInterval(acknowledgementInterval);
+    }
+	
+	public String getStorageManagerClass() {
+		return storageManagerClass;
+	}
+	
+	public void setStorageManagerClass(String storageManagerClass) {
+		this.storageManagerClass = storageManagerClass;
+	}
+	
+	public RMPolicyBean getPolicyBean () {
+		return policyBean;
+	}
+}

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=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java Tue Nov 22 22:12:24 2005
@@ -32,7 +32,12 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.context.ServiceGroupContext;
 import org.apache.axis2.description.AxisOperation;
+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;
@@ -453,34 +458,58 @@
 					.getMessageContext();
 			ConfigurationContext configContext = referenceMessage
 					.getSystemContext();
+			AxisConfiguration axisConfiguration = configContext.getAxisConfiguration();
+			
 			MessageContext newMessageContext = new MessageContext(configContext);
 
 			if (referenceMessage.getAxisServiceGroup() != null) {
 				newMessageContext.setAxisServiceGroup(referenceMessage
 						.getAxisServiceGroup());
-			}
-
-			if (referenceMessage.getAxisService() != null) {
-				newMessageContext.setAxisService(referenceMessage
-						.getAxisService());
-			}
-
-			newMessageContext.setAxisOperation(operation);
-
-			if (referenceMessage.getServiceGroupContext() != null) {
 				newMessageContext.setServiceGroupContext(referenceMessage
 						.getServiceGroupContext());
 				newMessageContext.setServiceGroupContextId(referenceMessage
 						.getServiceGroupContextId());
+			} else {
+				AxisServiceGroup axisServiceGroup = new AxisServiceGroup (axisConfiguration);
+				ServiceGroupContext serviceGroupContext = new ServiceGroupContext (configContext,axisServiceGroup);
+				
+				newMessageContext.setAxisServiceGroup(axisServiceGroup);
+				newMessageContext.setServiceGroupContext (serviceGroupContext);
 			}
 
-			if (referenceMessage.getServiceContext() != null) {
+			if (referenceMessage.getAxisService() != null) {
+				newMessageContext.setAxisService(referenceMessage
+						.getAxisService());
 				newMessageContext.setServiceContext(referenceMessage
 						.getServiceContext());
 				newMessageContext.setServiceContextID(referenceMessage
 						.getServiceContextID());
+			} else {
+				AxisService axisService = new AxisService (new QName ("AnonymousRMService")); //just a dummy name.
+				ServiceContext serviceContext = new ServiceContext (axisService,newMessageContext.getServiceGroupContext());
+				
+				newMessageContext.setAxisService(axisService);
+				newMessageContext.setServiceContext(serviceContext);
 			}
 
+			newMessageContext.setAxisOperation(operation);
+
+//			if (referenceMessage.getServiceGroupContext() != null) {
+//				newMessageContext.setServiceGroupContext(referenceMessage
+//						.getServiceGroupContext());
+//				newMessageContext.setServiceGroupContextId(referenceMessage
+//						.getServiceGroupContextId());
+//			}
+//
+//			if (referenceMessage.getServiceContext() != null) {
+//				newMessageContext.setServiceContext(referenceMessage
+//						.getServiceContext());
+//				newMessageContext.setServiceContextID(referenceMessage
+//						.getServiceContextID());
+//			} else {
+//				
+//			}
+
 			OperationContext operationContext = new OperationContext(operation);
 			newMessageContext.setOperationContext(operationContext);
 			operationContext.addMessageContext(newMessageContext);
@@ -501,6 +530,9 @@
 			newMessageContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
 					referenceMessage
 							.getProperty(HTTPConstants.HTTPOutTransportInfo));
+			newMessageContext.setProperty(Constants.WSP.RM_POLICY_BEAN,
+					referenceMessage
+					.getProperty(Constants.WSP.RM_POLICY_BEAN));
 
 			return newMessageContext;
 

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=348383&r1=348382&r2=348383&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Tue Nov 22 22:12:24 2005
@@ -108,6 +108,7 @@
 						}
 
 						try {
+							System.out.println("Sending message:" + SandeshaUtil.getMessageTypeString(rmMsgCtx.getMessageType()));
 							new AxisEngine(context).send(msgCtx);
 						} catch (Exception e) {
 							//Exception is sending. retry later



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