You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2017/08/15 09:56:09 UTC

archiva git commit: take care of too old repository

Repository: archiva
Updated Branches:
  refs/heads/feature/jcr_oak 6fe2ee2ff -> 2351414ee


take care of too old repository

Signed-off-by: olivier lamy <ol...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/2351414e
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/2351414e
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/2351414e

Branch: refs/heads/feature/jcr_oak
Commit: 2351414ee6698951bef41e8dee63b09a9754cf3f
Parents: 6fe2ee2
Author: olivier lamy <ol...@apache.org>
Authored: Tue Aug 15 19:55:54 2017 +1000
Committer: olivier lamy <ol...@apache.org>
Committed: Tue Aug 15 19:55:54 2017 +1000

----------------------------------------------------------------------
 .../managed/DefaultManagedRepositoryAdmin.java  | 38 ++++++++++++--------
 .../remote/DefaultRemoteRepositoryAdmin.java    | 36 ++++++++++++-------
 2 files changed, 48 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/2351414e/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
index 7ba503c..f7662ba 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
@@ -46,6 +46,7 @@ import org.apache.maven.index.NexusIndexer;
 import org.apache.maven.index.context.IndexCreator;
 import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
+import org.apache.maven.index_shaded.lucene.index.IndexFormatTooOldException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -638,24 +639,33 @@ public class DefaultManagedRepositoryAdmin
 
             if ( context == null )
             {
-                context = indexer.addIndexingContext( repository.getId(), repository.getId(), repositoryDirectory,
-                                                      indexDirectory,
-                                                      repositoryDirectory.toURI().toURL().toExternalForm(),
-                                                      indexDirectory.toURI().toURL().toString(), indexCreators );
+                try
+                {
+                    context = indexer.addIndexingContext( repository.getId(), repository.getId(), repositoryDirectory,
+                                                          indexDirectory,
+                                                          repositoryDirectory.toURI().toURL().toExternalForm(),
+                                                          indexDirectory.toURI().toURL().toString(), indexCreators );
 
-                context.setSearchable( repository.isScanned() );
+                    context.setSearchable( repository.isScanned() );
+                }
+                catch ( IndexFormatTooOldException e )
+                {
+                    // existing index with an old lucene format so we need to delete it!!!
+                    // delete it first then recreate it.
+                    log.warn( "the index of repository {} is too old we have to delete and recreate it", //
+                              repository.getId() );
+                    FileUtils.deleteDirectory( indexDirectory );
+                    context = indexer.addIndexingContext( repository.getId(), repository.getId(), repositoryDirectory,
+                                                          indexDirectory,
+                                                          repositoryDirectory.toURI().toURL().toExternalForm(),
+                                                          indexDirectory.toURI().toURL().toString(), indexCreators );
+
+                    context.setSearchable( repository.isScanned() );
+                }
             }
             return context;
         }
-        catch ( MalformedURLException e )
-        {
-            throw new RepositoryAdminException( e.getMessage(), e );
-        }
-        catch ( IOException e )
-        {
-            throw new RepositoryAdminException( e.getMessage(), e );
-        }
-        catch ( UnsupportedExistingLuceneIndexException e )
+        catch ( IOException| UnsupportedExistingLuceneIndexException e )
         {
             throw new RepositoryAdminException( e.getMessage(), e );
         }

http://git-wip-us.apache.org/repos/asf/archiva/blob/2351414e/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
index bf8d88b..01f7337 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
@@ -23,16 +23,19 @@ import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.beans.RemoteRepository;
 import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin;
 import org.apache.archiva.admin.repository.AbstractRepositoryAdmin;
+import org.apache.archiva.common.utils.FileUtil;
 import org.apache.archiva.configuration.Configuration;
 import org.apache.archiva.configuration.ProxyConnectorConfiguration;
 import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
 import org.apache.archiva.configuration.RepositoryCheckPath;
 import org.apache.archiva.metadata.model.facets.AuditEvent;
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.index.NexusIndexer;
 import org.apache.maven.index.context.IndexCreator;
 import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
+import org.apache.maven.index_shaded.lucene.index.IndexFormatTooOldException;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
@@ -304,19 +307,28 @@ public class DefaultRemoteRepositoryAdmin
             {
                 indexDirectory.mkdirs();
             }
-            return indexer.addIndexingContext( contextKey, remoteRepository.getId(), repoDir, indexDirectory,
-                                               remoteRepository.getUrl(), calculateIndexRemoteUrl( remoteRepository ),
-                                               indexCreators );
-        }
-        catch ( MalformedURLException e )
-        {
-            throw new RepositoryAdminException( e.getMessage(), e );
-        }
-        catch ( IOException e )
-        {
-            throw new RepositoryAdminException( e.getMessage(), e );
+
+            try
+            {
+
+                return indexer.addIndexingContext( contextKey, remoteRepository.getId(), repoDir, indexDirectory,
+                                                   remoteRepository.getUrl(), calculateIndexRemoteUrl( remoteRepository ),
+                                                   indexCreators );
+            }
+            catch ( IndexFormatTooOldException e )
+            {
+                // existing index with an old lucene format so we need to delete it!!!
+                // delete it first then recreate it.
+                log.warn( "the index of repository {} is too old we have to delete and recreate it", //
+                          remoteRepository.getId() );
+                FileUtils.deleteDirectory( indexDirectory );
+                return indexer.addIndexingContext( contextKey, remoteRepository.getId(), repoDir, indexDirectory,
+                                                   remoteRepository.getUrl(), calculateIndexRemoteUrl( remoteRepository ),
+                                                   indexCreators );
+
+            }
         }
-        catch ( UnsupportedExistingLuceneIndexException e )
+        catch ( IOException | UnsupportedExistingLuceneIndexException e )
         {
             throw new RepositoryAdminException( e.getMessage(), e );
         }