From 2301edbf56dd000cd2cdda00c5b8c76e72ed40e6 Mon Sep 17 00:00:00 2001
From: Hallvard Traetteberg <hal@ntnu.no>
Date: Sun, 29 Sep 2019 22:02:42 +0200
Subject: [PATCH] Moved emf+osgi stuff to another OSGi workspace

---
 dict-ws/README.md                             |   2 +
 dict-ws/cnf/build.bnd                         |  12 --
 dict-ws/cnf/local/index.xml                   |   2 +-
 dict-ws/cnf/local/index.xml.sha               |   2 +-
 dict-ws/cnf/release/index.xml                 |   2 +-
 dict-ws/cnf/release/index.xml.sha             |   2 +-
 emf-ws/.gitattributes                         |  75 ++++++++
 emf-ws/.gitignore                             |   4 +
 emf-ws/.gradle-wrapper/gradle-wrapper.jar     | Bin 0 -> 55741 bytes
 .../.gradle-wrapper/gradle-wrapper.properties |   5 +
 emf-ws/.travis.yml                            |  10 +
 emf-ws/README.md                              |  84 +++++++++
 emf-ws/build.gradle                           |   4 +
 emf-ws/cnf/.gitignore                         |   1 +
 emf-ws/cnf/.project                           |  11 ++
 emf-ws/cnf/build.bnd                          |  88 +++++++++
 emf-ws/cnf/central.maven                      |   9 +
 emf-ws/cnf/local/index.xml                    |   2 +
 emf-ws/cnf/local/index.xml.sha                |   1 +
 emf-ws/cnf/release/index.xml                  |   2 +
 emf-ws/cnf/release/index.xml.sha              |   1 +
 emf-ws/cnf/templates/index.xml                |  96 ++++++++++
 emf-ws/cnf/templates/index.xml.sha            |   1 +
 emf-ws/gradle.properties                      |   3 +
 emf-ws/gradlew                                | 172 ++++++++++++++++++
 emf-ws/gradlew.bat                            |  84 +++++++++
 emf-ws/settings.gradle                        |  14 ++
 .../tdt4250.emf.servlet/.classpath            |   0
 .../tdt4250.emf.servlet/.project              |   0
 .../tdt4250.emf.servlet/bnd.bnd               |   0
 .../tdt4250.emf.servlet/launch.bndrun         |   0
 .../tdt4250/ra/servlet/ResourceServlet.java   |   0
 .../test/tdt4250/ra/servlet/ignore.md         |   0
 .../.classpath                                |   0
 .../tdt4250.emf.servletsupport.impl/.project  |   0
 .../tdt4250.emf.servletsupport.impl/bnd.bnd   |   0
 .../launch.bndrun                             |   0
 .../servletsupport/impl/AnnotationUtil.java   |   0
 .../impl/JsonEAttributeSerializer.java        |   0
 .../impl/JsonEObjectSerializer.java           |   0
 .../servletsupport/impl/JsonSerializer.java   |   0
 .../impl/NameReferenceResolver.java           |   0
 .../servletsupport/impl/RequestHandler.java   |   0
 .../servletsupport/impl/RequestSupport.java   |   0
 .../servletsupport/impl/ResourceProvider.java |   0
 .../servletsupport/impl/package-info.java     |   0
 .../tdt4250/servletsupport/impl/ignore.md     |   0
 .../tdt4250.emf.servletsupport/.classpath     |   0
 .../tdt4250.emf.servletsupport/.project       |   0
 .../tdt4250.emf.servletsupport/bnd.bnd        |   0
 .../tdt4250/servletsupport/IPostHandler.java  |   0
 .../servletsupport/IReferenceResolver.java    |   0
 .../servletsupport/IRequestPathResolver.java  |   0
 .../servletsupport/IRequestQueryExecutor.java |   0
 .../servletsupport/IResourceProvider.java     |   0
 .../servletsupport/IResponseSerializer.java   |   0
 .../tdt4250/servletsupport/package-info.java  |   0
 emf-ws/tdt4250.ra.resource/.classpath         |  12 ++
 emf-ws/tdt4250.ra.resource/.project           |  23 +++
 emf-ws/tdt4250.ra.resource/bnd.bnd            |  20 ++
 emf-ws/tdt4250.ra.resource/launch.bndrun      |  18 ++
 .../tdt4250/ra/resource/SampleResource.java   |  31 ++++
 .../src/tdt4250/ra/resource/sample.ra         |  20 ++
 .../test/tdt4250/ra/resource/ignore.md        |   1 +
 64 files changed, 798 insertions(+), 16 deletions(-)
 create mode 100644 emf-ws/.gitattributes
 create mode 100644 emf-ws/.gitignore
 create mode 100644 emf-ws/.gradle-wrapper/gradle-wrapper.jar
 create mode 100644 emf-ws/.gradle-wrapper/gradle-wrapper.properties
 create mode 100644 emf-ws/.travis.yml
 create mode 100644 emf-ws/README.md
 create mode 100644 emf-ws/build.gradle
 create mode 100644 emf-ws/cnf/.gitignore
 create mode 100644 emf-ws/cnf/.project
 create mode 100644 emf-ws/cnf/build.bnd
 create mode 100644 emf-ws/cnf/central.maven
 create mode 100644 emf-ws/cnf/local/index.xml
 create mode 100644 emf-ws/cnf/local/index.xml.sha
 create mode 100644 emf-ws/cnf/release/index.xml
 create mode 100644 emf-ws/cnf/release/index.xml.sha
 create mode 100644 emf-ws/cnf/templates/index.xml
 create mode 100644 emf-ws/cnf/templates/index.xml.sha
 create mode 100644 emf-ws/gradle.properties
 create mode 100644 emf-ws/gradlew
 create mode 100644 emf-ws/gradlew.bat
 create mode 100644 emf-ws/settings.gradle
 rename {dict-ws => emf-ws}/tdt4250.emf.servlet/.classpath (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servlet/.project (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servlet/bnd.bnd (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servlet/launch.bndrun (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servlet/src/tdt4250/ra/servlet/ResourceServlet.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servlet/test/tdt4250/ra/servlet/ignore.md (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/.classpath (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/.project (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/bnd.bnd (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/launch.bndrun (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/AnnotationUtil.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEAttributeSerializer.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEObjectSerializer.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonSerializer.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/NameReferenceResolver.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestHandler.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestSupport.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/ResourceProvider.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/package-info.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport.impl/test/tdt4250/servletsupport/impl/ignore.md (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/.classpath (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/.project (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/bnd.bnd (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IPostHandler.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IReferenceResolver.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestPathResolver.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestQueryExecutor.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResourceProvider.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResponseSerializer.java (100%)
 rename {dict-ws => emf-ws}/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/package-info.java (100%)
 create mode 100644 emf-ws/tdt4250.ra.resource/.classpath
 create mode 100644 emf-ws/tdt4250.ra.resource/.project
 create mode 100644 emf-ws/tdt4250.ra.resource/bnd.bnd
 create mode 100644 emf-ws/tdt4250.ra.resource/launch.bndrun
 create mode 100644 emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/SampleResource.java
 create mode 100644 emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/sample.ra
 create mode 100644 emf-ws/tdt4250.ra.resource/test/tdt4250/ra/resource/ignore.md

diff --git a/dict-ws/README.md b/dict-ws/README.md
index 518e2ed..5d00859 100644
--- a/dict-ws/README.md
+++ b/dict-ws/README.md
@@ -2,6 +2,8 @@
 
 This OSGi project shows how an unmodular (monolithic, one-bundle) OSGi project is transformed into a modular, flexible one, in two steps. All three variants implements a simple web service for searching one or more dictionaries. Logically, all variants consist of a domain part, the dictionary- and search-related classes (among others, a **Dict** interface and its implementations) and the web service (a **Servlet**). Technically, the variants differ in how these parts are distributed among bundles and utilize the component mechanism.
 
+In addition to the dict project, there is an (unrelated) example of how to use an EMF model developed using Eclipse PDE in an OSGi bundle (project) managed by Bnd(tools). The case is a REST API serving an EMF model instance, see [below](#emf-rest-in-osgi).   
+
 ## Setup
 
 The root project and folder was created using the BndTools' Bnd OSGi Workspace wizard, and each bundle with the Bnd OSGi Project wizard. Which bundle template to use depends on the specific bundle, there are api, component and servlet bundles in this project.
diff --git a/dict-ws/cnf/build.bnd b/dict-ws/cnf/build.bnd
index 69ecd32..756129c 100644
--- a/dict-ws/cnf/build.bnd
+++ b/dict-ws/cnf/build.bnd
@@ -58,18 +58,6 @@
 		pretty = true; \
 		local = ${build}/release
 
--plugin.EMF: aQute.bnd.repository.p2.provider.P2Repository; \
-    name = "EMF 2.19 Release"; \
-    url = "http://download.eclipse.org/modeling/emf/emf/builds/release/2.19"
-
--plugin.Acceleo: aQute.bnd.repository.p2.provider.P2Repository; \
-    name = "Acceleo Updates 3.7 Release"; \
-    url = "https://download.eclipse.org/acceleo/updates/releases/3.7"
-
--plugin.Ra: aQute.bnd.repository.p2.provider.P2Repository; \
-    name = "Local Ra repository"; \
-    url = "file:${build}/../../tdt4250.ra.repository"
-
 -releaserepo: Release
 -baselinerepo: Release
 
diff --git a/dict-ws/cnf/local/index.xml b/dict-ws/cnf/local/index.xml
index 32a4a09..b0e92af 100644
--- a/dict-ws/cnf/local/index.xml
+++ b/dict-ws/cnf/local/index.xml
@@ -1,2 +1,2 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<repository xmlns="http://www.osgi.org/xmlns/repository/v1.0.0" name="Local" increment="1568286905496"/>
+<repository xmlns="http://www.osgi.org/xmlns/repository/v1.0.0" name="Local" increment="1569449476756"/>
diff --git a/dict-ws/cnf/local/index.xml.sha b/dict-ws/cnf/local/index.xml.sha
index ca0e3d6..5ac20d7 100644
--- a/dict-ws/cnf/local/index.xml.sha
+++ b/dict-ws/cnf/local/index.xml.sha
@@ -1 +1 @@
-cedf409ea38a6a13e0a64001bc4efe2bfbd9b1212750671d5aaaea52a658b65a
\ No newline at end of file
+0f4ab43c8259f8770941c97370a69c94057545349c472b60455a3868043d7c19
\ No newline at end of file
diff --git a/dict-ws/cnf/release/index.xml b/dict-ws/cnf/release/index.xml
index 4af8098..f818396 100644
--- a/dict-ws/cnf/release/index.xml
+++ b/dict-ws/cnf/release/index.xml
@@ -1,2 +1,2 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<repository xmlns="http://www.osgi.org/xmlns/repository/v1.0.0" name="Release" increment="1568286905501"/>
+<repository xmlns="http://www.osgi.org/xmlns/repository/v1.0.0" name="Release" increment="1569449476759"/>
diff --git a/dict-ws/cnf/release/index.xml.sha b/dict-ws/cnf/release/index.xml.sha
index 5d41024..68e315e 100644
--- a/dict-ws/cnf/release/index.xml.sha
+++ b/dict-ws/cnf/release/index.xml.sha
@@ -1 +1 @@
-ea524b1f831740b9be82930dd5a0fdb50339e83f978e99477b66f7e840fa4fef
\ No newline at end of file
+5268a56c364964c76e45f65d30b6e34866042e4542a5eae69fe71e863d1dd953
\ No newline at end of file
diff --git a/emf-ws/.gitattributes b/emf-ws/.gitattributes
new file mode 100644
index 0000000..b21186b
--- /dev/null
+++ b/emf-ws/.gitattributes
@@ -0,0 +1,75 @@
+# Text files with LF eol
+*.auth crlf=input
+*.awk crlf=input
+*.bnd crlf=input
+*.bndrun crlf=input
+*.c crlf=input ident
+*.conf crlf=input
+*.cpp crlf=input ident
+*.css crlf=input
+*.ddf crlf=input
+*.ee crlf=input
+*.gradle crlf=input
+*.groovy crlf=input
+*.h crlf=input ident
+*.html crlf=input ident
+*.java crlf=input ident
+*.js crlf=input
+*.lib crlf=input
+*.md crlf=input
+*.MF crlf=input
+*.mf crlf=input
+*.perm crlf=input
+*.php crlf=input
+*.pl crlf=input
+*.pom crlf=input
+*.prefs crlf=input
+*.properties crlf=input
+*.py crlf=input
+*.schema crlf=input
+*.SF crlf=input
+*.sh crlf=input
+*.tcl crlf=input
+*.txt crlf=input
+*.xml crlf=input
+*.xsd crlf=input ident
+*.xsl crlf=input
+*.xslt crlf=input
+*.yml crlf=input
+.classpath crlf=input
+.project crlf=input
+gradlew crlf=input
+packageinfo crlf=input
+Makefile crlf=input
+README crlf=input
+LICENSE crlf=input
+
+# No EOL translation
+*.bat -crlf
+
+# Binary. No EOL translation, no diff
+*.ico binary
+*.jpeg binary
+*.jpg binary
+*.png binary
+*.crt binary
+*.pdf binary
+*.dll binary
+*.jar binary
+*.jnilib binary
+*.so binary
+*.zip binary
+*.doc binary
+*.ppt binary
+*.xls binary
+*.odg binary
+*.odp binary
+*.ods binary
+*.odt binary
+*.otg binary
+*.otp binary
+*.ots binary
+*.ott binary
+*.key binary
+*.numbers binary
+*.pages binary
diff --git a/emf-ws/.gitignore b/emf-ws/.gitignore
new file mode 100644
index 0000000..6f9c31e
--- /dev/null
+++ b/emf-ws/.gitignore
@@ -0,0 +1,4 @@
+.DS_Store
+.gradle/
+generated/
+.metadata
diff --git a/emf-ws/.gradle-wrapper/gradle-wrapper.jar b/emf-ws/.gradle-wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..457aad0d98108420a977756b7145c93c8910b076
GIT binary patch
literal 55741
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

literal 0
HcmV?d00001

diff --git a/emf-ws/.gradle-wrapper/gradle-wrapper.properties b/emf-ws/.gradle-wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..75b8c7c
--- /dev/null
+++ b/emf-ws/.gradle-wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/emf-ws/.travis.yml b/emf-ws/.travis.yml
new file mode 100644
index 0000000..bd29779
--- /dev/null
+++ b/emf-ws/.travis.yml
@@ -0,0 +1,10 @@
+sudo: false
+
+language: java
+
+jdk:
+  - oraclejdk8
+
+install: ./gradlew --version
+
+script: ./gradlew --continue
diff --git a/emf-ws/README.md b/emf-ws/README.md
new file mode 100644
index 0000000..72d38c9
--- /dev/null
+++ b/emf-ws/README.md
@@ -0,0 +1,84 @@
+# tdt4250.dict project
+
+This OSGi project shows how an unmodular (monolithic, one-bundle) OSGi project is transformed into a modular, flexible one, in two steps. All three variants implements a simple web service for searching one or more dictionaries. Logically, all variants consist of a domain part, the dictionary- and search-related classes (among others, a **Dict** interface and its implementations) and the web service (a **Servlet**). Technically, the variants differ in how these parts are distributed among bundles and utilize the component mechanism.
+
+In addition to the dict project, there is an (unrelated) example of how to use an EMF model developed using Eclipse PDE in an OSGi bundle (project) managed by Bnd(tools). The case is a REST API serving an EMF model instance, see [below](#emf-rest-in-osgi).   
+
+## Setup
+
+The root project and folder was created using the BndTools' Bnd OSGi Workspace wizard, and each bundle with the Bnd OSGi Project wizard. Which bundle template to use depends on the specific bundle, there are api, component and servlet bundles in this project.
+
+To make your own OSGi project with a similar structure, it's best to start with a fresh Eclipse workspace, create a Bnd OSGi Workspace there and the bundles one by one, making sure to "guess" the right template to use. To be able to glance at this example while working on your own, open the example workspace in a *different* Eclipse installation, since it's difficult to open the same Eclipse one different workspaces simultaneously.  
+
+To run the project, you should open the launch.bndrun file in the servlet bundle, make sure it resolves and use **Run OSGi**. You can try various commands in the gogo shell, e.g. **felix:lb** to see which bundles are in which states or **scr:list** to se the active components, and do a dictionary lookup using **http://localhost:8080/dict?q=master** in a browser.
+
+## Variant 1
+
+The first variant consists of the [tdt4250.dict1.servlet](tdt4250.dict1.servlet/README.md) bundle, which was created using the Servlet Component template. It contains both the logic for dictionary search and the **Servlet**, i.e. it is unmodular. It's also inflexible, since the set of dictionaries is hard-coded into the **Servlet** implementation class.
+
+### Packages
+
+- **tdt4250.dict1.core**: The core interfaces and classes that will be used by dictionary users and implementations. There's a **Dict** interface, a **DictSearch** class managing search within a set of **Dict**s and a **DictSearchResult** class for the search result.
+- **tdt4250.dict1.no**: An implementation of the **Dict** interface that loads a Norwegian dictionary from a file, with supporting classes.
+- **tdt4250.dict1.servlet**: The **Servlet** component (i.e. implementation annotated with **@Component**) implementing a web service for searching a set of dictionaries (currently just the Norwegian one). 
+
+## Variant 2
+
+The second variant consists of the [tdt4250.dict2.core](tdt4250.dict2.core/README.md) and [tdt4250.dict2.servlet](tdt4250.dict2.servlet/README.md) bundles. It's somewhat modular, since it's split into at least two bundles. It's also inflexiblie, since the set of dictionaries is still hard-coded into the Servlet implementation class.
+
+### Bundles and packages
+
+* **tdt4250.dict2.core**
+  * **tdt4250.dict2.core**: Same core interfaces and classes of variant 1.
+  * **tdt4250.dict2.no**: Same **Dict** implementation and supporting classes as in variant 1.
+* **tdt4250.dict2.servlet**
+  * **tdt4250.dict2.servlet**: The same **Servlet** component with hard-coded set of dictionaries (currently just the Norwegian one). 
+
+## Variant 3
+
+The third variant consists of the [tdt4250.dict3.api](tdt4250.dict3.api/README.md), [tdt4250.dict3.util](tdt4250.dict3.util/README.md), [tdt4250.dict3.no](tdt4250.dict3.no/README.md), [tdt4250.dict3.servlet](tdt4250.dict3.servlet/README.md) (and [tdt4250.dict3.rest](tdt4250.dict3.rest/README.md) and [tdt4250.dict3.gogo](tdt4250.dict3.gogo/README.md) bundles. It's modular, being split into bundles with minimal dependencies, and flexible, since new bundles can contribute additional dictionaries as components.
+
+### Bundles and packages
+
+* **tdt4250.dict3.api**
+  * **tdt4250.dict3.api**: Same core interfaces and classes of variant 2.
+* **tdt4250.dict3.util**:
+  * **tdt4250.dict3.util**:
+  * **tdt4250.dict3.util.internal**:
+* **tdt4250.dict3.no**: Same **Dict** implementation as in variant 2.
+  * **tdt4250.dict3.no**: Same **Dict** implementation and supporting classes as in variant 1.
+* **tdt4250.dict3.servlet**
+  * **tdt4250.dict3.servlet**: The same **Servlet** implementation, but now depending on (injected) **Dict** services to make it more flexible. 
+* **tdt4250.dict3.gogo**
+  * **tdt4250.dict3.gogo**: Gogo shell commands for managing **Dict** service components. 
+
+## EMF REST in OSGi
+
+This (unrelated) part of this example shows how to serve an EMF instance in a REST API. There's two neat things with this example:
+
+* the REST API servlet is generic, so it can serve any EMF model instance, optionally guided by model annotations
+* the EMF project bundles are built by Eclipse PDE (outside this OSGi project), and used here
+
+### Generic EMF REST servlet
+
+You can think of a REST API as a way of navigating from a set of root objects to some objects of interest and either reading or operating on them. Navigation is done along associations (references in Ecore terminologi) and you can typically filter and select while navigating. The result is typically serialized back as Json.
+
+If you're doing this in pure Java, you can use a combination of reflection and annotations to do this generically. The **tdt4250.emf.*** bundles provide the same for EMF: generic REST API access to any EMF model instance driven by the model:
+
+* **tdt4250.emf.servletsupport**: Service interfaces for various aspects of the the REST API, like navigating along associations, applying a final operation and serializing the result.
+* **tdt4250.emf.servletsupport.impl**: Generic implementation of the service interfaces
+* **tdt4250.emf.servlet.**: The end-point that decodes a request and uses the services. It supports any set of named resources, so the first path segment is the resources to access, and the rest is the REST path and optional query/operation.
+
+### Making EMF model bundles available for OSGi
+
+To test the generic REST support, a resource allocation model (for university staff and courses) is used. This corresponding EMF model project (in general PDE bundle/plugin projects) is outside and in the same folder as the OSGi workspace. The layout is as follows
+
+* **examples** - the git repo folder
+  * **dict-ws** - the OSGi workspace
+    * **cnf** - OSGi workspace configuration project
+    * **tdt4250.emf.*** - bundle project providing REST servlet
+    * **tdt4250.ra.resource - bundle providing a sample EMF resource (instance of ra model) to serve
+  * tdt4250.ra - EMF resource allocation model project
+  * tdt4250.ra.feature - features to publish in p2 repository
+  * tdt4250.ra.repository - p2 repository project
+
diff --git a/emf-ws/build.gradle b/emf-ws/build.gradle
new file mode 100644
index 0000000..23fe818
--- /dev/null
+++ b/emf-ws/build.gradle
@@ -0,0 +1,4 @@
+// Available to customize the build
+wrapper {
+  jarFile = rootProject.file('.gradle-wrapper/gradle-wrapper.jar')
+}
diff --git a/emf-ws/cnf/.gitignore b/emf-ws/cnf/.gitignore
new file mode 100644
index 0000000..0a2101f
--- /dev/null
+++ b/emf-ws/cnf/.gitignore
@@ -0,0 +1 @@
+/cache/
diff --git a/emf-ws/cnf/.project b/emf-ws/cnf/.project
new file mode 100644
index 0000000..1397bbe
--- /dev/null
+++ b/emf-ws/cnf/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>cnf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/emf-ws/cnf/build.bnd b/emf-ws/cnf/build.bnd
new file mode 100644
index 0000000..69ecd32
--- /dev/null
+++ b/emf-ws/cnf/build.bnd
@@ -0,0 +1,88 @@
+# Configure Repositories
+-plugin.1.R7.API: \
+	aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+		snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+		releaseUrls=https://repo.maven.apache.org/maven2/; \
+		revision=org.osgi.enroute:osgi-api:7.0.0; \
+		readOnly=true; \
+		name="OSGi R7 API"
+-plugin.2.Enterprise.API: \
+	aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+		snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+		releaseUrls=https://repo.maven.apache.org/maven2/; \
+		revision=org.osgi.enroute:enterprise-api:7.0.0; \
+		readOnly=true; \
+		name="Enterprise Java APIs"
+-plugin.3.R7.Impl: \
+	aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+		snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+		releaseUrls=https://repo.maven.apache.org/maven2/; \
+		revision=org.osgi.enroute:impl-index:7.0.0; \
+		readOnly=true; \
+		name="OSGi R7 Reference Implementations"
+-plugin.4.Test: \
+	aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+		snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+		releaseUrls=https://repo.maven.apache.org/maven2/; \
+		revision=org.osgi.enroute:test-bundles:7.0.0; \
+		readOnly=true; \
+		name="Testing Bundles"
+-plugin.5.Debug: \
+	aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+		snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+		releaseUrls=https://repo.maven.apache.org/maven2/; \
+		revision=org.osgi.enroute:debug-bundles:7.0.0; \
+		readOnly=true; \
+		name="Debug Bundles"
+-plugin.6.Central: \
+	aQute.bnd.repository.maven.provider.MavenBndRepository; \
+		releaseUrl=https://repo.maven.apache.org/maven2/; \
+		index=${.}/central.maven; \
+		readOnly=true; \
+		name="Maven Central"
+-plugin.7.Local: \
+	aQute.bnd.deployer.repository.LocalIndexedRepo; \
+		name = Local; \
+		pretty = true; \
+		local = ${build}/local
+
+-plugin.8.Templates: \
+	aQute.bnd.deployer.repository.LocalIndexedRepo; \
+		name = Templates; \
+		pretty = true; \
+		local = ${build}/templates
+
+-plugin.9.Release: \
+	aQute.bnd.deployer.repository.LocalIndexedRepo; \
+		name = Release; \
+		pretty = true; \
+		local = ${build}/release
+
+-plugin.EMF: aQute.bnd.repository.p2.provider.P2Repository; \
+    name = "EMF 2.19 Release"; \
+    url = "http://download.eclipse.org/modeling/emf/emf/builds/release/2.19"
+
+-plugin.Acceleo: aQute.bnd.repository.p2.provider.P2Repository; \
+    name = "Acceleo Updates 3.7 Release"; \
+    url = "https://download.eclipse.org/acceleo/updates/releases/3.7"
+
+-plugin.Ra: aQute.bnd.repository.p2.provider.P2Repository; \
+    name = "Local Ra repository"; \
+    url = "file:${build}/../../tdt4250.ra.repository"
+
+-releaserepo: Release
+-baselinerepo: Release
+
+# Always use contracts
+-contract: *
+
+# Set Git revision information in the manifests of built bundles
+Git-Descriptor:           ${system-allow-fail;git describe --dirty --always}
+Git-SHA:                  ${system-allow-fail;git rev-list -1 HEAD}
+
+# JUnit
+junit: org.apache.servicemix.bundles.junit; version=4.12
+mockito: org.mockito.mockito-core; version=2.13.0
+mockito-deps: org.objenesis; version=2.6.0,\
+  net.bytebuddy.byte-buddy; version=1.7.9,\
+  net.bytebuddy.byte-buddy-agent; version=1.7.9 
diff --git a/emf-ws/cnf/central.maven b/emf-ws/cnf/central.maven
new file mode 100644
index 0000000..18d7d96
--- /dev/null
+++ b/emf-ws/cnf/central.maven
@@ -0,0 +1,9 @@
+# List repository contents using GAV coordinates
+
+com.fasterxml.jackson.core:jackson-core:2.9.8
+com.fasterxml.jackson.core:jackson-annotations:2.9.8
+com.fasterxml.jackson.core:jackson-databind:2.9.8
+#com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.8
+#com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.8
+#com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.8
+#org.apache.aries.jax.rs:org.apache.aries.jax.rs.jackson:1.0.2
diff --git a/emf-ws/cnf/local/index.xml b/emf-ws/cnf/local/index.xml
new file mode 100644
index 0000000..b0e92af
--- /dev/null
+++ b/emf-ws/cnf/local/index.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<repository xmlns="http://www.osgi.org/xmlns/repository/v1.0.0" name="Local" increment="1569449476756"/>
diff --git a/emf-ws/cnf/local/index.xml.sha b/emf-ws/cnf/local/index.xml.sha
new file mode 100644
index 0000000..5ac20d7
--- /dev/null
+++ b/emf-ws/cnf/local/index.xml.sha
@@ -0,0 +1 @@
+0f4ab43c8259f8770941c97370a69c94057545349c472b60455a3868043d7c19
\ No newline at end of file
diff --git a/emf-ws/cnf/release/index.xml b/emf-ws/cnf/release/index.xml
new file mode 100644
index 0000000..f818396
--- /dev/null
+++ b/emf-ws/cnf/release/index.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<repository xmlns="http://www.osgi.org/xmlns/repository/v1.0.0" name="Release" increment="1569449476759"/>
diff --git a/emf-ws/cnf/release/index.xml.sha b/emf-ws/cnf/release/index.xml.sha
new file mode 100644
index 0000000..68e315e
--- /dev/null
+++ b/emf-ws/cnf/release/index.xml.sha
@@ -0,0 +1 @@
+5268a56c364964c76e45f65d30b6e34866042e4542a5eae69fe71e863d1dd953
\ No newline at end of file
diff --git a/emf-ws/cnf/templates/index.xml b/emf-ws/cnf/templates/index.xml
new file mode 100644
index 0000000..fa850a5
--- /dev/null
+++ b/emf-ws/cnf/templates/index.xml
@@ -0,0 +1,96 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<repository xmlns="http://www.osgi.org/xmlns/repository/v1.0.0" name="Templates" increment="1567521105177">
+  <resource>
+    <capability namespace="osgi.identity">
+      <attribute name="osgi.identity" value="org.bndtools.templates.osgi"/>
+      <attribute name="type" value="osgi.bundle"/>
+      <attribute name="version" value="7.0.0.201810191116" type="Version"/>
+    </capability>
+    <capability namespace="osgi.wiring.bundle">
+      <attribute name="bundle-version" value="7.0.0.201810191116" type="Version"/>
+      <attribute name="osgi.wiring.bundle" value="org.bndtools.templates.osgi"/>
+    </capability>
+    <capability namespace="osgi.wiring.host">
+      <attribute name="bundle-version" value="7.0.0.201810191116" type="Version"/>
+      <attribute name="osgi.wiring.host" value="org.bndtools.templates.osgi"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="comp-help.xml"/>
+      <attribute name="name" value="Component Development"/>
+      <attribute name="icon" value="data:image/gif;base64,R0lGODlhEAAQAPYAAElJSU5OTlFRUVNTU1hYWFtbW2FhYWJiYmRkZGlpaWtra21tbW5ubm9vb3l5eYCAgIGBgYKCgoODg4WFhYeHh4mJiYyMjI+Pj5ycnJ6enqCgoKGhoaOjo6Wlpaampqenp6ioqKqqqqysrLCwsLGxsbKysrW1tbe3t7m5ubq6ury8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9HR0dLS0tTU1NXV1dbW1tjY2NnZ2dvb29zc3N3d3d7e3uLi4uTk5OXl5efn5+np6e3t7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAE8AIf8LSW1hZ2VNYWdpY2sHZ2FtbWE9MQAsAAAAABAAEAAAB6CAT4KDTy8vhIiEL05MI4mCPjw8hUxGjiIeHoRGTkYvKj4+IyI8TCqKTD5GRqGsPC8OipGfGB6GnxWCry9GPCoRghWGPBURES+pkpqDIp88RgwqqS88joO2Iy8+CR4XHq88GIIXnyoJBAGCzdQvIiIq8B4MhCI+1JKSzvODKkYexp8YMPDgI9agCA0SPInwSmGBAAAeLVQxooBERAUIPAoEADs="/>
+      <attribute name="ranking" value="1001.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="project"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/ds"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="api-help.xml"/>
+      <attribute name="name" value="API Project"/>
+      <attribute name="icon" value="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABZVBMVEUAAABLh7sxW5A2ZJkzX5Q2ZZpMi8FQkcdHgrcxW5A5aZ5SlMpfrOJdqN4xW5BbpNpVmtBDe7FfrOJOjsRfrOJfrOJAdaoxW5BfrOJfrOJSlMoxW5A8b6Q8b6RfrOJVmtAxW5A5aZ5Yn9VbpNoxW5BdqN5dqN45aZ5frOJSlMpfrOIxW5BAdapDe7H////A3PjB3fr6/P/C3Pn8/v/3+/6/3Prx9/7u9f3j8P3I4fvD3fq92/nm8P3c6/3g7fzR5PvN4/vL4vvU5/rF3vnz+f3Y6v3V6fza6vnH3/fB2e+my+pqseVsn+Gju9dglNdYj9SDocRXhrY9ZZjr8f3q8/vQ5frB3Pq11fmtz/eix/fi7fXi6vXY5/XA2vTT3+6y0O3N3OyaxuuMwOqBvOp3t+jD1OeGruS6zuKzxt+HuN97pdlvnthqm9eMrtVxndKVr85aj8tXlMhTjcFShrltkLhfgq1PdKOdhMrdAAAALnRSTlMA/NqKaxQQB/v69vHw7evq5eTj2s/MysnGu7u2s6uopKOekoSEbV1XS0U2NCge2PG++QAAAOpJREFUGNMVzNNiA1EUheETtKlt2z0eT0ZJG7O2bT5/9vx367tYCKG1kZvbQqGjb2BwdGolAbB4jaH0bibI5juXAOavsG7vaKpkWJ51A8zl2fZW0tF1HRfZE8D0hep7bgAo3nM9AGM5h/CU4Xt74rN9FaD/1LUshdKUwb6aERTRspayb4bwHUIiIjkhhFLTT7cgaPOHKYRwzs3guDeEjZqgIFQxk5dDsJsm3+yjwwOLG572MAGw3FZ7fnktlyuVoluaBYhVMSSkqt5nPmIA8d/S4935iSaFY1fj4cfCzPhwtKu1Xv//i64j1ABv2TB0qN71PQAAAABJRU5ErkJggg=="/>
+      <attribute name="ranking" value="1000.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="project"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/api"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="integration-test-help.xml"/>
+      <attribute name="name" value="Integration Testing"/>
+      <attribute name="icon" value="data:image/gif;base64,R0lGODlhEAAQAMQAAOCwsuG6u9hCT9lLV9pfattqc9x0fNx+hd2IjiGETzmPYSyKV1Gbc12hfGqnhXatjo65oJu/qafFsrPKu7/QxOLExP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABYALAAAAAAQABAAAAVMoCWOZGmeaHpGTMs8qsgkUyzTtjVPRV8hBYRpZxEILYQT0ShKihqQW42JFEUSCtEiIaI6LQsGBZKAIQUWwIEEYTgko4BhcAjk7vhTCAA7"/>
+      <attribute name="ranking" value="999.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="project"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/integration-test"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="servlet-help.xml"/>
+      <attribute name="name" value="Servlet Component"/>
+      <attribute name="icon" value="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADYUlEQVR4nGWTW2hbBQCGv3PJOT1JeslJejeu6Q1bW1ulY5vZppg6n5RhH9SBA4dziChT5nxpEUEG7kkUcQ6kE5lUkY2+iA/rQFRscU666TrtNemaNGma2CTN5STnHB/mYOr/9D98/A8f/AL/Scf+95tcnu4XfLockpyFdmwbM6MuJZOlqXx6eXxh5vX1u3nhTmnuPybUdx482dC59fbBJx/Tvop/wVrqAnWagWWq1OaHaIs8Xfh5OvpOOjp1Ojp/xgaQAJr6jgo7+kbG3bumT8z7LjnWrBUcagsuxUutsoAsmWy5dlIVfMYR3KENr80rbZKsT2bTv9we6Np36qS684cTG57LPLtnnO/+OIeMie5uJ7a1jFt/C8n7HCt5iZju4UC7Nhi+Iec3bl34UWoPvtfY1O+4WOz80qE7bWLpGAVjDkmssL/nTbz6U5jOAUqmRJUZwcj/iRJow5/MBLO57k/l6vr+w4V7J52687YO2/4efx3EMhbFfAS3a4Bi2aZoCZSMErNzb2DEVfTAgFPTBg+LvjolFJPmsGwbgGIFmpwjjIYmCHgHcEugieCS4K/4Z9zjqSdfVohr1/DWKSHZ7ZQD+wKHuLZ+njp1kBpF5/nB18iaMooADgFkATSxQq4QQRayeDwH8GnNaB41IFoVy95730sEO0aJb8d5sGU3hlUGbCzAssEGoqtnaa1ewF+bx21dZDH6EYZVtMVYPL+kCSYN9Y/zyiPn+HZhktFLIc7OHCdnZClYULLARPzHEWgOAV2pIbNhLkke/0jj/T2+Jza0KkRRYTkxgc+1BUKU2VvTQBVltRvbOcBm0c96VsAjr2Cv9ZP6yXtG0qo752XT83LrQ81qvCwhWSap3DSqLKBKKdIlHdsdJFWSyMpdyKJMJnGZ6pnhbGJx8YgYmT2V/PVqbMy+ukqlsE2N51GyRTAtm0Shi9rGF0mXIGdC0bQRSwa+SIjErDQWDp9OSgAb4a9nNlN7m4danUMRYwq7fIWk0UNzx8ckKjXkKhalfI5eJc/ucJkbE4VPrl8/OvavMwH07vr81ZZe6125L1yz5+EjLBRUKjY0KqCsbrH0zVzmtyvR0Zs3j334vzfeib/zuNdd/cAh1SEPNzY427Fs1mO5pVLRmNrO/X5+dfWDzbv5vwErUW66xLs5NQAAAABJRU5ErkJggg=="/>
+      <attribute name="ranking" value="998.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="project"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/servlet"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="jax-rs-help.xml"/>
+      <attribute name="name" value="JAX-RS Resource Component"/>
+      <attribute name="icon" value="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAeFBMVEUAAAC+uQEAAAANDQAAAAAAAADs6ADl4gDj3wC4tQHZ1gDIxQfAvQCzsACbmgayrQKWlACOjAB9ewNWVAU7OgHm4wDf3QC4twOopgCgngCCgABkYgBtawBYVwAAAADU+3n/+wD49ADOygDl4AD8+ADu6gDf2wDRzQDVgRdOAAAAH3RSTlMAwQ0cCAT89/Hf38K1q6CcdF1NNCr36aiPgmpoQSwUn3NPfwAAAHhJREFUGNNlz2kPgjAYA+CKB6LiibcC4/z//5A2kHcQ+mXps6TZgGwSdjDH83Ktk7WHhdu9RR7y3D1eCcmAqban24qgAYEojAkaiHqo9xcBrwvVzeEawEMZfVPAoGwbF8b/ETgNBAPYAAzuzx+rgR4EePgkrAaz73cWXBDb6aht4AAAAABJRU5ErkJggg=="/>
+      <attribute name="ranking" value="997.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="project"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/jax-rs"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="jpa-dao-help.xml"/>
+      <attribute name="name" value="JPA Data Access Component"/>
+      <attribute name="icon" value="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC"/>
+      <attribute name="ranking" value="996.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="project"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/jpa-dao"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="app-help.xml"/>
+      <attribute name="name" value="Application Project"/>
+      <attribute name="icon" value="data:image/gif;base64,R0lGODlhEAAQANUAAACPKmGAqW6KsHeSsnmVuICXs4GYsYScu4ylxJipuaGzy6i81rCKIbjBwbqXJr3M2L7O48TQ38bX6czb7c64b9Df8NHf7tLg7NPh8tfh59vm893o9d7k7eLn3uLr9uvx9+3y+O7r2PL1+PPt1Pf4+fvdg/vhkPzno/ztufzyz/754v797/7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKAC0ALAAAAAAQABAAAAaBwJZwSCwWKY6k0kExthwrVQp1MpUcTgpjy2U0jRyCRsQSaQgcYwTh+YhIgI8HESkqFh4QiQUAeBYKRQcQeW99ABAHRQITG20ghwACRQEYGI4ekQCLEpYaGpqbQwcPFZYYmnYNHRkXFpGBRBEJKSMjIYcJdUURAwUGBn0Du05DokRBADs="/>
+      <attribute name="ranking" value="1000.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="project"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/app"/>
+    </capability>
+    <capability namespace="org.bndtools.template">
+      <attribute name="help" value="templates/launch/felix-gogo.xml"/>
+      <attribute name="name" value="Felix 4+"/>
+      <attribute name="icon" value="data:image/gif;base64,R0lGODlhEAAQAOYAAAAAAP///+EdiTcIsd/AXIyltvCtwoUNb8VoTy4FVW07zOh0lH9/f4oHstbg4tvQmSItMbYDjuc5YMWfuD8FgXYO2OIMY8WkUuheZNyCucnJyWUGrfXt1oYemFkDaemWoaysrOtVgiMGeFYGks0CfMkferAdktxBd+fdraAFo0wKwffZ5e7Fxfzu8e64rt7Vg7oHdOglXuZodUQGbYIMw+AZdc+6VNeauePq6uWJltkCbpIEmfPc1nQGqGwJzeuhqygGa+RBa+hHevf5+UcKiuAyaMcEiOQdaukUXd0XYiMFUbwLiJ8HmH2GieLRjHgIx+ywudgMbvfi4rQHlr8Di1AGl+qDlokKq/76+/r18eNAdqQEnI2rs9MDed8EbGcHs+iXp/Lx2Pnv7ScETvfe5uYLZNsFcKQFoNni47sIiv37+MoFh74EiP79/Pv7+/Pf1v34+sADiP////fa5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAAHQALAAAAAAQABAAAAeRgA8vKC10hoeIhk4XNic/YomJYQQIB2lFH1mRh29BMB47SzEsm4YGJQ0UVUZIOXClNyZUIzNTZVpSm3JWUWcbCUw6GDybbWAWbD1jV2YSHKVQSRFfSjRrMmqlC14pKkAVAi6lWEIkTwNEXSGldGRHcT4iHRM47HM1WwoQXGjsdCsZCjQB4c/QEAduGBREpIFOIAA7"/>
+      <attribute name="ranking" value="1001.0" type="Double"/>
+      <attribute name="org.bndtools.template" value="bndrun"/>
+      <attribute name="category" value="OSGi Release 7 Templates (with OSGi enRoute repositories)"/>
+      <attribute name="dir" value="templates/launch/felix-gogo"/>
+    </capability>
+    <capability namespace="osgi.content">
+      <attribute name="size" value="25577" type="Long"/>
+      <attribute name="url" value="org.bndtools.templates.osgi/org.bndtools.templates.osgi-7.0.0.jar"/>
+      <attribute name="mime" value="application/vnd.osgi.bundle"/>
+      <attribute name="osgi.content" value="274A856A7D66B1B56D976F1619B5DE2253635305EC8D1BA271389F8AB5623495"/>
+    </capability>
+  </resource>
+</repository>
diff --git a/emf-ws/cnf/templates/index.xml.sha b/emf-ws/cnf/templates/index.xml.sha
new file mode 100644
index 0000000..57ac548
--- /dev/null
+++ b/emf-ws/cnf/templates/index.xml.sha
@@ -0,0 +1 @@
+908735368c6088de40477c5e8f80d3ebeeb0c818857491f7f764a78c518da49c
\ No newline at end of file
diff --git a/emf-ws/gradle.properties b/emf-ws/gradle.properties
new file mode 100644
index 0000000..06a3212
--- /dev/null
+++ b/emf-ws/gradle.properties
@@ -0,0 +1,3 @@
+bnd_version=4.2.0-SNAPSHOT
+
+bnd_repourl=https://oss.sonatype.org/content/repositories/snapshots
diff --git a/emf-ws/gradlew b/emf-ws/gradlew
new file mode 100644
index 0000000..72c3264
--- /dev/null
+++ b/emf-ws/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/.gradle-wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/emf-ws/gradlew.bat b/emf-ws/gradlew.bat
new file mode 100644
index 0000000..9ffb627
--- /dev/null
+++ b/emf-ws/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\.gradle-wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/emf-ws/settings.gradle b/emf-ws/settings.gradle
new file mode 100644
index 0000000..a2a7c66
--- /dev/null
+++ b/emf-ws/settings.gradle
@@ -0,0 +1,14 @@
+buildscript {
+	repositories {
+		maven {
+			url uri(bnd_repourl)
+		}
+		mavenCentral()
+	}
+	dependencies { classpath "biz.aQute.bnd:biz.aQute.bnd.gradle:${bnd_version}" }
+	/* Add bnd gradle plugin to buildscript classpath of rootProject */
+	def bndPlugin = files(configurations.classpath.files)
+	gradle.rootProject { buildscript { dependencies { classpath bndPlugin } } }
+}
+
+apply plugin: 'biz.aQute.bnd.workspace'
diff --git a/dict-ws/tdt4250.emf.servlet/.classpath b/emf-ws/tdt4250.emf.servlet/.classpath
similarity index 100%
rename from dict-ws/tdt4250.emf.servlet/.classpath
rename to emf-ws/tdt4250.emf.servlet/.classpath
diff --git a/dict-ws/tdt4250.emf.servlet/.project b/emf-ws/tdt4250.emf.servlet/.project
similarity index 100%
rename from dict-ws/tdt4250.emf.servlet/.project
rename to emf-ws/tdt4250.emf.servlet/.project
diff --git a/dict-ws/tdt4250.emf.servlet/bnd.bnd b/emf-ws/tdt4250.emf.servlet/bnd.bnd
similarity index 100%
rename from dict-ws/tdt4250.emf.servlet/bnd.bnd
rename to emf-ws/tdt4250.emf.servlet/bnd.bnd
diff --git a/dict-ws/tdt4250.emf.servlet/launch.bndrun b/emf-ws/tdt4250.emf.servlet/launch.bndrun
similarity index 100%
rename from dict-ws/tdt4250.emf.servlet/launch.bndrun
rename to emf-ws/tdt4250.emf.servlet/launch.bndrun
diff --git a/dict-ws/tdt4250.emf.servlet/src/tdt4250/ra/servlet/ResourceServlet.java b/emf-ws/tdt4250.emf.servlet/src/tdt4250/ra/servlet/ResourceServlet.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servlet/src/tdt4250/ra/servlet/ResourceServlet.java
rename to emf-ws/tdt4250.emf.servlet/src/tdt4250/ra/servlet/ResourceServlet.java
diff --git a/dict-ws/tdt4250.emf.servlet/test/tdt4250/ra/servlet/ignore.md b/emf-ws/tdt4250.emf.servlet/test/tdt4250/ra/servlet/ignore.md
similarity index 100%
rename from dict-ws/tdt4250.emf.servlet/test/tdt4250/ra/servlet/ignore.md
rename to emf-ws/tdt4250.emf.servlet/test/tdt4250/ra/servlet/ignore.md
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/.classpath b/emf-ws/tdt4250.emf.servletsupport.impl/.classpath
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/.classpath
rename to emf-ws/tdt4250.emf.servletsupport.impl/.classpath
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/.project b/emf-ws/tdt4250.emf.servletsupport.impl/.project
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/.project
rename to emf-ws/tdt4250.emf.servletsupport.impl/.project
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/bnd.bnd b/emf-ws/tdt4250.emf.servletsupport.impl/bnd.bnd
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/bnd.bnd
rename to emf-ws/tdt4250.emf.servletsupport.impl/bnd.bnd
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/launch.bndrun b/emf-ws/tdt4250.emf.servletsupport.impl/launch.bndrun
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/launch.bndrun
rename to emf-ws/tdt4250.emf.servletsupport.impl/launch.bndrun
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/AnnotationUtil.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/AnnotationUtil.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/AnnotationUtil.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/AnnotationUtil.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEAttributeSerializer.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEAttributeSerializer.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEAttributeSerializer.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEAttributeSerializer.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEObjectSerializer.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEObjectSerializer.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEObjectSerializer.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonEObjectSerializer.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonSerializer.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonSerializer.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonSerializer.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/JsonSerializer.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/NameReferenceResolver.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/NameReferenceResolver.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/NameReferenceResolver.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/NameReferenceResolver.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestHandler.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestHandler.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestHandler.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestHandler.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestSupport.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestSupport.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestSupport.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/RequestSupport.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/ResourceProvider.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/ResourceProvider.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/ResourceProvider.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/ResourceProvider.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/package-info.java b/emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/package-info.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/package-info.java
rename to emf-ws/tdt4250.emf.servletsupport.impl/src/tdt4250/servletsupport/impl/package-info.java
diff --git a/dict-ws/tdt4250.emf.servletsupport.impl/test/tdt4250/servletsupport/impl/ignore.md b/emf-ws/tdt4250.emf.servletsupport.impl/test/tdt4250/servletsupport/impl/ignore.md
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport.impl/test/tdt4250/servletsupport/impl/ignore.md
rename to emf-ws/tdt4250.emf.servletsupport.impl/test/tdt4250/servletsupport/impl/ignore.md
diff --git a/dict-ws/tdt4250.emf.servletsupport/.classpath b/emf-ws/tdt4250.emf.servletsupport/.classpath
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/.classpath
rename to emf-ws/tdt4250.emf.servletsupport/.classpath
diff --git a/dict-ws/tdt4250.emf.servletsupport/.project b/emf-ws/tdt4250.emf.servletsupport/.project
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/.project
rename to emf-ws/tdt4250.emf.servletsupport/.project
diff --git a/dict-ws/tdt4250.emf.servletsupport/bnd.bnd b/emf-ws/tdt4250.emf.servletsupport/bnd.bnd
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/bnd.bnd
rename to emf-ws/tdt4250.emf.servletsupport/bnd.bnd
diff --git a/dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IPostHandler.java b/emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IPostHandler.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IPostHandler.java
rename to emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IPostHandler.java
diff --git a/dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IReferenceResolver.java b/emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IReferenceResolver.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IReferenceResolver.java
rename to emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IReferenceResolver.java
diff --git a/dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestPathResolver.java b/emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestPathResolver.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestPathResolver.java
rename to emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestPathResolver.java
diff --git a/dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestQueryExecutor.java b/emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestQueryExecutor.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestQueryExecutor.java
rename to emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IRequestQueryExecutor.java
diff --git a/dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResourceProvider.java b/emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResourceProvider.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResourceProvider.java
rename to emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResourceProvider.java
diff --git a/dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResponseSerializer.java b/emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResponseSerializer.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResponseSerializer.java
rename to emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/IResponseSerializer.java
diff --git a/dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/package-info.java b/emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/package-info.java
similarity index 100%
rename from dict-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/package-info.java
rename to emf-ws/tdt4250.emf.servletsupport/src/tdt4250/servletsupport/package-info.java
diff --git a/emf-ws/tdt4250.ra.resource/.classpath b/emf-ws/tdt4250.ra.resource/.classpath
new file mode 100644
index 0000000..3ebd512
--- /dev/null
+++ b/emf-ws/tdt4250.ra.resource/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="aQute.bnd.classpath.container"/>
+	<classpathentry kind="src" output="bin" path="src"/>
+	<classpathentry kind="src" output="bin_test" path="test">
+		<attributes>
+			<attribute name="test" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/emf-ws/tdt4250.ra.resource/.project b/emf-ws/tdt4250.ra.resource/.project
new file mode 100644
index 0000000..9a8cd79
--- /dev/null
+++ b/emf-ws/tdt4250.ra.resource/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>tdt4250.ra.resource</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>bndtools.core.bndbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>bndtools.core.bndnature</nature>
+	</natures>
+</projectDescription>
diff --git a/emf-ws/tdt4250.ra.resource/bnd.bnd b/emf-ws/tdt4250.ra.resource/bnd.bnd
new file mode 100644
index 0000000..4cc24cb
--- /dev/null
+++ b/emf-ws/tdt4250.ra.resource/bnd.bnd
@@ -0,0 +1,20 @@
+-buildpath: \
+	osgi.annotation;version=7.0.0,\
+	osgi.core;version=7.0.0,\
+	osgi.cmpn;version=7.0.0,\
+	tdt4250.ra,\
+	tdt4250.emf.servletsupport;version=latest,\
+	org.eclipse.emf.common,\
+	org.eclipse.emf.ecore,\
+	org.eclipse.emf.ecore.xmi,\
+	tdt4250.emf.servletsupport.impl;version=latest
+
+-testpath: \
+	${junit},\
+	${mockito},\
+	${mockito-deps}
+
+javac.source: 1.8
+javac.target: 1.8
+
+Bundle-Version: 0.0.0.${tstamp}
\ No newline at end of file
diff --git a/emf-ws/tdt4250.ra.resource/launch.bndrun b/emf-ws/tdt4250.ra.resource/launch.bndrun
new file mode 100644
index 0000000..58af947
--- /dev/null
+++ b/emf-ws/tdt4250.ra.resource/launch.bndrun
@@ -0,0 +1,18 @@
+-runfw: org.eclipse.osgi;version=3.13
+-runprovidedcapabilities: ${native_capability}
+
+-resolve.effective: active
+
+-runproperties: \
+	org.osgi.service.http.port=8080,\
+	osgi.console=,\
+	osgi.console.enable.builtin=false
+
+-runbundles:\
+	org.apache.felix.gogo.runtime,\
+	org.apache.felix.gogo.shell,\
+	org.apache.felix.gogo.command
+
+-runrequires:\
+	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
+	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)'
diff --git a/emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/SampleResource.java b/emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/SampleResource.java
new file mode 100644
index 0000000..f03276f
--- /dev/null
+++ b/emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/SampleResource.java
@@ -0,0 +1,31 @@
+package tdt4250.ra.resource;
+
+import java.net.URL;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+
+import tdt4250.ra.RaPackage;
+import tdt4250.ra.util.RaResourceFactoryImpl;
+import tdt4250.servletsupport.IResourceProvider;
+import tdt4250.servletsupport.impl.ResourceProvider;
+
+@Component
+public class SampleResource extends ResourceProvider implements IResourceProvider {
+
+	@Activate
+	public void activate(BundleContext bc) {
+		URL resource = bc.getBundle().getResource("/tdt4250/ra/resource/sample.ra");
+		setUri(URI.createURI(resource.toString()));
+	}
+
+	@Override
+	protected void configureResourceSet(ResourceSet resourceSet) {
+		super.configureResourceSet(resourceSet);
+		resourceSet.getPackageRegistry().put(RaPackage.eNS_URI, RaPackage.eINSTANCE);
+		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("ra", new RaResourceFactoryImpl());
+	}
+}
diff --git a/emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/sample.ra b/emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/sample.ra
new file mode 100644
index 0000000..b1dd27d
--- /dev/null
+++ b/emf-ws/tdt4250.ra.resource/src/tdt4250/ra/resource/sample.ra
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ra:Department
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ra="platform:/plugin/tdt4250.ra/model/ra.ecore"
+    xsi:schemaLocation="platform:/plugin/tdt4250.ra/model/ra.ecore ra.ecore"
+    name="Dept. of CS"
+    shortName="IDI">
+  <resourceAllocations
+      factor="0.5">
+    <person
+        href="idi.xmi#//@staff.0"/>
+  </resourceAllocations>
+  <resourceAllocations
+      factor="1.0">
+    <person
+        href="idi.xmi#//@staff.0"/>
+  </resourceAllocations>
+</ra:Department>
diff --git a/emf-ws/tdt4250.ra.resource/test/tdt4250/ra/resource/ignore.md b/emf-ws/tdt4250.ra.resource/test/tdt4250/ra/resource/ignore.md
new file mode 100644
index 0000000..feef779
--- /dev/null
+++ b/emf-ws/tdt4250.ra.resource/test/tdt4250/ra/resource/ignore.md
@@ -0,0 +1 @@
+# To make sure the folder exists in git
-- 
GitLab