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 2008/06/06 01:50:57 UTC
svn commit: r663788 - in
/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src:
main/java/org/apache/maven/archiva/web/action/admin/repositories/
main/resources/ main/webapp/WEB-INF/jsp/admin/
test/java/org/apache/maven/archiva/web/action/admin...
Author: oching
Date: Thu Jun 5 16:50:57 2008
New Revision: 663788
URL: http://svn.apache.org/viewvc?rev=663788&view=rev
Log:
[MRM-789]
-added confirmation page before saving a new or updated managed repo if the repo location already exists
-added tests
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java?rev=663788&r1=663787&r2=663788&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java Thu Jun 5 16:50:57 2008
@@ -45,6 +45,8 @@
*/
protected RoleManager roleManager;
+ public static final String CONFIRM = "confirm";
+
public RoleManager getRoleManager()
{
return roleManager;
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java?rev=663788&r1=663787&r2=663788&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java Thu Jun 5 16:50:57 2008
@@ -26,7 +26,7 @@
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.codehaus.plexus.redback.role.RoleManagerException;
import org.codehaus.plexus.scheduler.CronExpressionValidator;
-
+import java.io.File;
import java.io.IOException;
/**
@@ -45,6 +45,8 @@
* The model for this action.
*/
private ManagedRepositoryConfiguration repository;
+
+ private String action = "addRepository";
public void prepare()
{
@@ -60,11 +62,27 @@
return INPUT;
}
-
+
+ public String confirmAdd()
+ {
+ return save();
+ }
+
public String commit()
{
+ File location = new File( repository.getLocation() );
+ if( location.exists() )
+ {
+ return CONFIRM;
+ }
+
+ return save();
+ }
+
+ private String save()
+ {
Configuration configuration = archivaConfiguration.getConfiguration();
-
+
String result;
try
{
@@ -73,12 +91,12 @@
result = saveConfiguration( configuration );
}
catch ( RoleManagerException e )
- {
+ {
addActionError( "Role Manager Exception: " + e.getMessage() );
result = INPUT;
}
catch ( IOException e )
- {
+ {
addActionError( "Role Manager Exception: " + e.getMessage() );
result = INPUT;
}
@@ -125,4 +143,9 @@
{
this.repository = repository;
}
+
+ public String getAction()
+ {
+ return action;
+ }
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java?rev=663788&r1=663787&r2=663788&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java Thu Jun 5 16:50:57 2008
@@ -28,6 +28,7 @@
import org.codehaus.plexus.redback.role.RoleManagerException;
import org.codehaus.plexus.scheduler.CronExpressionValidator;
+import java.io.File;
import java.io.IOException;
/**
@@ -48,6 +49,8 @@
private ManagedRepositoryConfiguration repository;
private String repoid;
+
+ private final String action = "editRepository";
public void prepare()
{
@@ -73,11 +76,34 @@
return INPUT;
}
+ public String confirmUpdate()
+ {
+ return save();
+ }
+
public String commit()
+ {
+ ManagedRepositoryConfiguration existingConfig =
+ archivaConfiguration.getConfiguration().findManagedRepositoryById( repository.getId() );
+
+ // check if the location was changed
+ if( !StringUtils.equalsIgnoreCase( existingConfig.getLocation().trim(), repository.getLocation().trim() ) )
+ {
+ File dir = new File( repository.getLocation() );
+ if( dir.exists() )
+ {
+ return CONFIRM;
+ }
+ }
+
+ return save();
+ }
+
+ private String save()
{
// Ensure that the fields are valid.
Configuration configuration = archivaConfiguration.getConfiguration();
-
+
// We are in edit mode, remove the old repository configuration.
removeRepository( repository.getId(), configuration );
@@ -133,4 +159,9 @@
{
this.repository = repository;
}
+
+ public String getAction()
+ {
+ return action;
+ }
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml?rev=663788&r1=663787&r2=663788&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml Thu Jun 5 16:50:57 2008
@@ -291,6 +291,7 @@
<action name="addRepository" class="addManagedRepositoryAction" method="input">
<result name="input">/WEB-INF/jsp/admin/addRepository.jsp</result>
<result name="error">/WEB-INF/jsp/admin/addRepository.jsp</result>
+ <result name="confirm">/WEB-INF/jsp/admin/confirmAddRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
@@ -299,6 +300,7 @@
<result name="input">/WEB-INF/jsp/admin/editRepository.jsp</result>
<result name="error">/WEB-INF/jsp/admin/editRepository.jsp</result>
<result name="success" type="redirect-action">repositories</result>
+ <result name="confirm">/WEB-INF/jsp/admin/confirmAddRepository.jsp</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
Added: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp?rev=663788&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp (added)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp Thu Jun 5 16:50:57 2008
@@ -0,0 +1,135 @@
+<%--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ --%>
+
+<%@ taglib prefix="ww" uri="/webwork" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+
+<html>
+<head>
+ <title>Admin: Add Managed Repository</title>
+ <ww:head/>
+</head>
+
+<body>
+
+<h1>Admin: Add Managed Repository</h1>
+
+ <div class="warningbox">
+ <p>
+ <strong>WARNING: Repository location already exists.</strong>
+ </p>
+ </div>
+
+ <p>
+ Are you sure you want to ${action == 'addRepository' ? 'add' : 'update'} the following managed repository?
+ </p>
+
+ <div class="infobox">
+ <table class="infotable">
+ <tr>
+ <td>ID:</td>
+ <td><code>${repository.id}</code></td>
+ </tr>
+ <tr>
+ <td>Name:</td>
+ <td>${repository.name}</td>
+ </tr>
+ <tr>
+ <td>Directory:</td>
+ <td>${repository.location}</td>
+ </tr>
+ <tr>
+ <td>Index Directory:</td>
+ <td>${repository.indexDir}</td>
+ </tr>
+ <tr>
+ <td>Type:</td>
+ <%--td>${repository.layout}</td--%>
+ <td>
+ <c:choose>
+ <c:when test="${repository.layout == 'default'}">
+ Maven 2.x Repository
+ </c:when>
+ <c:otherwise>
+ Maven 1.x Repository
+ </c:otherwise>
+ </c:choose>
+ </td>
+ </tr>
+ <tr>
+ <td>Cron:</td>
+ <td>${repository.refreshCronExpression}</td>
+ </tr>
+ <tr>
+ <td>Repository Purge By Days Older Than:</td>
+ <td>${repository.daysOlder}</td>
+ </tr>
+ <tr>
+ <td>Repository Purge By Retention Count:</td>
+ <td>${repository.retentionCount}</td>
+ </tr>
+ <tr>
+ <td>Releases Included:</td>
+ <td class="${repository.releases ? 'donemark' : 'errormark'} booleanIcon">
+ </tr>
+ <tr>
+ <td>Snapshots Included:</td>
+ <td class="${repository.snapshots ? 'donemark' : 'errormark'} booleanIcon">
+ </tr>
+ <tr>
+ <td>Scannable:</td>
+ <td class="${repository.scanned ? 'donemark' : 'errormark'} booleanIcon">
+ </tr>
+ <tr>
+ <td>Delete Released Snapshots:</td>
+ <td class="${repository.deleteReleasedSnapshots ? 'donemark' : 'errormark'} booleanIcon">
+ </tr>
+ </table>
+ </div>
+
+ <ww:form method="post" action="${action}" namespace="/admin" validate="true" theme="simple">
+ <div class="buttons">
+ <ww:hidden name="repository.id" value="${repository.id}"/>
+ <ww:hidden name="repository.name" value="${repository.name}"/>
+ <ww:hidden name="repository.location" value="${repository.location}"/>
+ <ww:hidden name="repository.indexDir" value="${repository.indexDir}"/>
+ <ww:hidden name="repository.layout" value="${repository.layout}"/>
+ <ww:hidden name="repository.refreshCronExpression" value="${repository.refreshCronExpression}"/>
+ <ww:hidden name="repository.daysOlder" value="${repository.daysOlder}"/>
+ <ww:hidden name="repository.retentionCount" value="${repository.retentionCount}"/>
+ <ww:hidden name="repository.releases" value="${repository.releases}"/>
+ <ww:hidden name="repository.snapshots" value="${repository.snapshots}"/>
+ <ww:hidden name="repository.scanned" value="${repository.scanned}"/>
+ <ww:hidden name="repository.deleteReleasedSnapshots" value="${repository.deleteReleasedSnapshots}"/>
+
+ <c:choose>
+ <c:when test="${action == 'addRepository'}">
+ <ww:submit value="Save" method="confirmAdd"/>
+ </c:when>
+ <c:otherwise>
+ <ww:submit value="Save" method="confirmUpdate"/>
+ </c:otherwise>
+ </c:choose>
+
+ <ww:submit value="Cancel" method="execute"/>
+ </div>
+ </ww:form>
+
+</body>
+</html>
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java?rev=663788&r1=663787&r2=663788&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java Thu Jun 5 16:50:57 2008
@@ -159,6 +159,24 @@
archivaConfigurationControl.verify();
}
+
+ public void testAddRepositoryExistingLocation()
+ throws Exception
+ {
+ if( !location.exists() )
+ {
+ location.mkdirs();
+ }
+
+ action.prepare();
+ ManagedRepositoryConfiguration repository = action.getRepository();
+ populateRepository( repository );
+
+ assertTrue( location.exists() );
+ String status = action.commit();
+ assertEquals( AddManagedRepositoryAction.CONFIRM, status );
+ }
+
private void populateRepository( ManagedRepositoryConfiguration repository )
{
repository.setId( REPO_ID );
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java?rev=663788&r1=663787&r2=663788&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java Thu Jun 5 16:50:57 2008
@@ -134,6 +134,7 @@
archivaConfiguration.getConfiguration();
archivaConfigurationControl.setReturnValue( configuration );
archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfigurationControl.setReturnValue( configuration );
archivaConfiguration.save( configuration );
@@ -157,7 +158,7 @@
roleManagerControl.verify();
archivaConfigurationControl.verify();
}
-
+
private void assertRepositoryEquals( ManagedRepositoryConfiguration expectedRepository,
ManagedRepositoryConfiguration actualRepository )
{