aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/RepositoryFactory.java19
-rw-r--r--archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java4
2 files changed, 17 insertions, 6 deletions
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/RepositoryFactory.java b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/RepositoryFactory.java
index e2be03f40..c02e71f76 100644
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/RepositoryFactory.java
+++ b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/RepositoryFactory.java
@@ -77,20 +77,22 @@ public class RepositoryFactory
private FileStore fileStore;
+ private ExecutorService executorService;
+
public enum StoreType
{
SEGMENT_FILE_TYPE,
IN_MEMORY_TYPE;
}
-
private StoreType storeType = SEGMENT_FILE_TYPE;
- Path repositoryPath = Paths.get( "repository" );
+ private Path repositoryPath = Paths.get( "repository" );
public Repository createRepository()
throws IOException, InvalidFileStoreVersionException
{
+ createExecutor();
NodeStore nodeStore;
if ( SEGMENT_FILE_TYPE == storeType )
{
@@ -199,7 +201,6 @@ public class RepositoryFactory
}
} );
- ExecutorService executorService = createExecutor();
StatisticsProvider statsProvider = StatisticsProvider.NOOP;
int queueSize = Integer.getInteger( "queueSize", 10000 );
File indexDir = Files.createTempDirectory( "archiva_index" ).toFile();
@@ -255,6 +256,10 @@ public class RepositoryFactory
{
fileStore.close();
}
+ if (executorService != null)
+ {
+ executorService.shutdownNow();
+ }
}
public StoreType getStoreType()
@@ -294,9 +299,13 @@ public class RepositoryFactory
}
}
- private ExecutorService createExecutor()
+ private void createExecutor()
{
- return Executors.newCachedThreadPool();
+ if (executorService ==null )
+ {
+ executorService = Executors.newCachedThreadPool();
+ }
+
//
// ThreadPoolExecutor executor =
// new ThreadPoolExecutor( 0, 5, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
diff --git a/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java b/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java
index 6094a631c..52f37b4ff 100644
--- a/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java
+++ b/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java
@@ -84,7 +84,9 @@ public class JcrRepositoryStatisticsGatheringTest
RepositoryFactory repositoryFactory = new RepositoryFactory();
repositoryFactory.setRepositoryPath( dir.getPath() );
- session = repositoryFactory.createRepository().login(new SimpleCredentials( "admin", "admin".toCharArray()));
+ repositoryFactory.setStoreType( RepositoryFactory.StoreType.IN_MEMORY_TYPE );
+ session = repositoryFactory.createRepository() //
+ .login(new SimpleCredentials( "admin", "admin".toCharArray()));
// TODO: perhaps have an archiva-jcr-utils module shared by these plugins that does this and can contain