Author: chamikara
Date: Sun Sep  9 21:39:41 2007
New Revision: 574127

URL: http://svn.apache.org/viewvc?rev=574127&view=rev
Log:
Added a method to the InMemoryBeanMgr.java to check for Key conflicts. Other 
BeanManagers were modified use this when inserting entries to see whether the 
new entry have conflicts with the old once.

Modified:
    
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java
    
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryInvokerBeanMgr.java
    
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMDBeanMgr.java
    
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
    
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
    
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java

Modified: 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java?rev=574127&r1=574126&r2=574127&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java
 (original)
+++ 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java
 Sun Sep  9 21:39:41 2007
@@ -146,5 +146,25 @@
                
                return result;
        }
-
+       
+       /**
+        * This try to find conflicting entries in the current table with the 
passed findBean list.
+        * Each find bean represents a key.
+        * 
+        * @param findBeanList
+        * @throws SandeshaStorageException
+        */
+       protected void checkKeys (List findBeanList) throws 
SandeshaStorageException {
+               
+               for (Iterator iter = findBeanList.iterator(); iter.hasNext();) {
+                       RMBean rmBean = (RMBean) iter.next();
+                       
+                       List conflicts = find(rmBean);
+                       if (conflicts.size()>0) {
+                               //we only report the first conflict here.
+                               throw new SandeshaStorageException ("Key 
conflict occured with the bean " + conflicts.get(0));
+                       }
+               }
+       }
+       
 }

Modified: 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryInvokerBeanMgr.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryInvokerBeanMgr.java?rev=574127&r1=574126&r2=574127&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryInvokerBeanMgr.java
 (original)
+++ 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryInvokerBeanMgr.java
 Sun Sep  9 21:39:41 2007
@@ -17,6 +17,7 @@
 
 package org.apache.sandesha2.storage.inmemory;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.axis2.context.AbstractContext;
@@ -25,6 +26,7 @@
 import org.apache.sandesha2.storage.SandeshaStorageException;
 import org.apache.sandesha2.storage.beanmanagers.InvokerBeanMgr;
 import org.apache.sandesha2.storage.beans.InvokerBean;
+import org.apache.sandesha2.storage.beans.RMSBean;
 
 public class InMemoryInvokerBeanMgr extends InMemoryBeanMgr implements 
InvokerBeanMgr {
 
@@ -33,6 +35,18 @@
        }
 
        public boolean insert(InvokerBean bean) throws SandeshaStorageException 
{
+               
+               //checking weather there are any conflicting entries in the 
current table.
+               List findBeanList = new ArrayList ();
+               
+               InvokerBean findBean = new InvokerBean ();
+               if (bean.getMessageContextRefKey()!=null) {
+                       findBean.setMessageContextRefKey 
(bean.getMessageContextRefKey());
+                       findBeanList.add(findBean);
+               }
+               
+               checkKeys (findBeanList);
+
                boolean result = super.insert(bean.getMessageContextRefKey(), 
bean);
                mgr.getInMemoryTransaction().setReceivedMessages(true);
                return result;

Modified: 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMDBeanMgr.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMDBeanMgr.java?rev=574127&r1=574126&r2=574127&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMDBeanMgr.java
 (original)
+++ 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMDBeanMgr.java
 Sun Sep  9 21:39:41 2007
@@ -17,6 +17,7 @@
 
 package org.apache.sandesha2.storage.inmemory;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
@@ -26,6 +27,7 @@
 import org.apache.sandesha2.storage.SandeshaStorageException;
 import org.apache.sandesha2.storage.beanmanagers.RMDBeanMgr;
 import org.apache.sandesha2.storage.beans.RMDBean;
+import org.apache.sandesha2.storage.beans.RMSBean;
 
 public class InMemoryRMDBeanMgr extends InMemoryBeanMgr implements RMDBeanMgr {
 
@@ -42,6 +44,19 @@
        }
 
        public boolean insert(RMDBean bean) throws SandeshaStorageException {
+               
+               //checking weather there are any conflicting entries in the 
current table.
+               List findBeanList = new ArrayList ();
+               
+               RMDBean findBean = new RMDBean ();
+               
+               if (bean.getSequenceID()!=null) {
+                       findBean.setSequenceID(bean.getSequenceID());
+                       findBeanList.add(findBean);
+               }
+               
+               checkKeys (findBeanList);
+
                return super.insert(bean.getSequenceID(), bean);
        }
 

Modified: 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java?rev=574127&r1=574126&r2=574127&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
 (original)
+++ 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
 Sun Sep  9 21:39:41 2007
@@ -17,6 +17,8 @@
 
 package org.apache.sandesha2.storage.inmemory;
 
+import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.axis2.context.AbstractContext;
@@ -24,6 +26,8 @@
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.storage.SandeshaStorageException;
 import org.apache.sandesha2.storage.beanmanagers.RMSBeanMgr;
+import org.apache.sandesha2.storage.beans.RMBean;
+import org.apache.sandesha2.storage.beans.RMDBean;
 import org.apache.sandesha2.storage.beans.RMSBean;
 
 public class InMemoryRMSBeanMgr extends InMemoryBeanMgr implements RMSBeanMgr {
@@ -33,6 +37,24 @@
        }
 
        public boolean insert(RMSBean bean) throws SandeshaStorageException {
+               
+               //checking weather there are any conflicting entries in the 
current table.
+               List findBeanList = new ArrayList ();
+
+               RMSBean findBean = new RMSBean ();
+               if (bean.getSequenceID()!=null) {
+                       findBean.setSequenceID(bean.getSequenceID());
+                       findBeanList.add(findBean);
+               }
+               
+               if (bean.getCreateSeqMsgID()!=null) {
+                       findBean = new RMSBean ();
+                       findBean.setCreateSeqMsgID(bean.getCreateSeqMsgID());
+                       findBeanList.add(findBean);
+               }
+               
+               checkKeys (findBeanList);
+               
                return super.insert(bean.getCreateSeqMsgID(), bean);
        }
 
@@ -55,5 +77,5 @@
        public RMSBean findUnique (RMSBean bean) throws SandeshaException {
                return (RMSBean) super.findUnique(bean);
        }
-
+       
 }

Modified: 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java?rev=574127&r1=574126&r2=574127&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
 (original)
+++ 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
 Sun Sep  9 21:39:41 2007
@@ -17,6 +17,7 @@
 
 package org.apache.sandesha2.storage.inmemory;
 
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -29,6 +30,7 @@
 import org.apache.sandesha2.i18n.SandeshaMessageKeys;
 import org.apache.sandesha2.storage.SandeshaStorageException;
 import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
+import org.apache.sandesha2.storage.beans.RMSBean;
 import org.apache.sandesha2.storage.beans.SenderBean;
 
 public class InMemorySenderBeanMgr extends InMemoryBeanMgr implements 
SenderBeanMgr {
@@ -51,6 +53,18 @@
                if (bean.getMessageID() == null)
                        throw new 
SandeshaStorageException(SandeshaMessageHelper.getMessage(
                                        SandeshaMessageKeys.nullMsgId));
+               
+               //checking weather there are any conflicting entries in the 
current table.
+               List findBeanList = new ArrayList ();
+               
+               SenderBean findBean = new SenderBean ();
+               if (bean.getMessageID()!=null) {
+                       findBean.setMessageID (bean.getMessageID());
+                       findBeanList.add(findBean);
+               }
+               
+               checkKeys (findBeanList);
+               
                boolean result = super.insert(bean.getMessageID(), bean);
                mgr.getInMemoryTransaction().setSentMessages(true);
                return result;

Modified: 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java?rev=574127&r1=574126&r2=574127&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java
 (original)
+++ 
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java
 Sun Sep  9 21:39:41 2007
@@ -279,6 +279,7 @@
        public static boolean hasSequenceTimedOut(RMSBean rmsBean, String 
internalSequenceId, StorageManager storageManager)
                        throws SandeshaException {
 
+               //FIXME - get this policy from the service level.
                SandeshaPolicyBean propertyBean = 
                        
SandeshaUtil.getPropertyBean(storageManager.getContext().getAxisConfiguration());
 



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

Reply via email to