[jboss-svn-commits] JBL Code SVN: r14273 - in labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss: internal/soa/esb/persistence/format/jcr and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 15 20:34:28 EDT 2007


Author: kurt.stam at jboss.com
Date: 2007-08-15 20:34:28 -0400 (Wed, 15 Aug 2007)
New Revision: 14273

Modified:
   labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStoreImpl.java
   labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/jcr/JCRMessageStoreImpl.java
   labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/soa/esb/actions/MessagePersister.java
Log:
JBESB-831, addedd a 'deleteMessage' process to the MessagePersister. 

Modified: labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStoreImpl.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStoreImpl.java	2007-08-15 23:30:14 UTC (rev 14272)
+++ labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStoreImpl.java	2007-08-16 00:34:28 UTC (rev 14273)
@@ -136,6 +136,26 @@
         }
         return message;
     }
+    
+    /**
+     * remove a @Message based on the passed in key in the form of a JBoss ESB @URI
+     * format for URI: "urn:jboss/esb/message/UID#" + UUID.randomUUID()" - see the method in this class @removeMessage
+     */
+    public synchronized int removeMessage (URI uid, String classification)
+            throws MessageStoreException
+    {
+        int response;
+        Connection conn=null;
+        try {
+            conn = mgr.getConnection();
+            response =  delete(uid, classification, conn);
+        } catch (Exception e) {
+            throw new MessageStoreException(e);
+        } finally {
+            release(conn);
+        }
+        return response;
+    }
 	
 	/**
 	 * 
@@ -292,7 +312,7 @@
                
             Message message=select(uuid, con);
             
-            if (message!=null && delete(uuid, con)==1) {
+            if (message!=null && delete(uuid, RedeliverStore.CLASSIFICATION_RDLVR, con)==1) {
                 //now any good db should have set a read lock on this record, until we commit.
                 //if exception is thrown up the delivery count on the message
                 //if exceeds the maxcount then update the classification to DLQ.
@@ -310,7 +330,7 @@
                 
                 if (isDelivered) {
                     //the message is delivered, we're good so remove it from the store
-                    delete(uuid, con);
+                    delete(uuid, RedeliverStore.CLASSIFICATION_RDLVR, con);
                 } else {
                     //the message was not delivered
                     if (message.getProperties().getProperty(DELIVER_COUNT)==null) {
@@ -403,12 +423,13 @@
         return message;
     }
     
-    private int delete(URI uid, Connection connection)
+    private int delete(URI uid, String classification, Connection connection)
         throws SQLException
     {
-        String deleteSql = "delete from message where uuid=?";
+        String deleteSql = "delete from message where uuid=? and classification=?";
         PreparedStatement stmt = connection.prepareStatement(deleteSql);
         stmt.setObject(1, uid.toString());
+        stmt.setObject(2, classification);
         int result = stmt.executeUpdate();
         stmt.close();
         return result;

Modified: labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/jcr/JCRMessageStoreImpl.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/jcr/JCRMessageStoreImpl.java	2007-08-15 23:30:14 UTC (rev 14272)
+++ labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/internal/soa/esb/persistence/format/jcr/JCRMessageStoreImpl.java	2007-08-16 00:34:28 UTC (rev 14273)
@@ -287,4 +287,12 @@
 	 */
 	public void setUndelivered(URI uid) throws MessageStoreException {
 	}
+
+    /* (non-Javadoc)
+     * @see org.jboss.soa.esb.services.persistence.MessageStore#removeMessage(java.net.URI, java.lang.String)
+     */
+    public int removeMessage(URI uid, String classification) throws MessageStoreException {
+        // TODO Auto-generated method stub
+        return 0;
+    }
 }
\ No newline at end of file

Modified: labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/soa/esb/actions/MessagePersister.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/soa/esb/actions/MessagePersister.java	2007-08-15 23:30:14 UTC (rev 14272)
+++ labs/jbossesb/trunk/product/services/jbossesb/src/main/java/org/jboss/soa/esb/actions/MessagePersister.java	2007-08-16 00:34:28 UTC (rev 14273)
@@ -126,4 +126,24 @@
         return message;
     }
     
+    public Message removeMessage(Message message) throws ActionProcessingException
+    {
+        String classification = this.classification;
+        if (message.getProperties().getProperty(MessageStore.MESSAGE_URI)!=null) {
+            URI uid = (URI) message.getProperties().getProperty(MessageStore.MESSAGE_URI);
+            try {
+                if (message.getProperties().getProperty(MessageStore.CLASSIFICATION)!=null) {
+                    classification = String.valueOf(message.getProperties().getProperty(MessageStore.CLASSIFICATION));
+                }
+                //the message can override the classification
+                messageStore.removeMessage(uid, classification);
+            } catch (MessageStoreException mse) {
+                log.error("Could obtain messages.", mse);
+            } 
+        } else {
+            log.error("Required property " + MessageStore.MESSAGE_URI + " is missing");
+        }
+        return message;
+    }
+    
 }




More information about the jboss-svn-commits mailing list