You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2012/04/17 21:58:03 UTC

svn commit: r1327256 - /ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java

Author: doogie
Date: Tue Apr 17 19:58:03 2012
New Revision: 1327256

URL: http://svn.apache.org/viewvc?rev=1327256&view=rev
Log:
OPTIMIZE: Add a new FAIL Control, and move the processing into a method on the
enum.

Modified:
    ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java

Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java?rev=1327256&r1=1327255&r2=1327256&view=diff
==============================================================================
--- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java (original)
+++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java Tue Apr 17 19:58:03 2012
@@ -40,7 +40,27 @@ import java.util.concurrent.atomic.Atomi
 public class Start {
 
     private enum Control {
-        SHUTDOWN, STATUS
+        SHUTDOWN {
+            void processRequest(Start start, PrintWriter writer) {
+                if (start.serverState.get() == ServerState.STOPPING) {
+                    writer.println("IN-PROGRESS");
+                } else {
+                    writer.println("OK");
+                    writer.flush();
+                    start.stopServer();
+                }
+            }
+        }, STATUS {
+            void processRequest(Start start, PrintWriter writer) {
+                writer.println(start.serverState.get());
+            }
+        }, FAIL {
+            void processRequest(Start start, PrintWriter writer) {
+                writer.println("FAIL");
+            }
+        };
+
+        abstract void processRequest(Start start, PrintWriter writer);
     }
 
     private static void help(PrintStream out) {
@@ -361,26 +381,21 @@ public class Start {
                 reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
                 String request = reader.readLine();
                 writer = new PrintWriter(client.getOutputStream(), true);
+                Control control;
                 if (request != null && !request.isEmpty() && request.contains(":")) {
                     String key = request.substring(0, request.indexOf(':'));
-                    Control control = Control.valueOf(request.substring(request.indexOf(':') + 1));
                     if (key.equals(config.adminKey)) {
-                        if (control == Control.SHUTDOWN) {
-                            if (Start.this.serverState.get() == ServerState.STOPPING) {
-                                writer.println("IN-PROGRESS");
-                            } else {
-                                writer.println("OK");
-                                writer.flush();
-                                stopServer();
-                            }
-                            return;
-                        } else if (control == Control.STATUS) {
-                            writer.println(Start.this.serverState.get());
-                            return;
+                        control = Control.valueOf(request.substring(request.indexOf(':') + 1));
+                        if (control == null) {
+                            control = Control.FAIL;
                         }
+                    } else {
+                        control = Control.FAIL;
                     }
+                } else {
+                    control = Control.FAIL;
                 }
-                writer.println("FAIL");
+                control.processRequest(Start.this, writer);
             } finally {
                 if (reader != null) {
                     reader.close();