Author: oching
Date: Mon Jun 2 23:22:36 2008
New Revision: 662662
URL: http://svn.apache.org/viewvc?rev=662662&view=rev
Log:
[MRM-789]
-check if the repo location is referenced as a system property before deleting
the contents of the repo
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.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/DeleteManagedRepositoryAction.java?rev=662662&r1=662661&r2=662662&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java
Mon Jun 2 23:22:36 2008
@@ -42,6 +42,7 @@
import java.io.IOException;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
/**
* DeleteManagedRepositoryAction
@@ -93,7 +94,7 @@
}
private String deleteRepository( boolean deleteContents )
- {
+ {
ManagedRepositoryConfiguration existingRepository = repository;
if ( existingRepository == null )
{
@@ -101,6 +102,20 @@
return ERROR;
}
+ if( deleteContents )
+ {
+ // [MRM-789] Archiva may delete your app server installation
+ Properties props = System.getProperties();
+ for( Object value : props.values() )
+ {
+ if( StringUtils.equalsIgnoreCase( ( (String) value ).trim(),
existingRepository.getLocation().trim() ) )
+ {
+ addActionError( "Unable to delete repository. The location
is being referenced in the system properties." );
+ return ERROR;
+ }
+ }
+ }
+
String result = SUCCESS;
try
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.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/DeleteManagedRepositoryActionTest.java?rev=662662&r1=662661&r2=662662&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
Mon Jun 2 23:22:36 2008
@@ -214,6 +214,26 @@
assertFalse( location.exists() );
}
+
+ public void testDeleteRepositoryLocationReferencedInSysPropertiesError()
+ throws Exception
+ {
+ System.setProperty( "test.property", getTestFile(
"target/test/location" ).getAbsolutePath() );
+
+ prepareRoleManagerMock();
+
+ Configuration configuration = prepDeletionTest( createRepository(), 4
);
+
+ String status = action.deleteContents();
+
+ assertEquals( Action.ERROR, status );
+
+ assertFalse( configuration.getManagedRepositories().isEmpty() );
+
+ assertTrue( location.exists() );
+
+ System.clearProperty( "test.property" );
+ }
private Configuration prepDeletionTest( ManagedRepositoryConfiguration
originalRepository, int expectCountGetConfig )
throws RegistryException, IndeterminateConfigurationException