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]

Reply via email to