You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2006/09/26 12:05:37 UTC
svn commit: r449970 [2/2] - in
/incubator/tuscany/sandbox/rajith/binding.jms: ./ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/tuscany/ src/main/java/org/apache/tuscany/binding/
src/main/java/org/ap...
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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org