You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2007/07/24 03:07:00 UTC
svn commit: r558904 - in
/maven/archiva/trunk/archiva-web/archiva-webapp/src/main:
java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java
resources/xwork.xml
Author: oching
Date: Mon Jul 23 18:06:56 2007
New Revision: 558904
URL: http://svn.apache.org/viewvc?view=rev&rev=558904
Log:
[MRM-326]
Submitted by Jan Ancajas
- Added validation in ConfigureRepositoryAction
- Added input and error results in saveRepository (xwork.xml)
Modified:
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java?view=diff&rev=558904&r1=558903&r2=558904
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java Mon Jul 23 18:06:56 2007
@@ -26,6 +26,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.common.utils.PathUtil;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.InvalidConfigurationException;
import org.apache.maven.archiva.configuration.RepositoryConfiguration;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
@@ -40,6 +41,7 @@
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
import org.codehaus.plexus.registry.RegistryException;
+import org.codehaus.plexus.scheduler.CronExpressionValidator;
import org.codehaus.plexus.xwork.action.PlexusActionSupport;
import java.io.File;
@@ -212,13 +214,19 @@
{
String mode = getMode();
String repoId = getRepository().getId();
+ boolean containsError = false;
getLogger().info( ".save(" + mode + ":" + repoId + ")" );
- if ( StringUtils.isBlank( repository.getId() ) )
+ containsError = validateFields(mode);
+
+ if ( containsError && StringUtils.equalsIgnoreCase( "add", mode ) )
+ {
+ return INPUT;
+ }
+ else if ( containsError && StringUtils.equalsIgnoreCase( "edit", mode ))
{
- addFieldError( "id", "A repository with a blank id cannot be saved." );
- return SUCCESS;
+ return ERROR;
}
if ( StringUtils.equalsIgnoreCase( "edit", mode ) )
@@ -249,6 +257,45 @@
}
return SUCCESS;
+ }
+
+ private boolean validateFields(String mode)
+ {
+ boolean containsError = false;
+ CronExpressionValidator validator = new CronExpressionValidator();
+ Configuration config = archivaConfiguration.getConfiguration();
+ String repoId = getRepository().getId();
+
+ if ( StringUtils.isBlank( repoId ) )
+ {
+ addFieldError( "repository.id", "You must enter a repository identifier." );
+ containsError = true;
+ }
+ //if edit mode, do not validate existence of repoId
+ else if ( config.findRepositoryById( repoId ) != null && !StringUtils.equalsIgnoreCase( mode, "edit" ) )
+ {
+ addFieldError( "repository.id", "Unable to add new repository with id [" + repoId + "], that id already exists." );
+ containsError = true;
+ }
+
+ if ( StringUtils.isBlank( repository.getUrl() ) )
+ {
+
+ addFieldError( "repository.url", "You must enter a directory or url." );
+ containsError = true;
+ }
+ if ( StringUtils.isBlank( repository.getName() ) )
+ {
+ addFieldError( "repository.name", "You must enter a repository name." );
+ containsError = true;
+ }
+ if ( !validator.validate( repository.getRefreshCronExpression() ) )
+ {
+ addFieldError( "repository.refreshCronExpression", "Invalid cron expression." );
+ containsError = true;
+ }
+
+ return containsError;
}
public void setMode( String mode )
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml?view=diff&rev=558904&r1=558903&r2=558904
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml Mon Jul 23 18:06:56 2007
@@ -258,6 +258,8 @@
<action name="saveRepository" class="configureRepositoryAction" method="save">
<result name="success" type="redirect-action">repositories</result>
+ <result name="input">/WEB-INF/jsp/admin/addRepository.jsp</result>
+ <result name="error">/WEB-INF/jsp/admin/editRepository.jsp</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>