]> source.dussan.org Git - archiva.git/commitdiff
[MRM-358] Update Consumers button in Database - Artifact Scanning doesn't work.
authorJoakim Erdfelt <joakime@apache.org>
Tue, 19 Jun 2007 18:43:30 +0000 (18:43 +0000)
committerJoakim Erdfelt <joakime@apache.org>
Tue, 19 Jun 2007 18:43:30 +0000 (18:43 +0000)
Patch from Napolean Ramirez applied.

git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@548821 13f79535-47bb-0310-9956-ffa450edef68

archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java
archiva-web/archiva-webapp/src/main/resources/xwork.xml
archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp

index 7c1b2a99ddb9757cb767b1db5f41f4d3d607562d..ebb42023c6a4098e58c249fee1a93abbafd47379 100644 (file)
@@ -19,12 +19,15 @@ package org.apache.maven.archiva.web.action.admin.database;
  * under the License.
  */
 
-import com.opensymphony.xwork.Preparable;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.DatabaseScanningConfiguration;
+import org.apache.maven.archiva.configuration.InvalidConfigurationException;
 import org.apache.maven.archiva.database.updater.DatabaseConsumers;
 import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.apache.maven.archiva.web.action.admin.scanning.AdminRepositoryConsumerComparator;
@@ -32,10 +35,10 @@ import org.codehaus.plexus.redback.rbac.Resource;
 import org.codehaus.plexus.redback.xwork.interceptor.SecureAction;
 import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
 import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
+import org.codehaus.plexus.registry.RegistryException;
 import org.codehaus.plexus.xwork.action.PlexusActionSupport;
 
-import java.util.Collections;
-import java.util.List;
+import com.opensymphony.xwork.Preparable;
 
 /**
  * DatabaseAction 
@@ -62,14 +65,24 @@ public class DatabaseAction
     private String cron;
 
     /**
-     * List of {@link AdminDatabaseConsumer} objects for unprocessed artifacts.
+     * List of available {@link AdminDatabaseConsumer} objects for unprocessed artifacts.
      */
     private List unprocessedConsumers;
-
+    
+    /**
+     * List of enabled {@link AdminDatabaseConsumer} objects for unprocessed artifacts.
+     */
+    private List enabledUnprocessedConsumers;
+    
     /**
      * List of {@link AdminDatabaseConsumer} objects for "to cleanup" artifacts.
      */
     private List cleanupConsumers;
+    
+    /**
+     * List of enabled {@link AdminDatabaseConsumer} objects for "to cleanup" artifacts.
+     */
+    private List enabledCleanupConsumers;
 
     public void prepare()
         throws Exception
@@ -98,19 +111,46 @@ public class DatabaseAction
     public String updateUnprocessedConsumers()
     {
         getLogger().info( "updateUnprocesedConsumers()" );
-        return INPUT;
+        
+        archivaConfiguration.getConfiguration().getDatabaseScanning().setUnprocessedConsumers( enabledUnprocessedConsumers );
+        
+        return saveConfiguration();
     }
-
+    
     public String updateCleanupConsumers()
     {
         getLogger().info( "updateCleanupConsumers()" );
-        return INPUT;
+        
+        archivaConfiguration.getConfiguration().getDatabaseScanning().setCleanupConsumers( enabledCleanupConsumers );
+        
+        return saveConfiguration();
     }
     
     public String updateSchedule()
     {
         getLogger().info( "updateSchedule()" );
-        return INPUT;
+        
+        archivaConfiguration.getConfiguration().getDatabaseScanning().setCronExpression( cron );
+        
+        return saveConfiguration();
+    }
+    
+    private String saveConfiguration()
+    {
+        getLogger().info( ".saveConfiguration()" );
+    
+        try
+        {
+            archivaConfiguration.save( archivaConfiguration.getConfiguration() );
+            addActionMessage( "Successfully saved configuration" );
+        }
+        catch ( Exception e)
+        {
+            addActionError( "Error in saving configuration" );
+            return INPUT;
+        }
+    
+        return SUCCESS;
     }
     
     public SecureActionBundle getSecureActionBundle()
@@ -143,4 +183,24 @@ public class DatabaseAction
     {
         return unprocessedConsumers;
     }
+
+    public List getEnabledUnprocessedConsumers()
+    {
+        return enabledUnprocessedConsumers;
+    }
+
+    public void setEnabledUnprocessedConsumers( List enabledUnprocessedConsumers )
+    {
+        this.enabledUnprocessedConsumers = enabledUnprocessedConsumers;
+    }
+
+    public List getEnabledCleanupConsumers()
+    {
+        return enabledCleanupConsumers;
+    }
+
+    public void setEnabledCleanupConsumers( List enabledCleanupConsumers )
+    {
+        this.enabledCleanupConsumers = enabledCleanupConsumers;
+    }
 }
index fba394159ef4f1dff02762cd0f41fa6a64932f5e..ad6781a1ff91faa2ee8c9b83e8315790e969e1c0 100644 (file)
     
     <action name="database" class="databaseAction" method="input">
       <result name="input">/WEB-INF/jsp/admin/database.jsp</result>
+      <result name="success" type="redirect-action">
+        <param name="actionName">database</param>
+      </result>
     </action>
     
     <action name="updateDatabase" class="schedulerAction" method="updateDatabase">
index d039031e2205de8b6e10086b934091884ae25b57..9ffee7d4e1c47c73289b4e5f1954302d987f6174 100644 (file)
@@ -92,7 +92,7 @@
 
         <tr>
           <td class="${bgcolor}">
-            <ww:checkbox name="enabledUnprocessedConsumer[]" theme="simple" value="${consumer.enabled}" />
+            <input type="checkbox" name="enabledUnprocessedConsumers" theme="simple" value="${consumer.id}" <c:if test="${consumer.enabled}">checked</c:if> />
           </td>
           <td class="${bgcolor}">
             <c:if test="${consumer.enabled}">
 
         <tr>
           <td class="${bgcolor}">
-            <ww:checkbox name="enabledCleanupConsumer[]" theme="simple" value="${consumer.enabled}" />
+            <input type="checkbox" name="enabledCleanupConsumers" theme="simple" value="${consumer.id}" <c:if test="${consumer.enabled}">checked</c:if> />
           </td>
           <td class="${bgcolor}">
             <c:if test="${consumer.enabled}">