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/09/18 07:10:52 UTC

svn commit: r696563 - in /openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/openejb/util/ container/openejb-core/src/test/java/org/apache/openejb/util/ server/openejb...

Author: dblevins
Date: Wed Sep 17 22:10:51 2008
New Revision: 696563

URL: http://svn.apache.org/viewvc?rev=696563&view=rev
Log:
Consolodated some of the code that pulls and parses properties into ints, booleans, etc.

Added:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Options.java
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/util/OptionsTest.java
Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java
    openejb/trunk/openejb3/server/openejb-derbynet/src/main/java/org/apache/openejb/server/derbynet/DerbyNetworkService.java
    openejb/trunk/openejb3/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/JettyHttpServer.java
    openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java
    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/ServicePool.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java?rev=696563&r1=696562&r2=696563&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java Wed Sep 17 22:10:51 2008
@@ -21,9 +21,11 @@
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Options;
 
 import java.util.List;
 import java.util.Arrays;
+import java.util.Properties;
 
 /**
  * @version $Rev$ $Date$
@@ -41,19 +43,9 @@
     }
 
     public AppModule deploy(AppModule appModule) throws OpenEJBException {
-        String levelString = SystemInstance.get().getProperty(VALIDATION_LEVEL, Level.MEDIUM.toString());
+        Properties properties = SystemInstance.get().getProperties();
 
-        Level level;
-        try {
-            level = Level.valueOf(levelString.toUpperCase());
-        } catch (IllegalArgumentException noSuchEnumConstant) {
-            try {
-                int i = Integer.parseInt(levelString) - 1;
-                level = Level.values()[i];
-            } catch (Exception e) {
-                level = Level.MEDIUM;
-            }
-        }
+        Level level = Options.getEnum(properties, VALIDATION_LEVEL, Level.MEDIUM);
 
         boolean hasErrors = appModule.hasErrors();
         boolean hasFailures = appModule.hasFailures();

Added: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Options.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Options.java?rev=696563&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Options.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Options.java Wed Sep 17 22:10:51 2008
@@ -0,0 +1,80 @@
+/**
+ * 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.openejb.util;
+
+import java.util.Properties;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class Options {
+
+    private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB, Options.class);
+
+    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) {
+            warn(property, value, defaultValue, e);
+            return defaultValue;
+        }
+    }
+
+    public static long getLong(Properties p, String property, long defaultValue){
+        String value = p.getProperty(property);
+        try {
+            if (value != null) return Long.parseLong(value);
+            else return defaultValue;
+        } catch (NumberFormatException e) {
+            warn(property, value, defaultValue, e);
+            return defaultValue;
+        }
+    }
+
+    public static boolean getBoolean(Properties p, String property, boolean defaultValue){
+        String value = p.getProperty(property);
+        try {
+            if (value != null) return Boolean.parseBoolean(value);
+            else return defaultValue;
+        } catch (NumberFormatException e) {
+            warn(property, value, defaultValue, e);
+            return defaultValue;
+        }
+    }
+
+    public static <T extends Enum<T>> T getEnum(Properties p, String property, T defaultValue){
+        String value = p.getProperty(property);
+        try {
+            if (value != null) {
+                Class<T> enumType = (Class<T>) defaultValue.getClass();
+                return Enum.valueOf(enumType, value.toUpperCase());
+            } else {
+                return defaultValue;
+            }
+        } catch (IllegalArgumentException e) {
+            warn(property, value, defaultValue, e);
+            return defaultValue;
+        }
+    }
+
+
+    private static void warn(String property, String value, Object defaultValue, Exception e) {
+        logger.warning("Cannot parse supplied value \"" + value + "\" for option \"" + property + "\".  Using default of \"" + defaultValue + "\"", e);
+    }
+}

Added: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/util/OptionsTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/util/OptionsTest.java?rev=696563&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/util/OptionsTest.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/util/OptionsTest.java Wed Sep 17 22:10:51 2008
@@ -0,0 +1,41 @@
+/**
+ * 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.openejb.util;
+
+import junit.framework.TestCase;
+
+import java.util.Properties;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class OptionsTest extends TestCase {
+
+    public void testEnum() throws Exception {
+        Properties properties = new Properties();
+        properties.setProperty("caseSensitive", Colors.RED.toString());
+        properties.setProperty("caseInsensitive", "blue");
+
+        assertSame(Colors.RED, Options.getEnum(properties, "caseSensitive", Colors.GREEN));
+        assertSame(Colors.BLUE, Options.getEnum(properties, "caseInsensitive", Colors.GREEN));
+        assertSame(Colors.GREEN, Options.getEnum(properties, "default", Colors.GREEN));
+    }
+
+    public static enum Colors {
+        RED, GREEN, BLUE;
+    }
+}

Modified: openejb/trunk/openejb3/server/openejb-derbynet/src/main/java/org/apache/openejb/server/derbynet/DerbyNetworkService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-derbynet/src/main/java/org/apache/openejb/server/derbynet/DerbyNetworkService.java?rev=696563&r1=696562&r2=696563&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-derbynet/src/main/java/org/apache/openejb/server/derbynet/DerbyNetworkService.java (original)
+++ openejb/trunk/openejb3/server/openejb-derbynet/src/main/java/org/apache/openejb/server/derbynet/DerbyNetworkService.java Wed Sep 17 22:10:51 2008
@@ -22,6 +22,7 @@
 import org.apache.openejb.server.ServerService;
 import org.apache.openejb.server.ServiceException;
 import org.apache.openejb.util.Log4jPrintWriter;
+import org.apache.openejb.util.Options;
 import org.apache.openejb.loader.SystemInstance;
 
 import java.io.IOException;
@@ -56,13 +57,10 @@
     }
 
     public void init(Properties properties) throws Exception {
-        String threads = properties.getProperty("threads", "20");
-        String port = properties.getProperty("port", "1527");
         String bind = properties.getProperty("bind");
-        String disabled = properties.getProperty("disabled");
-        this.threads = Integer.parseInt(threads);
-        this.port = Integer.parseInt(port);
-        this.disabled = Boolean.parseBoolean(disabled);
+        this.threads = Options.getInt(properties, "threads", 20);
+        this.port = Options.getInt(properties, "port", 1527);;
+        this.disabled = Options.getBoolean(properties, "disabled", false);;
         host = InetAddress.getByName("0.0.0.0");
         System.setProperty("derby.system.home", SystemInstance.get().getBase().getDirectory().getAbsolutePath());
     }

Modified: openejb/trunk/openejb3/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/JettyHttpServer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/JettyHttpServer.java?rev=696563&r1=696562&r2=696563&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/JettyHttpServer.java (original)
+++ openejb/trunk/openejb3/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/JettyHttpServer.java Wed Sep 17 22:10:51 2008
@@ -28,6 +28,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.openejb.server.ServiceException;
+import org.apache.openejb.util.Options;
 import org.mortbay.jetty.Connector;
 import org.mortbay.jetty.Handler;
 import org.mortbay.jetty.Request;
@@ -77,7 +78,7 @@
     }
 
     public void init(Properties props) throws Exception {
-        port = Integer.parseInt(props.getProperty("port", "8080"));
+        port = Options.getInt(props, "port", 8080);
         
         // Create all the Jetty objects but dont' start them
         server = new Server();

Modified: openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java?rev=696563&r1=696562&r2=696563&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java (original)
+++ openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java Wed Sep 17 22:10:51 2008
@@ -16,9 +16,6 @@
  */
 package org.apache.openejb.server.discovery;
 
-import static org.apache.openejb.server.ServiceDaemon.getBoolean;
-import static org.apache.openejb.server.ServiceDaemon.getLong;
-import static org.apache.openejb.server.ServiceDaemon.getInt;
 import org.apache.openejb.server.SelfManaging;
 import org.apache.openejb.server.ServerService;
 import org.apache.openejb.server.ServiceException;
@@ -26,6 +23,7 @@
 import org.apache.openejb.server.DiscoveryListener;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.Options;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -101,16 +99,16 @@
         group = props.getProperty("group", group);
         groupPrefix = group + ":";
 
-        port = getInt(props, "port", port);
+        port = Options.getInt(props, "port", port);
 
-        heartRate = getLong(props, "heart_rate", heartRate);
-        maxMissedHeartbeats = getInt(props, "max_missed_heartbeats", maxMissedHeartbeats);
-        loopbackMode = getBoolean(props, "loopback_mode", loopbackMode);
-
-        reconnectDelay = getLong(props, "reconnect_delay", reconnectDelay);
-        maxReconnectDelay = getLong(props, "max_reconnect_delay", reconnectDelay);
-        maxReconnectAttempts = getInt(props, "max_reconnect_attempts", maxReconnectAttempts);
-        exponentialBackoff = getLong(props, "exponential_backoff", exponentialBackoff);
+        heartRate = Options.getLong(props, "heart_rate", heartRate);
+        maxMissedHeartbeats = Options.getInt(props, "max_missed_heartbeats", maxMissedHeartbeats);
+        loopbackMode = Options.getBoolean(props, "loopback_mode", loopbackMode);
+
+        reconnectDelay = Options.getLong(props, "reconnect_delay", reconnectDelay);
+        maxReconnectDelay = Options.getLong(props, "max_reconnect_delay", reconnectDelay);
+        maxReconnectAttempts = Options.getInt(props, "max_reconnect_attempts", maxReconnectAttempts);
+        exponentialBackoff = Options.getLong(props, "exponential_backoff", exponentialBackoff);
 
         useExponentialBackOff = (exponentialBackoff > 1);
     }

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=696563&r1=696562&r2=696563&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 Sep 17 22:10:51 2008
@@ -18,6 +18,7 @@
 
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.Options;
 import org.apache.openejb.loader.SystemInstance;
 import org.codehaus.swizzle.stream.StringTemplate;
 
@@ -34,7 +35,6 @@
 import java.net.SocketTimeoutException;
 import java.net.UnknownHostException;
 import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.Properties;
 import java.util.Map;
 import java.util.HashMap;
@@ -90,42 +90,12 @@
         }
     }
 
-    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 static long getLong(Properties p, String property, long defaultValue){
-        String value = p.getProperty(property);
-        try {
-            if (value != null) return Long.parseLong(value);
-            else return defaultValue;
-        } catch (NumberFormatException e) {
-            return defaultValue;
-        }
-    }
-
-    public static boolean getBoolean(Properties p, String property, boolean defaultValue){
-        String value = p.getProperty(property);
-        try {
-            if (value != null) return Boolean.parseBoolean(value);
-            else return defaultValue;
-        } catch (NumberFormatException e) {
-            return defaultValue;
-        }
-    }
-
-   public void setSoTimeout(int timeout) throws SocketException {
-        this.timeout = timeout;
-        if (socketListener != null) {
-            socketListener.setSoTimeout(timeout);
-        }
-    }
+    public void setSoTimeout(int timeout) throws SocketException {
+         this.timeout = timeout;
+         if (socketListener != null) {
+             socketListener.setSoTimeout(timeout);
+         }
+     }
 
     public int getSoTimeout() throws IOException {
         if (socketListener == null) return 0;
@@ -151,13 +121,13 @@
 
         address = getAddress(ip);
 
-        port = getInt(props, "port", 0);
+        port = Options.getInt(props, "port", 0);
 
-        int threads = getInt(props, "threads", 100);
+        int threads = Options.getInt(props, "threads", 100);
 
-        backlog = getInt(props, "backlog", threads);
+        backlog = Options.getInt(props, "backlog", threads);
 
-        secure = getBoolean(props, "secure", false);
+        secure = Options.getBoolean(props, "secure", false);
 
         timeout = 1000;
 

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=696563&r1=696562&r2=696563&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 Sep 17 22:10:51 2008
@@ -16,8 +16,6 @@
  */
 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;
@@ -27,6 +25,7 @@
 
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.Options;
 import org.apache.openejb.loader.SystemInstance;
 
 import java.io.IOException;
@@ -44,7 +43,7 @@
     private final AtomicBoolean stop = new AtomicBoolean();
 
     public ServicePool(ServerService next, String name, Properties properties) {
-        this(next, name, getInt(properties, "threads", 100));
+        this(next, name, Options.getInt(properties, "threads", 100));
     }
 
     public ServicePool(ServerService next, final String name, int threads) {