* under the License.
*/
+import org.apache.maven.archiva.configuration.AbstractRepositoryConfiguration;
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.InvalidConfigurationException;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
import org.codehaus.plexus.redback.rbac.Resource;
+import org.codehaus.plexus.redback.role.RoleManagerException;
import org.codehaus.plexus.redback.xwork.interceptor.SecureAction;
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
/**
* Base class for repository configuration actions.
*/
-public class AbstractConfigureRepositoryAction
+public abstract class AbstractConfigureRepositoryAction<T extends AbstractRepositoryConfiguration>
extends PlexusActionSupport
implements SecureAction
{
+ /**
+ * The model for this action.
+ */
+ protected T repository;
+
/**
* @plexus.requirement
*/
protected String repoid;
- // TODO: consider removing? was just meant to be for delete...
- protected String mode;
-
- // TODO: rename to confirmDelete
- public String confirm()
- {
- return INPUT;
- }
-
- public String getMode()
+ public String getRepoid()
{
- return this.mode;
+ return repoid;
}
- public String getRepoid()
+ public T getRepository()
{
- return repoid;
+ return repository;
}
public SecureActionBundle getSecureActionBundle()
return bundle;
}
- public void setMode( String mode )
- {
- this.mode = mode;
- }
-
public void setRepoid( String repoid )
{
this.repoid = repoid;
this.archivaConfiguration = archivaConfiguration;
}
- public String edit()
- {
- this.mode = "edit";
-
- return INPUT;
- }
-
protected String saveConfiguration( Configuration configuration )
throws IOException, InvalidConfigurationException, RegistryException
{
catch ( IndeterminateConfigurationException e )
{
addActionError( e.getMessage() );
- return INPUT;
+ return ERROR;
}
return SUCCESS;
}
+
+ public String add()
+ {
+ Configuration configuration = archivaConfiguration.getConfiguration();
+
+ String repoId = repository.getId();
+ if ( configuration.getManagedRepositoriesAsMap().containsKey( repoId ) ||
+ configuration.getRemoteRepositoriesAsMap().containsKey( repoId ) )
+ {
+ addFieldError( "repository.id",
+ "Unable to add new repository with id [" + repoId + "], that id already exists." );
+ return INPUT;
+ }
+
+ boolean containsError = validateFields( configuration );
+ if ( containsError )
+ {
+ return INPUT;
+ }
+
+ return saveRepositoryConfiguration( configuration );
+ }
+
+ public String edit()
+ {
+ Configuration configuration = archivaConfiguration.getConfiguration();
+
+ boolean containsError = validateFields( configuration );
+ if ( containsError )
+ {
+ return INPUT;
+ }
+
+ removeRepository( repository.getId(), configuration );
+
+ return saveRepositoryConfiguration( configuration );
+ }
+
+ protected String saveRepositoryConfiguration( Configuration configuration )
+ {
+ String result;
+ try
+ {
+ addRepository( repository, configuration );
+ result = saveConfiguration( configuration );
+ }
+ catch ( IOException e )
+ {
+ addActionError( "I/O Exception: " + e.getMessage() );
+ result = ERROR;
+ }
+ catch ( InvalidConfigurationException e )
+ {
+ addActionError( "Invalid Configuration Exception: " + e.getMessage() );
+ result = ERROR;
+ }
+ catch ( RegistryException e )
+ {
+ addActionError( "Configuration Registry Exception: " + e.getMessage() );
+ result = ERROR;
+ }
+ catch ( RoleManagerException e )
+ {
+ addActionError( "Security role creation Exception: " + e.getMessage() );
+ result = ERROR;
+ }
+
+ return result;
+ }
+
+ protected abstract boolean validateFields( Configuration config );
+
+ protected abstract void addRepository( T repository, Configuration configuration )
+ throws IOException, RoleManagerException;
+
+ protected abstract void removeRepository( String repoId, Configuration configuration );
}
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.InvalidConfigurationException;
import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
-import org.codehaus.plexus.redback.role.RoleManagerException;
import org.codehaus.plexus.registry.RegistryException;
import java.io.IOException;
* @plexus.component role="com.opensymphony.xwork.Action" role-hint="configureRemoteRepositoryAction"
*/
public class ConfigureRemoteRepositoryAction
- extends AbstractConfigureRepositoryAction
+ extends AbstractConfigureRepositoryAction<RemoteRepositoryConfiguration>
implements Preparable
{
- /**
- * The model for this action.
- */
- private RemoteRepositoryConfiguration repository;
-
- public String add()
- {
- this.mode = "add";
-
- return INPUT;
- }
-
public String delete()
{
- RemoteRepositoryConfiguration existingRepository = repository;
- if ( existingRepository == null )
+ if ( repository == null )
{
addActionError( "A repository with that id does not exist" );
return ERROR;
catch ( IOException e )
{
addActionError( "Unable to delete repository: " + e.getMessage() );
- result = INPUT;
+ result = ERROR;
}
catch ( InvalidConfigurationException e )
{
addActionError( "Unable to delete repository: " + e.getMessage() );
- result = INPUT;
+ result = ERROR;
}
catch ( RegistryException e )
{
addActionError( "Unable to delete repository: " + e.getMessage() );
- result = INPUT;
+ result = ERROR;
}
return result;
}
- public RemoteRepositoryConfiguration getRepository()
- {
- return repository;
- }
-
public void prepare()
{
String id = repoid;
}
}
- public String save()
- {
- String repoId = repository.getId();
-
- Configuration configuration = archivaConfiguration.getConfiguration();
- boolean containsError = validateFields( configuration );
-
- if ( containsError && StringUtils.equalsIgnoreCase( "add", mode ) )
- {
- return INPUT;
- }
- else if ( containsError && StringUtils.equalsIgnoreCase( "edit", this.mode ) )
- {
- return ERROR;
- }
-
- if ( StringUtils.equalsIgnoreCase( "edit", this.mode ) )
- {
- removeRepository( repoId, configuration );
- }
-
- String result;
- try
- {
- addRepository( repository, configuration );
- result = saveConfiguration( configuration );
- }
- catch ( IOException e )
- {
- addActionError( "I/O Exception: " + e.getMessage() );
- result = INPUT;
- }
- catch ( RoleManagerException e )
- {
- addActionError( "Role Manager Exception: " + e.getMessage() );
- result = INPUT;
- }
- catch ( InvalidConfigurationException e )
- {
- addActionError( "Invalid Configuration Exception: " + e.getMessage() );
- result = INPUT;
- }
- catch ( RegistryException e )
- {
- addActionError( "Configuration Registry Exception: " + e.getMessage() );
- result = INPUT;
- }
-
- return result;
- }
-
- private boolean validateFields( Configuration config )
+ protected boolean validateFields( Configuration config )
{
// TODO: push this into the webwork validation instead
boolean containsError = false;
addFieldError( "repository.id", "You must enter a repository identifier." );
containsError = true;
}
- //if edit mode, do not validate existence of repoId
- else if ( ( config.getManagedRepositoriesAsMap().containsKey( repoId ) ||
- config.getRemoteRepositoriesAsMap().containsKey( repoId ) ) &&
- !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() ) )
{
return containsError;
}
- private void addRepository( RemoteRepositoryConfiguration repository, Configuration configuration )
- throws IOException, RoleManagerException
+ protected void addRepository( RemoteRepositoryConfiguration repository, Configuration configuration )
{
configuration.addRemoteRepository( repository );
}
- private void removeRepository( String repoId, Configuration configuration )
+ protected void removeRepository( String repoId, Configuration configuration )
{
RemoteRepositoryConfiguration toremove = configuration.findRemoteRepositoryById( repoId );
if ( toremove != null )
configuration.removeRemoteRepository( toremove );
}
}
+
+ public String input()
+ {
+ return INPUT;
+ }
}
*/
import com.opensymphony.xwork.Preparable;
-
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.configuration.Configuration;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
/**
* Configures the managed repositories.
* @plexus.component role="com.opensymphony.xwork.Action" role-hint="configureRepositoryAction"
*/
public class ConfigureRepositoryAction
- extends AbstractConfigureRepositoryAction
+ extends AbstractConfigureRepositoryAction<ManagedRepositoryConfiguration>
implements Preparable
{
- /**
- * The model for this action.
- */
- private ManagedRepositoryConfiguration repository;
-
/**
* @plexus.requirement role-hint="default"
*/
protected RoleManager roleManager;
- private static final List<String> VALID_MODES;
+ private String deleteMode = "delete-entry";
- static
+ public String getDeleteMode()
{
- VALID_MODES = new ArrayList<String>();
- VALID_MODES.add( "add" );
- VALID_MODES.add( "edit" );
+ return deleteMode;
}
- public String add()
+ public void setDeleteMode( String deleteMode )
{
- this.mode = "add";
-
- this.repository.setReleases( true );
- this.repository.setScanned( true );
-
- return this.mode;
+ this.deleteMode = deleteMode;
}
- public String delete()
+ public String addInput()
{
- String result = SUCCESS;
- if ( StringUtils.equals( mode, "delete-entry" ) || StringUtils.equals( mode, "delete-contents" ) )
- {
- ManagedRepositoryConfiguration existingRepository = repository;
- if ( existingRepository == null )
- {
- addActionError( "A repository with that id does not exist" );
- return ERROR;
- }
-
- try
- {
- Configuration configuration = archivaConfiguration.getConfiguration();
- removeRepository( repoid, configuration );
- result = saveConfiguration( configuration );
-
- if ( result.equals( SUCCESS ) )
- {
- removeRepositoryRoles( existingRepository );
- if ( StringUtils.equals( mode, "delete-contents" ) )
- {
- removeContents( existingRepository );
- }
- }
- }
- catch ( IOException e )
- {
- addActionError( "Unable to delete repository: " + e.getMessage() );
- result = ERROR;
- }
- catch ( RoleManagerException e )
- {
- addActionError( "Unable to delete repository: " + e.getMessage() );
- result = ERROR;
- }
- catch ( InvalidConfigurationException e )
- {
- addActionError( "Unable to delete repository: " + e.getMessage() );
- result = ERROR;
- }
- catch ( RegistryException e )
- {
- addActionError( "Unable to delete repository: " + e.getMessage() );
- result = ERROR;
- }
- }
+ // set defaults
+ this.repository.setReleases( true );
+ this.repository.setScanned( true );
- return result;
+ return INPUT;
}
- public ManagedRepositoryConfiguration getRepository()
+ public String editInput()
{
- return repository;
- }
-
- public void prepare()
- {
- String id = repoid;
- if ( id == null )
- {
- this.repository = new ManagedRepositoryConfiguration();
- this.repository.setReleases( false );
- this.repository.setScanned( false );
- }
- else
- {
- repository = archivaConfiguration.getConfiguration().findManagedRepositoryById( id );
- }
+ return INPUT;
}
- public String save()
+ public String delete()
{
- // Ensure a proper mode is set.
- if ( StringUtils.isBlank( this.mode ) )
+ if ( repository == null )
{
- addActionError( "Unable to process save request. edit mode undefined. " );
+ addActionError( "A repository with that id does not exist" );
return ERROR;
}
- if ( !VALID_MODES.contains( this.mode.toLowerCase() ) )
- {
- addActionError( "Unable to process save request. edit mode is invalid." );
- return ERROR;
- }
-
- // Ensure that the fields are valid.
- Configuration configuration = archivaConfiguration.getConfiguration();
- boolean containsError = validateFields( configuration );
-
- if ( containsError )
- {
- return this.mode.toLowerCase();
- }
-
- // If we are in edit mode, then remove the old repository configuration.
- if ( StringUtils.equalsIgnoreCase( "edit", this.mode ) )
- {
- removeRepository( repository.getId(), configuration );
- }
-
- // Save the repository configuration.
String result;
try
{
- addRepository( repository, configuration );
+ Configuration configuration = archivaConfiguration.getConfiguration();
+ removeRepository( repoid, configuration );
result = saveConfiguration( configuration );
+
+ if ( result.equals( SUCCESS ) )
+ {
+ removeRepositoryRoles( repository );
+ if ( StringUtils.equals( deleteMode, "delete-contents" ) )
+ {
+ removeContents( repository );
+ }
+ }
}
catch ( IOException e )
{
- addActionError( "I/O Exception: " + e.getMessage() );
+ addActionError( "Unable to delete repository: " + e.getMessage() );
result = ERROR;
}
catch ( RoleManagerException e )
{
- addActionError( "Role Manager Exception: " + e.getMessage() );
+ addActionError( "Unable to delete repository: " + e.getMessage() );
result = ERROR;
}
catch ( InvalidConfigurationException e )
{
- addActionError( "Invalid Configuration Exception: " + e.getMessage() );
+ addActionError( "Unable to delete repository: " + e.getMessage() );
result = ERROR;
}
catch ( RegistryException e )
{
- addActionError( "Configuration Registry Exception: " + e.getMessage() );
+ addActionError( "Unable to delete repository: " + e.getMessage() );
result = ERROR;
}
return result;
}
- private boolean validateFields( Configuration config )
+ public void prepare()
+ {
+ String id = repoid;
+ if ( id == null )
+ {
+ this.repository = new ManagedRepositoryConfiguration();
+ this.repository.setReleases( false );
+ this.repository.setScanned( false );
+ }
+ else
+ {
+ repository = archivaConfiguration.getConfiguration().findManagedRepositoryById( id );
+ }
+ }
+
+ protected boolean validateFields( Configuration config )
{
boolean containsError = false;
CronExpressionValidator validator = new CronExpressionValidator();
addFieldError( "repository.id", "You must enter a repository identifier." );
containsError = true;
}
- // Validate the existance of the repository id, but not in edit mode.
- else if ( !StringUtils.equalsIgnoreCase( mode, "edit" ) )
- {
- if ( config.getManagedRepositoriesAsMap().containsKey( repoId ) )
- {
- addFieldError( "repository.id", "Unable to add new repository with id [" + repoId
- + "], that id already exists as a managed repository." );
- containsError = true;
- }
-
- if ( config.getRemoteRepositoriesAsMap().containsKey( repoId ) )
- {
- addFieldError( "repository.id", "Unable to add new repository with id [" + repoId
- + "], that id already exists as a remote repository." );
- containsError = true;
- }
- }
if ( StringUtils.isBlank( repository.getLocation() ) )
{
return containsError;
}
- private void addRepository( ManagedRepositoryConfiguration repository, Configuration configuration )
+ protected void addRepository( ManagedRepositoryConfiguration repository, Configuration configuration )
throws IOException, RoleManagerException
{
// Normalize the path
FileUtils.deleteDirectory( new File( existingRepository.getLocation() ) );
}
- private void removeRepository( String repoId, Configuration configuration )
+ protected void removeRepository( String repoId, Configuration configuration )
{
ManagedRepositoryConfiguration toremove = configuration.findManagedRepositoryById( repoId );
if ( toremove != null )
<action name="addRepository" class="configureRepositoryAction" method="add">
<result name="input">/WEB-INF/jsp/admin/addRepository.jsp</result>
+ <result name="error">/WEB-INF/jsp/admin/addRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
<action name="editRepository" class="configureRepositoryAction" method="edit">
<result name="input">/WEB-INF/jsp/admin/editRepository.jsp</result>
- <result name="error" type="redirect-action">repositories</result>
+ <result name="error">/WEB-INF/jsp/admin/editRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
- <action name="saveRepository" class="configureRepositoryAction" method="save">
- <result name="success" type="redirect-action">repositories</result>
- <result name="add">/WEB-INF/jsp/admin/addRepository.jsp</result>
- <result name="edit">/WEB-INF/jsp/admin/editRepository.jsp</result>
- <result name="input">/WEB-INF/jsp/admin/editRepository.jsp</result>
- <result name="success" type="redirect-action">repositories</result>
+ <action name="confirmDeleteRepository" class="configureRepositoryAction">
+ <result>/WEB-INF/jsp/admin/deleteRepository.jsp</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
- <action name="deleteRepository" class="configureRepositoryAction" method="confirm">
+ <action name="deleteRepository" class="configureRepositoryAction" method="delete">
<result name="input">/WEB-INF/jsp/admin/deleteRepository.jsp</result>
+ <result name="error">/WEB-INF/jsp/admin/deleteRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
<action name="addRemoteRepository" class="configureRemoteRepositoryAction" method="add">
<result name="input">/WEB-INF/jsp/admin/addRemoteRepository.jsp</result>
+ <result name="error">/WEB-INF/jsp/admin/addRemoteRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
<action name="editRemoteRepository" class="configureRemoteRepositoryAction" method="edit">
<result name="input">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
- <result name="error" type="redirect-action">repositories</result>
+ <result name="error">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
- <action name="saveRemoteRepository" class="configureRemoteRepositoryAction" method="save">
- <result name="success" type="redirect-action">repositories</result>
- <result name="input">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
- <result name="error">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
+ <action name="confirmDeleteRemoteRepository" class="configureRemoteRepositoryAction">
+ <result>/WEB-INF/jsp/admin/deleteRemoteRepository.jsp</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
- <action name="deleteRemoteRepository" class="configureRemoteRepositoryAction" method="confirm">
+ <action name="deleteRemoteRepository" class="configureRemoteRepositoryAction" method="delete">
<result name="input">/WEB-INF/jsp/admin/deleteRemoteRepository.jsp</result>
+ <result name="error">/WEB-INF/jsp/admin/deleteRemoteRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
<h2>Add Repository</h2>
<ww:actionmessage/>
- <ww:form method="post" action="saveRemoteRepository" namespace="/admin" validate="true">
- <ww:hidden name="mode" value="add"/>
+ <ww:form method="post" action="addRemoteRepository" namespace="/admin" validate="true">
<ww:textfield name="repository.id" label="Identifier" size="10" required="true"/>
<%@ include file="/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf" %>
<ww:submit value="Add Repository"/>
</ww:form>
<script type="text/javascript">
- document.getElementById("saveRemoteRepository_id").focus();
+ document.getElementById("addRemoteRepository_id").focus();
</script>
</div>
<h2>Add Repository</h2>
<ww:actionmessage/>
- <ww:form method="post" action="saveRepository" namespace="/admin" validate="true">
- <ww:hidden name="mode" value="add"/>
+ <ww:form method="post" action="addRepository" namespace="/admin" validate="true">
<ww:textfield name="repository.id" label="Identifier" size="10" required="true"/>
<%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %>
<ww:submit value="Add Repository"/>
</ww:form>
<script type="text/javascript">
- document.getElementById("saveRepository_id").focus();
+ document.getElementById("addRepository_id").focus();
</script>
</div>
<strong><span class="statusFailed">WARNING:</span> This operation can not be undone.</strong>
</blockquote>
- <ww:form method="post" action="deleteRepository!delete" namespace="/admin" validate="true">
+ <ww:form method="post" action="deleteRepository" namespace="/admin" validate="true">
<ww:hidden name="repoid"/>
<ww:radio list="#@java.util.LinkedHashMap@{'delete-contents' : 'Remove the repository and delete its contents from disk',
- 'delete-entry' : 'Remove the repository from the management list, but leave the contents unmodified',
- 'unmodified' : 'Leave the repository unmodified'}" name="mode" theme="archiva"/>
- <ww:submit value="Go"/>
+ 'delete-entry' : 'Remove the repository from the management list, but leave the contents unmodified'}"
+ name="deleteMode" theme="archiva"/>
+ <ww:submit value="Confirm" method="delete"/>
+ <ww:submit value="Cancel" method="execute"/>
</ww:form>
</div>
<h2>Edit Repository</h2>
<ww:actionmessage/>
- <ww:form method="post" action="saveRemoteRepository" namespace="/admin" validate="false">
- <ww:hidden name="mode" value="edit"/>
+ <ww:form method="post" action="editRemoteRepository" namespace="/admin" validate="false">
<ww:hidden name="repository.id"/>
<%@ include file="/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf" %>
<ww:submit value="Update Repository"/>
</ww:form>
<script type="text/javascript">
- document.getElementById("saveRemoteRepository_repository_name").focus();
+ document.getElementById("editRemoteRepository_repository_name").focus();
</script>
</div>
<h2>Edit Repository</h2>
<ww:actionmessage/>
- <ww:form method="post" action="saveRepository" namespace="/admin" validate="false">
- <ww:hidden name="mode" value="edit"/>
+ <ww:form method="post" action="editRepository" namespace="/admin" validate="false">
<ww:hidden name="repository.id"/>
<%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %>
<ww:submit value="Update Repository"/>
</ww:form>
<script type="text/javascript">
- document.getElementById("saveRepository_repository_name").focus();
+ document.getElementById("editRepository_repository_name").focus();
</script>
</div>
<div class="admin">
<div class="controls">
<redback:ifAuthorized permission="archiva-manage-configuration">
- <ww:url id="addRepositoryUrl" action="addRepository"/>
+ <ww:url id="addRepositoryUrl" action="addRepository" method="addInput"/>
<ww:a href="%{addRepositoryUrl}">
<img src="<c:url value="/images/icons/create.png" />" alt="" width="16" height="16"/>
Add
<div class="controls">
<%-- TODO: make some icons --%>
<redback:ifAnyAuthorized permissions="archiva-manage-configuration">
- <ww:url id="editRepositoryUrl" action="editRepository">
+ <ww:url id="editRepositoryUrl" action="editRepository" method="editInput">
<ww:param name="repoid" value="%{'${repository.id}'}"/>
</ww:url>
- <ww:url id="deleteRepositoryUrl" action="deleteRepository" method="confirm">
+ <ww:url id="deleteRepositoryUrl" action="confirmDeleteRepository">
<ww:param name="repoid" value="%{'${repository.id}'}"/>
</ww:url>
<ww:a href="%{editRepositoryUrl}">
<div class="controls">
<redback:ifAuthorized permission="archiva-manage-configuration">
- <ww:url id="addRepositoryUrl" action="addRemoteRepository"/>
+ <ww:url id="addRepositoryUrl" action="addRemoteRepository" method="input"/>
<ww:a href="%{addRepositoryUrl}">
<img src="<c:url value="/images/icons/create.png" />" alt="" width="16" height="16"/>
Add
<div class="controls">
<redback:ifAnyAuthorized permissions="archiva-manage-configuration">
- <ww:url id="editRepositoryUrl" action="editRemoteRepository">
- <ww:param name="repoid" value="%{'${repository.id}'}"/>
- </ww:url>
- <ww:url id="deleteRepositoryUrl" action="deleteRemoteRepository" method="confirm">
+ <ww:url id="editRepositoryUrl" action="editRemoteRepository" method="input">
<ww:param name="repoid" value="%{'${repository.id}'}"/>
</ww:url>
<ww:a href="%{editRepositoryUrl}">
<img src="<c:url value="/images/icons/edit.png" />" alt="" width="16" height="16"/>
Edit
</ww:a>
+ <ww:url id="deleteRepositoryUrl" action="confirmDeleteRemoteRepository">
+ <ww:param name="repoid" value="%{'${repository.id}'}"/>
+ </ww:url>
<ww:a href="%{deleteRepositoryUrl}">
<img src="<c:url value="/images/icons/delete.gif" />" alt="" width="16" height="16"/>
Delete
action.prepare();
assertNull( action.getRepoid() );
- assertNull( action.getMode() );
RemoteRepositoryConfiguration configuration = action.getRepository();
assertNotNull( configuration );
assertNull( configuration.getId() );
- String status = action.add();
+ String status = action.input();
assertEquals( Action.INPUT, status );
}
archivaConfigurationControl.replay();
action.prepare();
- action.setMode( "add" );
RemoteRepositoryConfiguration repository = action.getRepository();
populateRepository( repository );
- String status = action.save();
+ String status = action.add();
assertEquals( Action.SUCCESS, status );
assertEquals( Collections.singletonList( repository ), configuration.getRemoteRepositories() );
action.prepare();
assertEquals( REPO_ID, action.getRepoid() );
- assertNull( action.getMode() );
RemoteRepositoryConfiguration repository = action.getRepository();
assertNotNull( repository );
assertRepositoryEquals( repository, createRepository() );
- String status = action.edit();
+ String status = action.input();
assertEquals( Action.INPUT, status );
repository = action.getRepository();
assertRepositoryEquals( repository, createRepository() );
archivaConfigurationControl.replay();
action.prepare();
- action.setMode( "edit" );
RemoteRepositoryConfiguration repository = action.getRepository();
populateRepository( repository );
repository.setName( "new repo name" );
- String status = action.save();
+ String status = action.edit();
assertEquals( Action.SUCCESS, status );
RemoteRepositoryConfiguration newRepository = createRepository();
}
public void testDeleteRemoteRepositoryConfirmation()
+ throws Exception
{
RemoteRepositoryConfiguration originalRepository = createRepository();
Configuration configuration = createConfigurationForEditing( originalRepository );
action.prepare();
assertEquals( REPO_ID, action.getRepoid() );
- assertNull( action.getMode() );
RemoteRepositoryConfiguration repository = action.getRepository();
assertNotNull( repository );
assertRepositoryEquals( repository, createRepository() );
- String status = action.confirm();
- assertEquals( Action.INPUT, status );
+ String status = action.execute();
+ assertEquals( Action.SUCCESS, status );
repository = action.getRepository();
assertRepositoryEquals( repository, createRepository() );
assertEquals( Collections.singletonList( originalRepository ), configuration.getRemoteRepositories() );
action.prepare();
assertNull( action.getRepoid() );
- assertNull( action.getMode() );
ManagedRepositoryConfiguration configuration = action.getRepository();
assertNotNull( configuration );
assertNull( configuration.getId() );
assertFalse( configuration.isReleases() );
assertFalse( configuration.isSnapshots() );
- String status = action.add();
+ String status = action.addInput();
assertEquals( Action.INPUT, status );
// check defaults
archivaConfigurationControl.replay();
action.prepare();
- action.setMode( "add" );
ManagedRepositoryConfiguration repository = action.getRepository();
populateRepository( repository );
assertFalse( location.exists() );
- String status = action.save();
+ String status = action.add();
assertEquals( Action.SUCCESS, status );
assertTrue( location.exists() );
action.prepare();
assertEquals( REPO_ID, action.getRepoid() );
- assertNull( action.getMode() );
ManagedRepositoryConfiguration repository = action.getRepository();
assertNotNull( repository );
assertRepositoryEquals( repository, createRepository() );
- String status = action.edit();
+ String status = action.editInput();
assertEquals( Action.INPUT, status );
repository = action.getRepository();
assertRepositoryEquals( repository, createRepository() );
archivaConfigurationControl.replay();
action.prepare();
- action.setMode( "edit" );
ManagedRepositoryConfiguration repository = action.getRepository();
populateRepository( repository );
repository.setName( "new repo name" );
- String status = action.save();
+ String status = action.edit();
assertEquals( Action.SUCCESS, status );
ManagedRepositoryConfiguration newRepository = createRepository();
}
public void testDeleteRepositoryConfirmation()
+ throws Exception
{
ManagedRepositoryConfiguration originalRepository = createRepository();
Configuration configuration = createConfigurationForEditing( originalRepository );
action.prepare();
assertEquals( REPO_ID, action.getRepoid() );
- assertNull( action.getMode() );
ManagedRepositoryConfiguration repository = action.getRepository();
assertNotNull( repository );
assertRepositoryEquals( repository, createRepository() );
- String status = action.confirm();
- assertEquals( Action.INPUT, status );
+ String status = action.execute();
+ assertEquals( Action.SUCCESS, status );
+ assertEquals( "delete-entry", action.getDeleteMode() );
repository = action.getRepository();
assertRepositoryEquals( repository, createRepository() );
assertEquals( Collections.singletonList( originalRepository ), configuration.getManagedRepositories() );
public void testDeleteRepositoryKeepContent()
throws RegistryException, IndeterminateConfigurationException
{
- Configuration configuration = executeDeletionTest( "delete-entry", createRepository() );
+ Configuration configuration = prepDeletionTest( createRepository(), "delete-entry" );
+ String status = action.delete();
+ assertEquals( Action.SUCCESS, status );
assertTrue( configuration.getManagedRepositories().isEmpty() );
public void testDeleteRepositoryDeleteContent()
throws RegistryException, IndeterminateConfigurationException
{
- Configuration configuration = executeDeletionTest( "delete-contents", createRepository() );
+ Configuration configuration = prepDeletionTest( createRepository(), "delete-contents" );
+ String status = action.delete();
+ assertEquals( Action.SUCCESS, status );
assertTrue( configuration.getManagedRepositories().isEmpty() );
}
public void testDeleteRepositoryCancelled()
- throws RegistryException, IndeterminateConfigurationException
+ throws Exception
{
ManagedRepositoryConfiguration originalRepository = createRepository();
- Configuration configuration = executeDeletionTest( "unmodified", originalRepository );
+ Configuration configuration = prepDeletionTest( originalRepository, null );
+ String status = action.execute();
+ assertEquals( Action.SUCCESS, status );
ManagedRepositoryConfiguration repository = action.getRepository();
assertRepositoryEquals( repository, createRepository() );
assertTrue( location.exists() );
}
- private Configuration executeDeletionTest( String mode, ManagedRepositoryConfiguration originalRepository )
+ private Configuration prepDeletionTest( ManagedRepositoryConfiguration originalRepository, String mode )
throws RegistryException, IndeterminateConfigurationException
{
location.mkdirs();
archivaConfigurationControl.replay();
action.setRepoid( REPO_ID );
- action.setMode( mode );
+ action.setDeleteMode( mode );
action.prepare();
assertEquals( REPO_ID, action.getRepoid() );
- assertEquals( mode, action.getMode() );
+ assertEquals( mode, action.getDeleteMode() );
ManagedRepositoryConfiguration repository = action.getRepository();
assertNotNull( repository );
assertRepositoryEquals( repository, createRepository() );
assertTrue( location.exists() );
- String status = action.delete();
- assertEquals( Action.SUCCESS, status );
return configuration;
}
repository.setRetentionCount( 20 );
repository.setReleases( true );
repository.setSnapshots( true );
- repository.setScanned( true );
+ repository.setScanned( false );
repository.setDeleteReleasedSnapshots( true );
}