You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ba...@apache.org on 2015/04/06 20:59:25 UTC
svn commit: r1671641 - in /continuum/trunk:
continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/
continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/
continuum-purge/continuum-purge-mas...
Author: batkinson
Date: Mon Apr 6 18:59:25 2015
New Revision: 1671641
URL: http://svn.apache.org/r1671641
Log:
Clarified responsibilities of scanner and repo purge controller.
Added:
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/ScannerHandler.java
- copied, changed from r1671640, continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java
Modified:
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java
continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/DefaultRepositoryScanner.java
continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScannerInstance.java
continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/controller/RepositoryPurgeController.java
continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/task/PurgeTaskExecutor.java
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java?rev=1671641&r1=1671640&r2=1671641&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java Mon Apr 6 18:59:25 2015
@@ -34,9 +34,9 @@ import java.util.List;
public interface RepositoryScanner
{
- void scan( File repoLocation, PurgeController purgeController )
+ void scan( File repoLocation, ScannerHandler handler )
throws ContinuumPurgeExecutorException;
- void scan( File repoLocation, PurgeController purgeController, List<String> ignoredContentPatterns )
+ void scan( File repoLocation, ScannerHandler handler, List<String> ignoredContentPatterns )
throws ContinuumPurgeExecutorException;
}
\ No newline at end of file
Copied: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/ScannerHandler.java (from r1671640, continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java)
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/ScannerHandler.java?p2=continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/ScannerHandler.java&p1=continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java&r1=1671640&r2=1671641&rev=1671641&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScanner.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/purge/repository/scanner/ScannerHandler.java Mon Apr 6 18:59:25 2015
@@ -19,24 +19,7 @@ package org.apache.continuum.purge.repos
* under the License.
*/
-import org.apache.continuum.purge.controller.PurgeController;
-import org.apache.continuum.purge.executor.ContinuumPurgeExecutorException;
-
-import java.io.File;
-import java.util.List;
-
-/**
- * Codes were taken from Archiva and made some changes.
- *
- * @author Maria Catherine Tan
- * @since 25 jul 07
- */
-public interface RepositoryScanner
+public interface ScannerHandler
{
-
- void scan( File repoLocation, PurgeController purgeController )
- throws ContinuumPurgeExecutorException;
-
- void scan( File repoLocation, PurgeController purgeController, List<String> ignoredContentPatterns )
- throws ContinuumPurgeExecutorException;
-}
\ No newline at end of file
+ void handle( String path );
+}
Modified: continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/DefaultRepositoryScanner.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/DefaultRepositoryScanner.java?rev=1671641&r1=1671640&r2=1671641&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/DefaultRepositoryScanner.java (original)
+++ continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/DefaultRepositoryScanner.java Mon Apr 6 18:59:25 2015
@@ -20,7 +20,6 @@ package org.apache.continuum.purge.repos
*/
import org.apache.commons.collections.CollectionUtils;
-import org.apache.continuum.purge.controller.PurgeController;
import org.apache.continuum.purge.executor.ContinuumPurgeExecutorException;
import org.apache.continuum.purge.repository.utils.FileTypes;
import org.codehaus.plexus.component.annotations.Component;
@@ -42,14 +41,14 @@ public class DefaultRepositoryScanner
@Requirement( hint = "file-types" )
private FileTypes filetypes;
- public void scan( File repoLocation, PurgeController purgeController )
+ public void scan( File repoLocation, ScannerHandler handler )
throws ContinuumPurgeExecutorException
{
List<String> ignoredPatterns = filetypes.getIgnoredFileTypePatterns();
- scan( repoLocation, purgeController, ignoredPatterns );
+ scan( repoLocation, handler, ignoredPatterns );
}
- public void scan( File repositoryLocation, PurgeController purgeController, List<String> ignoredContentPatterns )
+ public void scan( File repositoryLocation, ScannerHandler handler, List<String> ignoredContentPatterns )
throws ContinuumPurgeExecutorException
{
@@ -87,7 +86,7 @@ public class DefaultRepositoryScanner
dirWalker.setExcludes( allExcludes );
RepositoryScannerInstance scannerInstance =
- new RepositoryScannerInstance( repositoryLocation, purgeController );
+ new RepositoryScannerInstance( repositoryLocation, handler );
dirWalker.addDirectoryWalkListener( scannerInstance );
Modified: continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScannerInstance.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScannerInstance.java?rev=1671641&r1=1671640&r2=1671641&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScannerInstance.java (original)
+++ continuum/trunk/continuum-purge/continuum-purge-core/src/main/java/org/apache/continuum/purge/repository/scanner/RepositoryScannerInstance.java Mon Apr 6 18:59:25 2015
@@ -19,7 +19,6 @@ package org.apache.continuum.purge.repos
* under the License.
*/
-import org.apache.continuum.purge.controller.PurgeController;
import org.apache.maven.archiva.common.utils.BaseFile;
import org.codehaus.plexus.util.DirectoryWalkListener;
import org.slf4j.Logger;
@@ -37,12 +36,12 @@ public class RepositoryScannerInstance
private final File repository;
- private final PurgeController purgeController;
+ private final ScannerHandler handler;
- public RepositoryScannerInstance( File repoLocation, PurgeController purgeController )
+ public RepositoryScannerInstance( File repoLocation, ScannerHandler handler )
{
this.repository = repoLocation;
- this.purgeController = purgeController;
+ this.handler = handler;
}
public void debug( String message )
@@ -63,7 +62,7 @@ public class RepositoryScannerInstance
public void directoryWalkStep( int percentage, File file )
{
BaseFile basefile = new BaseFile( repository, file );
- purgeController.doPurge( basefile.getRelativePath() );
+ handler.handle( basefile.getRelativePath() );
}
}
\ No newline at end of file
Modified: continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/controller/RepositoryPurgeController.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/controller/RepositoryPurgeController.java?rev=1671641&r1=1671640&r2=1671641&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/controller/RepositoryPurgeController.java (original)
+++ continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/controller/RepositoryPurgeController.java Mon Apr 6 18:59:25 2015
@@ -31,11 +31,15 @@ import org.apache.continuum.purge.execut
import org.apache.continuum.purge.executor.ReleasedSnapshotsRepositoryPurgeExecutor;
import org.apache.continuum.purge.executor.RetentionCountRepositoryPurgeExecutor;
import org.apache.continuum.purge.repository.content.RepositoryManagedContent;
+import org.apache.continuum.purge.repository.scanner.RepositoryScanner;
+import org.apache.continuum.purge.repository.scanner.ScannerHandler;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+
/**
* DefaultPurgeController
*
@@ -43,7 +47,7 @@ import org.slf4j.LoggerFactory;
*/
@Component( role = org.apache.continuum.purge.controller.PurgeController.class, hint = "purge-repository" )
public class RepositoryPurgeController
- implements PurgeController
+ implements PurgeController, ScannerHandler
{
private static final Logger log = LoggerFactory.getLogger( RepositoryPurgeController.class );
@@ -54,8 +58,13 @@ public class RepositoryPurgeController
@Requirement
private PurgeConfigurationService purgeConfigurationService;
+ @Requirement( hint = "repository-scanner" )
+ private RepositoryScanner scanner;
+
private boolean deleteReleasedSnapshots = false;
+ private boolean deleteAll = false;
+
public void initializeExecutors( AbstractPurgeConfiguration purgeConfig )
throws ContinuumPurgeExecutorException
{
@@ -75,6 +84,7 @@ public class RepositoryPurgeController
if ( repoPurge.isDeleteAll() )
{
+ deleteAll = true;
purgeExecutor = new CleanAllPurgeExecutor( ContinuumPurgeConstants.PURGE_REPOSITORY );
}
else
@@ -98,27 +108,49 @@ public class RepositoryPurgeController
public void doPurge( AbstractPurgeConfiguration purgeConfig )
{
RepositoryPurgeConfiguration repoPurge = (RepositoryPurgeConfiguration) purgeConfig;
- log.info( "--- Start: Purging repository [{}] {} ---", repoPurge.getRepository().getId(),
- repoPurge.getRepository().getLocation() );
doPurge( repoPurge.getRepository().getLocation() );
- log.info( "--- End: Purging repository [{}] {} ---", repoPurge.getRepository().getId(),
- repoPurge.getRepository().getLocation() );
}
public void doPurge( String path )
{
+ log.info( "--- Start: Purging repository {} ---", path );
+ if ( deleteAll )
+ {
+ handle( path );
+ }
+ else
+ {
+ try
+ {
+ scan( path );
+ }
+ catch ( ContinuumPurgeExecutorException e )
+ {
+ log.error( "failure while scanning", e );
+ }
+ }
+ log.info( "--- End: Purging repository {} ---", path );
+ }
+
+ private void scan( String path )
+ throws ContinuumPurgeExecutorException
+ {
+ scanner.scan( new File( path ), this );
+ }
+
+ public void handle( String path )
+ {
try
{
- if ( deleteReleasedSnapshots )
+ if ( !deleteAll && deleteReleasedSnapshots )
{
purgeReleasedSnapshotsExecutor.purge( path );
}
-
purgeExecutor.purge( path );
}
catch ( ContinuumPurgeExecutorException e )
{
- log.error( e.getMessage(), e );
+ log.error( String.format( "failure handling path '%s'", path ), e );
}
}
}
\ No newline at end of file
Modified: continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/task/PurgeTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/task/PurgeTaskExecutor.java?rev=1671641&r1=1671640&r2=1671641&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/task/PurgeTaskExecutor.java (original)
+++ continuum/trunk/continuum-purge/continuum-purge-master/src/main/java/org/apache/continuum/purge/task/PurgeTaskExecutor.java Mon Apr 6 18:59:25 2015
@@ -28,7 +28,6 @@ import org.apache.continuum.model.reposi
import org.apache.continuum.purge.PurgeConfigurationService;
import org.apache.continuum.purge.controller.PurgeController;
import org.apache.continuum.purge.executor.ContinuumPurgeExecutorException;
-import org.apache.continuum.purge.repository.scanner.RepositoryScanner;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
@@ -54,9 +53,6 @@ public class PurgeTaskExecutor
@Requirement
private PurgeConfigurationService purgeConfigurationService;
- @Requirement( hint = "repository-scanner" )
- private RepositoryScanner scanner;
-
private PlexusContainer container;
public void executeTask( Task task )
@@ -83,18 +79,8 @@ public class PurgeTaskExecutor
PurgeController purgeController = (PurgeController) container.lookup( PurgeController.ROLE,
"purge-repository" );
-
purgeController.initializeExecutors( repoPurge );
-
- if ( repoPurge.isDeleteAll() )
- {
- purgeController.doPurge( repoPurge );
- }
- else
- {
- File repoLocation = new File( repository.getLocation() ).getAbsoluteFile();
- scanner.scan( repoLocation, purgeController );
- }
+ purgeController.doPurge( repoPurge );
}
else if ( purgeConfig != null && purgeConfig instanceof DirectoryPurgeConfiguration )
{
@@ -102,9 +88,7 @@ public class PurgeTaskExecutor
PurgeController purgeController = (PurgeController) container.lookup( PurgeController.ROLE,
"purge-directory" );
-
purgeController.initializeExecutors( dirPurge );
-
purgeController.doPurge( dirPurge.getLocation() );
}
else if ( purgeConfig instanceof DistributedDirectoryPurgeConfiguration )
@@ -113,9 +97,7 @@ public class PurgeTaskExecutor
PurgeController purgeController = (PurgeController) container.lookup( PurgeController.ROLE,
"purge-distributed-directory" );
-
purgeController.initializeExecutors( dirPurge );
-
purgeController.doPurge( dirPurge );
}
else if ( purgeConfig instanceof DistributedRepositoryPurgeConfiguration )
@@ -125,9 +107,7 @@ public class PurgeTaskExecutor
PurgeController purgeController = (PurgeController) container.lookup( PurgeController.ROLE,
"purge-distributed-repository" );
-
purgeController.initializeExecutors( dirPurge );
-
purgeController.doPurge( dirPurge );
}