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