[kune-commits] r1388 - in trunk: . src/main/java/cc/kune/chat/client src/main/java/cc/kune/core/client/auth src/main/java/cc/kune/core/client/resources src/main/java/cc/kune/core/server/content src/main/java/cc/kune/core/server/rack/filters src/main/java/cc/kune/wave/server src/main/resources src/main/resources/META-INF src/test/java/cc/kune/core/server src/test/java/cc/kune/core/server/integration src/test/java/cc/kune/core/server/integration/content

Vicente J. Ruiz Jurado vjrj_ at ourproject.org
Sun May 15 12:01:34 CEST 2011


Author: vjrj_
Date: 2011-05-15 12:01:33 +0200 (Sun, 15 May 2011)
New Revision: 1388

Added:
   trunk/logs/
Modified:
   trunk/.classpath
   trunk/pom.xml
   trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
   trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java
   trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java
   trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java
   trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
   trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java
   trunk/src/main/java/cc/kune/wave/server/CustomSettingsBinder.java
   trunk/src/main/resources/META-INF/persistence.xml
   trunk/src/main/resources/log4j.dev.properties
   trunk/src/main/resources/log4j.properties
   trunk/src/test/java/cc/kune/core/server/TestHelper.java
   trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
   trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java
Log:
Some fixes, better logger conf and:
NEW - # 53: Add Selenium Framework testing 
http://kune.ourproject.org/issues/ticket/53

Modified: trunk/.classpath
===================================================================
--- trunk/.classpath	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/.classpath	2011-05-15 10:01:33 UTC (rev 1388)
@@ -25,12 +25,14 @@
   <classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" sourcepath="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.2/commons-fileupload-1.2.jar" sourcepath="M2_REPO/commons-fileupload/commons-fileupload/1.2/commons-fileupload-1.2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar" sourcepath="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.0-SNAPSHOT/communication-src-0.3.0-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.0-SNAPSHOT/concurrencycontrol-src-0.3.0-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.jar"/>
+  <classpathentry kind="var" path="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5.jar" sourcepath="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0.jar" sourcepath="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar" sourcepath="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA-sources.jar"/>
@@ -65,6 +67,7 @@
   <classpathentry kind="var" path="M2_REPO/com/extjs/gxt/2.2.1/gxt-2.2.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.20070617/h2-1.0.20070617.jar"/>
   <classpathentry kind="var" path="M2_REPO/com/calclab/emite/hablar/r1697/hablar-r1697.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-all/1.1/hamcrest-all-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-all/1.1/hamcrest-all-1.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA-sources.jar"/>
@@ -74,12 +77,17 @@
   <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/htmlunit/2.7/htmlunit-2.7.jar" sourcepath="M2_REPO/net/sourceforge/htmlunit/htmlunit/2.7/htmlunit-2.7-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/htmlunit-core-js/2.7/htmlunit-core-js-2.7.jar" sourcepath="M2_REPO/net/sourceforge/htmlunit/htmlunit-core-js/2.7/htmlunit-core-js-2.7-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/com/beust/jcommander/1.5/jcommander-1.5.jar" sourcepath="M2_REPO/com/beust/jcommander/1.5/jcommander-1.5-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2.jar" sourcepath="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jmagick/jmagick/6.2.6-0/jmagick-6.2.6-0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/net/java/dev/jna/jna/3.2.2/jna-3.2.2.jar" sourcepath="M2_REPO/net/java/dev/jna/jna/3.2.2/jna-3.2.2-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jruby/jruby-complete/1.2.0/jruby-complete-1.2.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jruby/rack/jruby-rack/0.9.4/jruby-rack-0.9.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/json/json/20080701/json-20080701.jar" sourcepath="M2_REPO/org/json/json/20080701/json-20080701-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15.jar" sourcepath="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47.jar" sourcepath="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801.jar"/>
@@ -101,19 +109,34 @@
   <classpathentry kind="var" path="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar" sourcepath="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.0-SNAPSHOT/model-src-0.3.0-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.jar"/>
+  <classpathentry kind="var" path="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.14/nekohtml-1.9.14.jar" sourcepath="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.14/nekohtml-1.9.14-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar" sourcepath="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.0-SNAPSHOT/proto-msg-0.3.0-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/w3c/css/sac/1.3/sac-1.3.jar" sourcepath="M2_REPO/org/w3c/css/sac/1.3/sac-1.3-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium/2.0a4/selenium-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium/2.0a4/selenium-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-chrome-driver/2.0a4/selenium-chrome-driver-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-chrome-driver/2.0a4/selenium-chrome-driver-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-common/2.0a4/selenium-common-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-common/2.0a4/selenium-common-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-firefox-driver/2.0a4/selenium-firefox-driver-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-firefox-driver/2.0a4/selenium-firefox-driver-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-htmlunit-driver/2.0a4/selenium-htmlunit-driver-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-htmlunit-driver/2.0a4/selenium-htmlunit-driver-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-ie-driver/2.0a4/selenium-ie-driver-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-ie-driver/2.0a4/selenium-ie-driver-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-remote-client/2.0a4/selenium-remote-client-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-remote-client/2.0a4/selenium-remote-client-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-remote-common/2.0a4/selenium-remote-common-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-remote-common/2.0a4/selenium-remote-common-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-support/2.0a4/selenium-support-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-support/2.0a4/selenium-support-2.0a4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xalan/serializer/2.7.1/serializer-2.7.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jivesoftware/smack/3.1.0/smack-3.1.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/jivesoftware/smackx/3.1.0/smackx-3.1.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/>
   <classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/testng/testng/5.14/testng-5.14.jar" sourcepath="M2_REPO/org/testng/testng/5.14/testng-5.14-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.0-SNAPSHOT/util-src-0.3.0-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.0-SNAPSHOT/waveinabox-server-0.3-0.3.0-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1.jar" sourcepath="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
   <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar" sourcepath="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2-sources.jar"/>

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/pom.xml	2011-05-15 10:01:33 UTC (rev 1388)
@@ -511,12 +511,31 @@
       <!-- =roo -->
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.seleniumhq.selenium</groupId>
+      <artifactId>selenium</artifactId>
+      <version>2.0a4</version>
+      <exclusions>
+        <exclusion>
+          <groupId>com.google.collections</groupId>
+          <artifactId>google-collections</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.testng</groupId>
+      <artifactId>testng</artifactId>
+      <version>5.14</version>
+      <scope>test</scope>
+    </dependency>
+    <!-- If you want to start a selenium server, you will need the following
+      dependency: -->
     <!-- <dependency> -->
-    <!-- <groupId>org.openqa.selenium.client-drivers</groupId> -->
-    <!-- <artifactId>selenium-java-client-driver</artifactId> -->
-    <!-- <version>1.0-beta-1</version> -->
-    <!-- <scope>test</scope> -->
+    <!-- <groupId>org.seleniumhq.selenium</groupId> -->
+    <!-- <artifactId>selenium-server</artifactId> -->
+    <!-- <version>2.0a4</version> -->
     <!-- </dependency> -->
+
     <!-- public side -->
     <dependency>
       <groupId>org.jruby.rack</groupId>
@@ -740,7 +759,7 @@
             </systemProperty>
             <systemProperty>
               <key>DEBUG</key>
-              <value>true</value>
+              <value>false</value>
             </systemProperty>
             <systemProperty>
               <!-- <key>org.eclipse.jetty.util.log.DEBUG</key> -->

Modified: trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -33,29 +33,26 @@
  * Handles the presentation of unattended chats
  */
 public class KuneUnattendedPresenter {
-    private boolean active;
+  private boolean active;
 
-    public KuneUnattendedPresenter(final EventBus eventBus, final HablarEventBus hablarEventBus,
-            final SignalPreferences preferences, final UnattendedPagesManager unattendedManager,
-            final ChatClientAction action) {
-        active = false;
-        hablarEventBus.addHandler(UnattendedChatsChangedEvent.TYPE, new UnattendedChatsChangedHandler() {
-            @Override
-            public void handleUnattendedChatChange(final UnattendedChatsChangedEvent event) {
-                final int unattendedChatsCount = unattendedManager.getSize();
-                if (unattendedChatsCount > 0 && active == false) {
-                    active = true;
-                    SndClickEvent.fire(eventBus);
-                    action.setBlink(true);
+  public KuneUnattendedPresenter(final EventBus eventBus, final HablarEventBus hablarEventBus,
+      final SignalPreferences preferences, final UnattendedPagesManager unattendedManager,
+      final ChatClientAction action) {
+    active = false;
+    hablarEventBus.addHandler(UnattendedChatsChangedEvent.TYPE, new UnattendedChatsChangedHandler() {
+      @Override
+      public void handleUnattendedChatChange(final UnattendedChatsChangedEvent event) {
+        final int unattendedChatsCount = unattendedManager.getSize();
+        if (unattendedChatsCount > 0 && active == false) {
+          active = true;
+          SndClickEvent.fire(eventBus);
+          action.setBlink(true);
 
-                } else if (unattendedChatsCount == 0 && active == true) {
-                    action.setBlink(false);
-                    active = false;
-                }
-            }
-
-        });
-
-    }
-
+        } else if (unattendedChatsCount == 0 && active == true) {
+          action.setBlink(false);
+          active = false;
+        }
+      }
+    });
+  }
 }

Modified: trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -30,99 +30,99 @@
 
 public class RegisterForm extends DefaultForm {
 
-    public static final String COUNTRY_FIELD = "k-urf-country-f";
-    public static final String EMAIL_FIELD = "k-urf-email-f";
-    public static final String LANG_FIELD = "k-urf-lang-f";
-    public static final String LONGNAME_FIELD = "k-urf-long_name-f";
-    public static final String NICK_FIELD = "k-urf-nick-f";
-    public static final String NOPERSONALHOMEPAGE_ID = "k-urf-nphp-id";
-    public static final String PASSWORD_FIELD = "k-urf-password-f";
-    public static final String PASSWORD_FIELD_DUP = "k-urf-passwordDup-f";
-    public static final String TIMEZONE_FIELD = "k-urf-timezone-f";
-    public static final String WANNAPERSONALHOMEPAGE_ID = "k-urf-wphp-id";
-    public static final String WANTHOMEPAGE_FIELD = "k-urf-wphp-f";
+  public static final String COUNTRY_FIELD = "k-urf-country-f";
+  public static final String EMAIL_FIELD = "k-urf-email-f";
+  public static final String LANG_FIELD = "k-urf-lang-f";
+  public static final String LONGNAME_FIELD = "k-urf-long_name-f";
+  public static final String NICK_FIELD = "k-urf-nick-f";
+  public static final String NOPERSONALHOMEPAGE_ID = "k-urf-nphp-id";
+  public static final String PASSWORD_FIELD = "k-urf-password-f";
+  public static final String PASSWORD_FIELD_DUP = "k-urf-passwordDup-f";
+  public static final String TIMEZONE_FIELD = "k-urf-timezone-f";
+  public static final String WANNAPERSONALHOMEPAGE_ID = "k-urf-wphp-id";
+  public static final String WANTHOMEPAGE_FIELD = "k-urf-wphp-f";
 
-    private final TextField<String> emailRegField;
-    private final TextField<String> longNameRegField;
-    private final TextField<String> passwdRegField;
-    private final TextField<String> shortNameRegField;
+  private final TextField<String> emailRegField;
+  private final TextField<String> longNameRegField;
+  private final TextField<String> passwdRegField;
+  private final TextField<String> shortNameRegField;
 
-    public RegisterForm(final I18nTranslationService i18n, final Session session) {
-        super.addStyleName("kune-Margin-Large-l");
+  public RegisterForm(final I18nTranslationService i18n, final Session session) {
+    super.addStyleName("kune-Margin-Large-l");
 
-        shortNameRegField = new TextField<String>();
-        shortNameRegField.setTabIndex(1);
-        shortNameRegField.setFieldLabel(i18n.t("Nickname"));
-        shortNameRegField.setName(NICK_FIELD);
-        shortNameRegField.setWidth(DEF_SMALL_FIELD_WIDTH);
-        shortNameRegField.setAllowBlank(false);
-        shortNameRegField.setMinLength(3);
-        shortNameRegField.setMaxLength(15);
-        shortNameRegField.setRegex("^[a-z0-9]+$");
-        shortNameRegField.getMessages().setMinLengthText(i18n.t(CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15));
-        shortNameRegField.getMessages().setMaxLengthText(i18n.t(CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15));
-        shortNameRegField.getMessages().setRegexText(i18n.t(CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15));
-        shortNameRegField.setValidationDelay(1000);
-        add(shortNameRegField);
+    shortNameRegField = new TextField<String>();
+    shortNameRegField.setTabIndex(1);
+    shortNameRegField.setFieldLabel(i18n.t("Username"));
+    shortNameRegField.setName(NICK_FIELD);
+    shortNameRegField.setWidth(DEF_SMALL_FIELD_WIDTH);
+    shortNameRegField.setAllowBlank(false);
+    shortNameRegField.setMinLength(3);
+    shortNameRegField.setMaxLength(15);
+    shortNameRegField.setRegex("^[a-z0-9]+$");
+    shortNameRegField.getMessages().setMinLengthText(i18n.t(CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15));
+    shortNameRegField.getMessages().setMaxLengthText(i18n.t(CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15));
+    shortNameRegField.getMessages().setRegexText(i18n.t(CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15));
+    shortNameRegField.setValidationDelay(1000);
+    add(shortNameRegField);
 
-        longNameRegField = new TextField<String>();
-        longNameRegField.setTabIndex(2);
-        longNameRegField.setFieldLabel(i18n.t("Full Name"));
-        longNameRegField.setName(LONGNAME_FIELD);
-        longNameRegField.setWidth(DEF_FIELD_WIDTH);
-        longNameRegField.setAllowBlank(false);
-        longNameRegField.setMinLength(3);
-        longNameRegField.setMaxLength(50);
-        // longNameRegField.setValidationEvent(false);
-        longNameRegField.setId(LONGNAME_FIELD);
-        add(longNameRegField);
+    longNameRegField = new TextField<String>();
+    longNameRegField.setTabIndex(2);
+    longNameRegField.setFieldLabel(i18n.t("Name"));
+    longNameRegField.setName(LONGNAME_FIELD);
+    longNameRegField.setWidth(DEF_FIELD_WIDTH);
+    longNameRegField.setAllowBlank(false);
+    longNameRegField.setMinLength(3);
+    longNameRegField.setMaxLength(50);
+    // longNameRegField.setValidationEvent(false);
+    longNameRegField.setId(LONGNAME_FIELD);
+    add(longNameRegField);
 
-        passwdRegField = new TextField<String>();
-        passwdRegField.setTabIndex(3);
-        passwdRegField.setFieldLabel(i18n.t("Password"));
-        passwdRegField.setName(PASSWORD_FIELD);
-        passwdRegField.setPassword(true);
-        passwdRegField.setAllowBlank(false);
-        passwdRegField.setMinLength(6);
-        passwdRegField.setMaxLength(40);
-        passwdRegField.getMessages().setMinLengthText(i18n.t(CoreMessages.PASSWD_MUST_BE_BETWEEN_6_AND_40));
-        passwdRegField.getMessages().setMaxLengthText(i18n.t(CoreMessages.PASSWD_MUST_BE_BETWEEN_6_AND_40));
-        passwdRegField.setWidth(DEF_MEDIUM_FIELD_WIDTH);
-        passwdRegField.setValidationDelay(1000);
-        passwdRegField.setId(PASSWORD_FIELD);
-        add(passwdRegField);
+    passwdRegField = new TextField<String>();
+    passwdRegField.setTabIndex(3);
+    passwdRegField.setFieldLabel(i18n.t("Password"));
+    passwdRegField.setName(PASSWORD_FIELD);
+    passwdRegField.setPassword(true);
+    passwdRegField.setAllowBlank(false);
+    passwdRegField.setMinLength(6);
+    passwdRegField.setMaxLength(40);
+    passwdRegField.getMessages().setMinLengthText(i18n.t(CoreMessages.PASSWD_MUST_BE_BETWEEN_6_AND_40));
+    passwdRegField.getMessages().setMaxLengthText(i18n.t(CoreMessages.PASSWD_MUST_BE_BETWEEN_6_AND_40));
+    passwdRegField.setWidth(DEF_MEDIUM_FIELD_WIDTH);
+    passwdRegField.setValidationDelay(1000);
+    passwdRegField.setId(PASSWORD_FIELD);
+    add(passwdRegField);
 
-        // http://www.sencha.com/forum/showthread.php?49702-GXT-Form-Validation
-        emailRegField = new TextField<String>();
-        emailRegField.setTabIndex(5);
-        emailRegField.setFieldLabel(i18n.t("Email"));
-        emailRegField.setName(EMAIL_FIELD);
-        emailRegField.setRegex(TextUtils.EMAIL_REGEXP);
-        emailRegField.getMessages().setRegexText(i18n.t("This is not a valid email"));
-        emailRegField.setWidth(DEF_MEDIUM_FIELD_WIDTH);
-        emailRegField.setAllowBlank(false);
-        emailRegField.setValidationDelay(1000);
-        emailRegField.setId(EMAIL_FIELD);
-        add(emailRegField);
-    }
+    // http://www.sencha.com/forum/showthread.php?49702-GXT-Form-Validation
+    emailRegField = new TextField<String>();
+    emailRegField.setTabIndex(5);
+    emailRegField.setFieldLabel(i18n.t("Email"));
+    emailRegField.setName(EMAIL_FIELD);
+    emailRegField.setRegex(TextUtils.EMAIL_REGEXP);
+    emailRegField.getMessages().setRegexText(i18n.t("This is not a valid email"));
+    emailRegField.setWidth(DEF_MEDIUM_FIELD_WIDTH);
+    emailRegField.setAllowBlank(false);
+    emailRegField.setValidationDelay(1000);
+    emailRegField.setId(EMAIL_FIELD);
+    add(emailRegField);
+  }
 
-    public String getEmail() {
-        return emailRegField.getValue();
-    }
+  public String getEmail() {
+    return emailRegField.getValue();
+  }
 
-    public String getLongName() {
-        return longNameRegField.getValue();
-    }
+  public String getLongName() {
+    return longNameRegField.getValue();
+  }
 
-    public String getRegisterPassword() {
-        return passwdRegField.getValue();
-    }
+  public String getRegisterPassword() {
+    return passwdRegField.getValue();
+  }
 
-    public String getShortName() {
-        return shortNameRegField.getValue();
-    }
+  public String getShortName() {
+    return shortNameRegField.getValue();
+  }
 
-    public Field<String> getShortNameField() {
-        return shortNameRegField;
-    }
+  public Field<String> getShortNameField() {
+    return shortNameRegField;
+  }
 }

Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -30,75 +30,75 @@
 import com.extjs.gxt.ui.client.widget.form.TextField;
 
 public class SignInForm extends DefaultForm {
-    public static final String NICKOREMAIL_FIELD = "kune-sif-nkf";
-    public static final String PASSWORD_FIELD = "kune-sif-psf";
+  public static final String NICKOREMAIL_FIELD = "kune-sif-nkf";
+  public static final String PASSWORD_FIELD = "kune-sif-psf";
 
-    private final TextField<String> loginNickOrEmailField;
-    private final TextField<String> loginPassField;
-    private OnAcceptCallback onAcceptCallback;
+  private final TextField<String> loginNickOrEmailField;
+  private final TextField<String> loginPassField;
+  private OnAcceptCallback onAcceptCallback;
 
-    public SignInForm(final I18nTranslationService i18n) {
-        super.addStyleName("kune-Margin-Large-trbl");
+  public SignInForm(final I18nTranslationService i18n) {
+    super.addStyleName("kune-Margin-Large-trbl");
 
-        loginNickOrEmailField = new TextField<String>();
-        loginNickOrEmailField.setFieldLabel(i18n.t("Nickname"));
-        loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
-        loginNickOrEmailField.setWidth(DEF_SMALL_FIELD_WIDTH);
-        loginNickOrEmailField.setAllowBlank(false);
-        loginNickOrEmailField.setValidationDelay(1000);
-        loginNickOrEmailField.setId(NICKOREMAIL_FIELD);
-        loginNickOrEmailField.setTabIndex(100);
-        super.add(loginNickOrEmailField);
+    loginNickOrEmailField = new TextField<String>();
+    loginNickOrEmailField.setFieldLabel(i18n.t("Username"));
+    loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
+    loginNickOrEmailField.setWidth(DEF_SMALL_FIELD_WIDTH);
+    loginNickOrEmailField.setAllowBlank(false);
+    loginNickOrEmailField.setValidationDelay(1000);
+    loginNickOrEmailField.setId(NICKOREMAIL_FIELD);
+    loginNickOrEmailField.setTabIndex(100);
+    super.add(loginNickOrEmailField);
 
-        loginPassField = new TextField<String>();
-        loginPassField.setFieldLabel(i18n.t("Password"));
-        loginPassField.setName(PASSWORD_FIELD);
-        loginPassField.setWidth(DEF_MEDIUM_FIELD_WIDTH);
-        loginPassField.setPassword(true);
-        loginPassField.setAllowBlank(false);
-        loginPassField.setValidationDelay(1000);
-        loginPassField.setId(PASSWORD_FIELD);
-        loginPassField.setTabIndex(101);
-        loginPassField.addListener(Events.OnKeyPress, new Listener<FieldEvent>() {
-            @Override
-            public void handleEvent(final FieldEvent fe) {
-                if (fe.getEvent().getKeyCode() == 13) {
-                    onAcceptCallback.onSuccess();
-                }
-            }
-        });
-        super.add(loginPassField);
-    }
+    loginPassField = new TextField<String>();
+    loginPassField.setFieldLabel(i18n.t("Password"));
+    loginPassField.setName(PASSWORD_FIELD);
+    loginPassField.setWidth(DEF_MEDIUM_FIELD_WIDTH);
+    loginPassField.setPassword(true);
+    loginPassField.setAllowBlank(false);
+    loginPassField.setValidationDelay(1000);
+    loginPassField.setId(PASSWORD_FIELD);
+    loginPassField.setTabIndex(101);
+    loginPassField.addListener(Events.OnKeyPress, new Listener<FieldEvent>() {
+      @Override
+      public void handleEvent(final FieldEvent fe) {
+        if (fe.getEvent().getKeyCode() == 13) {
+          onAcceptCallback.onSuccess();
+        }
+      }
+    });
+    super.add(loginPassField);
+  }
 
-    public void focusLogin() {
-        loginNickOrEmailField.focus();
-    }
+  public void focusLogin() {
+    loginNickOrEmailField.focus();
+  }
 
-    public void focusOnPassword() {
-        loginPassField.focus();
-    }
+  public void focusOnPassword() {
+    loginPassField.focus();
+  }
 
-    public String getLoginPassword() {
-        return loginPassField.getValue();
-    }
+  public String getLoginPassword() {
+    return loginPassField.getValue();
+  }
 
-    public String getNickOrEmail() {
-        return loginNickOrEmailField.getValue();
-    }
+  public String getNickOrEmail() {
+    return loginNickOrEmailField.getValue();
+  }
 
-    public Field<String> getNickOrEmailField() {
-        return loginNickOrEmailField;
-    }
+  public Field<String> getNickOrEmailField() {
+    return loginNickOrEmailField;
+  }
 
-    public void setLoginPassword(final String password) {
-        loginPassField.setValue(password);
-    }
+  public void setLoginPassword(final String password) {
+    loginPassField.setValue(password);
+  }
 
-    public void setNickOrEmail(final String nickOrEmail) {
-        loginNickOrEmailField.setValue(nickOrEmail);
-    }
+  public void setNickOrEmail(final String nickOrEmail) {
+    loginNickOrEmailField.setValue(nickOrEmail);
+  }
 
-    public void setOnPasswordReturn(final OnAcceptCallback onAcceptCallback) {
-        this.onAcceptCallback = onAcceptCallback;
-    }
+  public void setOnPasswordReturn(final OnAcceptCallback onAcceptCallback) {
+    this.onAcceptCallback = onAcceptCallback;
+  }
 }

Modified: trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -27,7 +27,7 @@
   public final static String ENT_LOGO_SELECTOR_PERSON_TITLE = "Avatar";
   public final static String FIELD_MUST_BE_BETWEEN_3_AND_15 = "The name must be between 3 and 15 lowercase characters. It can only contain Western characters and numbers";
   public final static String GROUP_OPTIONS_DIALOG_TITLE = "Group options";
-  public final static String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "The nickname/email/password is incorrect";
+  public final static String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "The username/password is incorrect";
   public final static String MEMBERS_NOT_PUBLIC = "The members of this group are not public";
   public final static String NAME_IN_ALREADY_IN_USE = "This name is already in use. Please try with a different name";
   public final static String NAME_IN_USE = "This name in already in use. Please try with a different name";

Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -304,7 +304,7 @@
   @Override
   public void setModifiedOn(final Content content, final long lastModifiedTime) {
     content.setModifiedOn(lastModifiedTime);
-    persist(content);
+    // persist(content);//
   }
 
   @Override

Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -34,21 +34,31 @@
 import cc.kune.core.server.rack.RackHelper;
 
 public class LogFilter implements Filter {
-    public static final Log LOG = LogFactory.getLog(LogFilter.class);
+  public static final Log LOG = LogFactory.getLog(LogFilter.class);
+  private final boolean logduration = false;
 
-    public void destroy() {
-    }
+  @Override
+  public void destroy() {
+  }
 
-    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain)
-            throws IOException, ServletException {
-        // final long start = System.currentTimeMillis();
-        LOG.debug("REQUEST: " + RackHelper.getURI(request));
-        chain.doFilter(request, response);
-        // final long finish = System.currentTimeMillis();
-        // log.debug("TOTAL TIME: " + (finish - start) + " miliseconds");
+  @Override
+  public void doFilter(final ServletRequest request, final ServletResponse response,
+      final FilterChain chain) throws IOException, ServletException {
+    long start;
+    if (logduration) {
+      start = System.currentTimeMillis();
     }
-
-    public void init(final FilterConfig filterConfig) throws ServletException {
+    final String uri = RackHelper.getURI(request);
+    LOG.debug("REQUEST: " + uri);
+    chain.doFilter(request, response);
+    if (logduration) {
+      final long finish = System.currentTimeMillis();
+      LOG.debug("Total time '" + uri + "': " + (finish - start) + " miliseconds");
     }
+  }
 
+  @Override
+  public void init(final FilterConfig filterConfig) throws ServletException {
+  }
+
 }

Modified: trunk/src/main/java/cc/kune/wave/server/CustomSettingsBinder.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/CustomSettingsBinder.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/java/cc/kune/wave/server/CustomSettingsBinder.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -51,145 +51,152 @@
  */
 public class CustomSettingsBinder {
 
-    /**
-     * Used to validate that a type is supported. Some types may have generic
-     * parameters that need to be checked.
-     */
-    private interface SettingTypeValidator {
-        boolean check(Type type);
+  /**
+   * Used to validate that a type is supported. Some types may have generic
+   * parameters that need to be checked.
+   */
+  private interface SettingTypeValidator {
+    boolean check(Type type);
+  }
+
+  /**
+   * This default validator just returns true.
+   */
+  private static final SettingTypeValidator DEFAULT_TYPE_VALIDATOR = new SettingTypeValidator() {
+    @Override
+    public boolean check(final Type type) {
+      return true;
     }
+  };
 
-    private static final Map<Type, SettingTypeValidator> supportedSettingTypes; // NOPMD by vjrj on 18/01/11 0:53
-
-    /**
-     * This default validator just returns true.
-     */
-    private static final SettingTypeValidator DEFAULT_TYPE_VALIDATOR = new SettingTypeValidator() {
-        @Override
-        public boolean check(Type type) {
+  /**
+   * This validator checks to make sure the {@link List}'s generic parameter is
+   * also supported.
+   */
+  private static final SettingTypeValidator LIST_TYPE_VALIDATOR = new SettingTypeValidator() {
+    @Override
+    public boolean check(final Type type) {
+      if (type instanceof ParameterizedType) {
+        final Type[] args = ((ParameterizedType) type).getActualTypeArguments();
+        if (args.length == 1) {
+          // At the moment only List<String> is supported.
+          if (args[0] == String.class) {
             return true;
+          }
         }
-    };
+      }
+      return false;
+    }
+  };
 
-    /**
-     * This validator checks to make sure the {@link List}'s generic parameter
-     * is also supported.
-     */
-    private static final SettingTypeValidator LIST_TYPE_VALIDATOR = new SettingTypeValidator() {
-        @Override
-        public boolean check(Type type) {
-            if (type instanceof ParameterizedType) {
-                Type[] args = ((ParameterizedType) type).getActualTypeArguments();
-                if (args.length == 1) {
-                    // At the moment only List<String> is supported.
-                    if (args[0] == String.class) {
-                        return true;
-                    }
-                }
-            }
-            return false;
-        }
-    };
+  private static final Map<Type, SettingTypeValidator> supportedSettingTypes; // NOPMD
+                                                                              // by
+                                                                              // vjrj
+                                                                              // on
+                                                                              // 18/01/11
+                                                                              // 0:53
 
-    static {
-        ImmutableMap.Builder<Type, SettingTypeValidator> builder = ImmutableMap.builder();
-        builder.put(int.class, DEFAULT_TYPE_VALIDATOR);
-        builder.put(boolean.class, DEFAULT_TYPE_VALIDATOR);
-        builder.put(String.class, DEFAULT_TYPE_VALIDATOR);
-        builder.put(List.class, LIST_TYPE_VALIDATOR);
-        supportedSettingTypes = builder.build();
-    }
+  static {
+    final ImmutableMap.Builder<Type, SettingTypeValidator> builder = ImmutableMap.builder();
+    builder.put(int.class, DEFAULT_TYPE_VALIDATOR);
+    builder.put(boolean.class, DEFAULT_TYPE_VALIDATOR);
+    builder.put(String.class, DEFAULT_TYPE_VALIDATOR);
+    builder.put(List.class, LIST_TYPE_VALIDATOR);
+    supportedSettingTypes = builder.build();
+  }
 
-    /**
-     * Bind configuration parameters into Guice Module.
-     * 
-     * @return a Guice module configured with setting support.
-     * @throws ConfigurationException
-     *             on configuration error
-     */
-    public static Module bindSettings(String propertyFile, Class<?>... settingsArg) throws ConfigurationException {
-        final CompositeConfiguration config = new CompositeConfiguration();
-        config.addConfiguration(new SystemConfiguration()); 
-        config.addConfiguration(new PropertiesConfiguration(propertyFile));
+  /**
+   * Bind configuration parameters into Guice Module.
+   * 
+   * @return a Guice module configured with setting support.
+   * @throws ConfigurationException
+   *           on configuration error
+   */
+  public static Module bindSettings(final String propertyFile, final Class<?>... settingsArg)
+      throws ConfigurationException {
+    final CompositeConfiguration config = new CompositeConfiguration();
+    config.addConfiguration(new SystemConfiguration());
+    config.addConfiguration(new PropertiesConfiguration(propertyFile));
 
-        List<Field> fields = new ArrayList<Field>();
-        for (Class<?> settings : settingsArg) {
-            fields.addAll(Arrays.asList(settings.getDeclaredFields()));
-        }
+    final List<Field> fields = new ArrayList<Field>();
+    for (final Class<?> settings : settingsArg) {
+      fields.addAll(Arrays.asList(settings.getDeclaredFields()));
+    }
 
-        // Reflect on settings class and absorb settings
-        final Map<Setting, Field> settings = new LinkedHashMap<Setting, Field>();
-        for (Field field : fields) {
-            if (!field.isAnnotationPresent(Setting.class)) {
-                continue;
-            }
+    // Reflect on settings class and absorb settings
+    final Map<Setting, Field> settings = new LinkedHashMap<Setting, Field>();
+    for (final Field field : fields) {
+      if (!field.isAnnotationPresent(Setting.class)) {
+        continue;
+      }
 
-            // Validate target type
-            SettingTypeValidator typeHelper = supportedSettingTypes.get(field.getType());
-            if (typeHelper == null || !typeHelper.check(field.getGenericType())) {
-                throw new IllegalArgumentException(field.getType() + " is not one of the supported setting types");
-            }
+      // Validate target type
+      final SettingTypeValidator typeHelper = supportedSettingTypes.get(field.getType());
+      if (typeHelper == null || !typeHelper.check(field.getGenericType())) {
+        throw new IllegalArgumentException(field.getType()
+            + " is not one of the supported setting types");
+      }
 
-            Setting setting = field.getAnnotation(Setting.class);
-            settings.put(setting, field);
-        }
+      final Setting setting = field.getAnnotation(Setting.class);
+      settings.put(setting, field);
+    }
 
-        // Now validate them
-        List<String> missingProperties = new ArrayList<String>();
-        for (Setting setting : settings.keySet()) {
-            if (setting.defaultValue().isEmpty()) {
-                if (!config.containsKey(setting.name())) {
-                    missingProperties.add(setting.name());
-                }
-            }
+    // Now validate them
+    final List<String> missingProperties = new ArrayList<String>();
+    for (final Setting setting : settings.keySet()) {
+      if (setting.defaultValue().isEmpty()) {
+        if (!config.containsKey(setting.name())) {
+          missingProperties.add(setting.name());
         }
-        if (missingProperties.size() > 0) {
-            StringBuilder error = new StringBuilder();
-            error.append("The following required properties are missing from the server configuration: ");
-            error.append(Joiner.on(", ").join(missingProperties));
-            throw new ConfigurationException(error.toString());
-        }
+      }
+    }
+    if (missingProperties.size() > 0) {
+      final StringBuilder error = new StringBuilder();
+      error.append("The following required properties are missing from the server configuration: ");
+      error.append(Joiner.on(", ").join(missingProperties));
+      throw new ConfigurationException(error.toString());
+    }
 
-        // bundle everything up in an injectable guice module
-        return new AbstractModule() {
+    // bundle everything up in an injectable guice module
+    return new AbstractModule() {
 
-            @Override
-            protected void configure() {
-                // We must iterate the settings a third time when binding.
-                // Note: do not collapse these loops as that will damage
-                // early error detection. The runtime is still O(n) in setting
-                // count.
-                for (Map.Entry<Setting, Field> entry : settings.entrySet()) {
-                    Class<?> type = entry.getValue().getType();
-                    Setting setting = entry.getKey();
+      @Override
+      protected void configure() {
+        // We must iterate the settings a third time when binding.
+        // Note: do not collapse these loops as that will damage
+        // early error detection. The runtime is still O(n) in setting
+        // count.
+        for (final Map.Entry<Setting, Field> entry : settings.entrySet()) {
+          final Class<?> type = entry.getValue().getType();
+          final Setting setting = entry.getKey();
 
-                    if (int.class.equals(type)) {
-                        Integer defaultValue = null;
-                        if (!setting.defaultValue().isEmpty()) {
-                            defaultValue = Integer.parseInt(setting.defaultValue());
-                        }
-                        bindConstant().annotatedWith(Names.named(setting.name())).to(
-                                config.getInteger(setting.name(), defaultValue));
-                    } else if (boolean.class.equals(type)) {
-                        Boolean defaultValue = null;
-                        if (!setting.defaultValue().isEmpty()) {
-                            defaultValue = Boolean.parseBoolean(setting.defaultValue());
-                        }
-                        bindConstant().annotatedWith(Names.named(setting.name())).to(
-                                config.getBoolean(setting.name(), defaultValue));
-                    } else if (String.class.equals(type)) {
-                        bindConstant().annotatedWith(Names.named(setting.name())).to(
-                                config.getString(setting.name(), setting.defaultValue()));
-                    } else {
-                        String[] value = config.getStringArray(setting.name());
-                        if (value.length == 0 && !setting.defaultValue().isEmpty()) {
-                            value = setting.defaultValue().split(",");
-                        }
-                        bind(new TypeLiteral<List<String>>() {
-                        }).annotatedWith(Names.named(setting.name())).toInstance(ImmutableList.copyOf(value));
-                    }
-                }
+          if (int.class.equals(type)) {
+            Integer defaultValue = null;
+            if (!setting.defaultValue().isEmpty()) {
+              defaultValue = Integer.parseInt(setting.defaultValue());
             }
-        };
-    }
+            bindConstant().annotatedWith(Names.named(setting.name())).to(
+                config.getInteger(setting.name(), defaultValue));
+          } else if (boolean.class.equals(type)) {
+            Boolean defaultValue = null;
+            if (!setting.defaultValue().isEmpty()) {
+              defaultValue = Boolean.parseBoolean(setting.defaultValue());
+            }
+            bindConstant().annotatedWith(Names.named(setting.name())).to(
+                config.getBoolean(setting.name(), defaultValue));
+          } else if (String.class.equals(type)) {
+            bindConstant().annotatedWith(Names.named(setting.name())).to(
+                config.getString(setting.name(), setting.defaultValue()));
+          } else {
+            String[] value = config.getStringArray(setting.name());
+            if (value.length == 0 && !setting.defaultValue().isEmpty()) {
+              value = setting.defaultValue().split(",");
+            }
+            bind(new TypeLiteral<List<String>>() {
+            }).annotatedWith(Names.named(setting.name())).toInstance(ImmutableList.copyOf(value));
+          }
+        }
+      }
+    };
+  }
 }

Modified: trunk/src/main/resources/META-INF/persistence.xml
===================================================================
--- trunk/src/main/resources/META-INF/persistence.xml	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/resources/META-INF/persistence.xml	2011-05-15 10:01:33 UTC (rev 1388)
@@ -43,7 +43,7 @@
       <property name="hibernate.connection.password" value="db4kune" />
 
       <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-production
-        (NO!, une liquibase, for instance) -->
+        (NO!, use liquibase, for instance) -->
       <!-- http://stackoverflow.com/questions/438146/hibernate-question-hbm2ddl-auto-possible-values-and-what-they-do -->
       <property name="hibernate.hbm2ddl.auto" value="update" />
       <!-- https://www.hibernate.org/214.html -->

Modified: trunk/src/main/resources/log4j.dev.properties
===================================================================
--- trunk/src/main/resources/log4j.dev.properties	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/resources/log4j.dev.properties	2011-05-15 10:01:33 UTC (rev 1388)
@@ -1,10 +1,64 @@
-log4j.rootLogger=ERROR, stdout
-log4j.logger.org.ourproject=DEBUG
-log4j.logger.cc.kune=DEBUG;
-log4j.logger.org.waveprotocol=INFO;
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-#log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout
-#log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-#log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
-log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p - %m%n
\ No newline at end of file
+#------------------------------------------------------------------------------
+#
+#  The following properties set the logging levels and log appender.  The
+#  log4j.rootCategory variable defines the default log level and one or more
+#  appenders.  For the console, use 'S'.  For the daily rolling file, use 'R'.
+#  For an HTML formatted log, use 'H'.
+
+#  This file configures log4j to log any messages of level info or higher to
+#  the console except for classes under the cc.kune, org.waveprotocol, etc
+#
+#  To override the default (rootCategory) log level, define a property of the
+#  form (see below for available values):
+#
+#        log4j.logger. =
+#
+#    Available logger names:
+#      TODO
+#
+#    Possible Log Levels:
+#      FATAL, ERROR, WARN, INFO, DEBUG
+#
+#------------------------------------------------------------------------------
+log4j.rootCategory=ERROR, R
+
+log4j.logger.org.ourproject=ERROR;
+log4j.logger.cc.kune=ERROR;
+log4j.logger.org.waveprotocol=ERROR;
+log4j.logger.org.google=ERROR
+
+#------------------------------------------------------------------------------
+#
+#  The following properties configure the console (stdout) appender.
+#  See http://logging.apache.org/log4j/docs/api/index.html for details.
+#
+#------------------------------------------------------------------------------
+log4j.appender.S = org.apache.log4j.ConsoleAppender
+log4j.appender.S.layout = org.apache.log4j.PatternLayout
+log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
+# Previous:
+# log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p - %m%n
+#------------------------------------------------------------------------------
+#
+#  The following properties configure the Daily Rolling File appender.
+#  See http://logging.apache.org/log4j/docs/api/index.html for details.
+#
+#------------------------------------------------------------------------------
+log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
+log4j.appender.R.File = logs/kune.log
+log4j.appender.R.Append = true
+log4j.appender.R.DatePattern = '.'yyy-MM-dd
+log4j.appender.R.layout = org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
+
+#------------------------------------------------------------------------------
+#
+#  The following properties configure the Rolling File appender in HTML.
+#  See http://logging.apache.org/log4j/docs/api/index.html for details.
+#
+#------------------------------------------------------------------------------
+log4j.appender.H = org.apache.log4j.RollingFileAppender
+log4j.appender.H.File = logs/kune.html
+log4j.appender.H.MaxFileSize = 100KB
+log4j.appender.H.Append = false
+log4j.appender.H.layout = org.apache.log4j.HTMLLayout
\ No newline at end of file

Modified: trunk/src/main/resources/log4j.properties
===================================================================
--- trunk/src/main/resources/log4j.properties	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/main/resources/log4j.properties	2011-05-15 10:01:33 UTC (rev 1388)
@@ -1,19 +1,65 @@
-log4j.rootLogger=error, stdout
-log4j.logger.org.ourproject=DEBUG;
-log4j.logger.cc.kune=DEBUG;
-log4j.logger.org.waveprotocol=INFO;
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+#------------------------------------------------------------------------------
+#
+#  The following properties set the logging levels and log appender.  The
+#  log4j.rootCategory variable defines the default log level and one or more
+#  appenders.  For the console, use 'S'.  For the daily rolling file, use 'R'.
+#  For an HTML formatted log, use 'H'.
 
-# Print the date in ISO 8601 format
-log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
+#  This file configures log4j to log any messages of level info or higher to
+#  the console except for classes under the cc.kune, org.waveprotocol, etc
+#
+#  To override the default (rootCategory) log level, define a property of the
+#  form (see below for available values):
+#
+#        log4j.logger. =
+#
+#    Available logger names:
+#      TODO
+#
+#    Possible Log Levels:
+#      FATAL, ERROR, WARN, INFO, DEBUG
+#
+#------------------------------------------------------------------------------
+log4j.rootCategory=ERROR, S
 
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.File=application.log
+log4j.logger.org.ourproject=ERROR;
+log4j.logger.cc.kune=ERROR;
+log4j.logger.org.waveprotocol=ERROR;
+log4j.logger.org.google=ERROR
 
-log4j.appender.R.MaxFileSize=100KB
-# Keep one backup file
-log4j.appender.R.MaxBackupIndex=1
+#------------------------------------------------------------------------------
+#
+#  The following properties configure the console (stdout) appender.
+#  See http://logging.apache.org/log4j/docs/api/index.html for details.
+#
+#------------------------------------------------------------------------------
+log4j.appender.S = org.apache.log4j.ConsoleAppender
+log4j.appender.S.layout = org.apache.log4j.PatternLayout
+log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
+# Previous:
+# log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
 
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
+#------------------------------------------------------------------------------
+#
+#  The following properties configure the Daily Rolling File appender.
+#  See http://logging.apache.org/log4j/docs/api/index.html for details.
+#
+#------------------------------------------------------------------------------
+log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
+log4j.appender.R.File = logs/kune.log
+log4j.appender.R.Append = true
+log4j.appender.R.DatePattern = '.'yyy-MM-dd
+log4j.appender.R.layout = org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
+
+#------------------------------------------------------------------------------
+#
+#  The following properties configure the Rolling File appender in HTML.
+#  See http://logging.apache.org/log4j/docs/api/index.html for details.
+#
+#------------------------------------------------------------------------------
+log4j.appender.H = org.apache.log4j.RollingFileAppender
+log4j.appender.H.File = logs/kune.html
+log4j.appender.H.MaxFileSize = 100KB
+log4j.appender.H.Append = false
+log4j.appender.H.layout = org.apache.log4j.HTMLLayout
\ No newline at end of file

Modified: trunk/src/test/java/cc/kune/core/server/TestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/TestHelper.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/test/java/cc/kune/core/server/TestHelper.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -50,48 +50,49 @@
 import com.google.inject.servlet.SessionScoped;
 
 public abstract class TestHelper {
-    public static Injector create(final Module module, final String persistenceUnit, final String propetiesFileName) {
-        try {
-            final Injector injector = Guice.createInjector(CustomSettingsBinder.bindSettings(
-                    TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class));
-            final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
-            final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
-            final Injector childInjector = injector.createChildInjector(wavePersistModule, new ServerModule(false),
-                    new RobotApiModule(), federationModule, FinderRegistry.init(new JpaPersistModule(persistenceUnit)),
-                    module, new Module() {
-                        @Override
-                        public void configure(final Binder binder) {
-                            binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
-                            binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
-                            binder.bindConstant().annotatedWith(PropertiesFileName.class).to(propetiesFileName);
-                            binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
-                        }
-                    });
-            try {
-                childInjector.getInstance(WaveServerImpl.class).initialize();
-            } catch (final WaveServerException e) {
-                e.printStackTrace();
-            }
-            final AccountStore accountStore = childInjector.getInstance(AccountStore.class);
-            accountStore.initializeAccountStore();
-            AccountStoreHolder.resetForTesting();
-            AccountStoreHolder.init(accountStore,
-                    childInjector.getInstance(Key.get(String.class, Names.named(CoreSettings.WAVE_SERVER_DOMAIN))));
-            return childInjector;
-        } catch (final ConfigurationException e) {
-            e.printStackTrace();
-        } catch (final PersistenceException e) {
-            e.printStackTrace();
+  public static Injector create(final Module module, final String persistenceUnit,
+      final String propetiesFileName) {
+    try {
+      final Injector injector = Guice.createInjector(CustomSettingsBinder.bindSettings(
+          TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class));
+      final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
+      final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
+      final Injector childInjector = injector.createChildInjector(wavePersistModule, new ServerModule(
+          false), new RobotApiModule(), federationModule, FinderRegistry.init(new JpaPersistModule(
+          persistenceUnit)), module, new Module() {
+        @Override
+        public void configure(final Binder binder) {
+          binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
+          binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
+          binder.bindConstant().annotatedWith(PropertiesFileName.class).to(propetiesFileName);
+          binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
         }
-        return null;
+      });
+      try {
+        childInjector.getInstance(WaveServerImpl.class).initialize();
+      } catch (final WaveServerException e) {
+        e.printStackTrace();
+      }
+      final AccountStore accountStore = childInjector.getInstance(AccountStore.class);
+      accountStore.initializeAccountStore();
+      AccountStoreHolder.resetForTesting();
+      AccountStoreHolder.init(accountStore,
+          childInjector.getInstance(Key.get(String.class, Names.named(CoreSettings.WAVE_SERVER_DOMAIN))));
+      return childInjector;
+    } catch (final ConfigurationException e) {
+      e.printStackTrace();
+    } catch (final PersistenceException e) {
+      e.printStackTrace();
     }
+    return null;
+  }
 
-    public static void inject(final Object target) {
-        // test: use memory
-        // test_db: use mysql
-        // Also configurable ein PersistenceTest
-        TestHelper.create(new PlatformServerModule(), TestConstants.PERSISTENCE_UNIT, "kune.properties").injectMembers(
-                target);
-    }
+  public static void inject(final Object target) {
+    // test: use memory
+    // test_db: use mysql
+    // Also configurable ein PersistenceTest
+    TestHelper.create(new PlatformServerModule(), TestConstants.PERSISTENCE_UNIT, "kune.properties").injectMembers(
+        target);
+  }
 
 }

Modified: trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -50,42 +50,43 @@
 
 public class IntegrationTestHelper {
 
-    public static Injector createInjector() {
-        Injector injector;
-        try {
-            injector = Guice.createInjector(CustomSettingsBinder.bindSettings(TestConstants.WAVE_TEST_PROPFILE,
-                    CoreSettings.class));
-            final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
-            final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
-            final Injector childInjector = injector.createChildInjector(wavePersistModule,
-                    FinderRegistry.init(new JpaPersistModule(TestConstants.PERSISTENCE_UNIT)), new RobotApiModule(),
-                    new PlatformServerModule(), new DocumentServerModule(), new ChatServerModule(), new ServerModule(
-                            false), federationModule, new WikiServerModule(), new AbstractModule() {
-                        @Override
-                        protected void configure() {
-                            bindScope(SessionScoped.class, Scopes.SINGLETON);
-                            bindScope(RequestScoped.class, Scopes.SINGLETON);
-                            bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties");
-                            bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
-                        }
-                    });
-            try {
-                childInjector.getInstance(WaveServerImpl.class).initialize();
-            } catch (final WaveServerException e) {
-                e.printStackTrace();
+  public static Injector createInjector() {
+    Injector injector;
+    try {
+      injector = Guice.createInjector(CustomSettingsBinder.bindSettings(
+          TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class));
+      final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
+      final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
+      final Injector childInjector = injector.createChildInjector(wavePersistModule,
+          FinderRegistry.init(new JpaPersistModule(TestConstants.PERSISTENCE_UNIT)),
+          new RobotApiModule(), new PlatformServerModule(), new DocumentServerModule(),
+          new ChatServerModule(), new ServerModule(false), federationModule, new WikiServerModule(),
+          new AbstractModule() {
+            @Override
+            protected void configure() {
+              bindScope(SessionScoped.class, Scopes.SINGLETON);
+              bindScope(RequestScoped.class, Scopes.SINGLETON);
+              bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties");
+              bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
             }
-            return childInjector;
-        } catch (final ConfigurationException e) {
-            e.printStackTrace();
-        }
-        return null;
+          });
+      try {
+        childInjector.getInstance(WaveServerImpl.class).initialize();
+      } catch (final WaveServerException e) {
+        e.printStackTrace();
+      }
+      return childInjector;
+    } catch (final ConfigurationException e) {
+      e.printStackTrace();
     }
+    return null;
+  }
 
-    public IntegrationTestHelper(final Object... tests) {
-        final Injector injector = createInjector();
-        injector.getInstance(KunePersistenceService.class).start();
-        for (final Object test : tests) {
-            injector.injectMembers(test);
-        }
+  public IntegrationTestHelper(final Object... tests) {
+    final Injector injector = createInjector();
+    injector.getInstance(KunePersistenceService.class).start();
+    for (final Object test : tests) {
+      injector.injectMembers(test);
     }
+  }
 }

Modified: trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java	2011-05-13 15:23:17 UTC (rev 1387)
+++ trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java	2011-05-15 10:01:33 UTC (rev 1388)
@@ -187,6 +187,7 @@
     groupShortName = defaultContent.getStateToken().getGroup();
   }
 
+  @Ignore
   @Test
   public void setTagsAndResults() throws Exception {
     contentService.setTags(getHash(), defaultContent.getStateToken(), "bfoo cfoa afoo2");




More information about the kune-commits mailing list