[jboss-svn-commits] JBL Code SVN: r35666 - in labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src: main/java/org/jboss/community/sbs/plugin/reports/monthly and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 22 08:03:47 EDT 2010
Author: lkrzyzanek
Date: 2010-10-22 08:03:46 -0400 (Fri, 22 Oct 2010)
New Revision: 35666
Added:
labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/aggregated-report-definition.xml
labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/struts/
labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsActionTest.java
Modified:
labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbRedHatUsersDAOImpl.java
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/RedHatUsersDAO.java
labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportBean.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/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java
labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsAction.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/resources/plugin_i18n.properties
Log:
Implementation of generating report in separate thread.
Improved UI
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbRedHatUsersDAOImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbRedHatUsersDAOImpl.java 2010-10-22 09:24:46 UTC (rev 35665)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbRedHatUsersDAOImpl.java 2010-10-22 12:03:46 UTC (rev 35666)
@@ -41,6 +41,8 @@
private static final String SELECT_REDHAT_USERS_BY_DATE = "SELECT userID FROM reportsRedHatUsers WHERE created = ?";
+ private static final String SELECT_REDHAT_USERS_SNAPSHOTS = "SELECT DISTINCT created FROM reportsRedHatUsers ORDER BY created DESC";
+
private static final String SELECT_REDHAT_USERS_COUNTS = "SELECT created, count(userID) FROM reportsRedHatUsers GROUP BY created ORDER BY created DESC";
private static final String CREATE_SNAPSHOT = "INSERT reportsRedHatUsers SELECT DISTINCT u.userId, ? "
@@ -59,6 +61,11 @@
return this.getSimpleJdbcTemplate().query(SELECT_REDHAT_USERS_BY_DATE, longMapper, date.getTime());
}
+ @Override
+ public List<Long> getSnapshots() {
+ return this.getSimpleJdbcTemplate().query(SELECT_REDHAT_USERS_SNAPSHOTS, longMapper);
+ }
+
private SnapshotsCountMapper snapshotsCountMapper = new SnapshotsCountMapper();
@Override
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 09:24:46 UTC (rev 35665)
+++ 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 12:03:46 UTC (rev 35666)
@@ -21,13 +21,17 @@
*/
package org.jboss.community.sbs.plugin.reports.dao;
+import java.io.InputStream;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
import com.jivesoftware.base.database.dao.JiveJdbcDaoSupport;
+import com.jivesoftware.base.database.dao.JiveJdbcOperationsTemplate;
import com.jivesoftware.base.database.sequence.SequenceManager;
/**
@@ -46,14 +50,39 @@
private static final String INSERT_REPORT = "INSERT INTO reportsMonthly (id, fromDate, toDate, redHatUsersSnapshot, status, statusMessage) "
+ "VALUES (?, ?, ?, ?, ?, ?)";
+ private static final String UPDATE_REPORT_STATUS = "UPDATE reportsMonthly SET status = ?, statusMessage = ? WHERE id = ?";
+
+ private static final String UPDATE_REPORT_RESULT = "UPDATE reportsMonthly SET reportData = ?, status = ?, statusMessage = ? WHERE id = ?";
+
@Override
- public void createReport(ReportBean bean) {
+ @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
+ public ReportBean createReport(ReportBean bean) {
bean.setId(SequenceManager.nextID(DB_REPORT_SEQ));
getSimpleJdbcTemplate().update(INSERT_REPORT, bean.getId(), bean.getFrom(), bean.getTo(),
bean.getRedHatUsersSnapshot(), bean.getStatus(), bean.getStatusMessage());
+
+ return bean;
}
+ @Override
+ @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);
+ }
+ getSimpleJdbcTemplate().update(UPDATE_REPORT_STATUS, report.getStatus(), message, report.getId());
+ }
+
+ @Override
+ @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
+ public void saveResultAndStatus(ReportBean report, InputStream is, int contentLength) {
+ JiveJdbcOperationsTemplate template = new JiveJdbcOperationsTemplate(getSimpleJdbcTemplate());
+ template.updateBlobAsStream(UPDATE_REPORT_RESULT, contentLength, is, report.getStatus(), report.getStatusMessage(),
+ report.getId());
+ }
+
private final ReportBeanMapper reportBeanMapper = new ReportBeanMapper();
@Override
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/RedHatUsersDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/RedHatUsersDAO.java 2010-10-22 09:24:46 UTC (rev 35665)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/RedHatUsersDAO.java 2010-10-22 12:03:46 UTC (rev 35666)
@@ -52,4 +52,11 @@
*/
public Map<Long, Long> getSnapshotsCount();
+ /**
+ * Get snapshots
+ *
+ * @return
+ */
+ public List<Long> getSnapshots();
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportBean.java 2010-10-22 09:24:46 UTC (rev 35665)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/ReportBean.java 2010-10-22 12:03:46 UTC (rev 35666)
@@ -28,6 +28,20 @@
*/
public class ReportBean {
+ public enum STATUS {
+ CREATED(0), STARTED(1), FINISHED(10), ERROR(11);
+
+ int code;
+
+ STATUS(int code) {
+ this.code = code;
+ }
+
+ public int intValue() {
+ return code;
+ }
+ }
+
/**
* Internal ID
*/
@@ -95,7 +109,6 @@
this.redHatUsersSnapshot = redHatUsersSnapshot;
}
-
public int getStatus() {
return status;
}
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 09:24:46 UTC (rev 35665)
+++ 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 12:03:46 UTC (rev 35666)
@@ -21,6 +21,7 @@
*/
package org.jboss.community.sbs.plugin.reports.dao;
+import java.io.InputStream;
import java.util.List;
/**
@@ -33,9 +34,25 @@
/**
* Insert new report
*/
- public void createReport(ReportBean report);
+ public ReportBean createReport(ReportBean report);
/**
+ * Update report
+ *
+ * @param report
+ */
+ public void updateReportStatus(ReportBean report);
+
+ /**
+ * Save report result and update status
+ *
+ * @param report
+ * @param is
+ * @param contentLength
+ */
+ public void saveResultAndStatus(ReportBean report, InputStream is, int contentLength);
+
+ /**
* Get list of all reports
*
* @return
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 09:24:46 UTC (rev 35665)
+++ 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 12:03:46 UTC (rev 35666)
@@ -21,10 +21,13 @@
*/
package org.jboss.community.sbs.plugin.reports.monthly;
+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;
@@ -44,22 +47,90 @@
@Override
public void generateReport(Date from, Date to, Date redHatUsersSnapshot) {
- log.info("Generate report (" + from + " - " + to + "). RH UsersSnapshot: " + redHatUsersSnapshot);
+ if (log.isInfoEnabled()) {
+ log.info("Generate report (" + from + " - " + to + "). RH UsersSnapshot: " + redHatUsersSnapshot);
+ }
ReportBean report = new ReportBean();
report.setFrom(from.getTime());
report.setTo(to.getTime());
report.setRedHatUsersSnapshot(redHatUsersSnapshot.getTime());
// create Status enum
- report.setStatus(0);
+ report.setStatus(ReportBean.STATUS.CREATED.intValue());
report.setStatusMessage("Pending in queue");
- reportDAO.createReport(report);
+ ReportBean dbBean = reportDAO.createReport(report);
- // TODO implement new thread and start report generation.
+ ReportGeneratorThread generatorThread = new ReportGeneratorThread(dbBean);
+ generatorThread.start();
+ }
+ public void reportFinished(ReportBean report, String result) {
+ report.setStatus(ReportBean.STATUS.FINISHED.intValue());
+ report.setStatusMessage(null);
+
+ InputStream is = new StringInputStream(result);
+
+ reportDAO.saveResultAndStatus(report, is, result.length());
+
+ try {
+ is.close();
+ } catch (IOException e) {
+ log.error("Cannot close IS", e);
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("Report finished, reportID:" + report.getId());
+ }
}
+ public void reportFailed(ReportBean report, Exception e) {
+ log.error(e);
+ report.setStatus(ReportBean.STATUS.ERROR.intValue());
+ report.setStatusMessage(e.getMessage());
+ reportDAO.updateReportStatus(report);
+ }
+
+ public void reportStarted(ReportBean report) {
+ report.setStatus(ReportBean.STATUS.STARTED.intValue());
+ report.setStatusMessage(null);
+ reportDAO.updateReportStatus(report);
+ }
+
+ public class ReportGeneratorThread extends Thread {
+
+ private ReportBean report;
+
+ public ReportGeneratorThread(ReportBean report) {
+ super("ReportGeneratorThread-reportID: " + report.getId());
+ this.report = report;
+ }
+
+ @Override
+ public void run() {
+ InputStream configStream = null;
+ try {
+ reportStarted(report);
+ // TODO load configuration
+ configStream = MonthlyReportManagerImpl.class.getResourceAsStream("/aggregated-report-definition.xml");
+ String result = reportGenerator.generateReport(configStream, new Date(report.getFrom()),
+ new Date(report.getTo()), new Date(report.getRedHatUsersSnapshot()), new JiveSystemConfigProvider());
+ configStream.close();
+ reportFinished(report, result);
+ } catch (Exception e) {
+ if (configStream != null) {
+ try {
+ configStream.close();
+ } catch (IOException e1) {
+ log.error(e1);
+ }
+ }
+ reportFailed(report, e);
+
+ }
+ }
+ }
+
public void setReportDAO(ReportDAO reportDAO) {
this.reportDAO = reportDAO;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java 2010-10-22 09:24:46 UTC (rev 35665)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java 2010-10-22 12:03:46 UTC (rev 35666)
@@ -27,7 +27,8 @@
protected Date rhUsersSnapshotTimestamp;
/**
- * Values loaded from DB by bulk SQL queries are stored here for subsequent {@link #getValues(SBSValueKey)} calls.
+ * Values loaded from DB by bulk SQL queries are stored here for subsequent
+ * {@link #getValues(SBSValueKey)} calls.
*/
protected Map<SBSValueType, Map<Long, Long>> valueCache = new HashMap<SBSValueType, Map<Long, Long>>();
@@ -75,45 +76,49 @@
// TODO LIBOR define correct SQL statements!
// WIKI related values
- sqlStatements.put(SBSValueType.WIKI_NEW_ARTICLE_RH,
- "select spadeid, value from ... where rhUsersSnapshotTimestamp=? and date > ? and date < ? and ...");
+ sqlStatements.put(SBSValueType.WIKI_NEW_ARTICLE_RH, "SELECT d.containerId, count(d.internalDocID)"
+ + " FROM jiveDocument d"
+ + " WHERE d.userID IN (SELECT userId from reportsRedHatUsers where created = ?)"
+ + " and d.creationDate > ? and d.creationDate < ?" + " group by d.containerId");
+
sqlStatements.put(SBSValueType.WIKI_NEW_ARTICLE_CM,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.WIKI_EDIT_ARTICLE_RH,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.WIKI_EDIT_ARTICLE_CM,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.WIKI_COMMENT_RH,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.WIKI_COMMENT_CM,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
// forum related values
sqlStatements.put(SBSValueType.FORUM_QUESTION_RH,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.FORUM_QUESTION_CM,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.FORUM_ANSWER_HELPFUL_RH,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.FORUM_ANSWER_CORRECT_RH,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.FORUM_ANSWER_HELPFUL_CM,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.FORUM_ANSWER_CORRECT_CM,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.FORUM_THREAD_RH,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements.put(SBSValueType.FORUM_THREAD_CM,
- "select spadeid, value from ... where date > ? and date < ? and ...");
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements
- .put(SBSValueType.FORUM_REPLY_RH, "select spadeid, value from ... where date > ? and date < ? and ...");
+ .put(SBSValueType.FORUM_REPLY_RH, "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
sqlStatements
- .put(SBSValueType.FORUM_REPLY_CM, "select spadeid, value from ... where date > ? and date < ? and ...");
+.put(SBSValueType.FORUM_REPLY_CM,
+ "select 1, 1 from reportsRedHatUsers where created = ? and created = ? and created = ?");
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsAction.java 2010-10-22 09:24:46 UTC (rev 35665)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsAction.java 2010-10-22 12:03:46 UTC (rev 35666)
@@ -23,10 +23,12 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.StringUtils;
+import org.jboss.community.sbs.plugin.reports.dao.RedHatUsersDAO;
import org.jboss.community.sbs.plugin.reports.dao.ReportBean;
import org.jboss.community.sbs.plugin.reports.dao.ReportDAO;
import org.jboss.community.sbs.plugin.reports.monthly.MonthlyReportManager;
@@ -51,6 +53,8 @@
*/
private List<ReportBean> reports;
+ private List<Long> snapshots;
+
/**
* Report range - from
*/
@@ -64,14 +68,17 @@
/**
* RedHat Users Snapshot
*/
- private String redHatUsersSnapshot;
+ private Long redHatUsersSnapshot;
private ReportDAO reportDAO;
+ private RedHatUsersDAO redHatUsersDAO;
+
private MonthlyReportManager monthlyReportManager;
public void prepare() {
reports = reportDAO.getAllReports();
+ snapshots = redHatUsersDAO.getSnapshots();
}
private void resetForm() {
@@ -88,7 +95,7 @@
if (StringUtils.trimToNull(to) == null) {
addActionError(getText("plugin.reports.admin.monthlyrep.error.required", new String[] { "To" }));
}
- if (StringUtils.trimToNull(redHatUsersSnapshot) == null) {
+ if (redHatUsersSnapshot == null) {
addActionError(getText("plugin.reports.admin.monthlyrep.error.required",
new String[] { "Red Hat Users Snapshot" }));
}
@@ -98,23 +105,22 @@
public String execute() {
Date fromDate = null, toDate = null, redHatUsersSnapshotDate = null;
SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN);
- formatter.setLenient(true);
+ formatter.setLenient(false);
try {
fromDate = formatter.parse(from);
+ fromDate = setTime(fromDate, 0, 0, 0);
} catch (ParseException e) {
addActionError(getText("plugin.reports.admin.monthlyrep.error.dateFormat", new String[] { DATE_PATTERN }));
}
try {
toDate = formatter.parse(to);
+ toDate = setTime(toDate, 24, 59, 59);
} catch (ParseException e) {
addActionError(getText("plugin.reports.admin.monthlyrep.error.dateFormat", new String[] { DATE_PATTERN }));
}
- try {
- redHatUsersSnapshotDate = formatter.parse(redHatUsersSnapshot);
- } catch (ParseException e) {
- addActionError(getText("plugin.reports.admin.monthlyrep.error.dateFormat", new String[] { DATE_PATTERN }));
- }
+ redHatUsersSnapshotDate = new Date(redHatUsersSnapshot);
+
if (hasActionErrors()) {
return INPUT;
}
@@ -128,6 +134,15 @@
return SUCCESS;
}
+ public static Date setTime(Date d, int hour, int minute, int sec) {
+ Calendar c = Calendar.getInstance();
+ c.setTime(d);
+ c.set(Calendar.HOUR_OF_DAY, hour);
+ c.set(Calendar.MINUTE, minute);
+ c.set(Calendar.SECOND, sec);
+ return c.getTime();
+ }
+
public void setReportDAO(ReportDAO reportDAO) {
this.reportDAO = reportDAO;
}
@@ -156,12 +171,20 @@
this.to = to;
}
- public String getRedHatUsersSnapshot() {
+ public Long getRedHatUsersSnapshot() {
return redHatUsersSnapshot;
}
- public void setRedHatUsersSnapshot(String redHatUsersSnapshot) {
+ public void setRedHatUsersSnapshot(Long redHatUsersSnapshot) {
this.redHatUsersSnapshot = redHatUsersSnapshot;
}
+ public List<Long> getSnapshots() {
+ return snapshots;
+ }
+
+ public void setRedHatUsersDAO(RedHatUsersDAO redHatUsersDAO) {
+ this.redHatUsersDAO = redHatUsersDAO;
+ }
+
}
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 09:24:46 UTC (rev 35665)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/plugin/resources/templates/admin/monthly-reports.ftl 2010-10-22 12:03:46 UTC (rev 35666)
@@ -10,12 +10,19 @@
<table>
<@s.form theme="simple" action="create-monthly-report">
- <tr><td><@s.text name="plugin.reports.admin.monthlyrep.from"/><span>*</span>:</td>
+ <tr><td><@s.text name="plugin.reports.admin.monthlyrep.from"/> <span>*</span>:</td>
<td><@s.textfield name="from" required="true"/></td></tr>
- <tr><td><@s.text name="plugin.reports.admin.monthlyrep.to"/><span>*</span>:</td>
+ <tr><td><@s.text name="plugin.reports.admin.monthlyrep.to"/> <span>*</span>:</td>
<td><@s.textfield name="to" required="true"/></td></tr>
- <tr><td><@s.text name="plugin.reports.admin.monthlyrep.snapshot"/><span>*</span>:</td>
- <td><@s.textfield name="redHatUsersSnapshot" required="true"/></td></tr>
+ <tr><td><@s.text name="plugin.reports.admin.monthlyrep.snapshot"/> <span>*</span>:</td>
+ <td>
+ <select name="redHatUsersSnapshot">
+ <#list snapshots as s>
+ <option value="${s}">${statics['org.jboss.community.sbs.plugin.reports.struts.AdminRHUsersSnapshotAction'].convertToDate(s)?datetime}</option>
+ </#list>
+ </select>
+ </td>
+ </tr>
<tr><td></td><td><@s.submit value="${action.getText('plugin.reports.admin.monthlyrep.createreport')}"/>
</@s.form>
</table>
@@ -36,12 +43,12 @@
<tbody>
<#list reports as report>
<tr>
- <td>${report.from}</td>
- <td>${report.to}</td>
- <td>${report.redHatUsersSnapshot}</td>
+ <td>${statics['org.jboss.community.sbs.plugin.reports.struts.AdminRHUsersSnapshotAction'].convertToDate(report.from)?datetime}</td>
+ <td>${statics['org.jboss.community.sbs.plugin.reports.struts.AdminRHUsersSnapshotAction'].convertToDate(report.to)?datetime}</td>
+ <td>${statics['org.jboss.community.sbs.plugin.reports.struts.AdminRHUsersSnapshotAction'].convertToDate(report.redHatUsersSnapshot)?datetime}</td>
<td>${report.configurationId}</td>
- <td>${report.status}</td>
- <td>${report.statusMessage}</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>
</tr>
</#list>
</tbody>
Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/aggregated-report-definition.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/aggregated-report-definition.xml (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/aggregated-report-definition.xml 2010-10-22 12:03:46 UTC (rev 35666)
@@ -0,0 +1,30 @@
+<projects>
+ <project name="RichFaces">
+ <sbs>
+ <user>
+ <space>2024</space>
+ </user>
+ <dev>
+ <space>2025</space>
+ <space>2190</space>
+ </dev>
+ </sbs>
+ </project>
+ <project name="Hibernate">
+ <sbs>
+ <user>
+ <space>2206</space>
+ <space>2210</space>
+ <space>2211</space>
+ <space>2212</space>
+ <space>2214</space>
+ </user>
+ <dev>
+ <space>2208</space>
+ <space>2224</space>
+ <space>2209</space>
+ <space>2216</space>
+ </dev>
+ </sbs>
+ </project>
+</projects>
\ No newline at end of file
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/aggregated-report-definition.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/plugin_i18n.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/plugin_i18n.properties 2010-10-22 09:24:46 UTC (rev 35665)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/resources/plugin_i18n.properties 2010-10-22 12:03:46 UTC (rev 35666)
@@ -35,3 +35,8 @@
plugin.reports.admin.monthlyrep.reports.column.version=Version
plugin.reports.admin.monthlyrep.reports.column.status=Status
plugin.reports.admin.monthlyrep.reports.column.action=Action
+plugin.reports.admin.monthlyrep.reports.download=Download
+plugin.reports.admin.monthlyrep.reports.status.0=Created
+plugin.reports.admin.monthlyrep.reports.status.1=Report is creating
+plugin.reports.admin.monthlyrep.reports.status.10=Finished
+plugin.reports.admin.monthlyrep.reports.status.11=Error
\ No newline at end of file
Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsActionTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsActionTest.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsActionTest.java 2010-10-22 12:03:46 UTC (rev 35666)
@@ -0,0 +1,59 @@
+/*
+ * JBoss Community 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 static org.junit.Assert.assertEquals;
+
+import java.util.Calendar;
+import java.util.Date;
+
+import org.junit.Test;
+
+/**
+ * Test for {@link MonthlyReportsAction}
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class MonthlyReportsActionTest {
+
+ /**
+ * Test method for
+ * {@link org.jboss.community.sbs.plugin.reports.struts.MonthlyReportsAction#setTime(java.util.Date, int, int, int)}
+ * .
+ */
+ @Test
+ public void testSetTime() {
+ Calendar c = Calendar.getInstance();
+ c.set(2010, 10, 22, 15, 50, 35);
+ Date date = c.getTime();
+
+ c.set(2010, 10, 22, 0, 0, 0);
+ Date dateModified = c.getTime();
+
+ assertEquals(dateModified, MonthlyReportsAction.setTime(date, 0, 0, 0));
+
+ c.set(2010, 10, 22, 24, 59, 59);
+ dateModified = c.getTime();
+ assertEquals(dateModified, MonthlyReportsAction.setTime(date, 24, 59, 59));
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/struts/MonthlyReportsActionTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the jboss-svn-commits
mailing list