From 232383a2b385a98529e65148fd3542405616c2d8 Mon Sep 17 00:00:00 2001
From: Constantin Jucovschi <jucovschi@gmail.com>
Date: Sun, 17 Aug 2014 15:23:55 +0200
Subject: [PATCH] new version

---
 .classpath                                    |  32 ++++
 .project                                      |  23 +++
 .settings/org.eclipse.core.resources.prefs    |   3 +
 .settings/org.eclipse.jdt.core.prefs          |   5 +
 .settings/org.eclipse.m2e.core.prefs          |   4 +
 build.xml                                     |  33 ----
 comm-core.bnd                                 |   1 -
 comm-core.jar                                 | Bin 6077 -> 0 bytes
 .../sally/comm/core/Heartbeatrequest.java     |  39 -----
 .../sally/comm/core/Heartbeatresponse.java    |  39 -----
 .../kwarc/sally/comm/core/ObjectFactory.java  |  71 --------
 .../sally/comm/core/Registerdocument.java     | 162 ------------------
 .../comm/core/Registerdocumentresponse.java   |  71 --------
 .../kwarc/sally/comm/core/package-info.java   |   9 -
 .../kwarc/sally/comm/theo/ObjectFactory.java  |  47 -----
 .../kwarc/sally/comm/theo/Opentheowindow.java | 137 ---------------
 .../kwarc/sally/comm/theo/package-info.java   |   9 -
 js/info_kwarc_sally_comm_core.js              |  58 +++++++
 js/info_kwarc_sally_comm_frames.js            |  77 +++++++++
 js/info_kwarc_sally_comm_theo.js              |  70 ++++++++
 pom.xml                                       |  20 +++
 pom_bootstrap.sh                              |   1 -
 schema/core.xsd                               |  56 ++++--
 schema/frames.xsd                             |  52 ++++++
 schema/theo.xsd                               |  21 ++-
 25 files changed, 407 insertions(+), 633 deletions(-)
 create mode 100644 .classpath
 create mode 100644 .project
 create mode 100644 .settings/org.eclipse.core.resources.prefs
 create mode 100644 .settings/org.eclipse.jdt.core.prefs
 create mode 100644 .settings/org.eclipse.m2e.core.prefs
 delete mode 100644 build.xml
 delete mode 100644 comm-core.bnd
 delete mode 100644 comm-core.jar
 delete mode 100644 java/info/kwarc/sally/comm/core/Heartbeatrequest.java
 delete mode 100644 java/info/kwarc/sally/comm/core/Heartbeatresponse.java
 delete mode 100644 java/info/kwarc/sally/comm/core/ObjectFactory.java
 delete mode 100644 java/info/kwarc/sally/comm/core/Registerdocument.java
 delete mode 100644 java/info/kwarc/sally/comm/core/Registerdocumentresponse.java
 delete mode 100644 java/info/kwarc/sally/comm/core/package-info.java
 delete mode 100644 java/info/kwarc/sally/comm/theo/ObjectFactory.java
 delete mode 100644 java/info/kwarc/sally/comm/theo/Opentheowindow.java
 delete mode 100644 java/info/kwarc/sally/comm/theo/package-info.java
 create mode 100644 js/info_kwarc_sally_comm_core.js
 create mode 100644 js/info_kwarc_sally_comm_frames.js
 create mode 100644 js/info_kwarc_sally_comm_theo.js
 create mode 100644 pom.xml
 delete mode 100755 pom_bootstrap.sh
 create mode 100644 schema/frames.xsd

diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..4556759
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/classes" path="target/generated-sources/jaxb">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</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="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/.project b/.project
new file mode 100644
index 0000000..02cd1c9
--- /dev/null
+++ b/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>comm-core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..7ae16cf
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+encoding//target/generated-sources/jaxb=UTF-8
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..ec4300d
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 65b36eb..0000000
--- a/build.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="comm-core" default="deploy" basedir=".">
-
-    <property name="deploy" value="../../deploy"/>
-    <property name="version" value="0.0.3-SNAPSHOT" />
-
-    <taskdef resource="aQute/bnd/ant/taskdef.properties"
-              classpath="../ant/bnd-2.2.0.jar"/>
-
-    <target name="compile">
-        <mkdir dir="bin"/>
-        <javac destdir="bin" srcdir="java"/>
-    </target>
-
-    <target name="build" depends="compile">
-        <jar destfile="${ant.project.name}.jar">
-            <fileset dir="bin"/>
-        </jar>
-    </target>
-
-    <target name="deploy" depends="compile">
-        <bnd
-          classpath="bin" 
-          failok="false" 
-          exceptions="true" 
-          files="${ant.project.name}.bnd"
-          output="."/>
-    </target>
-
-    <target name="clean">
-        <delete dir="bin" />
-    </target>
-</project>
diff --git a/comm-core.bnd b/comm-core.bnd
deleted file mode 100644
index c1d88f3..0000000
--- a/comm-core.bnd
+++ /dev/null
@@ -1 +0,0 @@
-Export-Package: info.kwarc.sally.comm.core, info.kwarc.sally.comm.theo
\ No newline at end of file
diff --git a/comm-core.jar b/comm-core.jar
deleted file mode 100644
index 87895aa72d08f34861334580bac89503111e7f77..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6077
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
VDPf&MosAIrLypvLG%@P0{{U_J^#1?=

diff --git a/java/info/kwarc/sally/comm/core/Heartbeatrequest.java b/java/info/kwarc/sally/comm/core/Heartbeatrequest.java
deleted file mode 100644
index 7d0edcb..0000000
--- a/java/info/kwarc/sally/comm/core/Heartbeatrequest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.23 at 02:05:16 PM CEST 
-//
-
-
-package info.kwarc.sally.comm.core;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for anonymous complex type.
- * 
- * <p>The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType>
- *   &lt;complexContent>
- *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *     &lt;/restriction>
- *   &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- * 
- * 
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "")
-@XmlRootElement(name = "heartbeatrequest")
-public class Heartbeatrequest {
-
-
-}
diff --git a/java/info/kwarc/sally/comm/core/Heartbeatresponse.java b/java/info/kwarc/sally/comm/core/Heartbeatresponse.java
deleted file mode 100644
index 1abd0a2..0000000
--- a/java/info/kwarc/sally/comm/core/Heartbeatresponse.java
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.23 at 02:05:16 PM CEST 
-//
-
-
-package info.kwarc.sally.comm.core;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for anonymous complex type.
- * 
- * <p>The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType>
- *   &lt;complexContent>
- *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *     &lt;/restriction>
- *   &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- * 
- * 
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "")
-@XmlRootElement(name = "heartbeatresponse")
-public class Heartbeatresponse {
-
-
-}
diff --git a/java/info/kwarc/sally/comm/core/ObjectFactory.java b/java/info/kwarc/sally/comm/core/ObjectFactory.java
deleted file mode 100644
index cb668ad..0000000
--- a/java/info/kwarc/sally/comm/core/ObjectFactory.java
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.23 at 02:05:16 PM CEST 
-//
-
-
-package info.kwarc.sally.comm.core;
-
-import javax.xml.bind.annotation.XmlRegistry;
-
-
-/**
- * This object contains factory methods for each 
- * Java content interface and Java element interface 
- * generated in the info.kwarc.sally.comm.core package. 
- * <p>An ObjectFactory allows you to programatically 
- * construct new instances of the Java representation 
- * for XML content. The Java representation of XML 
- * content can consist of schema derived interfaces 
- * and classes representing the binding of schema 
- * type definitions, element declarations and model 
- * groups.  Factory methods for each of these are 
- * provided in this class.
- * 
- */
-@XmlRegistry
-public class ObjectFactory {
-
-
-    /**
-     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: info.kwarc.sally.comm.core
-     * 
-     */
-    public ObjectFactory() {
-    }
-
-    /**
-     * Create an instance of {@link Registerdocument }
-     * 
-     */
-    public Registerdocument createRegisterdocument() {
-        return new Registerdocument();
-    }
-
-    /**
-     * Create an instance of {@link Registerdocumentresponse }
-     * 
-     */
-    public Registerdocumentresponse createRegisterdocumentresponse() {
-        return new Registerdocumentresponse();
-    }
-
-    /**
-     * Create an instance of {@link Heartbeatrequest }
-     * 
-     */
-    public Heartbeatrequest createHeartbeatrequest() {
-        return new Heartbeatrequest();
-    }
-
-    /**
-     * Create an instance of {@link Heartbeatresponse }
-     * 
-     */
-    public Heartbeatresponse createHeartbeatresponse() {
-        return new Heartbeatresponse();
-    }
-
-}
diff --git a/java/info/kwarc/sally/comm/core/Registerdocument.java b/java/info/kwarc/sally/comm/core/Registerdocument.java
deleted file mode 100644
index 49fcd68..0000000
--- a/java/info/kwarc/sally/comm/core/Registerdocument.java
+++ /dev/null
@@ -1,162 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.23 at 02:05:16 PM CEST 
-//
-
-
-package info.kwarc.sally.comm.core;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for anonymous complex type.
- * 
- * <p>The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType>
- *   &lt;complexContent>
- *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       &lt;sequence>
- *         &lt;element name="documentqueue" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         &lt;element name="interfaces" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
- *         &lt;element name="environmentid" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         &lt;element name="userid" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *       &lt;/sequence>
- *     &lt;/restriction>
- *   &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- * 
- * 
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "documentqueue",
-    "interfaces",
-    "environmentid",
-    "userid"
-})
-@XmlRootElement(name = "registerdocument")
-public class Registerdocument {
-
-    @XmlElement(required = true)
-    protected String documentqueue;
-    @XmlElement(required = true)
-    protected List<String> interfaces;
-    @XmlElement(required = true)
-    protected String environmentid;
-    @XmlElement(required = true)
-    protected String userid;
-
-    /**
-     * Gets the value of the documentqueue property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDocumentqueue() {
-        return documentqueue;
-    }
-
-    /**
-     * Sets the value of the documentqueue property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDocumentqueue(String value) {
-        this.documentqueue = value;
-    }
-
-    /**
-     * Gets the value of the interfaces property.
-     * 
-     * <p>
-     * This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the interfaces property.
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * <pre>
-     *    getInterfaces().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link String }
-     * 
-     * 
-     */
-    public List<String> getInterfaces() {
-        if (interfaces == null) {
-            interfaces = new ArrayList<String>();
-        }
-        return this.interfaces;
-    }
-
-    /**
-     * Gets the value of the environmentid property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getEnvironmentid() {
-        return environmentid;
-    }
-
-    /**
-     * Sets the value of the environmentid property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setEnvironmentid(String value) {
-        this.environmentid = value;
-    }
-
-    /**
-     * Gets the value of the userid property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getUserid() {
-        return userid;
-    }
-
-    /**
-     * Sets the value of the userid property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setUserid(String value) {
-        this.userid = value;
-    }
-
-}
diff --git a/java/info/kwarc/sally/comm/core/Registerdocumentresponse.java b/java/info/kwarc/sally/comm/core/Registerdocumentresponse.java
deleted file mode 100644
index 6d75813..0000000
--- a/java/info/kwarc/sally/comm/core/Registerdocumentresponse.java
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.23 at 02:05:16 PM CEST 
-//
-
-
-package info.kwarc.sally.comm.core;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for anonymous complex type.
- * 
- * <p>The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType>
- *   &lt;complexContent>
- *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       &lt;sequence>
- *         &lt;element name="sallyqueue" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *       &lt;/sequence>
- *     &lt;/restriction>
- *   &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- * 
- * 
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "sallyqueue"
-})
-@XmlRootElement(name = "registerdocumentresponse")
-public class Registerdocumentresponse {
-
-    @XmlElement(required = true)
-    protected String sallyqueue;
-
-    /**
-     * Gets the value of the sallyqueue property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getSallyqueue() {
-        return sallyqueue;
-    }
-
-    /**
-     * Sets the value of the sallyqueue property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setSallyqueue(String value) {
-        this.sallyqueue = value;
-    }
-
-}
diff --git a/java/info/kwarc/sally/comm/core/package-info.java b/java/info/kwarc/sally/comm/core/package-info.java
deleted file mode 100644
index 475a5c5..0000000
--- a/java/info/kwarc/sally/comm/core/package-info.java
+++ /dev/null
@@ -1,9 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.23 at 02:05:16 PM CEST 
-//
-
-@javax.xml.bind.annotation.XmlSchema(namespace = "http://kwarc.info/sally/comm/core", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
-package info.kwarc.sally.comm.core;
diff --git a/java/info/kwarc/sally/comm/theo/ObjectFactory.java b/java/info/kwarc/sally/comm/theo/ObjectFactory.java
deleted file mode 100644
index cadf212..0000000
--- a/java/info/kwarc/sally/comm/theo/ObjectFactory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.10 at 09:56:16 AM CEST 
-//
-
-
-package info.kwarc.sally.comm.theo;
-
-import javax.xml.bind.annotation.XmlRegistry;
-
-
-/**
- * This object contains factory methods for each 
- * Java content interface and Java element interface 
- * generated in the info.kwarc.sally.comm.theo package. 
- * <p>An ObjectFactory allows you to programatically 
- * construct new instances of the Java representation 
- * for XML content. The Java representation of XML 
- * content can consist of schema derived interfaces 
- * and classes representing the binding of schema 
- * type definitions, element declarations and model 
- * groups.  Factory methods for each of these are 
- * provided in this class.
- * 
- */
-@XmlRegistry
-public class ObjectFactory {
-
-
-    /**
-     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: info.kwarc.sally.comm.theo
-     * 
-     */
-    public ObjectFactory() {
-    }
-
-    /**
-     * Create an instance of {@link Opentheowindow }
-     * 
-     */
-    public Opentheowindow createOpentheowindow() {
-        return new Opentheowindow();
-    }
-
-}
diff --git a/java/info/kwarc/sally/comm/theo/Opentheowindow.java b/java/info/kwarc/sally/comm/theo/Opentheowindow.java
deleted file mode 100644
index 9c2115e..0000000
--- a/java/info/kwarc/sally/comm/theo/Opentheowindow.java
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.10 at 09:56:16 AM CEST 
-//
-
-
-package info.kwarc.sally.comm.theo;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for anonymous complex type.
- * 
- * <p>The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType>
- *   &lt;complexContent>
- *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       &lt;sequence>
- *         &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         &lt;element name="posx" type="{http://www.w3.org/2001/XMLSchema}int"/>
- *         &lt;element name="posy" type="{http://www.w3.org/2001/XMLSchema}int"/>
- *       &lt;/sequence>
- *     &lt;/restriction>
- *   &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- * 
- * 
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "url",
-    "title",
-    "posx",
-    "posy"
-})
-@XmlRootElement(name = "opentheowindow")
-public class Opentheowindow {
-
-    @XmlElement(required = true)
-    protected String url;
-    @XmlElement(required = true)
-    protected String title;
-    protected int posx;
-    protected int posy;
-
-    /**
-     * Gets the value of the url property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getUrl() {
-        return url;
-    }
-
-    /**
-     * Sets the value of the url property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setUrl(String value) {
-        this.url = value;
-    }
-
-    /**
-     * Gets the value of the title property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * Sets the value of the title property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setTitle(String value) {
-        this.title = value;
-    }
-
-    /**
-     * Gets the value of the posx property.
-     * 
-     */
-    public int getPosx() {
-        return posx;
-    }
-
-    /**
-     * Sets the value of the posx property.
-     * 
-     */
-    public void setPosx(int value) {
-        this.posx = value;
-    }
-
-    /**
-     * Gets the value of the posy property.
-     * 
-     */
-    public int getPosy() {
-        return posy;
-    }
-
-    /**
-     * Sets the value of the posy property.
-     * 
-     */
-    public void setPosy(int value) {
-        this.posy = value;
-    }
-
-}
diff --git a/java/info/kwarc/sally/comm/theo/package-info.java b/java/info/kwarc/sally/comm/theo/package-info.java
deleted file mode 100644
index 03163a0..0000000
--- a/java/info/kwarc/sally/comm/theo/package-info.java
+++ /dev/null
@@ -1,9 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2014.04.10 at 09:56:16 AM CEST 
-//
-
-@javax.xml.bind.annotation.XmlSchema(namespace = "http://kwarc.info/sally/comm/theo", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
-package info.kwarc.sally.comm.theo;
diff --git a/js/info_kwarc_sally_comm_core.js b/js/info_kwarc_sally_comm_core.js
new file mode 100644
index 0000000..4a011e0
--- /dev/null
+++ b/js/info_kwarc_sally_comm_core.js
@@ -0,0 +1,58 @@
+var info_kwarc_sally_comm_core = {
+  name: 'info_kwarc_sally_comm_core',
+  defaultElementNamespaceURI: 'http:\/\/kwarc.info\/sally\/comm\/core',
+  typeInfos: [{
+      type: 'classInfo',
+      localName: 'HeartbeatResponse',
+      propertyInfos: []
+    }, {
+      type: 'classInfo',
+      localName: 'HeartbeatRequest',
+      propertyInfos: []
+    }, {
+      type: 'classInfo',
+      localName: 'RegisterClientResponse',
+      propertyInfos: [{
+          type: 'element',
+          name: 'sendQueue',
+          elementName: 'SendQueue',
+          typeInfo: 'String'
+        }]
+    }, {
+      type: 'classInfo',
+      localName: 'RegisterClientRequest',
+      propertyInfos: [{
+          type: 'element',
+          name: 'listenQueue',
+          elementName: 'ListenQueue',
+          typeInfo: 'String'
+        }, {
+          type: 'element',
+          name: 'schemas',
+          collection: true,
+          elementName: 'Schemas',
+          typeInfo: 'String'
+        }, {
+          type: 'element',
+          name: 'environmentID',
+          elementName: 'EnvironmentID',
+          typeInfo: 'String'
+        }]
+    }],
+  elementInfos: [{
+      elementName: 'HeartbeatResponse',
+      typeInfo: 'info_kwarc_sally_comm_core.HeartbeatResponse'
+    }, {
+      elementName: 'HeartbeatRequest',
+      typeInfo: 'info_kwarc_sally_comm_core.HeartbeatRequest'
+    }, {
+      elementName: 'RegisterClientResponse',
+      typeInfo: 'info_kwarc_sally_comm_core.RegisterClientResponse'
+    }, {
+      elementName: 'RegisterClientRequest',
+      typeInfo: 'info_kwarc_sally_comm_core.RegisterClientRequest'
+    }]
+};
+if (typeof require === 'function') {
+  module.exports.info_kwarc_sally_comm_core = info_kwarc_sally_comm_core;
+}
\ No newline at end of file
diff --git a/js/info_kwarc_sally_comm_frames.js b/js/info_kwarc_sally_comm_frames.js
new file mode 100644
index 0000000..e6261fe
--- /dev/null
+++ b/js/info_kwarc_sally_comm_frames.js
@@ -0,0 +1,77 @@
+var info_kwarc_sally_comm_frames = {
+  name: 'info_kwarc_sally_comm_frames',
+  defaultElementNamespaceURI: 'http:\/\/kwarc.info\/sally\/comm\/frames',
+  typeInfos: [{
+      type: 'classInfo',
+      localName: 'RemoveDocLevelService',
+      propertyInfos: [{
+          type: 'element',
+          name: 'id',
+          elementName: 'id',
+          typeInfo: 'String'
+        }]
+    }, {
+      type: 'classInfo',
+      localName: 'ExecDocLevelService',
+      propertyInfos: [{
+          type: 'element',
+          name: 'id',
+          elementName: 'id',
+          typeInfo: 'String'
+        }]
+    }, {
+      type: 'classInfo',
+      localName: 'NewDocLevelService',
+      propertyInfos: [{
+          type: 'element',
+          name: 'id',
+          elementName: 'id',
+          typeInfo: 'String'
+        }, {
+          type: 'element',
+          name: 'type',
+          elementName: 'type',
+          typeInfo: 'String'
+        }, {
+          type: 'element',
+          name: 'name',
+          elementName: 'name',
+          typeInfo: 'String'
+        }, {
+          type: 'element',
+          name: 'icon',
+          elementName: 'icon',
+          typeInfo: 'String'
+        }]
+    }, {
+      type: 'classInfo',
+      localName: 'ShowSallyFrameMenu',
+      propertyInfos: [{
+          type: 'element',
+          name: 'posx',
+          elementName: 'posx',
+          typeInfo: 'Int'
+        }, {
+          type: 'element',
+          name: 'posy',
+          elementName: 'posy',
+          typeInfo: 'Int'
+        }]
+    }],
+  elementInfos: [{
+      elementName: 'RemoveDocLevelService',
+      typeInfo: 'info_kwarc_sally_comm_frames.RemoveDocLevelService'
+    }, {
+      elementName: 'ExecDocLevelService',
+      typeInfo: 'info_kwarc_sally_comm_frames.ExecDocLevelService'
+    }, {
+      elementName: 'NewDocLevelService',
+      typeInfo: 'info_kwarc_sally_comm_frames.NewDocLevelService'
+    }, {
+      elementName: 'ShowSallyFrameMenu',
+      typeInfo: 'info_kwarc_sally_comm_frames.ShowSallyFrameMenu'
+    }, {
+      elementName: 'ListenDocLevelServices',
+      typeInfo: 'AnyType'
+    }]
+};
diff --git a/js/info_kwarc_sally_comm_theo.js b/js/info_kwarc_sally_comm_theo.js
new file mode 100644
index 0000000..f475565
--- /dev/null
+++ b/js/info_kwarc_sally_comm_theo.js
@@ -0,0 +1,70 @@
+var info_kwarc_sally_comm_theo = {
+  name: 'info_kwarc_sally_comm_theo',
+  defaultElementNamespaceURI: 'http:\/\/kwarc.info\/sally\/comm\/theo',
+  typeInfos: [{
+      type: 'classInfo',
+      localName: 'OpenTheoWindowRequest',
+      propertyInfos: [{
+          type: 'element',
+          name: 'url',
+          elementName: 'url',
+          typeInfo: 'String'
+        }, {
+          type: 'element',
+          name: 'title',
+          elementName: 'title',
+          typeInfo: 'String'
+        }, {
+          type: 'element',
+          name: 'posx',
+          elementName: 'posx',
+          typeInfo: 'Int'
+        }, {
+          type: 'element',
+          name: 'posy',
+          elementName: 'posy',
+          typeInfo: 'Int'
+        }, {
+          type: 'element',
+          name: 'width',
+          elementName: 'width',
+          typeInfo: 'Int'
+        }, {
+          type: 'element',
+          name: 'height',
+          elementName: 'height',
+          typeInfo: 'Int'
+        }]
+    }, {
+      type: 'classInfo',
+      localName: 'CloseTheoWindow',
+      propertyInfos: [{
+          type: 'element',
+          name: 'id',
+          elementName: 'id',
+          typeInfo: 'String'
+        }]
+    }, {
+      type: 'classInfo',
+      localName: 'OpenTheoWindowResponse',
+      propertyInfos: [{
+          type: 'element',
+          name: 'id',
+          elementName: 'id',
+          typeInfo: 'String'
+        }]
+    }],
+  elementInfos: [{
+      elementName: 'OpenTheoWindowRequest',
+      typeInfo: 'info_kwarc_sally_comm_theo.OpenTheoWindowRequest'
+    }, {
+      elementName: 'CloseTheoWindow',
+      typeInfo: 'info_kwarc_sally_comm_theo.CloseTheoWindow'
+    }, {
+      elementName: 'OpenTheoWindowResponse',
+      typeInfo: 'info_kwarc_sally_comm_theo.OpenTheoWindowResponse'
+    }]
+};
+if (typeof require === 'function') {
+  module.exports.info_kwarc_sally_comm_theo = info_kwarc_sally_comm_theo;
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..a124a0d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,20 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<packaging>bundle</packaging>
+
+	<parent>
+		<groupId>info.kwarc.sally4.comm</groupId>
+		<artifactId>comm-parent</artifactId>
+		<version>0.0.4-SNAPSHOT</version>
+		<relativePath>../comm-parent</relativePath>
+	</parent>
+
+	<artifactId>comm-core</artifactId>
+	<name>Sally4 Core Communication</name>
+
+	<properties>
+		<bundle.export-package>info.kwarc.sally*;</bundle.export-package>
+		<bundle.comm-package>core,frames,theo</bundle.comm-package>
+	</properties>
+</project>
diff --git a/pom_bootstrap.sh b/pom_bootstrap.sh
deleted file mode 100755
index bea8afe..0000000
--- a/pom_bootstrap.sh
+++ /dev/null
@@ -1 +0,0 @@
-mvn install:install-file -DgroupId=info.kwarc.sally4.comm -DartifactId=comm-core -Dpackaging=jar -Dversion=0.0.3 -Dfile=comm-core.jar
diff --git a/schema/core.xsd b/schema/core.xsd
index 4734e25..28f5df6 100644
--- a/schema/core.xsd
+++ b/schema/core.xsd
@@ -2,36 +2,66 @@
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 	targetNamespace="http://kwarc.info/sally/comm/core" elementFormDefault="qualified">
 
-	<xs:element name="registerdocument">
+	<xs:element name="RegisterClientRequest">
 		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="documentqueue" type="xs:string" />
-				<xs:element name="interfaces" type="xs:string" maxOccurs="unbounded"
-					minOccurs="1"></xs:element>
-				<xs:element name="environmentid" type="xs:string" />
-				<xs:element name="userid" type="xs:string" />
+            <xs:annotation>
+            	<xs:documentation>The RegisterClientRequest is sent by an external application (called client) such as an Alex or Theo to SALLY. This message should be send to "/queue/sally_register" and as result will get a RegisterClientResponse object.
+ </xs:documentation>
+            </xs:annotation>
+            <xs:sequence>
+				<xs:element name="ListenQueue">
+                    <xs:annotation>
+                    	<xs:documentation>After a successful registeration, any requests coming from SALLY will be send to this queue. Note that this does not apply to the RegisterClientResponse, which will be send to the REPLY-TO queue of the RegisterClientRequest message.</xs:documentation>
+                    </xs:annotation>
+                    <xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:minLength value="5"></xs:minLength>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="Schemas" type="xs:string" maxOccurs="unbounded"
+					minOccurs="1">
+					<xs:annotation>
+						<xs:documentation>Specifies the supported communication schema definitions of this client. For example, if communication schema "theo" is specified then SALLY assumes that sending a OpenTheoWindowRequest message (specified in theo.xsd) to this client will result in a Theo window to be opened.</xs:documentation>
+					</xs:annotation></xs:element>
+				<xs:element name="EnvironmentID">
+                    <xs:annotation>
+                    	<xs:documentation>Specifies the environment ID of this SALLY client. For desktop applications, this is stored in environment variable SALLYENVID. For Web applications, it is found in window.SALLYENVID. If no environment ID is found, a random one should be generated and stored in the location it was expected to be found. </xs:documentation>
+                    </xs:annotation>
+                    <xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:minLength value="5"></xs:minLength>
+							<xs:maxLength value="30"></xs:maxLength>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
 			</xs:sequence>
 		</xs:complexType>
 	</xs:element>
 
 
-	<xs:element name="registerdocumentresponse">
-		<xs:complexType>
+	<xs:element name="RegisterClientResponse">
+        <xs:annotation>
+        	<xs:documentation>After a successful registration, SALLY notifies the SALLY client of the queue (in SendQueue) it should use for any further communication. </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
 			<xs:sequence>
-				<xs:element name="sallyqueue" type="xs:string" />
+				<xs:element name="SendQueue" type="xs:string" />
 			</xs:sequence>
 		</xs:complexType>
 	</xs:element>
 
-	<xs:element name="heartbeatrequest">
+	<xs:element name="HeartbeatRequest">
 		<xs:complexType>
+            <xs:annotation>
+            	<xs:documentation>After successful registration, SALLY will send a HeartbeatRequest message to the registered SALLY client and expects to receive a HeartbeatResponse message back after at most 20 sec. If this operation times out, the SALLY client will be unregistered automatically.</xs:documentation>
+            </xs:annotation>
 		</xs:complexType>
 	</xs:element>
 
-	<xs:element name="heartbeatresponse">
+	<xs:element name="HeartbeatResponse">
 		<xs:complexType>
 		</xs:complexType>
 	</xs:element>
 
-
 </xs:schema>
\ No newline at end of file
diff --git a/schema/frames.xsd b/schema/frames.xsd
new file mode 100644
index 0000000..6d6e1fa
--- /dev/null
+++ b/schema/frames.xsd
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	targetNamespace="http://kwarc.info/sally/comm/frames"
+	elementFormDefault="qualified">
+
+	<xs:element name="ShowSallyFrameMenu">
+		<xs:annotation>
+			<xs:documentation>The ShowSallyFrameMenu message is sent by a SALLY
+				client to SALLY and requests it to show which services are
+				applicable to the current context. This window will placed at
+				position (posx, posy)
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="posx" type="xs:int" />
+				<xs:element name="posy" type="xs:int" />
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="ListenDocLevelServices">
+	</xs:element>
+
+	<xs:element name="NewDocLevelService">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="id" type="xs:string"></xs:element>
+				<xs:element name="type" type="xs:string"></xs:element>
+				<xs:element name="name" type="xs:string"></xs:element>
+				<xs:element name="icon" type="xs:string"></xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="RemoveDocLevelService">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="id" type="xs:string"></xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	
+	<xs:element name="ExecDocLevelService">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="id" type="xs:string"></xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	
+</xs:schema>
\ No newline at end of file
diff --git a/schema/theo.xsd b/schema/theo.xsd
index adc5253..a12269f 100644
--- a/schema/theo.xsd
+++ b/schema/theo.xsd
@@ -1,15 +1,34 @@
 <?xml version="1.0"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://kwarc.info/sally/comm/theo" elementFormDefault="qualified">
 
-    <xs:element name="opentheowindow">
+    <xs:element name="OpenTheoWindowRequest">
     	<xs:complexType>
         	<xs:sequence>
 				<xs:element name="url" type="xs:string" />
 				<xs:element name="title" type="xs:string" />
 				<xs:element name="posx" type="xs:int" />
 				<xs:element name="posy" type="xs:int" />
+				<xs:element name="width" type="xs:int" />
+				<xs:element name="height" type="xs:int" />
     	    </xs:sequence>
  	   </xs:complexType>
     </xs:element>
 
+    <xs:element name="OpenTheoWindowResponse">
+    	<xs:complexType>
+        	<xs:sequence>
+				<xs:element name="id" type="xs:string" />
+    	    </xs:sequence>
+ 	   </xs:complexType>
+    </xs:element>
+
+    <xs:element name="CloseTheoWindow">
+    	<xs:complexType>
+        	<xs:sequence>
+				<xs:element name="id" type="xs:string" />
+    	    </xs:sequence>
+ 	   </xs:complexType>
+    </xs:element>
+
+
 </xs:schema>
\ No newline at end of file
-- 
GitLab