You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2015/10/23 15:58:21 UTC
svn commit: r1710216 - in /qpid/java/trunk:
bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/main/java/org/apache/qpid/server/model/port/
broker-core/src/main/...
Author: lquack
Date: Fri Oct 23 13:58:21 2015
New Revision: 1710216
URL: http://svn.apache.org/viewvc?rev=1710216&view=rev
Log:
QPID-6806: [Java Broker] Remove configuration for minimum thread pool size for AmqpPort/VirtualHost
Removed:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortWithThreadPool.java
Modified:
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/port/HttpPortImplTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java
Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java Fri Oct 23 13:58:21 2015
@@ -88,11 +88,9 @@ public class BDBHAReplicaVirtualHostImpl
private long _storeTransactionOpenTimeoutWarn;
@ManagedAttributeField
private int _housekeepingThreadCount;
- @ManagedAttributeField
- private int _connectionThreadPoolMinimum;
@ManagedAttributeField
- private int _connectionThreadPoolMaximum;
+ private int _connectionThreadPoolSize;
@ManagedAttributeField
private List<String> _enabledConnectionValidators;
@@ -239,13 +237,7 @@ public class BDBHAReplicaVirtualHostImpl
}
@Override
- public int getConnectionThreadPoolMaximum()
- {
- return 0;
- }
-
- @Override
- public int getConnectionThreadPoolMinimum()
+ public int getConnectionThreadPoolSize()
{
return 0;
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Fri Oct 23 13:58:21 2015
@@ -112,21 +112,13 @@ public interface VirtualHost<X extends V
@ManagedAttribute( defaultValue = "${virtualhost.housekeepingThreadCount}")
int getHousekeepingThreadCount();
- String VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM = "virtualhost.connectionThreadPool.maximum";
+ String VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE = "virtualhost.connectionThreadPool.size";
@SuppressWarnings("unused")
- @ManagedContextDefault( name = VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM)
- long DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM = Math.max(Runtime.getRuntime().availableProcessors() * 2, 64);
+ @ManagedContextDefault( name = VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE)
+ long DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE = Math.max(Runtime.getRuntime().availableProcessors() * 2, 64);
- @ManagedAttribute( defaultValue = "${" + VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM + "}")
- int getConnectionThreadPoolMaximum();
-
- String VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM = "virtualhost.connectionThreadPool.minimum";
- @SuppressWarnings("unused")
- @ManagedContextDefault( name = VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM)
- long DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM = Math.min(Runtime.getRuntime().availableProcessors(), 8);
-
- @ManagedAttribute( defaultValue = "${" + VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM + "}")
- int getConnectionThreadPoolMinimum();
+ @ManagedAttribute( defaultValue = "${" + VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE + "}")
+ int getConnectionThreadPoolSize();
@ManagedContextDefault( name = "virtualhost.awaitAttainmentTimeout")
public static final int DEFAULT_AWAIT_ATTAINMENT_TIMEOUT = 5000;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java Fri Oct 23 13:58:21 2015
@@ -40,7 +40,7 @@ import org.apache.qpid.server.virtualhos
import javax.net.ssl.SSLContext;
@ManagedObject( category = false, type = "AMQP")
-public interface AmqpPort<X extends AmqpPort<X>> extends ClientAuthCapablePort<X>, PortWithThreadPool
+public interface AmqpPort<X extends AmqpPort<X>> extends ClientAuthCapablePort<X>
{
String DEFAULT_AMQP_TCP_NO_DELAY = "true";
@@ -48,12 +48,11 @@ public interface AmqpPort<X extends Amqp
String DEFAULT_AMQP_WANT_CLIENT_AUTH = "false";
String MAX_OPEN_CONNECTIONS = "maxOpenConnections";
-
+ String THREAD_POOL_SIZE = "threadPoolSize";
String DEFAULT_AMQP_PROTOCOLS = "qpid.port.default_amqp_protocols";
- String PORT_AMQP_THREAD_POOL_MAXIMUM = "port.amqp.threadPool.maximum";
- String PORT_AMQP_THREAD_POOL_MINIMUM = "port.amqp.threadPool.minimum";
+ String PORT_AMQP_THREAD_POOL_SIZE = "port.amqp.threadPool.size";
String PORT_AMQP_THREAD_POOL_KEEP_ALIVE_TIMEOUT = "port.amqp.threadPool.keep_alive_timeout";
@ManagedContextDefault(name = DEFAULT_AMQP_PROTOCOLS)
@@ -65,12 +64,8 @@ public interface AmqpPort<X extends Amqp
int DEFAULT_MAX_OPEN_CONNECTIONS = -1;
@SuppressWarnings("unused")
- @ManagedContextDefault( name = PORT_AMQP_THREAD_POOL_MAXIMUM)
- long DEFAULT_PORT_AMQP_THREAD_POOL_MAXIMUM = 8;
-
- @SuppressWarnings("unused")
- @ManagedContextDefault( name = PORT_AMQP_THREAD_POOL_MINIMUM)
- long DEFAULT_PORT_AMQP_THREAD_POOL_MINIMUM = 2;
+ @ManagedContextDefault( name = PORT_AMQP_THREAD_POOL_SIZE)
+ long DEFAULT_PORT_AMQP_THREAD_POOL_SIZE = 8;
@SuppressWarnings("unused")
@ManagedContextDefault(name = PORT_AMQP_THREAD_POOL_KEEP_ALIVE_TIMEOUT)
@@ -95,13 +90,8 @@ public interface AmqpPort<X extends Amqp
@ManagedAttribute( defaultValue = AmqpPort.DEFAULT_AMQP_TCP_NO_DELAY )
boolean isTcpNoDelay();
- @Override
- @ManagedAttribute( defaultValue = "${" + PORT_AMQP_THREAD_POOL_MAXIMUM + "}")
- int getThreadPoolMaximum();
-
- @Override
- @ManagedAttribute( defaultValue = "${" + PORT_AMQP_THREAD_POOL_MINIMUM + "}")
- int getThreadPoolMinimum();
+ @ManagedAttribute( defaultValue = "${" + PORT_AMQP_THREAD_POOL_SIZE + "}")
+ int getThreadPoolSize();
@ManagedAttribute( defaultValue = DEFAULT_AMQP_NEED_CLIENT_AUTH )
boolean getNeedClientAuth();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java Fri Oct 23 13:58:21 2015
@@ -115,10 +115,7 @@ public class AmqpPortImpl extends Abstra
private int _maxOpenConnections;
@ManagedAttributeField
- private int _threadPoolMaximum;
-
- @ManagedAttributeField
- private int _threadPoolMinimum;
+ private int _threadPoolSize;
private final AtomicInteger _connectionCount = new AtomicInteger();
private final AtomicBoolean _connectionCountWarningGiven = new AtomicBoolean();
@@ -137,15 +134,9 @@ public class AmqpPortImpl extends Abstra
}
@Override
- public int getThreadPoolMaximum()
- {
- return _threadPoolMaximum;
- }
-
- @Override
- public int getThreadPoolMinimum()
+ public int getThreadPoolSize()
{
- return _threadPoolMinimum;
+ return _threadPoolSize;
}
@Override
@@ -331,7 +322,7 @@ public class AmqpPortImpl extends Abstra
public void onValidate()
{
super.onValidate();
- PortWithThreadPoolValidator.validate(this);
+ validateThreadPoolSize(this);
}
@Override
@@ -339,9 +330,17 @@ public class AmqpPortImpl extends Abstra
{
super.validateChange(proxyForValidation, changedAttributes);
AmqpPort changed = (AmqpPort) proxyForValidation;
- if (changedAttributes.contains(THREAD_POOL_MAXIMUM) || changedAttributes.contains(THREAD_POOL_MINIMUM) )
+ if (changedAttributes.contains(THREAD_POOL_SIZE))
+ {
+ validateThreadPoolSize(changed);
+ }
+ }
+
+ private void validateThreadPoolSize(final AmqpPort changed)
+ {
+ if (changed.getThreadPoolSize() < 1)
{
- PortWithThreadPoolValidator.validate(changed);
+ throw new IllegalConfigurationException(String.format("Thread pool size %d is too small. Must be greater than zero.", changed.getThreadPoolSize()));
}
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java Fri Oct 23 13:58:21 2015
@@ -31,10 +31,12 @@ import org.apache.qpid.server.model.Tran
import org.apache.qpid.server.model.TrustStore;
@ManagedObject( category = false, type = "HTTP")
-public interface HttpPort<X extends HttpPort<X>> extends ClientAuthCapablePort<X>, PortWithThreadPool
+public interface HttpPort<X extends HttpPort<X>> extends ClientAuthCapablePort<X>
{
String DEFAULT_HTTP_NEED_CLIENT_AUTH = "false";
String DEFAULT_HTTP_WANT_CLIENT_AUTH = "false";
+ String THREAD_POOL_MINIMUM = "threadPoolMinimum";
+ String THREAD_POOL_MAXIMUM = "threadPoolMaximum";
@ManagedAttribute(defaultValue = "*")
String getBindingAddress();
@@ -66,7 +68,6 @@ public interface HttpPort<X extends Http
@ManagedContextDefault( name = PORT_HTTP_THREAD_POOL_MAXIMUM )
long DEFAULT_PORT_HTTP_THREAD_POOL_MAXIMUM = 24;
- @Override
@ManagedAttribute( defaultValue = "${" + PORT_HTTP_THREAD_POOL_MAXIMUM + "}")
int getThreadPoolMaximum();
@@ -75,7 +76,6 @@ public interface HttpPort<X extends Http
@ManagedContextDefault( name = PORT_HTTP_THREAD_POOL_MINIMUM )
long DEFAULT_PORT_HTTP_THREAD_POOL_MINIMUM = 8;
- @Override
@ManagedAttribute( defaultValue = "${" + PORT_HTTP_THREAD_POOL_MINIMUM + "}")
int getThreadPoolMinimum();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java Fri Oct 23 13:58:21 2015
@@ -92,7 +92,7 @@ public class HttpPortImpl extends Abstra
public void onValidate()
{
super.onValidate();
- PortWithThreadPoolValidator.validate(this);
+ validateThreadPoolSettings(this);
final double additionalInternalThreads = getContextValue(Integer.class, HttpPort.PORT_HTTP_ADDITIONAL_INTERNAL_THREADS);
if (additionalInternalThreads < 1)
@@ -126,7 +126,23 @@ public class HttpPortImpl extends Abstra
HttpPort changed = (HttpPort) proxyForValidation;
if (changedAttributes.contains(THREAD_POOL_MAXIMUM) || changedAttributes.contains(THREAD_POOL_MINIMUM))
{
- PortWithThreadPoolValidator.validate(changed);
+ validateThreadPoolSettings(changed);
+ }
+ }
+
+ private void validateThreadPoolSettings(HttpPort<?> httpPort)
+ {
+ if (httpPort.getThreadPoolMaximum() < 1)
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool maximum %d is too small. Must be greater than zero.", httpPort.getThreadPoolMaximum()));
+ }
+ if (httpPort.getThreadPoolMinimum() < 1)
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool minimum %d is too small. Must be greater than zero.", httpPort.getThreadPoolMinimum()));
+ }
+ if (httpPort.getThreadPoolMinimum() > httpPort.getThreadPoolMaximum())
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool minimum %d cannot be greater than thread pool maximum %d.", httpPort.getThreadPoolMinimum() , httpPort.getThreadPoolMaximum()));
}
}
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java Fri Oct 23 13:58:21 2015
@@ -40,18 +40,16 @@ public class NetworkConnectionScheduler
private final ThreadFactory _factory;
private volatile ThreadPoolExecutor _executor;
private final AtomicInteger _running = new AtomicInteger();
- private final int _poolSizeMinimum;
- private final int _poolSizeMaximum;
+ private final int _poolSize;
private final long _threadKeepAliveTimeout;
private final String _name;
private SelectorThread _selectorThread;
public NetworkConnectionScheduler(final String name,
- int threadPoolSizeMinimum,
- int threadPoolSizeMaximum,
+ int threadPoolSize,
long threadKeepAliveTimeout)
{
- this(name, threadPoolSizeMinimum, threadPoolSizeMaximum, threadKeepAliveTimeout, new ThreadFactory()
+ this(name, threadPoolSize, threadKeepAliveTimeout, new ThreadFactory()
{
final AtomicInteger _count = new AtomicInteger();
@@ -66,14 +64,12 @@ public class NetworkConnectionScheduler
}
public NetworkConnectionScheduler(String name,
- int threadPoolSizeMinimum,
- int threadPoolSizeMaximum,
+ int threadPoolSize,
long threadKeepAliveTimeout,
ThreadFactory factory)
{
_name = name;
- _poolSizeMaximum = threadPoolSizeMaximum;
- _poolSizeMinimum = threadPoolSizeMinimum;
+ _poolSize = threadPoolSize;
_threadKeepAliveTimeout = threadKeepAliveTimeout;
_factory = factory;
}
@@ -84,12 +80,12 @@ public class NetworkConnectionScheduler
try
{
_selectorThread = new SelectorThread(this);
- _executor = new ThreadPoolExecutor(_poolSizeMaximum, _poolSizeMaximum,
+ _executor = new ThreadPoolExecutor(_poolSize, _poolSize,
_threadKeepAliveTimeout, TimeUnit.MINUTES,
new LinkedBlockingQueue<Runnable>(), _factory);
_executor.prestartAllCoreThreads();
_executor.allowCoreThreadTimeOut(true);
- for(int i = 0 ; i < _poolSizeMaximum; i++)
+ for(int i = 0 ; i < _poolSize; i++)
{
_executor.execute(_selectorThread);
}
@@ -117,7 +113,7 @@ public class NetworkConnectionScheduler
if (connection.isStateChanged() || connection.isPartialRead())
{
- if (_running.get() == _poolSizeMaximum)
+ if (_running.get() == _poolSize)
{
connection.clearScheduled();
schedule(connection);
@@ -195,9 +191,9 @@ public class NetworkConnectionScheduler
_selectorThread.removeConnection(connection);
}
- int getPoolSizeMaximum()
+ int getPoolSize()
{
- return _poolSizeMaximum;
+ return _poolSize;
}
public void schedule(final NonBlockingConnection connection)
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java Fri Oct 23 13:58:21 2015
@@ -323,7 +323,7 @@ class SelectorThread extends Thread
SelectorThread(final NetworkConnectionScheduler scheduler) throws IOException
{
_scheduler = scheduler;
- int selectors = Math.max(scheduler.getPoolSizeMaximum()/8,1);
+ int selectors = Math.max(scheduler.getPoolSize()/8,1);
_selectionTasks = new SelectionTask[selectors];
for(int i = 0; i < selectors; i++)
{
@@ -516,7 +516,7 @@ class SelectorThread extends Thread
};
_closed.set(true);
- int count = _scheduler.getPoolSizeMaximum();
+ int count = _scheduler.getPoolSize();
while(count-- > 0)
{
_workQueue.offer(goodNight);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java Fri Oct 23 13:58:21 2015
@@ -72,8 +72,8 @@ class TCPandSSLTransport implements Acce
long threadPoolKeepAliveTimeout = _port.getContextValue(Long.class, AmqpPort.PORT_AMQP_THREAD_POOL_KEEP_ALIVE_TIMEOUT);
- _scheduler = new NetworkConnectionScheduler("Port-"+_port.getName(), _port.getThreadPoolMinimum(),
- _port.getThreadPoolMaximum(), threadPoolKeepAliveTimeout);
+ _scheduler = new NetworkConnectionScheduler("Port-"+_port.getName(),
+ _port.getThreadPoolSize(), threadPoolKeepAliveTimeout);
_scheduler.start();
_networkTransport = new NonBlockingNetworkTransport(protocolEngineFactory,
encryptionSet, _scheduler, _port);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Fri Oct 23 13:58:21 2015
@@ -182,10 +182,7 @@ public abstract class AbstractVirtualHos
private int _housekeepingThreadCount;
@ManagedAttributeField
- private int _connectionThreadPoolMaximum;
-
- @ManagedAttributeField
- private int _connectionThreadPoolMinimum;
+ private int _connectionThreadPoolSize;
@ManagedAttributeField
private List<String> _enabledConnectionValidators;
@@ -314,17 +311,9 @@ public abstract class AbstractVirtualHos
private void validateConnectionThreadPoolSettings(VirtualHost<?,?,?> virtualHost)
{
- if (virtualHost.getConnectionThreadPoolMaximum() < 1)
- {
- throw new IllegalConfigurationException(String.format("Thread pool maximum %d is too small. Must be greater than zero.", virtualHost.getConnectionThreadPoolMaximum()));
- }
- if (virtualHost.getConnectionThreadPoolMinimum() < 1)
- {
- throw new IllegalConfigurationException(String.format("Thread pool minimum %d is too small. Must be greater than zero.", virtualHost.getConnectionThreadPoolMinimum()));
- }
- if (virtualHost.getConnectionThreadPoolMinimum() > virtualHost.getConnectionThreadPoolMaximum())
+ if (virtualHost.getConnectionThreadPoolSize() < 1)
{
- throw new IllegalConfigurationException(String.format("Thread pool minimum %d cannot be greater than thread pool maximum %d.", virtualHost.getConnectionThreadPoolMinimum() , virtualHost.getConnectionThreadPoolMaximum()));
+ throw new IllegalConfigurationException(String.format("Thread pool size %d is too small. Must be greater than zero.", virtualHost.getConnectionThreadPoolSize()));
}
}
@@ -1485,17 +1474,10 @@ public abstract class AbstractVirtualHos
return _housekeepingThreadCount;
}
-
- @Override
- public int getConnectionThreadPoolMaximum()
- {
- return _connectionThreadPoolMaximum;
- }
-
@Override
- public int getConnectionThreadPoolMinimum()
+ public int getConnectionThreadPoolSize()
{
- return _connectionThreadPoolMinimum;
+ return _connectionThreadPoolSize;
}
@StateTransition( currentState = { State.UNINITIALIZED, State.ACTIVE, State.ERRORED }, desiredState = State.STOPPED )
@@ -1909,8 +1891,7 @@ public abstract class AbstractVirtualHos
SecurityManager.getSystemTaskSubject("IO Pool", getPrincipal()));
_networkConnectionScheduler = new NetworkConnectionScheduler("virtualhost-" + getName() + "-iopool",
- getConnectionThreadPoolMinimum(),
- getConnectionThreadPoolMaximum(),
+ getConnectionThreadPoolSize(),
threadPoolKeepAliveTimeout,
connectionThreadFactory);
_networkConnectionScheduler.start();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java Fri Oct 23 13:58:21 2015
@@ -90,10 +90,7 @@ class RedirectingVirtualHostImpl
private int _housekeepingThreadCount;
@ManagedAttributeField
- private int _connectionThreadPoolMinimum;
-
- @ManagedAttributeField
- private int _connectionThreadPoolMaximum;
+ private int _connectionThreadPoolSize;
@ManagedAttributeField
private List<String> _enabledConnectionValidators;
@@ -240,13 +237,7 @@ class RedirectingVirtualHostImpl
}
@Override
- public int getConnectionThreadPoolMaximum()
- {
- return 0;
- }
-
- @Override
- public int getConnectionThreadPoolMinimum()
+ public int getConnectionThreadPoolSize()
{
return 0;
}
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/port/HttpPortImplTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/port/HttpPortImplTest.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/port/HttpPortImplTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/port/HttpPortImplTest.java Fri Oct 23 13:58:21 2015
@@ -20,28 +20,18 @@
package org.apache.qpid.server.model.port;
-import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import java.util.UUID;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.updater.CurrentThreadTaskExecutor;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.logging.EventLogger;
-import org.apache.qpid.server.logging.LogMessage;
-import org.apache.qpid.server.logging.LogSubject;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.BrokerModel;
@@ -83,14 +73,16 @@ public class HttpPortImplTest extends Qp
public void testCreateWithIllegalThreadPoolValues() throws Exception
{
+ int threadPoolMinimumSize = 37;
+ int invalidThreadPoolMaximumSize = threadPoolMinimumSize - 1;
+
Map<String, Object> attributes = new HashMap<>();
attributes.put(HttpPort.PORT, 10000);
attributes.put(HttpPort.NAME, getTestName());
- attributes.put(HttpPort.THREAD_POOL_MINIMUM, 51);
- attributes.put(HttpPort.THREAD_POOL_MAXIMUM, 50);
+ attributes.put(HttpPort.THREAD_POOL_MINIMUM, threadPoolMinimumSize);
+ attributes.put(HttpPort.THREAD_POOL_MAXIMUM, invalidThreadPoolMaximumSize);
attributes.put(HttpPort.AUTHENTICATION_PROVIDER, AUTHENTICATION_PROVIDER_NAME);
-
HttpPortImpl port = new HttpPortImpl(attributes, _broker);
try
{
@@ -103,20 +95,49 @@ public class HttpPortImplTest extends Qp
}
}
- public void testChangeWithIllegalThreadPoolValues() throws Exception
+ public void testIllegalChangeWithMaxThreadPoolSizeSmallerThanMinThreadPoolSize() throws Exception
{
+ int threadPoolMinimumSize = 37;
+ int invalidThreadPoolMaximumSize = threadPoolMinimumSize - 1;
+
Map<String, Object> attributes = new HashMap<>();
attributes.put(HttpPort.PORT, 10000);
attributes.put(HttpPort.NAME, getTestName());
attributes.put(HttpPort.AUTHENTICATION_PROVIDER, AUTHENTICATION_PROVIDER_NAME);
+ HttpPortImpl port = new HttpPortImpl(attributes, _broker);
+ port.create();
+
+ final Map<String, Object> updates = new HashMap<>();
+ updates.put(HttpPort.THREAD_POOL_MINIMUM, threadPoolMinimumSize);
+ updates.put(HttpPort.THREAD_POOL_MAXIMUM, invalidThreadPoolMaximumSize);
+ try
+ {
+ port.setAttributes(updates);
+ fail("Change should fail due to validation check");
+ }
+ catch (IllegalConfigurationException e)
+ {
+ // PASS
+ }
+ }
+
+ public void testIllegalChangeWithNegativeThreadPoolSize() throws Exception
+ {
+ int illegalThreadPoolMinimumSize = -1;
+ int threadPoolMaximumSize = 1;
+
+ Map<String, Object> attributes = new HashMap<>();
+ attributes.put(HttpPort.PORT, 10000);
+ attributes.put(HttpPort.NAME, getTestName());
+ attributes.put(HttpPort.AUTHENTICATION_PROVIDER, AUTHENTICATION_PROVIDER_NAME);
HttpPortImpl port = new HttpPortImpl(attributes, _broker);
port.create();
final Map<String, Object> updates = new HashMap<>();
- updates.put(HttpPort.THREAD_POOL_MINIMUM, 51);
- updates.put(HttpPort.THREAD_POOL_MAXIMUM, 50);
+ updates.put(HttpPort.THREAD_POOL_MINIMUM, illegalThreadPoolMinimumSize);
+ updates.put(HttpPort.THREAD_POOL_MAXIMUM, threadPoolMaximumSize);
try
{
port.setAttributes(updates);
@@ -128,4 +149,25 @@ public class HttpPortImplTest extends Qp
}
}
+ public void testChangeWithLegalThreadPoolValues() throws Exception
+ {
+ int threadPoolMinimumSize = 37;
+ int threadPoolMaximumSize = threadPoolMinimumSize + 1;
+
+ Map<String, Object> attributes = new HashMap<>();
+ attributes.put(HttpPort.PORT, 10000);
+ attributes.put(HttpPort.NAME, getTestName());
+ attributes.put(HttpPort.AUTHENTICATION_PROVIDER, AUTHENTICATION_PROVIDER_NAME);
+
+ HttpPortImpl port = new HttpPortImpl(attributes, _broker);
+ port.create();
+
+ final Map<String, Object> updates = new HashMap<>();
+ updates.put(HttpPort.THREAD_POOL_MINIMUM, threadPoolMinimumSize);
+ updates.put(HttpPort.THREAD_POOL_MAXIMUM, threadPoolMaximumSize);
+ port.setAttributes(updates);
+ assertEquals("Port did not pickup changes to minimum thread pool size", port.getThreadPoolMinimum(), threadPoolMinimumSize);
+ assertEquals("Port did not pickup changes to maximum thread pool size", port.getThreadPoolMaximum(), threadPoolMaximumSize);
+ }
+
}
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java?rev=1710216&r1=1710215&r2=1710216&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java Fri Oct 23 13:58:21 2015
@@ -109,8 +109,7 @@ public class TCPandSSLTransportTest exte
when(port.getName()).thenReturn("testAmqp");
when(port.getNetworkBufferSize()).thenReturn(64*1024);
when(port.canAcceptNewConnection(any(SocketAddress.class))).thenReturn(true);
- when(port.getThreadPoolMinimum()).thenReturn(2);
- when(port.getThreadPoolMaximum()).thenReturn(2);
+ when(port.getThreadPoolSize()).thenReturn(2);
when(port.getSSLContext()).thenReturn(sslContext);
when(port.getContextValue(Long.class, AmqpPort.PORT_AMQP_THREAD_POOL_KEEP_ALIVE_TIMEOUT)).thenReturn(1l);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org