[jboss-svn-commits] JBL Code SVN: r35669 - in labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main: java/org/jboss/community/sbs/plugin/reports/monthly and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 22 09:16:42 EDT 2010


Author: lkrzyzanek
Date: 2010-10-22 09:16:41 -0400 (Fri, 22 Oct 2010)
New Revision: 35669

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/DownloadMonthlyReportAction.java
Modified:
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbReportDAOImpl.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportDAO.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/MonthlyReportManagerImpl.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/resources/templates/admin/monthly-reports.ftl
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/struts.xml
Log:
Added download monthly report

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbReportDAOImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbReportDAOImpl.java	2010-10-22 13:16:00 UTC (rev 35668)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbReportDAOImpl.java	2010-10-22 13:16:41 UTC (rev 35669)
@@ -69,8 +69,8 @@
   @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
   public void updateReportStatus(ReportBean report) {
     String message = report.getStatusMessage();
-    if (message != null && message.length() > 200) {
-      message = message.substring(0, 200);
+    if (message != null && message.length() > 100) {
+      message = message.substring(0, 100);
     }
     getSimpleJdbcTemplate().update(UPDATE_REPORT_STATUS, report.getStatus(), message, report.getId());
   }
@@ -95,6 +95,13 @@
     return getSimpleJdbcTemplate().queryForObject(SELECT_REPORT_BY_ID, reportBeanMapper, id);
   }
 
+  @Override
+  public InputStream getReportData(long id) {
+    String sql = "SELECT reportData FROM reportsMonthly WHERE id = ?";
+    JiveJdbcOperationsTemplate template = new JiveJdbcOperationsTemplate(getSimpleJdbcTemplate());
+    return template.queryBlobAsStream(sql, id);
+  }
+
   private class ReportBeanMapper implements ParameterizedRowMapper<ReportBean> {
     @Override
     public ReportBean mapRow(ResultSet rs, int rowNum) throws SQLException {

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportDAO.java	2010-10-22 13:16:00 UTC (rev 35668)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportDAO.java	2010-10-22 13:16:41 UTC (rev 35669)
@@ -67,4 +67,12 @@
    */
   public ReportBean getReport(long id);
 
+  /**
+   * Get report data
+   * 
+   * @param id report id
+   * @return data as stream
+   */
+  public InputStream getReportData(long id);
+
 }

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/MonthlyReportManagerImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/MonthlyReportManagerImpl.java	2010-10-22 13:16:00 UTC (rev 35668)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/MonthlyReportManagerImpl.java	2010-10-22 13:16:41 UTC (rev 35669)
@@ -21,13 +21,13 @@
  */
 package org.jboss.community.sbs.plugin.reports.monthly;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Date;
 
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
-import org.hsqldb.lib.StringInputStream;
 import org.jboss.community.sbs.plugin.reports.dao.ReportBean;
 import org.jboss.community.sbs.plugin.reports.dao.ReportDAO;
 
@@ -55,7 +55,6 @@
     report.setFrom(from.getTime());
     report.setTo(to.getTime());
     report.setRedHatUsersSnapshot(redHatUsersSnapshot.getTime());
-    // create Status enum
     report.setStatus(ReportBean.STATUS.CREATED.intValue());
     report.setStatusMessage("Pending in queue");
 
@@ -69,10 +68,12 @@
     report.setStatus(ReportBean.STATUS.FINISHED.intValue());
     report.setStatusMessage(null);
 
-    InputStream is = new StringInputStream(result);
+    byte[] data = result.getBytes();
 
-    reportDAO.saveResultAndStatus(report, is, result.length());
+    InputStream is = new ByteArrayInputStream(data);
 
+    reportDAO.saveResultAndStatus(report, is, data.length);
+
     try {
       is.close();
     } catch (IOException e) {

Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/DownloadMonthlyReportAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/DownloadMonthlyReportAction.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/DownloadMonthlyReportAction.java	2010-10-22 13:16:41 UTC (rev 35669)
@@ -0,0 +1,64 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2010  Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.community.sbs.plugin.reports.struts;
+
+import java.io.InputStream;
+
+import org.jboss.community.sbs.plugin.reports.dao.ReportDAO;
+
+import com.jivesoftware.community.action.JiveActionSupport;
+
+/**
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ * 
+ */
+public class DownloadMonthlyReportAction extends JiveActionSupport {
+
+  private ReportDAO reportDAO;
+
+  private Long reportId;
+
+  private InputStream reportData;
+
+  public String execute() {
+    reportData = reportDAO.getReportData(reportId);
+    return SUCCESS;
+  }
+
+  public void setReportDAO(ReportDAO reportDAO) {
+    this.reportDAO = reportDAO;
+  }
+
+  public InputStream getReportData() {
+    return reportData;
+  }
+
+  public void setReportId(Long reportId) {
+    this.reportId = reportId;
+  }
+
+  public Long getReportId() {
+    return reportId;
+  }
+
+}


Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/DownloadMonthlyReportAction.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/resources/templates/admin/monthly-reports.ftl
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/resources/templates/admin/monthly-reports.ftl	2010-10-22 13:16:00 UTC (rev 35668)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/resources/templates/admin/monthly-reports.ftl	2010-10-22 13:16:41 UTC (rev 35669)
@@ -48,7 +48,7 @@
           <td>${statics['org.jboss.community.sbs.plugin.reports.struts.AdminRHUsersSnapshotAction'].convertToDate(report.redHatUsersSnapshot)?datetime}</td>
           <td>${report.configurationId}</td>
           <td><@s.text name="plugin.reports.admin.monthlyrep.reports.status.#{report.status}"/> <#if report.statusMessage??><br/>${report.statusMessage}</#if></td>
-          <td><#if report.status == 10><a href="/admin/monthly-report-download.jspa?reportID=${report.id}"><@s.text name="plugin.reports.admin.monthlyrep.reports.download"/></a></#if></td>
+          <td><#if report.status == 10><a href="/admin/download-monthly-report.jspa?reportId=${report.id?string("0")}"><@s.text name="plugin.reports.admin.monthlyrep.reports.download"/></a></#if></td>
         </tr>
         </#list>
         </tbody>

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/struts.xml	2010-10-22 13:16:00 UTC (rev 35668)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/struts.xml	2010-10-22 13:16:41 UTC (rev 35669)
@@ -38,7 +38,7 @@
 
     <action name="create-monthly-report" class="org.jboss.community.sbs.plugin.reports.struts.MonthlyReportsAction"
       method="execute">
-      <interceptor-ref name="paramsPrepareParamsStack"/>
+      <interceptor-ref name="paramsPrepareParamsStack" />
 
       <result name="input" type="freemarker">
         /plugins/reports/resources/templates/admin/monthly-reports.ftl
@@ -48,5 +48,14 @@
       </result>
     </action>
 
+    <action name="download-monthly-report" class="org.jboss.community.sbs.plugin.reports.struts.DownloadMonthlyReportAction">
+      <result name="success" type="stream">
+        <param name="contentType">text/csv</param>
+        <param name="inputName">reportData</param>
+        <param name="contentDisposition">attachment; filename="report.csv"</param>
+        <param name="bufferSize">1024</param>
+      </result>
+    </action>
+
   </package>
 </struts>



More information about the jboss-svn-commits mailing list