Added:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/java/org/apache/tuscany/binding/jms/SimpleJMSResourceFactory.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rajith/binding.jms/src/main/java/org/apache/tuscany/binding/jms/SimpleJMSResourceFactory.java?view=auto&rev=449970
==============================================================================
---
incubator/tuscany/sandbox/rajith/binding.jms/src/main/java/org/apache/tuscany/binding/jms/SimpleJMSResourceFactory.java
(added)
+++
incubator/tuscany/sandbox/rajith/binding.jms/src/main/java/org/apache/tuscany/binding/jms/SimpleJMSResourceFactory.java
Tue Sep 26 03:05:35 2006
@@ -0,0 +1,95 @@
+package org.apache.tuscany.binding.jms;
+
+import java.util.Properties;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.Session;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+public class SimpleJMSResourceFactory implements JMSResourceFactory {
+
+ private JMSBinding jmsBinding;
+ private Connection con;
+ private Context context;
+ private boolean isConnectionStarted;
+
+ public SimpleJMSResourceFactory(JMSBinding jmsBinding){
+ this.jmsBinding = jmsBinding;
+ }
+
+ /*
+ * This is a simple implementation where a connection is created per
binding
+ * Ideally the resource factory should be able to leverage the host
environment
+ * to provide connection pooling if it can.
+ *
+ * For ex If Tuscany is running inside an AppServer
+ * Then we could leverage the JMS resources it provides
+ *
+ * @see
org.apache.tuscany.binding.jms.JMSResourceFactory#getConnection()
+ */
+ public Connection getConnection() throws NamingException, JMSException{
+ if (con == null){
+ createConnection();
+ }
+ return con;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.tuscany.binding.jms.JMSResourceFactory#createSession()
+ */
+ public Session createSession() throws JMSException, NamingException{
+ return getConnection().createSession(false,
Session.AUTO_ACKNOWLEDGE);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.tuscany.binding.jms.JMSResourceFactory#startConnection()
+ */
+ public void startConnection() throws JMSException, NamingException{
+ if(!isConnectionStarted){
+ getConnection().start();
+ isConnectionStarted = true;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.tuscany.binding.jms.JMSResourceFactory#closeConnection()
+ */
+ public void closeConnection() throws JMSException, NamingException{
+ if(con != null){
+ con.close();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.tuscany.binding.jms.JMSResourceFactory#createTextMessage(javax.jms.Session)
+ */
+ public Message createMessage(Session session) throws JMSException{
+ javax.jms.Message message = session.createTextMessage(); //
default
+ message.setJMSDeliveryMode(jmsBinding.getDeliveryMode());
+ message.setJMSPriority(jmsBinding.getPriority());
+
+ return message;
+ }
+
+ private void createConnection() throws NamingException, JMSException {
+ if(context == null){
+ createInitialContext();
+ }
+ ConnectionFactory conFac =
(ConnectionFactory)context.lookup(jmsBinding.getConnectionFactoryName());
+ con = conFac.createConnection();
+ }
+
+ private void createInitialContext() throws NamingException{
+ Properties props = new Properties();
+
props.setProperty(Context.INITIAL_CONTEXT_FACTORY,jmsBinding.getInitialContextFactoryName());
+ props.setProperty(Context.PROVIDER_URL,jmsBinding.getJNDIProviderURL());
+
+ context = new InitialContext(props);
+ }
+
+}
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/java/org/apache/tuscany/binding/jms/SimpleJMSResourceFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/java/org/apache/tuscany/binding/jms/SimpleJMSResourceFactory.java
------------------------------------------------------------------------------
--- svn:ignores (added)
+++ svn:ignores Tue Sep 26 03:05:35 2006
@@ -0,0 +1,14 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/java/org/apache/tuscany/binding/jms/SimpleJMSResourceFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/
------------------------------------------------------------------------------
--- svn:ignores (added)
+++ svn:ignores Tue Sep 26 03:05:35 2006
@@ -0,0 +1,14 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/
------------------------------------------------------------------------------
--- svn:ignores (added)
+++ svn:ignores Tue Sep 26 03:05:35 2006
@@ -0,0 +1,14 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/
------------------------------------------------------------------------------
--- svn:ignores (added)
+++ svn:ignores Tue Sep 26 03:05:35 2006
@@ -0,0 +1,14 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+
Added:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/default.scdl
URL:
http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/default.scdl?view=auto&rev=449970
==============================================================================
---
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/default.scdl
(added)
+++
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/default.scdl
Tue Sep 26 03:05:35 2006
@@ -0,0 +1,16 @@
+<composite name="org.apache.tuscany.binding.jms.JMSBinding">
+ <tuscany:dependency>
+ <group>org.apache.activemq</group>
+ <artifact>activemq-core</artifact>
+ <version>SNAPSHOT</version>
+ </tuscany:dependency>
+
+ <component name="jms.bindingLoader">
+ <system:implementation.system
class="org.apache.tuscany.binding.jms.JMSBindingLoader"/>
+ </component>
+
+ <component name="jms.bindingBuilder">
+ <system:implementation.system
class="org.apache.tuscany.binding.jms.JMSBindingBuilder"/>
+ </component>
+
+</composite>
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/default.scdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/default.scdl
------------------------------------------------------------------------------
--- svn:ignores (added)
+++ svn:ignores Tue Sep 26 03:05:35 2006
@@ -0,0 +1,14 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+
Propchange:
incubator/tuscany/sandbox/rajith/binding.jms/src/main/resources/META-INF/sca/default.scdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]