Author: olamy
Date: Tue Dec 17 07:28:54 2013
New Revision: 1551473

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

Added:
    
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java
   (with props)
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/mock/MockMergedRemoteIndexesScheduler.java
      - copied, changed from r1551472, 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
    
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java
      - copied, changed from r1551472, 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
Modified:
    archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml
    
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMergerRequest.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/MergedRemoteIndexesTask.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/resources/META-INF/spring-context.xml
    
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/pom.xml
    
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml?rev=1551473&r1=1551472&r2=1551473&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml 
(original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml Tue Dec 
17 07:28:54 2013
@@ -198,6 +198,7 @@
               org.apache.maven.index*,
               org.apache.archiva.redback.components.scheduler,
               org.quartz,
+              org.apache.archiva.scheduler,
               org.slf4j;resolution:=optional
             </Import-Package>
           </instructions>

Added: 
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=1551473&view=auto
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java
 (added)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java
 Tue Dec 17 07:28:54 2013
@@ -0,0 +1,96 @@
+package org.apache.archiva.indexer.merger;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.archiva.admin.model.beans.RepositoryGroup;
+import org.apache.archiva.admin.model.group.RepositoryGroupAdmin;
+import org.apache.archiva.scheduler.MergedRemoteIndexesScheduler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.TaskScheduler;
+import org.springframework.scheduling.support.CronTrigger;
+import org.springframework.stereotype.Service;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ScheduledFuture;
+
+/**
+ * @author Olivier Lamy
+ * @since 2.0.0
+ */
+@Service( "mergedRemoteIndexesScheduler#default" )
+public class DefaultMergedRemoteIndexesScheduler
+    implements MergedRemoteIndexesScheduler
+{
+
+    private Logger logger = LoggerFactory.getLogger( getClass() );
+
+    @Inject
+    @Named( value = "taskScheduler#mergeRemoteIndexes" )
+    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 )
+    {
+        if ( repositoryGroup.getCronExpression() == null )
+        {
+            return;
+        }
+        CronTrigger cronTrigger = new CronTrigger( 
repositoryGroup.getCronExpression() );
+
+        File directory = repositoryGroupAdmin.getMergedIndexDirectory( 
repositoryGroup.getId() );
+
+        List<String> repositories = repositoryGroup.getRepositories();
+
+        IndexMergerRequest indexMergerRequest =
+            new IndexMergerRequest( repositories, true, 
repositoryGroup.getId(), repositoryGroup.getMergedIndexPath(),
+                                    repositoryGroup.getMergedIndexTtl() 
).mergedIndexDirectory( directory );
+
+        MergedRemoteIndexesTask.MergedRemoteIndexesTaskRequest taskRequest =
+            new MergedRemoteIndexesTask.MergedRemoteIndexesTaskRequest( 
indexMergerRequest, indexMerger );
+
+        ScheduledFuture scheduledFuture =
+            taskScheduler.schedule( new MergedRemoteIndexesTask( taskRequest 
), cronTrigger );
+        scheduledFutureMap.put( repositoryGroup.getId(), scheduledFuture );
+    }
+
+    @Override
+    public void unschedule( RepositoryGroup repositoryGroup )
+    {
+        ScheduledFuture scheduledFuture = scheduledFutureMap.remove( 
repositoryGroup.getId() );
+        if ( scheduledFuture != null )
+        {
+            scheduledFuture.cancel( true );
+        }
+    }
+}

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultMergedRemoteIndexesScheduler.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMergerRequest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMergerRequest.java?rev=1551473&r1=1551472&r2=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMergerRequest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMergerRequest.java
 Tue Dec 17 07:28:54 2013
@@ -147,4 +147,32 @@ public class IndexMergerRequest
         sb.append( '}' );
         return sb.toString();
     }
+
+    @Override
+    public boolean equals( Object o )
+    {
+        if ( this == o )
+        {
+            return true;
+        }
+        if ( o == null || getClass() != o.getClass() )
+        {
+            return false;
+        }
+
+        IndexMergerRequest that = (IndexMergerRequest) o;
+
+        if ( !groupId.equals( that.groupId ) )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode()
+    {
+        return groupId.hashCode();
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/MergedRemoteIndexesTask.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/MergedRemoteIndexesTask.java?rev=1551473&r1=1551472&r2=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/MergedRemoteIndexesTask.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/MergedRemoteIndexesTask.java
 Tue Dec 17 07:28:54 2013
@@ -19,15 +19,10 @@ package org.apache.archiva.indexer.merge
  * under the License.
  */
 
-import org.apache.archiva.redback.components.scheduler.AbstractJob;
 import org.apache.maven.index.context.IndexingContext;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-
 /**
  * @author Olivier Lamy
  * @since 2.0.0
@@ -58,7 +53,7 @@ public class MergedRemoteIndexesTask
         }
     }
 
-    public MergedRemoteIndexesTaskResult execute( )
+    public MergedRemoteIndexesTaskResult execute()
         throws IndexMergerException
     {
         IndexMerger indexMerger = mergedRemoteIndexesTaskRequest.indexMerger;
@@ -100,6 +95,34 @@ public class MergedRemoteIndexesTask
         {
             this.indexMerger = indexMerger;
         }
+
+        @Override
+        public boolean equals( Object o )
+        {
+            if ( this == o )
+            {
+                return true;
+            }
+            if ( o == null || getClass() != o.getClass() )
+            {
+                return false;
+            }
+
+            MergedRemoteIndexesTaskRequest that = 
(MergedRemoteIndexesTaskRequest) o;
+
+            if ( !indexMergerRequest.equals( that.indexMergerRequest ) )
+            {
+                return false;
+            }
+
+            return true;
+        }
+
+        @Override
+        public int hashCode()
+        {
+            return indexMergerRequest.hashCode();
+        }
     }
 
     public static class MergedRemoteIndexesTaskResult
@@ -121,4 +144,32 @@ public class MergedRemoteIndexesTask
             this.indexingContext = indexingContext;
         }
     }
+
+    @Override
+    public boolean equals( Object o )
+    {
+        if ( this == o )
+        {
+            return true;
+        }
+        if ( !( o instanceof MergedRemoteIndexesTask ) )
+        {
+            return false;
+        }
+
+        MergedRemoteIndexesTask that = (MergedRemoteIndexesTask) o;
+
+        if ( !mergedRemoteIndexesTaskRequest.equals( 
that.mergedRemoteIndexesTaskRequest ) )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode()
+    {
+        return mergedRemoteIndexesTaskRequest.hashCode();
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/resources/META-INF/spring-context.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/resources/META-INF/spring-context.xml?rev=1551473&r1=1551472&r2=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/resources/META-INF/spring-context.xml
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/resources/META-INF/spring-context.xml
 Tue Dec 17 07:28:54 2013
@@ -40,5 +40,10 @@
     </constructor-arg>
   </bean>
 
+  <bean name="taskScheduler#mergeRemoteIndexes"
+        
class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler">
+    <property name="poolSize" value="4"/>
+    <property name="threadGroupName" value="mergeRemoteIndexes"/>
+  </bean>
 
 </beans>
\ No newline at end of file

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=1551473&r1=1551472&r2=1551473&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:28:54 2013
@@ -27,7 +27,11 @@ import org.apache.archiva.admin.model.ma
 import org.apache.archiva.admin.repository.AbstractRepositoryAdmin;
 import org.apache.archiva.audit.AuditEvent;
 import org.apache.archiva.configuration.Configuration;
+import org.apache.archiva.configuration.ConfigurationEvent;
+import org.apache.archiva.configuration.ConfigurationListener;
 import org.apache.archiva.configuration.RepositoryGroupConfiguration;
+import org.apache.archiva.redback.components.registry.RegistryListener;
+import org.apache.archiva.scheduler.MergedRemoteIndexesScheduler;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,6 +42,7 @@ import javax.inject.Inject;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -60,6 +65,9 @@ public class DefaultRepositoryGroupAdmin
     @Inject
     private ManagedRepositoryAdmin managedRepositoryAdmin;
 
+    @Inject
+    private MergedRemoteIndexesScheduler mergedRemoteIndexesScheduler;
+
     private File groupsDirectory;
 
     @PostConstruct
@@ -71,8 +79,22 @@ public class DefaultRepositoryGroupAdmin
         {
             groupsDirectory.mkdirs();
         }
+
+        try
+        {
+            for ( RepositoryGroup repositoryGroup : getRepositoriesGroups() )
+            {
+                mergedRemoteIndexesScheduler.schedule( repositoryGroup );
+            }
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.warn( "fail to getRepositoriesGroups {}", e.getMessage(), e );
+        }
+
     }
 
+
     @Override
     public File getMergedIndexDirectory( String repositoryGroupId )
     {
@@ -121,10 +143,12 @@ public class DefaultRepositoryGroupAdmin
         repositoryGroupConfiguration.setRepositories( 
repositoryGroup.getRepositories() );
         repositoryGroupConfiguration.setMergedIndexPath( 
repositoryGroup.getMergedIndexPath() );
         repositoryGroupConfiguration.setMergedIndexTtl( 
repositoryGroup.getMergedIndexTtl() );
+        repositoryGroupConfiguration.setCronExpression( 
repositoryGroup.getCronExpression() );
         Configuration configuration = 
getArchivaConfiguration().getConfiguration();
         configuration.addRepositoryGroup( repositoryGroupConfiguration );
         saveConfiguration( configuration );
         triggerAuditEvent( repositoryGroup.getId(), null, 
AuditEvent.ADD_REPO_GROUP, auditInformation );
+        mergedRemoteIndexesScheduler.schedule( repositoryGroup );
         return Boolean.TRUE;
     }
 
@@ -134,6 +158,8 @@ public class DefaultRepositoryGroupAdmin
         Configuration configuration = 
getArchivaConfiguration().getConfiguration();
         RepositoryGroupConfiguration repositoryGroupConfiguration =
             configuration.getRepositoryGroupsAsMap().get( repositoryGroupId );
+        mergedRemoteIndexesScheduler.unschedule(
+            new RepositoryGroup( repositoryGroupId, 
Collections.<String>emptyList() ) );
         if ( repositoryGroupConfiguration == null )
         {
             throw new RepositoryAdminException(
@@ -141,6 +167,7 @@ public class DefaultRepositoryGroupAdmin
         }
         configuration.removeRepositoryGroup( repositoryGroupConfiguration );
         triggerAuditEvent( repositoryGroupId, null, 
AuditEvent.DELETE_REPO_GROUP, auditInformation );
+
         return Boolean.TRUE;
     }
 
@@ -166,6 +193,7 @@ public class DefaultRepositoryGroupAdmin
         repositoryGroupConfiguration.setRepositories( 
repositoryGroup.getRepositories() );
         repositoryGroupConfiguration.setMergedIndexPath( 
repositoryGroup.getMergedIndexPath() );
         repositoryGroupConfiguration.setMergedIndexTtl( 
repositoryGroup.getMergedIndexTtl() );
+        repositoryGroupConfiguration.setCronExpression( 
repositoryGroup.getCronExpression() );
         configuration.addRepositoryGroup( repositoryGroupConfiguration );
 
         saveConfiguration( configuration );
@@ -173,6 +201,8 @@ public class DefaultRepositoryGroupAdmin
         {
             triggerAuditEvent( repositoryGroup.getId(), null, 
AuditEvent.MODIFY_REPO_GROUP, auditInformation );
         }
+        mergedRemoteIndexesScheduler.unschedule( repositoryGroup );
+        mergedRemoteIndexesScheduler.schedule( repositoryGroup );
         return Boolean.TRUE;
     }
 

Copied: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/mock/MockMergedRemoteIndexesScheduler.java
 (from r1551472, 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java)
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/mock/MockMergedRemoteIndexesScheduler.java?p2=archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/mock/MockMergedRemoteIndexesScheduler.java&p1=archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java&r1=1551472&r2=1551473&rev=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/mock/MockMergedRemoteIndexesScheduler.java
 Tue Dec 17 07:28:54 2013
@@ -1,4 +1,4 @@
-package org.apache.archiva.scheduler.repository.model;
+package org.apache.archiva.admin.mock;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,27 +19,27 @@ package org.apache.archiva.scheduler.rep
  * under the License.
  */
 
-import org.apache.archiva.redback.components.taskqueue.TaskQueueException;
-import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.archiva.admin.model.beans.RepositoryGroup;
+import org.apache.archiva.scheduler.MergedRemoteIndexesScheduler;
+import org.springframework.stereotype.Service;
 
 /**
- * Scheduling component for archiva repositories
+ * @author Olivier Lamy
  */
-public interface RepositoryArchivaTaskScheduler
-    extends ArchivaTaskScheduler<RepositoryTask>
+@Service
+public class MockMergedRemoteIndexesScheduler
+    implements MergedRemoteIndexesScheduler
 {
 
-
-    boolean isProcessingRepositoryTask( String repositoryId );
-
-
-    boolean isProcessingRepositoryTask( RepositoryTask task );
-
-    void queueTask( RepositoryTask task )
-        throws TaskQueueException;
-
-    boolean unQueueTask( RepositoryTask task )
-        throws TaskQueueException;
-
-
+    @Override
+    public void schedule( RepositoryGroup repositoryGroup )
+    {
+        // no op
+    }
+
+    @Override
+    public void unschedule( RepositoryGroup repositoryGroup )
+    {
+        // no op
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml?rev=1551473&r1=1551472&r2=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml 
(original)
+++ 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml 
Tue Dec 17 07:28:54 2013
@@ -51,6 +51,7 @@
             </Export-Package>
             <Import-Package>
               org.apache.archiva.redback.components.taskqueue,
+              org.apache.archiva.admin.model.beans
             </Import-Package>
           </instructions>
         </configuration>

Copied: 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java
 (from r1551472, 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.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?p2=archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java&p1=archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java&r1=1551472&r2=1551473&rev=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/MergedRemoteIndexesScheduler.java
 Tue Dec 17 07:28:54 2013
@@ -1,4 +1,4 @@
-package org.apache.archiva.scheduler.repository.model;
+package org.apache.archiva.scheduler;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,27 +19,22 @@ package org.apache.archiva.scheduler.rep
  * under the License.
  */
 
-import org.apache.archiva.redback.components.taskqueue.TaskQueueException;
-import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.archiva.admin.model.beans.RepositoryGroup;
 
 /**
- * Scheduling component for archiva repositories
+ * @author Olivier Lamy
+ * @since 2.0.0
  */
-public interface RepositoryArchivaTaskScheduler
-    extends ArchivaTaskScheduler<RepositoryTask>
+public interface MergedRemoteIndexesScheduler
 {
 
+    /**
+     * will check if this repository group need to a schedule a cron to 
download/merge
+     * remote indexes
+     * @param repositoryGroup
+     */
+    void schedule( RepositoryGroup repositoryGroup );
 
-    boolean isProcessingRepositoryTask( String repositoryId );
-
-
-    boolean isProcessingRepositoryTask( RepositoryTask task );
-
-    void queueTask( RepositoryTask task )
-        throws TaskQueueException;
-
-    boolean unQueueTask( RepositoryTask task )
-        throws TaskQueueException;
-
+    void unschedule( RepositoryGroup repositoryGroup );
 
 }

Modified: 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java?rev=1551473&r1=1551472&r2=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository-api/src/main/java/org/apache/archiva/scheduler/repository/model/RepositoryArchivaTaskScheduler.java
 Tue Dec 17 07:28:54 2013
@@ -29,10 +29,8 @@ public interface RepositoryArchivaTaskSc
     extends ArchivaTaskScheduler<RepositoryTask>
 {
 
-
     boolean isProcessingRepositoryTask( String repositoryId );
 
-
     boolean isProcessingRepositoryTask( RepositoryTask task );
 
     void queueTask( RepositoryTask task )

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java?rev=1551473&r1=1551472&r2=1551473&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
 Tue Dec 17 07:28:54 2013
@@ -1313,10 +1313,7 @@ public class ArchivaDavResourceFactory
 
             IndexMergerRequest indexMergerRequest = new IndexMergerRequest( 
authzRepos, true, repositoryGroupConfiguration.getId(),
                                     
repositoryGroupConfiguration.getMergedIndexPath(),
-                                    
repositoryGroupConfiguration.getMergedIndexTtl() ).mergedIndexDirectory(
-                tempRepoFile );
-
-
+                                    
repositoryGroupConfiguration.getMergedIndexTtl() ).mergedIndexDirectory( 
tempRepoFile );
 
             MergedRemoteIndexesTask.MergedRemoteIndexesTaskRequest taskRequest 
=
                 new 
MergedRemoteIndexesTask.MergedRemoteIndexesTaskRequest(indexMergerRequest, 
indexMerger);


Reply via email to