jstrachan 01/08/24 08:37:13
Modified: messenger build.properties.sample build.xml
Added: messenger/src/java/org/apache/commons/messenger
PoolingMessenger.java
ServerSessionPoolMessenger.java
Log:
Added default implementations based on optional ServerSessionPool and Jakarta
Commons Pool implementations
Revision Changes Path
1.2 +2 -2 jakarta-commons-sandbox/messenger/build.properties.sample
Index: build.properties.sample
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/messenger/build.properties.sample,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- build.properties.sample 2001/08/24 14:20:28 1.1
+++ build.properties.sample 2001/08/24 15:37:13 1.2
@@ -4,6 +4,6 @@
# jms.jar
jms.jar=/java/jms/jms.jar
-# jakarta-commons-pool.jar
-pool.jar=../../jakarta-commons/collections/dist/commons-pool.jar
+# jakarta commons-pool.jar
+pool.jar=../../jakarta-commons/pool/dist/commons-pool.jar
1.2 +2 -2 jakarta-commons-sandbox/messenger/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/messenger/build.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- build.xml 2001/08/24 14:20:28 1.1
+++ build.xml 2001/08/24 15:37:13 1.2
@@ -1,4 +1,4 @@
-<!-- $Id: build.xml,v 1.1 2001/08/24 14:20:28 jstrachan Exp $ -->
+<!-- $Id: build.xml,v 1.2 2001/08/24 15:37:13 jstrachan Exp $ -->
<project name="messenger" default="test" basedir=".">
<!-- patternset describing files to be copied from the doc directory -->
@@ -42,7 +42,7 @@
<property name="cp" value=""/>
<!-- now combine the classpaths -->
- <property name="classpath" value="${cp}:${jms.jar}:${junit.jar}"/>
+ <property name="classpath"
value="${cp}:${jms.jar}:${pool.jar}:${junit.jar}"/>
<property name="name" value="messenger"/>
<property name="Name" value="Messenger"/>
1.1
jakarta-commons-sandbox/messenger/src/java/org/apache/commons/messenger/PoolingMessenger.java
Index: PoolingMessenger.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*
* $Id: PoolingMessenger.java,v 1.1 2001/08/24 15:37:13 jstrachan Exp $
*/
package org.apache.commons.messenger;
import java.io.Serializable;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.PoolableObjectFactory;
import org.apache.commons.pool.impl.GenericObjectPool;
/** <p><code>PoolingMessenger</code> is a Messenger which uses the
* Jakarta Commons Pool to pool JMS Sessions.</p>
*
* @author <a href="mailto:[EMAIL PROTECTED]">James Strachan</a>
* @version $Revision: 1.1 $
*/
public class PoolingMessenger extends MessengerSupport {
/** the session pool */
private ObjectPool sessionPool;
public PoolingMessenger(PoolableObjectFactory sessionFactory) {
sessionPool = createSessionPool( sessionFactory );
}
public PoolingMessenger(ObjectPool sessionPool) {
this.sessionPool = sessionPool;
}
public ObjectPool getSessionPool() {
return sessionPool;
}
public void setSessionPool(ObjectPool sessionPool) {
this.sessionPool = sessionPool;
}
// Implementation methods
//-------------------------------------------------------------------------
protected Session borrowSession() {
return (Session) sessionPool.borrowObject();
}
protected void returnSession(Session session) {
sessionPool.returnObject(session);
}
protected ObjectPool createSessionPool(PoolableObjectFactory sessionFactory) {
return new GenericObjectPool( sessionFactory );
}
protected PoolableObjectFactory createSessionFactory(Connection connection) {
return null;
}
}
1.1
jakarta-commons-sandbox/messenger/src/java/org/apache/commons/messenger/ServerSessionPoolMessenger.java
Index: ServerSessionPoolMessenger.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*
* $Id: ServerSessionPoolMessenger.java,v 1.1 2001/08/24 15:37:13 jstrachan Exp $
*/
package org.apache.commons.messenger;
import java.io.Serializable;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.ServerSession;
import javax.jms.ServerSessionPool;
/** <p><code>ServerSessionPoolMessenger</code> is a Messenger which uses the
* optional ServerSessionPool to implement session based pooling.</p>
*
* @author <a href="mailto:[EMAIL PROTECTED]">James Strachan</a>
* @version $Revision: 1.1 $
*/
public class ServerSessionPoolMessenger extends MessengerSupport {
/** the session pool */
private ServerSessionPool sessionPool;
public ServerSessionPoolMessenger() {
}
public ServerSessionPoolMessenger(ServerSessionPool sessionPool) {
this.sessionPool = sessionPool;
}
public ServerSessionPool getServerSessionPool() {
return sessionPool;
}
public void setServerSessionPool(ServerSessionPool sessionPool) {
this.sessionPool = sessionPool;
}
// Implementation methods
//-------------------------------------------------------------------------
protected Session borrowSession() throws JMSException {
ServerSession serverSession = sessionPool.getServerSession();
return serverSession.getSession();
}
protected void returnSession(Session session) throws JMSException {
}
}