[kune-commits] r1311 - in trunk/src: main/java/cc/kune/core/server/init main/java/cc/kune/core/server/manager/impl main/java/cc/kune/core/server/rpc main/java/cc/kune/docs/server main/java/cc/kune/wave/server test/java/cc/kune/core/server/integration test/java/cc/kune/core/server/manager test/java/cc/kune/docs/server test/java/cc/kune/wave/server

Vicente J. Ruiz Jurado vjrj_ at ourproject.org
Wed Apr 13 17:41:45 CEST 2011


Author: vjrj_
Date: 2011-04-13 17:41:45 +0200 (Wed, 13 Apr 2011)
New Revision: 1311

Added:
   trunk/src/main/java/cc/kune/core/server/manager/impl/ContentConstants.java
   trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java
   trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
Removed:
   trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializationTest.java
   trunk/src/test/java/cc/kune/core/server/manager/UserManagerTest.java
Modified:
   trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
   trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
   trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java
   trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java
   trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java
   trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java
   trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java
   trunk/src/test/java/cc/kune/docs/server/DocumentServerToolTest.java
   trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java
Log:
WIAB in server doc manager

Modified: trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -14,6 +14,7 @@
 import cc.kune.core.server.manager.I18nTranslationManager;
 import cc.kune.core.server.manager.LicenseManager;
 import cc.kune.core.server.manager.UserManager;
+import cc.kune.core.server.manager.impl.ContentConstants;
 import cc.kune.core.server.properties.DatabaseProperties;
 import cc.kune.core.shared.domain.ContentStatus;
 import cc.kune.core.shared.dto.GroupType;
@@ -24,7 +25,7 @@
 import cc.kune.domain.I18nTranslation;
 import cc.kune.domain.License;
 import cc.kune.domain.User;
-import cc.kune.wave.server.CustomUserRegistrationServlet;
+import cc.kune.wave.server.KuneWaveManager;
 
 import com.google.inject.Inject;
 import com.google.inject.persist.Transactional;
@@ -33,19 +34,19 @@
     private final ContentManager contentManager;
     private final I18nCountryManager countryManager;
     private final GroupManager groupManager;
+    private final KuneWaveManager kuneWaveManager;
     private final I18nLanguageManager languageManager;
     private final LicenseManager licenseManager;
     private final DatabaseProperties properties;
     private final I18nTranslationManager translationManager;
     private final UserManager userManager;
-    private final CustomUserRegistrationServlet waveUserRegister;
 
     @Inject
     public DatabaseInitializer(final DatabaseProperties properties, final UserManager userManager,
             final GroupManager groupManager, final LicenseManager licenseManager,
             final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
             final I18nTranslationManager translationManager, final ContentManager contentManager,
-            final CustomUserRegistrationServlet waveUserRegister) {
+            final KuneWaveManager kuneWaveManager) {
         this.properties = properties;
         this.userManager = userManager;
         this.groupManager = groupManager;
@@ -54,7 +55,7 @@
         this.countryManager = countryManager;
         this.translationManager = translationManager;
         this.contentManager = contentManager;
-        this.waveUserRegister = waveUserRegister;
+        this.kuneWaveManager = kuneWaveManager;
     }
 
     private void createDefUsersGroup() throws Exception, UserMustBeLoggedException {
@@ -86,30 +87,10 @@
         groupManager.reIndex();
 
         final Content defaultContent = siteGroup.getDefaultContent();
-        contentManager.save(user, defaultContent, "<img src=\"http://kune.ourproject.org/kimages/logo-header.png\" "
-                + "align=\"right\">This a initial demo of " + "<a href=\"http://kune.ourproject.org\">kune</a>."
-                + "<br><div style=\"text-align: right;\"><br></div>"
-                + "Kune is currently under initial development.<br>"
-                + "<br>To test it, <a href=\"#signin\">sign in registering an user</a>, "
-                + "but take into account that:<br><ul><li>kune is not optimized yet, "
-                + "then the initial load and other operations maybe are slow.</li>"
-                + "<li>Don\'t use passwords that you are using in other sites "
-                + "(kune isn\'t secure yet storing passwords).</li>"
-                + "<li>The site is divided in two main areas: the public " + "space and the workspace:</li><ul>"
-                + "<li>The workspace is the most important part of kune, "
-                + "because is where users collaborate and communicates which each others. "
-                + "This part is the most dynamic and we are using modern "
-                + "(and sometimes experimental) web technologies to improve the end user "
-                + "experience. I heavily under development.<br></li>"
-                + "<li>The public space is currently lest developed. "
-                + "Our main goal is to offer customs and configurable styles "
-                + "for groups/users contents.</li></ul></ul><font size=\"4\"><br>"
-                + "We need your feedback<br><br></font>Please help us to improve this software "
-                + "reporting <a href=\"http://kune.ourproject.org/issues/\">bugs and/or "
-                + "suggestions</a>. Also you <a href=\"#translate\">help us to translate it</a> "
-                + "into other languages.<br><br>Thank you,<br>" + "<br>--<br><span style=\"font-style: italic;\">"
-                + "The kune development team</span><br><br>");
-        contentManager.renameContent(user, defaultContent.getId(), "Welcome to kune demo");
+        final String waveId = kuneWaveManager.createWave(
+                ContentConstants.INITIAL_CONTENT.replaceAll("\\[%s\\]", siteName), user.getShortName());
+        contentManager.save(user, defaultContent, waveId);
+
         contentManager.setStatus(defaultContent.getId(), ContentStatus.publishedOnline);
     }
 

Added: trunk/src/main/java/cc/kune/core/server/manager/impl/ContentConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/ContentConstants.java	                        (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/ContentConstants.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -0,0 +1,172 @@
+package cc.kune.core.server.manager.impl;
+
+public class ContentConstants {
+
+    public static final String INITIAL_CONTENT = "<span style=\"font-weight: bold;\">Welcome to [%s]</span><br/>"
+            + "    <br/>" + "    This site is powered by <a target=\"_blank\""
+            + "href=\"http://kune.ourproject.org/\">Kune</a>.<br/>" + "    <br/>"
+            + "    Kune is currently under development.<br/>" + "    <br/>"
+            + "    To test it, <a href=\"#signin\">sign in registering"
+            + "        an user</a>, but take into account that:<br/>" + "      <ul>"
+            + "        <li>This site is not optimized yet, then the initial load and"
+            + "          other operations maybe are slow.</li>"
+            + "        <li>Don't use passwords that you are using in other sites (this"
+            + "          site isn't secure yet storing passwords).</li>"
+            + "        <li>We need your feedback. Please help us to improve this"
+            + "          software reporting <a target=\"_blank\"" + "href=\"http://kune.ourproject.org/issues/\">bugs"
+            + "            and/or suggestions</a>. Also you <a target=\"_blank\""
+            + "            href=\"&amp;\">help us to" + "            translate it</a> into other languages.</li>"
+            + "      </ul>" + "      Thank you,<br/>" + "      --<br/>"
+            + "      <span style=\"font-style: italic;\">The Kune development team</span>";
+
+    public static final String WELCOME_WAVE_CONTENT = "<span style=\"font-weight: bold;\">Welcome to [%s]. Some tips to getting started</span><br/>"
+            + "    <br/>"
+            + "    Check out some tips to get you started in this site.<br/>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">The Basics</span><br/>"
+            + "    <br/>"
+            + "    This site have several spaces:<br/>"
+            + "    <br/>"
+            + "    <ul>"
+            + "      <li><span style=\"text-decoration: underline;\">the Home Space</span>:"
+            + "        your welcome page, with news and contents related to your"
+            + "        groups, and where you can see your friends and others activity.</li>"
+            + "      <li><span style=\"text-decoration: underline;\">the User Space</span>:"
+            + "        the same way that your email Inbox shows a list of emails (old"
+            + "        and new), this space shows a list of all your documents and"
+            + "        contents in which you participate, highlighting the old ones"
+            + "        with new contents. From here you can communicate with others,"
+            + "        but also generate contents together that you can publish later.</li>"
+            + "      <li><span style=\"text-decoration: underline;\">the Group &amp;"
+            + "          Personal Space</span>: the contents you built can be part of"
+            + "        your personal or specific group web space. You can have one"
+            + "        personal space (like your blog, or your academic CV, etc), and"
+            + "        belong to multiple group spaces (like initiatives you"
+            + "        participate in your neighbourhood, or some scholar or"
+            + "        proffesional initiatives, etc).</li>"
+            + "      <li><span style=\"text-decoration: underline;\">the Public Space</span>:"
+            + "        any content from the previous space, when finished, can be"
+            + "        published in the web so anyone can see it. In this space you can"
+            + "        see a preview of how the Personal or Group Space looks like on"
+            + "        the web, outside the [%s] site.</li>"
+            + "    </ul>"
+            + "    <br/>"
+            + "    In sum, your contents will be<br/>"
+            + "    <ul>"
+            + "      <li>somehow <span style=\"text-decoration: underline;\">private</span>"
+            + "        (chat with your friends, private contents created with them,"
+            + "        shared photos, draft documents, etc)</li>"
+            + "      <li><span style=\"text-decoration: underline;\">public</span> (works"
+            + "        you want to share with everyone, finished documents, public"
+            + "        photos/videos) </li>"
+            + "    </ul>"
+            + "    <br/>"
+            + "    Here we are talking about \"contents\", but in fact those will be"
+            + "    called \"waves\", a new way of communicating with others. Let us"
+            + "    introduce it...<br/>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">Here comes the Wave</span><br/>"
+            + "    <br/>"
+            + "    A \"wave\" is a special document (like in a word processor text) where"
+            + "    you can include comments and conversations (like in a forum). Any"
+            + "    wave can be edited by you like any document, but it will be saved"
+            + "    online instead of in your computer. Besides, anyone you \"share\" the"
+            + "    wave with (your friends Layla and Xavier, for example) can also edit"
+            + "    the same document, improving and extending what you wrote. You can"
+            + "    turn off your computer, come back the next day, and see how others"
+            + "    changed the wave while you were away.<br/>"
+            + "    <br/>"
+            + "    Thus, all your contents will be different \"waves\", regardless if it"
+            + "    is a photo gallery, a discussion, a blog post, a meeting"
+            + "    announcement, or a CV.<br/>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">Starting a new wave</span><br/>"
+            + "    <br/>"
+            + "    Anyone can create a new wave (like a blank document). For starting a"
+            + "    wave, just click on the <span style=\"font-style: italic;\">New Wave</span>"
+            + "    button in your Inbox. You can share this wave with any of your"
+            + "    friends. On the other hand, the waves that your friends created and"
+            + "    shared with you, will directly appear in your inbox. <br/>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">Replying to a wave</span><br/>"
+            + "    <br/>"
+            + "    Layla and Xavier can also make comments to the text, in any"
+            + "    paragraph or sentence they want to comment. Any of you can reply to"
+            + "    every comment, establishing discussions about certain parts of the"
+            + "    document. <br/>"
+            + "    <ul>"
+            + "      <li>For making a comment on the bottom of the wave:</li>"
+            + "      <ul>"
+            + "        <li><span style=\"font-style: italic;\">with your mouse</span>:"
+            + "          click on the \"Click here to reply\" in the bottom, or</li>"
+            + "        <li><span style=\"font-style: italic;\">with the keyboard</span>:"
+            + "          press the \"Enter\" key.</li>"
+            + "      </ul>"
+            + "      <li> For making a comment on a specific part of the text:</li>"
+            + "      <ul>"
+            + "        <li><span style=\"font-style: italic;\">with your mouse</span>:"
+            + "          Double click on the point you want to insert the comment and"
+            + "          click \"Reply\", or</li>"
+            + "        <li><span style=\"font-style: italic;\">with the keyboard</span>:"
+            + "          Select that text (or comment) and press the \"Enter\" key</li>"
+            + "      </ul>"
+            + "    </ul>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">Editing waves</span><br/>"
+            + "    <br/>"
+            + "    All participants on a wave can edit any part of the wave, at the"
+            + "    same time. You don't need to wait until Layla finishes a section to"
+            + "    begin editing, you can all do it at once. <br/>"
+            + "    <ul>"
+            + "      <li>For editing a wave:</li>"
+            + "      <ul>"
+            + "        <li><span style=\"font-style: italic;\">with your mouse</span>:"
+            + "          Double click on the wave (or comment) and click \"Edit\", or</li>"
+            + "        <li><span style=\"font-style: italic;\">with your keyboard</span>:"
+            + "          Select where you want to edit, and press at once the keys"
+            + "          \"Ctrl\" and \"E\"</li>"
+            + "      </ul>"
+            + "      <li>To finish the edition of the wave or a comment:</li>"
+            + "      <ul>"
+            + "        <li><span style=\"font-style: italic;\">with your mouse</span>:"
+            + "          Click on the \"Done\" button at the bottom of your wave, or</li>"
+            + "        <li><span style=\"font-style: italic;\">with your keyboard</span>:"
+            + "          press at once the keys \"Shift\" and \"Enter\"</li>"
+            + "      </ul>"
+            + "    </ul>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">Reading through waves</span><br/>"
+            + "    <br/>"
+            + "    When you open a wave that others edited, there will be comment you"
+            + "    already read before, and new comments they wrote when you were away."
+            + "    The unread comments are highlighted so you can easily know what's"
+            + "    new. <br/>"
+            + "    <ul>"
+            + "      <li>For surfing quickly through the next unread comments, you can</li>"
+            + "      <ul>"
+            + "        <li><span style=\"font-style: italic;\">with your keyboard:</span>"
+            + "          press the \"Spacebar\" key.</li>"
+            + "      </ul>"
+            + "    </ul>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">Rich contents and add-ons</span><br/>"
+            + "    <br/>"
+            + "    Any wave can have not only text, but also images or videos... and"
+            + "    much more. It's easy to insert add-ons in your waves, that allow you"
+            + "    to include other \"rich content\" (polls, maps...), extra"
+            + "    functionalities (translations, word-counters, spelling...) or"
+            + "    integration with other sites (newspapers, twitter...)<br/>"
+            + "    <br/>"
+            + "    <a target=\"_blank\""
+            + "href=\"http://wave-samples-gallery.appspot.com\">Visit"
+            + "      the Google Wave sample extensions</a><br/>"
+            + "    <br/>"
+            + "    <span style=\"font-weight: bold;\">Finding one specific wave</span><br/>"
+            + "    <br/>"
+            + "    In the Inbox you have your list of waves, the ones you created or"
+            + "    the ones others shared with you. You can use the search box to"
+            + "    search through all your waves, using specific keywords.<br/>";
+
+    private ContentConstants() {
+    }
+}


Property changes on: trunk/src/main/java/cc/kune/core/server/manager/impl/ContentConstants.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -43,6 +43,7 @@
 import cc.kune.core.server.manager.I18nLanguageManager;
 import cc.kune.core.server.manager.UserManager;
 import cc.kune.core.server.properties.ChatProperties;
+import cc.kune.core.server.properties.DatabaseProperties;
 import cc.kune.core.server.xmpp.ChatConnection;
 import cc.kune.core.server.xmpp.ChatException;
 import cc.kune.core.server.xmpp.XmppManager;
@@ -62,13 +63,15 @@
 
 @Singleton
 public class UserManagerDefault extends DefaultManager<User, Long> implements UserManager {
+
+    private final ChatProperties chatProperties;
     private final I18nCountryManager countryManager;
+    private final DatabaseProperties databaseProperties;
     private final UserFinder finder;
     private final I18nTranslationService i18n;
     private final KuneWaveManager kuneWaveManager;
     private final I18nLanguageManager languageManager;
     private final ParticipantUtils participantUtils;
-    private final ChatProperties properties;
     private final AccountStore waveAccountStore;
     // private final PropertiesManager propManager;
     private final CustomUserRegistrationServlet waveUserRegister;
@@ -77,20 +80,22 @@
     @Inject
     public UserManagerDefault(final Provider<EntityManager> provider, final UserFinder finder,
             final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
-            final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n,
+            final XmppManager xmppManager, final ChatProperties chatProperties, final I18nTranslationService i18n,
             final CustomUserRegistrationServlet waveUserRegister, final AccountStore waveAccountStore,
-            final KuneWaveManager kuneWaveManager, final ParticipantUtils participantUtils) {
+            final KuneWaveManager kuneWaveManager, final ParticipantUtils participantUtils,
+            final DatabaseProperties databaseProperties) {
         super(provider, User.class);
         this.finder = finder;
         this.languageManager = languageManager;
         this.countryManager = countryManager;
         this.xmppManager = xmppManager;
-        this.properties = properties;
+        this.chatProperties = chatProperties;
         this.i18n = i18n;
         this.waveUserRegister = waveUserRegister;
         this.waveAccountStore = waveAccountStore;
         this.kuneWaveManager = kuneWaveManager;
         this.participantUtils = participantUtils;
+        this.databaseProperties = databaseProperties;
     }
 
     @Override
@@ -131,7 +136,9 @@
         try {
             final User user = new User(shortName, longName, email, passwd, passwdDigest.getDigest(),
                     passwdDigest.getSalt(), language, country, tz);
-            kuneWaveManager.createWave(shortName, "Test wave");
+            kuneWaveManager.createWave(
+                    ContentConstants.WELCOME_WAVE_CONTENT.replaceAll("\\[%s\\]",
+                            databaseProperties.getDefaultSiteName()), databaseProperties.getAdminShortName(), shortName);
             return user;
         } catch (final RuntimeException e) {
             try {
@@ -178,7 +185,7 @@
         // two db at the same time). This compromise solution is server
         // independent.
         // In the future cache this.
-        final String domain = "@" + properties.getDomain();
+        final String domain = "@" + chatProperties.getDomain();
         final UserBuddiesData buddiesData = new UserBuddiesData();
 
         final User user = finder.getByShortName(shortName);
@@ -231,10 +238,10 @@
             if (user.getLastLogin() == null) {
                 xmppManager.sendMessage(
                         user.getShortName(),
-                        i18n.t("This is the chat window. \n"
-                                + "\n"
-                                + "Here you can communicate with other users of this site but also with other users with compatible accounts (like gmail accounts). \n"
-                                + "\n" + "Just add some buddie and start to chat."));
+                        i18n.t("This is the chat window. "
+                                + ""
+                                + "Here you can communicate with other users of this site but also with other users with compatible accounts (like gmail accounts). "
+                                + "" + "Just add some buddie and start to chat."));
             }
             user.setLastLogin(System.currentTimeMillis());
             return user;

Modified: trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -19,7 +19,6 @@
  */
 package cc.kune.core.server.rpc;
 
-
 import cc.kune.core.client.errors.DefaultException;
 import cc.kune.core.client.rpcservices.GroupService;
 import cc.kune.core.server.UserSession;
@@ -36,9 +35,11 @@
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.core.shared.dto.GroupDTO;
 import cc.kune.core.shared.dto.LicenseDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
 import cc.kune.domain.Content;
 import cc.kune.domain.Group;
 import cc.kune.domain.User;
+import cc.kune.wave.server.KuneWaveManagerDefault;
 
 import com.google.inject.Inject;
 import com.google.inject.Provider;
@@ -49,16 +50,21 @@
 public class GroupRPC implements RPC, GroupService {
     private final ContentManager contentManager;
     private final GroupManager groupManager;
+    private final I18nTranslationService i18n;
+    private final KuneWaveManagerDefault kuneWaveManager;
     private final Mapper mapper;
     private final Provider<UserSession> userSessionProvider;
 
     @Inject
     public GroupRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager,
-            final ContentManager contentManager, final Mapper mapper) {
+            final ContentManager contentManager, final Mapper mapper, final KuneWaveManagerDefault kuneWaveManager,
+            final I18nTranslationService i18n) {
         this.userSessionProvider = userSessionProvider;
         this.groupManager = groupManager;
         this.contentManager = contentManager;
         this.mapper = mapper;
+        this.kuneWaveManager = kuneWaveManager;
+        this.i18n = i18n;
     }
 
     @Override
@@ -100,9 +106,10 @@
         final User user = getUserLogged();
         final Group group = mapper.map(groupDTO, Group.class);
         final Group newGroup = groupManager.createGroup(group, user);
-        final Long defContentId = newGroup.getDefaultContent().getId();
-        contentManager.save(user, newGroup.getDefaultContent(), publicDesc);
-        contentManager.setTags(user, defContentId, tags);
+        final String waveId = kuneWaveManager.createWave("<h1>" + i18n.t("About [%s]", groupDTO.getLongName())
+                + "</h1>" + publicDesc, user.getShortName());
+        contentManager.save(user, newGroup.getDefaultContent(), waveId);
+        // contentManager.setTags(user, defContentId, tags);
         return newGroup.getDefaultContent().getStateToken();
     };
 

Modified: trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -35,6 +35,7 @@
 import cc.kune.core.server.auth.Authenticated;
 import cc.kune.core.server.auth.Authorizated;
 import cc.kune.core.server.auth.SessionService;
+import cc.kune.core.server.content.ContentManager;
 import cc.kune.core.server.manager.GroupManager;
 import cc.kune.core.server.manager.UserManager;
 import cc.kune.core.server.mapper.Mapper;
@@ -46,9 +47,11 @@
 import cc.kune.core.shared.dto.UserDTO;
 import cc.kune.core.shared.dto.UserInfoDTO;
 import cc.kune.core.shared.dto.WaveClientParams;
+import cc.kune.core.shared.i18n.I18nTranslationService;
 import cc.kune.domain.Group;
 import cc.kune.domain.User;
 import cc.kune.wave.server.CustomWaveClientServlet;
+import cc.kune.wave.server.KuneWaveManager;
 
 import com.google.inject.Inject;
 import com.google.inject.Provider;
@@ -59,7 +62,10 @@
 @Singleton
 public class UserRPC implements RPC, UserService {
 
+    private final ContentManager contentManager;
     private final GroupManager groupManager;
+    private final I18nTranslationService i18n;
+    private final KuneWaveManager kuneWaveManager;
     private final Mapper mapper;
     private final Provider<SessionService> sessionServiceProvider;
     private final UserInfoService userInfoService;
@@ -74,7 +80,8 @@
             final Provider<UserSession> userSessionProvider, final UserManager userManager,
             @Named(CoreSettings.USE_SOCKETIO) final Boolean useSocketIO, final GroupManager groupManager,
             final UserInfoService userInfoService, final Mapper mapper, final SessionManager waveSessionManager,
-            final CustomWaveClientServlet waveClientServlet) {
+            final CustomWaveClientServlet waveClientServlet, final I18nTranslationService i18n,
+            final KuneWaveManager kuneWaveManager, final ContentManager contentManager) {
 
         this.sessionServiceProvider = sessionServiceProvider;
         this.userSessionProvider = userSessionProvider;
@@ -85,6 +92,9 @@
         this.mapper = mapper;
         this.waveSessionManager = waveSessionManager;
         this.waveClientServlet = waveClientServlet;
+        this.i18n = i18n;
+        this.kuneWaveManager = kuneWaveManager;
+        this.contentManager = contentManager;
     }
 
     @Override
@@ -93,7 +103,10 @@
         final User user = userManager.createUser(userDTO.getShortName(), userDTO.getName(), userDTO.getEmail(),
                 userDTO.getPassword(), userDTO.getLanguage().getCode(), userDTO.getCountry().getCode(),
                 userDTO.getTimezone().getId());
-        groupManager.createUserGroup(user, wantPersonalHomepage);
+        final Group userGroup = groupManager.createUserGroup(user, wantPersonalHomepage);
+        final String waveId = kuneWaveManager.createWave("<h1>" + i18n.t("[%s] Bio", userDTO.getName()) + "</h1>"
+                + i18n.t("This user has not written its biography yet"), user.getShortName());
+        contentManager.save(user, userGroup.getDefaultContent(), waveId);
     }
 
     @Override

Modified: trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -36,7 +36,6 @@
 import cc.kune.domain.Group;
 import cc.kune.domain.ToolConfiguration;
 import cc.kune.domain.User;
-import cc.kune.wave.server.KuneWaveManager;
 
 import com.google.inject.Inject;
 
@@ -48,23 +47,18 @@
     public static final String TYPE_ROOT = NAME + "." + "root";
     public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
 
-    public static final String TYPE_WAVE = NAME + "." + ServerTool.WAVE_SUFFIX;
-
     private final ToolConfigurationManager configurationManager;
     private final ContainerManager containerManager;
     private final ContentManager contentManager;
     private final I18nTranslationService i18n;
-    private final KuneWaveManager kuneWaveManager;
 
     @Inject
     public DocumentServerTool(final ContentManager contentManager, final ContainerManager containerManager,
-            final ToolConfigurationManager configurationManager, final I18nTranslationService translationService,
-            final KuneWaveManager kuneWaveManager) {
+            final ToolConfigurationManager configurationManager, final I18nTranslationService translationService) {
         this.contentManager = contentManager;
         this.containerManager = containerManager;
         this.configurationManager = configurationManager;
         this.i18n = translationService;
-        this.kuneWaveManager = kuneWaveManager;
     }
 
     void checkContainerTypeId(final String parentTypeId, final String typeId) {
@@ -81,10 +75,9 @@
     }
 
     void checkContentTypeId(final String parentTypeId, final String typeId) {
-        if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_UPLOADEDFILE) || typeId.equals(TYPE_WAVE)) {
+        if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_UPLOADEDFILE)) {
             // ok valid content
             if ((typeId.equals(TYPE_DOCUMENT) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
-                    || (typeId.equals(TYPE_WAVE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
                     || (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))) {
                 // ok
             } else {
@@ -137,7 +130,6 @@
         content.setStatus(ContentStatus.publishedOnline);
         content.setPublishedOn(new Date());
         group.setDefaultContent(content);
-        kuneWaveManager.createWave(user.getShortName(), "<h1>" + i18n.t("About [%s]" + "</h1>", longName));
         return group;
     }
 

Modified: trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -1,8 +1,7 @@
 package cc.kune.wave.server;
 
-
 public interface KuneWaveManager {
 
-    void createWave(String user, String message);
+    String createWave(String message, String... participants);
 
 }

Modified: trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -20,8 +20,9 @@
 
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
+import com.google.wave.api.Blip;
+import com.google.wave.api.JsonRpcConstant.ParamsProperty;
 import com.google.wave.api.JsonRpcResponse;
-import com.google.wave.api.Markup;
 import com.google.wave.api.OperationQueue;
 import com.google.wave.api.OperationRequest;
 import com.google.wave.api.ProtocolVersion;
@@ -36,7 +37,6 @@
     private final String domain;
     private final OperationServiceRegistry operationRegistry;
     private final ParticipantUtils participantUtils;
-
     private final WaveletProvider waveletProvider;
 
     @Inject
@@ -53,24 +53,43 @@
     }
 
     @Override
-    public void createWave(final String username, final String message) {
-        final ParticipantId user = participantUtils.of(username);
+    public String createWave(final String message, final String... participantArray) {
+        String newWaveId = null;
+        final Set<String> participants = new HashSet<String>();
+        for (final String participant : participantArray) {
+            participants.add(participantUtils.of(participant).toString());
+        }
+        final ParticipantId user = participantUtils.of(participantArray[0]);
         final OperationQueue opQueue = new OperationQueue();
-        final Set<String> participants = new HashSet<String>();
-        participants.add(user.toString());
         final Wavelet newWavelet = opQueue.createWavelet(domain, participants);
-        // newWavelet.getRootBlip().append(Markup.of(message));
-        opQueue.appendMarkupToDocument(newWavelet.getRootBlip(), Markup.of(message).getMarkup());
-
+        // opQueue.appendMarkupToDocument(newWavelet.getRootBlip(),
+        // Markup.of(message).getMarkup());
+        // opQueue.appendBlipToWavelet(newWavelet,
+        // Markup.of(message).getMarkup());
+        //
+        final Blip rootBlip = newWavelet.getRootBlip();
+        // rootBlip.append(Markup.of(message));
+        rootBlip.append(new com.google.wave.api.Markup("<b>kk</b>"));
+        // opQueue.modifyDocument(rootBlip).addParameter(
+        // Parameter.of(ParamsProperty.MODIFY_ACTION, ModifyHow.INSERT_AFTER));
         final OperationContextImpl context = new OperationContextImpl(waveletProvider,
                 converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
-
         for (final OperationRequest req : opQueue.getPendingOperations()) {
             OperationUtil.executeOperation(req, operationRegistry, context, user);
             final String reqId = req.getId();
             final JsonRpcResponse response = context.getResponse(reqId);
-            if (response != null && response.isError()) {
-                onFailure(context.getResponse(reqId).getErrorMessage());
+            if (response != null) {
+                if (response.isError()) {
+                    onFailure(context.getResponse(reqId).getErrorMessage());
+                } else {
+                    final Object responseWaveId = response.getData().get(ParamsProperty.WAVE_ID);
+                    if (responseWaveId != null) {
+                        // This is serialized use
+                        // ApiIdSerializer.instance().deserialiseWaveId (see
+                        // WaveService)
+                        newWaveId = (String) responseWaveId;
+                    }
+                }
             }
         }
         OperationUtil.submitDeltas(context, waveletProvider, new SubmitRequestListener() {
@@ -84,6 +103,7 @@
                 LOG.info("Wave creation success: " + arg1);
             }
         });
+        return newWaveId;
     }
 
     private void onFailure(final String message) {

Deleted: trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializationTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializationTest.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializationTest.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -1,125 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server.integration;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.List;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.ourproject.kune.chat.server.ChatServerTool;
-
-import cc.kune.core.server.content.ContainerManager;
-import cc.kune.core.server.content.ContentManager;
-import cc.kune.core.server.manager.GroupManager;
-import cc.kune.core.server.manager.I18nCountryManager;
-import cc.kune.core.server.manager.I18nLanguageManager;
-import cc.kune.core.server.manager.I18nTranslationManager;
-import cc.kune.core.server.manager.LicenseManager;
-import cc.kune.docs.server.DocumentServerTool;
-import cc.kune.domain.Container;
-import cc.kune.domain.Content;
-import cc.kune.domain.Group;
-import cc.kune.domain.ToolConfiguration;
-
-import com.google.inject.Inject;
-import com.google.inject.persist.Transactional;
-
-public class DatabaseInitializationTest {
-    @Inject
-    GroupManager groupManager;
-    @Inject
-    LicenseManager licenseManager;
-    @Inject
-    I18nTranslationManager transManager;
-    @Inject
-    I18nLanguageManager languageManager;
-    @Inject
-    I18nCountryManager countryManager;
-    @Inject
-    ContentManager contentManager;
-    @Inject
-    ContainerManager containerManager;
-
-    private Group defaultGroup;
-
-    /**
-     * If this test fails, see database configuration in INSTALL (the collation
-     * part) and http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
-     * 
-     * Title must be created as something like `title` varchar(255) collate
-     * utf8_bin default NULL
-     * 
-     */
-    @Test
-    public void caseSensitive() {
-        final Content defaultContent = defaultGroup.getDefaultContent();
-        assertTrue(contentManager.findIfExistsTitle(defaultContent.getContainer(), "Welcome to kune demo"));
-        assertTrue(!contentManager.findIfExistsTitle(defaultContent.getContainer(), "welcome to kune Demo"));
-        assertTrue(!contentManager.findIfExistsTitle(defaultContent.getContainer(), "Welcome to kune demo "));
-    }
-
-    @Transactional
-    @Before
-    public void init() {
-        new IntegrationTestHelper(this);
-        defaultGroup = groupManager.getSiteDefaultGroup();
-    }
-
-    @Test
-    public void testDefaultContentAndLicenses() {
-        assertNotNull(defaultGroup.getDefaultContent());
-        assertTrue(licenseManager.getAll().size() > 0);
-        assertNotNull(defaultGroup.getDefaultLicense());
-    }
-
-    @Test
-    public void testDefaultDocumentContent() {
-        final Content content = defaultGroup.getDefaultContent();
-        assertEquals(DocumentServerTool.TYPE_DOCUMENT, content.getTypeId());
-        final Container rootDocFolder = content.getContainer();
-        assertEquals(true, rootDocFolder.isRoot());
-    }
-
-    @Test
-    public void testI18n() {
-        assertNotNull(countryManager.find(Long.valueOf(75)));
-        assertNotNull(languageManager.findByCode("en"));
-        assertNotNull(languageManager.find(Long.valueOf(1819)));
-    }
-
-    @Test
-    public void testToolConfiguration() {
-        assertNotNull(defaultGroup);
-        final ToolConfiguration docToolConfig = defaultGroup.getToolConfiguration(DocumentServerTool.NAME);
-        assertNotNull(docToolConfig);
-        assertTrue(docToolConfig.isEnabled());
-        final ToolConfiguration chatToolConfig = defaultGroup.getToolConfiguration(ChatServerTool.NAME);
-        assertNotNull(chatToolConfig);
-        assertTrue(chatToolConfig.isEnabled());
-        final List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
-        assertNotNull(enabledTools);
-        assertTrue(enabledTools.size() > 0);
-    }
-
-}

Copied: trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java (from rev 1306, trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializationTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java	                        (rev 0)
+++ trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -0,0 +1,109 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.integration;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.chat.server.ChatServerTool;
+
+import cc.kune.core.server.content.ContainerManager;
+import cc.kune.core.server.content.ContentManager;
+import cc.kune.core.server.manager.GroupManager;
+import cc.kune.core.server.manager.I18nCountryManager;
+import cc.kune.core.server.manager.I18nLanguageManager;
+import cc.kune.core.server.manager.I18nTranslationManager;
+import cc.kune.core.server.manager.LicenseManager;
+import cc.kune.docs.server.DocumentServerTool;
+import cc.kune.domain.Container;
+import cc.kune.domain.Content;
+import cc.kune.domain.Group;
+import cc.kune.domain.ToolConfiguration;
+
+import com.google.inject.Inject;
+import com.google.inject.persist.Transactional;
+
+public class DatabaseInitializerTest {
+    @Inject
+    ContainerManager containerManager;
+    @Inject
+    ContentManager contentManager;
+    @Inject
+    I18nCountryManager countryManager;
+    private Group defaultGroup;
+    @Inject
+    GroupManager groupManager;
+    @Inject
+    I18nLanguageManager languageManager;
+    @Inject
+    LicenseManager licenseManager;
+
+    @Inject
+    I18nTranslationManager transManager;
+
+    @Transactional
+    @Before
+    public void init() {
+        new IntegrationTestHelper(this);
+        defaultGroup = groupManager.getSiteDefaultGroup();
+    }
+
+    @Test
+    public void testDefaultContentAndLicenses() {
+        assertNotNull(defaultGroup.getDefaultContent());
+        assertTrue(licenseManager.getAll().size() > 0);
+        assertNotNull(defaultGroup.getDefaultLicense());
+    }
+
+    @Test
+    public void testDefaultDocumentContent() {
+        final Content content = defaultGroup.getDefaultContent();
+        assertEquals(DocumentServerTool.TYPE_DOCUMENT, content.getTypeId());
+        final Container rootDocFolder = content.getContainer();
+        assertEquals(true, rootDocFolder.isRoot());
+    }
+
+    @Test
+    public void testI18n() {
+        assertNotNull(countryManager.find(Long.valueOf(75)));
+        assertNotNull(languageManager.findByCode("en"));
+        assertNotNull(languageManager.find(Long.valueOf(1819)));
+    }
+
+    @Test
+    public void testToolConfiguration() {
+        assertNotNull(defaultGroup);
+        final ToolConfiguration docToolConfig = defaultGroup.getToolConfiguration(DocumentServerTool.NAME);
+        assertNotNull(docToolConfig);
+        assertTrue(docToolConfig.isEnabled());
+        final ToolConfiguration chatToolConfig = defaultGroup.getToolConfiguration(ChatServerTool.NAME);
+        assertNotNull(chatToolConfig);
+        assertTrue(chatToolConfig.isEnabled());
+        final List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
+        assertNotNull(enabledTools);
+        assertTrue(enabledTools.size() > 0);
+    }
+
+}

Copied: trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java (from rev 1306, trunk/src/test/java/cc/kune/core/server/manager/UserManagerTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java	                        (rev 0)
+++ trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -0,0 +1,146 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.manager;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.TimeZone;
+
+import javax.persistence.PersistenceException;
+
+import org.apache.lucene.queryParser.ParseException;
+import org.hibernate.validator.InvalidStateException;
+import org.junit.Test;
+
+import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.I18nNotFoundException;
+import cc.kune.core.server.PersistencePreLoadedDataTest;
+import cc.kune.core.server.manager.impl.SearchResult;
+import cc.kune.core.shared.domain.UserSNetVisibility;
+import cc.kune.domain.Group;
+import cc.kune.domain.User;
+
+import com.google.inject.Inject;
+
+public class UserManagerDefaultTest extends PersistencePreLoadedDataTest {
+    @Inject
+    Group groupFinder;
+
+    @Test
+    public void emailCorrect() {
+        user = new User("test1", "test1 name", "test at example.com", "some passwd", "somediggest".getBytes(),
+                "some salt".getBytes(), english, gb, getTimeZone());
+        persist(user);
+    }
+
+    @Test(expected = PersistenceException.class)
+    public void emailEmpty() {
+        user = new User("test1", "test1 name", null, "some passwd", "somediggest".getBytes(), "some salt".getBytes(),
+                english, gb, getTimeZone());
+        persist(user);
+    }
+
+    @Test(expected = InvalidStateException.class)
+    public void emailIncorrect() {
+        user = new User("test1", "test1 name", "falseEmail@", "some passwd", "somediggest".getBytes(),
+                "some salt".getBytes(), english, gb, getTimeZone());
+        persist(user);
+    }
+
+    private TimeZone getTimeZone() {
+        return TimeZone.getDefault();
+    }
+
+    @Test
+    public void loginIncorrect() {
+        final User result = userManager.login("test", "test");
+        assertNull(result);
+    }
+
+    @Test
+    public void loginWithEmailCorrect() {
+        final User result = userManager.login(USER_EMAIL, USER_PASSWORD);
+        assertNotNull(result.getId());
+    }
+
+    @Test
+    public void loginWithNickCorrect() {
+        final User result = userManager.login(USER_SHORT_NAME, USER_PASSWORD);
+        assertNotNull(result.getId());
+    }
+
+    @Test(expected = InvalidStateException.class)
+    public void passwdLengthIncorrect() {
+        user = new User("test1", "test1 name", "test at example.com", "pass", "diggest".getBytes(), "salt".getBytes(),
+                english, gb, getTimeZone());
+        persist(user);
+    }
+
+    /**
+     * This was not working:
+     * http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
+     */
+    @Test(expected = GroupNameInUseException.class)
+    public void testUserExist() throws I18nNotFoundException {
+        final User user1 = userManager.createUser("test", "test 1 name", "test1 at example.com", "some password", "en",
+                "GB", "GMT");
+        persist(user1);
+        final User user2 = userManager.createUser("test", "test 1 name", "test1 at example.com", "some password", "en",
+                "GB", "GMT");
+        persist(user2);
+    }
+
+    @Test(expected = InvalidStateException.class)
+    public void userNameLengthIncorrect() {
+        user = new User("test1", "te", "test at example.com", "some passwd", "diggest".getBytes(), "salt".getBytes(),
+                english, gb, getTimeZone());
+        persist(user);
+    }
+
+    @Test
+    public void userSearch() throws Exception, ParseException {
+        userManager.reIndex();
+        final SearchResult<User> result = userManager.search(USER_SHORT_NAME);
+        assertEquals(1, result.getSize());
+        assertEquals(USER_SHORT_NAME, result.getList().get(0).getShortName());
+        rollbackTransaction();
+    }
+
+    @Test(expected = InvalidStateException.class)
+    public void userShortNameIncorrect() {
+        user = new User("test1A", "test1 name", "test at example.com", "some passwd", "diggest".getBytes(),
+                "salt".getBytes(), english, gb, getTimeZone());
+        persist(user);
+    }
+
+    @Test
+    public void visibilityPersist() {
+        user = new User("test1", "test1 name", "test at example.com", "some passwd", "somediggest".getBytes(),
+                "some salt".getBytes(), english, gb, getTimeZone());
+        for (final UserSNetVisibility visibility : UserSNetVisibility.values()) {
+            user.setSNetVisibility(visibility);
+            persist(user);
+            assertEquals(user.getSNetVisibility(), visibility);
+        }
+    }
+
+}

Deleted: trunk/src/test/java/cc/kune/core/server/manager/UserManagerTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/UserManagerTest.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/test/java/cc/kune/core/server/manager/UserManagerTest.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -1,146 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server.manager;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.util.TimeZone;
-
-import javax.persistence.PersistenceException;
-
-import org.apache.lucene.queryParser.ParseException;
-import org.hibernate.validator.InvalidStateException;
-import org.junit.Test;
-
-import cc.kune.core.client.errors.GroupNameInUseException;
-import cc.kune.core.client.errors.I18nNotFoundException;
-import cc.kune.core.server.PersistencePreLoadedDataTest;
-import cc.kune.core.server.manager.impl.SearchResult;
-import cc.kune.core.shared.domain.UserSNetVisibility;
-import cc.kune.domain.Group;
-import cc.kune.domain.User;
-
-import com.google.inject.Inject;
-
-public class UserManagerTest extends PersistencePreLoadedDataTest {
-    @Inject
-    Group groupFinder;
-
-    @Test
-    public void emailCorrect() {
-        user = new User("test1", "test1 name", "test at example.com", "some passwd", "somediggest".getBytes(),
-                "some salt".getBytes(), english, gb, getTimeZone());
-        persist(user);
-    }
-
-    @Test(expected = PersistenceException.class)
-    public void emailEmpty() {
-        user = new User("test1", "test1 name", null, "some passwd", "somediggest".getBytes(), "some salt".getBytes(),
-                english, gb, getTimeZone());
-        persist(user);
-    }
-
-    @Test(expected = InvalidStateException.class)
-    public void emailIncorrect() {
-        user = new User("test1", "test1 name", "falseEmail@", "some passwd", "somediggest".getBytes(),
-                "some salt".getBytes(), english, gb, getTimeZone());
-        persist(user);
-    }
-
-    private TimeZone getTimeZone() {
-        return TimeZone.getDefault();
-    }
-
-    @Test
-    public void loginIncorrect() {
-        final User result = userManager.login("test", "test");
-        assertNull(result);
-    }
-
-    @Test
-    public void loginWithEmailCorrect() {
-        final User result = userManager.login(USER_EMAIL, USER_PASSWORD);
-        assertNotNull(result.getId());
-    }
-
-    @Test
-    public void loginWithNickCorrect() {
-        final User result = userManager.login(USER_SHORT_NAME, USER_PASSWORD);
-        assertNotNull(result.getId());
-    }
-
-    @Test(expected = InvalidStateException.class)
-    public void passwdLengthIncorrect() {
-        user = new User("test1", "test1 name", "test at example.com", "pass", "diggest".getBytes(), "salt".getBytes(),
-                english, gb, getTimeZone());
-        persist(user);
-    }
-
-    /**
-     * This was not working:
-     * http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
-     */
-    @Test(expected = GroupNameInUseException.class)
-    public void testUserExist() throws I18nNotFoundException {
-        final User user1 = userManager.createUser("test", "test 1 name", "test1 at example.com", "some password", "en",
-                "GB", "GMT");
-        persist(user1);
-        final User user2 = userManager.createUser("test", "test 1 name", "test1 at example.com", "some password", "en",
-                "GB", "GMT");
-        persist(user2);
-    }
-
-    @Test(expected = InvalidStateException.class)
-    public void userNameLengthIncorrect() {
-        user = new User("test1", "te", "test at example.com", "some passwd", "diggest".getBytes(), "salt".getBytes(),
-                english, gb, getTimeZone());
-        persist(user);
-    }
-
-    @Test
-    public void userSearch() throws Exception, ParseException {
-        userManager.reIndex();
-        final SearchResult<User> result = userManager.search(USER_SHORT_NAME);
-        assertEquals(1, result.getSize());
-        assertEquals(USER_SHORT_NAME, result.getList().get(0).getShortName());
-        rollbackTransaction();
-    }
-
-    @Test(expected = InvalidStateException.class)
-    public void userShortNameIncorrect() {
-        user = new User("test1A", "test1 name", "test at example.com", "some passwd", "diggest".getBytes(),
-                "salt".getBytes(), english, gb, getTimeZone());
-        persist(user);
-    }
-
-    @Test
-    public void visibilityPersist() {
-        user = new User("test1", "test1 name", "test at example.com", "some passwd", "somediggest".getBytes(),
-                "some salt".getBytes(), english, gb, getTimeZone());
-        for (final UserSNetVisibility visibility : UserSNetVisibility.values()) {
-            user.setSNetVisibility(visibility);
-            persist(user);
-            assertEquals(user.getSNetVisibility(), visibility);
-        }
-    }
-
-}

Modified: trunk/src/test/java/cc/kune/docs/server/DocumentServerToolTest.java
===================================================================
--- trunk/src/test/java/cc/kune/docs/server/DocumentServerToolTest.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/test/java/cc/kune/docs/server/DocumentServerToolTest.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -33,7 +33,7 @@
 
     @Before
     public void before() {
-        serverTool = new DocumentServerTool(null, null, null, null, null);
+        serverTool = new DocumentServerTool(null, null, null, null);
     }
 
     @Test

Modified: trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java	2011-04-13 09:06:44 UTC (rev 1310)
+++ trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java	2011-04-13 15:41:45 UTC (rev 1311)
@@ -1,5 +1,7 @@
 package cc.kune.wave.server;
 
+import static org.junit.Assert.assertNotNull;
+
 import java.io.IOException;
 
 import org.junit.Before;
@@ -25,6 +27,6 @@
     @Test
     public void createWave() throws DefaultException, IOException {
         doLogin();
-        manager.createWave(getSiteAdminShortName(), "testing");
+        assertNotNull(manager.createWave("testing", getSiteAdminShortName()));
     }
 }




More information about the kune-commits mailing list