mirror of https://github.com/apache/archiva.git
[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:
parent
1bb10ee01e
commit
146c63dd72
|
@ -19,17 +19,14 @@ package org.apache.maven.archiva.web.action.admin.legacy;
|
|||
* 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.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.maven.archiva.model.ArtifactReference;
|
||||
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
|
||||
import org.apache.maven.archiva.web.action.AbstractActionSupport;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
@ -50,7 +47,7 @@ public class AddLegacyArtifactPathAction
|
|||
{
|
||||
|
||||
@Inject
|
||||
private ArchivaConfiguration archivaConfiguration;
|
||||
private ArchivaAdministration archivaAdministration;
|
||||
|
||||
@Inject
|
||||
@Named( value = "managedRepositoryContent#legacy" )
|
||||
|
@ -82,8 +79,8 @@ public class AddLegacyArtifactPathAction
|
|||
|
||||
public String commit()
|
||||
{
|
||||
this.legacyArtifactPath.setArtifact( this.groupId + ":" + this.artifactId + ":" + this.version + ":" +
|
||||
this.classifier + ":" + this.type );
|
||||
this.legacyArtifactPath.setArtifact(
|
||||
this.groupId + ":" + this.artifactId + ":" + this.version + ":" + this.classifier + ":" + this.type );
|
||||
|
||||
// Check the proposed Artifact macthes the path
|
||||
ArtifactReference artifact = new ArtifactReference();
|
||||
|
@ -101,9 +98,17 @@ public class AddLegacyArtifactPathAction
|
|||
return ERROR;
|
||||
}
|
||||
|
||||
Configuration configuration = archivaConfiguration.getConfiguration();
|
||||
configuration.addLegacyArtifactPath( legacyArtifactPath );
|
||||
return saveConfiguration( configuration );
|
||||
try
|
||||
{
|
||||
getArchivaAdministration().addLegacyArtifactPath( legacyArtifactPath );
|
||||
}
|
||||
catch ( RepositoryAdminException e )
|
||||
{
|
||||
log.error( e.getMessage(), e );
|
||||
addActionError( "Error occured " + e.getMessage() );
|
||||
return INPUT;
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
public LegacyArtifactPath getLegacyArtifactPath()
|
||||
|
@ -122,27 +127,6 @@ public class AddLegacyArtifactPathAction
|
|||
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()
|
||||
{
|
||||
if ( StringUtils.isNotEmpty( legacyArtifactPath.getPath() ) )
|
||||
|
@ -225,4 +209,14 @@ public class AddLegacyArtifactPathAction
|
|||
{
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public ArchivaAdministration getArchivaAdministration()
|
||||
{
|
||||
return archivaAdministration;
|
||||
}
|
||||
|
||||
public void setArchivaAdministration( ArchivaAdministration archivaAdministration )
|
||||
{
|
||||
this.archivaAdministration = archivaAdministration;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,17 +19,13 @@ package org.apache.maven.archiva.web.action.admin.legacy;
|
|||
* 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.archiva.admin.repository.RepositoryAdminException;
|
||||
import org.apache.archiva.admin.repository.admin.ArchivaAdministration;
|
||||
import org.apache.maven.archiva.web.action.AbstractActionSupport;
|
||||
import org.codehaus.plexus.registry.RegistryException;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* Delete a LegacyArtifactPath to archiva configuration
|
||||
|
@ -43,44 +39,22 @@ public class DeleteLegacyArtifactPathAction
|
|||
{
|
||||
|
||||
@Inject
|
||||
private ArchivaConfiguration archivaConfiguration;
|
||||
private ArchivaAdministration archivaAdministration;
|
||||
|
||||
private String path;
|
||||
|
||||
public String delete()
|
||||
{
|
||||
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
|
||||
{
|
||||
archivaConfiguration.save( configuration );
|
||||
addActionMessage( "Successfully saved configuration" );
|
||||
getArchivaAdministration().deleteLegacyArtifactPath( path );
|
||||
}
|
||||
catch ( IndeterminateConfigurationException e )
|
||||
catch ( RepositoryAdminException e )
|
||||
{
|
||||
addActionError( e.getMessage() );
|
||||
return INPUT;
|
||||
log.error( e.getMessage(), e );
|
||||
addActionError( "Exception during delete " + e.getMessage() );
|
||||
}
|
||||
catch ( RegistryException e )
|
||||
{
|
||||
addActionError( "Configuration Registry Exception: " + e.getMessage() );
|
||||
return INPUT;
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -93,4 +67,14 @@ public class DeleteLegacyArtifactPathAction
|
|||
{
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
public ArchivaAdministration getArchivaAdministration()
|
||||
{
|
||||
return archivaAdministration;
|
||||
}
|
||||
|
||||
public void setArchivaAdministration( ArchivaAdministration archivaAdministration )
|
||||
{
|
||||
this.archivaAdministration = archivaAdministration;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,12 +20,12 @@ package org.apache.maven.archiva.web.action.admin.legacy;
|
|||
*/
|
||||
|
||||
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.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.maven.archiva.web.action.AbstractActionSupport;
|
||||
import org.apache.struts2.interceptor.ServletRequestAware;
|
||||
import org.codehaus.plexus.redback.rbac.Resource;
|
||||
import org.codehaus.redback.integration.interceptor.SecureAction;
|
||||
|
@ -52,7 +52,7 @@ public class LegacyArtifactPathAction
|
|||
{
|
||||
|
||||
@Inject
|
||||
private ArchivaConfiguration archivaConfiguration;
|
||||
private ArchivaAdministration archivaAdministration;
|
||||
|
||||
private List<LegacyArtifactPath> legacyArtifactPaths;
|
||||
|
||||
|
@ -79,10 +79,9 @@ public class LegacyArtifactPathAction
|
|||
}
|
||||
|
||||
public void prepare()
|
||||
throws RepositoryAdminException
|
||||
{
|
||||
Configuration config = archivaConfiguration.getConfiguration();
|
||||
|
||||
legacyArtifactPaths = new ArrayList<LegacyArtifactPath>( config.getLegacyArtifactPaths() );
|
||||
legacyArtifactPaths = new ArrayList<LegacyArtifactPath>( getArchivaAdministration().getLegacyArtifactPaths() );
|
||||
}
|
||||
|
||||
public List<LegacyArtifactPath> getLegacyArtifactPaths()
|
||||
|
@ -94,4 +93,14 @@ public class LegacyArtifactPathAction
|
|||
{
|
||||
return baseUrl;
|
||||
}
|
||||
|
||||
public ArchivaAdministration getArchivaAdministration()
|
||||
{
|
||||
return archivaAdministration;
|
||||
}
|
||||
|
||||
public void setArchivaAdministration( ArchivaAdministration archivaAdministration )
|
||||
{
|
||||
this.archivaAdministration = archivaAdministration;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,17 +20,18 @@ package org.apache.maven.archiva.web.action.admin.legacy;
|
|||
*/
|
||||
|
||||
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.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.maven.archiva.configuration.LegacyArtifactPath;
|
||||
import org.apache.maven.archiva.web.action.admin.repositories.DefaultActionValidatorManagerFactory;
|
||||
import org.apache.archiva.web.validator.utils.ValidatorUtil;
|
||||
|
||||
public class AddLegacyArtifactPathActionTest extends TestCase
|
||||
public class AddLegacyArtifactPathActionTest
|
||||
extends TestCase
|
||||
{
|
||||
private static final String EMPTY_STRING = "";
|
||||
|
||||
|
@ -66,7 +67,8 @@ public class AddLegacyArtifactPathActionTest extends TestCase
|
|||
private ActionValidatorManager actionValidatorManager;
|
||||
|
||||
@Override
|
||||
public void setUp() throws Exception
|
||||
public void setUp()
|
||||
throws Exception
|
||||
{
|
||||
addLegacyArtifactPathAction = new AddLegacyArtifactPathAction();
|
||||
|
||||
|
@ -75,11 +77,13 @@ public class AddLegacyArtifactPathActionTest extends TestCase
|
|||
actionValidatorManager = factory.createDefaultActionValidatorManager();
|
||||
}
|
||||
|
||||
public void testStruts2ValidationFrameworkWithNullInputs() throws Exception
|
||||
public void testStruts2ValidationFrameworkWithNullInputs()
|
||||
throws Exception
|
||||
{
|
||||
// prep
|
||||
LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( null );
|
||||
populateAddLegacyArtifactPathActionFields(addLegacyArtifactPathAction, legacyArtifactPath, null, null, null, null, null);
|
||||
populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath, null, null, null,
|
||||
null, null );
|
||||
|
||||
// test
|
||||
actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
|
||||
|
@ -116,11 +120,13 @@ public class AddLegacyArtifactPathActionTest extends TestCase
|
|||
ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors );
|
||||
}
|
||||
|
||||
public void testStruts2ValidationFrameworkWithBlankInputs() throws Exception
|
||||
public void testStruts2ValidationFrameworkWithBlankInputs()
|
||||
throws Exception
|
||||
{
|
||||
// prep
|
||||
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
|
||||
actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
|
||||
|
@ -157,11 +163,15 @@ public class AddLegacyArtifactPathActionTest extends TestCase
|
|||
ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors );
|
||||
}
|
||||
|
||||
public void testStruts2ValidationFrameworkWithInvalidInputs() throws Exception
|
||||
public void testStruts2ValidationFrameworkWithInvalidInputs()
|
||||
throws Exception
|
||||
{
|
||||
// prep
|
||||
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
|
||||
actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
|
||||
|
@ -176,37 +186,46 @@ public class AddLegacyArtifactPathActionTest extends TestCase
|
|||
|
||||
// populate
|
||||
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(
|
||||
"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.add("Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-).");
|
||||
expectedErrorMessages.add(
|
||||
"Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
|
||||
expectedFieldErrors.put( "groupId", expectedErrorMessages );
|
||||
|
||||
expectedErrorMessages = new ArrayList<String>();
|
||||
expectedErrorMessages.add("Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-).");
|
||||
expectedErrorMessages.add(
|
||||
"Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
|
||||
expectedFieldErrors.put( "artifactId", expectedErrorMessages );
|
||||
|
||||
expectedErrorMessages = new ArrayList<String>();
|
||||
expectedErrorMessages.add("Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-).");
|
||||
expectedErrorMessages.add(
|
||||
"Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
|
||||
expectedFieldErrors.put( "version", expectedErrorMessages );
|
||||
|
||||
expectedErrorMessages = new ArrayList<String>();
|
||||
expectedErrorMessages.add("Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-).");
|
||||
expectedErrorMessages.add(
|
||||
"Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
|
||||
expectedFieldErrors.put( "classifier", expectedErrorMessages );
|
||||
|
||||
expectedErrorMessages = new ArrayList<String>();
|
||||
expectedErrorMessages.add("Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-).");
|
||||
expectedErrorMessages.add(
|
||||
"Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
|
||||
expectedFieldErrors.put( "type", expectedErrorMessages );
|
||||
|
||||
ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors );
|
||||
}
|
||||
|
||||
public void testStruts2ValidationFrameworkWithValidInputs() throws Exception
|
||||
public void testStruts2ValidationFrameworkWithValidInputs()
|
||||
throws Exception
|
||||
{
|
||||
// prep
|
||||
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
|
||||
actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING );
|
||||
|
@ -222,7 +241,10 @@ public class AddLegacyArtifactPathActionTest extends TestCase
|
|||
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.setGroupId( groupId );
|
||||
|
|
Loading…
Reference in New Issue