[jboss-svn-commits] JBL Code SVN: r7184 - in labs/jbossesb/trunk: product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/format product/core/rosetta/src/org/jboss/soa/esb product/core/rosetta/src/org/jboss/soa/esb/services product/core/rosetta/src/org/jboss/soa/esb/services/persistence product/core/rosetta/tests/src/org/jboss/soa/esb/esb/persistence product/core/services/src/org/jboss product/core/services/src/org/jboss/internal product/core/services/src/org/jboss/internal/soa product/core/services/src/org/jboss/internal/soa/esb product/core/services/tests/src/org/jboss/soa/esb product/core/services/tests/src/org/jboss/soa/esb/esb product/core/services/tests/src/org/jboss/soa/esb/esb/persistence product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests product/etc/test/resources qa/junit/src/org/jboss/soa/esb/messagestore qa/junit/src/org/jboss/soa/esb/util

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 27 23:09:48 EDT 2006


Author: daniel.brum at jboss.com
Date: 2006-10-27 23:09:38 -0400 (Fri, 27 Oct 2006)
New Revision: 7184

Added:
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java
   labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/
   labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/
   labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/
   labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/persistence/
   labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/esb/
   labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/
   labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/
Removed:
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/format/db/
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/persistence/
   labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/esb/persistence/tests/
Modified:
   labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java
   labs/jbossesb/trunk/product/etc/test/resources/jbossesb-unittest-properties.xml
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java
Log:


Deleted: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -1,113 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author daniel.brum at jboss.com
- */
-
-
-package org.jboss.internal.soa.esb.persistence.format;
-
-import java.net.URI;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Properties;
-
-
-import org.jboss.internal.soa.esb.persistence.format.db.DBMessageStorePlugin;
-import org.jboss.soa.esb.persistence.MessageStore;
-import org.jboss.soa.esb.persistence.MessageStoreFactory;
-import org.jboss.soa.esb.persistence.format.MessageStorePlugin;
-import org.jboss.soa.esb.persistence.format.MessageStoreType;
-
-public class MessageStoreFactoryImpl extends MessageStoreFactory {
-	
-	private final Hashtable<URI, MessageStorePlugin> messageStoreFormats = new Hashtable<URI, MessageStorePlugin>();
-
-	
-	public MessageStoreFactoryImpl() {
-		reset();
-	}
-	
-	public MessageStore getMessageStore() {
-		return ((MessageStorePlugin) messageStoreFormats.get(MessageStoreType.DEFAULT_TYPE)).getMessageStore();
-	}
-	
-	public MessageStore getMessageStore(URI type) {
-		if (type == null)
-			throw new IllegalArgumentException();
-
-		MessageStorePlugin plugin = messageStoreFormats.get(type);
-
-		if (plugin != null)
-			return plugin.getMessageStore();
-		else
-			return null;
-	}
-	
-	public void reset ()
-	{
-		messageStoreFormats.clear();
-		/*
-		 * Go through the properties loaded from the property file. Anything
-		 * starting with MessageStorePlugin.MESSAGE_STORE_PLUGIN is assumed to be a plugin
-		 * that we load and add to the list.
-		 */		
-		
-		Properties properties = System.getProperties();
-		
-		if (properties != null)
-		{
-			Enumeration names = properties.propertyNames();
-
-			while (names.hasMoreElements())
-			{
-				String attrName = (String) names.nextElement();
-				
-				if (attrName.startsWith(MessageStorePlugin. MESSAGE_STORE_PLUGIN))
-				{
-					try
-					{
-						String pluginName = properties.getProperty(attrName);
-						Class c = Class.forName(pluginName);
-						MessageStorePlugin thePlugin = (MessageStorePlugin) c.newInstance();
-
-						messageStoreFormats.put(thePlugin.getType(), thePlugin);
-					}
-					catch (ClassNotFoundException ex)
-					{
-						ex.printStackTrace();
-					}
-					catch (IllegalAccessException ex)
-					{
-						ex.printStackTrace();
-					}
-					catch (InstantiationException ex)
-					{
-						ex.printStackTrace();
-					}
-				}
-			}
-		}
-	         
-		/*
-		 * Now add the default(s).
-		 */		
-		messageStoreFormats.put(MessageStoreType.DATABASE, new DBMessageStorePlugin());		
-	}
-
-}

Added: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -0,0 +1,15 @@
+package org.jboss.soa.esb.services.persistence;
+
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Message;
+
+
+
+public interface MessageStore {
+	
+	public URI addMessage(Message message);
+	public Message getMessage(URI uid) throws Exception;
+
+}

Added: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -0,0 +1,59 @@
+package org.jboss.soa.esb.services.persistence;
+
+
+
+import java.lang.reflect.Constructor;
+import java.net.URI;
+
+
+
+
+ at SuppressWarnings("unchecked")
+public abstract class MessageStoreFactory {
+	
+	private static MessageStoreFactory theFactory;
+	
+	static
+	{
+		
+		try {			
+			Class cls = Class.forName("org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl");
+			Constructor<MessageStoreFactory> c = cls.getConstructor(new Class[]{});
+			theFactory = c.newInstance(new Object[]{});
+		} catch (Exception e) {			
+			e.printStackTrace();
+		}
+		
+		
+	}
+	
+	
+	/**
+	 * @return a default implementation.
+	 */
+	
+	public abstract MessageStore getMessageStore ();
+	
+	/**
+	 * @param type the unique identifier representing the type of this MessageStore.
+	 * @return the MessageStore, or <code>null</code> if no suitable store is available.
+	 */
+	
+	public abstract MessageStore getMessageStore (URI type);
+	
+	
+	public static MessageStoreFactory getInstance ()
+	{
+		return theFactory;
+	}
+	
+	/**
+	 * Reload the plugins.
+	 */
+	
+	public abstract void reset ();
+	
+	
+	
+
+}

Copied: labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests (from rev 7183, labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/esb/persistence/tests)

Modified: labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -27,20 +27,26 @@
  *
  */
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
 import java.net.URI;
+import java.sql.Connection;
+import java.sql.Statement;
 
 import junit.framework.TestCase;
 
-import org.jboss.internal.soa.esb.persistence.format.db.DBConnectionManagerDBCP;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.internal.soa.esb.persistence.format.db.DBConnectionManager;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.common.tests.HsqldbUtil;
 import org.jboss.soa.esb.common.tests.TestUtil;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.format.MessageType;
-import org.jboss.soa.esb.persistence.MessageStore;
-import org.jboss.soa.esb.persistence.MessageStoreFactory;
-import org.jboss.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
 import org.junit.Test;
 
 
@@ -129,7 +135,7 @@
 		MessageStoreUnitTest.runBeforeAllTests();
 		MessageStore store = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.DATABASE);
 		assertEquals((store != null), true);		
-		DBConnectionManagerDBCP mgr = DBConnectionManagerDBCP.getInstance();
+		DBConnectionManager mgr = DBConnectionManager.getInstance();
 		assertEquals((mgr != null), true);
 		MessageStoreUnitTest.runAfterAllTests();
 	}	
@@ -139,20 +145,58 @@
 		TestUtil.setESBPropertiesFileToUse();				
 		try {			
 			if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver")) {
-				HsqldbUtil.startHsqldb(TestUtil.getPrefix() + "create_database.sql", "jbossesb");
+				HsqldbUtil.startHsqldb(TestUtil.getPrefix() + "build/hsqltestdb", "jbossesb");
+				//Get the registry-schema create scripts
+				String database = "hsqldb";
+				String sqlDir = TestUtil.getPrefix() + "install/message-store/sql/" + database + "/";
+				//Drop what is there now, if exists. We want to start fresh.				
+				String sqlCreateCmd    = MessageStoreUnitTest.readTextFile(new File(sqlDir + "create_database.sql"));
+				String sqlDropCmd      = MessageStoreUnitTest.readTextFile(new File(sqlDir + "drop_database.sql"));
+				
+				DBConnectionManager mgr = DBConnectionManager.getInstance();
+				Connection con = mgr.getConnection();
+				Statement stmnt = con.createStatement();
+				System.out.println("Dropping the schema if exist");
+				stmnt.execute(sqlDropCmd);
+				System.out.println("Creating the message store schema");
+				stmnt.execute(sqlCreateCmd);				
 			}
 		} catch (Exception e) {			// 
 			e.printStackTrace();
+			System.out.println("We should stop testing, since we don't have a db.");
+			assertTrue(false);
 		}
 	}
 	
 	private static void runAfterAllTests() {		
-		try {			
-			HsqldbUtil.stopHsqldb(Configuration.getStoreUrl(),
+		try {
+			if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver"))
+				HsqldbUtil.stopHsqldb(Configuration.getStoreUrl(),
 					Configuration.getStoreUser(),Configuration.getStorePwd() );
 		} catch (Exception e) {			// 
 			e.printStackTrace();
 		}
-	}	
+	}
+	
+	/**
+     * Read the file into a String.
+     * @param file - the file to be read
+     * @return String with the content of the file
+     * @throws IOException - when we can't read the file
+     */
+    public static String readTextFile(File file) throws IOException 
+    {
+        StringBuffer sb = new StringBuffer(1024);
+        BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+        char[] chars = new char[1];
+        while( (reader.read(chars)) > -1){
+            sb.append(String.valueOf(chars)); 
+            chars = new char[1];
+        }
+        reader.close();
+        return sb.toString();
+    }
+    
+    
 
 }

Modified: labs/jbossesb/trunk/product/etc/test/resources/jbossesb-unittest-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/etc/test/resources/jbossesb-unittest-properties.xml	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/product/etc/test/resources/jbossesb-unittest-properties.xml	2006-10-28 03:09:38 UTC (rev 7184)
@@ -58,11 +58,19 @@
     	<property name="abandoned-connection-time-interval" value="30000"/>
     </properties>
     <properties name="dbstore">
-		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/jbossesb"/>
-		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
-		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
-		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.validate.sql" 	value="select count(*) from message"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.size"	 	value="5"/>		
+		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:postgresql://localhost:5432/jbossesb"/>
+		<!-- Hypersonic: value="jdbc:hsqldb:hsql://localhost:1701" -->
+		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.postgresql.Driver"/>
+		<!-- Hypersonic: value="org.hsqldb.jdbcDriver" -->
+		<property name="org.jboss.soa.esb.persistence.db.user" 			value="postgres"/>
+		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value="postgres"/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
+		<!--table managed by pool to test for valid connections - created by pool automatically -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
+		<!-- # of milliseconds to timeout waiting for a connection from pool -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
+
     </properties>
 </esb>

Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -26,12 +26,12 @@
 import java.util.Vector;
 
 import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.format.MessageType;
-import org.jboss.soa.esb.persistence.MessageStore;
-import org.jboss.soa.esb.persistence.MessageStoreFactory;
-import org.jboss.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
 
 
 

Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -32,14 +32,14 @@
 import junit.framework.TestCase;
 
 import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
 import org.jboss.internal.soa.esb.persistence.format.db.DBConnectionManager;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.format.MessageType;
-import org.jboss.soa.esb.persistence.MessageStore;
-import org.jboss.soa.esb.persistence.MessageStoreFactory;
-import org.jboss.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
 
 /**
  * @author dbrum

Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -27,13 +27,13 @@
 import java.util.Random;
 
 import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.format.MessageType;
-import org.jboss.soa.esb.persistence.MessageStore;
-import org.jboss.soa.esb.persistence.MessageStoreFactory;
-import org.jboss.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
 
 import junit.framework.TestCase;
 

Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java	2006-10-27 19:37:54 UTC (rev 7183)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java	2006-10-28 03:09:38 UTC (rev 7184)
@@ -21,9 +21,11 @@
  */
 package org.jboss.soa.esb.util;
 
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileFilter;
 import java.io.FileOutputStream;
+import java.io.FileReader;
 import java.io.IOException;
 import java.util.regex.Pattern;
 
@@ -214,4 +216,23 @@
 		}
 		TestCaseUtils.logAndFail("File [" + file.getAbsolutePath() + "] can't be deleted - a handle on it (or one of its children) may be open.  Waited " + maxWait + "ms", logger, new Exception());
 	}
+	
+	/**
+     * Read the file into a String.
+     * @param file - the file to be read
+     * @return String with the content of the file
+     * @throws IOException - when we can't read the file
+     */
+    public static String readTextFile(File file) throws IOException 
+    {
+        StringBuffer sb = new StringBuffer(1024);
+        BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+        char[] chars = new char[1];
+        while( (reader.read(chars)) > -1){
+            sb.append(String.valueOf(chars)); 
+            chars = new char[1];
+        }
+        reader.close();
+        return sb.toString();
+    }
 }




More information about the jboss-svn-commits mailing list