Author: olamy
Date: Wed Nov 2 23:19:46 2011
New Revision: 1196856
URL: http://svn.apache.org/viewvc?rev=1196856&view=rev
Log:
correctly close index on shutdown
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java?rev=1196856&r1=1196855&r2=1196856&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
Wed Nov 2 23:19:46 2011
@@ -55,6 +55,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.File;
@@ -104,10 +105,24 @@ public class DefaultManagedRepositoryAdm
@Inject
protected RoleManager roleManager;
+ // fields
+ List<? extends IndexCreator> indexCreators;
+
+ NexusIndexer indexer;
+
@PostConstruct
private void initialize()
throws RepositoryAdminException
{
+ try
+ {
+ indexCreators = mavenIndexerUtils.getAllIndexCreators();
+ indexer = plexusSisuBridge.lookup( NexusIndexer.class );
+ }
+ catch ( PlexusSisuBridgeException e )
+ {
+ throw new RepositoryAdminException( e.getMessage(), e );
+ }
// initialize index context on start
for ( ManagedRepository managedRepository : getManagedRepositories() )
{
@@ -115,6 +130,28 @@ public class DefaultManagedRepositoryAdm
}
}
+ @PreDestroy
+ private void shutdown()
+ throws RepositoryAdminException
+ {
+ try
+ {
+ // close index on shutdown
+ for ( ManagedRepository managedRepository :
getManagedRepositories() )
+ {
+ IndexingContext context = indexer.getIndexingContexts().get(
managedRepository.getId() );
+ if ( context != null )
+ {
+ indexer.removeIndexingContext( context, false );
+ }
+ }
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryAdminException( e.getMessage(), e );
+ }
+ }
+
public List<ManagedRepository> getManagedRepositories()
throws RepositoryAdminException
{
@@ -523,8 +560,6 @@ public class DefaultManagedRepositoryAdm
{
try
{
- List<? extends IndexCreator> indexCreators =
mavenIndexerUtils.getAllIndexCreators();
- NexusIndexer indexer = plexusSisuBridge.lookup( NexusIndexer.class
);
IndexingContext context = indexer.getIndexingContexts().get(
repository.getId() );
@@ -567,10 +602,6 @@ public class DefaultManagedRepositoryAdm
{
throw new RepositoryAdminException( e.getMessage(), e );
}
- catch ( PlexusSisuBridgeException e )
- {
- throw new RepositoryAdminException( e.getMessage(), e );
- }
catch ( UnsupportedExistingLuceneIndexException e )
{
throw new RepositoryAdminException( e.getMessage(), e );
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java?rev=1196856&r1=1196855&r2=1196856&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
Wed Nov 2 23:19:46 2011
@@ -38,6 +38,7 @@ import org.apache.maven.index.context.Un
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
import javax.inject.Inject;
import java.io.File;
import java.io.IOException;
@@ -63,16 +64,52 @@ public class DefaultRemoteRepositoryAdmi
@Inject
private MavenIndexerUtils mavenIndexerUtils;
+ // fields
+ List<? extends IndexCreator> indexCreators;
+
+ NexusIndexer indexer;
+
@PostConstruct
private void initialize()
throws RepositoryAdminException
{
+ try
+ {
+ indexCreators = mavenIndexerUtils.getAllIndexCreators();
+ indexer = plexusSisuBridge.lookup( NexusIndexer.class );
+ }
+ catch ( PlexusSisuBridgeException e )
+ {
+ throw new RepositoryAdminException( e.getMessage(), e );
+ }
for ( RemoteRepository remoteRepository : getRemoteRepositories() )
{
createIndexContext( remoteRepository );
}
}
+ @PreDestroy
+ private void shutdown()
+ throws RepositoryAdminException
+ {
+ try
+ {
+ // close index on shutdown
+ for ( RemoteRepository remoteRepository : getRemoteRepositories() )
+ {
+ IndexingContext context = indexer.getIndexingContexts().get(
remoteRepository.getId() );
+ if ( context != null )
+ {
+ indexer.removeIndexingContext( context, false );
+ }
+ }
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryAdminException( e.getMessage(), e );
+ }
+ }
+
public List<RemoteRepository> getRemoteRepositories()
throws RepositoryAdminException
@@ -220,11 +257,8 @@ public class DefaultRemoteRepositoryAdmi
// FIXME get this from ArchivaAdministration
String appServerBase = System.getProperty( "appserver.base" );
- List<? extends IndexCreator> indexCreators =
mavenIndexerUtils.getAllIndexCreators();
- NexusIndexer nexusIndexer = plexusSisuBridge.lookup(
NexusIndexer.class );
-
String contextKey = "remote-" + remoteRepository.getId();
- IndexingContext indexingContext =
nexusIndexer.getIndexingContexts().get( contextKey );
+ IndexingContext indexingContext =
indexer.getIndexingContexts().get( contextKey );
if ( indexingContext != null )
{
return indexingContext;
@@ -240,10 +274,9 @@ public class DefaultRemoteRepositoryAdmi
{
indexDirectory.mkdirs();
}
- return nexusIndexer.addIndexingContext( contextKey,
remoteRepository.getId(), repoDir, indexDirectory,
- remoteRepository.getUrl(),
- calculateIndexRemoteUrl(
remoteRepository ),
-
mavenIndexerUtils.getAllIndexCreators() );
+ return indexer.addIndexingContext( contextKey,
remoteRepository.getId(), repoDir, indexDirectory,
+ remoteRepository.getUrl(),
calculateIndexRemoteUrl( remoteRepository ),
+
mavenIndexerUtils.getAllIndexCreators() );
}
catch ( MalformedURLException e )
{
@@ -253,10 +286,6 @@ public class DefaultRemoteRepositoryAdmi
{
throw new RepositoryAdminException( e.getMessage(), e );
}
- catch ( PlexusSisuBridgeException e )
- {
- throw new RepositoryAdminException( e.getMessage(), e );
- }
catch ( UnsupportedExistingLuceneIndexException e )
{
throw new RepositoryAdminException( e.getMessage(), e );