[jboss-svn-commits] JBL Code SVN: r10924 - labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Apr 12 11:48:07 EDT 2007


Author: derek.adams
Date: 2007-04-12 11:48:07 -0400 (Thu, 12 Apr 2007)
New Revision: 10924

Removed:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreJCRMessage.java
Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreMessage.java
Log:
Merged message store actions into a single implementation.


Deleted: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreJCRMessage.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreJCRMessage.java	2007-04-12 14:35:04 UTC (rev 10923)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreJCRMessage.java	2007-04-12 15:48:07 UTC (rev 10924)
@@ -1,45 +0,0 @@
-package org.jboss.soa.esb.actions.persistence;
-
-import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
-import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.services.persistence.MessageStore;
-import org.jboss.soa.esb.services.persistence.MessageStoreException;
-import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
-import org.jboss.soa.esb.services.persistence.MessageStoreType;
-
-/**
- * Action that stores the incoming message to the JCR message store.
- * 
- * @author Derek Adams
- */
-public class StoreJCRMessage extends AbstractActionPipelineProcessor {
-
-	/**
-	 * Constructor called by pipeline.
-	 * 
-	 * @param config
-	 */
-	public StoreJCRMessage(ConfigTree config) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.jboss.soa.esb.actions.ActionPipelineProcessor#process(org.jboss.soa.esb.message.Message)
-	 */
-	public Message process(Message message) throws ActionProcessingException {
-		MessageStore store = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.JCR);
-		if (store == null) {
-			throw new ActionProcessingException(
-					"JCR message store not available. Verify that the plugin is configured.");
-		}
-		try {
-			store.addMessage(message);
-			return message;
-		} catch (MessageStoreException e) {
-			throw new ActionProcessingException(e);
-		}
-	}
-}

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreMessage.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreMessage.java	2007-04-12 14:35:04 UTC (rev 10923)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/persistence/StoreMessage.java	2007-04-12 15:48:07 UTC (rev 10924)
@@ -1,5 +1,8 @@
 package org.jboss.soa.esb.actions.persistence;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.helpers.ConfigTree;
@@ -7,29 +10,73 @@
 import org.jboss.soa.esb.services.persistence.MessageStore;
 import org.jboss.soa.esb.services.persistence.MessageStoreException;
 import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
+import org.jboss.soa.esb.services.persistence.MessageStoreType;
 
 /**
- * Action that stores the incoming message to the default message store.
+ * Action that stores the incoming message to the message store.
  * 
  * @author Derek Adams
  */
 public class StoreMessage extends AbstractActionPipelineProcessor {
 
+	/** Property that indicates the type of message store to be queried */
+	public static final String MESSAGE_STORE_TYPE = "messageStoreType";
+	
+	/** Constant that indicates the database datastore should be used */
+	public static final String INDICATOR_DATABASE = "database";
+	
+	/** Constant that indicates the JCR datastore should be used */
+	public static final String INDICATOR_JCR = "jcr";
+
+	/** Configuration elements */
+	protected ConfigTree config;
+
+	/** URI that indicates message store type */
+	protected URI messageStoreType;
+
 	/**
 	 * Constructor called by pipeline.
 	 * 
 	 * @param config
 	 */
 	public StoreMessage(ConfigTree config) {
+		this.config = config;
 	}
 
+	/**
+	 * Attempts to load the URI for the message store type from the config tree.
+	 * 
+	 * @return
+	 * @throws ActionProcessingException
+	 */
+	protected URI getMessageStoreType() throws ActionProcessingException {
+		if (messageStoreType == null) {
+			String strMessageStoreType = config.getAttribute(MESSAGE_STORE_TYPE);
+			if (strMessageStoreType == null) {
+				messageStoreType = MessageStoreType.DEFAULT_TYPE;
+			} else if (INDICATOR_DATABASE.equalsIgnoreCase(strMessageStoreType)) {
+				messageStoreType = MessageStoreType.DATABASE;
+			} else if (INDICATOR_JCR.equalsIgnoreCase(strMessageStoreType)) {
+				messageStoreType = MessageStoreType.JCR;
+			} else {
+				try {
+					messageStoreType = new URI(strMessageStoreType);
+				} catch (URISyntaxException e) {
+					throw new ActionProcessingException(e);
+				}
+			}
+		}
+		return messageStoreType;
+	}
+
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see org.jboss.soa.esb.actions.ActionPipelineProcessor#process(org.jboss.soa.esb.message.Message)
 	 */
 	public Message process(Message message) throws ActionProcessingException {
-		MessageStore store = MessageStoreFactory.getInstance().getMessageStore();
+		MessageStore store = MessageStoreFactory.getInstance().getMessageStore(
+				getMessageStoreType());
 		try {
 			store.addMessage(message);
 			return message;




More information about the jboss-svn-commits mailing list