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/10/02 02:44:22 UTC

svn commit: r581119 - in /maven/archiva/trunk/archiva-web/archiva-webapp/src/main: java/org/apache/maven/archiva/web/action/reports/ resources/ resources/org/apache/maven/archiva/web/action/reports/ webapp/WEB-INF/jsp/decorators/ webapp/WEB-INF/jsp/rep...

Author: joakime
Date: Mon Oct  1 17:44:21 2007
New Revision: 581119

URL: http://svn.apache.org/viewvc?rev=581119&view=rev
Log:
[MRM-448] validation for reports form.
Creating validation.
Changing "Show Reports" to "Pick Reports" to be more clear.
Minor cleanup of jasper detection.


Added:
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java   (with props)
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml   (with props)
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp
      - copied, changed from r581044, maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/showReports.jsp
Removed:
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ShowReportsAction.java
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/showReports.jsp
Modified:
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.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/decorators/default.jsp

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java?rev=581119&r1=581118&r2=581119&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java Mon Oct  1 17:44:21 2007
@@ -40,7 +40,7 @@
 import java.util.List;
 
 /**
- * @plexus.component role="com.opensymphony.xwork.Action" role-hint="generateReportAction"
+ * @plexus.component role="com.opensymphony.xwork.Action" role-hint="generateReport"
  */
 public class GenerateReportAction
     extends PlexusActionSupport
@@ -55,7 +55,7 @@
 
     protected HttpServletRequest request;
 
-    protected List reports = new ArrayList();
+    protected List<RepositoryProblemReport> reports = new ArrayList<RepositoryProblemReport>();
 
     protected String groupId;
 
@@ -79,10 +79,10 @@
 
     private static Boolean jasperPresent;
 
-    public String execute()
+    public String input()
         throws Exception
     {
-        List problemArtifacts = dao.getRepositoryProblemDAO().queryRepositoryProblems( configureConstraint() );
+        List<RepositoryProblem> problemArtifacts = dao.getRepositoryProblemDAO().queryRepositoryProblems( configureConstraint() );
 
         String contextPath =
             request.getRequestURL().substring( 0, request.getRequestURL().indexOf( request.getRequestURI() ) );
@@ -118,9 +118,9 @@
         {
             return BLANK;
         }
-        else if ( !isJasperPresent() )
+        else if ( isJasperPresent() )
         {
-            return BASIC;
+            return "jasper";
         }
         else
         {
@@ -137,6 +137,10 @@
                 Class.forName( "net.sf.jasperreports.engine.JRExporterParameter" );
                 jasperPresent = Boolean.TRUE;
             }
+            catch ( NoClassDefFoundError e )
+            {
+                jasperPresent = Boolean.FALSE;
+            }
             catch ( ClassNotFoundException e )
             {
                 jasperPresent = Boolean.FALSE;
@@ -154,7 +158,7 @@
 
         if ( groupId != null && ( !groupId.equals( "" ) ) )
         {
-            if ( repositoryId != null && ( !repositoryId.equals( "" ) && !repositoryId.equals( ShowReportsAction.ALL_REPOSITORIES ) ) )
+            if ( repositoryId != null && ( !repositoryId.equals( "" ) && !repositoryId.equals( PickReportAction.ALL_REPOSITORIES ) ) )
             {
                 constraint = new RepositoryProblemConstraint( range, groupId, repositoryId );
             }
@@ -163,7 +167,7 @@
                 constraint = new RepositoryProblemByGroupIdConstraint( range, groupId );
             }
         }
-        else if ( repositoryId != null && ( !repositoryId.equals( "" ) && !repositoryId.equals( ShowReportsAction.ALL_REPOSITORIES ) ) )
+        else if ( repositoryId != null && ( !repositoryId.equals( "" ) && !repositoryId.equals( PickReportAction.ALL_REPOSITORIES ) ) )
         {
             constraint = new RepositoryProblemByRepositoryIdConstraint( range, repositoryId );
         }
@@ -180,7 +184,7 @@
         this.request = request;
     }
 
-    public List getReports()
+    public List<RepositoryProblemReport> getReports()
     {
         return reports;
     }

Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java?rev=581119&view=auto
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java (added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java Mon Oct  1 17:44:21 2007
@@ -0,0 +1,70 @@
+package org.apache.maven.archiva.web.action.reports;
+
+/*
+ * 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 com.opensymphony.xwork.Preparable;
+
+import org.apache.maven.archiva.database.ArchivaDAO;
+import org.apache.maven.archiva.database.constraints.UniqueFieldConstraint;
+import org.apache.maven.archiva.model.RepositoryProblem;
+import org.codehaus.plexus.xwork.action.PlexusActionSupport;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+/**
+ * PickReportAction 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ * 
+ * @plexus.component role="com.opensymphony.xwork.Action" role-hint="pickReport"
+ */
+public class PickReportAction
+    extends PlexusActionSupport
+    implements Preparable
+{
+    /**
+     * @plexus.requirement role-hint="jdo"
+     */
+    protected ArchivaDAO dao;
+
+    private Collection<String> repositoryIds = new ArrayList<String>();
+
+    public static final String ALL_REPOSITORIES = "All Repositories";
+
+    public void prepare()
+    {
+        repositoryIds.add( ALL_REPOSITORIES );
+        repositoryIds.addAll( dao
+            .query( new UniqueFieldConstraint( RepositoryProblem.class.getName(), "repositoryId" ) ) );
+    }
+    
+    public String input()
+        throws Exception
+    {
+        return INPUT;
+    }
+
+    public Collection<String> getRepositoryIds()
+    {
+        return repositoryIds;
+    }
+}

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/PickReportAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml?rev=581119&view=auto
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml (added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml Mon Oct  1 17:44:21 2007
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  ~ 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.
+  -->
+
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+  <field name="rowCount">
+    <field-validator type="int">
+      <param name="min">10</param>
+      <param name="max">5000</param>
+      <message>Row count must be between ${min} and ${max}.</message>
+    </field-validator>
+  </field>
+  <!-- 
+  <field name="groupId">
+    <field-validator type="regex">
+      <param name="expression"><![CDATA[([a-zA-Z0-9]+[a-zA-Z0-9.]*)]]></param>
+      <message>You must provide a valid group id.</message>
+    </field-validator>
+  </field>
+     -->
+  <field name="repositoryId">
+    <field-validator type="requiredstring">
+      <message>You must provide a repository id.</message>
+    </field-validator>
+  </field>
+</validators>
\ No newline at end of file

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/reports/GenerateReportAction-validation.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

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?rev=581119&r1=581118&r2=581119&view=diff
==============================================================================
--- 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 Mon Oct  1 17:44:21 2007
@@ -402,17 +402,18 @@
   </package>
 
   <package name="report" namespace="/report" extends="base">
-    <action name="showReports" class="showReportsAction">
-      <result>/WEB-INF/jsp/reports/showReports.jsp</result>
+    <action name="pickReport" class="pickReport">
+      <result>/WEB-INF/jsp/reports/pickReport.jsp</result>
     </action>
 
-    <action name="generateReportAction" class="generateReportAction">
-      <result name="success" type="jasper">
+    <action name="generateReport" class="generateReport">
+      <result name="jasper" type="jasper">
         <param name="location">/WEB-INF/jasperreports/report.jasper</param>
         <param name="dataSource">reports</param>
         <param name="format">HTML</param>
       </result>
-      <result name="basic">/WEB-INF/jsp/reports/basicReport.jsp</result>
+      <result name="input" type="redirect-action">pickReport</result>
+      <result name="success">/WEB-INF/jsp/reports/basicReport.jsp</result>
       <result name="blank">/WEB-INF/jsp/reports/blankReport.jsp</result>
     </action>
   </package>

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp?rev=581119&r1=581118&r2=581119&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp Mon Oct  1 17:44:21 2007
@@ -100,7 +100,7 @@
       <ul>
         <redback:ifAuthorized permission="archiva-access-reports">
           <li class="none">
-            <my:currentWWUrl action="showReports" namespace="/report">Show Reports</my:currentWWUrl>
+            <my:currentWWUrl action="pickReport" namespace="/report">Pick Report</my:currentWWUrl>
           </li>
         </redback:ifAuthorized>
           <%-- POSTPONED to 1.1 series

Copied: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp (from r581044, maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/showReports.jsp)
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp?p2=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp&p1=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/showReports.jsp&r1=581044&r2=581119&rev=581119&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/showReports.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp Mon Oct  1 17:44:21 2007
@@ -30,7 +30,7 @@
 
 <div id="contentArea">
 
-  <ww:form action="generateReportAction" namespace="/report">
+  <ww:form action="generateReport" namespace="/report" validate="true">
     <ww:textfield label="Row Count" name="rowCount" value="100"/>
     <ww:textfield label="Group ID" name="groupId"/>
     <ww:select label="Repository ID" name="repositoryId" list="repositoryIds"/>