[jboss-svn-commits] JBL Code SVN: r26879 - in labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main: java/org/jboss/labs/clearspace/plugin/nfm/dao and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 9 06:05:26 EDT 2009
Author: lkrzyzanek
Date: 2009-06-09 06:05:25 -0400 (Tue, 09 Jun 2009)
New Revision: 26879
Added:
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesUserManager.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesUserManager.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesUserBean.java
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/DbNukesForumsDAOImpl.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.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/plugin_i18n.properties
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml
Log:
Added creating Users during migration.
Implementation of user creation is taken from cs-nukes-login module
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-06-09 08:47:36 UTC (rev 26878)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -42,6 +42,7 @@
import org.springframework.dao.EmptyResultDataAccessException;
import com.jivesoftware.base.User;
+import com.jivesoftware.base.UserAlreadyExistsException;
import com.jivesoftware.base.UserManager;
import com.jivesoftware.base.UserNotFoundException;
import com.jivesoftware.base.UserTemplate;
@@ -89,13 +90,13 @@
private WatchManager watchManager;
+ private NukesUserManager nukesUserManager;
+
/**
* Application context. Default = "/community"
*/
private String appContext = "/community";
- private String unknownMigrationUser;
-
private Map<Long, Long> categoryMappings = null;
private Map<Long, Long> forumMappings = null;
@@ -148,6 +149,7 @@
Map<Long, Long> forumMapping = getForumMappings();
long topicsCount = 0;
long postsCount = 0;
+ int newUsersCount = 0;
for (Long forumID : forumMapping.keySet()) {
log.error("INFO: Migrate topics for forum with ID: " + forumID);
Long communityID = forumMapping.get(forumID);
@@ -216,16 +218,17 @@
topicPost.getPosterEmail());
if (rootMessageUser == null) {
- // should never happen.
+ log.error("Unknkown user for topic_id: " + topic.getTopicID()
+ + " username: '" + topicPost.getPosterUsername()
+ + "'. Going to create new CS user");
try {
- rootMessageUser = userManager.getUser(unknownMigrationUser);
- } catch (UserNotFoundException e1) {
- throw new RuntimeException("User: " + unknownMigrationUser
- + " doesn't exists.");
+ rootMessageUser = nukesUserManager.createUserFromNukes(topicPost
+ .getPosterUsername());
+ } catch (UserAlreadyExistsException e) {
+ throw new RuntimeException(
+ "User already exists, but we're sure that doesn't", e);
}
-
- log.error("Unknkown user for topic_id: " + topic.getTopicID()
- + " username: '" + topicPost.getPosterUsername() + "'");
+ newUsersCount++;
}
ForumMessage rootMessage = forumManager.createMessage(community,
@@ -268,14 +271,16 @@
.getPosterEmail());
if (replyUser == null) {
log.error("Unknkown user for reply_id: " + reply.getPostID()
- + " username: '" + reply.getPosterUsername() + "'");
- // should never happen.
+ + " username: '" + reply.getPosterUsername()
+ + "'. Going to create new CS user");
try {
- replyUser = userManager.getUser(unknownMigrationUser);
- } catch (UserNotFoundException e1) {
- throw new RuntimeException("User: " + unknownMigrationUser
- + " doesn't exists.");
+ replyUser = nukesUserManager.createUserFromNukes(reply
+ .getPosterUsername());
+ } catch (UserAlreadyExistsException e) {
+ throw new RuntimeException(
+ "User already exists, but we're sure that doesn't", e);
}
+ newUsersCount++;
}
ForumMessage replyMessage = forumManager.createMessage(community,
replyUser);
@@ -321,6 +326,7 @@
result.put("topicsCount", topicsCount);
result.put("postsCount", postsCount);
+ result.put("newUsersCount", new Long(newUsersCount));
log.error("INFO: Clearing all caches.");
CacheFactory.clearCaches();
@@ -328,6 +334,9 @@
final long timeConsumed = (System.currentTimeMillis() - start) / 1000;
log.error("INFO: Migration completed, time taken: " + (long) timeConsumed
/ 60 + " minutes.");
+ log.error("INFO: Count of posts migrated: " + postsCount);
+ log.error("INFO: Count of topics migrated: " + topicsCount);
+ log.error("INFO: New users created: " + newUsersCount);
return result;
}
@@ -575,8 +584,8 @@
this.watchManager = watchManager;
}
- public void setUnknownMigrationUser(String unknownMigrationUser) {
- this.unknownMigrationUser = unknownMigrationUser;
+ public void setNukesUserManager(NukesUserManager nukesUserManager) {
+ this.nukesUserManager = nukesUserManager;
}
}
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesUserManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesUserManager.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesUserManager.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -0,0 +1,163 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2009 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.labs.clearspace.plugin.nfm;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.acegisecurity.userdetails.UserDetails;
+import org.acegisecurity.userdetails.UserDetailsService;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.jboss.labs.clearspace.plugin.nfm.dao.NukesForumsDAO;
+import org.jboss.labs.clearspace.plugin.nfm.dao.NukesUserBean;
+
+import com.jivesoftware.base.User;
+import com.jivesoftware.base.UserAlreadyExistsException;
+import com.jivesoftware.base.UserManager;
+import com.jivesoftware.base.UserNotFoundException;
+import com.jivesoftware.base.UserTemplate;
+import com.jivesoftware.community.user.profile.ProfileField;
+import com.jivesoftware.community.user.profile.ProfileFieldManager;
+import com.jivesoftware.community.user.profile.ProfileFieldValue;
+import com.jivesoftware.community.user.profile.ProfileManager;
+
+/**
+ * DB Implementation of manager
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class DbNukesUserManager implements NukesUserManager {
+
+ private static final Logger log = LogManager
+ .getLogger(DbNukesUserManager.class);
+
+ private NukesForumsDAO nukesForumsDAO;
+
+ private UserManager userManager;
+
+ private UserDetailsService userDetailsService;
+
+ private ProfileManager profileManager;
+
+ private ProfileFieldManager profileFieldManager;
+
+ public User createUserFromNukes(String username)
+ throws UserAlreadyExistsException {
+ NukesUserBean nukeUser = nukesForumsDAO.getNukesUser(username);
+
+ // Implementation taken from UserImporter service in cs-nukes-login module
+ UserTemplate ut = new UserTemplate(username);
+ ut.setFederated(true);
+
+ ut = mapDetails(ut, nukeUser);
+ userManager.createApplicationUser(ut);
+
+ // try again to load the user from the details
+ // service, this time it should work
+// UserDetails ud = userDetailsService.loadUserByUsername(username);
+
+ // update profile
+ User u;
+ try {
+ u = userManager.getUser(nukeUser.getUsername());
+ } catch (UserNotFoundException e) {
+ throw new RuntimeException(
+ "Cannot get user which has been just created. Username: " + username,
+ e);
+ }
+ Set<ProfileFieldValue> pfvSet = new HashSet<ProfileFieldValue>();
+
+ Map<String, String> profile = nukeUser.getProfile();
+ // map default fields
+ mapProfile(profile, pfvSet, profileFieldManager.getDefaultFields());
+
+ // map custom fields
+ mapProfile(profile, pfvSet, profileFieldManager.getCustomFields());
+
+ // create unexisting fields
+ if (!profile.isEmpty()) {
+
+ for (String key : profile.keySet()) {
+ log.info("Couldn't set profile field: " + key);
+ }
+ }
+
+ if (!pfvSet.isEmpty()) {
+ profileManager.setProfile(u, pfvSet);
+ }
+
+ return nukeUser;
+ }
+
+ private void mapProfile(Map<String, String> profile,
+ Collection<ProfileFieldValue> pfvSet, List<ProfileField> fields) {
+ for (ProfileField pf : fields) {
+
+ if (profile.get(pf.getName()) != null) {
+ ProfileFieldValue pfv = new ProfileFieldValue(pf);
+ pfv.setValue(profile.get(pf.getName()));
+
+ pfvSet.add(pfv);
+
+ // remove field as added (or not if it was null)
+ profile.remove(pf.getName());
+ }
+ }
+ }
+
+ private UserTemplate mapDetails(UserTemplate ut, NukesUserBean nukeUser) {
+ ut.setEmail(nukeUser.getEmail());
+ ut.setFirstName(nukeUser.getFirstName());
+ ut.setLastName(nukeUser.getLastName());
+ ut.setName(nukeUser.getName());
+ ut.setPasswordHash(nukeUser.getPasswordHash());
+ ut.setProperties(nukeUser.getProperties());
+ ut.setCreationDate(nukeUser.getCreationDate());
+
+ return ut;
+ }
+
+ public void setNukesForumsDAO(NukesForumsDAO nukesForumsDAO) {
+ this.nukesForumsDAO = nukesForumsDAO;
+ }
+
+ public void setUserManager(UserManager userManager) {
+ this.userManager = userManager;
+ }
+
+ public void setUserDetailsService(UserDetailsService userDetailsService) {
+ this.userDetailsService = userDetailsService;
+ }
+
+ public void setProfileManager(ProfileManager profileManager) {
+ this.profileManager = profileManager;
+ }
+
+ public void setProfileFieldManager(ProfileFieldManager profileFieldManager) {
+ this.profileFieldManager = profileFieldManager;
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesUserManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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-06-09 08:47:36 UTC (rev 26878)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -43,9 +43,10 @@
public int createForumMappingFromCategories();
/**
- * Migrate forums to clearspace
+ * Migrate forums to Clearspace
*
- * @return statistics. Map contains these keys: topicsCount, postsCount
+ * @return statistics. Map contains these keys: topicsCount, postsCount,
+ * newUsersCount
*/
public Map<String, Long> migrateForums2Clearspace();
@@ -62,7 +63,7 @@
* @return
*/
public int getCategoryCount();
-
+
/**
* Flush cache
*
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesUserManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesUserManager.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesUserManager.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -0,0 +1,44 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2009 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.labs.clearspace.plugin.nfm;
+
+import com.jivesoftware.base.User;
+import com.jivesoftware.base.UserAlreadyExistsException;
+
+/**
+ * Manager of handling Nukes Users
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public interface NukesUserManager {
+
+ /**
+ * Create CS user from nukes user defined by username
+ *
+ * @param username
+ * @return CS user
+ * @throws UserAlreadyExistsException
+ */
+ public User createUserFromNukes(String username)
+ throws UserAlreadyExistsException;
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesUserManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsDAOImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsDAOImpl.java 2009-06-09 08:47:36 UTC (rev 26878)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsDAOImpl.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -59,6 +59,8 @@
+ "from phpbb_forums_watch w join nuke_users u on u.pn_uid = w.user_id "
+ "where forum_id = ?";
+ private static final String SELECT_NUKES_USER_BY_USERNAME = "SELECT * FROM nuke_users WHERE pn_uname = ?";
+
public List<NukesForumsForumBean> getAllForumsByCategoryID(Long categoryID) {
return getSimpleJdbcTemplate().query(SELECT_FORUMS_BY_CATEGORYID,
new NukesForumsForumBeanMapper(categoryID), categoryID);
@@ -96,6 +98,24 @@
}, forumID);
}
+ public NukesUserBean getNukesUser(String username) {
+ return getSimpleJdbcTemplate().queryForObject(
+ SELECT_NUKES_USER_BY_USERNAME, new NukesUserBeanMapper(), username);
+ }
+
+ /**
+ * Mapper for {@link NukesUserBean} bean
+ */
+ class NukesUserBeanMapper implements ParameterizedRowMapper<NukesUserBean> {
+ public NukesUserBean mapRow(ResultSet rs, int rowNum) throws SQLException {
+ return new NukesUserBean(rs);
+ }
+
+ }
+
+ /**
+ * Mapper for {@link NukesForumsPostBean} bean
+ */
class NukesForumsPostBeanMapper implements
ParameterizedRowMapper<NukesForumsPostBean> {
@@ -115,9 +135,7 @@
}
/**
- * Mapping for forum bean
- *
- * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ * Mapping for {@link NukesForumsForumBean} bean
*/
class NukesForumsForumBeanMapper implements
ParameterizedRowMapper<NukesForumsForumBean> {
@@ -143,9 +161,7 @@
}
/**
- * Mapping for Topic Bean
- *
- * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ * Mapping for {@link NukesForumsTopicBean} Bean
*/
class NukesForumsTopicBeanMapper implements
ParameterizedRowMapper<NukesForumsTopicBean> {
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.java 2009-06-09 08:47:36 UTC (rev 26878)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsDAO.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -74,4 +74,12 @@
*/
public List<String> getForumWatchingUses(Long forumID);
+ /**
+ * Get nukes user.
+ *
+ * @param username
+ * @return
+ */
+ public NukesUserBean getNukesUser(String username);
+
}
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesUserBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesUserBean.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesUserBean.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -0,0 +1,434 @@
+package org.jboss.labs.clearspace.plugin.nfm.dao;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.jivesoftware.base.AuthToken;
+import com.jivesoftware.base.UnauthorizedException;
+import com.jivesoftware.base.User;
+import com.jivesoftware.community.Permissions;
+import com.jivesoftware.community.cache.Cacheable;
+import com.jivesoftware.community.webservices.WSUser;
+
+/**
+ * Nukes User bean. Implementation taken from cs-nukes-login module.<br>
+ * Nothing is changed. See org.jboss.labs.clearspace.LabsUser in
+ * org.jboss.labs:cs-nukes-login:1.0-SNAPSHOT artifact
+ */
+public class NukesUserBean implements User, Cacheable {
+
+ private static final String CLICK_HERE_FOR_JBOSS_NEWSLETTER = "Click here for JBoss Newsletter";
+
+ private static final String ADDRESS = "Address";
+
+ private static final String TYPE_OF_COMPANY = "Type of Company";
+
+ private static final String BIOGRAPHY = "Biography";
+
+ private static final String URL = "URL";
+
+ private static final String COMPANY_SIZE = "Company size";
+
+ private static final String TITLE = "Title";
+
+ private static final String COMPANY_NAME = "Company name";
+
+ private static final String EXPERTISE = "Expertise";
+
+ private static final String OCCUPATION = "Occupation";
+
+ private static final String YOUR_MSN_MESSANGER = "Your MSN Messanger";
+
+ private static final String YOUR_YIM_NUMBER = "Your YIM Number";
+
+ private static final String YOUR_AIM_ADDRESS = "Your AIM Address";
+
+ private static final String YOUR_ICQ_NUMBER = "Your ICQ Number";
+
+ private static final String ALTERNATIVE_EMAIL = "Alternative Email";
+
+ private static final String PHONE_NUMBER = "Phone Number";
+
+ private static final String HOME_ADDRESS = "Home Address";
+
+ private static final String TIME_ZONE = "Time Zone";
+
+ private static final String OPT_OUT = "Click here to opt-out of ALL communication";
+
+ private static final String CONTACTED = "Click here if you wish to be contacted";
+
+ private final static Permissions perms = new Permissions(Permissions.NONE);;
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private Date creationDate;
+ private String email;
+ private long uID;
+ private Date lastLoggedIn;
+ private Date modifDate;
+ private String name;
+ private String passHash;
+ private String username;
+ private String firstName;
+ private String lastName;
+ private Map<String, String> profile;
+ private boolean emailVisible;
+ private static Map<String, Map<String, String>> profileDict;
+
+ static {
+ profileDict = new HashMap<String, Map<String, String>>();
+ addDict(CLICK_HERE_FOR_JBOSS_NEWSLETTER, "0", "No", "1", "Yes");
+ addDict(CONTACTED, "0", "No", "1", "Yes");
+ addDict(OPT_OUT, "0", "No", "1", "Yes");
+ addDict(COMPANY_SIZE, "100_999", "100-999", "_20", "-20", "21_100",
+ "21-100", "1000_", "1000-");
+ addDict(
+ TIME_ZONE,
+ "0",
+ "(GMT -12:00 hours) Eniwetok, Kwajalein",
+ "2",
+ "(GMT -11:00 hours) Midway Island, Samoa",
+ "4",
+ "(GMT -10:00 hours) Hawaii",
+ "6",
+ "(GMT -9:00 hours) Alaska",
+ "8",
+ "(GMT -8:00 hours) Pacific Time (US ",
+ "10",
+ "(GMT -7:00 hours) Mountain Time (US ",
+ "12",
+ "(GMT -6:00 hours) Central Time (US ",
+ "14",
+ "(GMT -5:00 hours) Eastern Time (US ",
+ "16",
+ "(GMT -4:00 hours) Atlantic Time (Canada), Caracas, La Paz",
+ "17",
+ "(GMT -3:30 hours) Newfoundland",
+ "18",
+ "(GMT -3:00 hours) Brazil, Buenos Aires, Georgetown",
+ "20",
+ "(GMT -2:00 hours) Mid-Atlantic",
+ "22",
+ "(GMT -1:00 hours) Azores, Cape Verde Islands",
+ "24",
+ "(GMT) Western Europe Time, London, Lisbon, Casablanca, Monrovia",
+ "26",
+ "selected",
+ "28",
+ "(GMT +2:00 hours) EET(Eastern Europe Time), Kaliningrad, South Africa",
+ "30",
+ "(GMT +3:00 hours) Baghdad, Kuwait, Riyadh, Moscow, St",
+ "31",
+ "(GMT +3:30 hours) Tehran",
+ "32",
+ "(GMT +4:00 hours) Abu Dhabi, Muscat, Baku, Tbilisi",
+ "33",
+ "(GMT +4:30 hours) Kabul",
+ "34",
+ "(GMT +5:00 hours) Ekaterinburg, Islamabad, Karachi, Tashkent",
+ "35",
+ "(GMT +5:30 hours) Bombay, Calcutta, Madras, New Delhi",
+ "36",
+ "(GMT +6:00 hours) Almaty, Dhaka, Colombo",
+ "38",
+ "(GMT +7:00 hours) Bangkok, Hanoi, Jakarta",
+ "40",
+ "(GMT +8:00 hours) Beijing, Perth, Singapore, Hong Kong, Chongqing, Urumqi, Taipei",
+ "42",
+ "(GMT +9:00 hours) Tokyo, Seoul, Osaka, Sapporo, Yakutsk",
+ "43", "(GMT +9:30 hours) Adelaide, Darwin", "44",
+ "(GMT +10:00 hours) EAST(East Australian Standard)", "46",
+ "(GMT +11:00 hours) Magadan, Solomon Islands, New Caledonia",
+ "48",
+ "(GMT +12:00 hours) Auckland, Wellington, Fiji, Kamchatka, Marshall Island");
+ }
+
+ private static void addDict(String field, String... fields) {
+ if (fields.length % 2 == 1) {
+ throw new IllegalArgumentException(
+ "Wrong nomber of fields for dict (must be even): "
+ + fields.length);
+ }
+
+ Map<String, String> oneDict = new HashMap<String, String>();
+ for (int i = 0; i < fields.length; i += 2) {
+ oneDict.put(fields[i], fields[i + 1]);
+ }
+
+ profileDict.put(field, oneDict);
+ }
+
+ private boolean empty(String s) {
+ return s == null || s.trim().length() == 0;
+ }
+
+ public NukesUserBean(ResultSet rs) throws SQLException {
+ creationDate = rs.getDate("pn_user_regdate");
+ email = rs.getString("pn_email");
+ // uID = rs.getLong("pn_uid");
+ lastLoggedIn = rs.getDate("pn_last_visit");
+ modifDate = creationDate;
+ username = rs.getString("pn_uname");
+ name = rs.getString("pn_name");
+ passHash = rs.getString("pn_pass");
+ firstName = rs.getString("pn_fname");
+ lastName = rs.getString("pn_lname");
+ emailVisible = rs.getBoolean("pn_user_viewemail");
+
+ if (empty(firstName) || empty(lastName)) {
+ String realName = rs.getString("pn_name");
+
+ if (!empty(realName)) {
+ String[] tokens = realName.split("\\s");
+
+ if (empty(firstName)) {
+ firstName = tokens[0];
+ }
+
+ if (empty(lastName)) {
+ lastName = tokens[tokens.length - 1];
+ }
+ }
+ }
+
+ if (empty(name)) {
+ name = firstName + " " + lastName;
+ }
+
+ profile = new HashMap<String, String>();
+
+ profile.put(PHONE_NUMBER, rs.getString("pn_phone"));
+
+ profile.put(ALTERNATIVE_EMAIL, rs.getString("pn_femail"));
+ profile.put(YOUR_ICQ_NUMBER, rs.getString("pn_user_icq"));
+ profile.put(YOUR_AIM_ADDRESS, rs.getString("pn_user_aim"));
+ profile.put(YOUR_YIM_NUMBER, rs.getString("pn_user_yim"));
+ profile.put(YOUR_MSN_MESSANGER, rs.getString("pn_user_msnm"));
+ profile.put(HOME_ADDRESS, rs.getString("pn_user_from"));
+
+ profile.put(OCCUPATION, rs.getString("pn_user_occ"));
+ profile.put(EXPERTISE, rs.getString("pn_user_intrest"));
+
+ profile.put(COMPANY_NAME, rs.getString("pn_cname"));
+ profile.put(TITLE, rs.getString("pn_title"));
+
+ profile.put(COMPANY_SIZE, rs.getString("pn_companysize"));
+
+ profile.put(URL, rs.getString("pn_url"));
+
+ profile.put(BIOGRAPHY, rs.getString("pn_bio"));
+
+ profile.put(TYPE_OF_COMPANY, rs.getString("pn_usertype"));
+
+ profile.put(ADDRESS, "street1:" + rs.getString("pn_street")
+ + ",street2:,city:" + rs.getString("pn_city") + ",state:"
+ + rs.getString("pn_state") + ",country:"
+ + rs.getString("pn_country") + ",zip:" + rs.getString("pn_zip")
+ + ",type:WORK");
+
+ profile.put(CLICK_HERE_FOR_JBOSS_NEWSLETTER, rs
+ .getString("pn_newsletter"));
+
+ profile.put(TIME_ZONE, rs.getString("pn_timezone_offset"));
+
+ profile.put(CONTACTED, rs.getString("pn_supportcontact"));
+
+ profile.put(OPT_OUT, rs.getString("pn_salescontact"));
+
+ Map<String, String> profileIt = new HashMap<String, String>(profile);
+
+ // remove all null values associated to keys
+ for (String key : profileIt.keySet()) {
+ if (profile.get(key) == null) {
+ profile.remove(key);
+ }
+ }
+
+ profile = translateProfileFields(profile);
+
+ }
+
+ private Map<String, String> translateProfileFields(
+ Map<String, String> profile) {
+ Map<String, String> newProfile = new HashMap<String, String>();
+
+ for (String key : profile.keySet()) {
+ String translatedField;
+ if (profileDict.get(key) != null
+ && ((translatedField = profileDict.get(key).get(
+ profile.get(key))) != null)) {
+
+ newProfile.put(key, translatedField);
+ } else {
+ newProfile.put(key, profile.get(key));
+ }
+ }
+
+ return newProfile;
+ }
+
+ public Map<String, String> getProfile() {
+ return profile;
+ }
+
+ public NukesUserBean(String username) {
+ this.username = username;
+ }
+
+ public Date getCreationDate() {
+ return creationDate;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public long getID() {
+ return uID;
+ }
+
+ public Date getLastLoggedIn() {
+ return lastLoggedIn;
+ }
+
+ public Date getModificationDate() {
+ return modifDate;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getPassword() throws UnauthorizedException {
+ return null;
+ }
+
+ public String getPasswordHash() throws UnauthorizedException {
+ return passHash;
+ }
+
+ public Permissions getPermissions(AuthToken token) {
+ // TODO Auto-generated method stub
+ return perms;
+ }
+
+ public Map<String, String> getProperties() {
+ // TODO Auto-generated method stub
+ return new HashMap<String, String>();
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public boolean isAuthorized(long permissionType) {
+ return true;
+ }
+
+ public boolean isEmailVisible() {
+ return emailVisible;
+ }
+
+ public boolean isEnabled() {
+ return true;
+ }
+
+ public boolean isExternal() {
+ return false;
+ }
+
+ public boolean isFederated() {
+ return true;
+ }
+
+ public boolean isGetPasswordHashSupported() {
+ return true;
+ }
+
+ public boolean isNameVisible() {
+ return true;
+ }
+
+ public boolean isPropertyEditSupported() {
+ return false;
+ }
+
+ public boolean isSetEmailSupported() {
+ return false;
+ }
+
+ public boolean isSetEmailVisibleSupported() {
+ return false;
+ }
+
+ public boolean isSetNameSupported() {
+ return false;
+ }
+
+ public boolean isSetNameVisibleSupported() {
+ return false;
+ }
+
+ public boolean isSetPasswordHashSupported() {
+ return false;
+ }
+
+ public boolean isSetPasswordSupported() {
+ return false;
+ }
+
+ public boolean isSetUsernameSupported() {
+ return false;
+ }
+
+ public int getObjectType() {
+ // TODO wth is it ?
+ return 1;
+ }
+
+ public int getCachedSize() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public WSUser getWSUser() {
+ WSUser u = new WSUser();
+ u.setCreationDate(getCreationDate());
+ u.setEmail(getEmail());
+ u.setEmailVisible(false);
+ u.setEnabled(true);
+ u.setID(getID());
+ u.setModificationDate(getModificationDate());
+ u.setName(getName());
+ u.setNameVisible(true);
+ u.setPassword(getPasswordHash());
+ u.setUsername(getUsername());
+
+ return u;
+ }
+
+ public void setID(long id) {
+ this.uID = id;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public Status getStatus() {
+ return Status.registered;
+ }
+
+ public boolean isAnonymous() {
+ return false;
+ }
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesUserBean.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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-06-09 08:47:36 UTC (rev 26878)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/AdminNfmAction.java 2009-06-09 10:05:25 UTC (rev 26879)
@@ -72,7 +72,8 @@
addActionMessage(getText("plugin.nfm.admin.nfm.migration.sucess",
new String[] { Long.toString(result.get("topicsCount")),
- Long.toString(result.get("postsCount")) }));
+ Long.toString(result.get("postsCount")),
+ Long.toString(result.get("newUsersCount")) }));
return SUCCESS;
}
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-06-09 08:47:36 UTC (rev 26878)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/plugin_i18n.properties 2009-06-09 10:05:25 UTC (rev 26879)
@@ -16,4 +16,4 @@
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!
-plugin.nfm.admin.nfm.migration.sucess=Migration has been successull. Count of topics: {0}. Count of Posts: {1}.
+plugin.nfm.admin.nfm.migration.sucess=Migration has been successull. Count of topics: {0}. Count of Posts: {1}. Count of created new users: {2}.
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml 2009-06-09 08:47:36 UTC (rev 26878)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml 2009-06-09 10:05:25 UTC (rev 26879)
@@ -31,7 +31,7 @@
<property name="topicMappings" ref="topicMappings" />
<property name="postMappings" ref="postMappings" />
- <property name="unknownMigrationUser" value="unknownForumsMigrationUser" />
+ <property name="nukesUserManager" ref="nukesUserManager" />
<property name="converters">
<list>
@@ -40,13 +40,27 @@
</property>
</bean>
- <!-- Lazy init is due we not sure that admin put porta-format-lib.jar to classpath -->
+ <bean id="nukesUserManager"
+ class="org.jboss.labs.clearspace.plugin.nfm.DbNukesUserManager">
+ <property name="userManager" ref="userManagerImpl" />
+ <property name="userDetailsService" ref="jiveUserDetailsService" />
+ <property name="profileManager" ref="profileManagerImpl" />
+ <property name="profileFieldManager" ref="profileFieldManagerImpl" />
+ <property name="nukesForumsDAO" ref="nukesForumsDAO" />
+ </bean>
+
+
+ <!--
+ Lazy init is due we not sure that admin put porta-format-lib.jar to
+ classpath
+ -->
<bean id="bbCodeConverter"
class="org.jboss.labs.clearspace.plugin.nfm.converter.BBCodeConverter">
- <property name="codeParser" ref="bbCodeParser"/>
+ <property name="codeParser" ref="bbCodeParser" />
</bean>
- <bean id="bbCodeParser" class="org.jboss.portal.format.parser.bbcode.BBCodeParser" lazy-init="true">
+ <bean id="bbCodeParser" class="org.jboss.portal.format.parser.bbcode.BBCodeParser"
+ lazy-init="true">
<property name="handler" ref="bbCode2CSHTMLParseEventHandler" />
</bean>
More information about the jboss-svn-commits
mailing list