diff --git a/openbis/.classpath b/openbis/.classpath
index 65931f486370d59848c1fdde0ebe2d1932969d33..e3f870e5534bc6f1981a5cbb9d6a9a405b8f5808 100644
--- a/openbis/.classpath
+++ b/openbis/.classpath
@@ -9,5 +9,7 @@
 	<classpathentry combineaccessrules="false" kind="src" path="/lims"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/lims_base"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/server-common"/>
+	<classpathentry kind="lib" path="/libraries/gwt1.5/gwt-user.jar"/>
+	<classpathentry kind="lib" path="/libraries/testng/testng-jdk15.jar" sourcepath="/libraries/testng/src.zip"/>
 	<classpathentry kind="output" path="targets/classes"/>
 </classpath>
diff --git a/openbis/etc/log.xml b/openbis/etc/log.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9f527877c124a47239d23bb3f03afb0543dac46c
--- /dev/null
+++ b/openbis/etc/log.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!--
+  // This configuration file is suitable for testing purposes. 
+-->
+<log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'>
+
+  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+    <layout class="org.apache.log4j.PatternLayout">
+      <!--
+        // %d: outputs the date of the logging event.
+        // %-5p: priority (i.e. level) of the logging event should be left justified to
+        //       a width of five characters.
+        // %t: outputs the name of the thread that generated the logging event.
+        // %c: outputs the category of the logging event.
+        // %m: outputs the application supplied message associated with the logging event.
+        // %n: outputs the platform dependent line separator character or characters.
+        // %X: outputs the MDC (mapped diagnostic context) associated with the thread that generated the logging event.
+      -->
+      <param name="ConversionPattern"
+        value="%d %-5p [%t]%X{sessionInfo} %c - %m%n" />
+    </layout>
+  </appender>
+
+  <!--
+    // Defined but not used right now.
+  -->
+  <appender name="NULL" class="org.apache.log4j.varia.NullAppender" />
+
+  <!--
+    // Enable full wire (header and content) + context logging
+    // For more information look at http://jakarta.apache.org/commons/httpclient/logging.html.
+    // We do not need to set a level value here as loggers inherit their level from the root logger.
+  -->
+
+  <!-- 
+    // Do not use log level debug otherwise plain passwords are readable.
+  -->
+  <logger name="httpclient.wire">
+    <level value="ERROR" />
+  </logger>
+
+  <!--
+    <logger name="org.apache.commons.httpclient">
+    <level value="DEBUG" />
+    </logger>
+  -->
+
+  <root>
+    <priority value="debug" />
+    <appender-ref ref="STDOUT" />
+  </root>
+
+</log4j:configuration>
diff --git a/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Linux).launch b/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Linux).launch
new file mode 100644
index 0000000000000000000000000000000000000000..47b603b2c4661c256528b12921257913e5fa5fa7
--- /dev/null
+++ b/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Linux).launch	
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/openbis"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;openbis&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/libraries/gwt1.5/linux/gwt-dev-linux.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;openbis&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out targets/www ch.systemsx.cisd.openbis.OpenBIS/index.html"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="openbis"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dlog4j.configuration=etc/log.xml&#13;&#10;-Xmx512M&#13;&#10;-ea"/>
+</launchConfiguration>
diff --git a/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Mac).launch b/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Mac).launch
new file mode 100644
index 0000000000000000000000000000000000000000..6478963fd848f8d94fa10037eeb3b2d454814563
--- /dev/null
+++ b/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Mac).launch	
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/openbis"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;openbis&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/libraries/gwt1.5/mac/gwt-dev-mac.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;openbis&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out targets/www ch.systemsx.cisd.openbis.OpenBIS/index.html"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="openbis"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread&#13;&#10;-Dlog4j.configuration=etc/log.xml&#13;&#10;-Xmx512M&#13;&#10;-ea"/>
+</launchConfiguration>
diff --git a/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Windows).launch b/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Windows).launch
new file mode 100644
index 0000000000000000000000000000000000000000..3b19090cd92ba094c65ccfb91ddb7f74d99dc418
--- /dev/null
+++ b/openbis/resource/eclipse/openBIS GWT Shell (Hosted Mode, Windows).launch	
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/openbis"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;openbis&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;openbis&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/libraries/gwt1.5/windows/gwt-dev-windows.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out targets/www ch.systemsx.cisd.openbis.OpenBIS/index.html"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="openbis"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dlog4j.configuration=etc/log.xml&#13;&#10;-Xmx512M&#13;&#10;-ea"/>
+</launchConfiguration>
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/OpenBIS.gwt.xml b/openbis/source/java/ch/systemsx/cisd/openbis/OpenBIS.gwt.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b46c8ada70556b4ac19bbd094c4373ab1d5b2a4c
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/OpenBIS.gwt.xml
@@ -0,0 +1,19 @@
+<module>
+    <!--
+        // Inherit the core Web Toolkit stuff.
+    -->
+    <inherits name='com.google.gwt.user.User'/>
+    <inherits name="com.google.gwt.user.theme.chrome.Chrome"/>
+    <inherits name="com.google.gwt.i18n.I18N" />
+    
+    <entry-point class='ch.systemsx.cisd.openbis.generic.client.web.client.application.Client' />
+    
+    <!--
+        // Source path elements to Java classes to be compiled to JavaScript
+    -->
+    <source path="generic/client/web/client" />
+    <--source path="plugin/hcs/client/web/client" /-->
+
+    <!-- Do not define servlets here, use web.xml -->
+
+</module>
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/DatabaseInstance.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/DatabaseInstance.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca1c74e2d9ffe4dffe0669cf9b2dc3956b34a497
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/DatabaseInstance.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2008 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.generic.client.web.client.dto;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * 
+ *
+ * @author Franz-Josef Elmer
+ */
+public class DatabaseInstance implements IsSerializable
+{
+    private String code;
+    
+    private String uuid;
+
+    public final String getCode()
+    {
+        return code;
+    }
+
+    public final void setCode(String code)
+    {
+        this.code = code;
+    }
+
+    public final String getUuid()
+    {
+        return uuid;
+    }
+
+    public final void setUuid(String uuid)
+    {
+        this.uuid = uuid;
+    }
+}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/client/.gitignore b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/.gitignore
similarity index 100%
rename from openbis/source/java/ch/systemsx/cisd/openbis/client/.gitignore
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/.gitignore
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/images/favicon.ico b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..5d077385c909f1be1f4d7a98b193ed1c7bca72d1
Binary files /dev/null and b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/favicon.ico differ
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/images/favicon.png b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/favicon.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5b30672e374063ad0b36c4469a028e9e61090d7
Binary files /dev/null and b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/favicon.png differ
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/index.html b/openbis/source/java/ch/systemsx/cisd/openbis/public/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..118fc98b418ffb885acd14080251d477ce65d99a
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/index.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+<title>openBIS</title>
+<!--
+// This script loads your compiled module. If you add any GWT meta tags, they must be added before this line.
+-->
+<script language="javascript" src="ch.systemsx.cisd.openbis.OpenBIS.nocache.js"></script>
+
+<link rel="shortcut icon" href="images/favicon.ico" />
+<link rel="icon" type="image/png" href="images/favicon.png" />
+</head>
+<!--
+// The body can have arbitrary html, or you can leave the body empty if you want to create a completely dynamic ui.
+-->
+<body>
+</body>
+</html>
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/server/.gitignore b/openbis/source/java/ch/systemsx/cisd/openbis/server/.gitignore
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000