[jboss-svn-commits] JBL Code SVN: r10662 - in labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src: test/java/org/jboss/soa/esb/oracle/aq and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 30 18:15:13 EDT 2007
Author: kurt.stam at jboss.com
Date: 2007-03-30 18:15:13 -0400 (Fri, 30 Mar 2007)
New Revision: 10662
Modified:
labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQContext.java
labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java
labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/DatasourceTest.java
labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/QueueTest.java
Log:
Work in progress.
Modified: labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQContext.java
===================================================================
--- labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQContext.java 2007-03-30 20:59:08 UTC (rev 10661)
+++ labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQContext.java 2007-03-30 22:15:13 UTC (rev 10662)
@@ -103,7 +103,7 @@
} else {
this.environment = (Hashtable<String,Object>)environment;
}
- this.bindings = new HashMap<String,Object>();
+ this.bindings = bindings;
this.treeBindings = new HashMap<String,Object>();
frozen = true;
}
Modified: labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java
===================================================================
--- labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java 2007-03-30 20:59:08 UTC (rev 10661)
+++ labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java 2007-03-30 22:15:13 UTC (rev 10662)
@@ -185,15 +185,15 @@
}
}
- public void init() {
+ public void init(Hashtable<?, ?> env) {
- dbuser = "kurt";
- dbpass = "kurt";
- aqServerName = "barentz";
- aqServerDBInst = "OSC";
- aqServerPort = "1521";
- aqDBDriver = "thin";
- aqSchemaName = "kurt";
+ dbuser = (String) env.get(AQInitialContextFactory.DB_USER);
+ dbpass = (String) env.get(AQInitialContextFactory.DB_PASSWD);
+ aqServerName = (String) env.get(AQInitialContextFactory.DB_SERVER);
+ aqServerDBInst = (String) env.get(AQInitialContextFactory.DB_INSTANCE);
+ aqServerPort = (String) env.get(AQInitialContextFactory.DB_PORT);
+ aqDBDriver = (String) env.get(AQInitialContextFactory.DB_DRIVER);
+ aqSchemaName = (String) env.get(AQInitialContextFactory.DB_SCHEMA);
try {
aqServerPortNumber = Integer.parseInt(aqServerPort);
} catch (Exception e) {
@@ -204,10 +204,7 @@
@SuppressWarnings("unused")
public Context getInitialContext(Hashtable<?,?> environment) throws NamingException {
Map<String, Object> data = new ConcurrentHashMap<String, Object>();
- if (environment!=null) {
- //TODO read the properties
- }
- init();
+ init(environment);
createDestinationContext(data);
return new AQContext(environment, data);
}
Modified: labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/DatasourceTest.java
===================================================================
--- labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/DatasourceTest.java 2007-03-30 20:59:08 UTC (rev 10661)
+++ labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/DatasourceTest.java 2007-03-30 22:15:13 UTC (rev 10662)
@@ -4,26 +4,17 @@
package org.jboss.soa.esb.oracle.aq;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import java.io.FileInputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
-import java.util.Iterator;
-import java.util.List;
import java.util.Properties;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.Session;
import javax.sql.DataSource;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertFalse;
-
-
-import oracle.jms.AQjmsFactory;
-import oracle.jms.AQjmsSession;
-
import org.junit.Before;
import org.junit.Test;
@@ -66,15 +57,20 @@
{
DataSource ds = null;
System.out.println("Building our db connection");
+ Connection connection=null;
try {
ds = AQUtil.getSQLDataSource(server, instance, port, driver, user, password);
- Connection connection = ds.getConnection();
+ connection = ds.getConnection();
CallableStatement statement = connection.prepareCall("Select * from DUAL");
statement.execute();
- connection.close();
} catch (Throwable e) {
e.printStackTrace();
assertTrue(false);
+ } finally {
+ if (connection!=null) {
+ try { connection.close();
+ } catch (Exception e) {}
+ }
}
}
Modified: labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/QueueTest.java
===================================================================
--- labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/QueueTest.java 2007-03-30 20:59:08 UTC (rev 10661)
+++ labs/jbossesb/trunk/plugins/org.jboss.soa.esb.oracle.aq/src/test/java/org/jboss/soa/esb/oracle/aq/QueueTest.java 2007-03-30 22:15:13 UTC (rev 10662)
@@ -4,23 +4,28 @@
package org.jboss.soa.esb.oracle.aq;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import java.io.FileInputStream;
-import java.sql.CallableStatement;
-import java.sql.Connection;
+import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.naming.Context;
import javax.sql.DataSource;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertFalse;
-
-
import oracle.jms.AQjmsFactory;
import oracle.jms.AQjmsSession;
@@ -34,6 +39,7 @@
public class QueueTest
{
private final static String Q_NAME = "q.name";
+ private final static String MESSAGE_CONTENT="Oracle AQ message content";
private String user, password, server, instance, schema, driver, portStr, qName;
private int port;
/**
@@ -56,7 +62,6 @@
assertNotNull(driver);
assertNotNull(qName);
}
-
/**
* Tries to make a queueConnection to Oracle using the properties in the
* oracle-aq.properties file.
@@ -65,25 +70,31 @@
@Test
public void createQueueConnection()
{
- DataSource ds = null;
+ QueueConnection queueConnection = null;
+ Session session = null;
System.out.println("Building our own db connection");
try {
- ds = AQUtil.getSQLDataSource(server, instance, port, driver, user, password);
+ DataSource ds = AQUtil.getSQLDataSource(server, instance, port, driver, user, password);
QueueConnectionFactory queueFactory = AQjmsFactory.getQueueConnectionFactory(ds);
- QueueConnection queueConnection = queueFactory.createQueueConnection();
+ queueConnection = queueFactory.createQueueConnection();
assertNotNull(queueConnection);
- Session session = (AQjmsSession) queueConnection.createQueueSession(false,
+ session = (AQjmsSession) queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
assertNotNull(session);
- session.close();
- queueConnection.close();
-
} catch (Throwable e) {
e.printStackTrace();
assertTrue(false);
+ } finally {
+ if (session!=null) {
+ try { session.close();
+ } catch (Exception e) {}
+ }
+ if (queueConnection!=null) {
+ try { queueConnection.close();
+ } catch (Exception e) {}
+ }
}
}
-
/**
* Tries to locate the specified Q in Oracle using the properties in the
* oracle-aq.properties file.
@@ -93,14 +104,15 @@
public void findGivenQueue()
{
boolean foundQueue=false;
- DataSource ds = null;
+ QueueConnection queueConnection = null;
+ Session session = null;
System.out.println("Building our own db connection");
try {
- ds = AQUtil.getSQLDataSource(server, instance, port, driver, user, password);
+ DataSource ds = AQUtil.getSQLDataSource(server, instance, port, driver, user, password);
QueueConnectionFactory queueFactory = AQjmsFactory.getQueueConnectionFactory(ds);
- QueueConnection queueConnection = queueFactory.createQueueConnection();
+ queueConnection = queueFactory.createQueueConnection();
assertNotNull(queueConnection);
- Session session = (AQjmsSession) queueConnection.createQueueSession(false,
+ session = (AQjmsSession) queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
assertNotNull(session);
@@ -112,20 +124,139 @@
System.out.println("Found Destination: " + di.getQueueName());
// register normal queue
if (di.getQueueName().equalsIgnoreCase(qName)) {
- System.out.println("Matched up Queue: " + di.getQueueName() + " with " + qName);
+ System.out.println("Matched up given Queue: " + qName + " with " + di.getQueueName());
foundQueue=true;
}
}
-
- session.close();
- queueConnection.close();
assertTrue(foundQueue);
} catch (Throwable e) {
e.printStackTrace();
assertTrue(false);
+ } finally {
+ if (session!=null) {
+ try { session.close();
+ } catch (Exception e) {}
+ }
+ if (queueConnection!=null) {
+ try { queueConnection.close();
+ } catch (Exception e) {}
+ }
}
}
+ /**
+ * Sends a message to the specified Q in Oracle and receives the same message.
+ */
+ public void drainQueue()
+ {
+ QueueConnection connection = null;
+ QueueSession session = null;
+ MessageConsumer messageConsumer = null;
+ try {
+ Hashtable<String,String> env = new Hashtable<String, String>();
+ env.put(AQInitialContextFactory.DB_SERVER, server);
+ env.put(AQInitialContextFactory.DB_INSTANCE, instance);
+ env.put(AQInitialContextFactory.DB_PORT, portStr);
+ env.put(AQInitialContextFactory.DB_USER, user);
+ env.put(AQInitialContextFactory.DB_PASSWD, password);
+ env.put(AQInitialContextFactory.DB_SCHEMA, schema);
+ env.put(AQInitialContextFactory.DB_DRIVER, driver);
+
+ AQInitialContextFactory factory = new AQInitialContextFactory();
+ Context context = factory.getInitialContext(env);
+ QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)
+ context.lookup(AQInitialContextFactory.QUEUE_CONNECTION_FACTORY);
+ connection = queueConnectionFactory.createQueueConnection();
+ session = connection.createQueueSession(false,
+ QueueSession.AUTO_ACKNOWLEDGE);
+ Queue queue = (Queue) context.lookup(qName);
+ messageConsumer = session.createReceiver(queue);
+ connection.start();
+ TextMessage receiveMessage = session.createTextMessage(MESSAGE_CONTENT);
+ while (receiveMessage!=null) {
+ receiveMessage = (TextMessage) messageConsumer.receive(10);
+ if (receiveMessage!=null) System.out.println("Drain:" + receiveMessage.getText());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ assertTrue(false);
+ } finally {
+ if (messageConsumer!=null) {
+ try { messageConsumer.close();
+ } catch (Exception e) {}
+ }
+ if (session!=null) {
+ try { session.close();
+ } catch (Exception e) {}
+ }
+ if (connection!=null) {
+ try { connection.close();
+ } catch (Exception e) {}
+ }
+ }
+ }
+ /**
+ * Sends a message to the specified Q in Oracle and receives the same message.
+ */
+ @Test
+ public void sendAndReceiveMessage()
+ {
+ drainQueue();
+ QueueConnection connection = null;
+ QueueSession session = null;
+ MessageProducer messageProducer = null;
+ MessageConsumer messageConsumer = null;
+ try {
+ Hashtable<String,String> env = new Hashtable<String, String>();
+ env.put(AQInitialContextFactory.DB_SERVER, server);
+ env.put(AQInitialContextFactory.DB_INSTANCE, instance);
+ env.put(AQInitialContextFactory.DB_PORT, portStr);
+ env.put(AQInitialContextFactory.DB_USER, user);
+ env.put(AQInitialContextFactory.DB_PASSWD, password);
+ env.put(AQInitialContextFactory.DB_SCHEMA, schema);
+ env.put(AQInitialContextFactory.DB_DRIVER, driver);
+
+ AQInitialContextFactory factory = new AQInitialContextFactory();
+ Context context = factory.getInitialContext(env);
+ QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)
+ context.lookup(AQInitialContextFactory.QUEUE_CONNECTION_FACTORY);
+ connection = queueConnectionFactory.createQueueConnection();
+ session = connection.createQueueSession(false,
+ QueueSession.AUTO_ACKNOWLEDGE);
+ Queue queue = (Queue) context.lookup(qName);
+ messageProducer = session.createSender(queue);
+ messageConsumer = session.createReceiver(queue);
+ connection.start();
+ TextMessage sendMessage = session.createTextMessage(MESSAGE_CONTENT);
+ messageProducer.send(sendMessage);
+ TextMessage receiveMessage = (TextMessage) messageConsumer.receive(2000);
+ String receiveContent = receiveMessage.getText();
+ assertEquals(MESSAGE_CONTENT, receiveContent);
+
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ assertTrue(false);
+ } finally {
+ if (messageProducer!=null) {
+ try { messageProducer.close();
+ } catch (Exception e) {}
+ }
+ if (messageConsumer!=null) {
+ try { messageConsumer.close();
+ } catch (Exception e) {}
+ }
+ if (session!=null) {
+ try { session.close();
+ } catch (Exception e) {}
+ }
+ if (connection!=null) {
+ try { connection.close();
+ } catch (Exception e) {}
+ }
+ }
+ }
@Before
public void readProperyFile() {
More information about the jboss-svn-commits
mailing list