You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ba...@apache.org on 2015/05/04 03:42:34 UTC

svn commit: r1677506 - in /continuum/trunk/continuum-webapp/src/main: java/org/apache/continuum/web/action/ViewBuildsReportAction.java resources/localization/Continuum.properties

Author: batkinson
Date: Mon May  4 01:42:34 2015
New Revision: 1677506

URL: http://svn.apache.org/r1677506
Log:
Simplified report action result state handling and made them localizable.

Modified:
    continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/ViewBuildsReportAction.java
    continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/ViewBuildsReportAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/ViewBuildsReportAction.java?rev=1677506&r1=1677505&r2=1677506&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/ViewBuildsReportAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/ViewBuildsReportAction.java Mon May  4 01:42:34 2015
@@ -40,6 +40,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -63,6 +64,59 @@ public class ViewBuildsReportAction
         new String[] { "MM/dd/yy", "MM/dd/yyyy", "MMMMM/dd/yyyy", "MMMMM/dd/yy", "dd MMMMM yyyy", "dd/MM/yy",
             "dd/MM/yyyy", "yyyy/MM/dd", "yyyy-MM-dd", "yyyy-dd-MM", "MM-dd-yyyy", "MM-dd-yy" };
 
+    /**
+     * Encapsulates constants relevant for build results and makes them localizable.
+     */
+    public enum ResultState
+    {
+        OK( ContinuumProjectState.OK, "projectBuilds.report.resultOk" ),
+        FAILED( ContinuumProjectState.FAILED, "projectBuilds.report.resultFailed" ),
+        ERROR( ContinuumProjectState.ERROR, "projectBuilds.report.resultError" ),
+        BUILDING( ContinuumProjectState.BUILDING, "projectBuilds.report.resultBuilding" ),
+        CANCELLED( ContinuumProjectState.CANCELLED, "projectBuilds.report.resultCanceled" );
+
+        private static final Map<Integer, ResultState> dataMap;
+
+        static
+        {
+            dataMap = new HashMap<Integer, ResultState>();
+            for ( ResultState val : ResultState.values() )
+            {
+                dataMap.put( val.dataId, val );
+            }
+        }
+
+        private int dataId;
+
+        private String textKey;
+
+        ResultState( int dataId, String textKey )
+        {
+            this.dataId = dataId;
+            this.textKey = textKey;
+        }
+
+        public int getDataId()
+        {
+            return dataId;
+        }
+
+        public String getTextKey()
+        {
+            return textKey;
+        }
+
+        public static ResultState fromId( int state )
+        {
+            return dataMap.get( state );
+        }
+
+        public static boolean knownState( int state )
+        {
+            return dataMap.containsKey( state );
+        }
+    }
+
     private int buildStatus;
 
     private String triggeredBy = "";
@@ -112,13 +166,13 @@ public class ViewBuildsReportAction
     {
         super.prepare();
 
+        // Populate the state drop downs
         buildStatuses = new LinkedHashMap<Integer, String>();
         buildStatuses.put( 0, "ALL" );
-        buildStatuses.put( ContinuumProjectState.OK, "Ok" );
-        buildStatuses.put( ContinuumProjectState.FAILED, "Failed" );
-        buildStatuses.put( ContinuumProjectState.ERROR, "Error" );
-        buildStatuses.put( ContinuumProjectState.BUILDING, "Building" );
-        buildStatuses.put( ContinuumProjectState.CANCELLED, "Canceled" );
+        for ( ResultState state : ResultState.values() )
+        {
+            buildStatuses.put( state.getDataId(), getText( state.getTextKey() ) );
+        }
 
         projectGroups = new LinkedHashMap<Integer, String>();
         projectGroups.put( 0, "ALL" );
@@ -327,34 +381,10 @@ public class ViewBuildsReportAction
                         Project project = result.getProject();
                         ProjectGroup projectGroup = project.getProjectGroup();
 
-                        // Decode status into human-readable form
-                        String state;
-                        switch ( result.getState() )
-                        {
-                            case 2:
-                                state = "Ok";
-                                break;
-                            case 3:
-                                state = "Failed";
-                                break;
-                            case 4:
-                                state = "Error";
-                                break;
-                            case 6:
-                                state = "Building";
-                                break;
-                            case 7:
-                                state = "Checking Out";
-                                break;
-                            case 8:
-                                state = "Updating";
-                                break;
-                            case 11:
-                                state = "Canceled";
-                                break;
-                            default:
-                                state = "";
-                        }
+                        int resultState = result.getState();
+                        String stateName = ResultState.knownState( resultState ) ?
+                            getText( ResultState.fromId( resultState ).getTextKey() ) :
+                            getText( "projectBuilds.report.resultUnknown" );
 
                         String buildTime = dateTimeFormat.format( new Date( result.getStartTime() ) );
                         long buildDuration = ( result.getEndTime() - result.getStartTime() ) / 1000;
@@ -367,7 +397,7 @@ public class ViewBuildsReportAction
                                                               buildTime,
                                                               buildDuration,
                                                               result.getUsername(),
-                                                              state );
+                                                              stateName );
                         output.append( formattedLine );
 
                         if ( exported >= MAX_EXPORT_SIZE )

Modified: continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=1677506&r1=1677505&r2=1677506&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Mon May  4 01:42:34 2015
@@ -1333,6 +1333,12 @@ projectBuilds.report.invalidPage=Specifi
 projectBuilds.report.exportIOError=There was an input/output error during export: {0}
 projectBuilds.report.badDates=Failed to parse date(s): {0}
 projectBuilds.report.endBeforeStartDate=Invalid date range: start date must be earlier than the end date.
+projectBuilds.report.resultOk=Ok
+projectBuilds.report.resultFailed=Failed
+projectBuilds.report.resultError=Error
+projectBuilds.report.resultBuilding=Building
+projectBuilds.report.resultCanceled=Canceled
+projectBuilds.report.resultUnknown=Unknown
 
 build.project.success=successfully queued build
 build.projects.success=successfully queued builds