Simplify spring integration + correct key for collaborative usage
authorymh <ymh.work@gmail.com>
Fri, 22 Mar 2013 05:30:19 +0100
changeset 106 d34e253f5c32
parent 105 810a1c1015df
child 107 fc839a1f6ffd
Simplify spring integration + correct key for collaborative usage
.classpath
server/pom.xml
server/src/main/java/org/iri_research/renkan/coweb/RenkanSessionModerator.java
server/src/main/java/org/iri_research/renkan/coweb/SpringConfigurer.java
server/src/main/java/org/iri_research/renkan/coweb/server/RenkanCometdServlet.java
server/src/main/java/org/iri_research/renkan/models/Project.java
server/src/main/java/org/iri_research/renkan/rest/RenkanResource.java
server/src/main/resources/log4j.xml
server/src/main/webapp/WEB-INF/applicationContext.xml
server/src/main/webapp/WEB-INF/web.xml
server/src/main/webapp/model-test.html
server/src/main/webapp/render-test.html
server/src/main/webapp/static/js/config.js
server/src/main/webapp/static/js/corenkan.js
--- a/.classpath	Tue Mar 19 17:59:34 2013 +0100
+++ b/.classpath	Fri Mar 22 05:30:19 2013 +0100
@@ -4,61 +4,260 @@
 	<classpathentry kind="src" path="server/src/test/java"/>
 	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
 	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
-	<classpathentry kind="var" path="M2_REPO/org/opencoweb/coweb-bots/1.0/coweb-bots-1.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/opencoweb/coweb-server/1.0/coweb-server-1.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/opencoweb/coweb-operationengine/1.0/coweb-operationengine-1.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/cometd/java/bayeux-api/2.5.0/bayeux-api-2.5.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-java-common/2.5.0/cometd-java-common-2.5.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-util/9.0.0.RC0/jetty-util-9.0.0.RC0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-continuation/8.1.8.v20121106/jetty-continuation-8.1.8.v20121106.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-jmx/9.0.0.RC0/jetty-jmx-9.0.0.RC0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-server/1.17/jersey-server-1.17.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-core/1.17/jersey-core-1.17.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/mongodb/mongo-java-driver/2.10.1/mongo-java-driver-2.10.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/3.2.1.RELEASE/spring-context-3.2.1.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-beans/3.2.1.RELEASE/spring-beans-3.2.1.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0.2/persistence-api-1.0.2.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/data/spring-data-mongodb/1.2.0.RELEASE/spring-data-mongodb-1.2.0.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/data/spring-data-commons/1.5.0.RELEASE/spring-data-commons-1.5.0.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/data/spring-data-jpa/1.3.0.RELEASE/spring-data-jpa-1.3.0.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-java-annotations/2.5.0/cometd-java-annotations-2.5.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-java-server/2.5.0/cometd-java-server-2.5.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/3.2.1.RELEASE/spring-core-3.2.1.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-web/3.2.1.RELEASE/spring-web-3.2.1.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-webmvc/3.2.1.RELEASE/spring-webmvc-3.2.1.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/junit/junit/4.10/junit-4.10.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-test/3.2.1.RELEASE/spring-test-3.2.1.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/javax/servlet/jstl/1.2/jstl-1.2.jar">
+	<classpathentry kind="var" path="M2_REPO/org/opencoweb/coweb-bots/1.0/coweb-bots-1.0.jar" sourcepath="M2_REPO/org/opencoweb/coweb-bots/1.0/coweb-bots-1.0-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/opencoweb/coweb-bots/1.0/coweb-bots-1.0-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/opencoweb/coweb-server/1.0/coweb-server-1.0.jar" sourcepath="M2_REPO/org/opencoweb/coweb-server/1.0/coweb-server-1.0-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/opencoweb/coweb-server/1.0/coweb-server-1.0-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/opencoweb/coweb-operationengine/1.0/coweb-operationengine-1.0.jar" sourcepath="M2_REPO/org/opencoweb/coweb-operationengine/1.0/coweb-operationengine-1.0-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/opencoweb/coweb-operationengine/1.0/coweb-operationengine-1.0-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/cometd/java/bayeux-api/2.5.0/bayeux-api-2.5.0.jar" sourcepath="M2_REPO/org/cometd/java/bayeux-api/2.5.0/bayeux-api-2.5.0-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/cometd/java/bayeux-api/2.5.0/bayeux-api-2.5.0-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-java-common/2.5.0/cometd-java-common-2.5.0.jar" sourcepath="M2_REPO/org/cometd/java/cometd-java-common/2.5.0/cometd-java-common-2.5.0-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/cometd/java/cometd-java-common/2.5.0/cometd-java-common-2.5.0-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-util/8.1.9.v20130131/jetty-util-8.1.9.v20130131.jar">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-continuation/8.1.9.v20130131/jetty-continuation-8.1.9.v20130131.jar">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-jmx/8.1.9.v20130131/jetty-jmx-8.1.9.v20130131.jar">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-server/1.17/jersey-server-1.17.jar" sourcepath="M2_REPO/com/sun/jersey/jersey-server/1.17/jersey-server-1.17-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/sun/jersey/jersey-server/1.17/jersey-server-1.17-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-core/1.17/jersey-core-1.17.jar" sourcepath="M2_REPO/com/sun/jersey/jersey-core/1.17/jersey-core-1.17-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/sun/jersey/jersey-core/1.17/jersey-core-1.17-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/mongodb/mongo-java-driver/2.10.1/mongo-java-driver-2.10.1.jar" sourcepath="M2_REPO/org/mongodb/mongo-java-driver/2.10.1/mongo-java-driver-2.10.1-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/mongodb/mongo-java-driver/2.10.1/mongo-java-driver-2.10.1-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/3.2.1.RELEASE/spring-context-3.2.1.RELEASE.jar" sourcepath="M2_REPO/org/springframework/spring-context/3.2.1.RELEASE/spring-context-3.2.1.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/spring-context/3.2.1.RELEASE/spring-context-3.2.1.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-beans/3.2.1.RELEASE/spring-beans-3.2.1.RELEASE.jar" sourcepath="M2_REPO/org/springframework/spring-beans/3.2.1.RELEASE/spring-beans-3.2.1.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/spring-beans/3.2.1.RELEASE/spring-beans-3.2.1.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0.2/persistence-api-1.0.2.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0.2/persistence-api-1.0.2-sources.jar">
 		<attributes>
 			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.7/commons-codec-1.7.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/security/spring-security-core/3.1.3.RELEASE/spring-security-core-3.1.3.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/security/spring-security-config/3.1.3.RELEASE/spring-security-config-3.1.3.RELEASE.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/springframework/security/spring-security-web/3.1.3.RELEASE/spring-security-web-3.1.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/data/spring-data-mongodb/1.2.0.RELEASE/spring-data-mongodb-1.2.0.RELEASE.jar" sourcepath="M2_REPO/org/springframework/data/spring-data-mongodb/1.2.0.RELEASE/spring-data-mongodb-1.2.0.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/data/spring-data-mongodb/1.2.0.RELEASE/spring-data-mongodb-1.2.0.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/data/spring-data-commons/1.5.0.RELEASE/spring-data-commons-1.5.0.RELEASE.jar" sourcepath="M2_REPO/org/springframework/data/spring-data-commons/1.5.0.RELEASE/spring-data-commons-1.5.0.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/data/spring-data-commons/1.5.0.RELEASE/spring-data-commons-1.5.0.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/data/spring-data-jpa/1.3.0.RELEASE/spring-data-jpa-1.3.0.RELEASE.jar" sourcepath="M2_REPO/org/springframework/data/spring-data-jpa/1.3.0.RELEASE/spring-data-jpa-1.3.0.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/data/spring-data-jpa/1.3.0.RELEASE/spring-data-jpa-1.3.0.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" sourcepath="M2_REPO/javax/inject/javax.inject/1/javax.inject-1-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/javax/inject/javax.inject/1/javax.inject-1-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-java-annotations/2.5.0/cometd-java-annotations-2.5.0.jar" sourcepath="M2_REPO/org/cometd/java/cometd-java-annotations/2.5.0/cometd-java-annotations-2.5.0-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/cometd/java/cometd-java-annotations/2.5.0/cometd-java-annotations-2.5.0-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-java-server/2.5.0/cometd-java-server-2.5.0.jar" sourcepath="M2_REPO/org/cometd/java/cometd-java-server/2.5.0/cometd-java-server-2.5.0-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/cometd/java/cometd-java-server/2.5.0/cometd-java-server-2.5.0-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar" sourcepath="M2_REPO/javax/servlet/servlet-api/2.5/servlet-api-2.5-sources.jar">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/3.2.1.RELEASE/spring-core-3.2.1.RELEASE.jar" sourcepath="M2_REPO/org/springframework/spring-core/3.2.1.RELEASE/spring-core-3.2.1.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/spring-core/3.2.1.RELEASE/spring-core-3.2.1.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-web/3.2.1.RELEASE/spring-web-3.2.1.RELEASE.jar" sourcepath="M2_REPO/org/springframework/spring-web/3.2.1.RELEASE/spring-web-3.2.1.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/spring-web/3.2.1.RELEASE/spring-web-3.2.1.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-webmvc/3.2.1.RELEASE/spring-webmvc-3.2.1.RELEASE.jar" sourcepath="M2_REPO/org/springframework/spring-webmvc/3.2.1.RELEASE/spring-webmvc-3.2.1.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/spring-webmvc/3.2.1.RELEASE/spring-webmvc-3.2.1.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/junit/junit/4.10/junit-4.10.jar" sourcepath="M2_REPO/junit/junit/4.10/junit-4.10-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/junit/junit/4.10/junit-4.10-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/spring-test/3.2.1.RELEASE/spring-test-3.2.1.RELEASE.jar" sourcepath="M2_REPO/org/springframework/spring-test/3.2.1.RELEASE/spring-test-3.2.1.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/spring-test/3.2.1.RELEASE/spring-test-3.2.1.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/javax/servlet/jstl/1.2/jstl-1.2.jar" sourcepath="M2_REPO/javax/servlet/jstl/1.2/jstl-1.2-sources.jar">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.7/commons-codec-1.7.jar" sourcepath="M2_REPO/commons-codec/commons-codec/1.7/commons-codec-1.7-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/commons-codec/commons-codec/1.7/commons-codec-1.7-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/security/spring-security-core/3.1.3.RELEASE/spring-security-core-3.1.3.RELEASE.jar" sourcepath="M2_REPO/org/springframework/security/spring-security-core/3.1.3.RELEASE/spring-security-core-3.1.3.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/security/spring-security-core/3.1.3.RELEASE/spring-security-core-3.1.3.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/security/spring-security-config/3.1.3.RELEASE/spring-security-config-3.1.3.RELEASE.jar" sourcepath="M2_REPO/org/springframework/security/spring-security-config/3.1.3.RELEASE/spring-security-config-3.1.3.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/security/spring-security-config/3.1.3.RELEASE/spring-security-config-3.1.3.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/springframework/security/spring-security-web/3.1.3.RELEASE/spring-security-web-3.1.3.RELEASE.jar" sourcepath="M2_REPO/org/springframework/security/spring-security-web/3.1.3.RELEASE/spring-security-web-3.1.3.RELEASE-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/springframework/security/spring-security-web/3.1.3.RELEASE/spring-security-web-3.1.3.RELEASE-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
 		<attributes>
 			<attribute name="owner.project.facets" value="java"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.1.4/jackson-core-2.1.4.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.1.4/jackson-databind-2.1.4.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-websocket-jetty/2.5.1/cometd-websocket-jetty-2.5.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-websocket/8.1.9.v20130131/jetty-websocket-8.1.9.v20130131.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.1.4/jackson-annotations-2.1.4.jar">
+	<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.1.4/jackson-core-2.1.4.jar" sourcepath="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.1.4/jackson-core-2.1.4-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.1.4/jackson-core-2.1.4-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.1.4/jackson-databind-2.1.4.jar" sourcepath="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.1.4/jackson-databind-2.1.4-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.1.4/jackson-databind-2.1.4-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/cometd/java/cometd-websocket-jetty/2.5.1/cometd-websocket-jetty-2.5.1.jar" sourcepath="M2_REPO/org/cometd/java/cometd-websocket-jetty/2.5.1/cometd-websocket-jetty-2.5.1-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/org/cometd/java/cometd-websocket-jetty/2.5.1/cometd-websocket-jetty-2.5.1-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/eclipse/jetty/jetty-websocket/8.1.9.v20130131/jetty-websocket-8.1.9.v20130131.jar">
 		<attributes>
 			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-test-framework/jersey-test-framework-core/1.17/jersey-test-framework-core-1.17.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-servlet/1.17/jersey-servlet-1.17.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/contribs/jersey-spring/1.17/jersey-spring-1.17.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-client/1.17/jersey-client-1.17.jar"/>
-	<classpathentry kind="var" path="M2_REPO/joda-time/joda-time/2.1/joda-time-2.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.1.4/jackson-annotations-2.1.4.jar" sourcepath="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.1.4/jackson-annotations-2.1.4-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.1.4/jackson-annotations-2.1.4-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-test-framework/jersey-test-framework-core/1.17/jersey-test-framework-core-1.17.jar" sourcepath="M2_REPO/com/sun/jersey/jersey-test-framework/jersey-test-framework-core/1.17/jersey-test-framework-core-1.17-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/sun/jersey/jersey-test-framework/jersey-test-framework-core/1.17/jersey-test-framework-core-1.17-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-servlet/1.17/jersey-servlet-1.17.jar" sourcepath="M2_REPO/com/sun/jersey/jersey-servlet/1.17/jersey-servlet-1.17-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/sun/jersey/jersey-servlet/1.17/jersey-servlet-1.17-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/contribs/jersey-spring/1.17/jersey-spring-1.17.jar" sourcepath="M2_REPO/com/sun/jersey/contribs/jersey-spring/1.17/jersey-spring-1.17-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/sun/jersey/contribs/jersey-spring/1.17/jersey-spring-1.17-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-client/1.17/jersey-client-1.17.jar" sourcepath="M2_REPO/com/sun/jersey/jersey-client/1.17/jersey-client-1.17-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/com/sun/jersey/jersey-client/1.17/jersey-client-1.17-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/joda-time/joda-time/2.1/joda-time-2.1.jar" sourcepath="M2_REPO/joda-time/joda-time/2.1/joda-time-2.1-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/Users/ymh/.m2/repository/joda-time/joda-time/2.1/joda-time-2.1-javadoc.jar!/"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
 	<classpathentry kind="output" path="server/target/classes"/>
 </classpath>
--- a/server/pom.xml	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/pom.xml	Fri Mar 22 05:30:19 2013 +0100
@@ -357,6 +357,11 @@
             <version>${jetty-version}</version>
         </dependency>
         <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlets</artifactId>
+            <version>${jetty-version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-core</artifactId>
             <version>${spring-security-version}</version>
--- a/server/src/main/java/org/iri_research/renkan/coweb/RenkanSessionModerator.java	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/coweb/RenkanSessionModerator.java	Fri Mar 22 05:30:19 2013 +0100
@@ -4,9 +4,6 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.inject.Inject;
-import javax.inject.Named;
-
 import org.coweb.DefaultSessionModerator;
 import org.iri_research.renkan.coweb.event.ISyncEventManager;
 import org.iri_research.renkan.models.Project;
@@ -20,15 +17,17 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-@Named
 public class RenkanSessionModerator extends DefaultSessionModerator {
 	
 	private final Logger logger = LoggerFactory.getLogger(RenkanSessionModerator.class);
 	
-	@Inject
 	private ProjectsRepository projectsRepository;
 	
 	
+	public RenkanSessionModerator() {
+		super();
+	}
+	
 	public ProjectsRepository getProjectsRepository() {
 		if(this.projectsRepository == null) {
 			ApplicationContext context = SpringConfigurer.getInstance().getApplicationContext();
--- a/server/src/main/java/org/iri_research/renkan/coweb/SpringConfigurer.java	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/coweb/SpringConfigurer.java	Fri Mar 22 05:30:19 2013 +0100
@@ -1,32 +1,21 @@
 package org.iri_research.renkan.coweb;
 
-import java.util.HashMap;
-import java.util.Map;
+import javax.inject.Inject;
 
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import javax.servlet.ServletContext;
-
-import org.cometd.annotation.ServerAnnotationProcessor;
-import org.cometd.bayeux.server.BayeuxServer;
-import org.cometd.server.BayeuxServerImpl;
-import org.cometd.websocket.server.WebSocketTransport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.web.context.ServletContextAware;
+import org.springframework.stereotype.Component;
 
-//@Component
+@Component
 //@Scope("prototype")
-public class SpringConfigurer implements DestructionAwareBeanPostProcessor, ServletContextAware, ApplicationContextAware
+public class SpringConfigurer implements ApplicationContextAware
 {
 	
-    private BayeuxServer bayeuxServer;
-    private ServerAnnotationProcessor processor;
+    //private BayeuxServer bayeuxServer;
+    //private ServerAnnotationProcessor processor;
     private final Logger logger = LoggerFactory.getLogger(SpringConfigurer.class);
     private ApplicationContext context;
     
@@ -34,7 +23,7 @@
         
     private SpringConfigurer() 
     {
-    	this.logger.debug("Buiding SpringCond=figurer");    	
+    	this.logger.debug("Building SpringConfigurer");    	
     }
     
     public static SpringConfigurer getInstance() {
@@ -48,53 +37,8 @@
     	return instance;
     }
 
-    @Inject
-    private void setBayeuxServer(BayeuxServer bayeuxServer)
-    {
-        this.bayeuxServer = bayeuxServer;
-    }
 
-    @PostConstruct
-    private void init()
-    {
-        this.processor = new ServerAnnotationProcessor(bayeuxServer);
-    }
-
-    public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException
-    {
-        processor.processDependencies(bean);
-        processor.processConfigurations(bean);
-        processor.processCallbacks(bean);
-        return bean;
-    }
-
-    public Object postProcessAfterInitialization(Object bean, String name) throws BeansException
-    {
-        return bean;
-    }
-
-    public void postProcessBeforeDestruction(Object bean, String name) throws BeansException
-    {
-        processor.deprocessCallbacks(bean);
-    }
-
-    @Bean(initMethod = "start", destroyMethod = "stop")
-    public BayeuxServer bayeuxServer()
-    {
-        BayeuxServerImpl bean = new BayeuxServerImpl();
-        bean.addTransport(new WebSocketTransport(bean));
-        Map<String, Object> options = new HashMap<String, Object>();
-        options.put(BayeuxServerImpl.LOG_LEVEL, "1");
-        options.put("timeout", "1500");
-        bean.setOptions(options);
-        return bean;
-    }
-
-    public void setServletContext(ServletContext servletContext)
-    {
-        servletContext.setAttribute(BayeuxServer.ATTRIBUTE, bayeuxServer);
-    }
-
+    
 	@Override
 	@Inject
 	public void setApplicationContext(ApplicationContext context)
--- a/server/src/main/java/org/iri_research/renkan/coweb/server/RenkanCometdServlet.java	Tue Mar 19 17:59:34 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-package org.iri_research.renkan.coweb.server;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.cometd.bayeux.server.BayeuxServer;
-import org.cometd.server.BayeuxServerImpl;
-import org.cometd.server.CometdServlet;
-
-@Named
-public class RenkanCometdServlet extends CometdServlet {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -5362140618261972254L;
-	
-	@Inject
-	private BayeuxServer _bayeux;
-	
-	@Override
-	protected BayeuxServerImpl newBayeuxServer()
-    {
-        return (BayeuxServerImpl)_bayeux;
-    }
-
-
-}
--- a/server/src/main/java/org/iri_research/renkan/models/Project.java	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/models/Project.java	Fri Mar 22 05:30:19 2013 +0100
@@ -3,7 +3,6 @@
 import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -11,6 +10,8 @@
 import java.util.Map;
 import java.util.UUID;
 
+import javax.crypto.spec.SecretKeySpec;
+
 import org.apache.commons.codec.binary.Hex;
 import org.iri_research.renkan.Constants;
 import org.iri_research.renkan.Constants.EditMode;
@@ -123,9 +124,10 @@
 
 	private String getRawKey(String prefix, Constants.EditMode editMode) {		
 		StringBuffer key = new StringBuffer(prefix!=null?prefix+"|":"");
-		key.append(Constants.KEYHEX);
 		key.append(this.getId());
 		key.append('|');
+		key.append(this.getSpaceId());
+		key.append('|');
 		key.append(this.getCreated().getTime());
 		key.append('|');
 		key.append(editMode.toString());
@@ -138,24 +140,7 @@
 	
 	public String getKey(Constants.EditMode editMode) throws RenkanException {
 		
-		// get salt
-		SecureRandom rand;
-		try {
-			rand = SecureRandom.getInstance("SHA1PRNG");
-		} catch (NoSuchAlgorithmException e) {
-			throw new RenkanException("NoSuchAlgorithmException random: " + e.getMessage(), e);
-		}
-		byte[] salt = new byte[Constants.SALT_LENGTH];
-		rand.nextBytes(salt);
-		String hex_salt = Hex.encodeHexString(salt);
-		
-		return hex_salt+"-"+this.getKey(hex_salt, editMode);
-		
-	}
-	
-	private String getKey(String hex_salt, Constants.EditMode editMode) throws RenkanException {
-		
-		String rawKey = this.getRawKey(hex_salt, editMode);
+		String rawKey = this.getRawKey("", editMode);
 		
 		MessageDigest md;
 		try {
@@ -164,13 +149,15 @@
 			throw new RenkanException("NoSuchAlgorithmException digest: " + e.getMessage(), e);
 		}
 		String key;
+		final SecretKeySpec secret_key = new SecretKeySpec(Constants.KEYHEX.getBytes(), "HmacSHA256");
+		md.update(secret_key.getEncoded());
 		try {
 			key = Hex.encodeHexString(md.digest(rawKey.getBytes("UTF-8")));
 		} catch (UnsupportedEncodingException e) {
 			throw new RenkanException("UnsupportedEncodingException digest: " + e.getMessage(), e);
 		}
 		
-		return key;		
+		return key;
 	}
 	
 	public boolean checkKey(String key, Constants.EditMode editMode) throws RenkanException {
@@ -179,16 +166,10 @@
 		if(key == null || key.isEmpty()) {
 			return false;
 		}
+				
+		String signature = key;
 		
-		String[] key_parts = key.split("-", 2);
-		if(key_parts.length < 2) {
-			return false;
-		}
-		
-		String salt = key_parts[0];
-		String signature = key_parts[1];
-		
-		String new_key = this.getKey(salt, editMode);
+		String new_key = this.getKey(editMode);
 		
 		return new_key.equals(signature);
 	}
--- a/server/src/main/java/org/iri_research/renkan/rest/RenkanResource.java	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/rest/RenkanResource.java	Fri Mar 22 05:30:19 2013 +0100
@@ -121,7 +121,7 @@
 		obj = this.getRepository().save(obj);
 		return Response.created(this.uriInfo.getAbsolutePathBuilder().segment(obj.getId().toString()).build()).entity(obj).build();		
 	}
-		
+			
 
 	@GET
 	@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
--- a/server/src/main/resources/log4j.xml	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/resources/log4j.xml	Fri Mar 22 05:30:19 2013 +0100
@@ -20,6 +20,9 @@
   <!--logger name="org.cometd">
       <level value="DEBUG" />
   </logger-->
+  <logger name="org.coweb">
+      <level value="DEBUG" />
+  </logger>
   <root> 
     <priority value ="WARN" /> 
     <appender-ref ref="console" /> 
--- a/server/src/main/webapp/WEB-INF/applicationContext.xml	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/applicationContext.xml	Fri Mar 22 05:30:19 2013 +0100
@@ -18,18 +18,10 @@
     <!-- Loads MongoDB configuraton -->
     <import resource="mongo-config.xml"/>
 
-    <!--bean id="bayeuxServer" class="org.cometd.server.BayeuxServerImpl" init-method="start" destroy-method="stop">
-        <property name="options">
-            <map>
-                <entry key="logLevel" value="3" />
-                <entry key="timeout" value="15000" />
-            </map>
-        </property>  
-    </bean-->
     <bean id="springConfigurer"
         class="org.iri_research.renkan.coweb.SpringConfigurer"
         factory-method="getInstance" />
-	
+
     <!-- Scans the classpath for annotated components that will be auto-registered as Spring beans.
      For example @Controller and @Service. Make sure to set the correct base-package-->
     <context:component-scan base-package="org.iri_research.renkan.rest" />
--- a/server/src/main/webapp/WEB-INF/web.xml	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/web.xml	Fri Mar 22 05:30:19 2013 +0100
@@ -9,7 +9,7 @@
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
   </listener>
   <listener>  
-        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>  
+      <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>  
   </listener>  
   <context-param>  
     <param-name>contextConfigLocation</param-name>  
@@ -17,11 +17,10 @@
   </context-param>
   <servlet>
     <servlet-name>cometd</servlet-name>
-    <!--servlet-class>org.cometd.server.CometdServlet</servlet-class-->
-    <servlet-class>org.iri_research.renkan.coweb.server.RenkanCometdServlet</servlet-class>
+    <servlet-class>org.cometd.server.CometdServlet</servlet-class>
     <init-param>
       <param-name>logLevel</param-name>
-      <param-value>2</param-value>
+      <param-value>1</param-value>
     </init-param>
     <init-param>
       <param-name>timeout</param-name>
@@ -45,6 +44,14 @@
     <servlet-name>cometd</servlet-name>
     <url-pattern>/cometd/*</url-pattern>
   </servlet-mapping>
+  <filter>
+    <filter-name>cross-origin</filter-name>
+    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
+  </filter>
+  <filter-mapping>
+    <filter-name>cross-origin</filter-name>
+    <url-pattern>/cometd/*</url-pattern>
+  </filter-mapping>
   <servlet>
     <servlet-name>admin</servlet-name>
     <servlet-class>org.coweb.servlet.AdminServlet</servlet-class>
--- a/server/src/main/webapp/model-test.html	Tue Mar 19 17:59:34 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,340 +0,0 @@
-<!doctype html>
-<html class="no-js" lang="en">
-<head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-
-    <title>Test Model Renkan</title>
-    <meta name="description" content="">
-    <meta name="author" content="">
-
-    <meta name="viewport" content="width=device-width">
-
-    <link rel="stylesheet" href="css/style.css">
-    
-    <script type="text/javascript" src="js/config.js"></script>
-    <script type="text/javascript" src="js/dojo.js" data-dojo-config="isDebug: true, parseOnLoad: true"></script>
-    <script src="lib/jquery.min.js"></script>
-    <script src="lib/underscore-min.js"></script>
-    <script src="js/backbone.js"></script>
-    <script src="js/backbone-relational.js"></script>
-    <script src="js/main_test_models.js"></script>
-    <script src="js/models.js"></script>
-    <script type="text/javascript" src="js/config.js"></script>
-    <script data-main="main" src="js/main_coweb.js"></script>
-    <script type="text/javascript">
-    
-    function set_project(project) {
-    	
-    	require(["dojo/dom", "dojo/on", "corenkan"], function(dom, on, corenkan) {
-
-    		var template_html = dom.byId("project_disp_template").innerHTML;
-            var el = dom.byId("project_display");
-    
-            
-            var project_form_view = new FormView({el: dom.byId("form_display"), model: project, template: dom.byId("project_form_template").innerHTML});
-            
-            project_view = new ModelView({
-                el:el,
-                model: project,
-                template: template_html,
-                form_view: project_form_view,
-                form_el : dom.byId("form_display_div")
-            });
-            
-            var user_list_view = new ColView({
-                el: dom.byId("users_list_base"),
-                collection: project.get("users"),
-                element: {
-                    template: dom.byId("user_disp_template").innerHTML
-                },
-                element_form: {
-                    tagName: "div",
-                    attributes: {
-                        id:"form_display",
-                    },
-                    template: dom.byId("user_form_template").innerHTML
-                },
-                element_form_el : dom.byId("form_display_div")
-            });
-    
-            var node_list_view = new ColView({
-                el: dom.byId("nodes_list_base"),
-                collection: project.get("nodes"),
-                element: {
-                    template: dom.byId("node_disp_template").innerHTML
-                },
-                element_form: {
-                    tagName: "div",
-                    attributes: {
-                        id:"form_display",
-                    },
-                    template: dom.byId("node_form_template").innerHTML  
-                },
-                element_form_el : dom.byId("form_display_div") 
-            });
-            
-            var current_user_view = new CurrentUserView({
-                el: dom.byId("users_select"),
-                model: project
-            })
-            
-            project_view.render();
-            user_list_view.render();
-            node_list_view.render();
-            current_user_view.render();
-            
-            on(dom.byId("add_user"), "click", function() {
-                project.get("users").push(new Rkns.Models.User({}));
-            });
-            on(dom.byId("add_node"), "click", function() {
-                project.get("nodes").push(new Rkns.Models.Node({project: project}));
-            });
-            
-            on(dom.byId("users_select"), "change", function(evt) {
-                var val = evt.currentTarget.value;
-                var current_user = null;
-                if(typeof val !== "undefined" && val != "") {               
-                    current_user = project.get("users").get(val);
-                }
-                
-                if(current_user != null) {
-                    project.current_user = current_user;
-                    dom.byId("current_user").innerHTML = current_user.get("title");
-                }
-                else {
-                    project.current_user = null;
-                    dom.byId("current_user").innerHTML = "";
-                }
-                 
-            });
-            
-            project.get("users").on("change", function(evt) {
-                if(project.current_user == null) {
-                    dom.byId("current_user").innerHTML = "";
-                }
-                else if(evt.id == project.current_user.id) {
-                    dom.byId("current_user").innerHTML = project.current_user.get("title");
-                }
-            });
-            
-            project.get("users").on("remove", function(evt) {
-                if(typeof project.current_user === "undefined" || project.current_user == null || evt.id == project.current_user.id) {
-                    dom.byId("current_user").innerHTML = "";
-                }
-            });
-    
-            corenkan.app.setProject(project);
-        });
-    }
-    
-    function load_project(project_id) {
-    	var project = null;
-    	
-   		if(project_id) {
-   		    project = new Rkns.Models.Project({_id: project_id});
-   		}
-   		else {
-   			project = new Rkns.Models.Project({});
-   		}
-   		project.urlRoot = "rest/projects";
-   		
-   		if(project_id) {
-   			project.fetch({
-   				success: function(project, resp) {
-   				    set_project(project);    					
-   				}
-   			});
-   		}
-   		else {
-   			set_project(project);
-   		}
-    		    	
-    	return project;
-    }
-    
-    var current_project = null;
-    
-    require(["dojo/dom", "dojo/on", "dojo/domReady!"], function(dom, on) {
-    	    	
-    	var project_list_item_view = BasicModelView.extend({template: _.template(dom.byId("project_list_item_template").innerHTML), tagName: "li"});
-
-        var project_list_col = new (Backbone.Collection.extend({model: Rkns.Models.Project.extend({idAttribute:'_id', urlRoot:'rest/projects'})}))();
-        project_list_col.url = "rest/projects";
-        project_list_col.on("all", function(){
-        	if(!project_list_view) {
-        		return;
-        	}
-            _(project_list_view.element_views).each(function(ev){
-                if(ev.model.id === current_project.id) {
-                    $(".project_load_button",ev.el).attr('disabled','disabled');
-                    $(".project_delete_button",ev.el).attr('disabled','disabled');
-                }
-                else {
-                    $(".project_load_button",ev.el).removeAttr('disabled');
-                    $(".project_delete_button",ev.el).removeAttr('disabled');
-                }
-            });        	
-        });
-
-        var project_list_view = null; 
-        
-        project_list_col.fetch({
-        	success:function(collection, response) {
-        		project_list_view = new (BasicListView.extend({events: {
-                    "click .project_load_button" : function(evt) {
-                    	var proj_id = $(evt.target).val();
-                    	if(current_project && current_project.id == proj_id) {
-                    		return;
-                    	}
-                        current_project = load_project($(evt.target).val());
-                        project_list_col.trigger("sync");
-                    },
-                    "click .project_delete_button": function(evt) {                    	
-                    	var delete_id = $(evt.target).val();
-                    	if(!current_project || delete_id != current_project.id) { 
-                      	    _(project_list_col.where({_id: delete_id})).each(function(proj) {
-                      	        proj.destroy();
-                      	    });
-                    	}
-                    }
-                }}))({collection: collection, element_view_constructor: project_list_item_view, el: dom.byId("project_list")});
-                project_list_view.render();
-        	} 
-        });
-        
-        on(dom.byId("project_save_button"), "click", function(evt){
-        	if(current_project) {
-           	    current_project.save({}, {success: function(model, response) {
-           		    if(project_list_view != null) {
-           			    project_list_col.fetch({
-           	                success:function(collection, response) {
-           	                    project_list_view.render();
-           	                } 
-           	            });
-           		    }        		
-           	    }});
-        	}
-        });
-        
-        on(dom.byId("new_project_button"), "click", function(evt) {
-        	current_project = load_project();        	
-        });
-                
-    });
-    </script>
-</head>
-<body>
-<header>
-</header>
-
-<div>
-<div class="project_current_user"><span class="project_label project_user_label">User: </span><span id="current_user"></span></div>
-<select id="users_select">
-    <option value="">None</option>
-</select>
-</div>
-
-<button type="button" id="new_project_button">New Project</button>
-
-<div id="project_list_div">
-<ul id="project_list">
-</ul>
-</div>
-
-<div role="main" id="project_display">
-</div>
-<button type="button" id="project_save_button" value="save">Save</button>
-
-<div id="users_list_div">
-    <button id="add_user">Add user</button>
-    <ul id="users_list_base">
-    </ul>    
-</div>
-
-<div id="nodes_list_div">
-    <button id="add_node">Add node</button>
-    <ul id="nodes_list_base">
-    </ul>
-</div>
-
-
-<div id="form_display_div">
-</div>
-
-<footer>
-</footer>
-
-<script type="text/template" id="current_user_template">
-</script>
-
-<script type="text/template" id="project_disp_template">
-    <div class="show_form">
-    <h2 class="project_title">Project <%= _id %>: <%= title %></h2>
-    <div class="project_desc"><span class="project_label project_desc_label">Desc: </span><%= description %></div>
-    <div class="project_uri"><span class="project_label project_uri_label">Uri: </span><%= uri %></div>
-    </div>
-</script>
-<script type="text/template" id="project_form_template">
-    <table class="project_form">
-        <thead>
-            <tr><th>Field</th><th>Value</th></tr>
-        </thead>
-        <tbody>
-            <tr><td>Title:</td><td><input type="text" name="title" id="project_form_title" class="form_field" value="<%= title %>"></input></td></tr>
-            <tr><td>Uri :</td><td><input type="text" name="uri" id="project_form_text" class="form_field" value="<%= uri %>"></input></td></tr>
-            <tr><td>Desc :</td><td><textarea name="description" id="project_form_description" class="form_field"><%= description %></textarea></td></tr>            
-        </tbody>
-    </table>
-</script>
-<script type="text/template" id="user_disp_template">
-    <div class="show_form">
-    <h2 class="user_title">User <%= _id %>: <%= title %></h2>
-    <div class="user_desc"><span class="user_label user_desc_label">Desc: </span><%= description %></div>
-    <div class="user_uri"><span class="user_label user_uri_label">Uri: </span><%= uri %></div>
-    <div class="user_color"><span class="user_label user_color_label">Color: </span><%= color %></div>
-    </div>
-    <button type="button" class="remove_button" value="<%= _id %>">Remove<button>
-</script>
-<script type="text/template" id="user_form_template">
-    <table class="user_form">
-        <thead>
-            <tr><th>Field</th><th>Value</th></tr>
-        </thead>
-        <tbody>
-            <tr><td>Title:</td><td><input type="text" name="title" class="form_field" value="<%= title %>"></input></td></tr>
-            <tr><td>Uri :</td><td><input type="text" name="uri" class="form_field" value="<%= uri %>"></input></td></tr>
-            <tr><td>Color :</td><td><input type="text" name="color" class="form_field" value="<%= color %>"></input></td></tr>
-            <tr><td>Desc :</td><td><textarea name="description" class="form_field"><%= description %></textarea></td></tr>
-        </tbody>
-    </table>
-</script>
-<script type="text/template" id="node_disp_template">
-    <div class="show_form">
-    <h2 class="user_title">Node <%= _id %>: <%= title %></h2>
-    <div class="user_desc"><span class="user_label user_desc_label">Desc: </span><%= description %></div>
-    <div class="user_uri"><span class="user_label user_uri_label">Uri: </span><%= uri %></div>
-    <div class="user_creator"><span class="user_label user_uri_label">Creator: </span><%= created_by.title %></div>
-    </div>
-    <button type="button" class="remove_button" value="<%= _id %>">Remove<button>
-</script>
-<script type="text/template" id="node_form_template">
-    <table class="node_form">
-        <thead>
-            <tr><th>Field</th><th>Value</th></tr>
-        </thead>
-        <tbody>
-            <tr><td>Node title:</td><td><input type="text" name="title" class="form_field" value="<%= title %>"></input></td></tr>
-            <tr><td>Node uri :</td><td><input type="text" name="uri" class="form_field" value="<%= uri %>"></input></td></tr>
-            <tr><td>Node creator :</td><td><input type="text" name="created_by" class="form_field" value="<%= created_by.title %>" readonly="readonly"></input></td></tr>
-            <tr><td>Node desc :</td><td><textarea name="description" class="form_field"><%= description %></textarea></td></tr>
-        </tbody>
-    </table>
-</script>
-<script type="text/template" id="project_list_item_template">
-    <span class="title"><%= title %></span>&nbsp;<button type="button" class="project_load_button" value="<%= _id %>">Load</button><button type="button" class="project_delete_button" value="<%= _id %>">Delete</button>
-</script>
-
-
-</body>
-</html>
\ No newline at end of file
--- a/server/src/main/webapp/render-test.html	Tue Mar 19 17:59:34 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
-    <head>
-        <meta charset="utf-8" />
-        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
-        <title>Test de Rendu RENKAN</title>
-        <meta name="description" content="" />
-        <meta name="author" content="Institut de Recherche et d'Innovation" />
-        <script src="lib/jquery.min.js"></script>
-        <script src="lib/jquery.mousewheel.min.js"></script>
-        <script src="lib/underscore-min.js"></script>
-        <script src="js/backbone.js"></script>
-        <script src="js/backbone-relational.js"></script>
-        <script src="lib/paper.js"></script>
-        <script src="js/main.js"></script>
-        <script src="js/models.js"></script>
-        <script src="js/i18n.js"></script>
-        <script src="js/model.js"></script>
-        <script src="js/json-serializer.js"></script>
-        <script src="js/random-data.js"></script>
-        <script src="js/paper-renderer.js"></script>
-        <script type="text/javascript" src="js/config.js"></script>
-        <script type="text/javascript" src="js/dojo.js" data-dojo-config="isDebug: true, parseOnLoad: true"></script>
-        <script data-main="main" src="js/main_coweb.js"></script>
-        <script type="text/javascript">
-            var _proj;
-            $(function() {
-                _proj = new Rkns.Project({
-                    url: "rest/projects/12eff140-e65c-11e1-aff1-0800200c9a66",
-                    //serializer: "RandomData",
-                    canvas_id: "renkanvas",
-                    user: {
-                        id: "anonymous",
-                        title: "anonymous",
-                        color: "#0000ff"
-                    }
-                });
-            });            
-        </script>
-        <link rel="stylesheet" href="css/renkan.css" />
-        <style type="text/css">
-            #topbar { position: absolute; left: 0; top: 0; right: 0; height: 40px; background: #f0f0f0; font-size: 20px; color: #a0a0a0; }
-            #leftbar { position: absolute; left: 0; top: 40px; width: 200px; bottom: 0; background: #d0d0d0; font-size: 20px; color: #ffffff; }
-            #renkan-container { position: absolute; top: 40px; left: 200px; right: 0; bottom: 0; overflow: hidden; }
-            #renkanvas { position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
-            .Rk-Editor { position: absolute; top: 0; left: 0; }
-        </style>
-    </head>
-
-    <body>
-        <div id="topbar">Renkan Top Bar</div>
-        <div id="bottompart">
-            <div id="leftbar">Renkan "Stock Box"</div>
-            <div id="renkan-container">
-                <canvas id="renkanvas" resize></canvas>
-                <div class="Rk-Editor">
-<!--                    <div class="Rk-Button-Edit"></div>-->
-                </div>
-            </div>
-        </div>
-        
-    </body>
-</html>
--- a/server/src/main/webapp/static/js/config.js	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/webapp/static/js/config.js	Fri Mar 22 05:30:19 2013 +0100
@@ -26,6 +26,6 @@
     baseUrl: window.location.protocol + '//' + window.location.host,
 	adminUrl : dojoConfig.baseUrl+'admin',
 	debug: false,
-	useWebSockets: false,
+	useWebSockets: true,
 };
 
--- a/server/src/main/webapp/static/js/corenkan.js	Tue Mar 19 17:59:34 2013 +0100
+++ b/server/src/main/webapp/static/js/corenkan.js	Fri Mar 22 05:30:19 2013 +0100
@@ -114,7 +114,7 @@
     	obj = json.parse(state);
     	console.log("State response", obj);
     	obj['_id'] = obj['id'];
-    	this.project.set(obj);
+    	this.project.set(obj, {validate: true});
     };
     
     function prepareValues(obj,c) {