You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2005/12/16 16:04:04 UTC

svn commit: r357171 - in /maven/continuum/trunk/continuum-webapp/src/main: java/org/apache/maven/continuum/web/action/ resources/ resources/org/apache/maven/continuum/web/action/

Author: evenisse
Date: Fri Dec 16 07:03:43 2005
New Revision: 357171

URL: http://svn.apache.org/viewcvs?rev=357171&view=rev
Log:
Externalize validation, so execute methods are more simple

Added:
    maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ConfigurationAction-validation.xml   (with props)
    maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction-validation.xml   (with props)
    maven/continuum/trunk/continuum-webapp/src/main/resources/validators.xml   (with props)
Modified:
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/LoginAction.java
    maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction.properties
    maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java?rev=357171&r1=357170&r2=357171&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java Fri Dec 16 07:03:43 2005
@@ -17,6 +17,7 @@
  */
 
 import org.apache.maven.continuum.Continuum;
+import org.apache.maven.continuum.configuration.ConfigurationStoringException;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
@@ -24,9 +25,11 @@
 import java.net.URL;
 
 import com.opensymphony.xwork.ActionSupport;
+import com.opensymphony.xwork.Preparable;
 
 public class ConfigurationAction
     extends ActionSupport
+    implements Preparable
 {
     private Continuum continuum;
 
@@ -44,68 +47,52 @@
 
     private String companyUrl;
 
-    public String execute()
-        throws Exception
+    public void prepare()
     {
-        boolean hasErrors = false;
+        guestAccountEnabled = continuum.getConfiguration().isGuestAccountEnabled();
 
-        // TODO : Using WebWork Validators
-        if ( StringUtils.isEmpty( workingDirectory ) )
-        {
-            addFieldError( "workingDirectory", getText( "configuration.missing.workingDirectory" ) );
+        workingDirectory = continuum.getConfiguration().getWorkingDirectory().getAbsolutePath();
 
-            hasErrors = true;
-        }
+        buildOutputDirectory = continuum.getConfiguration().getBuildOutputDirectory().getAbsolutePath();
 
-        if ( StringUtils.isEmpty( buildOutputDirectory ) )
-        {
-            addFieldError( "buildOutputDirectory", getText( "configuration.missing.buildOutputDirectory" ) );
+        baseUrl = continuum.getConfiguration().getUrl();
 
-            hasErrors = true;
-        }
+        companyLogo = continuum.getConfiguration().getCompanyLogo();
 
-        if ( StringUtils.isEmpty( baseUrl ) )
-        {
-            addFieldError( "baseUrl", getText( "configuration.missing.baseUrl" ) );
+        companyName = continuum.getConfiguration().getCompanyName();
 
-            hasErrors = true;
-        }
-        else
-        {
-            try
-            {
-                URL url = new URL( baseUrl );
-            }
-            catch ( MalformedURLException e )
-            {
-                addFieldError( "baseUrl", getText( "configuration.invalid.baseUrl" ) );
+        companyUrl = continuum.getConfiguration().getCompanyUrl();
+    }
 
-                hasErrors = true;
-            }
-        }
+    public String execute()
+        throws Exception
+    {
+        continuum.getConfiguration().setGuestAccountEnabled( guestAccountEnabled );
 
-        if ( hasErrors )
-        {
-            return INPUT;
-        }
-        else
-        {
-            continuum.getConfiguration().setGuestAccountEnabled( guestAccountEnabled );
+        continuum.getConfiguration().setWorkingDirectory( new File( workingDirectory ) );
 
-            continuum.getConfiguration().setWorkingDirectory( new File( workingDirectory ) );
+        continuum.getConfiguration().setBuildOutputDirectory( new File( buildOutputDirectory ) );
 
-            continuum.getConfiguration().setBuildOutputDirectory( new File( buildOutputDirectory ) );
+        continuum.getConfiguration().setUrl( baseUrl );
 
-            continuum.getConfiguration().setUrl( baseUrl );
+        continuum.getConfiguration().setCompanyLogo( companyLogo );
 
-            continuum.getConfiguration().setCompanyLogo( companyLogo );
+        continuum.getConfiguration().setCompanyName( companyName );
 
-            continuum.getConfiguration().setCompanyName( companyName );
+        continuum.getConfiguration().setCompanyUrl( companyUrl );
 
-            continuum.getConfiguration().setCompanyUrl( companyUrl );
+        try
+        {
+            continuum.getConfiguration().store();
+        }
+        catch ( ConfigurationStoringException e )
+        {
+            addActionError( "Can't store configuration :" + e.getMessage() );
 
-            return SUCCESS;
+            return INPUT;
         }
+
+        return SUCCESS;
     }
 
     public String doDefault()
@@ -122,7 +109,7 @@
 
     public boolean isGuestAccountEnabled()
     {
-        return continuum.getConfiguration().isGuestAccountEnabled();
+        return guestAccountEnabled;
     }
 
     public void setGuestAccountEnabled( boolean guestAccountEnabled )
@@ -132,7 +119,7 @@
 
     public String getWorkingDirectory()
     {
-        return continuum.getConfiguration().getWorkingDirectory().getAbsolutePath();
+        return workingDirectory;
     }
 
     public void setWorkingDirectory( String workingDirectory )
@@ -142,7 +129,7 @@
 
     public String getBuildOutputDirectory()
     {
-        return continuum.getConfiguration().getBuildOutputDirectory().getAbsolutePath();
+        return buildOutputDirectory;
     }
 
     public void setBuildOutputDirectory( String buildOutputDirectory )
@@ -152,7 +139,7 @@
 
     public String getBaseUrl()
     {
-        return continuum.getConfiguration().getUrl();
+        return baseUrl;
     }
 
     public void setBaseUrl( String baseUrl )
@@ -162,7 +149,7 @@
 
     public String getCompanyLogo()
     {
-        return continuum.getConfiguration().getCompanyLogo();
+        return companyLogo;
     }
 
     public void setCompanyLogo( String companyLogo )
@@ -172,7 +159,7 @@
 
     public String getCompanyName()
     {
-        return continuum.getConfiguration().getCompanyName();
+        return companyName;
     }
 
     public void setCompanyName( String companyName )
@@ -182,7 +169,7 @@
 
     public String getCompanyUrl()
     {
-        return continuum.getConfiguration().getCompanyUrl();
+        return companyUrl;
     }
 
     public void setCompanyUrl( String companyUrl )

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/LoginAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/LoginAction.java?rev=357171&r1=357170&r2=357171&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/LoginAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/LoginAction.java Fri Dec 16 07:03:43 2005
@@ -22,25 +22,22 @@
 public class LoginAction
     extends ActionSupport
 {
-    private String username;
+    private String username = "";
 
-    private String password;
+    private String password = "";
 
+    /**
+     * Execute the login action
+     */
     public String execute()
         throws Exception
     {
-        //TODO
-        if ( StringUtils.isEmpty( username ) || StringUtils.isEmpty( password ) || !"testuser".equals( username ) )
-        {
-            //TODO : i18n
-            addFieldError( "username", getText( "login.bad_login_password" ) );
-
-            return INPUT;
-        }
-
         return SUCCESS;
     }
 
+    /**
+     * Redirect to login view
+     */
     public String doDefault()
     {
         return INPUT;
@@ -49,6 +46,11 @@
     public String getUsername()
     {
         return username;
+    }
+
+    public String getPassword()
+    {
+        return password;
     }
 
     public void setUsername( String username )

Added: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ConfigurationAction-validation.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ConfigurationAction-validation.xml?rev=357171&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ConfigurationAction-validation.xml (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ConfigurationAction-validation.xml Fri Dec 16 07:03:43 2005
@@ -0,0 +1,22 @@
+<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+    <field name="workingDirectory">
+        <field-validator type="requiredstring">
+            <message key="configuration.missing.workingDirectory"/>
+        </field-validator>
+    </field>
+    <field name="buildOutputDirectory">
+        <field-validator type="requiredstring">
+            <message key="configuration.missing.buildOutputDirectory"/>
+        </field-validator>
+    </field>
+    <field name="baseUrl">
+        <field-validator type="requiredstring" short-circuit="true">
+            <message key="configuration.missing.baseUrl"/>
+        </field-validator>
+        <field-validator type="url">
+            <message key="configuration.invalid.baseUrl"/>
+        </field-validator>
+    </field>
+</validators>

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ConfigurationAction-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ConfigurationAction-validation.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction-validation.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction-validation.xml?rev=357171&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction-validation.xml (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction-validation.xml Fri Dec 16 07:03:43 2005
@@ -0,0 +1,14 @@
+<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+    <field name="username">
+        <field-validator type="required">
+            <message key="login.username.required"/>
+        </field-validator>
+    </field>
+    <field name="password">
+        <field-validator type="required">
+            <message key="login.password.required"/>
+        </field-validator>
+    </field>
+</validators>

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction-validation.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction.properties
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction.properties?rev=357171&r1=357170&r2=357171&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction.properties (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/LoginAction.properties Fri Dec 16 07:03:43 2005
@@ -1 +1,3 @@
+login.username.required = Username is required!
+login.password.required = Password is required!
 login.bad_login_password = Username/password incorrect

Added: maven/continuum/trunk/continuum-webapp/src/main/resources/validators.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/validators.xml?rev=357171&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/validators.xml (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/validators.xml Fri Dec 16 07:03:43 2005
@@ -0,0 +1,13 @@
+<validators>
+    <validator name="required" class="com.opensymphony.webwork.validators.JavaScriptRequiredFieldValidator"/>
+    <validator name="requiredstring" class="com.opensymphony.webwork.validators.JavaScriptRequiredStringValidator"/>
+    <validator name="int" class="com.opensymphony.webwork.validators.JavaScriptIntRangeFieldValidator"/>
+    <validator name="date" class="com.opensymphony.webwork.validators.JavaScriptDateRangeFieldValidator"/>
+    <validator name="expression" class="com.opensymphony.xwork.validator.validators.ExpressionValidator"/>
+    <validator name="fieldexpression" class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator"/>
+    <validator name="email" class="com.opensymphony.webwork.validators.JavaScriptEmailValidator"/>
+    <validator name="url" class="com.opensymphony.webwork.validators.JavaScriptURLValidator"/>
+    <validator name="visitor" class="com.opensymphony.webwork.validators.JavaScriptVisitorFieldValidator"/>
+    <validator name="conversion" class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator"/>
+    <validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>
+</validators>
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/validators.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/validators.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml?rev=357171&r1=357170&r2=357171&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml Fri Dec 16 07:03:43 2005
@@ -5,7 +5,23 @@
     <include file="webwork-default.xml"/>
 
     <package name="default" extends="webwork-default">
-        <default-interceptor-ref name="completeStack"/>
+        <interceptors>
+            <interceptor-stack name="defaultContinuumStack">
+                <interceptor-ref name="prepare"/>
+                <interceptor-ref name="servlet-config"/>
+                <interceptor-ref name="chain"/>
+                <interceptor-ref name="model-driven"/>
+                <interceptor-ref name="component"/>
+                <interceptor-ref name="fileUpload"/>
+                <interceptor-ref name="static-params"/>
+                <interceptor-ref name="params"/>
+                <!-- interceptor-ref name="conversionError"/ -->
+                <interceptor-ref name="validation"/>
+                <interceptor-ref name="workflow"/>
+            </interceptor-stack>
+        </interceptors>
+
+        <default-interceptor-ref name="defaultContinuumStack"/>
 
         <action name="configuration"
                 class="configurationAction">