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();