[jboss-svn-commits] JBL Code SVN: r28851 - in labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src: main/java/org/jboss/labs/clearspace/plugin/nfm/dao and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 6 03:27:11 EDT 2009
Author: lkrzyzanek
Date: 2009-08-06 03:27:10 -0400 (Thu, 06 Aug 2009)
New Revision: 28851
Added:
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/communities.properties
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/resources/communities-test.properties
Modified:
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/CommunityDefBean.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManagerTest.java
Log:
Added implementation for loading community layout.
Added junit test
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java 2009-08-06 02:21:04 UTC (rev 28850)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java 2009-08-06 07:27:10 UTC (rev 28851)
@@ -21,6 +21,7 @@
*/
package org.jboss.labs.clearspace.plugin.nfm;
+import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
@@ -28,9 +29,12 @@
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
+import java.util.StringTokenizer;
import java.util.concurrent.LinkedBlockingQueue;
import org.apache.log4j.LogManager;
@@ -807,12 +811,75 @@
return appContext + url;
}
- protected Set<CommunityDefBean> loadCommunityLayout() {
- HashSet<CommunityDefBean> communities = new HashSet<CommunityDefBean>();
-
+ public void createInitialCommunitiesLayout() {
+ Properties layoutDef = new Properties();
+ try {
+ layoutDef.load(DbNukesForumsManager.class
+ .getResourceAsStream("/communities.properties"));
+ } catch (IOException e) {
+ throw new RuntimeException("Cannot load communities layout definition", e);
+ }
+ //Set<CommunityDefBean> communities = loadCommunityLayout(layoutDef);
+
+ // TODO create communities and mappings
+ }
+
+ protected Set<CommunityDefBean> loadCommunityLayout(Properties layoutDef) {
+ Set<CommunityDefBean> communities = new LinkedHashSet<CommunityDefBean>();
+ final String rootPrefix = "community.";
+
+ int i = 1;
+
+ while (true) {
+ String prefix = rootPrefix + i + ".";
+
+ String communityName = layoutDef.getProperty(prefix + "name");
+ String communityForumIDsStr = layoutDef.getProperty(prefix + "forumIDs");
+ if (communityName == null || communityForumIDsStr == null) {
+ log.info("No definition for '" + prefix + "name' or '" + prefix
+ + "forumIDs'. Probably no more community definition.");
+ break;
+ }
+
+ CommunityDefBean communityDef = createCommunityDef(communityName,
+ communityForumIDsStr);
+
+ int j = 1;
+ Set<CommunityDefBean> subCommunities = new LinkedHashSet<CommunityDefBean>();
+ while (true) {
+ String subCommunityName = layoutDef.getProperty(prefix + j + ".name");
+ String subCcommunityForumIDsStr = layoutDef.getProperty(prefix + j
+ + ".forumIDs");
+ if (subCommunityName == null || subCcommunityForumIDsStr == null) {
+ break;
+ }
+ CommunityDefBean subCommunityDef = createCommunityDef(subCommunityName,
+ subCcommunityForumIDsStr);
+ subCommunities.add(subCommunityDef);
+ j++;
+ }
+ communityDef.setSubCommunityDefBeans(subCommunities);
+
+ communities.add(communityDef);
+
+ i++;
+ }
+
return communities;
}
-
+
+ private CommunityDefBean createCommunityDef(String communityName,
+ String communityForumIDsStr) {
+ StringTokenizer forumIdsTokenizer = new StringTokenizer(
+ communityForumIDsStr, ",");
+ Set<Long> forumIds = new HashSet<Long>();
+ while (forumIdsTokenizer.hasMoreTokens()) {
+ forumIds.add(Long.parseLong(forumIdsTokenizer.nextToken()));
+ }
+
+ return new CommunityDefBean(communityName, forumIds);
+ }
+
public void setNukesForumsMappingDAO(
NukesForumsMappingDAO nukesForumsMappingDAO) {
this.nukesForumsMappingDAO = nukesForumsMappingDAO;
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java 2009-08-06 02:21:04 UTC (rev 28850)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java 2009-08-06 07:27:10 UTC (rev 28851)
@@ -92,4 +92,10 @@
public String getCSForumsURL(String module, String op, Long c, Long f,
Long t, Long p);
+ /**
+ * Create initial communities layout. Definition of communities are in
+ * /communities.properties
+ */
+ public void createInitialCommunitiesLayout();
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/CommunityDefBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/CommunityDefBean.java 2009-08-06 02:21:04 UTC (rev 28850)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/CommunityDefBean.java 2009-08-06 07:27:10 UTC (rev 28851)
@@ -21,6 +21,12 @@
*/
package org.jboss.labs.clearspace.plugin.nfm.dao;
+import java.util.Set;
+
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
+
/**
* Community definition for initial communities layout
*
@@ -30,8 +36,58 @@
private String name;
- private Long forumID;
+ private Set<Long> forumIDs;
- private CommunityDefBean subCommunityDefBean;
+ private Set<CommunityDefBean> subCommunityDefBeans;
+ public CommunityDefBean(String name, Set<Long> forumIDs) {
+ super();
+ this.name = name;
+ this.forumIDs = forumIDs;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Set<Long> getForumIDs() {
+ return forumIDs;
+ }
+
+ public void setForumIDs(Set<Long> forumIDs) {
+ this.forumIDs = forumIDs;
+ }
+
+ public Set<CommunityDefBean> getSubCommunityDefBeans() {
+ return subCommunityDefBeans;
+ }
+
+ public void setSubCommunityDefBeans(Set<CommunityDefBean> subCommunityDefBeans) {
+ this.subCommunityDefBeans = subCommunityDefBeans;
+ }
+
+ public boolean equals(Object object) {
+ if (!(object instanceof CommunityDefBean)) {
+ return false;
+ }
+ CommunityDefBean rhs = (CommunityDefBean) object;
+ return new EqualsBuilder().append(this.name, rhs.name).append(
+ this.forumIDs, rhs.forumIDs).isEquals();
+ }
+
+ public int hashCode() {
+ return new HashCodeBuilder(742143201, -1803403465).append(this.forumIDs)
+ .append(this.name).toHashCode();
+ }
+
+ public String toString() {
+ return new ToStringBuilder(this).append("name", this.name).append(
+ "forumIDs", this.getForumIDs()).append("subCommunityDefBeans",
+ this.subCommunityDefBeans).toString();
+ }
+
}
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/communities.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/communities.properties (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/communities.properties 2009-08-06 07:27:10 UTC (rev 28851)
@@ -0,0 +1,11 @@
+community.1.name=JBoss AS
+community.1.forumIDs=1,2,3,4
+community.1.1.name=JBoss AS Developers
+community.1.1.forumIDs=5,6,7,8
+community.1.2.name=Another sub community
+community.1.2.forumIDs=101
+
+community.2.name=Portal
+community.2.forumIDs=9
+community.2.1.name=Portal Developers
+community.2.1.forumIDs=10
\ No newline at end of file
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/communities.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManagerTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManagerTest.java 2009-08-06 02:21:04 UTC (rev 28850)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManagerTest.java 2009-08-06 07:27:10 UTC (rev 28851)
@@ -21,11 +21,16 @@
*/
package org.jboss.labs.clearspace.plugin.nfm;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
+import java.io.IOException;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import org.jboss.labs.clearspace.plugin.nfm.dao.CommunityDefBean;
import org.jboss.labs.clearspace.plugin.nfm.dao.NukesForumsMappingDAO;
import org.junit.Before;
import org.junit.Test;
@@ -87,6 +92,44 @@
}
+ @Test
+ public void testLoadCommunityLayout() {
+ Properties layoutDef = new Properties();
+ try {
+ layoutDef.load(DbNukesForumsManager.class
+ .getResourceAsStream("/communities-test.properties"));
+ } catch (IOException e) {
+ throw new RuntimeException("Cannot load communities layout definition", e);
+ }
+
+ Set<CommunityDefBean> layoutSet = dbNukesForumsManager.loadCommunityLayout(layoutDef);
+ Iterator<CommunityDefBean> layoutIt = layoutSet.iterator();
+
+ CommunityDefBean jbossAS = layoutIt.next();
+ assertEquals("JBoss AS", jbossAS.getName());
+ assertArrayEquals(new Long[] {1l, 2l, 3l, 4l}, jbossAS.getForumIDs().toArray());
+
+ Iterator<CommunityDefBean> jbossASSubs = jbossAS.getSubCommunityDefBeans().iterator();
+ CommunityDefBean jbossASDev = jbossASSubs.next();
+ assertEquals("JBoss AS Developers", jbossASDev.getName());
+ assertArrayEquals(new Long[] {5l, 6l, 7l, 8l}, jbossASDev.getForumIDs().toArray());
+
+ CommunityDefBean jbossASSub = jbossASSubs.next();
+ assertEquals("Another sub community", jbossASSub.getName());
+ assertArrayEquals(new Long[] {101l}, jbossASSub.getForumIDs().toArray());
+
+
+ CommunityDefBean portal = layoutIt.next();
+ assertEquals("Portal", portal.getName());
+ assertArrayEquals(new Long[] {9l}, portal.getForumIDs().toArray());
+
+ Iterator<CommunityDefBean> portalubs = portal.getSubCommunityDefBeans().iterator();
+ CommunityDefBean portalDev = portalubs.next();
+ assertEquals("Portal Developers", portalDev.getName());
+ assertArrayEquals(new Long[] {10l}, portalDev.getForumIDs().toArray());
+
+ }
+
class DummyNukesForumsMappingDAO implements NukesForumsMappingDAO {
Map<Long, Long> categoryMappings = null;
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/resources/communities-test.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/resources/communities-test.properties (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/resources/communities-test.properties 2009-08-06 07:27:10 UTC (rev 28851)
@@ -0,0 +1,11 @@
+community.1.name=JBoss AS
+community.1.forumIDs=1,2,3,4
+community.1.1.name=JBoss AS Developers
+community.1.1.forumIDs=5,6,7,8
+community.1.2.name=Another sub community
+community.1.2.forumIDs=101
+
+community.2.name=Portal
+community.2.forumIDs=9
+community.2.1.name=Portal Developers
+community.2.1.forumIDs=10
\ No newline at end of file
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/resources/communities-test.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the jboss-svn-commits
mailing list