[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