You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/08/07 15:34:53 UTC
svn commit: r1370257 - in /camel/trunk/components/camel-sjms: ./
src/main/java/org/apache/camel/component/sjms/
src/main/java/org/apache/camel/component/sjms/consumer/
src/main/java/org/apache/camel/component/sjms/jms/
src/main/java/org/apache/camel/co...
Author: ningjiang
Date: Tue Aug 7 13:34:52 2012
New Revision: 1370257
URL: http://svn.apache.org/viewvc?rev=1370257&view=rev
Log:
CAMEL-5486 ConnectionResource Refactoring and OSGi Export Fix
Added:
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResource.java
- copied, changed from r1370255, camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/DefaultConnectionResource.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionResource.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ObjectPool.java
- copied, changed from r1370255, camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/ObjectPool.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/SessionPool.java
- copied, changed from r1370255, camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/SessionPool.java
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResourceTest.java
- copied, changed from r1370255, camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/DefaultConnectionResourceTest.java
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ObjectPoolTest.java
- copied, changed from r1370255, camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/ObjectPoolTest.java
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/SessionPoolTest.java
- copied, changed from r1370255, camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/SessionPoolTest.java
Removed:
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/ConnectionResource.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/DefaultConnectionResource.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/ObjectPool.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/SessionPool.java
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/DefaultConnectionResourceTest.java
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/ObjectPoolTest.java
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/SessionPoolTest.java
Modified:
camel/trunk/components/camel-sjms/pom.xml
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/IllegalHeaderException.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessageConsumer.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/DefaultConsumer.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/producer/InOutProducer.java
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOnlyTopicDurableConsumerTest.java
Modified: camel/trunk/components/camel-sjms/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/pom.xml?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/pom.xml (original)
+++ camel/trunk/components/camel-sjms/pom.xml Tue Aug 7 13:34:52 2012
@@ -31,13 +31,14 @@
<artifactId>camel-sjms</artifactId>
<packaging>bundle</packaging>
- <name>Camel :: Simple JMS</name>
+ <name>Camel :: SJMS</name>
<description>A pure Java JMS Camel Component</description>
<properties>
<camel.osgi.export.pkg>
- org.apache.camel.component.sjms
+ org.apache.camel.component.sjms,
+ org.apache.camel.component.sjms.jms
</camel.osgi.export.pkg>
<camel.osgi.import.pkg>
!org.apache.camel.component.sjms.*,
@@ -46,8 +47,6 @@
</camel.osgi.import.pkg>
<camel.osgi.private.pkg>
org.apache.camel.component.sjms.consumer,
- org.apache.camel.component.sjms.jms,
- org.apache.camel.component.sjms.pool,
org.apache.camel.component.sjms.producer,
org.apache.camel.component.sjms.tx
</camel.osgi.private.pkg>
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/IllegalHeaderException.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/IllegalHeaderException.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/IllegalHeaderException.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/IllegalHeaderException.java Tue Aug 7 13:34:52 2012
@@ -19,55 +19,37 @@ package org.apache.camel.component.sjms;
import org.apache.camel.RuntimeCamelException;
/**
- * TODO Add Class documentation for IllegalHeaderException
- *
+ * IllegalHeaderException is thrown if a header is detected that doesn't meet
+ * the JMS standard.
*/
public class IllegalHeaderException extends RuntimeCamelException {
/**
- *
- */
- private static final long serialVersionUID = 1084936154059689378L;
-
- /**
- * TODO Add Constructor Javadoc
- *
*/
public IllegalHeaderException() {
super();
- // TODO Auto-generated constructor stub
}
/**
- * TODO Add Constructor Javadoc
- *
* @param message
* @param cause
*/
public IllegalHeaderException(String message, Throwable cause) {
super(message, cause);
- // TODO Auto-generated constructor stub
}
/**
- * TODO Add Constructor Javadoc
- *
* @param message
*/
public IllegalHeaderException(String message) {
super(message);
- // TODO Auto-generated constructor stub
}
/**
- * TODO Add Constructor Javadoc
- *
* @param cause
*/
public IllegalHeaderException(Throwable cause) {
super(cause);
- // TODO Auto-generated constructor stub
}
-
}
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java Tue Aug 7 13:34:52 2012
@@ -23,12 +23,12 @@ import javax.jms.ConnectionFactory;
import org.apache.camel.CamelException;
import org.apache.camel.Endpoint;
import org.apache.camel.ExchangePattern;
-import org.apache.camel.component.sjms.pool.DefaultConnectionResource;
+import org.apache.camel.component.sjms.jms.ConnectionFactoryResource;
+import org.apache.camel.component.sjms.jms.ConnectionResource;
import org.apache.camel.impl.DefaultComponent;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.spi.HeaderFilterStrategyAware;
import org.apache.camel.util.ObjectHelper;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,8 +45,9 @@ public class SjmsComponent extends Defau
private Integer maxConnections = 1;
/*
- * @see org.apache.camel.impl.DefaultComponent#createEndpoint(java.lang.String, java.lang.String, java.util.Map)
- *
+ * @see
+ * org.apache.camel.impl.DefaultComponent#createEndpoint(java.lang.String,
+ * java.lang.String, java.util.Map)
* @param uri The value passed into our call to create an endpoint
* @param remaining
* @param parameters
@@ -54,8 +55,7 @@ public class SjmsComponent extends Defau
* @throws Exception
*/
@Override
- protected Endpoint createEndpoint(String uri, String remaining,
- Map<String, Object> parameters) throws Exception {
+ protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
validateMepAndReplyTo(parameters);
uri = normalizeUri(uri);
SjmsEndpoint endpoint = new SjmsEndpoint(uri, this);
@@ -115,11 +115,7 @@ public class SjmsComponent extends Defau
if (!parameters.get("exchangePattern").equals(ExchangePattern.InOut.toString())) {
String namedReplyTo = (String)parameters.get("namedReplyTo");
ExchangePattern mep = ExchangePattern.valueOf((String)parameters.get("exchangePattern"));
- throw new CamelException(
- "Setting parameter namedReplyTo="
- + namedReplyTo
- + " requires a MEP of type InOut. Parameter exchangePattern is set to "
- + mep);
+ throw new CamelException("Setting parameter namedReplyTo=" + namedReplyTo + " requires a MEP of type InOut. Parameter exchangePattern is set to " + mep);
}
}
}
@@ -130,22 +126,21 @@ public class SjmsComponent extends Defau
LOGGER.debug("Verify ConnectionResource");
if (getConnectionResource() == null) {
- LOGGER.debug("No ConnectionResource provided. Initialize the DefaultConnectionResource.");
+ LOGGER.debug("No ConnectionResource provided. Initialize the ConnectionFactoryResource.");
// We always use a connection pool, even for a pool of 1
- DefaultConnectionResource connections = new DefaultConnectionResource(getMaxConnections(),
- getConnectionFactory());
+ ConnectionFactoryResource connections = new ConnectionFactoryResource(getMaxConnections(), getConnectionFactory());
connections.fillPool();
setConnectionResource(connections);
- } else if (getConnectionResource() instanceof DefaultConnectionResource) {
- ((DefaultConnectionResource)getConnectionResource()).fillPool();
+ } else if (getConnectionResource() instanceof ConnectionFactoryResource) {
+ ((ConnectionFactoryResource)getConnectionResource()).fillPool();
}
}
@Override
protected void doStop() throws Exception {
if (getConnectionResource() != null) {
- if (getConnectionResource() instanceof DefaultConnectionResource) {
- ((DefaultConnectionResource)getConnectionResource()).drainPool();
+ if (getConnectionResource() instanceof ConnectionFactoryResource) {
+ ((ConnectionFactoryResource)getConnectionResource()).drainPool();
}
}
super.doStop();
@@ -155,8 +150,8 @@ public class SjmsComponent extends Defau
* Sets the ConnectionFactory value of connectionFactory for this instance
* of SjmsComponent.
*
- * @param connectionFactory
- * Sets ConnectionFactory, default is TODO add default
+ * @param connectionFactory Sets ConnectionFactory, default is TODO add
+ * default
*/
public void setConnectionFactory(ConnectionFactory connectionFactory) {
this.connectionFactory = connectionFactory;
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java Tue Aug 7 13:34:52 2012
@@ -21,7 +21,8 @@ import java.util.UUID;
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
-import org.apache.camel.component.sjms.pool.SessionPool;
+import org.apache.camel.component.sjms.jms.ConnectionResource;
+import org.apache.camel.component.sjms.jms.SessionPool;
import org.apache.camel.impl.DefaultConsumer;
/**
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java Tue Aug 7 13:34:52 2012
@@ -24,8 +24,9 @@ import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.component.sjms.consumer.DefaultConsumer;
+import org.apache.camel.component.sjms.jms.ConnectionResource;
import org.apache.camel.component.sjms.jms.SessionAcknowledgementType;
-import org.apache.camel.component.sjms.pool.SessionPool;
+import org.apache.camel.component.sjms.jms.SessionPool;
import org.apache.camel.component.sjms.producer.InOnlyProducer;
import org.apache.camel.component.sjms.producer.InOutProducer;
import org.apache.camel.impl.DefaultEndpoint;
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessageConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessageConsumer.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessageConsumer.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessageConsumer.java Tue Aug 7 13:34:52 2012
@@ -21,7 +21,8 @@ import java.util.concurrent.Exchanger;
import javax.jms.Message;
import javax.jms.MessageListener;
-import org.apache.camel.component.sjms.pool.SessionPool;
+import org.apache.camel.component.sjms.jms.ConnectionResource;
+import org.apache.camel.component.sjms.jms.SessionPool;
/**
* TODO Add Class documentation for SjmsMessageConsumer
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java Tue Aug 7 13:34:52 2012
@@ -24,7 +24,8 @@ import javax.jms.Session;
import org.apache.camel.AsyncCallback;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
-import org.apache.camel.component.sjms.pool.ObjectPool;
+import org.apache.camel.component.sjms.jms.ConnectionResource;
+import org.apache.camel.component.sjms.jms.ObjectPool;
import org.apache.camel.impl.DefaultAsyncProducer;
import org.apache.camel.util.ObjectHelper;
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/DefaultConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/DefaultConsumer.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/DefaultConsumer.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/DefaultConsumer.java Tue Aug 7 13:34:52 2012
@@ -28,7 +28,7 @@ import org.apache.camel.Processor;
import org.apache.camel.component.sjms.SjmsConsumer;
import org.apache.camel.component.sjms.SjmsEndpoint;
import org.apache.camel.component.sjms.jms.JmsObjectFactory;
-import org.apache.camel.component.sjms.pool.ObjectPool;
+import org.apache.camel.component.sjms.jms.ObjectPool;
import org.apache.camel.component.sjms.tx.SessionTransactionSynchronization;
/**
Copied: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResource.java (from r1370255, camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/DefaultConnectionResource.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResource.java?p2=camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResource.java&p1=camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/DefaultConnectionResource.java&r1=1370255&r2=1370257&rev=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/DefaultConnectionResource.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResource.java Tue Aug 7 13:34:52 2012
@@ -14,29 +14,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.component.sjms.pool;
+package org.apache.camel.component.sjms.jms;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
-import org.apache.camel.component.sjms.ConnectionResource;
import org.apache.camel.util.ObjectHelper;
/**
- * TODO Add Class documentation for DefaultConnectionResource
- *
+ * The default {@link ConnectionResource} implementation for the SJMSComponent.
*/
-public class DefaultConnectionResource extends ObjectPool<Connection> implements ConnectionResource {
+public class ConnectionFactoryResource extends ObjectPool<Connection> implements ConnectionResource {
private ConnectionFactory connectionFactory;
private String username;
private String password;
- private String connectionId;
+ private String clientId;
/**
- * TODO Add Constructor Javadoc
- *
+ * Default Constructor
*/
- public DefaultConnectionResource() {
+ public ConnectionFactoryResource() {
super();
}
@@ -46,19 +43,17 @@ public class DefaultConnectionResource e
* @param poolSize
* @param connectionFactory
*/
- public DefaultConnectionResource(int poolSize, ConnectionFactory connectionFactory) {
+ public ConnectionFactoryResource(int poolSize, ConnectionFactory connectionFactory) {
this(poolSize, connectionFactory, null, null);
}
/**
- * TODO Add Constructor Javadoc
- *
* @param poolSize
* @param connectionFactory
* @param username
* @param password
*/
- public DefaultConnectionResource(int poolSize, ConnectionFactory connectionFactory, String username, String password) {
+ public ConnectionFactoryResource(int poolSize, ConnectionFactory connectionFactory, String username, String password) {
super(poolSize);
this.connectionFactory = connectionFactory;
this.username = username;
@@ -66,31 +61,29 @@ public class DefaultConnectionResource e
}
/**
- * TODO Add Constructor Javadoc
- *
* @param poolSize
* @param connectionFactory
* @param username
* @param password
*/
- public DefaultConnectionResource(int poolSize, ConnectionFactory connectionFactory, String username, String password, String connectionId) {
+ public ConnectionFactoryResource(int poolSize, ConnectionFactory connectionFactory, String username, String password, String connectionId) {
super(poolSize);
this.connectionFactory = connectionFactory;
this.username = username;
this.password = password;
- this.connectionId = connectionId;
+ this.clientId = connectionId;
}
-
+
@Override
public Connection borrowConnection() throws Exception {
return this.borrowObject();
}
-
+
@Override
public Connection borrowConnection(long timeout) throws Exception {
return this.borrowObject(timeout);
}
-
+
@Override
public void returnConnection(Connection connection) throws Exception {
returnObject(connection);
@@ -107,14 +100,14 @@ public class DefaultConnectionResource e
}
}
if (connection != null) {
- if (ObjectHelper.isNotEmpty(getConnectionId())) {
- connection.setClientID(getConnectionId());
+ if (ObjectHelper.isNotEmpty(getClientId())) {
+ connection.setClientID(getClientId());
}
connection.start();
}
return connection;
}
-
+
@Override
protected void destroyObject(Connection connection) throws Exception {
if (connection != null) {
@@ -148,11 +141,11 @@ public class DefaultConnectionResource e
this.password = password;
}
- public String getConnectionId() {
- return connectionId;
+ public String getClientId() {
+ return clientId;
}
- public void setConnectionId(String connectionId) {
- this.connectionId = connectionId;
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
}
}
Added: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionResource.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionResource.java?rev=1370257&view=auto
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionResource.java (added)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ConnectionResource.java Tue Aug 7 13:34:52 2012
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sjms.jms;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+
+/**
+ * <p>
+ * The ConnectionResource is the contract used to provide {@link Connection}
+ * pools to the SJMS component. A user should use this to provide access to an
+ * alternative pooled connection resource such as a {@link Connection} pool that
+ * is managed by a J2EE container.
+ * </p>
+ * <p>
+ * It is recommended though that for standard {@link ConnectionFactory}
+ * providers you use the {@link ConnectionFactoryResource) implementation that
+ * is provided with SJMS as it is optimized for this component.
+ * </p>
+ */
+public interface ConnectionResource {
+
+ /**
+ * Borrows a {@link Connection} from the connection pool. An exception
+ * should be thrown if no resource is available.
+ *
+ * @return {@link Connection}
+ * @throws Exception when no resource is available
+ */
+ Connection borrowConnection() throws Exception;
+
+ /**
+ * Borrows a {@link Connection} from the connection pool.
+ *
+ * @param timeout the amount of time to wait before throwing an
+ * {@link Exception}
+ * @return {@link Connection}
+ * @throws Exception when no resource is available
+ */
+ Connection borrowConnection(long timeout) throws Exception;
+
+ /**
+ * Returns the {@link Connection} to the connection pool.
+ *
+ * @param connection the borrowed {@link Connection}
+ * @throws Exception
+ */
+ void returnConnection(Connection connection) throws Exception;
+
+}
Copied: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ObjectPool.java (from r1370255, camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/ObjectPool.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ObjectPool.java?p2=camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ObjectPool.java&p1=camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/ObjectPool.java&r1=1370255&r2=1370257&rev=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/ObjectPool.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/ObjectPool.java Tue Aug 7 13:34:52 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.component.sjms.pool;
+package org.apache.camel.component.sjms.jms;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
Copied: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/SessionPool.java (from r1370255, camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/SessionPool.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/SessionPool.java?p2=camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/SessionPool.java&p1=camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/SessionPool.java&r1=1370255&r2=1370257&rev=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/pool/SessionPool.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/SessionPool.java Tue Aug 7 13:34:52 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.component.sjms.pool;
+package org.apache.camel.component.sjms.jms;
import javax.jms.Connection;
import javax.jms.JMSException;
@@ -22,8 +22,6 @@ import javax.jms.Session;
import javax.jms.XASession;
import javax.transaction.xa.XAResource;
-import org.apache.camel.component.sjms.ConnectionResource;
-import org.apache.camel.component.sjms.jms.SessionAcknowledgementType;
/**
* TODO Add Class documentation for SessionPool
@@ -135,7 +133,7 @@ public class SessionPool extends ObjectP
}
/**
- * Gets the DefaultConnectionResource value of connectionResource for this instance of SessionPool.
+ * Gets the ConnectionFactoryResource value of connectionResource for this instance of SessionPool.
*
* @return the connectionResource
*/
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/producer/InOutProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/producer/InOutProducer.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/producer/InOutProducer.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/producer/InOutProducer.java Tue Aug 7 13:34:52 2012
@@ -41,7 +41,7 @@ import org.apache.camel.component.sjms.S
import org.apache.camel.component.sjms.SjmsProducer;
import org.apache.camel.component.sjms.jms.JmsMessageHelper;
import org.apache.camel.component.sjms.jms.JmsObjectFactory;
-import org.apache.camel.component.sjms.pool.ObjectPool;
+import org.apache.camel.component.sjms.jms.ObjectPool;
import org.apache.camel.component.sjms.tx.SessionTransactionSynchronization;
import org.apache.camel.util.ObjectHelper;
Modified: camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOnlyTopicDurableConsumerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOnlyTopicDurableConsumerTest.java?rev=1370257&r1=1370256&r2=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOnlyTopicDurableConsumerTest.java (original)
+++ camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOnlyTopicDurableConsumerTest.java Tue Aug 7 13:34:52 2012
@@ -21,7 +21,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.component.sjms.SjmsComponent;
-import org.apache.camel.component.sjms.pool.DefaultConnectionResource;
+import org.apache.camel.component.sjms.jms.ConnectionFactoryResource;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
@@ -62,9 +62,9 @@ public class InOnlyTopicDurableConsumerT
@Override
protected CamelContext createCamelContext() throws Exception {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(BROKER_URI);
- DefaultConnectionResource connectionResource = new DefaultConnectionResource();
+ ConnectionFactoryResource connectionResource = new ConnectionFactoryResource();
connectionResource.setConnectionFactory(connectionFactory);
- connectionResource.setConnectionId(CONNECTION_ID);
+ connectionResource.setClientId(CONNECTION_ID);
CamelContext camelContext = super.createCamelContext();
SjmsComponent component = new SjmsComponent();
component.setConnectionResource(connectionResource);
Copied: camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResourceTest.java (from r1370255, camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/DefaultConnectionResourceTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResourceTest.java?p2=camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResourceTest.java&p1=camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/DefaultConnectionResourceTest.java&r1=1370255&r2=1370257&rev=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/DefaultConnectionResourceTest.java (original)
+++ camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ConnectionFactoryResourceTest.java Tue Aug 7 13:34:52 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.component.sjms.pool;
+package org.apache.camel.component.sjms.jms;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
@@ -27,16 +27,14 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
/**
- * TODO Add Class documentation for DefaultConnectionResourceTest
- *
+ * TODO Add Class documentation for ConnectionFactoryResourceTest
*/
-public class DefaultConnectionResourceTest {
+public class ConnectionFactoryResourceTest {
private ActiveMQConnectionFactory connectionFactory;
@Before
public void setup() {
- connectionFactory = new ActiveMQConnectionFactory(
- "vm://broker?broker.persistent=false");
+ connectionFactory = new ActiveMQConnectionFactory("vm://broker?broker.persistent=false");
}
@After
@@ -46,18 +44,17 @@ public class DefaultConnectionResourceTe
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.DefaultConnectionResourceTest#createObject()}
+ * {@link org.apache.camel.component.sjms.jms.ConnectionFactoryResourceTest#createObject()}
* .
*
* @throws Exception
*/
@Test
public void testCreateObject() throws Exception {
- DefaultConnectionResource pool = new DefaultConnectionResource(1, connectionFactory);
+ ConnectionFactoryResource pool = new ConnectionFactoryResource(1, connectionFactory);
pool.fillPool();
assertNotNull(pool);
- ActiveMQConnection connection = (ActiveMQConnection) pool
- .borrowObject();
+ ActiveMQConnection connection = (ActiveMQConnection)pool.borrowObject();
assertNotNull(connection);
assertTrue(connection.isStarted());
pool.drainPool();
@@ -65,18 +62,17 @@ public class DefaultConnectionResourceTe
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.DefaultConnectionResourceTest#createObject()}
+ * {@link org.apache.camel.component.sjms.jms.ConnectionFactoryResourceTest#createObject()}
* .
*
* @throws Exception
*/
@Test
public void testDestroyObject() throws Exception {
- DefaultConnectionResource pool = new DefaultConnectionResource(1, connectionFactory);
+ ConnectionFactoryResource pool = new ConnectionFactoryResource(1, connectionFactory);
pool.fillPool();
assertNotNull(pool);
- ActiveMQConnection connection = (ActiveMQConnection) pool
- .borrowObject();
+ ActiveMQConnection connection = (ActiveMQConnection)pool.borrowObject();
assertNotNull(connection);
assertTrue(connection.isStarted());
pool.drainPool();
@@ -85,40 +81,41 @@ public class DefaultConnectionResourceTe
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#borrowObject()}.
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#borrowObject()}.
*
* @throws Exception
*/
@Test
public void testBorrowObject() throws Exception {
- DefaultConnectionResource pool = new DefaultConnectionResource(1, connectionFactory);
+ ConnectionFactoryResource pool = new ConnectionFactoryResource(1, connectionFactory);
pool.fillPool();
assertNotNull(pool);
- ActiveMQConnection connection = (ActiveMQConnection) pool.borrowObject();
+ ActiveMQConnection connection = (ActiveMQConnection)pool.borrowObject();
assertNotNull(connection);
assertTrue(connection.isStarted());
- ActiveMQConnection connection2 = (ActiveMQConnection) pool.borrowObject();
+ ActiveMQConnection connection2 = (ActiveMQConnection)pool.borrowObject();
assertNull(connection2);
pool.drainPool();
}
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#returnObject(java.lang.Object)}
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#returnObject(java.lang.Object)}
* .
- * @throws Exception
+ *
+ * @throws Exception
*/
@Test
public void testReturnObject() throws Exception {
- DefaultConnectionResource pool = new DefaultConnectionResource(1, connectionFactory);
+ ConnectionFactoryResource pool = new ConnectionFactoryResource(1, connectionFactory);
pool.fillPool();
assertNotNull(pool);
- ActiveMQConnection connection = (ActiveMQConnection) pool.borrowObject();
+ ActiveMQConnection connection = (ActiveMQConnection)pool.borrowObject();
assertNotNull(connection);
assertTrue(connection.isStarted());
pool.returnObject(connection);
- ActiveMQConnection connection2 = (ActiveMQConnection) pool.borrowObject();
+ ActiveMQConnection connection2 = (ActiveMQConnection)pool.borrowObject();
assertNotNull(connection2);
pool.drainPool();
}
Copied: camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ObjectPoolTest.java (from r1370255, camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/ObjectPoolTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ObjectPoolTest.java?p2=camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ObjectPoolTest.java&p1=camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/ObjectPoolTest.java&r1=1370255&r2=1370257&rev=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/ObjectPoolTest.java (original)
+++ camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/ObjectPoolTest.java Tue Aug 7 13:34:52 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.component.sjms.pool;
+package org.apache.camel.component.sjms.jms;
import java.util.ArrayList;
import java.util.List;
@@ -31,16 +31,13 @@ import static org.junit.Assert.assertTru
/**
* TODO Add Class documentation for ObjectPoolTest
- *
*/
public class ObjectPoolTest {
- private static final Logger LOGGER = LoggerFactory
- .getLogger(ObjectPoolTest.class);
-
+ private static final Logger LOGGER = LoggerFactory.getLogger(ObjectPoolTest.class);
private AtomicInteger atomicInteger;
-
+
@Before
public void setUp() {
atomicInteger = new AtomicInteger();
@@ -48,7 +45,7 @@ public class ObjectPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#ObjectPool()}.
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#ObjectPool()}.
*
* @throws Exception
*/
@@ -60,10 +57,10 @@ public class ObjectPoolTest {
MyPooledObject pooledObject = testPool.borrowObject();
assertNotNull(pooledObject);
assertTrue("Expected a value of 1. Returned: " + pooledObject.getObjectId(), pooledObject.getObjectId() == 1);
-
+
MyPooledObject nextPooledObject = testPool.borrowObject();
assertNull(nextPooledObject);
-
+
testPool.returnObject(pooledObject);
nextPooledObject = testPool.borrowObject();
assertNotNull(nextPooledObject);
@@ -72,7 +69,7 @@ public class ObjectPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#ObjectPool()}.
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#ObjectPool()}.
*/
@Test
public void testBadObjectPool() {
@@ -85,17 +82,17 @@ public class ObjectPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#ObjectPool(int)}.
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#ObjectPool(int)}.
*
* @throws Exception
*/
@Test
public void testObjectPoolInt() throws Exception {
final int maxPoolObjects = 5;
-
+
TestPool testPool = new TestPool(maxPoolObjects);
testPool.fillPool();
-
+
List<MyPooledObject> poolObjects = new ArrayList<MyPooledObject>();
for (int i = 0; i < maxPoolObjects; i++) {
poolObjects.add(testPool.borrowObject());
@@ -106,23 +103,23 @@ public class ObjectPoolTest {
assertTrue("Expected a value in the range of 1-5. Returned: " + pooledObject.getObjectId(), pooledObject.getObjectId() > 0 && pooledObject.getObjectId() < 6);
LOGGER.info("MyPooledObject has an ID of: " + pooledObject.getObjectId());
}
-
+
assertNull("Pool should be empty", testPool.borrowObject());
-
+
for (MyPooledObject myPooledObject : poolObjects) {
testPool.returnObject(myPooledObject);
}
-
+
MyPooledObject pooledObject = testPool.borrowObject();
assertNotNull(pooledObject);
assertTrue("Expected a value in the range of 1-5. Returned: " + pooledObject.getObjectId(), pooledObject.getObjectId() > 0 && pooledObject.getObjectId() < 6);
-
+
testPool.drainPool();
}
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#createObject()}.
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#createObject()}.
*
* @throws Exception
*/
@@ -134,9 +131,9 @@ public class ObjectPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#borrowObject()}.
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#borrowObject()}.
*
- * @throws Exception
+ * @throws Exception
*/
@Test
public void testBorrowObject() throws Exception {
@@ -153,9 +150,10 @@ public class ObjectPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#returnObject(java.lang.Object)}
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#returnObject(java.lang.Object)}
* .
- * @throws Exception
+ *
+ * @throws Exception
*/
@Test
public void testReturnObject() throws Exception {
@@ -171,7 +169,7 @@ public class ObjectPoolTest {
}
class TestPool extends ObjectPool<MyPooledObject> {
-
+
public TestPool() {
super();
}
@@ -191,7 +189,7 @@ public class ObjectPoolTest {
}
}
-
+
class MyPooledObject {
private int objectId = -1;
@@ -200,14 +198,12 @@ public class ObjectPoolTest {
}
/**
- *
* @return the OBJECT_ID
*/
public Integer getObjectId() {
return this.objectId;
}
}
-
class BadTestPool extends ObjectPool<Object> {
@Override
@@ -220,6 +216,6 @@ public class ObjectPoolTest {
// TODO Auto-generated method stub
}
-
+
}
}
Copied: camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/SessionPoolTest.java (from r1370255, camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/SessionPoolTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/SessionPoolTest.java?p2=camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/SessionPoolTest.java&p1=camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/SessionPoolTest.java&r1=1370255&r2=1370257&rev=1370257&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/pool/SessionPoolTest.java (original)
+++ camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/jms/SessionPoolTest.java Tue Aug 7 13:34:52 2012
@@ -14,13 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.component.sjms.pool;
+package org.apache.camel.component.sjms.jms;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQSession;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -30,16 +29,14 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
/**
- * TODO Add Class documentation for DefaultConnectionResourceTest
- *
+ * TODO Add Class documentation for ConnectionFactoryResourceTest
*/
public class SessionPoolTest {
private ActiveMQConnectionFactory connectionFactory;
@Before
public void setup() {
- connectionFactory = new ActiveMQConnectionFactory(
- "vm://broker?broker.persistent=false");
+ connectionFactory = new ActiveMQConnectionFactory("vm://broker?broker.persistent=false");
}
@After
@@ -49,14 +46,13 @@ public class SessionPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.SessionPoolTest#createObject()}
- * .
+ * {@link org.apache.camel.component.sjms.jms.SessionPoolTest#createObject()}
*
* @throws Exception
*/
@Test
public void testCreateObject() throws Exception {
- DefaultConnectionResource connections = new DefaultConnectionResource(1, connectionFactory);
+ ConnectionFactoryResource connections = new ConnectionFactoryResource(1, connectionFactory);
connections.fillPool();
SessionPool sessions = new SessionPool(1, connections);
sessions.fillPool();
@@ -69,22 +65,22 @@ public class SessionPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#borrowObject()}.
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#borrowObject()}.
*
* @throws Exception
*/
@Test
public void testBorrowObject() throws Exception {
- DefaultConnectionResource connections = new DefaultConnectionResource(1, connectionFactory);
+ ConnectionFactoryResource connections = new ConnectionFactoryResource(1, connectionFactory);
connections.fillPool();
SessionPool sessions = new SessionPool(1, connections);
sessions.fillPool();
assertNotNull(sessions);
- ActiveMQSession session = (ActiveMQSession) sessions.borrowObject();
+ ActiveMQSession session = (ActiveMQSession)sessions.borrowObject();
assertNotNull(session);
assertTrue(!session.isClosed());
- ActiveMQSession session2 = (ActiveMQSession) sessions.borrowObject();
+ ActiveMQSession session2 = (ActiveMQSession)sessions.borrowObject();
assertNull(session2);
sessions.drainPool();
connections.drainPool();
@@ -92,27 +88,27 @@ public class SessionPoolTest {
/**
* Test method for
- * {@link org.apache.camel.component.sjms.pool.ObjectPool#returnObject(java.lang.Object)}
+ * {@link org.apache.camel.component.sjms.jms.ObjectPool#returnObject(java.lang.Object)}
* .
*
* @throws Exception
*/
@Test
public void testReturnObject() throws Exception {
- DefaultConnectionResource connections = new DefaultConnectionResource(1, connectionFactory);
+ ConnectionFactoryResource connections = new ConnectionFactoryResource(1, connectionFactory);
connections.fillPool();
SessionPool sessions = new SessionPool(1, connections);
sessions.fillPool();
assertNotNull(sessions);
- ActiveMQSession session = (ActiveMQSession) sessions.borrowObject();
+ ActiveMQSession session = (ActiveMQSession)sessions.borrowObject();
assertNotNull(session);
assertTrue(!session.isClosed());
- ActiveMQSession session2 = (ActiveMQSession) sessions.borrowObject();
+ ActiveMQSession session2 = (ActiveMQSession)sessions.borrowObject();
assertNull(session2);
sessions.returnObject(session);
- session2 = (ActiveMQSession) sessions.borrowObject();
+ session2 = (ActiveMQSession)sessions.borrowObject();
assertNotNull(session2);
sessions.drainPool();