You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/04/02 23:22:13 UTC

svn commit: r644074 - in /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server: ServiceDaemon.java ServiceManager.java ServicePool.java

Author: dblevins
Date: Wed Apr  2 14:22:12 2008
New Revision: 644074

URL: http://svn.apache.org/viewvc?rev=644074&view=rev
Log:
We weren't using the ServicePool (i.e. thread pool) in wrapped services.
Added a backlog configurable parameter

Modified:
    openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java
    openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
    openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java

Modified: openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java?rev=644074&r1=644073&r2=644074&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java (original)
+++ openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java Wed Apr  2 14:22:12 2008
@@ -34,6 +34,7 @@
     ServerSocket serverSocket;
 
     boolean stop = true;
+    private int backlog;
 
     public ServiceDaemon(ServerService next) {
         this.next = next;
@@ -45,14 +46,27 @@
         this.next = next;
     }
 
+    public static int getInt(Properties p, String property, int defaultValue){
+        String value = p.getProperty(property);
+        try {
+            if (value != null) return Integer.parseInt(value);
+            else return defaultValue;
+        } catch (NumberFormatException e) {
+            return defaultValue;
+        }
+    }
+
     public void init(Properties props) throws Exception {
 
         this.props = props;
 
-        String p = props.getProperty("port");
         ip = props.getProperty("bind");
 
-        port = Integer.parseInt(p);
+        port = getInt(props, "port", 0);
+
+        int threads = getInt(props, "threads", 100);
+
+        backlog = getInt(props, "backlog", threads);
 
         next.init(props);
     }
@@ -67,7 +81,7 @@
 
             try {
                 InetAddress address = InetAddress.getByName(ip);
-                serverSocket = new ServerSocket(port, 20, address);
+                serverSocket = new ServerSocket(port, backlog, address);
 //                serverSocket = new ServerSocket(port, 20);
                 port = serverSocket.getLocalPort();
                 ip = serverSocket.getInetAddress().getHostAddress();

Modified: openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java?rev=644074&r1=644073&r2=644074&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java (original)
+++ openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java Wed Apr  2 14:22:12 2008
@@ -194,6 +194,7 @@
                     service = (ServerService) recipe.create(serviceClass.getClassLoader());
 
                     if (!(service instanceof SelfManaging)) {
+                        service = new ServicePool(service, serviceName, serviceProperties);
                         service = new ServiceLogger(service);
                         service = new ServiceAccessController(service);
                         service = new ServiceDaemon(service);

Modified: openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java?rev=644074&r1=644073&r2=644074&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java (original)
+++ openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java Wed Apr  2 14:22:12 2008
@@ -16,6 +16,8 @@
  */
 package org.apache.openejb.server;
 
+import static org.apache.openejb.server.ServiceDaemon.getInt;
+
 import java.util.concurrent.Executor;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -37,8 +39,12 @@
     private final ServerService next;
     private final Executor executor;
 
-    public ServicePool(ServerService next, final String name, final int threads, final long keepAliveTime) {
+    public ServicePool(ServerService next, final String name, Properties properties) {
         this.next = next;
+
+        final int threads = getInt(properties, "threads", 100);
+
+        final int keepAliveTime = (1000 * 60 * 5);
 
         ThreadPoolExecutor p = new ThreadPoolExecutor(threads, threads, keepAliveTime, TimeUnit.MILLISECONDS, new LinkedBlockingQueue());
         p.setThreadFactory(new ThreadFactory() {