You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2009/09/18 10:58:50 UTC

svn commit: r816545 - in /archiva/trunk/archiva-modules: archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ archiva-scheduled/src/test/java/org/apache/maven/arch...

Author: oching
Date: Fri Sep 18 08:58:50 2009
New Revision: 816545

URL: http://svn.apache.org/viewvc?rev=816545&view=rev
Log:
[MRM-1056] Option to force scanning of an artifact/repository regardless of file dates
o added new method for creating task with scanAll flag
o added unit tests for creating tasks with different configs

Added:
    archiva/trunk/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/
    archiva/trunk/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java
Modified:
    archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java
    archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java
    archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java
    archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java

Modified: archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java?rev=816545&r1=816544&r2=816545&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java (original)
+++ archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java Fri Sep 18 08:58:50 2009
@@ -428,7 +428,7 @@
     private synchronized void queueInitialRepoScan( ManagedRepositoryConfiguration repoConfig )
     {
         String repoId = repoConfig.getId();        
-        RepositoryTask task = TaskCreator.createRepositoryTask( repoId, "initial-scan", true );
+        RepositoryTask task = TaskCreator.createRepositoryTask( repoId, "initial-scan" );
 
         if ( queuedRepos.contains( repoId ) )
         {

Modified: archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java?rev=816545&r1=816544&r2=816545&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java (original)
+++ archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java Fri Sep 18 08:58:50 2009
@@ -59,7 +59,7 @@
         TaskQueue taskQueue = (TaskQueue) dataMap.get( TASK_QUEUE );
         String queuePolicy = dataMap.get( TASK_QUEUE_POLICY ).toString();
 
-        RepositoryTask task = TaskCreator.createRepositoryTask( (String) dataMap.get( TASK_REPOSITORY ), "", true );
+        RepositoryTask task = TaskCreator.createRepositoryTask( (String) dataMap.get( TASK_REPOSITORY ), "" );
         task.setName( context.getJobDetail().getName() );
 
         try

Modified: archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java?rev=816545&r1=816544&r2=816545&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java (original)
+++ archiva/trunk/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java Fri Sep 18 08:58:50 2009
@@ -31,7 +31,7 @@
  */
 public class TaskCreator
 {
-    public static RepositoryTask createRepositoryTask( String repositoryId, String taskNameSuffix, boolean scanAll )
+    public static RepositoryTask createRepositoryTask( String repositoryId, String taskNameSuffix )
     {
         String suffix = "";
         if( !StringUtils.isEmpty( taskNameSuffix ) )
@@ -43,18 +43,34 @@
         task.setRepositoryId( repositoryId );
         task.setName( DefaultArchivaTaskScheduler.REPOSITORY_JOB + ":" + repositoryId + suffix );
         task.setQueuePolicy( ArchivaTask.QUEUE_POLICY_WAIT );
+                
+        return task;
+    }
+    
+    public static RepositoryTask createRepositoryTask( String repositoryId, String taskNameSuffix, boolean scanAll )
+    {
+        RepositoryTask task = createRepositoryTask( repositoryId, taskNameSuffix );
         task.setScanAll( scanAll );
         
         return task;
     }
         
     public static RepositoryTask createRepositoryTask( String repositoryId, String taskNameSuffix, File resourceFile,
-                                                       boolean updateRelatedArtifacts, boolean scanAll )
+                                                       boolean updateRelatedArtifacts )
     {
-        RepositoryTask task = createRepositoryTask( repositoryId, taskNameSuffix, scanAll );
+        RepositoryTask task = createRepositoryTask( repositoryId, taskNameSuffix );
         task.setResourceFile( resourceFile );
         task.setUpdateRelatedArtifacts( updateRelatedArtifacts );
-
+        
+        return task;
+    }
+    
+    public static RepositoryTask createRepositoryTask( String repositoryId, String taskNameSuffix, File resourceFile,
+                                                       boolean updateRelatedArtifacts, boolean scanAll )
+    {
+        RepositoryTask task = createRepositoryTask( repositoryId, taskNameSuffix, resourceFile, updateRelatedArtifacts );
+        task.setScanAll( scanAll );
+        
         return task;
     }
     

Added: archiva/trunk/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java?rev=816545&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java (added)
+++ archiva/trunk/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java Fri Sep 18 08:58:50 2009
@@ -0,0 +1,115 @@
+package org.apache.maven.archiva.scheduled.tasks;
+
+/*
+ * 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 java.io.File;
+
+import org.apache.maven.archiva.scheduled.DefaultArchivaTaskScheduler;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
+public class TaskCreatorTest
+    extends PlexusInSpringTestCase
+{
+    private static final String REPO_ID = "test-repo";
+
+    private static final String TASKNAME_SUFFIX = "test-task";
+
+    public void testCreateRepositoryTask()
+        throws Exception
+    {
+        RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, "" );
+
+        assertEquals( "Incorrect repository id set.", REPO_ID, task.getRepositoryId() );
+        assertEquals( "Incorrect queue policy set.", ArchivaTask.QUEUE_POLICY_WAIT, task.getQueuePolicy() );
+        assertEquals( "Incorrect task name set.", DefaultArchivaTaskScheduler.REPOSITORY_JOB + ":" + REPO_ID,
+                      task.getName() );
+    }
+
+    public void testCreateRepositoryTaskWithTaskNameSuffix()
+        throws Exception
+    {
+        RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, TASKNAME_SUFFIX );
+
+        assertBasicTaskDetails( task );
+    }
+
+    public void testCreateRepositoryTaskScanAllArtifacts()
+        throws Exception
+    {
+        RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, TASKNAME_SUFFIX, true );
+
+        assertBasicTaskDetails( task );
+        assertTrue( task.scanAll );
+    }
+
+    public void testCreateRepositoryTaskDoNotScanAllArtifacts()
+        throws Exception
+    {
+        RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, TASKNAME_SUFFIX, false );
+
+        assertBasicTaskDetails( task );
+        assertFalse( task.scanAll );
+    }
+
+    public void testCreateRepositoryTaskForArtifactUpdateAllRelated()
+        throws Exception
+    {
+        File resource = new File( getBasedir(), "target/test-classes/test.jar" );
+        RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, TASKNAME_SUFFIX, resource, true );
+
+        assertBasicTaskDetails( task );
+        assertEquals( "Incorrect resource file set.", resource, task.getResourceFile() );
+        assertTrue( task.updateRelatedArtifacts );
+    }
+
+    public void testCreateRepositoryTaskForArtifactDoNotUpdateAllRelated()
+        throws Exception
+    {
+        File resource = new File( getBasedir(), "target/test-classes/test.jar" );
+        RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, TASKNAME_SUFFIX, resource, false );
+
+        assertBasicTaskDetails( task );
+        assertEquals( "Incorrect resource file set.", resource, task.getResourceFile() );
+        assertFalse( task.updateRelatedArtifacts );
+    }
+
+    public void testCreateIndexingTask()
+        throws Exception
+    {
+        File resource = new File( getBasedir(), "target/test-classes/test.jar" );
+        ArtifactIndexingTask task = TaskCreator.createIndexingTask( REPO_ID, resource, ArtifactIndexingTask.ADD );
+
+        assertEquals( "Incorrect repository id set.", REPO_ID, task.getRepositoryId() );
+        assertEquals( "Incorrect queue policy set.", ArchivaTask.QUEUE_POLICY_WAIT, task.getQueuePolicy() );
+        assertEquals( "Incorrect task name set.", DefaultArchivaTaskScheduler.INDEXING_JOB + ":" + REPO_ID + ":" +
+            resource.getName() + ":" + ArtifactIndexingTask.ADD, task.getName() );
+        assertEquals( "Incorrect action set.", ArtifactIndexingTask.ADD, task.getAction() );
+        assertEquals( "Incorrect resource file set.", resource, task.getResourceFile() );
+    }
+
+    private void assertBasicTaskDetails( RepositoryTask task )
+    {
+        assertEquals( "Incorrect repository id set.", REPO_ID, task.getRepositoryId() );
+        assertEquals( "Incorrect task name set.", DefaultArchivaTaskScheduler.REPOSITORY_JOB + ":" + REPO_ID + ":" +
+            TASKNAME_SUFFIX, task.getName() );
+        assertEquals( "Incorrect queue policy set.", ArchivaTask.QUEUE_POLICY_WAIT, task.getQueuePolicy() );
+    }
+
+}

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java?rev=816545&r1=816544&r2=816545&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java Fri Sep 18 08:58:50 2009
@@ -313,7 +313,7 @@
             }
         }
 
-        RepositoryTask task = TaskCreator.createRepositoryTask( repoId, "", false );
+        RepositoryTask task = TaskCreator.createRepositoryTask( repoId, "" );
 
         taskScheduler.queueRepositoryTask( task );