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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 19 07:56:58 EDT 2010


Author: lkrzyzanek
Date: 2010-10-19 07:56:57 -0400 (Tue, 19 Oct 2010)
New Revision: 35562

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/
   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/RedHatUsersDAO.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/AdminRHUsersAction.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/resources/templates/admin/
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/resources/templates/admin/rhusers.ftl
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/schema.xml
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/spring.xml
Modified:
   labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/plugin.xml
   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/resources/plugin_i18n.properties
Log:
Added RH Users Implementation

Added: 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	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/DbRedHatUsersDAOImpl.java	2010-10-19 11:56:57 UTC (rev 35562)
@@ -0,0 +1,96 @@
+/*
+ * 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.dao;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+
+import com.jivesoftware.base.database.dao.JiveJdbcDaoSupport;
+
+/**
+ * DB Implementation of {@link RedHatUsersDAO}
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class DbRedHatUsersDAOImpl extends JiveJdbcDaoSupport implements RedHatUsersDAO {
+
+  private static final String SELECT_REDHAT_USERS_BY_DATE = "SELECT userID FROM reportsRedHatUsers WHERE created = ?";
+
+  private static final String SELECT_REDHAT_USERS_COUNTS = "SELECT created, count(userID) FROM reportsRedHatUsers GROUP BY created";
+
+  private static final String CREATE_SNAPSHOT = "INSERT usersRedHat SELECT DISTINCT u.userId, ? "
+      + "FROM jiveUser u LEFT JOIN jiveUserProfile uphd ON u.userID=uphd.userID LEFT JOIN jiveUserProfile upld ON u.userID=upld.userID and upld.fieldID=5005 "
+      + "WHERE uphd.fieldID=10 and uphd.value is not null and now() > STR_TO_DATE(uphd.value,'%m/%d/%Y') and (upld.value is null or now() <= STR_TO_DATE(upld.value,'%m/%d/%Y'))";
+
+  @Override
+  public void createSnapshot() {
+    this.getSimpleJdbcTemplate().update(CREATE_SNAPSHOT, System.currentTimeMillis());
+  }
+
+  private StringMapper stringMapper = new StringMapper();
+
+  @Override
+  public List<String> getRedHatUsers(Date date) {
+    return this.getSimpleJdbcTemplate().query(SELECT_REDHAT_USERS_BY_DATE, stringMapper, date);
+  }
+
+  private SnapshotsCountMapper snapshotsCountMapper = new SnapshotsCountMapper();
+
+  @Override
+  public Map<Date, Long> getSnapshotsCount() {
+    List<Object[]> data = this.getSimpleJdbcTemplate().query(SELECT_REDHAT_USERS_COUNTS, snapshotsCountMapper);
+
+    HashMap<Date, Long> result = new HashMap<Date, Long>();
+    for (Object[] object : data) {
+      result.put((Date) object[0], (Long) object[1]);
+    }
+
+    return result;
+  }
+
+  /**
+   * Simple string mapper - takes first column and return String
+   */
+  private class StringMapper implements ParameterizedRowMapper<String> {
+
+    @Override
+    public String mapRow(ResultSet rs, int rowNum) throws SQLException {
+      return rs.getString(1);
+    }
+  }
+
+  private class SnapshotsCountMapper implements ParameterizedRowMapper<Object[]> {
+    @Override
+    public Object[] mapRow(ResultSet rs, int rowNum) throws SQLException {
+      Object[] row = new Object[2];
+      row[0] = rs.getDate(0);
+      row[1] = rs.getLong(1);
+      return row;
+    }
+  }
+}


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

Added: 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	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/dao/RedHatUsersDAO.java	2010-10-19 11:56:57 UTC (rev 35562)
@@ -0,0 +1,55 @@
+/*
+ * 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.dao;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * DAO For RedHat users
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public interface RedHatUsersDAO {
+
+  /**
+   * Create Red Hat Users snapshot
+   */
+  public void createSnapshot();
+
+  /**
+   * Get Red Hat Users for specified date
+   * 
+   * @param date specified date
+   * @return
+   */
+  public List<String> getRedHatUsers(Date date);
+
+  /**
+   * Get snapshots counts
+   * 
+   * @return key is date of snapshot, count of snapshots
+   */
+  public Map<Date, Long> getSnapshotsCount();
+
+}


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

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/AdminRHUsersAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/AdminRHUsersAction.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/struts/AdminRHUsersAction.java	2010-10-19 11:56:57 UTC (rev 35562)
@@ -0,0 +1,65 @@
+/*
+ * 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.util.Date;
+import java.util.Map;
+
+import org.jboss.community.sbs.plugin.reports.dao.RedHatUsersDAO;
+
+import com.jivesoftware.community.action.JiveActionSupport;
+import com.opensymphony.xwork2.Preparable;
+
+/**
+ * Action for viewing/creating Red Hat Users snapshots
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ * 
+ */
+public class AdminRHUsersAction extends JiveActionSupport implements Preparable {
+
+  private Map<Date, Long> snapshots;
+
+  private RedHatUsersDAO redHatUsersDAO;
+
+  public void prepare() {
+    snapshots = redHatUsersDAO.getSnapshotsCount();
+  }
+
+  @Override
+  public String execute() {
+    redHatUsersDAO.createSnapshot();
+
+    addActionMessage(getText("plugin.reports.admin.rhusers.text.created"));
+
+    return INPUT;
+  }
+
+  public Map<Date, Long> getSnapshots() {
+    return snapshots;
+  }
+
+  public void setRedHatUsersDAO(RedHatUsersDAO redHatUsersDAO) {
+    this.redHatUsersDAO = redHatUsersDAO;
+  }
+
+}


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

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/plugin.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/plugin.xml	2010-10-19 11:54:12 UTC (rev 35561)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/plugin.xml	2010-10-19 11:56:57 UTC (rev 35562)
@@ -1,10 +1,26 @@
 <plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://www.jivesoftware.com/schemas/clearspace/1_1/plugin.xsd">
-  <name>script-console</name>
+  <name>reports</name>
   <description>JBoss Community Reports</description>
   <author>JBoss Community</author>
   <version>1.0.0</version>
   <minServerVersion>4.5.0</minServerVersion>
 
+  <databaseKey>reports</databaseKey>
+  <databaseVersion>1</databaseVersion>
 
+  <components>
+    <component id="admin-console">
+      <tab id="reports">
+        <section id="reports-jbossreports" name="plugin.reports.admin.tab.name"
+                     description="plugin.reports.admin.tab.description">
+                     
+          <item id="reports-jbossreports-rhusers" name="plugin.reports.admin.rhusers.name"
+            url="redhat-users.jspa" description="plugin.reports.admin.rhusers.description" />
+
+        </section>
+      </tab>
+    </component>
+  </components>
+
 </plugin>

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/resources/templates/admin/rhusers.ftl
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/resources/templates/admin/rhusers.ftl	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/resources/templates/admin/rhusers.ftl	2010-10-19 11:56:57 UTC (rev 35562)
@@ -0,0 +1,18 @@
+<html>
+  <head>
+    <#assign pageTitle=action.getText('plugin.reports.admin.rhusers.name') />
+    <title>${pageTitle}</title>
+    <content tag="pagetitle">${pageTitle}</content>
+    <content tag="pageID">reports-jbossreports-rhusers</content>
+  </head>
+  <body>
+    <@s.form  theme="simple" action="redhat-users-create-snapshot">
+    Create Snapshot: <@s.submit value="${action.getText('plugin.reports.admin.rhusers.submit')}"/>
+    </@s.form>
+
+    <p>Created Snapshots</p>
+    <@s.iterator value="snapshots">
+      snapshot: <@s.property />
+    </@s.iterator>
+  </body>
+</html>
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/schema.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/schema.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/schema.xml	2010-10-19 11:56:57 UTC (rev 35562)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema name="reports">
+  <table name="reportsRedHatUsers" description="Snapshot of Red Hat users">
+    <column name="userID" type="bigint" nullable="false" description="User ID" />
+    <column name="created" type="bigint" nullable="false" description="Time when snapshot is created" />
+    <index type="primary" name="reportsRHUsers_pk" column="userID,created" />
+  </table>
+</schema>


Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/schema.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/spring.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/spring.xml	2010-10-19 11:56:57 UTC (rev 35562)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:util="http://www.springframework.org/schema/util"
+  xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd"
+  default-autowire="no" default-init-method="init" default-destroy-method="destroy">
+
+  <bean id="redHatUsersDAO" class="org.jboss.community.sbs.plugin.reports.dao.DbRedHatUsersDAOImpl">
+    <property name="dataSource">
+      <util:property-path path="dataSourceFactory.dataSource" />
+    </property>
+  </bean>
+
+</beans>


Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/spring.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

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-19 11:54:12 UTC (rev 35561)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/plugin/struts.xml	2010-10-19 11:56:57 UTC (rev 35562)
@@ -1,7 +1,19 @@
 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
 <struts>
-  <package name="script-console-actions" namespace="/admin"
-    extends="community-admin-default">
-    
+  <package name="jbossreports-actions" namespace="/admin" extends="community-admin-default">
+
+    <action name="redhat-users" class="org.jboss.community.sbs.plugin.reports.struts.AdminRHUsersAction" method="input">
+      <result name="input" type="freemarker">
+        /plugins/reports/resources/templates/admin/rhusers.ftl
+      </result>
+    </action>
+
+    <action name="redhat-users-create-snapshot" class="org.jboss.community.sbs.plugin.reports.struts.AdminRHUsersAction"
+      method="execute">
+      <result name="input" type="freemarker">
+        /plugins/reports/resources/templates/admin/rhusers.ftl
+      </result>
+    </action>
+
   </package>
 </struts>

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-19 11:54:12 UTC (rev 35561)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-reports/trunk/src/main/resources/plugin_i18n.properties	2010-10-19 11:56:57 UTC (rev 35562)
@@ -1,9 +1,7 @@
-plugin.script-console.admin.console.name=Scripting Console
-plugin.script-console.admin.console.description=Execute your scripts in Jive SBS administration console
+plugin.reports.admin.tab.name=Custom
+plugin.reports.admin.tab.description=Customized reports for JBoss Community
 
-plugin.script-console.admin.console.scriptcontent=Script content
-plugin.script-console.admin.console.submit=Execute
-
-plugin.script-console.admin.console.text.sucess=Script successfuly executed. See the result.
-plugin.script-console.admin.console.text.error.common=Error occur during execution. See the result.
-plugin.script-console.admin.console.text.error.nosuchmethod=Script must contain at least function run(ctx).
\ No newline at end of file
+plugin.reports.admin.rhusers.name=Red Hat Users
+plugin.reports.admin.rhusers.description=List of Red Hat Users snapshots
+plugin.reports.admin.rhusers.submit=Create Snapshot
+plugin.reports.admin.rhusers.text.created=Snapshot successfuly created
\ No newline at end of file



More information about the jboss-svn-commits mailing list