Просмотр исходного кода

shutdown executor service on close

Signed-off-by: olivier lamy <olamy@apache.org>
MRM-1958
olivier lamy 6 лет назад
Родитель
Сommit
c0623553f0

+ 14
- 5
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<>(),

+ 3
- 1
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

Загрузка…
Отмена
Сохранить