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 2013/12/17 08:29:31 UTC

svn commit: r1551475 - in /archiva/trunk/archiva-modules: archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/ archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/bean...

Author: olamy
Date: Tue Dec 17 07:29:31 2013
New Revision: 1551475

URL: http://svn.apache.org/r1551475
Log:
[MRM-1746] build merged index for groups with a cron schedule
fix issues

Modified:
    archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java
    archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/RepositoryGroup.java
    archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.java
    archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoryGroupService.java

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java?rev=1551475&r1=1551474&r2=1551475&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java Tue Dec 17 07:29:31 2013
@@ -22,6 +22,7 @@ package org.apache.archiva.indexer.merge
 import org.apache.archiva.admin.model.beans.RepositoryGroup;
 import org.apache.archiva.admin.model.group.RepositoryGroupAdmin;
 import org.apache.archiva.scheduler.MergedRemoteIndexesScheduler;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.scheduling.TaskScheduler;
@@ -52,24 +53,19 @@ public class DefaultMergedRemoteIndexesS
     private TaskScheduler taskScheduler;
 
     @Inject
-    private RepositoryGroupAdmin repositoryGroupAdmin;
-
-    @Inject
     private IndexMerger indexMerger;
 
     private Map<String, ScheduledFuture> scheduledFutureMap = new ConcurrentHashMap<String, ScheduledFuture>();
 
     @Override
-    public void schedule( RepositoryGroup repositoryGroup )
+    public void schedule( RepositoryGroup repositoryGroup, File directory )
     {
-        if ( repositoryGroup.getCronExpression() == null )
+        if ( StringUtils.isEmpty( repositoryGroup.getCronExpression() ) )
         {
             return;
         }
         CronTrigger cronTrigger = new CronTrigger( repositoryGroup.getCronExpression() );
 
-        File directory = repositoryGroupAdmin.getMergedIndexDirectory( repositoryGroup.getId() );
-
         List<String> repositories = repositoryGroup.getRepositories();
 
         IndexMergerRequest indexMergerRequest =
@@ -79,6 +75,9 @@ public class DefaultMergedRemoteIndexesS
         MergedRemoteIndexesTaskRequest taskRequest =
             new MergedRemoteIndexesTaskRequest( indexMergerRequest, indexMerger );
 
+        logger.info( "schedule merge remote index for group {} with cron {}", repositoryGroup.getId(),
+                     repositoryGroup.getCronExpression() );
+
         ScheduledFuture scheduledFuture =
             taskScheduler.schedule( new MergedRemoteIndexesTask( taskRequest ), cronTrigger );
         scheduledFutureMap.put( repositoryGroup.getId(), scheduledFuture );

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/RepositoryGroup.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/RepositoryGroup.java?rev=1551475&r1=1551474&r2=1551475&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/RepositoryGroup.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/RepositoryGroup.java Tue Dec 17 07:29:31 2013
@@ -176,7 +176,7 @@ public class RepositoryGroup
         this.cronExpression = cronExpression;
     }
 
-    public RepositoryGroup mergedIndexCronExpression( String mergedIndexCronExpression )
+    public RepositoryGroup cronExpression( String mergedIndexCronExpression )
     {
         this.cronExpression = mergedIndexCronExpression;
         return this;

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.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/group/DefaultRepositoryGroupAdmin.java?rev=1551475&r1=1551474&r2=1551475&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.java Tue Dec 17 07:29:31 2013
@@ -84,7 +84,7 @@ public class DefaultRepositoryGroupAdmin
         {
             for ( RepositoryGroup repositoryGroup : getRepositoriesGroups() )
             {
-                mergedRemoteIndexesScheduler.schedule( repositoryGroup );
+                mergedRemoteIndexesScheduler.schedule( repositoryGroup, getMergedIndexDirectory( repositoryGroup.getId() ) );
             }
         }
         catch ( RepositoryAdminException e )
@@ -112,7 +112,8 @@ public class DefaultRepositoryGroupAdmin
             repositoriesGroups.add( new RepositoryGroup( repositoryGroupConfiguration.getId(), new ArrayList<String>(
                 repositoryGroupConfiguration.getRepositories() ) ).mergedIndexPath(
                 repositoryGroupConfiguration.getMergedIndexPath() ).mergedIndexTtl(
-                repositoryGroupConfiguration.getMergedIndexTtl() ) );
+                repositoryGroupConfiguration.getMergedIndexTtl() ).cronExpression(
+                repositoryGroupConfiguration.getCronExpression() ) );
         }
 
         return repositoriesGroups;
@@ -148,7 +149,7 @@ public class DefaultRepositoryGroupAdmin
         configuration.addRepositoryGroup( repositoryGroupConfiguration );
         saveConfiguration( configuration );
         triggerAuditEvent( repositoryGroup.getId(), null, AuditEvent.ADD_REPO_GROUP, auditInformation );
-        mergedRemoteIndexesScheduler.schedule( repositoryGroup );
+        mergedRemoteIndexesScheduler.schedule( repositoryGroup, getMergedIndexDirectory( repositoryGroup.getId() ) );
         return Boolean.TRUE;
     }
 
@@ -202,7 +203,7 @@ public class DefaultRepositoryGroupAdmin
             triggerAuditEvent( repositoryGroup.getId(), null, AuditEvent.MODIFY_REPO_GROUP, auditInformation );
         }
         mergedRemoteIndexesScheduler.unschedule( repositoryGroup );
-        mergedRemoteIndexesScheduler.schedule( repositoryGroup );
+        mergedRemoteIndexesScheduler.schedule( repositoryGroup, getMergedIndexDirectory( repositoryGroup.getId() ) );
         return Boolean.TRUE;
     }
 

Modified: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java?rev=1551475&r1=1551474&r2=1551475&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java (original)
+++ archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java Tue Dec 17 07:29:31 2013
@@ -21,6 +21,8 @@ package org.apache.archiva.scheduler;
 
 import org.apache.archiva.admin.model.beans.RepositoryGroup;
 
+import java.io.File;
+
 /**
  * @author Olivier Lamy
  * @since 2.0.0
@@ -33,7 +35,7 @@ public interface MergedRemoteIndexesSche
      * remote indexes
      * @param repositoryGroup
      */
-    void schedule( RepositoryGroup repositoryGroup );
+    void schedule( RepositoryGroup repositoryGroup, File directory );
 
     void unschedule( RepositoryGroup repositoryGroup );
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoryGroupService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoryGroupService.java?rev=1551475&r1=1551474&r2=1551475&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoryGroupService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoryGroupService.java Tue Dec 17 07:29:31 2013
@@ -33,7 +33,7 @@ import java.util.List;
 /**
  * @author Olivier Lamy
  */
-@Service( "repositoryGroupService#rest" )
+@Service("repositoryGroupService#rest")
 public class DefaultRepositoryGroupService
     extends AbstractRestService
     implements RepositoryGroupService
@@ -52,8 +52,8 @@ public class DefaultRepositoryGroupServi
             for ( org.apache.archiva.admin.model.beans.RepositoryGroup repoGroup : repositoryGroupAdmin.getRepositoriesGroups() )
             {
                 repositoriesGroups.add( new RepositoryGroup( repoGroup.getId(), new ArrayList<String>(
-                    repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() )
-                        .mergedIndexTtl( repoGroup.getMergedIndexTtl() ) );
+                    repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl(
+                    repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ) );
             }
             return repositoriesGroups;
         }
@@ -83,8 +83,9 @@ public class DefaultRepositoryGroupServi
         {
             return repositoryGroupAdmin.addRepositoryGroup(
                 new org.apache.archiva.admin.model.beans.RepositoryGroup( repoGroup.getId(), new ArrayList<String>(
-                    repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() )
-                    .mergedIndexTtl( repoGroup.getMergedIndexTtl() ), getAuditInformation() );
+                    repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl(
+                    repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ),
+                getAuditInformation() );
         }
         catch ( RepositoryAdminException e )
         {
@@ -99,8 +100,9 @@ public class DefaultRepositoryGroupServi
         {
             return repositoryGroupAdmin.updateRepositoryGroup(
                 new org.apache.archiva.admin.model.beans.RepositoryGroup( repoGroup.getId(), new ArrayList<String>(
-                    repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() )
-                    .mergedIndexTtl( repoGroup.getMergedIndexTtl() ), getAuditInformation() );
+                    repoGroup.getRepositories() ) ).mergedIndexPath( repoGroup.getMergedIndexPath() ).mergedIndexTtl(
+                    repoGroup.getMergedIndexTtl() ).cronExpression( repoGroup.getCronExpression() ),
+                getAuditInformation() );
         }
         catch ( RepositoryAdminException e )
         {