[jboss-svn-commits] JBL Code SVN: r28857 - in labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src: main/java/org/jboss/labs/clearspace/plugin/nfm/dao and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 6 10:55:45 EDT 2009


Author: lkrzyzanek
Date: 2009-08-06 10:55:44 -0400 (Thu, 06 Aug 2009)
New Revision: 28857

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/dao/CommunityDefBean.java
   labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/AdminNfmAction.java
   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/plugin_i18n.properties
   labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml
   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/resources/communities-test.properties
Log:
Added functionality for creating initial community layout (Struts action, FTL change)
Also added description and display name in community definition

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 13:23:09 UTC (rev 28856)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java	2009-08-06 14:55:44 UTC (rev 28857)
@@ -819,9 +819,31 @@
     } catch (IOException e) {
       throw new RuntimeException("Cannot load communities layout definition", e);
     }
-    //Set<CommunityDefBean> communities = loadCommunityLayout(layoutDef);
+    Set<CommunityDefBean> communities = loadCommunityLayout(layoutDef);
+    for (CommunityDefBean communityDef : communities) {
+      log.info("Create community: " + communityDef.getName());
+      Community projectCommunity = communityManager.createCommunity(
+          communityDef.getName(), communityDef.getDisplayName(), communityDef
+              .getDescription());
+      // add project - forums mappings
+      for (Long forumID : communityDef.getForumIDs()) {
+        nukesForumsMappingDAO.saveForumMapping(forumID, projectCommunity
+            .getID());
+      }
 
-    // TODO create communities and mappings
+      for (CommunityDefBean communitySubDef : communityDef
+          .getSubCommunityDefBeans()) {
+        Community subCommunity = communityManager.createCommunity(
+            projectCommunity, communitySubDef.getName(), communitySubDef
+                .getDisplayName(), communitySubDef.getDescription());
+
+        // add subproject - forums mappings
+        for (Long forumID : communitySubDef.getForumIDs()) {
+          nukesForumsMappingDAO.saveForumMapping(forumID, subCommunity.getID());
+        }
+      }
+    }
+    flushCache(NukesForumsManager.CacheName.FORUM);
   }
 
   protected Set<CommunityDefBean> loadCommunityLayout(Properties layoutDef) {
@@ -834,27 +856,28 @@
       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.");
+      if (communityName == null) {
+        log.info("No definition for '" + prefix
+            + "name'. Probably no more community definition.");
         break;
       }
 
       CommunityDefBean communityDef = createCommunityDef(communityName,
-          communityForumIDsStr);
+          layoutDef.getProperty(prefix + "forumIDs"), layoutDef
+              .getProperty(prefix + "dname"), layoutDef.getProperty(prefix
+              + "desc"));
 
       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) {
+        if (subCommunityName == null) {
           break;
         }
         CommunityDefBean subCommunityDef = createCommunityDef(subCommunityName,
-            subCcommunityForumIDsStr);
+            layoutDef.getProperty(prefix + j + ".forumIDs"), layoutDef
+                .getProperty(prefix + j + ".dname"), layoutDef
+                .getProperty(prefix + j + ".desc"));
         subCommunities.add(subCommunityDef);
         j++;
       }
@@ -869,15 +892,18 @@
   }
 
   private CommunityDefBean createCommunityDef(String communityName,
-      String communityForumIDsStr) {
-    StringTokenizer forumIdsTokenizer = new StringTokenizer(
-        communityForumIDsStr, ",");
+      String communityForumIDsStr, String displayName, String description) {
     Set<Long> forumIds = new HashSet<Long>();
-    while (forumIdsTokenizer.hasMoreTokens()) {
-      forumIds.add(Long.parseLong(forumIdsTokenizer.nextToken()));
+    if (communityForumIDsStr != null) {
+      StringTokenizer forumIdsTokenizer = new StringTokenizer(
+          communityForumIDsStr, ",");
+      while (forumIdsTokenizer.hasMoreTokens()) {
+        forumIds.add(Long.parseLong(forumIdsTokenizer.nextToken()));
+      }
     }
 
-    return new CommunityDefBean(communityName, forumIds);
+    return new CommunityDefBean(communityName, forumIds, displayName,
+        description);
   }
 
   public void setNukesForumsMappingDAO(

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 13:23:09 UTC (rev 28856)
+++ 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 14:55:44 UTC (rev 28857)
@@ -35,15 +35,21 @@
 public class CommunityDefBean {
 
   private String name;
+  
+  private String displayName;
+  
+  private String description;
 
   private Set<Long> forumIDs;
 
   private Set<CommunityDefBean> subCommunityDefBeans;
 
-  public CommunityDefBean(String name, Set<Long> forumIDs) {
+  public CommunityDefBean(String name, Set<Long> forumIDs, String displayName, String description) {
     super();
     this.name = name;
     this.forumIDs = forumIDs;
+    this.displayName = displayName;
+    this.description = description;
   }
 
   public String getName() {
@@ -90,4 +96,20 @@
         this.subCommunityDefBeans).toString();
   }
 
+  public void setDisplayName(String displayName) {
+    this.displayName = displayName;
+  }
+
+  public String getDisplayName() {
+    return displayName;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
 }

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/AdminNfmAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/AdminNfmAction.java	2009-08-06 13:23:09 UTC (rev 28856)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/AdminNfmAction.java	2009-08-06 14:55:44 UTC (rev 28857)
@@ -54,7 +54,7 @@
     addActionMessage(getText("plugin.nfm.admin.nfm.refresh-category-mapping.sucess"));
     return SUCCESS;
   }
-  
+
   public String refreshForumMapping() {
     nukesForumsManager.flushCache(NukesForumsManager.CacheName.FORUM);
     forumCount = nukesForumsManager.getForumCount();
@@ -63,6 +63,15 @@
     return SUCCESS;
   }
 
+  public String createInitialCommunitiesLayout() {
+    nukesForumsManager.createInitialCommunitiesLayout();
+    forumCount = nukesForumsManager.getForumCount();
+
+    addActionMessage(getText("plugin.nfm.admin.nfm.create-communities.sucess"));
+
+    return SUCCESS;
+  }
+
   public String createForumMapping() {
     int count = nukesForumsManager.createForumMappingFromCategories();
 

Modified: 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	2009-08-06 13:23:09 UTC (rev 28856)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/communities.properties	2009-08-06 14:55:44 UTC (rev 28857)
@@ -1,11 +1,25 @@
+# Community definition
+# community.x.name=  Is Name of Community - mandatory
+# community.x.dname= Is 'Display name' - it's in i.e. URL - mandatory
+# community.x.desc=  Description
+# community.x.forumIDs= ID's of Nukes forums that will be migrated to this communities
+
+# community.x.y. Is sub community
+
 community.1.name=JBoss AS
+community.1.dname=jboss-as
+community.1.desc=JBoss AS Space
 community.1.forumIDs=1,2,3,4
 community.1.1.name=JBoss AS Developers
+community.1.1.dname=dev
+community.1.1.desc=JBoss AS Developers Space
 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.dname=portal
+community.2.desc=Portal Space
 community.2.forumIDs=9
 community.2.1.name=Portal Developers
+community.2.1.dname=dev
+community.2.1.desc=Portal Developers Space
 community.2.1.forumIDs=10
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/plugin_i18n.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/plugin_i18n.properties	2009-08-06 13:23:09 UTC (rev 28856)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/plugin_i18n.properties	2009-08-06 14:55:44 UTC (rev 28857)
@@ -5,17 +5,22 @@
 plugin.nfm.admin.nfm.refresh-category-mapping.name=Categories
 plugin.nfm.admin.nfm.refresh-category-mapping.count=Count of mapped categories
 plugin.nfm.admin.nfm.refresh-category-mapping.submit=Refresh
-plugin.nfm.admin.nfm.refresh-category-mapping.sucess=Mapping has been sucessfully refreshed.
+plugin.nfm.admin.nfm.refresh-category-mapping.sucess=Mapping has been successfully refreshed.
 plugin.nfm.admin.nfm.refresh-category-mapping.sucess=Category mapping has been sucessfully refreshed.
 
 plugin.nfm.admin.nfm.create-forums-mapping.name=Forums
 plugin.nfm.admin.nfm.create-forums-mapping.count=Count of mapped forums
 plugin.nfm.admin.nfm.create-forums-mapping.description=Create mapping of forums to communities based on mapping of categories to communities
 plugin.nfm.admin.nfm.create-forums-mapping.submit=Create mapping
-plugin.nfm.admin.nfm.create-forums-mapping.sucess=Mapping has been sucessfully created. Count: {0}
+plugin.nfm.admin.nfm.create-forums-mapping.sucess=Mapping has been successfully created. Count: {0}
 plugin.nfm.admin.nfm.create-forums-mapping.refresh.submit=Refresh
 plugin.nfm.admin.nfm.create-forums-mapping.refresh.sucess=Forum mapping has been sucessfully refreshed.
 
+plugin.nfm.admin.nfm.create-communities.name=Communities
+plugin.nfm.admin.nfm.create-communities.description=Create initial communities layout
+plugin.nfm.admin.nfm.create-communities.submit=Create
+plugin.nfm.admin.nfm.create-communities.sucess=Initial communities layout has been successfully created.
+
 plugin.nfm.admin.nfm.migration.name=Topics and Posts migration
 plugin.nfm.admin.nfm.migration.description=Lunch migration of topics and their posts for each mapped forum
 plugin.nfm.admin.nfm.migration.submit=Migrate!

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml	2009-08-06 13:23:09 UTC (rev 28856)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml	2009-08-06 14:55:44 UTC (rev 28857)
@@ -34,6 +34,17 @@
       </result>
     </action>
     
+    <action name="nukes-forums-create-communities-layout"
+      class="org.jboss.labs.clearspace.plugin.nfm.struts.AdminNfmAction"
+      method="createInitialCommunitiesLayout">
+      <result name="input" type="freemarker">
+        /plugins/nukes-forums-migration/admin/nukes-forums-migration.ftl
+      </result>
+      <result name="success" type="freemarker">
+        /plugins/nukes-forums-migration/admin/nukes-forums-migration.ftl
+      </result>
+    </action>
+    
     <action name="nukes-forums-create-forums-mapping"
       class="org.jboss.labs.clearspace.plugin.nfm.struts.AdminNfmAction"
       method="createForumMapping">

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 13:23:09 UTC (rev 28856)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManagerTest.java	2009-08-06 14:55:44 UTC (rev 28857)
@@ -21,7 +21,8 @@
  */
 package org.jboss.labs.clearspace.plugin.nfm;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -101,35 +102,44 @@
     } catch (IOException e) {
       throw new RuntimeException("Cannot load communities layout definition", e);
     }
-    
-    Set<CommunityDefBean> layoutSet = dbNukesForumsManager.loadCommunityLayout(layoutDef);
+
+    Set<CommunityDefBean> layoutSet = dbNukesForumsManager
+        .loadCommunityLayout(layoutDef);
     Iterator<CommunityDefBean> layoutIt = layoutSet.iterator();
 
     CommunityDefBean jbossAS = layoutIt.next();
+    assertEquals("jboss-as", jbossAS.getDisplayName());
     assertEquals("JBoss AS", jbossAS.getName());
-    assertArrayEquals(new Long[] {1l, 2l, 3l, 4l}, jbossAS.getForumIDs().toArray());
-    
-    Iterator<CommunityDefBean> jbossASSubs = jbossAS.getSubCommunityDefBeans().iterator();
+    assertEquals("JBoss AS Space", jbossAS.getDescription());
+    assertArrayEquals(new Long[] { 1l, 2l, 3l, 4l }, jbossAS.getForumIDs()
+        .toArray());
+
+    Iterator<CommunityDefBean> jbossASSubs = jbossAS.getSubCommunityDefBeans()
+        .iterator();
     CommunityDefBean jbossASDev = jbossASSubs.next();
+    assertEquals("dev", jbossASDev.getDisplayName());
     assertEquals("JBoss AS Developers", jbossASDev.getName());
-    assertArrayEquals(new Long[] {5l, 6l, 7l, 8l}, jbossASDev.getForumIDs().toArray());
-    
+    assertEquals("JBoss AS Developers Space", jbossASDev.getDescription());
+    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());
+    assertArrayEquals(new Long[] { 101l }, jbossASSub.getForumIDs().toArray());
 
-    
     CommunityDefBean portal = layoutIt.next();
+    assertEquals("portal", portal.getDisplayName());
     assertEquals("Portal", portal.getName());
-    assertArrayEquals(new Long[] {9l}, portal.getForumIDs().toArray());
-    
-    Iterator<CommunityDefBean> portalubs = portal.getSubCommunityDefBeans().iterator();
+    assertEquals("Portal Space", portal.getDescription());
+    assertArrayEquals(new Long[] { 9l }, portal.getForumIDs().toArray());
+
+    Iterator<CommunityDefBean> portalubs = portal.getSubCommunityDefBeans()
+        .iterator();
     CommunityDefBean portalDev = portalubs.next();
+    assertEquals("dev", portalDev.getDisplayName());
     assertEquals("Portal Developers", portalDev.getName());
-    assertArrayEquals(new Long[] {10l}, portalDev.getForumIDs().toArray());
-    
   }
-  
+
   class DummyNukesForumsMappingDAO implements NukesForumsMappingDAO {
 
     Map<Long, Long> categoryMappings = null;

Modified: 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	2009-08-06 13:23:09 UTC (rev 28856)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/resources/communities-test.properties	2009-08-06 14:55:44 UTC (rev 28857)
@@ -1,11 +1,19 @@
+community.1.dname=jboss-as
 community.1.name=JBoss AS
+community.1.desc=JBoss AS Space
 community.1.forumIDs=1,2,3,4
+community.1.1.dname=dev
 community.1.1.name=JBoss AS Developers
+community.1.1.desc=JBoss AS Developers Space
 community.1.1.forumIDs=5,6,7,8
+community.1.2.dname=sub-community
 community.1.2.name=Another sub community
 community.1.2.forumIDs=101
 
+community.2.dname=portal
 community.2.name=Portal
+community.2.desc=Portal Space
 community.2.forumIDs=9
+community.2.1.dname=dev
 community.2.1.name=Portal Developers
-community.2.1.forumIDs=10
\ No newline at end of file
+community.2.1.desc=Portal Developers Space



More information about the jboss-svn-commits mailing list