archiva-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brett Porter <br...@apache.org>
Subject Re: svn commit: r442925 - in /maven/archiva/trunk/archiva-webapp/src/main: java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java webapp/WEB-INF/jsp/admin/configure.jsp
Date Wed, 13 Sep 2006 13:52:47 GMT
You now have the validation in there twice - it should be removed  
from execute() shouldn't it?

I think I'd construct the cron expression using a method as needed  
rather than sticking it in a field, too.

What do you think?

On 13/09/2006, at 8:11 PM, oching@apache.org wrote:

> Author: oching
> Date: Wed Sep 13 03:11:04 2006
> New Revision: 442925
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=442925
> Log:
> Revised the validation for cron expression. Also revised the  
> configure.jsp page (for the cron editor) -- removed the <table> tags.
>
> Modified:
>     maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/ 
> maven/archiva/web/action/admin/ConfigureAction.java
>     maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/ 
> admin/configure.jsp
>
> Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/ 
> apache/maven/archiva/web/action/admin/ConfigureAction.java
> URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva- 
> webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ 
> ConfigureAction.java?view=diff&rev=442925&r1=442924&r2=442925
> ====================================================================== 
> ========
> --- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/ 
> maven/archiva/web/action/admin/ConfigureAction.java (original)
> +++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/ 
> maven/archiva/web/action/admin/ConfigureAction.java Wed Sep 13  
> 03:11:04 2006
> @@ -18,6 +18,7 @@
>
>  import com.opensymphony.xwork.ModelDriven;
>  import com.opensymphony.xwork.Preparable;
> +import com.opensymphony.xwork.Validateable;
>  import org.apache.maven.archiva.configuration.Configuration;
>  import  
> org.apache.maven.archiva.configuration.ConfigurationChangeException;
>  import org.apache.maven.archiva.configuration.ConfigurationStore;
> @@ -38,7 +39,7 @@
>   */
>  public class ConfigureAction
>      extends PlexusActionSupport
> -    implements ModelDriven, Preparable
> +    implements ModelDriven, Preparable, Validateable
>  {
>      /**
>       * @plexus.requirement
> @@ -66,6 +67,21 @@
>
>      private String year;
>
> +    private String cronEx = "";
> +
> +    public void validate()
> +    {
> +        cronEx = ( second + " " + minute + " " + hour + " " +  
> dayOfMonth + " " + month +
> +                    " " + dayOfWeek + " " + year ).trim();
> +
> +        //validate cron expression
> +        cronValidator = new CronExpressionValidator();
> +
> +        if( !cronValidator.validate( cronEx ) )
> +        {
> +            addActionError( "Invalid Cron Expression" );
> +        }
> +    }
>
>      public String execute()
>          throws IOException, RepositoryIndexException,  
> RepositoryIndexSearchException, ConfigurationStoreException,
>
> Modified: maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB- 
> INF/jsp/admin/configure.jsp
> URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva- 
> webapp/src/main/webapp/WEB-INF/jsp/admin/configure.jsp? 
> view=diff&rev=442925&r1=442924&r2=442925
> ====================================================================== 
> ========
> --- maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/ 
> admin/configure.jsp (original)
> +++ maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/ 
> admin/configure.jsp Wed Sep 13 03:11:04 2006
> @@ -26,95 +26,47 @@
>
>  <h1>Configuration</h1>
>
> +<div class="errors">
> +  <ww:actionerror />
> +</div>
> +
>  <div id="contentArea">
>    <ww:actionmessage/>
>    <ww:form method="post" action="saveConfiguration" namespace="/ 
> admin" validate="true">
> +    <ww:textfield name="indexPath" label="Index Directory"  
> size="100" required="true"/>
> +    <!--ww:textfield name="indexerCronExpression" label="Indexing  
> Schedule"/-->
> +
> +    <ww:label value="Indexing Schedule" labelposition="top"/>
> +      <ww:div>
> +        <ww:textfield name="second" label="Second" size="2"/>
> +        <ww:textfield name="minute" label="Minute"  
> labelposition="left" size="2"/>
> +        <ww:textfield name="hour" label="Hour" size="2"/>
> +        <ww:textfield name="dayOfMonth" label="Day Of Month"  
> size="2"/>
> +        <ww:textfield name="month" label="Month" size="2"/>
> +        <ww:textfield name="dayOfWeek" label="Day Of Week" size="2"/>
> +        <ww:textfield name="year" label="Year" size="4"/>
> +      </ww:div>
> +
> +    <ww:hidden name="proxy.protocol" value="http"/>
> +    <ww:textfield name="proxy.host" label="HTTP Proxy Host"/>
> +    <ww:textfield name="proxy.port" label="HTTP Proxy Port"/>
> +    <ww:textfield name="proxy.username" label="HTTP Proxy Username"/>
> +    <ww:password name="proxy.password" label="HTTP Proxy Password"/>
>
> -    <div>
> -    <table>
> -        <tbody>
> -          <tr>
> -            <th><font size="2"><ww:label theme="simple"  
> value="Indexing Directory*:"/></font></th>
> -            <td><ww:textfield name="indexPath" theme="simple"  
> size="140" required="true"/></td>
> -          </tr>
> -          <tr>
> -            <th><font size="2"><ww:label theme="simple"  
> value="Indexing Schedule:"/></font></th>
> -            <td>
> -              <table>
> -                <tr>
> -                  <th><ww:label theme="simple" value="Second:"/></th>
> -                  <td><ww:textfield name="second" theme="simple"  
> size="2"/></td>
> -
> -                  <th><ww:label theme="simple" value="Minute:"/></th>
> -                  <td><ww:textfield name="minute" theme="simple"  
> size="2"/></td>
> -
> -                  <th><ww:label theme="simple" value="Hour:"/></th>
> -                  <td><ww:textfield name="hour" theme="simple"  
> size="2"/></td>
> -
> -                  <th><ww:label theme="simple" value="Day of  
> Month:"/></th>
> -                  <td><ww:textfield name="dayOfMonth"  
> theme="simple" size="2"/></td>
> -
> -                  <th><ww:label theme="simple" value="Month:"/></th>
> -                  <td><ww:textfield name="month" theme="simple"  
> size="2"/></td>
> -
> -                  <th><ww:label theme="simple" value="Day of  
> Week:"/></th>
> -                  <td><ww:textfield name="dayOfWeek"  
> theme="simple" size="2"/></td>
> -
> -                  <th><ww:label theme="simple" value="Year  
> [optional]:"/></th>
> -                  <td><ww:textfield name="year" theme="simple"  
> size="4"/></td>
> -                </tr>
> -              </table>
> -            </td>
> -          </tr>
> -        <ww:hidden name="proxy.protocol" value="http"/>
> -        <tr>
> -            <th><font size="2"><ww:label theme="simple"  
> value="HTTP Proxy Host:"/></font></th>
> -            <td><ww:textfield name="proxy.host" theme="simple"/></td>
> -        </tr>
> -        <tr>
> -            <th><font size="2"><ww:label theme="simple"  
> value="HTTP Proxy Port:"/></font></th>
> -            <td><ww:textfield name="proxy.port" theme="simple"/></td>
> -        </tr>
> -        <tr>
> -            <th><font size="2"><ww:label theme="simple"  
> value="HTTP Proxy Username:"/></font></th>
> -            <td><ww:textfield name="proxy.username" theme="simple"/ 
> ></td>
> -        </tr>
> -        <tr>
> -            <th><font size="2"><ww:label theme="simple"  
> value="HTTP Proxy Password:"/></font></th>
> -            <td><ww:textfield name="proxy.password" theme="simple"/ 
> ></td>
> -        </tr>
> -        </tbody>
> -    </table>
> -    </div>
> -
> -    <div>
> -      <p><i>For valid cron expression values for the Indexing  
> Schedule, see <ww:a href="http://www.opensymphony.com/quartz/api/ 
> org/quartz/CronExpression.html">here</ww:a></i></p>
> -    </div>
> -    <div>
> -      <table>
> -        <tr>
> -          <b>Indexing Schedule Keys:</b>
> -        </tr>
> -        <tr>
> -          <th>*</th>
> -          <td>every</td>
> -        </tr>
> -        <tr>
> -          <th>?</th>
> -          <td>any</td>
> -        </tr>
> -        <tr>
> -          <th>-</th>
> -          <td>ranges</td>
> -        </tr>
> -        <tr>
> -          <th>/</th>
> -          <td>increments</td>
> -        </tr>
> -      </table>
> -    </div>
>      <ww:submit value="Save Configuration"/>
> +
> +    <ww:div>
> +      <ww:label value="Indexing Schedule Keys:" labelposition="top"/>
> +      <ww:label value="* = every" labelposition="top"/>
> +      <ww:label value="? = any" labelposition="top"/>
> +      <ww:label value="- = ranges" labelposition="top"/>
> +      <ww:label value="/ = increments" labelposition="top"/>
> +    </ww:div>
>    </ww:form>
> +
> +  <ww:div>
> +    <p><i>For valid cron expression values for the Indexing  
> Schedule, see <ww:a href="http://www.opensymphony.com/quartz/api/ 
> org/quartz/CronExpression.html">here</ww:a></i></p>
> +  </ww:div>
>
>    <script type="text/javascript">
>      document.getElementById("saveConfiguration_indexPath").focus();
>

Mime
View raw message