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