You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/06/19 20:43:31 UTC

svn commit: r548821 - in /maven/archiva/trunk/archiva-web/archiva-webapp/src/main: java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java resources/xwork.xml webapp/WEB-INF/jsp/admin/database.jsp

Author: joakime
Date: Tue Jun 19 11:43:30 2007
New Revision: 548821

URL: http://svn.apache.org/viewvc?view=rev&rev=548821
Log:
[MRM-358] Update Consumers button in Database - Artifact Scanning doesn't work.
Patch from Napolean Ramirez applied.

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

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java?view=diff&rev=548821&r1=548820&r2=548821
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java Tue Jun 19 11:43:30 2007
@@ -19,12 +19,15 @@
  * 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.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 @@
     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 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()
@@ -142,5 +182,25 @@
     public List getUnprocessedConsumers()
     {
         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;
     }
 }

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml?view=diff&rev=548821&r1=548820&r2=548821
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml Tue Jun 19 11:43:30 2007
@@ -343,6 +343,9 @@
     
     <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">

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp?view=diff&rev=548821&r1=548820&r2=548821
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp Tue Jun 19 11:43:30 2007
@@ -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}">
@@ -147,7 +147,7 @@
 
         <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}">