[MRM-1511] api to configure LegacyArtifactPath : use it in webapp

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1166883 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2011-09-08 20:15:50 +00:00
parent 1bb10ee01e
commit 146c63dd72
4 changed files with 171 additions and 162 deletions

View File

@ -19,17 +19,14 @@ package org.apache.maven.archiva.web.action.admin.legacy;
* under the License. * under the License.
*/ */
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
import org.apache.maven.archiva.configuration.LegacyArtifactPath;
import org.apache.maven.archiva.model.ArtifactReference;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
import org.codehaus.plexus.registry.RegistryException;
import com.opensymphony.xwork2.Preparable; import com.opensymphony.xwork2.Preparable;
import com.opensymphony.xwork2.Validateable; import com.opensymphony.xwork2.Validateable;
import org.apache.archiva.admin.repository.RepositoryAdminException;
import org.apache.archiva.admin.repository.admin.ArchivaAdministration;
import org.apache.archiva.admin.repository.admin.LegacyArtifactPath;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.model.ArtifactReference;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
import org.apache.maven.archiva.web.action.AbstractActionSupport; import org.apache.maven.archiva.web.action.AbstractActionSupport;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -50,10 +47,10 @@ public class AddLegacyArtifactPathAction
{ {
@Inject @Inject
private ArchivaConfiguration archivaConfiguration; private ArchivaAdministration archivaAdministration;
@Inject @Inject
@Named(value = "managedRepositoryContent#legacy") @Named( value = "managedRepositoryContent#legacy" )
private ManagedRepositoryContent repositoryContent; private ManagedRepositoryContent repositoryContent;
@ -82,28 +79,36 @@ public class AddLegacyArtifactPathAction
public String commit() public String commit()
{ {
this.legacyArtifactPath.setArtifact( this.groupId + ":" + this.artifactId + ":" + this.version + ":" + this.legacyArtifactPath.setArtifact(
this.classifier + ":" + this.type ); this.groupId + ":" + this.artifactId + ":" + this.version + ":" + this.classifier + ":" + this.type );
// Check the proposed Artifact macthes the path // Check the proposed Artifact macthes the path
ArtifactReference artifact = new ArtifactReference(); ArtifactReference artifact = new ArtifactReference();
artifact.setGroupId( this.groupId ); artifact.setGroupId( this.groupId );
artifact.setArtifactId( this.artifactId ); artifact.setArtifactId( this.artifactId );
artifact.setClassifier( this.classifier ); artifact.setClassifier( this.classifier );
artifact.setVersion( this.version ); artifact.setVersion( this.version );
artifact.setType( this.type ); artifact.setType( this.type );
String path = repositoryContent.toPath( artifact ); String path = repositoryContent.toPath( artifact );
if ( ! path.equals( this.legacyArtifactPath.getPath() ) ) if ( !path.equals( this.legacyArtifactPath.getPath() ) )
{ {
addActionError( "artifact reference does not match the initial path : " + path ); addActionError( "artifact reference does not match the initial path : " + path );
return ERROR; return ERROR;
} }
Configuration configuration = archivaConfiguration.getConfiguration(); try
configuration.addLegacyArtifactPath( legacyArtifactPath ); {
return saveConfiguration( configuration ); getArchivaAdministration().addLegacyArtifactPath( legacyArtifactPath );
}
catch ( RepositoryAdminException e )
{
log.error( e.getMessage(), e );
addActionError( "Error occured " + e.getMessage() );
return INPUT;
}
return SUCCESS;
} }
public LegacyArtifactPath getLegacyArtifactPath() public LegacyArtifactPath getLegacyArtifactPath()
@ -122,55 +127,34 @@ public class AddLegacyArtifactPathAction
trimAllRequestParameterValues(); trimAllRequestParameterValues();
} }
protected String saveConfiguration( Configuration configuration )
{
try
{
archivaConfiguration.save( configuration );
addActionMessage( "Successfully saved configuration" );
}
catch ( IndeterminateConfigurationException e )
{
addActionError( e.getMessage() );
return INPUT;
}
catch ( RegistryException e )
{
addActionError( "Configuration Registry Exception: " + e.getMessage() );
return INPUT;
}
return SUCCESS;
}
private void trimAllRequestParameterValues() private void trimAllRequestParameterValues()
{ {
if(StringUtils.isNotEmpty(legacyArtifactPath.getPath())) if ( StringUtils.isNotEmpty( legacyArtifactPath.getPath() ) )
{ {
legacyArtifactPath.setPath(legacyArtifactPath.getPath().trim()); legacyArtifactPath.setPath( legacyArtifactPath.getPath().trim() );
} }
if(StringUtils.isNotEmpty(groupId)) if ( StringUtils.isNotEmpty( groupId ) )
{ {
groupId = groupId.trim(); groupId = groupId.trim();
} }
if(StringUtils.isNotEmpty(artifactId)) if ( StringUtils.isNotEmpty( artifactId ) )
{ {
artifactId = artifactId.trim(); artifactId = artifactId.trim();
} }
if(StringUtils.isNotEmpty(version)) if ( StringUtils.isNotEmpty( version ) )
{ {
version = version.trim(); version = version.trim();
} }
if(StringUtils.isNotEmpty(classifier)) if ( StringUtils.isNotEmpty( classifier ) )
{ {
classifier = classifier.trim(); classifier = classifier.trim();
} }
if(StringUtils.isNotEmpty(type)) if ( StringUtils.isNotEmpty( type ) )
{ {
type = type.trim(); type = type.trim();
} }
@ -225,4 +209,14 @@ public class AddLegacyArtifactPathAction
{ {
this.type = type; this.type = type;
} }
public ArchivaAdministration getArchivaAdministration()
{
return archivaAdministration;
}
public void setArchivaAdministration( ArchivaAdministration archivaAdministration )
{
this.archivaAdministration = archivaAdministration;
}
} }

View File

@ -19,17 +19,13 @@ package org.apache.maven.archiva.web.action.admin.legacy;
* under the License. * under the License.
*/ */
import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.archiva.admin.repository.RepositoryAdminException;
import org.apache.maven.archiva.configuration.Configuration; import org.apache.archiva.admin.repository.admin.ArchivaAdministration;
import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
import org.apache.maven.archiva.configuration.LegacyArtifactPath;
import org.apache.maven.archiva.web.action.AbstractActionSupport; import org.apache.maven.archiva.web.action.AbstractActionSupport;
import org.codehaus.plexus.registry.RegistryException;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import javax.inject.Inject; import javax.inject.Inject;
import java.util.Iterator;
/** /**
* Delete a LegacyArtifactPath to archiva configuration * Delete a LegacyArtifactPath to archiva configuration
@ -43,44 +39,22 @@ public class DeleteLegacyArtifactPathAction
{ {
@Inject @Inject
private ArchivaConfiguration archivaConfiguration; private ArchivaAdministration archivaAdministration;
private String path; private String path;
public String delete() public String delete()
{ {
log.info( "remove [" + path + "] from legacy artifact path resolution" ); log.info( "remove [" + path + "] from legacy artifact path resolution" );
Configuration configuration = archivaConfiguration.getConfiguration();
for ( Iterator<LegacyArtifactPath> iterator = configuration.getLegacyArtifactPaths().iterator();
iterator.hasNext(); )
{
LegacyArtifactPath legacyArtifactPath = (LegacyArtifactPath) iterator.next();
if ( legacyArtifactPath.match( path ) )
{
iterator.remove();
}
}
return saveConfiguration( configuration );
}
protected String saveConfiguration( Configuration configuration )
{
try try
{ {
archivaConfiguration.save( configuration ); getArchivaAdministration().deleteLegacyArtifactPath( path );
addActionMessage( "Successfully saved configuration" );
} }
catch ( IndeterminateConfigurationException e ) catch ( RepositoryAdminException e )
{ {
addActionError( e.getMessage() ); log.error( e.getMessage(), e );
return INPUT; addActionError( "Exception during delete " + e.getMessage() );
} }
catch ( RegistryException e )
{
addActionError( "Configuration Registry Exception: " + e.getMessage() );
return INPUT;
}
return SUCCESS; return SUCCESS;
} }
@ -93,4 +67,14 @@ public class DeleteLegacyArtifactPathAction
{ {
this.path = path; this.path = path;
} }
public ArchivaAdministration getArchivaAdministration()
{
return archivaAdministration;
}
public void setArchivaAdministration( ArchivaAdministration archivaAdministration )
{
this.archivaAdministration = archivaAdministration;
}
} }

View File

@ -20,12 +20,12 @@ package org.apache.maven.archiva.web.action.admin.legacy;
*/ */
import com.opensymphony.xwork2.Preparable; import com.opensymphony.xwork2.Preparable;
import org.apache.archiva.admin.repository.RepositoryAdminException;
import org.apache.archiva.admin.repository.admin.ArchivaAdministration;
import org.apache.archiva.admin.repository.admin.LegacyArtifactPath;
import org.apache.archiva.security.common.ArchivaRoleConstants; import org.apache.archiva.security.common.ArchivaRoleConstants;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.LegacyArtifactPath;
import org.apache.maven.archiva.web.action.AbstractActionSupport;
import org.apache.archiva.web.util.ContextUtils; import org.apache.archiva.web.util.ContextUtils;
import org.apache.maven.archiva.web.action.AbstractActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletRequestAware;
import org.codehaus.plexus.redback.rbac.Resource; import org.codehaus.plexus.redback.rbac.Resource;
import org.codehaus.redback.integration.interceptor.SecureAction; import org.codehaus.redback.integration.interceptor.SecureAction;
@ -52,7 +52,7 @@ public class LegacyArtifactPathAction
{ {
@Inject @Inject
private ArchivaConfiguration archivaConfiguration; private ArchivaAdministration archivaAdministration;
private List<LegacyArtifactPath> legacyArtifactPaths; private List<LegacyArtifactPath> legacyArtifactPaths;
@ -79,10 +79,9 @@ public class LegacyArtifactPathAction
} }
public void prepare() public void prepare()
throws RepositoryAdminException
{ {
Configuration config = archivaConfiguration.getConfiguration(); legacyArtifactPaths = new ArrayList<LegacyArtifactPath>( getArchivaAdministration().getLegacyArtifactPaths() );
legacyArtifactPaths = new ArrayList<LegacyArtifactPath>( config.getLegacyArtifactPaths() );
} }
public List<LegacyArtifactPath> getLegacyArtifactPaths() public List<LegacyArtifactPath> getLegacyArtifactPaths()
@ -94,4 +93,14 @@ public class LegacyArtifactPathAction
{ {
return baseUrl; return baseUrl;
} }
public ArchivaAdministration getArchivaAdministration()
{
return archivaAdministration;
}
public void setArchivaAdministration( ArchivaAdministration archivaAdministration )
{
this.archivaAdministration = archivaAdministration;
}
} }

View File

@ -20,17 +20,18 @@ package org.apache.maven.archiva.web.action.admin.legacy;
*/ */
import com.opensymphony.xwork2.validator.ActionValidatorManager; import com.opensymphony.xwork2.validator.ActionValidatorManager;
import junit.framework.TestCase;
import org.apache.archiva.admin.repository.admin.LegacyArtifactPath;
import org.apache.archiva.web.validator.utils.ValidatorUtil;
import org.apache.maven.archiva.web.action.admin.repositories.DefaultActionValidatorManagerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import junit.framework.TestCase; public class AddLegacyArtifactPathActionTest
import org.apache.maven.archiva.configuration.LegacyArtifactPath; extends TestCase
import org.apache.maven.archiva.web.action.admin.repositories.DefaultActionValidatorManagerFactory;
import org.apache.archiva.web.validator.utils.ValidatorUtil;
public class AddLegacyArtifactPathActionTest extends TestCase
{ {
private static final String EMPTY_STRING = ""; private static final String EMPTY_STRING = "";
@ -66,26 +67,29 @@ public class AddLegacyArtifactPathActionTest extends TestCase
private ActionValidatorManager actionValidatorManager; private ActionValidatorManager actionValidatorManager;
@Override @Override
public void setUp() throws Exception public void setUp()
throws Exception
{ {
addLegacyArtifactPathAction = new AddLegacyArtifactPathAction(); addLegacyArtifactPathAction = new AddLegacyArtifactPathAction();
DefaultActionValidatorManagerFactory factory = new DefaultActionValidatorManagerFactory(); DefaultActionValidatorManagerFactory factory = new DefaultActionValidatorManagerFactory();
actionValidatorManager = factory.createDefaultActionValidatorManager(); actionValidatorManager = factory.createDefaultActionValidatorManager();
} }
public void testStruts2ValidationFrameworkWithNullInputs() throws Exception public void testStruts2ValidationFrameworkWithNullInputs()
throws Exception
{ {
// prep // prep
LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath(null); LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( null );
populateAddLegacyArtifactPathActionFields(addLegacyArtifactPathAction, legacyArtifactPath, null, null, null, null, null); populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath, null, null, null,
null, null );
// test // test
actionValidatorManager.validate(addLegacyArtifactPathAction, EMPTY_STRING); actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
// verify // verify
assertTrue(addLegacyArtifactPathAction.hasFieldErrors()); assertTrue( addLegacyArtifactPathAction.hasFieldErrors() );
Map<String, List<String>> fieldErrors = addLegacyArtifactPathAction.getFieldErrors(); Map<String, List<String>> fieldErrors = addLegacyArtifactPathAction.getFieldErrors();
@ -94,39 +98,41 @@ public class AddLegacyArtifactPathActionTest extends TestCase
// populate // populate
List<String> expectedErrorMessages = new ArrayList<String>(); List<String> expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a legacy path."); expectedErrorMessages.add( "You must enter a legacy path." );
expectedFieldErrors.put("legacyArtifactPath.path", expectedErrorMessages); expectedFieldErrors.put( "legacyArtifactPath.path", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a groupId."); expectedErrorMessages.add( "You must enter a groupId." );
expectedFieldErrors.put("groupId", expectedErrorMessages); expectedFieldErrors.put( "groupId", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter an artifactId."); expectedErrorMessages.add( "You must enter an artifactId." );
expectedFieldErrors.put("artifactId", expectedErrorMessages); expectedFieldErrors.put( "artifactId", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a version."); expectedErrorMessages.add( "You must enter a version." );
expectedFieldErrors.put("version", expectedErrorMessages); expectedFieldErrors.put( "version", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a type."); expectedErrorMessages.add( "You must enter a type." );
expectedFieldErrors.put("type", expectedErrorMessages); expectedFieldErrors.put( "type", expectedErrorMessages );
ValidatorUtil.assertFieldErrors(expectedFieldErrors, fieldErrors); ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors );
} }
public void testStruts2ValidationFrameworkWithBlankInputs() throws Exception public void testStruts2ValidationFrameworkWithBlankInputs()
throws Exception
{ {
// prep // prep
LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath(EMPTY_STRING); LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( EMPTY_STRING );
populateAddLegacyArtifactPathActionFields(addLegacyArtifactPathAction, legacyArtifactPath, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING); populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath, EMPTY_STRING,
EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING );
// test // test
actionValidatorManager.validate(addLegacyArtifactPathAction, EMPTY_STRING); actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
// verify // verify
assertTrue(addLegacyArtifactPathAction.hasFieldErrors()); assertTrue( addLegacyArtifactPathAction.hasFieldErrors() );
Map<String, List<String>> fieldErrors = addLegacyArtifactPathAction.getFieldErrors(); Map<String, List<String>> fieldErrors = addLegacyArtifactPathAction.getFieldErrors();
@ -135,39 +141,43 @@ public class AddLegacyArtifactPathActionTest extends TestCase
// populate // populate
List<String> expectedErrorMessages = new ArrayList<String>(); List<String> expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a legacy path."); expectedErrorMessages.add( "You must enter a legacy path." );
expectedFieldErrors.put("legacyArtifactPath.path", expectedErrorMessages); expectedFieldErrors.put( "legacyArtifactPath.path", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a groupId."); expectedErrorMessages.add( "You must enter a groupId." );
expectedFieldErrors.put("groupId", expectedErrorMessages); expectedFieldErrors.put( "groupId", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter an artifactId."); expectedErrorMessages.add( "You must enter an artifactId." );
expectedFieldErrors.put("artifactId", expectedErrorMessages); expectedFieldErrors.put( "artifactId", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a version."); expectedErrorMessages.add( "You must enter a version." );
expectedFieldErrors.put("version", expectedErrorMessages); expectedFieldErrors.put( "version", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("You must enter a type."); expectedErrorMessages.add( "You must enter a type." );
expectedFieldErrors.put("type", expectedErrorMessages); expectedFieldErrors.put( "type", expectedErrorMessages );
ValidatorUtil.assertFieldErrors(expectedFieldErrors, fieldErrors); ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors );
} }
public void testStruts2ValidationFrameworkWithInvalidInputs() throws Exception public void testStruts2ValidationFrameworkWithInvalidInputs()
throws Exception
{ {
// prep // prep
LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath(LEGACY_ARTIFACT_PATH_PATH_INVALID_INPUT); LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( LEGACY_ARTIFACT_PATH_PATH_INVALID_INPUT );
populateAddLegacyArtifactPathActionFields(addLegacyArtifactPathAction, legacyArtifactPath, GROUP_ID_INVALID_INPUT, ARTIFACT_ID_INVALID_INPUT, VERSION_INVALID_INPUT, CLASSIFIER_INVALID_INPUT, TYPE_INVALID_INPUT); populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath,
GROUP_ID_INVALID_INPUT, ARTIFACT_ID_INVALID_INPUT,
VERSION_INVALID_INPUT, CLASSIFIER_INVALID_INPUT,
TYPE_INVALID_INPUT );
// test // test
actionValidatorManager.validate(addLegacyArtifactPathAction, EMPTY_STRING); actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
// verify // verify
assertTrue(addLegacyArtifactPathAction.hasFieldErrors()); assertTrue( addLegacyArtifactPathAction.hasFieldErrors() );
Map<String, List<String>> fieldErrors = addLegacyArtifactPathAction.getFieldErrors(); Map<String, List<String>> fieldErrors = addLegacyArtifactPathAction.getFieldErrors();
@ -176,59 +186,71 @@ public class AddLegacyArtifactPathActionTest extends TestCase
// populate // populate
List<String> expectedErrorMessages = new ArrayList<String>(); List<String> expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)."); expectedErrorMessages.add(
expectedFieldErrors.put("legacyArtifactPath.path", expectedErrorMessages); "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
expectedFieldErrors.put( "legacyArtifactPath.path", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)."); expectedErrorMessages.add(
expectedFieldErrors.put("groupId", expectedErrorMessages); "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
expectedFieldErrors.put( "groupId", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)."); expectedErrorMessages.add(
expectedFieldErrors.put("artifactId", expectedErrorMessages); "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
expectedFieldErrors.put( "artifactId", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)."); expectedErrorMessages.add(
expectedFieldErrors.put("version", expectedErrorMessages); "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
expectedFieldErrors.put( "version", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)."); expectedErrorMessages.add(
expectedFieldErrors.put("classifier", expectedErrorMessages); "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
expectedFieldErrors.put( "classifier", expectedErrorMessages );
expectedErrorMessages = new ArrayList<String>(); expectedErrorMessages = new ArrayList<String>();
expectedErrorMessages.add("Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)."); expectedErrorMessages.add(
expectedFieldErrors.put("type", expectedErrorMessages); "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
expectedFieldErrors.put( "type", expectedErrorMessages );
ValidatorUtil.assertFieldErrors(expectedFieldErrors, fieldErrors); ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors );
} }
public void testStruts2ValidationFrameworkWithValidInputs() throws Exception public void testStruts2ValidationFrameworkWithValidInputs()
throws Exception
{ {
// prep // prep
LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath(LEGACY_ARTIFACT_PATH_PATH_VALID_INPUT); LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( LEGACY_ARTIFACT_PATH_PATH_VALID_INPUT );
populateAddLegacyArtifactPathActionFields(addLegacyArtifactPathAction, legacyArtifactPath, GROUP_ID_VALID_INPUT, ARTIFACT_ID_VALID_INPUT, VERSION_VALID_INPUT, CLASSIFIER_VALID_INPUT, TYPE_VALID_INPUT); populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath,
GROUP_ID_VALID_INPUT, ARTIFACT_ID_VALID_INPUT, VERSION_VALID_INPUT,
CLASSIFIER_VALID_INPUT, TYPE_VALID_INPUT );
// test // test
actionValidatorManager.validate(addLegacyArtifactPathAction, EMPTY_STRING); actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
// verify // verify
assertFalse(addLegacyArtifactPathAction.hasFieldErrors()); assertFalse( addLegacyArtifactPathAction.hasFieldErrors() );
} }
private LegacyArtifactPath createLegacyArtifactPath(String path) private LegacyArtifactPath createLegacyArtifactPath( String path )
{ {
LegacyArtifactPath legacyArtifactPath = new LegacyArtifactPath(); LegacyArtifactPath legacyArtifactPath = new LegacyArtifactPath();
legacyArtifactPath.setPath(path); legacyArtifactPath.setPath( path );
return legacyArtifactPath; return legacyArtifactPath;
} }
private void populateAddLegacyArtifactPathActionFields(AddLegacyArtifactPathAction addLegacyArtifactPathAction, LegacyArtifactPath legacyArtifactPath, String groupId, String artifactId, String version, String classifier, String type) private void populateAddLegacyArtifactPathActionFields( AddLegacyArtifactPathAction addLegacyArtifactPathAction,
LegacyArtifactPath legacyArtifactPath, String groupId,
String artifactId, String version, String classifier,
String type )
{ {
addLegacyArtifactPathAction.setLegacyArtifactPath(legacyArtifactPath); addLegacyArtifactPathAction.setLegacyArtifactPath( legacyArtifactPath );
addLegacyArtifactPathAction.setGroupId(groupId); addLegacyArtifactPathAction.setGroupId( groupId );
addLegacyArtifactPathAction.setArtifactId(artifactId); addLegacyArtifactPathAction.setArtifactId( artifactId );
addLegacyArtifactPathAction.setVersion(version); addLegacyArtifactPathAction.setVersion( version );
addLegacyArtifactPathAction.setClassifier(classifier); addLegacyArtifactPathAction.setClassifier( classifier );
addLegacyArtifactPathAction.setType(type); addLegacyArtifactPathAction.setType( type );
} }
} }