Merge pull request #1 from apache/feature/intellij

SLING-5648 - Make Non-Eclipse Module regular Maven Packages 
diff --git a/.gitignore b/.gitignore
index 7fa4d65..6cb7699 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
 .DS_Store
 jcr.log
 atlassian-ide-plugin.xml
+derby.log
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..16fb523
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,50 @@
+pipeline {
+    agent {
+        label 'ubuntu'
+    }
+
+    tools {
+        maven 'Maven 3.3.9'
+        jdk 'JDK 1.8 (latest)'
+    }
+
+    stages {
+        stage ('Build shared code') {
+            steps {
+                sh 'mvn -f shared/modules clean install'
+                junit 'shared/modules/**/surefire-reports/*.xml'
+            }
+        }
+
+        stage ('Build shared code P2 repository') {
+            steps {
+                sh 'mvn -f shared/p2 clean package'
+            }
+        }
+
+        stage ('Build Eclipse plug-ins') {
+            steps {
+                sh 'mvn -f eclipse clean verify'
+                junit 'eclipse/**/surefire-reports/*.xml'
+                archiveArtifacts artifacts: 'eclipse/**/logs/*.log'
+            }
+        }
+    }
+
+    post {
+        failure {
+            mail to: 'dev@sling.apache.org',
+            subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
+            body: "See ${env.BUILD_URL}"
+        }
+
+        unstable {
+            mail to: 'dev@sling.apache.org',
+            subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
+            body: "See ${env.BUILD_URL}"
+        }
+
+    }
+
+}
+
diff --git a/README.md b/README.md
index a761afa..031ad6f 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,36 @@
-Apache Sling IDE Tooling
+# Apache Sling IDE Tooling
 
-The IDE Tooling project produces a p2 update site which is installable into
-a Eclipse runtime. The update site is located in the p2update/target/repository
-directory.
+This module is part of the [Apache Sling](https://sling.apache.org) project.
 
-How to run the Sling IDE tools in a test Eclipse instance
----------------------------------------------------------
+For using the IDE tooling, please see the [Sling IDE Tooling](https://sling.apache.org/documentation/development/ide-tooling.html)
+documentation page.
 
-This howto assumes that you are running Eclipse Mars or Later with the Plug-In 
+## Repository structure
+
+The modules are split into two sub-trees
+
+* shared
+* eclipse
+
+to ensure that the reusable code is available for usage in other IDEs or
+environments.
+
+The modules placed under `shared/modules` should bring as few external dependencies as
+possible, and must not depend on IDE-specific APIs, such as Eclipse or OSGi.
+
+The modules placed under `eclipse` may depend on any Eclipse-specific APIs.
+
+To make the shared modules consumable by the Maven + Tycho toolchain, a separate
+`shared/p2` sub-tree contains a Maven + Tycho build which creates a p2 update
+site. That update site in turn is consumed by the `eclipse` build.
+
+## Building the Sling IDE Tooling for Eclipse
+
+This howto assumes that you are running Eclipse Oxygen or later with the Plug-In 
 Development Environment and Maven features installed. You should have
 previously built the projects using
 
-    mvn package
+    ./build-eclipse.sh
 
 to ensure that Maven artifacts which are not available on p2 update sites are
 included in the workspace.
@@ -35,56 +54,4 @@
 
 Now you can use the 'Sling IDE Tooling' launch configuration which is present 
 in the org.apache.sling.ide.target-definition project to launch a local instance
-of Eclipse with Sling IDE Tooling plug-ins picked up from the local workspace.
-
-How to generate a signed release
---------------------------------
-
-The build can be configured to sign the generated jars with a code signing
-certificates. This prevents unsigned content errors from appearing when
-installing the plugins and reassures the user that the content comes from
-a trusted source.
-
-Please note that this is different from GPG signatures.
-
-The following steps are needed to sign the generated jars.
-
-1. Obtain a code signing certificate. At the moment the ASF does not provide
-such a service, so you will have to obtain one yourself. One free possibility
-is Certum [1]. Expect at least two weeks of processing time, so plan this
-ahead of time.
-
-2. Import the certificate chain into a local keystore. The best approach is to
-install the certificate into a browser and ensure that the whole certificate
-chain is present. For Certum that would by the Certum CA, the Certum Level 3
-CA and the code signing certificate.  Backup the certificates from Fireox
-and then import them into the keystore, with a command similar to
-
-	keytool -importkeystore -destkeystore keystore_certum.jks -srckeystore \
-		backup.p12 -srcstoretype pkcs12 
-
-3. Insert properties controlling jarsigner behaviour in your settings.xml
-
-	<settings>
-	    <profiles>
-	        <profile>
-	            <id>sign</id>        
-	
-	            <properties>
-	                <jarsigner.alias>certum-codesigning</jarsigner.alias>
-	                <jarsigner.storepass>changeit</jarsigner.storepass>
-	                <jarsigner.tsa>http://time.certum.pl/</jarsigner.tsa>
-	                <!-- needed since we mix packages between projects -->
-	                <skipTests>true</skipTests>
-	                <jarsigner.keystore>/home/users/keystore_certum.jks</jarsigner.keystore>
-	            </properties>
-	        </profile>
-	    </profiles>
-	</settings>
-
-At this point you can launch a build using
-
-	mvn clean package -Psign
-
-All jars will be signed, and should install without any warnings.
-[1]: https://www.certum.eu/certum/cert,offer_en_open_source_cs.xml 
+of Eclipse with Sling IDE Tooling plug-ins picked up from the local workspace.
\ No newline at end of file
diff --git a/api-test/README.md b/api-test/README.md
deleted file mode 100644
index 762a784..0000000
--- a/api-test/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Apache Sling IDE Tools API Tests
-
-This module is part of the [Apache Sling](https://sling.apache.org) project.
diff --git a/api-test/pom.xml b/api-test/pom.xml
deleted file mode 100644
index 62b92b1..0000000
--- a/api-test/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<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>
-  <parent>
-    <groupId>org.apache.sling.ide</groupId>
-    <artifactId>sling-ide-tooling</artifactId>
-    <version>1.2.3-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.apache.sling.ide.api-test</artifactId>
-  <name>Apache Sling IDE Tools API Tests</name>
-
-  <scm>
-    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-    <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-  </scm>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <configuration>
-          <excludes combine.children="append">
-            <exclude>src/test/resources/bundles.json</exclude>
-            <exclude>src/test/resources/sourceReferences.json</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-    
-  <dependencies>
-      <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>4.11</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.apache.sling.ide</groupId>
-          <artifactId>org.apache.sling.ide.api</artifactId>
-          <version>${project.version}</version>
-          <type>eclipse-plugin</type>
-      </dependency>
-      <dependency>
-          <groupId>javax.jcr</groupId>
-          <artifactId>jcr</artifactId>
-          <version>2.0</version>
-          <scope>provided</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.mockito</groupId>
-          <artifactId>mockito-all</artifactId>
-          <version>1.9.5</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.osgi</groupId>
-          <artifactId>org.osgi.core</artifactId>
-          <version>4.2.0</version>
-          <scope>test</scope>
-      </dependency>
-  </dependencies>
-</project>
diff --git a/api-test/src/main/resources/META-INF/NOTICE b/api-test/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index a2b90f4..0000000
--- a/api-test/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: API Tests
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/api/META-INF/LICENSE b/api/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/api/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/api/META-INF/MANIFEST.MF b/api/META-INF/MANIFEST.MF
deleted file mode 100644
index 1db504a..0000000
--- a/api/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Name: Sling IDE API
-Bundle-SymbolicName: org.apache.sling.ide.api
-Bundle-Version: 1.2.3.qualifier
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Export-Package: org.apache.sling.ide.filter,
- org.apache.sling.ide.log,
- org.apache.sling.ide.osgi,
- org.apache.sling.ide.serialization,
- org.apache.sling.ide.transport,
- org.apache.sling.ide.util
-Import-Package: com.google.gson;version="2.2.4",
- com.google.gson.annotations;version="2.2.4",
- com.google.gson.stream;version="2.2.4",
- javax.jcr.nodetype,
- org.apache.commons.httpclient;version="3.1.0",
- org.apache.commons.httpclient.auth;version="3.1.0",
- org.apache.commons.httpclient.methods;version="3.1.0",
- org.apache.commons.httpclient.methods.multipart;version="3.1.0",
- org.apache.commons.httpclient.params;version="3.1.0",
- org.apache.commons.io;version="2.0.1",
- org.osgi.framework;version="1.6.0",
- org.osgi.service.event
-Service-Component: OSGI-INF/*.xml
diff --git a/api/META-INF/NOTICE b/api/META-INF/NOTICE
deleted file mode 100644
index 69e1c54..0000000
--- a/api/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: API
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/api/OSGI-INF/DefaultBatcherFactory.xml b/api/OSGI-INF/DefaultBatcherFactory.xml
deleted file mode 100644
index 91947f3..0000000
--- a/api/OSGI-INF/DefaultBatcherFactory.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.transport.impl.DefaultBatcherFactory"/>
-   <service>
-      <provide interface="org.apache.sling.ide.transport.BatcherFactory"/>
-   </service>
-</scr:component>
diff --git a/api/OSGI-INF/HttpOsgiClientFactory.xml b/api/OSGI-INF/HttpOsgiClientFactory.xml
deleted file mode 100644
index ea4eda3..0000000
--- a/api/OSGI-INF/HttpOsgiClientFactory.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.osgi.impl.HttpOsgiClientFactory"/>
-   <service>
-      <provide interface="org.apache.sling.ide.osgi.OsgiClientFactory"/>
-   </service>
-   <reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/>
-</scr:component>
diff --git a/api/build.properties b/api/build.properties
deleted file mode 100644
index c58ea21..0000000
--- a/api/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/
diff --git a/api/pom.xml b/api/pom.xml
deleted file mode 100644
index fe858bb..0000000
--- a/api/pom.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.sling.ide</groupId>
-    <artifactId>sling-ide-tooling</artifactId>
-    <version>1.2.3-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.apache.sling.ide.api</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <name>Apache Sling IDE Tools API</name>
-
-  <scm>
-    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-    <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-  </scm>
-  
-  <build>
-    <!-- ensure that extra files are picked up by the maven-source-plugin -->
-    <resources>
-        <resource>
-            <directory>.</directory>
-            <includes>
-                <include>build.properties</include>
-                <include>META-INF/*</include>
-                <include>OSGI-INF/*</include>
-            </includes>
-        </resource>
-    </resources>
-    <plugins>
-        <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-source-plugin</artifactId>
-            <configuration>
-                <archive>
-                    <manifestFile>META-INF/MANIFEST.MF</manifestFile>
-                </archive>
-            </configuration>
-        </plugin>        
-    </plugins>
-  </build>
-</project>
diff --git a/artifacts/META-INF/LICENSE b/artifacts/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/artifacts/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/artifacts/META-INF/MANIFEST.MF b/artifacts/META-INF/MANIFEST.MF
deleted file mode 100644
index 7285a02..0000000
--- a/artifacts/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Name: Sling IDE Embedded Artifacts
-Bundle-SymbolicName: org.apache.sling.ide.artifacts
-Bundle-Version: 1.2.3.qualifier
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Import-Package: org.osgi.service.component,
-  org.osgi.framework
-Require-Bundle: org.eclipse.equinox.ds;bundle-version="1.3.1",
- org.eclipse.osgi.services;bundle-version="3.2.100"
-Service-Component: OSGI-INF/*.xml
-Export-Package: org.apache.sling.ide.artifacts
diff --git a/artifacts/META-INF/NOTICE b/artifacts/META-INF/NOTICE
deleted file mode 100644
index 71efb3e..0000000
--- a/artifacts/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: Embedded Artifacts
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml b/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
deleted file mode 100644
index 3c67c8e..0000000
--- a/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
-    <implementation class="org.apache.sling.ide.artifacts.impl.ArtifactsLocatorImpl" />
-    <service>
-       <provide interface="org.apache.sling.ide.artifacts.EmbeddedArtifactLocator"/>
-    </service>
-</scr:component>
diff --git a/artifacts/build.properties b/artifacts/build.properties
deleted file mode 100644
index 27307cb..0000000
--- a/artifacts/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/,\
-               target/artifacts/
diff --git a/artifacts/pom.xml b/artifacts/pom.xml
deleted file mode 100644
index 1832d97..0000000
--- a/artifacts/pom.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<project
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.sling.ide</groupId>
-        <artifactId>sling-ide-tooling</artifactId>
-        <version>1.2.3-SNAPSHOT</version>
-    </parent>
-    <artifactId>org.apache.sling.ide.artifacts</artifactId>
-    <packaging>eclipse-plugin</packaging>
-    <name>Apache Sling IDE Tools Embedded Artifacts</name>
-
-    <scm>
-        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-    </scm>
-
-    <build>
-        <!-- ensure that extra files are picked up by the maven-source-plugin -->
-        <resources>
-            <resource>
-                <directory>.</directory>
-                <includes>
-                    <include>build.properties</include>
-                    <include>META-INF/*</include>
-                    <include>OSGI-INF/*</include>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestFile>META-INF/MANIFEST.MF</manifestFile>
-                    </archive>
-                </configuration>
-            </plugin>        
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.8</version>
-                <executions>
-                    <execution>
-                        <id>copy</id>
-                        <phase>prepare-package</phase>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <configuration>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>org.apache.sling</groupId>
-                                    <artifactId>org.apache.sling.tooling.support.install</artifactId>
-                                    <version>1.0.4</version>
-                                    <outputDirectory>${project.build.directory}/artifacts/sling-tooling-support-install</outputDirectory>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.apache.sling</groupId>
-                                    <artifactId>org.apache.sling.tooling.support.source</artifactId>
-                                    <version>1.0.4</version>
-                                    <outputDirectory>${project.build.directory}/artifacts/sling-tooling-support-source</outputDirectory>
-                                </artifactItem>
-                            </artifactItems>
-                            <overWriteReleases>false</overWriteReleases>
-                            <overWriteSnapshots>true</overWriteSnapshots>
-                            <stripVersion>true</stripVersion>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/build-eclipse.sh b/build-eclipse.sh
new file mode 100755
index 0000000..1f12194
--- /dev/null
+++ b/build-eclipse.sh
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+mvn -f shared/modules clean install
+mvn -f shared/p2 clean package
+mvn -f eclipse clean verify
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/PluginLoggerRegistrar.java b/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/PluginLoggerRegistrar.java
deleted file mode 100644
index 969a756..0000000
--- a/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/PluginLoggerRegistrar.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.ide.eclipse.core.debug;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.apache.sling.ide.eclipse.core.debug.impl.Tracer;
-import org.apache.sling.ide.log.Logger;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.osgi.service.debug.DebugOptions;
-import org.eclipse.osgi.service.debug.DebugOptionsListener;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-
-/**
- * The <tt>PluginLoggerRegistrar</tt> registers {@link Logger} implementations for use for specific plugins
- *
- */
-public class PluginLoggerRegistrar {
-
-    /**
-     * Registers a new tracer for the specified plugin
-     * 
-     * @param plugin the plugin to register for
-     * @return the service registration
-     */
-    public static ServiceRegistration<Logger> register(Plugin plugin) {
-
-        Dictionary<String, Object> props = new Hashtable<>();
-        props.put(DebugOptions.LISTENER_SYMBOLICNAME, plugin.getBundle().getSymbolicName());
-        BundleContext ctx = plugin.getBundle().getBundleContext();
-        
-        // safe to downcast since we are registering the Tracer which implements Logger
-        @SuppressWarnings("unchecked")
-        ServiceRegistration<Logger> serviceRegistration = (ServiceRegistration<Logger>) ctx.registerService(new String[] { DebugOptionsListener.class.getName(), Logger.class.getName() },
-                new Tracer(plugin), props);
-        
-        return serviceRegistration;
-    }
-}
diff --git a/check_staged_release.sh b/eclipse/check_staged_release.sh
similarity index 100%
rename from check_staged_release.sh
rename to eclipse/check_staged_release.sh
diff --git a/eclipse-core/.options b/eclipse/eclipse-core/.options
similarity index 100%
rename from eclipse-core/.options
rename to eclipse/eclipse-core/.options
diff --git a/eclipse-core/META-INF/LICENSE b/eclipse/eclipse-core/META-INF/LICENSE
similarity index 100%
rename from eclipse-core/META-INF/LICENSE
rename to eclipse/eclipse-core/META-INF/LICENSE
diff --git a/eclipse-core/META-INF/MANIFEST.MF b/eclipse/eclipse-core/META-INF/MANIFEST.MF
similarity index 98%
rename from eclipse-core/META-INF/MANIFEST.MF
rename to eclipse/eclipse-core/META-INF/MANIFEST.MF
index d0c633c..8f1103a 100644
--- a/eclipse-core/META-INF/MANIFEST.MF
+++ b/eclipse/eclipse-core/META-INF/MANIFEST.MF
@@ -57,3 +57,4 @@
  org.apache.sling.ide.eclipse.core.progress,
  org.apache.sling.ide.eclipse.internal.validation;x-friends:="org.apache.sling.ide.eclipse-test"
 Service-Component: OSGI-INF/TraceCommandExecutionEventsHandler.xml
+SlingIDE-PluginLoggerEnabled: true
diff --git a/eclipse-core/META-INF/NOTICE b/eclipse/eclipse-core/META-INF/NOTICE
similarity index 100%
rename from eclipse-core/META-INF/NOTICE
rename to eclipse/eclipse-core/META-INF/NOTICE
diff --git a/eclipse-core/OSGI-INF/TraceCommandExecutionEventsHandler.xml b/eclipse/eclipse-core/OSGI-INF/TraceCommandExecutionEventsHandler.xml
similarity index 100%
rename from eclipse-core/OSGI-INF/TraceCommandExecutionEventsHandler.xml
rename to eclipse/eclipse-core/OSGI-INF/TraceCommandExecutionEventsHandler.xml
diff --git a/eclipse-core/README.md b/eclipse/eclipse-core/README.md
similarity index 100%
rename from eclipse-core/README.md
rename to eclipse/eclipse-core/README.md
diff --git a/eclipse-core/build.properties b/eclipse/eclipse-core/build.properties
similarity index 100%
rename from eclipse-core/build.properties
rename to eclipse/eclipse-core/build.properties
diff --git a/eclipse-core/plugin.xml b/eclipse/eclipse-core/plugin.xml
similarity index 100%
rename from eclipse-core/plugin.xml
rename to eclipse/eclipse-core/plugin.xml
diff --git a/eclipse-core/pom.xml b/eclipse/eclipse-core/pom.xml
similarity index 100%
rename from eclipse-core/pom.xml
rename to eclipse/eclipse-core/pom.xml
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/ConfigurationHelper.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ConfigurationHelper.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/ConfigurationHelper.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ConfigurationHelper.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/DefaultSlingLaunchpadConfiguration.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/DefaultSlingLaunchpadConfiguration.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/DefaultSlingLaunchpadConfiguration.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/DefaultSlingLaunchpadConfiguration.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadConfiguration.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadConfiguration.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadConfiguration.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadConfiguration.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadServer.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadServer.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadServer.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ISlingLaunchpadServer.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/Preferences.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/Preferences.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/Preferences.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/Preferences.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/ProjectUtil.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ProjectUtil.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/ProjectUtil.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ProjectUtil.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/ResourceUtil.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ResourceUtil.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/ResourceUtil.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ResourceUtil.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServerUtil.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServerUtil.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/ServerUtil.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServerUtil.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServiceUtil.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServiceUtil.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/ServiceUtil.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServiceUtil.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleInstallLocallyCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleInstallLocallyCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleInstallLocallyCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleInstallLocallyCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleVersionCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleVersionCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleVersionCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetBundleVersionCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetResolveSourcesCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetResolveSourcesCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetResolveSourcesCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetResolveSourcesCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerContextPathCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerContextPathCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerContextPathCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerContextPathCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerDebugPortCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerDebugPortCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerDebugPortCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerDebugPortCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPasswordCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPasswordCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPasswordCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPasswordCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPortCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPortCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPortCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerPortCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerUsernameCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerUsernameCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerUsernameCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SetServerUsernameCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/SlingLaunchpadConfigurationDefaults.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SlingLaunchpadConfigurationDefaults.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/SlingLaunchpadConfigurationDefaults.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/SlingLaunchpadConfigurationDefaults.java
diff --git a/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/PluginLoggerRegistrar.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/PluginLoggerRegistrar.java
new file mode 100644
index 0000000..d76693a
--- /dev/null
+++ b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/PluginLoggerRegistrar.java
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.ide.eclipse.core.debug;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.apache.sling.ide.eclipse.core.debug.impl.Tracer;
+import org.apache.sling.ide.log.Logger;
+import org.eclipse.osgi.service.debug.DebugOptions;
+import org.eclipse.osgi.service.debug.DebugOptionsListener;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * The <tt>PluginLoggerRegistrar</tt> registers {@link Logger} implementations for use for specific plugins
+ * 
+ * <p>This implementation acts as an extender, looking for the header {@value #HEADER_NAME_LOGGER_ENABLED} in
+ * the bundle's manifest. If presented and with a value of <tt>true</tt>, a <tt>Logger</tt> instance is registered
+ * for that bundle.</p>
+ * 
+ * <p>In turn, <tt>ServiceRegistration</tt> objects can be accessed using the {@link #getServiceRegistration(Bundle)}.
+ * This method and the static {@link #getInstance()}} method are present to make it easier to consume in Eclipse
+ * plug-ins, where working with declarative services is more complicated.</p>
+ *
+ */
+public class PluginLoggerRegistrar implements BundleListener {
+    
+    private static final String HEADER_NAME_LOGGER_ENABLED = "SlingIDE-PluginLoggerEnabled";
+    
+    private static final PluginLoggerRegistrar INSTANCE = new PluginLoggerRegistrar();
+    
+    public static PluginLoggerRegistrar getInstance() {
+        return INSTANCE;
+    }
+    
+    private final ConcurrentMap<Long, ServiceRegistration<Logger>> registrations = new ConcurrentHashMap<>();
+    
+    private PluginLoggerRegistrar() {
+        
+    }
+
+    public void init(Bundle[] bundles) {
+        for ( Bundle bundle : bundles )
+            if ( bundle.getState() == Bundle.ACTIVE || bundle.getState() == Bundle.STARTING)
+                registerIfEnabled(bundle);
+    }
+    
+    public void shutdown() {
+        for ( ServiceRegistration<Logger> reg : registrations.values() ) 
+            reg.unregister();
+    }
+    
+    /**
+     * Gets the service registartion of a <tt>Logger</tt> for the specified bundle
+     * 
+     * <p>The client must <b>not</b> call <tt>unregister</tt> on the returned instance, as
+     * it is owned by the <tt>PluginLoggerRegistrar</tt>.</p>
+     * 
+     * @param bundle the bundle to get the service registartion for for
+     * @return the service registration, or <code>null</code> if none was found for this bundle
+     */
+    public ServiceRegistration<Logger> getServiceRegistration(Bundle bundle) {
+        return registrations.get(bundle.getBundleId());
+    }
+    
+    @Override
+    public void bundleChanged(BundleEvent evt) {
+        switch ( evt.getType() ) {
+            case BundleEvent.STARTED:
+                registerIfEnabled(evt.getBundle());
+                break;
+                
+            case BundleEvent.STOPPING:
+                unregister(evt.getBundle());
+                break;
+        }
+    }
+
+    private void unregister(Bundle bundle) {
+        ServiceRegistration<Logger> reg = registrations.remove(bundle.getBundleId());
+        if ( reg != null )
+            reg.unregister();
+        
+    }
+
+    private void registerIfEnabled(final Bundle bundle) {
+        if ( Boolean.parseBoolean(bundle.getHeaders().get(HEADER_NAME_LOGGER_ENABLED)) )
+            registrations.put(bundle.getBundleId(), register(bundle));
+    }
+    
+    /**
+     * Registers a new tracer for the specified bundle
+     * 
+     * @param bundle the bundle to register for
+     * @return the service registration
+     */
+    private ServiceRegistration<Logger> register(Bundle bundle) {
+
+        Dictionary<String, Object> props = new Hashtable<>();
+        props.put(DebugOptions.LISTENER_SYMBOLICNAME, bundle.getSymbolicName());
+        BundleContext ctx = bundle.getBundleContext();
+        
+        // safe to downcast since we are registering the Tracer which implements Logger
+        @SuppressWarnings("unchecked")
+        ServiceRegistration<Logger> serviceRegistration = (ServiceRegistration<Logger>) ctx.registerService(new String[] { DebugOptionsListener.class.getName(), Logger.class.getName() },
+                new Tracer(bundle), props);
+        
+        return serviceRegistration;
+    }
+    
+}
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/Tracer.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/Tracer.java
similarity index 90%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/Tracer.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/Tracer.java
index d5abe22..cea6f88 100644
--- a/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/Tracer.java
+++ b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/Tracer.java
@@ -20,12 +20,13 @@
 
 import org.apache.sling.ide.log.Logger;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.service.debug.DebugOptions;
 import org.eclipse.osgi.service.debug.DebugOptionsListener;
 import org.eclipse.osgi.service.debug.DebugTrace;
 import org.eclipse.osgi.util.NLS;
+import org.osgi.framework.Bundle;
 
 /**
  * The <tt>Tracer</tt> is the default implementation of the <tt>Logger</tt>
@@ -34,20 +35,20 @@
 
     private static final long PERF_IGNORE_THRESHOLD = 50;
 
-    private final Plugin plugin;
+    private final Bundle bundle;
     private boolean debugEnabled;
     private boolean consoleEnabled;
     private boolean performanceEnabled;
     private DebugTrace trace;
     
-    public Tracer(Plugin plugin) {
-        this.plugin = plugin;
+    public Tracer(Bundle bundle) {
+        this.bundle = bundle;
     }
 
     @Override
     public void optionsChanged(DebugOptions options) {
     	
-        String pluginId = plugin.getBundle().getSymbolicName();
+        String pluginId = bundle.getSymbolicName();
 
         debugEnabled = options.getBooleanOption(pluginId + "/debug", false);
         consoleEnabled = options.getBooleanOption(pluginId + "/debug/console", false) && debugEnabled;
@@ -73,7 +74,7 @@
     private void writeToConsole(String message, Throwable t) {
 
         System.out.println("[" + Thread.currentThread().getName() + "] " + new Date() + " "
-                + plugin.getBundle().getSymbolicName() + " : " + message);
+                + bundle.getSymbolicName() + " : " + message);
         if (t != null)
             t.printStackTrace(System.out);
     }
@@ -130,6 +131,6 @@
     }
 
     private void logInternal(int statusCode, String message, Throwable cause) {
-        plugin.getLog().log(new Status(statusCode, plugin.getBundle().getSymbolicName(), message, cause));
+        Platform.getLog(bundle).log(new Status(statusCode, bundle.getSymbolicName(), message, cause));
     }
 }
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/facet/FacetHelper.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/facet/FacetHelper.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/facet/FacetHelper.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/facet/FacetHelper.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
similarity index 93%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
index f3671d5..c6d58c3 100644
--- a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
+++ b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
@@ -32,8 +32,6 @@
 import org.apache.sling.ide.transport.CommandExecutionProperties;
 import org.apache.sling.ide.transport.RepositoryFactory;
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.event.Event;
@@ -73,8 +71,13 @@
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 		plugin = this;
+		
+		PluginLoggerRegistrar loggerRegistrar = PluginLoggerRegistrar.getInstance();
+		
+        loggerRegistrar.init(context.getBundles());
+        context.addBundleListener(loggerRegistrar);
 
-        tracerRegistration = PluginLoggerRegistrar.register(this);
+        tracerRegistration = loggerRegistrar.getServiceRegistration(context.getBundle());
 
         eventAdmin = new ServiceTracker<>(context, EventAdmin.class, null);
         eventAdmin.open();
@@ -111,8 +114,11 @@
 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
 	 */
 	public void stop(BundleContext context) throws Exception {
-
-        tracerRegistration.unregister();
+	    
+	    PluginLoggerRegistrar loggerRegistrar = PluginLoggerRegistrar.getInstance();
+	    
+	    context.removeBundleListener(loggerRegistrar);
+	    loggerRegistrar.shutdown();
 
         repositoryFactory.close();
         serializationManager.close();
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/BaseFacetInstallDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/BaseFacetInstallDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/BaseFacetInstallDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/BaseFacetInstallDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ContentResourceTester.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ContentResourceTester.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ContentResourceTester.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ContentResourceTester.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/EmptyDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/EmptyDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/EmptyDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/EmptyDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JarBuilder.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JarBuilder.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JarBuilder.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JarBuilder.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/PreferencesInitializer.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/PreferencesInitializer.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/PreferencesInitializer.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/PreferencesInitializer.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectDescriptionManager.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectDescriptionManager.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectDescriptionManager.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectDescriptionManager.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectHelper.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectHelper.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectHelper.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ProjectHelper.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceAndInfo.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceAndInfo.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceAndInfo.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceAndInfo.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceChangeCommandFactory.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceChangeCommandFactory.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceChangeCommandFactory.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ResourceChangeCommandFactory.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ServerBehaviourDelegateWithModulePublishSupport.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ServerBehaviourDelegateWithModulePublishSupport.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ServerBehaviourDelegateWithModulePublishSupport.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ServerBehaviourDelegateWithModulePublishSupport.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SetServerStringPropertyCommand.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SetServerStringPropertyCommand.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SetServerStringPropertyCommand.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SetServerStringPropertyCommand.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetInstallDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetInstallDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetInstallDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetInstallDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetUninstallDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetUninstallDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetUninstallDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleFacetUninstallDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleModuleFactory.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleModuleFactory.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleModuleFactory.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingBundleModuleFactory.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetInstallDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetInstallDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetInstallDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetInstallDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetUninstallDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetUninstallDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetUninstallDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentFacetUninstallDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentModuleFactory.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentModuleFactory.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentModuleFactory.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingContentModuleFactory.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadConfiguration.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadConfiguration.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadConfiguration.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadConfiguration.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetInstallDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetInstallDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetInstallDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetInstallDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetUninstallDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetUninstallDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetUninstallDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadFacetUninstallDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchConfigurationDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchConfigurationDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchConfigurationDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchConfigurationDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchableAdapterDelegate.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchableAdapterDelegate.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchableAdapterDelegate.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadLaunchableAdapterDelegate.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadRuntime.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadRuntime.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadRuntime.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadRuntime.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/launch/SourceReferenceResolver.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/launch/SourceReferenceResolver.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/launch/SourceReferenceResolver.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/launch/SourceReferenceResolver.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/core/progress/ProgressUtils.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/progress/ProgressUtils.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/core/progress/ProgressUtils.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/core/progress/ProgressUtils.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/AbstractValidator.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/AbstractValidator.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/AbstractValidator.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/AbstractValidator.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/BundleProjectValidator.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/BundleProjectValidator.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/BundleProjectValidator.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/BundleProjectValidator.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ContentProjectValidator.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ContentProjectValidator.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ContentProjectValidator.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ContentProjectValidator.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/IgnoreMissingGrammarXmlValidator.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/IgnoreMissingGrammarXmlValidator.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/IgnoreMissingGrammarXmlValidator.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/IgnoreMissingGrammarXmlValidator.java
diff --git a/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ServiceComponentHeaderValidator.java b/eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ServiceComponentHeaderValidator.java
similarity index 100%
rename from eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ServiceComponentHeaderValidator.java
rename to eclipse/eclipse-core/src/org/apache/sling/ide/eclipse/internal/validation/ServiceComponentHeaderValidator.java
diff --git a/eclipse-m2e-core/META-INF/MANIFEST.MF b/eclipse/eclipse-m2e-core/META-INF/MANIFEST.MF
similarity index 100%
rename from eclipse-m2e-core/META-INF/MANIFEST.MF
rename to eclipse/eclipse-m2e-core/META-INF/MANIFEST.MF
diff --git a/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml b/eclipse/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml
similarity index 100%
rename from eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml
rename to eclipse/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml
diff --git a/eclipse-m2e-core/README.md b/eclipse/eclipse-m2e-core/README.md
similarity index 100%
rename from eclipse-m2e-core/README.md
rename to eclipse/eclipse-m2e-core/README.md
diff --git a/eclipse-m2e-core/build.properties b/eclipse/eclipse-m2e-core/build.properties
similarity index 100%
rename from eclipse-m2e-core/build.properties
rename to eclipse/eclipse-m2e-core/build.properties
diff --git a/eclipse-m2e-core/pom.xml b/eclipse/eclipse-m2e-core/pom.xml
similarity index 100%
rename from eclipse-m2e-core/pom.xml
rename to eclipse/eclipse-m2e-core/pom.xml
diff --git a/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java b/eclipse/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java
similarity index 100%
rename from eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java
rename to eclipse/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java
diff --git a/eclipse-m2e-test/.gitignore b/eclipse/eclipse-m2e-test/.gitignore
similarity index 100%
rename from eclipse-m2e-test/.gitignore
rename to eclipse/eclipse-m2e-test/.gitignore
diff --git a/eclipse-m2e-test/META-INF/LICENSE b/eclipse/eclipse-m2e-test/META-INF/LICENSE
similarity index 100%
rename from eclipse-m2e-test/META-INF/LICENSE
rename to eclipse/eclipse-m2e-test/META-INF/LICENSE
diff --git a/eclipse-m2e-test/META-INF/MANIFEST.MF b/eclipse/eclipse-m2e-test/META-INF/MANIFEST.MF
similarity index 100%
rename from eclipse-m2e-test/META-INF/MANIFEST.MF
rename to eclipse/eclipse-m2e-test/META-INF/MANIFEST.MF
diff --git a/eclipse-m2e-test/META-INF/NOTICE b/eclipse/eclipse-m2e-test/META-INF/NOTICE
similarity index 100%
rename from eclipse-m2e-test/META-INF/NOTICE
rename to eclipse/eclipse-m2e-test/META-INF/NOTICE
diff --git a/eclipse-m2e-test/README.md b/eclipse/eclipse-m2e-test/README.md
similarity index 100%
rename from eclipse-m2e-test/README.md
rename to eclipse/eclipse-m2e-test/README.md
diff --git a/eclipse-m2e-test/build.properties b/eclipse/eclipse-m2e-test/build.properties
similarity index 100%
rename from eclipse-m2e-test/build.properties
rename to eclipse/eclipse-m2e-test/build.properties
diff --git a/eclipse-m2e-test/pom.xml b/eclipse/eclipse-m2e-test/pom.xml
similarity index 100%
rename from eclipse-m2e-test/pom.xml
rename to eclipse/eclipse-m2e-test/pom.xml
diff --git a/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/LegacyMavenBundleProjectTest.java b/eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/LegacyMavenBundleProjectTest.java
similarity index 100%
rename from eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/LegacyMavenBundleProjectTest.java
rename to eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/LegacyMavenBundleProjectTest.java
diff --git a/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/MavenProjectUtilsTest.java b/eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/MavenProjectUtilsTest.java
similarity index 100%
rename from eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/MavenProjectUtilsTest.java
rename to eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/MavenProjectUtilsTest.java
diff --git a/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/impl/helpers/MavenProjectAdapter.java b/eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/impl/helpers/MavenProjectAdapter.java
similarity index 100%
rename from eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/impl/helpers/MavenProjectAdapter.java
rename to eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/impl/helpers/MavenProjectAdapter.java
diff --git a/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/legacy-pom.xml b/eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/legacy-pom.xml
similarity index 100%
rename from eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/legacy-pom.xml
rename to eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/legacy-pom.xml
diff --git a/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/slingstart-simple-pom.xml b/eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/slingstart-simple-pom.xml
similarity index 100%
rename from eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/slingstart-simple-pom.xml
rename to eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/m2e/slingstart-simple-pom.xml
diff --git a/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPageTest.java b/eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPageTest.java
similarity index 100%
rename from eclipse-m2e-test/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPageTest.java
rename to eclipse/eclipse-m2e-test/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPageTest.java
diff --git a/eclipse-m2e-ui/.options b/eclipse/eclipse-m2e-ui/.options
similarity index 100%
rename from eclipse-m2e-ui/.options
rename to eclipse/eclipse-m2e-ui/.options
diff --git a/eclipse-m2e-ui/META-INF/LICENSE b/eclipse/eclipse-m2e-ui/META-INF/LICENSE
similarity index 100%
rename from eclipse-m2e-ui/META-INF/LICENSE
rename to eclipse/eclipse-m2e-ui/META-INF/LICENSE
diff --git a/eclipse-m2e-ui/META-INF/MANIFEST.MF b/eclipse/eclipse-m2e-ui/META-INF/MANIFEST.MF
similarity index 98%
rename from eclipse-m2e-ui/META-INF/MANIFEST.MF
rename to eclipse/eclipse-m2e-ui/META-INF/MANIFEST.MF
index d12fb8c..c06fad4 100644
--- a/eclipse-m2e-ui/META-INF/MANIFEST.MF
+++ b/eclipse/eclipse-m2e-ui/META-INF/MANIFEST.MF
@@ -68,3 +68,4 @@
 Bundle-ActivationPolicy: lazy
 Export-Package: org.apache.sling.ide.eclipse.m2e,org.apache.sling.ide.
  eclipse.ui.wizards.np
+SlingIDE-PluginLoggerEnabled: true
diff --git a/eclipse-m2e-ui/META-INF/NOTICE b/eclipse/eclipse-m2e-ui/META-INF/NOTICE
similarity index 100%
rename from eclipse-m2e-ui/META-INF/NOTICE
rename to eclipse/eclipse-m2e-ui/META-INF/NOTICE
diff --git a/eclipse-m2e-ui/README.md b/eclipse/eclipse-m2e-ui/README.md
similarity index 100%
rename from eclipse-m2e-ui/README.md
rename to eclipse/eclipse-m2e-ui/README.md
diff --git a/eclipse-m2e-ui/build.properties b/eclipse/eclipse-m2e-ui/build.properties
similarity index 100%
rename from eclipse-m2e-ui/build.properties
rename to eclipse/eclipse-m2e-ui/build.properties
diff --git a/eclipse-m2e-ui/icons/obj16/sling.gif b/eclipse/eclipse-m2e-ui/icons/obj16/sling.gif
similarity index 100%
rename from eclipse-m2e-ui/icons/obj16/sling.gif
rename to eclipse/eclipse-m2e-ui/icons/obj16/sling.gif
Binary files differ
diff --git a/eclipse-m2e-ui/lifecycle-mapping-metadata.xml b/eclipse/eclipse-m2e-ui/lifecycle-mapping-metadata.xml
similarity index 100%
rename from eclipse-m2e-ui/lifecycle-mapping-metadata.xml
rename to eclipse/eclipse-m2e-ui/lifecycle-mapping-metadata.xml
diff --git a/eclipse-m2e-ui/plugin.xml b/eclipse/eclipse-m2e-ui/plugin.xml
similarity index 100%
rename from eclipse-m2e-ui/plugin.xml
rename to eclipse/eclipse-m2e-ui/plugin.xml
diff --git a/eclipse-m2e-ui/pom.xml b/eclipse/eclipse-m2e-ui/pom.xml
similarity index 100%
rename from eclipse-m2e-ui/pom.xml
rename to eclipse/eclipse-m2e-ui/pom.xml
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractBundleProjectConfigurator.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractBundleProjectConfigurator.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractBundleProjectConfigurator.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractBundleProjectConfigurator.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfigurator.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfigurator.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfigurator.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfigurator.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfiguratorRunningDefaultOnIncrementalBuilds.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfiguratorRunningDefaultOnIncrementalBuilds.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfiguratorRunningDefaultOnIncrementalBuilds.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/AbstractProjectConfiguratorRunningDefaultOnIncrementalBuilds.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
similarity index 96%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
index 10ef667..5720e10 100644
--- a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
+++ b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
@@ -62,7 +62,7 @@
                 null);
         osgiClientFactory.open();
 
-        tracerRegistration = PluginLoggerRegistrar.register(this);
+        tracerRegistration = PluginLoggerRegistrar.getInstance().getServiceRegistration(context.getBundle());
 
         tracer = new ServiceTracker<>(context, tracerRegistration.getReference(), null);
         tracer.open();
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BndMavenPluginProjectConfigurator.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BndMavenPluginProjectConfigurator.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BndMavenPluginProjectConfigurator.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BndMavenPluginProjectConfigurator.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BundleProjectNotSupportingM2EIncrementalBuildQuickFix.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BundleProjectNotSupportingM2EIncrementalBuildQuickFix.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BundleProjectNotSupportingM2EIncrementalBuildQuickFix.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/BundleProjectNotSupportingM2EIncrementalBuildQuickFix.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenBundlePluginProjectConfigurator.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenBundlePluginProjectConfigurator.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenBundlePluginProjectConfigurator.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenBundlePluginProjectConfigurator.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectConfiguratorPreferencesPage.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectConfiguratorPreferencesPage.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectConfiguratorPreferencesPage.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectConfiguratorPreferencesPage.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectUtils.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectUtils.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectUtils.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/MavenProjectUtils.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/SlingstartProjectConfigurator.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/SlingstartProjectConfigurator.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/SlingstartProjectConfigurator.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/SlingstartProjectConfigurator.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/Preferences.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/Preferences.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/Preferences.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/Preferences.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/PreferencesInitializer.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/PreferencesInitializer.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/PreferencesInitializer.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/preferences/PreferencesInitializer.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewMavenBasedSlingApplicationWizard.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewMavenBasedSlingApplicationWizard.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewMavenBasedSlingApplicationWizard.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewMavenBasedSlingApplicationWizard.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
diff --git a/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java b/eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java
similarity index 100%
rename from eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java
rename to eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java
diff --git a/eclipse-sightly-core/.options b/eclipse/eclipse-sightly-core/.options
similarity index 100%
rename from eclipse-sightly-core/.options
rename to eclipse/eclipse-sightly-core/.options
diff --git a/eclipse-sightly-core/META-INF/MANIFEST.MF b/eclipse/eclipse-sightly-core/META-INF/MANIFEST.MF
similarity index 97%
rename from eclipse-sightly-core/META-INF/MANIFEST.MF
rename to eclipse/eclipse-sightly-core/META-INF/MANIFEST.MF
index 337588f..c556dfc 100644
--- a/eclipse-sightly-core/META-INF/MANIFEST.MF
+++ b/eclipse/eclipse-sightly-core/META-INF/MANIFEST.MF
@@ -37,3 +37,4 @@
  org.apache.sling.ide.eclipse.sightly.model,
  org.apache.sling.ide.eclipse.sightly.validation,
  org.apache.sling.ide.eclipse.sightly.internal;x-friends:="org.apache.sling.ide.eclipse-test"
+SlingIDE-PluginLoggerEnabled: true
diff --git a/eclipse-sightly-core/README.md b/eclipse/eclipse-sightly-core/README.md
similarity index 100%
rename from eclipse-sightly-core/README.md
rename to eclipse/eclipse-sightly-core/README.md
diff --git a/eclipse-sightly-core/build.properties b/eclipse/eclipse-sightly-core/build.properties
similarity index 100%
rename from eclipse-sightly-core/build.properties
rename to eclipse/eclipse-sightly-core/build.properties
diff --git a/eclipse-sightly-core/plugin.xml b/eclipse/eclipse-sightly-core/plugin.xml
similarity index 100%
rename from eclipse-sightly-core/plugin.xml
rename to eclipse/eclipse-sightly-core/plugin.xml
diff --git a/eclipse-sightly-core/pom.xml b/eclipse/eclipse-sightly-core/pom.xml
similarity index 100%
rename from eclipse-sightly-core/pom.xml
rename to eclipse/eclipse-sightly-core/pom.xml
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/SightlyFacetHelper.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/SightlyFacetHelper.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/SightlyFacetHelper.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/SightlyFacetHelper.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Activator.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Activator.java
similarity index 95%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Activator.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Activator.java
index 554c372..31cadd0 100644
--- a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Activator.java
+++ b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Activator.java
@@ -39,7 +39,7 @@
 
     public void start(BundleContext context) throws Exception {
         
-        loggerRegistration = PluginLoggerRegistrar.register(this);
+        loggerRegistration = PluginLoggerRegistrar.getInstance().getServiceRegistration(context.getBundle());
         loggerTracker = new ServiceTracker<>(context, loggerRegistration.getReference(), null);
         loggerTracker.open();
         
@@ -54,7 +54,6 @@
     public void stop(BundleContext context) throws Exception {
 
         plugin = null;
-        loggerRegistration.unregister();
         
         super.stop(context);
     }
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetUninstallDelegate.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetUninstallDelegate.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetUninstallDelegate.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetUninstallDelegate.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyNatureTester.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyNatureTester.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyNatureTester.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyNatureTester.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Validator.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Validator.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Validator.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/Validator.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Attribute.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Attribute.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Attribute.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Attribute.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ModelElements.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ModelElements.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ModelElements.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ModelElements.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ProposalDescription.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ProposalDescription.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ProposalDescription.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/ProposalDescription.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Tag.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Tag.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Tag.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/Tag.java
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/messages.properties b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/messages.properties
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/messages.properties
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/model/messages.properties
diff --git a/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/validation/ValidatorReporter.java b/eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/validation/ValidatorReporter.java
similarity index 100%
rename from eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/validation/ValidatorReporter.java
rename to eclipse/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/validation/ValidatorReporter.java
diff --git a/eclipse-sightly-ui/.options b/eclipse/eclipse-sightly-ui/.options
similarity index 100%
rename from eclipse-sightly-ui/.options
rename to eclipse/eclipse-sightly-ui/.options
diff --git a/eclipse-sightly-ui/META-INF/MANIFEST.MF b/eclipse/eclipse-sightly-ui/META-INF/MANIFEST.MF
similarity index 100%
rename from eclipse-sightly-ui/META-INF/MANIFEST.MF
rename to eclipse/eclipse-sightly-ui/META-INF/MANIFEST.MF
diff --git a/eclipse-sightly-ui/README.md b/eclipse/eclipse-sightly-ui/README.md
similarity index 100%
rename from eclipse-sightly-ui/README.md
rename to eclipse/eclipse-sightly-ui/README.md
diff --git a/eclipse-sightly-ui/build.properties b/eclipse/eclipse-sightly-ui/build.properties
similarity index 100%
rename from eclipse-sightly-ui/build.properties
rename to eclipse/eclipse-sightly-ui/build.properties
diff --git a/eclipse-sightly-ui/icons/obj16/sightly.gif b/eclipse/eclipse-sightly-ui/icons/obj16/sightly.gif
similarity index 100%
rename from eclipse-sightly-ui/icons/obj16/sightly.gif
rename to eclipse/eclipse-sightly-ui/icons/obj16/sightly.gif
Binary files differ
diff --git a/eclipse-sightly-ui/icons/wizban/sightly.gif b/eclipse/eclipse-sightly-ui/icons/wizban/sightly.gif
similarity index 100%
rename from eclipse-sightly-ui/icons/wizban/sightly.gif
rename to eclipse/eclipse-sightly-ui/icons/wizban/sightly.gif
Binary files differ
diff --git a/eclipse-sightly-ui/plugin.xml b/eclipse/eclipse-sightly-ui/plugin.xml
similarity index 100%
rename from eclipse-sightly-ui/plugin.xml
rename to eclipse/eclipse-sightly-ui/plugin.xml
diff --git a/eclipse-sightly-ui/pom.xml b/eclipse/eclipse-sightly-ui/pom.xml
similarity index 100%
rename from eclipse-sightly-ui/pom.xml
rename to eclipse/eclipse-sightly-ui/pom.xml
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/AbstractNewSightlyFileWizard.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/AbstractNewSightlyFileWizard.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/AbstractNewSightlyFileWizard.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/AbstractNewSightlyFileWizard.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/Constants.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/Constants.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/Constants.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/Constants.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/JavaUtils.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/JavaUtils.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/JavaUtils.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/JavaUtils.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileHandler.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileHandler.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileHandler.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileHandler.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileWizard.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileWizard.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileWizard.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyFileWizard.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptHandler.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptHandler.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptHandler.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptHandler.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptWizard.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptWizard.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptWizard.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJavaUseScriptWizard.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptHandler.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptHandler.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptHandler.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptHandler.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptWizard.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptWizard.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptWizard.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/NewSightlyJsUseScriptWizard.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/ProposalComputer.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/ProposalComputer.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/ProposalComputer.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/ProposalComputer.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/SharedImages.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/SharedImages.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/SharedImages.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/SharedImages.java
diff --git a/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/TotalValidator.java b/eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/TotalValidator.java
similarity index 100%
rename from eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/TotalValidator.java
rename to eclipse/eclipse-sightly-ui/src/org/apache/sling/ide/eclipse/sightly/ui/internal/TotalValidator.java
diff --git a/eclipse-test/.gitignore b/eclipse/eclipse-test/.gitignore
similarity index 100%
rename from eclipse-test/.gitignore
rename to eclipse/eclipse-test/.gitignore
diff --git a/eclipse-test/META-INF/LICENSE b/eclipse/eclipse-test/META-INF/LICENSE
similarity index 100%
rename from eclipse-test/META-INF/LICENSE
rename to eclipse/eclipse-test/META-INF/LICENSE
diff --git a/eclipse-test/META-INF/MANIFEST.MF b/eclipse/eclipse-test/META-INF/MANIFEST.MF
similarity index 100%
rename from eclipse-test/META-INF/MANIFEST.MF
rename to eclipse/eclipse-test/META-INF/MANIFEST.MF
diff --git a/eclipse-test/META-INF/NOTICE b/eclipse/eclipse-test/META-INF/NOTICE
similarity index 100%
rename from eclipse-test/META-INF/NOTICE
rename to eclipse/eclipse-test/META-INF/NOTICE
diff --git a/eclipse-test/README.md b/eclipse/eclipse-test/README.md
similarity index 100%
rename from eclipse-test/README.md
rename to eclipse/eclipse-test/README.md
diff --git a/eclipse-test/build.properties b/eclipse/eclipse-test/build.properties
similarity index 100%
rename from eclipse-test/build.properties
rename to eclipse/eclipse-test/build.properties
diff --git a/eclipse-test/pom.xml b/eclipse/eclipse-test/pom.xml
similarity index 100%
rename from eclipse-test/pom.xml
rename to eclipse/eclipse-test/pom.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/Activator.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/Activator.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/Activator.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/Activator.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java
similarity index 92%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java
index 9243f2a..9be7766 100644
--- a/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java
+++ b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java
@@ -38,6 +38,7 @@
 import org.apache.sling.ide.test.impl.helpers.SlingWstServer;
 import org.apache.sling.ide.test.impl.helpers.TemporaryProject;
 import org.apache.sling.ide.test.impl.helpers.ToolingSupportBundle;
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jdt.core.JavaCore;
@@ -84,7 +85,7 @@
         wstServer.waitForServerToStart();
 
         // create faceted project
-        IProject bundleProject = projectRule.getProject();
+        final IProject bundleProject = projectRule.getProject();
 
         ProjectAdapter project = new ProjectAdapter(bundleProject);
         project.addNatures(JavaCore.NATURE_ID, "org.eclipse.wst.common.project.facet.core.nature");
@@ -113,6 +114,15 @@
         // install bundle facet
         project.installFacet("sling.bundle", "1.0");
 
+        // ensure that the project is built and deployable
+        new Poller().pollUntilTrue(new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                IFile outputManifest = bundleProject.getFile(Path.fromPortableString("bin/META-INF/MANIFEST.MF"));
+                return outputManifest.exists();
+            }
+        });
+
         ServerAdapter server = new ServerAdapter(wstServer.getServer());
         server.setAttribute(ISlingLaunchpadServer.PROP_INSTALL_LOCALLY, installBundleLocally);
         server.installModule(bundleProject);
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ContentImportTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ContentImportTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ContentImportTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ContentImportTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ContentResourceTesterTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ContentResourceTesterTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ContentResourceTesterTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ContentResourceTesterTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/JcrNodeCreationTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrNodeCreationTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/JcrNodeCreationTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrNodeCreationTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/JcrPartialCoverageAggregatesDeploymentTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrPartialCoverageAggregatesDeploymentTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/JcrPartialCoverageAggregatesDeploymentTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/JcrPartialCoverageAggregatesDeploymentTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ProjectHelperTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ProjectHelperTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ProjectHelperTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ProjectHelperTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ProjectUtilTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ProjectUtilTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ProjectUtilTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ProjectUtilTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ResourceChangeCommandFactoryTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ResourceChangeCommandFactoryTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ResourceChangeCommandFactoryTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ResourceChangeCommandFactoryTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ServiceComponentHeaderValidatorTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ServiceComponentHeaderValidatorTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ServiceComponentHeaderValidatorTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ServiceComponentHeaderValidatorTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v1.txt b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v1.txt
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v1.txt
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v1.txt
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v2.txt b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v2.txt
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v2.txt
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.java.v2.txt
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SimpleServlet.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/SlingContentModuleAdapterTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SlingContentModuleAdapterTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/SlingContentModuleAdapterTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/SlingContentModuleAdapterTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/com.example.some.Component.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/com.example.some.Component.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/com.example.some.Component.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/com.example.some.Component.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-all-nodes.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-all-nodes.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-all-nodes.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-all-nodes.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-node.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-node.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-node.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-deleted-node.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-reordered-nodes.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-reordered-nodes.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-reordered-nodes.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure-reordered-nodes.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/content-nested-structure.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/file-custom-mimetype.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/file-custom-mimetype.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/file-custom-mimetype.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/file-custom-mimetype.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/AbstractFailOnUnexpectedEventsRule.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/AbstractFailOnUnexpectedEventsRule.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/AbstractFailOnUnexpectedEventsRule.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/AbstractFailOnUnexpectedEventsRule.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DefaultJavaVMInstall.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DefaultJavaVMInstall.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DefaultJavaVMInstall.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DefaultJavaVMInstall.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DisableDebugStatusHandlers.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DisableDebugStatusHandlers.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DisableDebugStatusHandlers.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/DisableDebugStatusHandlers.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/EclipseResourceMatchers.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/EclipseResourceMatchers.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/EclipseResourceMatchers.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/EclipseResourceMatchers.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ExternalSlingLaunchpad.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ExternalSlingLaunchpad.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ExternalSlingLaunchpad.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ExternalSlingLaunchpad.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnUnsuccessfulEventsRule.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnUnsuccessfulEventsRule.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnUnsuccessfulEventsRule.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnUnsuccessfulEventsRule.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFileMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFileMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFileMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFileMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFolderMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFolderMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFolderMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/HasFolderMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/IStatusIsOk.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/IStatusIsOk.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/IStatusIsOk.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/IStatusIsOk.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/LaunchpadConfig.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/LaunchpadConfig.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/LaunchpadConfig.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/LaunchpadConfig.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/MavenDependency.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/MavenDependency.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/MavenDependency.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/MavenDependency.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/OsgiBundleManifest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/OsgiBundleManifest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/OsgiBundleManifest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/OsgiBundleManifest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/Poller.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/Poller.java
similarity index 94%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/Poller.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/Poller.java
index 5c8e56f..a308f52 100644
--- a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/Poller.java
+++ b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/Poller.java
@@ -20,6 +20,7 @@
 
 import java.util.concurrent.Callable;
 
+import org.hamcrest.CoreMatchers;
 import org.hamcrest.Matcher;
 
 import junit.framework.AssertionFailedError;
@@ -99,4 +100,8 @@
         // safe, since only we write in holder[0]
         return (V) holder[0];
     }
+
+    public void pollUntilTrue(final Callable<Boolean> callable) throws InterruptedException {
+        pollUntil(callable, CoreMatchers.equalTo(true));
+    }
 }
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/RepositoryAccessor.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/RepositoryAccessor.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/RepositoryAccessor.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/RepositoryAccessor.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ServerAdapter.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ServerAdapter.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ServerAdapter.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ServerAdapter.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SlingWstServer.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SlingWstServer.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SlingWstServer.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SlingWstServer.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/TemporaryProject.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/TemporaryProject.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/TemporaryProject.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/TemporaryProject.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ToolingSupportBundle.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ToolingSupportBundle.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ToolingSupportBundle.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ToolingSupportBundle.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenCountMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenCountMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenCountMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenCountMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/MixinTypesMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/MixinTypesMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/MixinTypesMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/MixinTypesMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NodePathMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NodePathMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NodePathMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NodePathMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NtFileContentMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NtFileContentMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NtFileContentMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/NtFileContentMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PrimaryTypeMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PrimaryTypeMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PrimaryTypeMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PrimaryTypeMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PropertyMatcher.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PropertyMatcher.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PropertyMatcher.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/PropertyMatcher.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype-with-title.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype-with-title.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype-with-title.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype-with-title.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-nodetype.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-with-folder-child.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-with-folder-child.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-with-folder-child.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/nt-unstructured-with-folder-child.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTesterTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTesterTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTesterTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sightly/SightlyNatureTesterTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype-with-title.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype-with-title.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype-with-title.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype-with-title.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-folder-nodetype.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-folder-child.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-folder-child.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-folder-child.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-folder-child.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-unstructured-child.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-unstructured-child.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-unstructured-child.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-mapping-with-unstructured-child.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children-reordered.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children-reordered.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children-reordered.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children-reordered.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children.xml b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children.xml
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children.xml
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/sling-ordered-folder-with-children.xml
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/JavaUtilsTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/JavaUtilsTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/JavaUtilsTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/JavaUtilsTest.java
diff --git a/eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/SightlyAutocompletionTest.java b/eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/SightlyAutocompletionTest.java
similarity index 100%
rename from eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/SightlyAutocompletionTest.java
rename to eclipse/eclipse-test/src/org/apache/sling/ide/test/impl/ui/sightly/SightlyAutocompletionTest.java
diff --git a/eclipse-ui/.options b/eclipse/eclipse-ui/.options
similarity index 100%
rename from eclipse-ui/.options
rename to eclipse/eclipse-ui/.options
diff --git a/eclipse-ui/META-INF/LICENSE b/eclipse/eclipse-ui/META-INF/LICENSE
similarity index 100%
rename from eclipse-ui/META-INF/LICENSE
rename to eclipse/eclipse-ui/META-INF/LICENSE
diff --git a/eclipse-ui/META-INF/MANIFEST.MF b/eclipse/eclipse-ui/META-INF/MANIFEST.MF
similarity index 98%
rename from eclipse-ui/META-INF/MANIFEST.MF
rename to eclipse/eclipse-ui/META-INF/MANIFEST.MF
index 019e27e..fb4de9b 100644
--- a/eclipse-ui/META-INF/MANIFEST.MF
+++ b/eclipse/eclipse-ui/META-INF/MANIFEST.MF
@@ -101,3 +101,4 @@
  org.apache.sling.ide.eclipse.ui.propertyPages,
  org.apache.sling.ide.eclipse.ui.views,
  org.apache.sling.ide.eclipse.ui.wizards
+SlingIDE-PluginLoggerEnabled: true
diff --git a/eclipse-ui/META-INF/NOTICE b/eclipse/eclipse-ui/META-INF/NOTICE
similarity index 100%
rename from eclipse-ui/META-INF/NOTICE
rename to eclipse/eclipse-ui/META-INF/NOTICE
diff --git a/eclipse-ui/OSGI-INF/SlingConsoleEventListener.xml b/eclipse/eclipse-ui/OSGI-INF/SlingConsoleEventListener.xml
similarity index 100%
rename from eclipse-ui/OSGI-INF/SlingConsoleEventListener.xml
rename to eclipse/eclipse-ui/OSGI-INF/SlingConsoleEventListener.xml
diff --git a/eclipse-ui/README.md b/eclipse/eclipse-ui/README.md
similarity index 100%
rename from eclipse-ui/README.md
rename to eclipse/eclipse-ui/README.md
diff --git a/eclipse-ui/build.properties b/eclipse/eclipse-ui/build.properties
similarity index 100%
rename from eclipse-ui/build.properties
rename to eclipse/eclipse-ui/build.properties
diff --git a/eclipse-ui/icons/obj16/internal_browser.png b/eclipse/eclipse-ui/icons/obj16/internal_browser.png
similarity index 100%
rename from eclipse-ui/icons/obj16/internal_browser.png
rename to eclipse/eclipse-ui/icons/obj16/internal_browser.png
Binary files differ
diff --git a/eclipse-ui/icons/obj16/sling_bundle.gif b/eclipse/eclipse-ui/icons/obj16/sling_bundle.gif
similarity index 100%
rename from eclipse-ui/icons/obj16/sling_bundle.gif
rename to eclipse/eclipse-ui/icons/obj16/sling_bundle.gif
Binary files differ
diff --git a/eclipse-ui/icons/obj16/sling_content.gif b/eclipse/eclipse-ui/icons/obj16/sling_content.gif
similarity index 100%
rename from eclipse-ui/icons/obj16/sling_content.gif
rename to eclipse/eclipse-ui/icons/obj16/sling_content.gif
Binary files differ
diff --git a/eclipse-ui/icons/obj16/sling_misc.gif b/eclipse/eclipse-ui/icons/obj16/sling_misc.gif
similarity index 100%
rename from eclipse-ui/icons/obj16/sling_misc.gif
rename to eclipse/eclipse-ui/icons/obj16/sling_misc.gif
Binary files differ
diff --git a/eclipse-ui/icons/obj16/sling_server.gif b/eclipse/eclipse-ui/icons/obj16/sling_server.gif
similarity index 100%
rename from eclipse-ui/icons/obj16/sling_server.gif
rename to eclipse/eclipse-ui/icons/obj16/sling_server.gif
Binary files differ
diff --git a/eclipse-ui/icons/ovr16/content_ovr.gif b/eclipse/eclipse-ui/icons/ovr16/content_ovr.gif
similarity index 100%
rename from eclipse-ui/icons/ovr16/content_ovr.gif
rename to eclipse/eclipse-ui/icons/ovr16/content_ovr.gif
Binary files differ
diff --git a/eclipse-ui/icons/ovr16/copy.gif b/eclipse/eclipse-ui/icons/ovr16/copy.gif
similarity index 100%
rename from eclipse-ui/icons/ovr16/copy.gif
rename to eclipse/eclipse-ui/icons/ovr16/copy.gif
Binary files differ
diff --git a/eclipse-ui/icons/ovr16/delete_obj.gif b/eclipse/eclipse-ui/icons/ovr16/delete_obj.gif
similarity index 100%
rename from eclipse-ui/icons/ovr16/delete_obj.gif
rename to eclipse/eclipse-ui/icons/ovr16/delete_obj.gif
Binary files differ
diff --git a/eclipse-ui/icons/ovr16/paste_edit.gif b/eclipse/eclipse-ui/icons/ovr16/paste_edit.gif
similarity index 100%
rename from eclipse-ui/icons/ovr16/paste_edit.gif
rename to eclipse/eclipse-ui/icons/ovr16/paste_edit.gif
Binary files differ
diff --git a/eclipse-ui/lib/.gitignore b/eclipse/eclipse-ui/lib/.gitignore
similarity index 100%
rename from eclipse-ui/lib/.gitignore
rename to eclipse/eclipse-ui/lib/.gitignore
diff --git a/eclipse-ui/plugin.xml b/eclipse/eclipse-ui/plugin.xml
similarity index 100%
rename from eclipse-ui/plugin.xml
rename to eclipse/eclipse-ui/plugin.xml
diff --git a/eclipse-ui/pom.xml b/eclipse/eclipse-ui/pom.xml
similarity index 100%
rename from eclipse-ui/pom.xml
rename to eclipse/eclipse-ui/pom.xml
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/SlingIdePreferencePage.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/SlingIdePreferencePage.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/SlingIdePreferencePage.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/SlingIdePreferencePage.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/WhitelabelSupport.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/WhitelabelSupport.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/WhitelabelSupport.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/WhitelabelSupport.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractClipboardHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractClipboardHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractClipboardHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractClipboardHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractJcrNodeImportExportContentHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractJcrNodeImportExportContentHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractJcrNodeImportExportContentHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/AbstractJcrNodeImportExportContentHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNewNodeHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNewNodeHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNewNodeHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNewNodeHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeCopyHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeCopyHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeCopyHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeCopyHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeDeleteHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeDeleteHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeDeleteHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeDeleteHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeExportContentHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeExportContentHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeExportContentHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeExportContentHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeImportContentHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeImportContentHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeImportContentHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeImportContentHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodePasteHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodePasteHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodePasteHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodePasteHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeRenameHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeRenameHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeRenameHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/JcrNodeRenameHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/NewNodeDialog.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/NewNodeDialog.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/NewNodeDialog.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/NewNodeDialog.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/OpenHtmlInBrowserHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/OpenHtmlInBrowserHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/OpenHtmlInBrowserHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/actions/OpenHtmlInBrowserHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/browser/AbstractOpenInBrowserHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/browser/AbstractOpenInBrowserHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/browser/AbstractOpenInBrowserHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/browser/AbstractOpenInBrowserHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/console/SlingConsoleFactory.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/console/SlingConsoleFactory.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/console/SlingConsoleFactory.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/console/SlingConsoleFactory.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/JcrDropAdapterAssistant.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/JcrDropAdapterAssistant.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/JcrDropAdapterAssistant.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/JcrDropAdapterAssistant.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/StatusLineUtils.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/StatusLineUtils.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/StatusLineUtils.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/dnd/assistant/StatusLineUtils.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
similarity index 97%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
index 27141be..28a3810 100644
--- a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
+++ b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
@@ -59,7 +59,7 @@
     public void start(BundleContext context) throws Exception {
         super.start(context);
 
-        tracerRegistration = PluginLoggerRegistrar.register(this);
+        tracerRegistration = PluginLoggerRegistrar.getInstance().getServiceRegistration(context.getBundle());
 
         serializationManager = new ServiceTracker<>(context, SerializationManager.class, null);
         serializationManager.open();
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ConnectionEditorSection.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ConnectionEditorSection.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ConnectionEditorSection.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ConnectionEditorSection.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/DebugEditorSection.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/DebugEditorSection.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/DebugEditorSection.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/DebugEditorSection.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportContentAction.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportContentAction.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportContentAction.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportContentAction.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizard.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizard.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizard.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizard.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizardPage.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizardPage.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizardPage.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ExportWizardPage.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportContentAction.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportContentAction.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportContentAction.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportContentAction.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportRepositoryContentAction.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportRepositoryContentAction.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportRepositoryContentAction.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportRepositoryContentAction.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/JcrNodeDecorator.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/JcrNodeDecorator.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/JcrNodeDecorator.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/JcrNodeDecorator.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SelectionUtils.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SelectionUtils.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SelectionUtils.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SelectionUtils.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServerModuleDecorator.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServerModuleDecorator.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServerModuleDecorator.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServerModuleDecorator.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServersActionModeFiddlerActionDelegate.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServersActionModeFiddlerActionDelegate.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServersActionModeFiddlerActionDelegate.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServersActionModeFiddlerActionDelegate.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SharedImages.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SharedImages.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SharedImages.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SharedImages.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadCombo.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadCombo.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadCombo.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadCombo.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadLaunchConfigurationTabGroup.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadLaunchConfigurationTabGroup.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadLaunchConfigurationTabGroup.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingLaunchpadLaunchConfigurationTabGroup.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/connectOverlay.png b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/connectOverlay.png
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/connectOverlay.png
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/connectOverlay.png
Binary files differ
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/refresh.gif b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/refresh.gif
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/refresh.gif
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/refresh.gif
Binary files differ
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling-logo.png b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling-logo.png
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling-logo.png
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling-logo.png
Binary files differ
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling.gif b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling.gif
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling.gif
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/sling.gif
Binary files differ
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/unstructured.png b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/unstructured.png
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/unstructured.png
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/unstructured.png
Binary files differ
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/BaseRootFolderContentProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/BaseRootFolderContentProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/BaseRootFolderContentProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/BaseRootFolderContentProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ContentViewerFilter.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ContentViewerFilter.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ContentViewerFilter.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ContentViewerFilter.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfContentProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfContentProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfContentProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfContentProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfLabelProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfLabelProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfLabelProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/FileVaultMetaInfLabelProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentContentProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentContentProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentContentProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentContentProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentLabelProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentLabelProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentLabelProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/JcrContentLabelProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/PackageExplorerOpenActionProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/PackageExplorerOpenActionProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/PackageExplorerOpenActionProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/PackageExplorerOpenActionProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelContentProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelContentProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelContentProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelContentProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelLabelProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelLabelProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelLabelProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/ProvisioningModelLabelProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/Sorter.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/Sorter.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/Sorter.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/Sorter.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/DirNode.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/DirNode.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/DirNode.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/DirNode.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/FileVaultMetaInfRootFolder.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/FileVaultMetaInfRootFolder.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/FileVaultMetaInfRootFolder.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/FileVaultMetaInfRootFolder.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/GenericJcrRootFile.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/GenericJcrRootFile.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/GenericJcrRootFile.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/GenericJcrRootFile.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNodeAdapterFactory.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNodeAdapterFactory.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNodeAdapterFactory.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNodeAdapterFactory.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrProperty.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrProperty.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrProperty.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrProperty.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrTextPropertyDescriptor.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrTextPropertyDescriptor.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrTextPropertyDescriptor.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrTextPropertyDescriptor.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/LinkHelper.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/LinkHelper.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/LinkHelper.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/LinkHelper.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ModifiableProperties.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ModifiableProperties.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ModifiableProperties.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ModifiableProperties.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ProvisioningModelRootFolder.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ProvisioningModelRootFolder.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ProvisioningModelRootFolder.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/ProvisioningModelRootFolder.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/RootFolder.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/RootFolder.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/RootFolder.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/RootFolder.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDirManager.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDirManager.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDirManager.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDirManager.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLParser.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLParser.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLParser.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLParser.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLTokenizer.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLTokenizer.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLTokenizer.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/TolerantXMLTokenizer.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/UpdateHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/UpdateHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/UpdateHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/UpdateHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/properties/JcrPropertiesSection.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/properties/JcrPropertiesSection.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/properties/JcrPropertiesSection.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/properties/JcrPropertiesSection.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeCellEditor.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeCellEditor.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeCellEditor.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeCellEditor.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeEditor.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeEditor.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeEditor.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeEditor.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeSupport.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeSupport.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeSupport.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/DateTimeSupport.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrCellLabelProvider.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrCellLabelProvider.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrCellLabelProvider.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrCellLabelProvider.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrEditingSupport.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrEditingSupport.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrEditingSupport.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrEditingSupport.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrPropertiesView.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrPropertiesView.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrPropertiesView.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrPropertiesView.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVNCellEditor.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVNCellEditor.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVNCellEditor.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVNCellEditor.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVPEditor.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVPEditor.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVPEditor.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/MVPEditor.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/NewRow.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/NewRow.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/NewRow.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/NewRow.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/PropertyTypeSupport.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/PropertyTypeSupport.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/PropertyTypeSupport.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/PropertyTypeSupport.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/AbstractNewSlingApplicationWizard.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/AbstractNewSlingApplicationWizard.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/AbstractNewSlingApplicationWizard.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/AbstractNewSlingApplicationWizard.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ApplyDefaultSlingServerValuesFragment.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ApplyDefaultSlingServerValuesFragment.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ApplyDefaultSlingServerValuesFragment.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ApplyDefaultSlingServerValuesFragment.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsPage.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsPage.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsPage.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsPage.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsWizard.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsWizard.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsWizard.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertProjectsWizard.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToBundleProjectHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToBundleProjectHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToBundleProjectHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToBundleProjectHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToContentProjectHandler.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToContentProjectHandler.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToContentProjectHandler.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ConvertToContentProjectHandler.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ImportWizard.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ImportWizard.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ImportWizard.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/ImportWizard.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizard.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizard.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizard.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizard.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizardPage.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizardPage.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizardPage.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewNodeWizardPage.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewSlingContentProjectWizard.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewSlingContentProjectWizard.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewSlingContentProjectWizard.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/NewSlingContentProjectWizard.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/Projects.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/Projects.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/Projects.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/Projects.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/SetupServerWizardPage.java b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/SetupServerWizardPage.java
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/SetupServerWizardPage.java
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/SetupServerWizardPage.java
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/.content.xml b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/.content.xml
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/.content.xml
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/.content.xml
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/config.xml b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/config.xml
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/config.xml
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/config.xml
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/filter.xml b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/filter.xml
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/filter.xml
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/filter.xml
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/folder.content.xml b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/folder.content.xml
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/folder.content.xml
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/folder.content.xml
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/html.jsp b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/html.jsp
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/html.jsp
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/html.jsp
diff --git a/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/settings.xml b/eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/settings.xml
similarity index 100%
rename from eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/settings.xml
rename to eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/wizards/res/settings.xml
diff --git a/eclipse-ui/templates/jsp-templates.properties b/eclipse/eclipse-ui/templates/jsp-templates.properties
similarity index 100%
rename from eclipse-ui/templates/jsp-templates.properties
rename to eclipse/eclipse-ui/templates/jsp-templates.properties
diff --git a/eclipse-ui/templates/jsp-templates.xml b/eclipse/eclipse-ui/templates/jsp-templates.xml
similarity index 100%
rename from eclipse-ui/templates/jsp-templates.xml
rename to eclipse/eclipse-ui/templates/jsp-templates.xml
diff --git a/eclipse-core/META-INF/LICENSE b/eclipse/feature/META-INF/LICENSE
similarity index 100%
copy from eclipse-core/META-INF/LICENSE
copy to eclipse/feature/META-INF/LICENSE
diff --git a/feature/META-INF/NOTICE b/eclipse/feature/META-INF/NOTICE
similarity index 100%
rename from feature/META-INF/NOTICE
rename to eclipse/feature/META-INF/NOTICE
diff --git a/feature/README.md b/eclipse/feature/README.md
similarity index 100%
rename from feature/README.md
rename to eclipse/feature/README.md
diff --git a/feature/build.properties b/eclipse/feature/build.properties
similarity index 100%
rename from feature/build.properties
rename to eclipse/feature/build.properties
diff --git a/feature/feature.xml b/eclipse/feature/feature.xml
similarity index 100%
rename from feature/feature.xml
rename to eclipse/feature/feature.xml
diff --git a/feature/pom.xml b/eclipse/feature/pom.xml
similarity index 100%
rename from feature/pom.xml
rename to eclipse/feature/pom.xml
diff --git a/m2e-feature/META-INF/LICENSE b/eclipse/m2e-feature/META-INF/LICENSE
similarity index 100%
rename from m2e-feature/META-INF/LICENSE
rename to eclipse/m2e-feature/META-INF/LICENSE
diff --git a/m2e-feature/META-INF/NOTICE b/eclipse/m2e-feature/META-INF/NOTICE
similarity index 100%
rename from m2e-feature/META-INF/NOTICE
rename to eclipse/m2e-feature/META-INF/NOTICE
diff --git a/m2e-feature/README.md b/eclipse/m2e-feature/README.md
similarity index 100%
rename from m2e-feature/README.md
rename to eclipse/m2e-feature/README.md
diff --git a/m2e-feature/build.properties b/eclipse/m2e-feature/build.properties
similarity index 100%
rename from m2e-feature/build.properties
rename to eclipse/m2e-feature/build.properties
diff --git a/m2e-feature/feature.xml b/eclipse/m2e-feature/feature.xml
similarity index 100%
rename from m2e-feature/feature.xml
rename to eclipse/m2e-feature/feature.xml
diff --git a/m2e-feature/pom.xml b/eclipse/m2e-feature/pom.xml
similarity index 100%
rename from m2e-feature/pom.xml
rename to eclipse/m2e-feature/pom.xml
diff --git a/p2update/README.md b/eclipse/p2update/README.md
similarity index 100%
rename from p2update/README.md
rename to eclipse/p2update/README.md
diff --git a/p2update/category.xml b/eclipse/p2update/category.xml
similarity index 100%
rename from p2update/category.xml
rename to eclipse/p2update/category.xml
diff --git a/p2update/pom.xml b/eclipse/p2update/pom.xml
similarity index 100%
rename from p2update/pom.xml
rename to eclipse/p2update/pom.xml
diff --git a/p2update/siteTemplate/index.html b/eclipse/p2update/siteTemplate/index.html
similarity index 100%
rename from p2update/siteTemplate/index.html
rename to eclipse/p2update/siteTemplate/index.html
diff --git a/pom.xml b/eclipse/pom.xml
similarity index 96%
rename from pom.xml
rename to eclipse/pom.xml
index 639bcad..038ce60 100644
--- a/pom.xml
+++ b/eclipse/pom.xml
@@ -38,14 +38,6 @@
 
     <modules>
         <module>target-definition</module>
-        <module>api</module>
-        <module>api-test</module>
-        <module>artifacts</module>
-        <module>impl-resource</module>
-        <module>impl-resource-test</module>
-        <module>vlt-wrapper</module>
-        <module>impl-vlt</module>
-        <module>impl-vlt-test</module>
         <module>eclipse-core</module>
         <module>eclipse-ui</module>
         <module>feature</module>
@@ -197,8 +189,17 @@
         </pluginRepository>
     </pluginRepositories>
 
+  <repositories>
+   <repository>
+     <id>sling-ide-tooling-shared-local</id>
+     <layout>p2</layout>
+     <url>file:${basedir}/../../shared/p2/shared-repository/target/repository</url>
+   </repository>
+  </repositories>
+
+
     <properties>
-        <tycho.version>0.22.0</tycho.version>
+        <tycho.version>1.0.0</tycho.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
diff --git a/sightly-feature/META-INF/LICENSE b/eclipse/sightly-feature/META-INF/LICENSE
similarity index 100%
rename from sightly-feature/META-INF/LICENSE
rename to eclipse/sightly-feature/META-INF/LICENSE
diff --git a/sightly-feature/META-INF/NOTICE b/eclipse/sightly-feature/META-INF/NOTICE
similarity index 100%
rename from sightly-feature/META-INF/NOTICE
rename to eclipse/sightly-feature/META-INF/NOTICE
diff --git a/sightly-feature/README.md b/eclipse/sightly-feature/README.md
similarity index 100%
rename from sightly-feature/README.md
rename to eclipse/sightly-feature/README.md
diff --git a/sightly-feature/build.properties b/eclipse/sightly-feature/build.properties
similarity index 100%
rename from sightly-feature/build.properties
rename to eclipse/sightly-feature/build.properties
diff --git a/sightly-feature/feature.xml b/eclipse/sightly-feature/feature.xml
similarity index 100%
rename from sightly-feature/feature.xml
rename to eclipse/sightly-feature/feature.xml
diff --git a/sightly-feature/pom.xml b/eclipse/sightly-feature/pom.xml
similarity index 100%
rename from sightly-feature/pom.xml
rename to eclipse/sightly-feature/pom.xml
diff --git a/sign.sh b/eclipse/sign.sh
similarity index 100%
rename from sign.sh
rename to eclipse/sign.sh
diff --git a/source-bundle/README.md b/eclipse/source-bundle/README.md
similarity index 100%
rename from source-bundle/README.md
rename to eclipse/source-bundle/README.md
diff --git a/source-bundle/assembly.xml b/eclipse/source-bundle/assembly.xml
similarity index 100%
rename from source-bundle/assembly.xml
rename to eclipse/source-bundle/assembly.xml
diff --git a/source-bundle/pom.xml b/eclipse/source-bundle/pom.xml
similarity index 100%
rename from source-bundle/pom.xml
rename to eclipse/source-bundle/pom.xml
diff --git a/target-definition/Sling IDE Tooling.launch b/eclipse/target-definition/Sling IDE Tooling.launch
similarity index 100%
rename from target-definition/Sling IDE Tooling.launch
rename to eclipse/target-definition/Sling IDE Tooling.launch
diff --git a/target-definition/org.apache.sling.ide.target-definition.target b/eclipse/target-definition/org.apache.sling.ide.target-definition-dev.target
similarity index 83%
copy from target-definition/org.apache.sling.ide.target-definition.target
copy to eclipse/target-definition/org.apache.sling.ide.target-definition-dev.target
index d49a7f3..881be7b 100644
--- a/target-definition/org.apache.sling.ide.target-definition.target
+++ b/eclipse/target-definition/org.apache.sling.ide.target-definition-dev.target
@@ -15,39 +15,39 @@
     See the License for the specific language governing permissions
     and limitations under the License.
 -->
-<?pde version="3.8"?><target name="Sling IDE Tools" sequenceNumber="46">
+<?pde version="3.8"?><target name="Sling IDE Tools" sequenceNumber="52">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.wst.server_adapters.feature.feature.group" version="3.2.401.v201410241731"/>
-<unit id="org.eclipse.jst.server_ui.feature.feature.group" version="3.4.101.v201410241731"/>
-<unit id="org.eclipse.wst.xml_ui.feature.feature.group" version="3.6.3.v201501292352"/>
-<unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.6.3.v201502041526"/>
-<unit id="org.eclipse.platform.feature.group" version="4.4.2.v20150204-1700"/>
-<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="3.6.3.v201501312139"/>
-<unit id="org.eclipse.jst.server_adapters.feature.feature.group" version="3.2.301.v201410241731"/>
-<unit id="org.eclipse.jst.enterprise_ui.feature.feature.group" version="3.6.3.v201501281502"/>
-<repository location="http://download.eclipse.org/releases/luna"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.swtbot.feature.group" version="2.3.0.201506081302"/>
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.3.0.201506081302"/>
-<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.3.0.201506081302"/>
-<repository location="http://download.eclipse.org/technology/swtbot/releases/2.3.0/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.m2e.feature.feature.group" version="1.6.0.20150526-2032"/>
 <repository location="http://download.eclipse.org/technology/m2e/releases/1.6"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
-<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
 <unit id="com.google.gson" version="2.2.4.v201311231704"/>
-<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
-<unit id="org.apache.commons.io" version="2.2.0.v201405211200"/>
+<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
 <unit id="org.apache.commons.httpclient" version="3.1.0.v201012070820"/>
-<unit id="org.junit" version="4.11.0.v201303080030"/>
+<unit id="org.apache.commons.io" version="2.2.0.v201405211200"/>
+<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
 <unit id="org.hamcrest.core" version="1.3.0.v201303031735"/>
+<unit id="org.junit" version="4.11.0.v201303080030"/>
+<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>
 </location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.4.0.201604200752"/>
+<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.4.0.201604200752"/>
+<unit id="org.eclipse.swtbot.feature.group" version="2.4.0.201604200752"/>
+<repository location="http://download.eclipse.org/technology/swtbot/releases/2.4.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.jst.enterprise_ui.feature.feature.group" version="3.9.2.v201802121827"/>
+<unit id="org.eclipse.jst.server_adapters.feature.feature.group" version="3.2.400.v201711301708"/>
+<unit id="org.eclipse.jst.server_ui.feature.feature.group" version="3.4.300.v201709251835"/>
+<unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.9.0.v201802152012"/>
+<unit id="org.eclipse.pde.feature.group" version="3.13.3.v20180301-1154"/>
+<unit id="org.eclipse.wst.server_adapters.feature.feature.group" version="3.2.601.v201711302104"/>
+<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="3.9.2.v201801171858"/>
+<unit id="org.eclipse.wst.xml_ui.feature.feature.group" version="3.9.2.v201801171858"/>
+<repository location="http://download.eclipse.org/releases/oxygen/"/>
+</location>
 </locations>
 </target>
diff --git a/target-definition/org.apache.sling.ide.target-definition.target b/eclipse/target-definition/org.apache.sling.ide.target-definition.target
similarity index 83%
rename from target-definition/org.apache.sling.ide.target-definition.target
rename to eclipse/target-definition/org.apache.sling.ide.target-definition.target
index d49a7f3..89139de 100644
--- a/target-definition/org.apache.sling.ide.target-definition.target
+++ b/eclipse/target-definition/org.apache.sling.ide.target-definition.target
@@ -15,39 +15,39 @@
     See the License for the specific language governing permissions
     and limitations under the License.
 -->
-<?pde version="3.8"?><target name="Sling IDE Tools" sequenceNumber="46">
+<?pde version="3.8"?><target name="Sling IDE Tools" sequenceNumber="51">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.wst.server_adapters.feature.feature.group" version="3.2.401.v201410241731"/>
-<unit id="org.eclipse.jst.server_ui.feature.feature.group" version="3.4.101.v201410241731"/>
-<unit id="org.eclipse.wst.xml_ui.feature.feature.group" version="3.6.3.v201501292352"/>
-<unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.6.3.v201502041526"/>
-<unit id="org.eclipse.platform.feature.group" version="4.4.2.v20150204-1700"/>
-<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="3.6.3.v201501312139"/>
-<unit id="org.eclipse.jst.server_adapters.feature.feature.group" version="3.2.301.v201410241731"/>
-<unit id="org.eclipse.jst.enterprise_ui.feature.feature.group" version="3.6.3.v201501281502"/>
-<repository location="http://download.eclipse.org/releases/luna"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.swtbot.feature.group" version="2.3.0.201506081302"/>
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.3.0.201506081302"/>
-<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.3.0.201506081302"/>
-<repository location="http://download.eclipse.org/technology/swtbot/releases/2.3.0/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.m2e.feature.feature.group" version="1.6.0.20150526-2032"/>
 <repository location="http://download.eclipse.org/technology/m2e/releases/1.6"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
-<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
 <unit id="com.google.gson" version="2.2.4.v201311231704"/>
-<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
-<unit id="org.apache.commons.io" version="2.2.0.v201405211200"/>
+<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
 <unit id="org.apache.commons.httpclient" version="3.1.0.v201012070820"/>
-<unit id="org.junit" version="4.11.0.v201303080030"/>
+<unit id="org.apache.commons.io" version="2.2.0.v201405211200"/>
+<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
 <unit id="org.hamcrest.core" version="1.3.0.v201303031735"/>
+<unit id="org.junit" version="4.11.0.v201303080030"/>
+<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>
 </location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.jst.enterprise_ui.feature.feature.group" version="3.9.2.v201802121827"/>
+<unit id="org.eclipse.jst.server_adapters.feature.feature.group" version="3.2.400.v201711301708"/>
+<unit id="org.eclipse.jst.server_ui.feature.feature.group" version="3.4.300.v201709251835"/>
+<unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.9.0.v201802152012"/>
+<unit id="org.eclipse.platform.feature.group" version="4.7.3.v20180301-0715"/>
+<unit id="org.eclipse.wst.server_adapters.feature.feature.group" version="3.2.601.v201711302104"/>
+<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="3.9.2.v201801171858"/>
+<unit id="org.eclipse.wst.xml_ui.feature.feature.group" version="3.9.2.v201801171858"/>
+<repository location="http://download.eclipse.org/releases/oxygen/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.4.0.201604200752"/>
+<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.4.0.201604200752"/>
+<unit id="org.eclipse.swtbot.feature.group" version="2.4.0.201604200752"/>
+<repository location="http://download.eclipse.org/technology/swtbot/releases/2.4.0/"/>
+</location>
 </locations>
 </target>
diff --git a/target-definition/pom.xml b/eclipse/target-definition/pom.xml
similarity index 100%
rename from target-definition/pom.xml
rename to eclipse/target-definition/pom.xml
diff --git a/feature/META-INF/LICENSE b/feature/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/feature/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/impl-resource-test/README.md b/impl-resource-test/README.md
deleted file mode 100644
index 6367dad..0000000
--- a/impl-resource-test/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Apache Sling IDE Tools Resource-based Implementation Tests
-
-This module is part of the [Apache Sling](https://sling.apache.org) project.
diff --git a/impl-resource-test/pom.xml b/impl-resource-test/pom.xml
deleted file mode 100644
index 84b1d3f..0000000
--- a/impl-resource-test/pom.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<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>
-  <parent>
-    <groupId>org.apache.sling.ide</groupId>
-    <artifactId>sling-ide-tooling</artifactId>
-    <version>1.2.3-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.apache.sling.ide.impl-resource-test</artifactId>
-  <name>Apache Sling IDE Tools Resource-based Implementation Tests</name>
-
-  <scm>
-    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-    <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-  </scm>
-
-  <dependencies>
-      <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>4.11</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.apache.sling.ide</groupId>
-          <artifactId>org.apache.sling.ide.impl-resource</artifactId>
-          <version>${project.version}</version>
-          <type>eclipse-plugin</type>
-      </dependency>
-      <!-- 
-        we need to pull in all transitive dependencies of the impl-resource
-        bundle, since they are not exposed by Tycho(?) 
-      -->
-      <dependency>
-          <groupId>org.apache.sling.ide</groupId>
-          <artifactId>org.apache.sling.ide.api</artifactId>
-          <version>${project.version}</version>
-          <type>eclipse-plugin</type>
-      </dependency>
-      <dependency>
-          <groupId>org.json</groupId>
-          <artifactId>json</artifactId>
-          <version>20090211</version>
-      </dependency>
-      <dependency>
-          <groupId>xmlunit</groupId>
-          <artifactId>xmlunit</artifactId>
-          <version>1.4</version>
-          <scope>test</scope>
-      </dependency>
-  </dependencies>
-</project>
diff --git a/impl-resource-test/src/main/resources/META-INF/LICENSE b/impl-resource-test/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/impl-resource-test/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/impl-resource-test/src/main/resources/META-INF/NOTICE b/impl-resource-test/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index 98e599e..0000000
--- a/impl-resource-test/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: Resource-based Implementation Tests
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/impl-resource/META-INF/LICENSE b/impl-resource/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/impl-resource/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/impl-resource/META-INF/MANIFEST.MF b/impl-resource/META-INF/MANIFEST.MF
deleted file mode 100644
index d97ade6..0000000
--- a/impl-resource/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Name: Sling IDE Resource Impl
-Bundle-SymbolicName: org.apache.sling.ide.impl-resource
-Bundle-Version: 1.2.3.qualifier
-Require-Bundle: org.eclipse.core.runtime,
- org.apache.sling.ide.api;bundle-version="0.0.1",
- org.apache.commons.httpclient;bundle-version="3.1.0",
- org.eclipse.equinox.ds;bundle-version="1.2.1",
- org.eclipse.osgi.services;bundle-version="3.2.100"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Service-Component: OSGI-INF/RepositoryFactoryImpl.xml,
- OSGI-INF/SimpleXmlSerializationManager.xml,
- OSGI-INF/SimpleFilterLocator.xml
-Import-Package: com.google.gson;version="2.2.4",
- com.google.gson.annotations;version="2.2.4",
- com.google.gson.stream;version="2.2.4"
diff --git a/impl-resource/META-INF/NOTICE b/impl-resource/META-INF/NOTICE
deleted file mode 100644
index ef6edea..0000000
--- a/impl-resource/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: Resource-based Implementation
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/impl-resource/OSGI-INF/RepositoryFactoryImpl.xml b/impl-resource/OSGI-INF/RepositoryFactoryImpl.xml
deleted file mode 100644
index 39fcdaa..0000000
--- a/impl-resource/OSGI-INF/RepositoryFactoryImpl.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.impl.resource.transport.RepositoryFactoryImpl"/>
-   <service>
-      <provide interface="org.apache.sling.ide.transport.RepositoryFactory"/>
-   </service>
-   <reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/>
-</scr:component>
diff --git a/impl-resource/OSGI-INF/SimpleFilterLocator.xml b/impl-resource/OSGI-INF/SimpleFilterLocator.xml
deleted file mode 100644
index 9ea7b60..0000000
--- a/impl-resource/OSGI-INF/SimpleFilterLocator.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.impl.resource.filer.SimpleFilterLocator"/>
-   <service>
-      <provide interface="org.apache.sling.ide.filter.FilterLocator"/>
-   </service>>
-</scr:component>
diff --git a/impl-resource/OSGI-INF/SimpleXmlSerializationManager.xml b/impl-resource/OSGI-INF/SimpleXmlSerializationManager.xml
deleted file mode 100644
index e03ba83..0000000
--- a/impl-resource/OSGI-INF/SimpleXmlSerializationManager.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.impl.resource.serialization.SimpleXmlSerializationManager"/>
-   <service>
-      <provide interface="org.apache.sling.ide.serialization.SerializationManager"/>
-   </service>
-</scr:component>
diff --git a/impl-resource/build.properties b/impl-resource/build.properties
deleted file mode 100644
index 39aa3ed..0000000
--- a/impl-resource/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/,
-source.. = src/
diff --git a/impl-resource/pom.xml b/impl-resource/pom.xml
deleted file mode 100644
index 94e2a62..0000000
--- a/impl-resource/pom.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.sling.ide</groupId>
-    <artifactId>sling-ide-tooling</artifactId>
-    <version>1.2.3-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.apache.sling.ide.impl-resource</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <name>Apache Sling IDE Tools Resource-based Implementation</name>
-
-  <scm>
-    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-    <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-  </scm>
-  
-  <build>
-    <!-- ensure that extra files are picked up by the maven-source-plugin -->
-    <resources>
-        <resource>
-            <directory>.</directory>
-            <includes>
-                <include>build.properties</include>
-                <include>META-INF/*</include>
-                <include>OSGI-INF/*</include>
-            </includes>
-        </resource>
-    </resources>
-    <plugins>
-        <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-source-plugin</artifactId>
-            <configuration>
-                <archive>
-                    <manifestFile>META-INF/MANIFEST.MF</manifestFile>
-                </archive>
-            </configuration>
-        </plugin>        
-    </plugins>
-  </build>  
-</project>
diff --git a/impl-vlt-test/README.md b/impl-vlt-test/README.md
deleted file mode 100644
index 7dc86fd..0000000
--- a/impl-vlt-test/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Apache Sling IDE Tools FileVault Implementation Tests
-
-This module is part of the [Apache Sling](https://sling.apache.org) project.
diff --git a/impl-vlt-test/pom.xml b/impl-vlt-test/pom.xml
deleted file mode 100644
index 89e2e6e..0000000
--- a/impl-vlt-test/pom.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<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>
-  <parent>
-    <groupId>org.apache.sling.ide</groupId>
-    <artifactId>sling-ide-tooling</artifactId>
-    <version>1.2.3-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.apache.sling.ide.impl-vlt-test</artifactId>
-  <name>Apache Sling IDE Tools FileVault Implementation Tests</name>
-
-  <scm>
-    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-    <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-  </scm>
-
-  <dependencies>
-      <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>4.11</version>
-          <scope>test</scope>
-          <exclusions>
-            <exclusion>
-                <groupId>org.hamcrest</groupId>
-                <artifactId>hamcrest-core</artifactId>
-            </exclusion>
-          </exclusions>
-      </dependency>
-      <dependency>
-          <groupId>org.easymock</groupId>
-          <artifactId>easymock</artifactId>
-          <version>3.2</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.hamcrest</groupId>
-          <artifactId>hamcrest-all</artifactId>
-          <version>1.3</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.apache.sling.ide</groupId>
-          <artifactId>org.apache.sling.ide.impl-vlt</artifactId>
-          <version>${project.version}</version>
-          <type>eclipse-plugin</type>
-          <scope>test</scope>
-      </dependency>
-      <!-- 
-        we need to pull in all transitive dependencies of the impl-vlt
-        bundle, since they are not exposed by Tycho(?) 
-      -->
-      <dependency>
-          <groupId>javax.jcr</groupId>
-          <artifactId>jcr</artifactId>
-          <version>2.0</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.slf4j</groupId>
-          <artifactId>slf4j-api</artifactId>
-          <version>1.7.5</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>commons-io</groupId>
-          <artifactId>commons-io</artifactId>
-          <version>2.4</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.slf4j</groupId>
-          <artifactId>slf4j-simple</artifactId>
-          <version>1.7.5</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.apache.jackrabbit</groupId>
-          <artifactId>jackrabbit-jcr-commons</artifactId>
-          <version>${jackrabbit.version}</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.apache.jackrabbit</groupId>
-          <artifactId>jackrabbit-core</artifactId>
-          <version>${jackrabbit.version}</version>
-      </dependency>
-      <dependency>
-         <groupId>org.apache.jackrabbit.vault</groupId>
-          <artifactId>org.apache.jackrabbit.vault</artifactId>
-          <version>${vault.version}</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.apache.jackrabbit.vault</groupId>
-          <artifactId>vault-davex</artifactId>
-          <version>${vault.version}</version>
-          <scope>test</scope>
-      </dependency>
-      <dependency>
-          <groupId>org.apache.sling.ide</groupId>
-          <artifactId>org.apache.sling.ide.api</artifactId>
-          <version>${project.version}</version>
-          <scope>test</scope>
-      </dependency>
-  </dependencies>
-
-    <properties>
-        <!-- must match the version being referenced in the pom.xml of filevault -->
-        <jackrabbit.version>2.14.0</jackrabbit.version>
-        <vault.version>3.1.38</vault.version>
-    </properties>
-</project>
diff --git a/impl-vlt-test/src/main/resources/META-INF/LICENSE b/impl-vlt-test/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/impl-vlt-test/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/impl-vlt-test/src/main/resources/META-INF/NOTICE b/impl-vlt-test/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index c8b4089..0000000
--- a/impl-vlt-test/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: FileVault Implementation Tests
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/impl-vlt/META-INF/LICENSE b/impl-vlt/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/impl-vlt/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/impl-vlt/META-INF/MANIFEST.MF b/impl-vlt/META-INF/MANIFEST.MF
deleted file mode 100644
index 7f361f0..0000000
--- a/impl-vlt/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,39 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Name: Sling IDE Vlt Impl
-Bundle-SymbolicName: org.apache.sling.ide.impl-vlt;singleton:=true
-Bundle-Version: 1.2.3.qualifier
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Require-Bundle: org.eclipse.equinox.ds;bundle-version="1.2.1",
- org.eclipse.osgi.services;bundle-version="3.2.100"
-Import-Package: javax.jcr,
- javax.jcr.nodetype,
- org.apache.commons.io;version="2.0.1",
- org.apache.jackrabbit.api,
- org.apache.jackrabbit.spi.commons.conversion,
- org.apache.jackrabbit.spi.commons.namespace,
- org.apache.jackrabbit.util,
- org.apache.jackrabbit.vault.davex,
- org.apache.jackrabbit.vault.fs,
- org.apache.jackrabbit.vault.fs.api,
- org.apache.jackrabbit.vault.fs.config,
- org.apache.jackrabbit.vault.fs.impl,
- org.apache.jackrabbit.vault.fs.impl.aggregator,
- org.apache.jackrabbit.vault.fs.impl.io,
- org.apache.jackrabbit.vault.util,
- org.apache.sling.ide.eclipse.core,
- org.apache.sling.ide.eclipse.core.debug,
- org.apache.sling.ide.filter,
- org.apache.sling.ide.log,
- org.apache.sling.ide.serialization,
- org.apache.sling.ide.transport,
- org.apache.sling.ide.util,
- org.eclipse.core.runtime;version="3.4.0",
- org.osgi.framework;version="1.7.0",
- org.osgi.service.event;version="1.3.0",
- org.osgi.util.tracker;version="1.5.1"
-Export-Package: org.apache.sling.ide.jcr
-Service-Component: OSGI-INF/*.xml
-Bundle-Activator: org.apache.sling.ide.impl.vlt.Activator
diff --git a/impl-vlt/META-INF/NOTICE b/impl-vlt/META-INF/NOTICE
deleted file mode 100644
index 35cf0e1..0000000
--- a/impl-vlt/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: FileVault implementation
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/impl-vlt/OSGI-INF/VltFilterLocator.xml b/impl-vlt/OSGI-INF/VltFilterLocator.xml
deleted file mode 100644
index 98b7881..0000000
--- a/impl-vlt/OSGI-INF/VltFilterLocator.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.impl.vlt.filter.VltFilterLocator"/>
-   <reference bind="bindVaultFsLocator" cardinality="1..1" interface="org.apache.sling.ide.impl.vlt.VaultFsLocator" name="VaultFsLocator" policy="static" unbind="unbindVaultFsLocator"/>
-   <property name="service.ranking" type="Integer" value="100"/>
-   <service>
-      <provide interface="org.apache.sling.ide.filter.FilterLocator"/>
-   </service>   
-</scr:component>
diff --git a/impl-vlt/OSGI-INF/VltRepositoryFactory.xml b/impl-vlt/OSGI-INF/VltRepositoryFactory.xml
deleted file mode 100644
index a97b2de..0000000
--- a/impl-vlt/OSGI-INF/VltRepositoryFactory.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.impl.vlt.VltRepositoryFactory"/>
-   <reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/>
-   <property name="service.ranking" type="Integer" value="100"/>
-   <service>
-      <provide interface="org.apache.sling.ide.transport.RepositoryFactory"/>
-   </service>
-</scr:component>
diff --git a/impl-vlt/OSGI-INF/VltSerializationManagerImpl.xml b/impl-vlt/OSGI-INF/VltSerializationManagerImpl.xml
deleted file mode 100644
index 4af9c30..0000000
--- a/impl-vlt/OSGI-INF/VltSerializationManagerImpl.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.impl.vlt.serialization.VltSerializationManager"/>
-   <service>
-      <provide interface="org.apache.sling.ide.serialization.SerializationManager"/>
-   </service>
-   <reference bind="bindVaultFsLocator" cardinality="1..1" interface="org.apache.sling.ide.impl.vlt.VaultFsLocator" name="VaultFsLocator" policy="static" unbind="unbindVaultFsLocator"/>
-   <property name="service.ranking" type="Integer" value="100"/>   
-</scr:component>
diff --git a/impl-vlt/build.properties b/impl-vlt/build.properties
deleted file mode 100644
index 4b3f18f..0000000
--- a/impl-vlt/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               OSGI-INF/,\
-               plugin.xml,\
-               .options
-source.. = src/
diff --git a/impl-vlt/pom.xml b/impl-vlt/pom.xml
deleted file mode 100644
index 70fdab0..0000000
--- a/impl-vlt/pom.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.sling.ide</groupId>
-    <artifactId>sling-ide-tooling</artifactId>
-    <version>1.2.3-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.apache.sling.ide.impl-vlt</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <name>Apache Sling IDE Tools FileVault implementation</name>
-
-  <scm>
-    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-    <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-  </scm>
-  
-  <build>
-    <!-- ensure that extra files are picked up by the maven-source-plugin -->
-    <resources>
-        <resource>
-            <directory>.</directory>
-            <includes>
-                <include>build.properties</include>
-                <include>META-INF/*</include>
-                <include>OSGI-INF/*</include>
-                <include>.options</include>
-            </includes>
-        </resource>
-    </resources>
-    <plugins>
-        <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-source-plugin</artifactId>
-            <configuration>
-                <archive>
-                    <manifestFile>META-INF/MANIFEST.MF</manifestFile>
-                </archive>
-            </configuration>
-        </plugin>        
-    </plugins>
-  </build>  
-</project>
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/Activator.java b/impl-vlt/src/org/apache/sling/ide/impl/vlt/Activator.java
deleted file mode 100644
index 512809f..0000000
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/Activator.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.ide.impl.vlt;
-
-import org.apache.sling.ide.eclipse.core.ServiceUtil;
-import org.apache.sling.ide.eclipse.core.debug.PluginLoggerRegistrar;
-import org.apache.sling.ide.log.Logger;
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * The activator class controls the plug-in life cycle
- * 
- * <p>
- * Since the WST framework is based on Eclipse extension points, rather than OSGi services, this class provides a static
- * entry point to well-known services.
- * </p>
- */
-public class Activator extends Plugin {
-
-    // The plug-in ID
-    public static final String PLUGIN_ID = "org.apache.sling.ide.impl-vlt"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-    private ServiceTracker<Logger, Logger> tracer;
-
-    private ServiceRegistration<Logger> tracerRegistration;
-
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-
-        tracerRegistration = PluginLoggerRegistrar.register(this);
-
-        tracer = new ServiceTracker<>(context, tracerRegistration.getReference(), null);
-        tracer.open();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-
-        tracerRegistration.unregister();
-
-        tracer.close();
-
-        plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-    public Logger getPluginLogger() {
-        return (Logger) ServiceUtil.getNotNull(tracer);
-    }
-}
diff --git a/shared/modules/.gitignore b/shared/modules/.gitignore
new file mode 100644
index 0000000..6cb2adc
--- /dev/null
+++ b/shared/modules/.gitignore
@@ -0,0 +1 @@
+MANIFEST.MF
diff --git a/api/README.md b/shared/modules/api/README.md
similarity index 100%
rename from api/README.md
rename to shared/modules/api/README.md
diff --git a/shared/modules/api/bnd.bnd b/shared/modules/api/bnd.bnd
new file mode 100644
index 0000000..560e80b
--- /dev/null
+++ b/shared/modules/api/bnd.bnd
@@ -0,0 +1,5 @@
+Bundle-ActivationPolicy: lazy
+
+-exportcontents: ${packages;VERSIONED}
+Import-Package: org.apache.commons.io;version="[1.4,3)", \
+  *
\ No newline at end of file
diff --git a/shared/modules/api/pom.xml b/shared/modules/api/pom.xml
new file mode 100644
index 0000000..9a5fba9
--- /dev/null
+++ b/shared/modules/api/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling.ide</groupId>
+        <artifactId>sling-ide-shared-parent</artifactId>
+        <version>1.2.3-SNAPSHOT</version>
+        <relativePath>../parent/</relativePath>
+    </parent>
+
+    <artifactId>org.apache.sling.ide.api</artifactId>
+    <name>Apache Sling IDE Tools API</name>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <version>3.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.4</version>
+            <scope>provided</scope>
+        </dependency>
+        <!-- TODO - must be removed, OSGi deps not allowed here -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <!-- TODO - must be removed, OSGi deps not allowed here -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.event</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Note that OSGi annotations are OK since they are not retained at compile time -->        
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/api/src/org/apache/sling/ide/filter/Filter.java b/shared/modules/api/src/main/java/org/apache/sling/ide/filter/Filter.java
similarity index 100%
rename from api/src/org/apache/sling/ide/filter/Filter.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/filter/Filter.java
diff --git a/api/src/org/apache/sling/ide/filter/FilterLocator.java b/shared/modules/api/src/main/java/org/apache/sling/ide/filter/FilterLocator.java
similarity index 100%
rename from api/src/org/apache/sling/ide/filter/FilterLocator.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/filter/FilterLocator.java
diff --git a/api/src/org/apache/sling/ide/filter/FilterResult.java b/shared/modules/api/src/main/java/org/apache/sling/ide/filter/FilterResult.java
similarity index 100%
rename from api/src/org/apache/sling/ide/filter/FilterResult.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/filter/FilterResult.java
diff --git a/api/src/org/apache/sling/ide/filter/IgnoredResources.java b/shared/modules/api/src/main/java/org/apache/sling/ide/filter/IgnoredResources.java
similarity index 100%
rename from api/src/org/apache/sling/ide/filter/IgnoredResources.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/filter/IgnoredResources.java
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/filter/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/api/src/main/java/org/apache/sling/ide/filter/package-info.java
index a63b738..9f9297c 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/filter/package-info.java
@@ -14,16 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
-
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.filter;
\ No newline at end of file
diff --git a/api/src/org/apache/sling/ide/log/Logger.java b/shared/modules/api/src/main/java/org/apache/sling/ide/log/Logger.java
similarity index 100%
rename from api/src/org/apache/sling/ide/log/Logger.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/log/Logger.java
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/log/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/api/src/main/java/org/apache/sling/ide/log/package-info.java
index a63b738..4357afd 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/log/package-info.java
@@ -14,16 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
-
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.log;
\ No newline at end of file
diff --git a/api/src/org/apache/sling/ide/osgi/MavenSourceReference.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/MavenSourceReference.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/MavenSourceReference.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/MavenSourceReference.java
diff --git a/api/src/org/apache/sling/ide/osgi/OsgiClient.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/OsgiClient.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/OsgiClient.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/OsgiClient.java
diff --git a/api/src/org/apache/sling/ide/osgi/OsgiClientException.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/OsgiClientException.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/OsgiClientException.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/OsgiClientException.java
diff --git a/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/OsgiClientFactory.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/OsgiClientFactory.java
diff --git a/api/src/org/apache/sling/ide/osgi/SourceReference.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/SourceReference.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/SourceReference.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/SourceReference.java
diff --git a/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java
diff --git a/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java
similarity index 89%
rename from api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java
index cedaf61..e8959d2 100644
--- a/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java
@@ -19,10 +19,14 @@
 import org.apache.sling.ide.osgi.OsgiClient;
 import org.apache.sling.ide.osgi.OsgiClientFactory;
 import org.apache.sling.ide.transport.RepositoryInfo;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.EventAdmin;
 
+@Component(service = OsgiClientFactory.class)
 public class HttpOsgiClientFactory implements OsgiClientFactory {
 
+    @Reference
     private EventAdmin eventAdmin;
 
     public OsgiClient createOsgiClient(RepositoryInfo repositoryInfo) {
diff --git a/api/src/org/apache/sling/ide/osgi/impl/MavenSourceReferenceImpl.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/MavenSourceReferenceImpl.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/impl/MavenSourceReferenceImpl.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/MavenSourceReferenceImpl.java
diff --git a/api/src/org/apache/sling/ide/osgi/impl/TracingOsgiClient.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/TracingOsgiClient.java
similarity index 100%
rename from api/src/org/apache/sling/ide/osgi/impl/TracingOsgiClient.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/impl/TracingOsgiClient.java
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/api/src/main/java/org/apache/sling/ide/osgi/package-info.java
index a63b738..c1d15c7 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/osgi/package-info.java
@@ -14,16 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
-
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.osgi;
\ No newline at end of file
diff --git a/api/src/org/apache/sling/ide/serialization/SerializationData.java b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationData.java
similarity index 100%
rename from api/src/org/apache/sling/ide/serialization/SerializationData.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationData.java
diff --git a/api/src/org/apache/sling/ide/serialization/SerializationDataBuilder.java b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationDataBuilder.java
similarity index 100%
rename from api/src/org/apache/sling/ide/serialization/SerializationDataBuilder.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationDataBuilder.java
diff --git a/api/src/org/apache/sling/ide/serialization/SerializationException.java b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationException.java
similarity index 100%
rename from api/src/org/apache/sling/ide/serialization/SerializationException.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationException.java
diff --git a/api/src/org/apache/sling/ide/serialization/SerializationKind.java b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationKind.java
similarity index 100%
rename from api/src/org/apache/sling/ide/serialization/SerializationKind.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationKind.java
diff --git a/api/src/org/apache/sling/ide/serialization/SerializationKindManager.java b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationKindManager.java
similarity index 100%
rename from api/src/org/apache/sling/ide/serialization/SerializationKindManager.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationKindManager.java
diff --git a/api/src/org/apache/sling/ide/serialization/SerializationManager.java b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationManager.java
similarity index 100%
rename from api/src/org/apache/sling/ide/serialization/SerializationManager.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/serialization/SerializationManager.java
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/api/src/main/java/org/apache/sling/ide/serialization/package-info.java
index a63b738..f51cd9c 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/serialization/package-info.java
@@ -14,16 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
 
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.serialization;
\ No newline at end of file
diff --git a/api/src/org/apache/sling/ide/transport/Batcher.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/Batcher.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/Batcher.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/Batcher.java
diff --git a/api/src/org/apache/sling/ide/transport/BatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/BatcherFactory.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/BatcherFactory.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/BatcherFactory.java
diff --git a/api/src/org/apache/sling/ide/transport/Command.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/Command.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/Command.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/Command.java
diff --git a/api/src/org/apache/sling/ide/transport/CommandContext.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/CommandContext.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/CommandContext.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/CommandContext.java
diff --git a/api/src/org/apache/sling/ide/transport/CommandExecutionProperties.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/CommandExecutionProperties.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/CommandExecutionProperties.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/CommandExecutionProperties.java
diff --git a/api/src/org/apache/sling/ide/transport/FallbackNodeTypeRegistry.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/FallbackNodeTypeRegistry.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/FallbackNodeTypeRegistry.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/FallbackNodeTypeRegistry.java
diff --git a/api/src/org/apache/sling/ide/transport/FileInfo.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/FileInfo.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/FileInfo.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/FileInfo.java
diff --git a/api/src/org/apache/sling/ide/transport/NodeTypeRegistry.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/NodeTypeRegistry.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/NodeTypeRegistry.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/NodeTypeRegistry.java
diff --git a/api/src/org/apache/sling/ide/transport/ProtectedNodes.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/ProtectedNodes.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/ProtectedNodes.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/ProtectedNodes.java
diff --git a/api/src/org/apache/sling/ide/transport/Repository.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/Repository.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/Repository.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/Repository.java
diff --git a/api/src/org/apache/sling/ide/transport/RepositoryException.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryException.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/RepositoryException.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryException.java
diff --git a/api/src/org/apache/sling/ide/transport/RepositoryFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryFactory.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/RepositoryFactory.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryFactory.java
diff --git a/api/src/org/apache/sling/ide/transport/RepositoryInfo.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryInfo.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/RepositoryInfo.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryInfo.java
diff --git a/api/src/org/apache/sling/ide/transport/RepositoryResponse.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryResponse.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/RepositoryResponse.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/RepositoryResponse.java
diff --git a/api/src/org/apache/sling/ide/transport/ResourceProxy.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/ResourceProxy.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/ResourceProxy.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/ResourceProxy.java
diff --git a/api/src/org/apache/sling/ide/transport/Result.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/Result.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/Result.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/Result.java
diff --git a/api/src/org/apache/sling/ide/transport/TracingCommand.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/TracingCommand.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/TracingCommand.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/TracingCommand.java
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcher.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/impl/DefaultBatcher.java
similarity index 100%
rename from api/src/org/apache/sling/ide/transport/impl/DefaultBatcher.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/impl/DefaultBatcher.java
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
similarity index 91%
rename from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
index a63b738..6ef8f41 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
@@ -18,7 +18,9 @@
 
 import org.apache.sling.ide.transport.Batcher;
 import org.apache.sling.ide.transport.BatcherFactory;
+import org.osgi.service.component.annotations.Component;
 
+@Component(service = BatcherFactory.class)
 public class DefaultBatcherFactory implements BatcherFactory {
 
     @Override
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/api/src/main/java/org/apache/sling/ide/transport/package-info.java
index a63b738..1fd6f18 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/transport/package-info.java
@@ -14,16 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
 
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.transport;
\ No newline at end of file
diff --git a/api/src/org/apache/sling/ide/util/PathUtil.java b/shared/modules/api/src/main/java/org/apache/sling/ide/util/PathUtil.java
similarity index 100%
rename from api/src/org/apache/sling/ide/util/PathUtil.java
rename to shared/modules/api/src/main/java/org/apache/sling/ide/util/PathUtil.java
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/util/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/api/src/main/java/org/apache/sling/ide/util/package-info.java
index a63b738..13a75c0 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/util/package-info.java
@@ -14,16 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
 
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.util;
\ No newline at end of file
diff --git a/api-test/src/test/java/org/apache/sling/ide/filter/IgnoredResourcesTest.java b/shared/modules/api/src/test/java/org/apache/sling/ide/filter/IgnoredResourcesTest.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/filter/IgnoredResourcesTest.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/filter/IgnoredResourcesTest.java
diff --git a/api-test/src/test/java/org/apache/sling/ide/osgi/impl/HttpOsgiClientTest.java b/shared/modules/api/src/test/java/org/apache/sling/ide/osgi/impl/HttpOsgiClientTest.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/osgi/impl/HttpOsgiClientTest.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/osgi/impl/HttpOsgiClientTest.java
diff --git a/api-test/src/test/java/org/apache/sling/ide/serialization/NodeTypeResourceBuilder.java b/shared/modules/api/src/test/java/org/apache/sling/ide/serialization/NodeTypeResourceBuilder.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/serialization/NodeTypeResourceBuilder.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/serialization/NodeTypeResourceBuilder.java
diff --git a/api-test/src/test/java/org/apache/sling/ide/serialization/SerializationKindManagerTest.java b/shared/modules/api/src/test/java/org/apache/sling/ide/serialization/SerializationKindManagerTest.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/serialization/SerializationKindManagerTest.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/serialization/SerializationKindManagerTest.java
diff --git a/api-test/src/test/java/org/apache/sling/ide/serialization/StubRepository.java b/shared/modules/api/src/test/java/org/apache/sling/ide/serialization/StubRepository.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/serialization/StubRepository.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/serialization/StubRepository.java
diff --git a/api-test/src/test/java/org/apache/sling/ide/transport/FallbackNodeTypeRegistryTest.java b/shared/modules/api/src/test/java/org/apache/sling/ide/transport/FallbackNodeTypeRegistryTest.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/transport/FallbackNodeTypeRegistryTest.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/transport/FallbackNodeTypeRegistryTest.java
diff --git a/api-test/src/test/java/org/apache/sling/ide/transport/ResourceProxyTest.java b/shared/modules/api/src/test/java/org/apache/sling/ide/transport/ResourceProxyTest.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/transport/ResourceProxyTest.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/transport/ResourceProxyTest.java
diff --git a/api-test/src/test/java/org/apache/sling/ide/util/PathUtilTest.java b/shared/modules/api/src/test/java/org/apache/sling/ide/util/PathUtilTest.java
similarity index 100%
rename from api-test/src/test/java/org/apache/sling/ide/util/PathUtilTest.java
rename to shared/modules/api/src/test/java/org/apache/sling/ide/util/PathUtilTest.java
diff --git a/api-test/src/test/resources/bundles.json b/shared/modules/api/src/test/resources/bundles.json
similarity index 100%
rename from api-test/src/test/resources/bundles.json
rename to shared/modules/api/src/test/resources/bundles.json
diff --git a/api-test/src/test/resources/sourceReferences.json b/shared/modules/api/src/test/resources/sourceReferences.json
similarity index 100%
rename from api-test/src/test/resources/sourceReferences.json
rename to shared/modules/api/src/test/resources/sourceReferences.json
diff --git a/artifacts/README.md b/shared/modules/artifacts/README.md
similarity index 100%
rename from artifacts/README.md
rename to shared/modules/artifacts/README.md
diff --git a/shared/modules/artifacts/bnd.bnd b/shared/modules/artifacts/bnd.bnd
new file mode 100644
index 0000000..a2bd473
--- /dev/null
+++ b/shared/modules/artifacts/bnd.bnd
@@ -0,0 +1,5 @@
+Bundle-ActivationPolicy: lazy
+
+-exportcontents: ${packages;VERSIONED}
+
+-includeresource: org.apache.sling.tooling.support*.jar
\ No newline at end of file
diff --git a/shared/modules/artifacts/pom.xml b/shared/modules/artifacts/pom.xml
new file mode 100644
index 0000000..066793e
--- /dev/null
+++ b/shared/modules/artifacts/pom.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling.ide</groupId>
+        <artifactId>sling-ide-shared-parent</artifactId>
+        <version>1.2.3-SNAPSHOT</version>
+        <relativePath>../parent</relativePath>
+    </parent>
+    <artifactId>org.apache.sling.ide.artifacts</artifactId>
+    <name>Apache Sling IDE Tools Embedded Artifacts</name>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+
+        <!-- TODO - must be removed, OSGi deps not allowed here -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <!-- TODO - must be removed, OSGi deps not allowed here -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.cmpn</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Note that OSGi annotations are OK since they are not retained 
+            at compile time -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- will be embedded -->
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.tooling.support.install</artifactId>
+            <version>1.0.4</version>
+            <scope>provided</scope>
+        </dependency>
+        <!-- will be embedded -->
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.tooling.support.source</artifactId>
+            <version>1.0.4</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java b/shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
similarity index 100%
rename from artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
rename to shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
diff --git a/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java b/shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
similarity index 100%
rename from artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
rename to shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
diff --git a/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java b/shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
similarity index 89%
rename from artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
rename to shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
index 54a6dd8..51d63b2 100644
--- a/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
+++ b/shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
@@ -22,17 +22,15 @@
 import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Component;
 
+@Component(service = EmbeddedArtifactLocator.class)
 public class ArtifactsLocatorImpl implements EmbeddedArtifactLocator {
 
-    private static final String ARTIFACTS_LOCATION = "target/artifacts";
-
     private ComponentContext context;
 
     protected void activate(ComponentContext context) {
-
         this.context = context;
-
     }
 
     @Override
@@ -44,7 +42,7 @@
         String artifactId = "org.apache.sling.tooling.support.install";
         String extension = "jar";
 
-        URL jarUrl = loadResource(bundleContext, ARTIFACTS_LOCATION + "/sling-tooling-support-install/" + artifactId
+        URL jarUrl = loadResource(bundleContext, artifactId + "-" + version
                 + "." + extension);
 
         return new EmbeddedArtifact(artifactId + "-" + version + "." + extension, version, jarUrl);
@@ -59,7 +57,7 @@
         String artifactId = "org.apache.sling.tooling.support.source";
         String extension = "jar";
         
-        URL jarUrl = loadResource(bundleContext, ARTIFACTS_LOCATION + "/sling-tooling-support-source/" + artifactId
+        URL jarUrl = loadResource(bundleContext, artifactId + "-" + version
                 + "." + extension);
         
         return new EmbeddedArtifact(artifactId + "-" + version + "." + extension, version, jarUrl);
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/package-info.java
index a63b738..9daca7a 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/artifacts/src/main/java/org/apache/sling/ide/artifacts/package-info.java
@@ -14,16 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
-
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.artifacts;
\ No newline at end of file
diff --git a/impl-resource/README.md b/shared/modules/impl-resource/README.md
similarity index 100%
rename from impl-resource/README.md
rename to shared/modules/impl-resource/README.md
diff --git a/shared/modules/impl-resource/bnd.bnd b/shared/modules/impl-resource/bnd.bnd
new file mode 100644
index 0000000..bd7875f
--- /dev/null
+++ b/shared/modules/impl-resource/bnd.bnd
@@ -0,0 +1,2 @@
+Bundle-ActivationPolicy: lazy
+-exportcontents: ${packages;VERSIONED}
diff --git a/shared/modules/impl-resource/pom.xml b/shared/modules/impl-resource/pom.xml
new file mode 100644
index 0000000..4bdae32
--- /dev/null
+++ b/shared/modules/impl-resource/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling.ide</groupId>
+        <artifactId>sling-ide-shared-parent</artifactId>
+        <version>1.2.3-SNAPSHOT</version>
+        <relativePath>../parent/</relativePath>
+    </parent>
+
+    <artifactId>org.apache.sling.ide.impl-resource</artifactId>
+    <name>Apache Sling IDE Tools Resource-based Implementation</name>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.sling.ide</groupId>
+            <artifactId>org.apache.sling.ide.api</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <version>3.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <!-- TODO - must be removed, OSGi deps not allowed here -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.event</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Note that OSGi annotations are OK since they are not retained 
+            at compile time -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>xmlunit</groupId>
+            <artifactId>xmlunit</artifactId>
+            <version>1.4</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilter.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/filer/SimpleFilter.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilter.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/filer/SimpleFilter.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
similarity index 95%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
index ac6739c..5c0dcc5 100644
--- a/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
+++ b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
@@ -26,6 +26,7 @@
 
 import org.apache.sling.ide.filter.Filter;
 import org.apache.sling.ide.filter.FilterLocator;
+import org.osgi.service.component.annotations.Component;
 
 /**
  * The <tt>SimpleFilterLocator</tt> looks for a file named {@value #FILTERS_FILE_NAME} in the parent folder of the
@@ -38,6 +39,7 @@
  * @see SimpleFilter
  * 
  */
+@Component(service = FilterLocator.class)
 public class SimpleFilterLocator implements FilterLocator {
 
     private static final String FILTERS_FILE_NAME = "filters.txt";
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManager.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManager.java
similarity index 98%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManager.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManager.java
index 0d9c632..eefe97d 100644
--- a/impl-resource/src/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManager.java
+++ b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManager.java
@@ -44,12 +44,14 @@
 import org.apache.sling.ide.serialization.SerializationManager;
 import org.apache.sling.ide.transport.Repository;
 import org.apache.sling.ide.transport.ResourceProxy;
+import org.osgi.service.component.annotations.Component;
 import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
 import org.xml.sax.helpers.DefaultHandler;
 
+@Component(service = SerializationManager.class)
 public class SimpleXmlSerializationManager implements SerializationManager, SerializationDataBuilder {
 
     private static final String TAG_PROPERTY = "property";
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractResult.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/AbstractResult.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractResult.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/AbstractResult.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/DeleteNodeCommand.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/DeleteNodeCommand.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/DeleteNodeCommand.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/DeleteNodeCommand.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/GetNodeCommand.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/GetNodeCommand.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/GetNodeCommand.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/GetNodeCommand.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/GetNodeContentCommand.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/GetNodeContentCommand.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/GetNodeContentCommand.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/GetNodeContentCommand.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/ListChildrenCommand.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/ListChildrenCommand.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/ListChildrenCommand.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/ListChildrenCommand.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryFactoryImpl.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/RepositoryFactoryImpl.java
similarity index 92%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryFactoryImpl.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/RepositoryFactoryImpl.java
index c468acb..0753271 100644
--- a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryFactoryImpl.java
+++ b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/RepositoryFactoryImpl.java
@@ -20,14 +20,18 @@
 import org.apache.sling.ide.transport.RepositoryException;
 import org.apache.sling.ide.transport.RepositoryFactory;
 import org.apache.sling.ide.transport.RepositoryInfo;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.EventAdmin;
 
 /**
  * The <tt>RepositoryFactoryImpl</tt> creates <tt>RepositoryImpl</tt> instances
  *
  */
+@Component(service = RepositoryFactory.class)
 public class RepositoryFactoryImpl implements RepositoryFactory {
 
+    @Reference
     private EventAdmin eventAdmin;
 
     @Override
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/transport/UpdateContentCommand.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/UpdateContentCommand.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/transport/UpdateContentCommand.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/transport/UpdateContentCommand.java
diff --git a/impl-resource/src/org/apache/sling/ide/impl/resource/util/Constants.java b/shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/util/Constants.java
similarity index 100%
rename from impl-resource/src/org/apache/sling/ide/impl/resource/util/Constants.java
rename to shared/modules/impl-resource/src/main/java/org/apache/sling/ide/impl/resource/util/Constants.java
diff --git a/impl-resource-test/src/test/java/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.java b/shared/modules/impl-resource/src/test/java/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.java
similarity index 100%
rename from impl-resource-test/src/test/java/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.java
rename to shared/modules/impl-resource/src/test/java/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.java
diff --git a/impl-resource-test/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.serializedDataIsEscaped.xml b/shared/modules/impl-resource/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.serializedDataIsEscaped.xml
similarity index 100%
rename from impl-resource-test/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.serializedDataIsEscaped.xml
rename to shared/modules/impl-resource/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.serializedDataIsEscaped.xml
diff --git a/impl-resource-test/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.stringSerializedData.xml b/shared/modules/impl-resource/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.stringSerializedData.xml
similarity index 100%
rename from impl-resource-test/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.stringSerializedData.xml
rename to shared/modules/impl-resource/src/test/resources/org/apache/sling/ide/impl/resource/serialization/SimpleXmlSerializationManagerTest.stringSerializedData.xml
diff --git a/impl-vlt/.options b/shared/modules/impl-vlt/.options
similarity index 100%
rename from impl-vlt/.options
rename to shared/modules/impl-vlt/.options
diff --git a/impl-vlt/README.md b/shared/modules/impl-vlt/README.md
similarity index 100%
rename from impl-vlt/README.md
rename to shared/modules/impl-vlt/README.md
diff --git a/shared/modules/impl-vlt/bnd.bnd b/shared/modules/impl-vlt/bnd.bnd
new file mode 100644
index 0000000..398eae2
--- /dev/null
+++ b/shared/modules/impl-vlt/bnd.bnd
@@ -0,0 +1,5 @@
+Bundle-ActivationPolicy: lazy
+-exportcontents: ${packages;VERSIONED}
+-includeresource: plugin.xml, .options
+Bundle-SymbolicName: org.apache.sling.ide.impl-vlt;singleton:=true
+SlingIDE-PluginLoggerEnabled: true
\ No newline at end of file
diff --git a/impl-vlt/plugin.xml b/shared/modules/impl-vlt/plugin.xml
similarity index 100%
rename from impl-vlt/plugin.xml
rename to shared/modules/impl-vlt/plugin.xml
diff --git a/shared/modules/impl-vlt/pom.xml b/shared/modules/impl-vlt/pom.xml
new file mode 100644
index 0000000..19af497
--- /dev/null
+++ b/shared/modules/impl-vlt/pom.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling.ide</groupId>
+        <artifactId>sling-ide-shared-parent</artifactId>
+        <version>1.2.3-SNAPSHOT</version>
+        <relativePath>../parent/</relativePath>
+    </parent>
+
+    <artifactId>org.apache.sling.ide.impl-vlt</artifactId>
+    <name>Apache Sling IDE Tools FileVault implementation</name>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>derby.log</exclude>
+                        <exclude>**/bin.binary</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.sling.ide</groupId>
+            <artifactId>org.apache.sling.ide.api</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jackrabbit.vault</groupId>
+            <artifactId>org.apache.jackrabbit.vault</artifactId>
+            <version>3.1.44</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jackrabbit.vault</groupId>
+            <artifactId>vault-davex</artifactId>
+            <version>3.1.44</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-spi-commons</artifactId>
+            <version>2.16.0</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- TODO - must be removed, OSGi deps not allowed here -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.event</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Note that OSGi annotations are OK since they are not retained 
+            at compile time -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Test dependencies -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.hamcrest</groupId>
+                    <artifactId>hamcrest-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest-all</artifactId>
+            <version>1.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <version>3.2</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-core</artifactId>
+            <version>2.16.0</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/ConversionUtils.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ConversionUtils.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/ConversionUtils.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ConversionUtils.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/DeleteNodeCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/DeleteNodeCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/DeleteNodeCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/DeleteNodeCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/GetNodeCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/GetNodeCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/GetNodeCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/GetNodeCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/GetNodeContentCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/GetNodeContentCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/GetNodeContentCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/GetNodeContentCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/JcrCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/JcrCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrResult.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/JcrResult.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrResult.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/JcrResult.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/ListChildrenCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ListChildrenCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/ListChildrenCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ListChildrenCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/ListTreeCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ListTreeCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/ListTreeCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ListTreeCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/NoOpCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/NoOpCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/NoOpCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/NoOpCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommand.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommand.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommand.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommand.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VaultFsLocator.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VaultFsLocator.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VaultFsLocator.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VaultFsLocator.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VaultFsLocatorImpl.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VaultFsLocatorImpl.java
similarity index 96%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VaultFsLocatorImpl.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VaultFsLocatorImpl.java
index 2dbfce7..ec329ad 100644
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VaultFsLocatorImpl.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VaultFsLocatorImpl.java
@@ -30,7 +30,9 @@
 import org.apache.jackrabbit.vault.fs.config.ConfigurationException;
 import org.apache.jackrabbit.vault.fs.config.DefaultWorkspaceFilter;
 import org.apache.jackrabbit.vault.util.Constants;
+import org.osgi.service.component.annotations.Component;
 
+@Component(service = VaultFsLocator.class)
 public class VaultFsLocatorImpl implements VaultFsLocator {
 
     @Override
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeDefinition.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeDefinition.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeDefinition.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeDefinition.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeType.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeType.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeType.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeType.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeTypeFactory.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeTypeFactory.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeTypeFactory.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeTypeFactory.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeTypeRegistry.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeTypeRegistry.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VltNodeTypeRegistry.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltNodeTypeRegistry.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltPropertyDefinition.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltPropertyDefinition.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VltPropertyDefinition.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltPropertyDefinition.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltRepository.java
similarity index 96%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltRepository.java
index 5b88aa2..c065e22 100644
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltRepository.java
@@ -46,11 +46,10 @@
     private boolean disconnected = false;
     private final Logger logger;
 
-    public VltRepository(RepositoryInfo repositoryInfo, EventAdmin eventAdmin) {
+    public VltRepository(RepositoryInfo repositoryInfo, EventAdmin eventAdmin, Logger logger) {
         this.repositoryInfo = repositoryInfo;
         this.eventAdmin = eventAdmin;
-        // TODO - this should be injected here as well
-        this.logger = Activator.getDefault().getPluginLogger();
+        this.logger = logger;
     }
 
     public synchronized void disconnected() {
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepositoryFactory.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltRepositoryFactory.java
similarity index 89%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepositoryFactory.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltRepositoryFactory.java
index fd744b9..5b3dc00 100644
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepositoryFactory.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/VltRepositoryFactory.java
@@ -19,20 +19,28 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.sling.ide.log.Logger;
 import org.apache.sling.ide.transport.Repository;
 import org.apache.sling.ide.transport.RepositoryException;
 import org.apache.sling.ide.transport.RepositoryFactory;
 import org.apache.sling.ide.transport.RepositoryInfo;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.EventAdmin;
 
 /**
  * The <tt>VltRepositoryFactory</tt> instatiantes <tt>VltRepository</tt> instances
  *
  */
+@Component(service = RepositoryFactory.class)
 public class VltRepositoryFactory implements RepositoryFactory {
 
+    @Reference
     private EventAdmin eventAdmin;
-
+    
+    @Reference(target = "(listener.symbolic.name=org.apache.sling.ide.impl-vlt)")
+    private Logger logger;
+    
     private Map<String,VltRepository> repositoryMap = new HashMap<>();
 
     @Override
@@ -65,7 +73,7 @@
                 return repo;
             }
             
-            repo = new VltRepository(repositoryInfo, eventAdmin);
+            repo = new VltRepository(repositoryInfo, eventAdmin, logger);
             repo.connect();
             
             repositoryMap.put(key, repo);
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilter.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/filter/VltFilter.java
similarity index 100%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilter.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/filter/VltFilter.java
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilterLocator.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/filter/VltFilterLocator.java
similarity index 91%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilterLocator.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/filter/VltFilterLocator.java
index 060dfb1..c73403e 100644
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilterLocator.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/filter/VltFilterLocator.java
@@ -24,9 +24,13 @@
 import org.apache.sling.ide.filter.Filter;
 import org.apache.sling.ide.filter.FilterLocator;
 import org.apache.sling.ide.impl.vlt.VaultFsLocator;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 
+@Component(service = FilterLocator.class)
 public class VltFilterLocator implements FilterLocator {
 
+    @Reference
     private VaultFsLocator fsLocator;
 
     protected void bindVaultFsLocator(VaultFsLocator fsLocator) {
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandler.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandler.java
similarity index 96%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandler.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandler.java
index 22c0b45..55640fc 100644
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandler.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandler.java
@@ -35,7 +35,7 @@
 import org.apache.jackrabbit.util.ISO9075;
 import org.apache.jackrabbit.vault.util.DocViewNode;
 import org.apache.jackrabbit.vault.util.DocViewProperty;
-import org.apache.sling.ide.impl.vlt.Activator;
+import org.apache.sling.ide.log.Logger;
 import org.apache.sling.ide.transport.ResourceProxy;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -56,6 +56,7 @@
      * the default name path resolver
      */
     private final DefaultNamePathResolver npResolver = new DefaultNamePathResolver(this);
+    private Logger logger;
 
     /**
      * all type hint classes in a map (key = type integer value)
@@ -69,9 +70,11 @@
         }
     }
 
-    public ContentXmlHandler(String rootResourcePath) {
+    public ContentXmlHandler(String rootResourcePath, Logger logger) {
         root = new ResourceProxy(rootResourcePath);
         uriPrefixMap = new HashMap<>();
+        
+        this.logger = logger;
     }
 
     @Override
@@ -116,13 +119,13 @@
                     }
                     current.addProperty(entry.getKey(), typedValue);
                 } catch (Throwable t) {
-                    Activator.getDefault().getPluginLogger().error("Could not parse property '" + entry.getValue().name, t);
+                    logger.error("Could not parse property '" + entry.getValue().name, t);
                 }
             }
 
             queue.add(current);
         } catch (NamespaceException e) {
-            Activator.getDefault().getPluginLogger().error("Could not resolve a JCR namespace.", e);
+            logger.error("Could not resolve a JCR namespace.", e);
         }
     }
 
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/VltSerializationDataBuilder.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationDataBuilder.java
similarity index 96%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/VltSerializationDataBuilder.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationDataBuilder.java
index 52db030..a5c1172 100644
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/VltSerializationDataBuilder.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationDataBuilder.java
@@ -48,9 +48,9 @@
 import org.apache.jackrabbit.vault.util.MimeTypes;
 import org.apache.jackrabbit.vault.util.PlatformNameFormat;
 import org.apache.jackrabbit.vault.util.Text;
-import org.apache.sling.ide.impl.vlt.Activator;
 import org.apache.sling.ide.impl.vlt.VaultFsLocator;
 import org.apache.sling.ide.jcr.RepositoryUtils;
+import org.apache.sling.ide.log.Logger;
 import org.apache.sling.ide.serialization.SerializationData;
 import org.apache.sling.ide.serialization.SerializationDataBuilder;
 import org.apache.sling.ide.serialization.SerializationException;
@@ -65,6 +65,16 @@
 	private org.apache.sling.ide.transport.Repository repo;
 	private Session session;
 	private VaultFileSystem fs;
+    private Logger logger;
+	
+	public VltSerializationDataBuilder(Logger logger, VaultFsLocator fsLocator) {
+	    if ( logger == null )
+	        throw new RuntimeException("Logger is null");
+        if ( fsLocator == null )
+            throw new RuntimeException("fsLocator is null");
+	    this.logger = logger;
+	    this.fsLocator = fsLocator;
+	}
 
     public void init(org.apache.sling.ide.transport.Repository repository, File contentSyncRoot)
             throws SerializationException {
@@ -131,8 +141,7 @@
                 nameHint += ".xml";
             }
 
-            Activator.getDefault().getPluginLogger()
-                    .trace("Got location {0} for path {1}", fileOrFolderPathHint, resource.getPath());
+           logger.trace("Got location {0} for path {1}", fileOrFolderPathHint, resource.getPath());
 
             if (!needsDir(aggregate)) {
                 return SerializationData.empty(fileOrFolderPathHint, serializationKind);
@@ -337,10 +346,4 @@
 
         return null;
     }
-
-    public void setLocator(VaultFsLocator locator) {
-
-        this.fsLocator = locator;
-    }
-
 }
diff --git a/impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManager.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManager.java
similarity index 94%
rename from impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManager.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManager.java
index 1c78928..639203e 100644
--- a/impl-vlt/src/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManager.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManager.java
@@ -42,19 +42,27 @@
 import org.apache.jackrabbit.vault.util.RepositoryProvider;
 import org.apache.jackrabbit.vault.util.Text;
 import org.apache.sling.ide.impl.vlt.VaultFsLocator;
+import org.apache.sling.ide.log.Logger;
 import org.apache.sling.ide.serialization.SerializationDataBuilder;
 import org.apache.sling.ide.serialization.SerializationException;
 import org.apache.sling.ide.serialization.SerializationKind;
 import org.apache.sling.ide.serialization.SerializationManager;
 import org.apache.sling.ide.transport.ResourceProxy;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
+@Component(service = SerializationManager.class)
 public class VltSerializationManager implements SerializationManager {
 
     static final String EXTENSION_XML = ".xml";
 
-    private VltSerializationDataBuilder builder;
+    @Reference
+    private Logger logger;
+
+    @Reference
+    private VaultFsLocator fsLocator;
 
     public static void main(String[] args) throws RepositoryException, URISyntaxException, IOException {
         RepositoryAddress address = new RepositoryAddress("http://localhost:8080/server/root");
@@ -201,29 +209,12 @@
     public String getOsPath(String repositoryPath) {
         return PlatformNameFormat.getPlatformPath(repositoryPath);
     }
-
-    protected void bindVaultFsLocator(VaultFsLocator fsLocator) {
-
-        getBuilder().setLocator(fsLocator);
-    }
-
-    protected void unbindVaultFsLocator(VaultFsLocator fsLocator) {
-
-        getBuilder().setLocator(null);
-    }
-    
-    private VltSerializationDataBuilder getBuilder() {
-    	if (builder==null) {
-    		builder = new VltSerializationDataBuilder();
-    	}
-    	return builder;
-    }
     
     @Override
     public SerializationDataBuilder newBuilder(
     		org.apache.sling.ide.transport.Repository repository,
     		File contentSyncRoot) throws SerializationException {
-    	VltSerializationDataBuilder b = getBuilder();
+        VltSerializationDataBuilder b = new VltSerializationDataBuilder(logger, fsLocator);
     	b.init(repository, contentSyncRoot);
     	return b;
     }
@@ -241,7 +232,7 @@
             factory.setNamespaceAware(true);
             factory.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
             SAXParser parser = factory.newSAXParser();
-            ContentXmlHandler handler = new ContentXmlHandler(repositoryPath);
+            ContentXmlHandler handler = new ContentXmlHandler(repositoryPath, logger);
             parser.parse(source, handler);
 
             return handler.getRoot();
diff --git a/impl-vlt/src/org/apache/sling/ide/jcr/RepositoryUtils.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/jcr/RepositoryUtils.java
similarity index 96%
rename from impl-vlt/src/org/apache/sling/ide/jcr/RepositoryUtils.java
rename to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/jcr/RepositoryUtils.java
index aa4b673..7d40302 100644
--- a/impl-vlt/src/org/apache/sling/ide/jcr/RepositoryUtils.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/jcr/RepositoryUtils.java
@@ -30,7 +30,6 @@
 import org.apache.jackrabbit.vault.davex.DAVExRepositoryFactory;
 import org.apache.jackrabbit.vault.fs.api.RepositoryAddress;
 import org.apache.jackrabbit.vault.fs.api.RepositoryFactory;
-import org.apache.sling.ide.impl.vlt.Activator;
 import org.apache.sling.ide.transport.RepositoryInfo;
 
 public abstract class RepositoryUtils {
@@ -95,7 +94,8 @@
             } catch (URISyntaxException e) {
                 throw new RuntimeException(e);
             } catch (RepositoryException e) {
-                Activator.getDefault().getPluginLogger().trace("Failed connecting to repository at " + url, e);
+                // TODO-m12n - reactivate this error trace
+//                Activator.getDefault().getPluginLogger().trace("Failed connecting to repository at " + url, e);
                 errors.append(url).append(" : ").append(e.getMessage()).append('\n');
                 continue;
             } finally {
diff --git a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/jcr/package-info.java
similarity index 71%
copy from api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
copy to shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/jcr/package-info.java
index a63b738..a3594b1 100644
--- a/api/src/org/apache/sling/ide/transport/impl/DefaultBatcherFactory.java
+++ b/shared/modules/impl-vlt/src/main/java/org/apache/sling/ide/jcr/package-info.java
@@ -14,16 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.transport.impl;
-
-import org.apache.sling.ide.transport.Batcher;
-import org.apache.sling.ide.transport.BatcherFactory;
-
-public class DefaultBatcherFactory implements BatcherFactory {
-
-    @Override
-    public Batcher createBatcher() {
-        return new DefaultBatcher();
-    }
-
-}
+@org.osgi.annotation.versioning.Version("1.2.0")
+package org.apache.sling.ide.jcr;
\ No newline at end of file
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommandTest.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommandTest.java
similarity index 100%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommandTest.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommandTest.java
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommandTest.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommandTest.java
similarity index 100%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommandTest.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/ReorderChildNodesCommandTest.java
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/Slf4jLogger.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/Slf4jLogger.java
similarity index 97%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/Slf4jLogger.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/Slf4jLogger.java
index acd8de6..1a86154 100644
--- a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/Slf4jLogger.java
+++ b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/Slf4jLogger.java
@@ -27,7 +27,7 @@
  * </p>
  *
  */
-class Slf4jLogger implements Logger {
+public class Slf4jLogger implements Logger {
 
     private static final long PERF_IGNORE_THRESHOLD = 50;
 
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/filter/VltFilterTest.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/filter/VltFilterTest.java
similarity index 100%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/filter/VltFilterTest.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/filter/VltFilterTest.java
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandlerTest.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandlerTest.java
similarity index 99%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandlerTest.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandlerTest.java
index 0203021..f462a44 100644
--- a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandlerTest.java
+++ b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/serialization/ContentXmlHandlerTest.java
@@ -31,6 +31,7 @@
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
+import org.apache.sling.ide.impl.vlt.Slf4jLogger;
 import org.apache.sling.ide.transport.ResourceProxy;
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
@@ -74,7 +75,7 @@
         factory.setNamespaceAware(true);
         factory.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
         SAXParser parser = factory.newSAXParser();
-        ContentXmlHandler handler = new ContentXmlHandler(rootResourcePath);
+        ContentXmlHandler handler = new ContentXmlHandler(rootResourcePath, new Slf4jLogger());
         parser.parse(source, handler);
 
         return handler.getRoot();
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManagerTest.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManagerTest.java
similarity index 100%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManagerTest.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/serialization/VltSerializationManagerTest.java
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/transport/DefaultBatcherTest.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/transport/DefaultBatcherTest.java
similarity index 100%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/impl/vlt/transport/DefaultBatcherTest.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/impl/vlt/transport/DefaultBatcherTest.java
diff --git a/impl-vlt-test/src/test/java/org/apache/sling/ide/jcr/RepositoryUtilsTest.java b/shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/jcr/RepositoryUtilsTest.java
similarity index 100%
rename from impl-vlt-test/src/test/java/org/apache/sling/ide/jcr/RepositoryUtilsTest.java
rename to shared/modules/impl-vlt/src/test/java/org/apache/sling/ide/jcr/RepositoryUtilsTest.java
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-deep.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-deep.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-deep.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-deep.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-default.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-default.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-default.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-default.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-with-include.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-with-include.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-with-include.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/filter/filter-with-include.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/folder.cnd b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/folder.cnd
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/folder.cnd
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/folder.cnd
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/bin.binary b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/bin.binary
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/bin.binary
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/bin.binary
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/binary-property.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/binary-property.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/binary-property.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/binary-property.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/empty-multivalued-property.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/empty-multivalued-property.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/empty-multivalued-property.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/empty-multivalued-property.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/encoded-child-content.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/encoded-child-content.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/encoded-child-content.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/encoded-child-content.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-braces-at-start-of-property.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-braces-at-start-of-property.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-braces-at-start-of-property.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-braces-at-start-of-property.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-comma-in-multi-valued-property.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-comma-in-multi-valued-property.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-comma-in-multi-valued-property.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-comma-in-multi-valued-property.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-value-in-property.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-value-in-property.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-value-in-property.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/escaped-value-in-property.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/file.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/file.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/file.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/file.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage-escaped-names.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage-escaped-names.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage-escaped-names.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage-escaped-names.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/full-coverage.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/multivalued-properties-content.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/multivalued-properties-content.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/multivalued-properties-content.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/multivalued-properties-content.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/root-content.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/root-content.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/root-content.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/root-content.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/simple-content.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/simple-content.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/simple-content.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/simple-content.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/single-explicit-multivalued-properties-content.xml b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/single-explicit-multivalued-properties-content.xml
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/single-explicit-multivalued-properties-content.xml
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/serialization/single-explicit-multivalued-properties-content.xml
diff --git a/impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/test-definitions.cnd b/shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/test-definitions.cnd
similarity index 100%
rename from impl-vlt-test/src/test/resources/org/apache/sling/ide/impl/vlt/test-definitions.cnd
rename to shared/modules/impl-vlt/src/test/resources/org/apache/sling/ide/impl/vlt/test-definitions.cnd
diff --git a/shared/modules/parent/pom.xml b/shared/modules/parent/pom.xml
new file mode 100644
index 0000000..b5c67dc
--- /dev/null
+++ b/shared/modules/parent/pom.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<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/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling</artifactId>
+        <version>33</version>
+        <relativePath />
+    </parent>
+
+    <groupId>org.apache.sling.ide</groupId>
+    <artifactId>sling-ide-shared-parent</artifactId>
+    <packaging>pom</packaging>
+    <version>1.2.3-SNAPSHOT</version>
+
+    <name>Apache Sling IDE - Shared Modules Parent</name>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>**/MANIFEST.MF</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>m2e</id>
+            <!-- This profile is only activated when building in Eclipse 
+                with m2e -->
+            <activation>
+                <property>
+                    <name>m2e.version</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>copy-manifest-for-pde</id>
+                                <phase>process-classes</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                    <outputDirectory>META-INF</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>${project.build.outputDirectory}/META-INF</directory>
+                                            <includes>
+                                                <include>MANIFEST.MF</include>
+                                            </includes>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
diff --git a/shared/modules/pom.xml b/shared/modules/pom.xml
new file mode 100644
index 0000000..a9c1920
--- /dev/null
+++ b/shared/modules/pom.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>14</version>
+    </parent>
+    <groupId>org.apache.sling.ide</groupId>
+    <artifactId>sling-ide-tooling-shared</artifactId>
+    <version>1.2.3-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>Apache Sling IDE Tools - Shared Modules</name>
+    <url>http://sling.apache.org</url>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+
+    <modules>
+        <module>parent</module>
+        <module>api</module>
+        <module>impl-resource</module>
+        <module>impl-vlt</module>
+        <module>vlt-wrapper</module>
+        <module>artifacts</module>
+    </modules>
+</project>
diff --git a/vlt-wrapper/README.md b/shared/modules/vlt-wrapper/README.md
similarity index 100%
rename from vlt-wrapper/README.md
rename to shared/modules/vlt-wrapper/README.md
diff --git a/shared/modules/vlt-wrapper/bnd.bnd b/shared/modules/vlt-wrapper/bnd.bnd
new file mode 100644
index 0000000..b27c029
--- /dev/null
+++ b/shared/modules/vlt-wrapper/bnd.bnd
@@ -0,0 +1,57 @@
+Bundle-ActivationPolicy: lazy
+
+-exportcontents: javax.jcr,\
+ javax.jcr.nodetype,\
+ javax.jcr.lock,\
+ javax.jcr.observation, \
+ javax.jcr.query, \
+ javax.jcr.query.qom, \
+ javax.jcr.retention, \
+ javax.jcr.security , \
+ javax.jcr.util, \
+ javax.jcr.version, \
+ org.apache.jackrabbit.api,\
+ org.apache.jackrabbit.api.management, \
+ org.apache.jackrabbit.api.security.authorization, \
+ org.apache.jackrabbit.api.security.principal, \
+ org.apache.jackrabbit.api.security.user, \
+ org.apache.jackrabbit.spi,\
+ org.apache.jackrabbit.spi.commons.conversion,\
+ org.apache.jackrabbit.spi.commons.namespace,\
+ org.apache.jackrabbit.util,\
+ org.apache.jackrabbit.vault.davex,\
+ org.apache.jackrabbit.vault.fs,\
+ org.apache.jackrabbit.vault.fs.api,\
+ org.apache.jackrabbit.vault.fs.config,\
+ org.apache.jackrabbit.vault.fs.filter,\
+ org.apache.jackrabbit.vault.fs.impl,\
+ org.apache.jackrabbit.vault.fs.impl.aggregator,\
+ org.apache.jackrabbit.vault.fs.impl.io,\
+ org.apache.jackrabbit.vault.fs.impl.io.legacycnd,\
+ org.apache.jackrabbit.vault.fs.io,\
+ org.apache.jackrabbit.vault.fs.spi,\
+ org.apache.jackrabbit.vault.fs.spi.impl.jcr20,\
+ org.apache.jackrabbit.vault.packaging,\
+ org.apache.jackrabbit.vault.packaging.impl,\
+ org.apache.jackrabbit.vault.util,\
+ org.apache.jackrabbit.vault.util.xml.serialize,\
+ org.apache.jackrabbit.vault.util.xml.xerces.dom,\
+ org.apache.jackrabbit.vault.util.xml.xerces.util,\
+ org.apache.jackrabbit.vault.util.xml.xerces.xni,\
+ org.apache.jackrabbit.vault.util.xml.xerces.xni.parser
+
+-includeresource: guava-*.jar;lib:=true,\
+    jackrabbit-*.jar;lib:=true, \
+    vault-*;lib:=true, \
+    org.apache.jackrabbit.vault-*.jar;lib:=true, \
+    http*.jar;lib:=true, \
+    jcr-*.jar;lib:=true
+
+Import-Package: sun.misc;resolution:=optional, \
+ org.apache.commons.codec;version="[1.3.0,2)", \
+ org.apache.commons.codec.binary;version="[1.3.0,2)", \
+ org.apache.commons.io;version="[1.4,3)", \
+ org.apache.commons.io.input;version="[1.4,3)", \
+ org.apache.commons.io.output;version="[1.4,3)", \
+ !org.apache.sling.*, \
+ *
diff --git a/shared/modules/vlt-wrapper/pom.xml b/shared/modules/vlt-wrapper/pom.xml
new file mode 100644
index 0000000..a180d92
--- /dev/null
+++ b/shared/modules/vlt-wrapper/pom.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling.ide</groupId>
+        <artifactId>sling-ide-shared-parent</artifactId>
+        <version>1.2.3-SNAPSHOT</version>
+        <relativePath>../parent/</relativePath>
+    </parent>
+
+    <artifactId>org.apache.sling.ide.vlt-wrapper</artifactId>
+    <name>Apache Sling IDE Tools FileVault wrapper</name>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <!-- START JCR dependencies -->
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+        </dependency>
+        <!-- END JCR dependencies -->
+
+        <!-- START Apache Jackrabbit dependencies -->
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-api</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-webdav</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-spi-commons</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-jcr-commons</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <!-- transitive dependency of jackrabbit-jcr-commons -->
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>15.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-jcr2spi</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-jcr-client</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-spi</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-spi2dav</artifactId>
+            <version>${jackrabbit.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpmime</artifactId>
+            <version>4.5.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.6</version>
+        </dependency>
+        <!-- END Apache Jackrabbit dependencies -->
+
+        <!-- START Apache Jackrabbit FileVault dependencies -->
+        <dependency>
+            <groupId>org.apache.jackrabbit.vault</groupId>
+            <artifactId>vault-davex</artifactId>
+            <version>${vault.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit.vault</groupId>
+            <artifactId>org.apache.jackrabbit.vault</artifactId>
+            <version>${vault.version}</version>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <!-- must match the version being referenced in the pom.xml of filevault -->
+        <jackrabbit.version>2.16.1</jackrabbit.version>
+        <vault.version>3.1.44</vault.version>
+    </properties>
+</project>
diff --git a/shared/p2/pom.xml b/shared/p2/pom.xml
new file mode 100644
index 0000000..a65f175
--- /dev/null
+++ b/shared/p2/pom.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+    license agreements. See the NOTICE file distributed with this work for additional 
+    information regarding copyright ownership. The ASF licenses this file to 
+    you under the Apache License, Version 2.0 (the "License"); you may not use 
+    this file except in compliance with the License. You may obtain a copy of 
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
+    language governing permissions and limitations under the License. -->
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>14</version>
+    </parent>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-ide-tooling-p2</artifactId>
+    <version>1.2.3-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>Apache Sling IDE Tools - P2 packaging</name>
+    <url>http://sling.apache.org</url>
+
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
+    </scm>
+
+    <modules>
+        <module>shared-feature</module>
+        <module>shared-repository</module>
+    </modules>
+
+    <repositories>
+        <repository>
+            <id>luna</id>
+            <layout>p2</layout>
+            <url>http://download.eclipse.org/releases/oxygen</url>
+        </repository>
+        <repository>
+            <id>orbit</id>
+            <layout>p2</layout>
+            <url>http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/</url>
+        </repository>
+    </repositories>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>tycho-maven-plugin</artifactId>
+                <version>${tycho.version}</version>
+                <extensions>true</extensions>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>target-platform-configuration</artifactId>
+                <version>${tycho.version}</version>
+                <configuration>
+                    <resolver>p2</resolver>
+                    <pomDependencies>consider</pomDependencies>
+                    <!-- <target> <artifact> <groupId>${project.groupId}</groupId> 
+                        <artifactId>org.apache.sling.ide.target-definition</artifactId> <version>${project.version}</version> 
+                        </artifact> </target> -->
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>tycho-versions-plugin</artifactId>
+                <version>${tycho.version}</version>
+            </plugin>
+            <!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>ianal-maven-plugin</artifactId> 
+                <version>1.0-alpha-1</version> <executions> <execution> <goals> <goal>verify-legal-files</goal> 
+                </goals> <configuration> <strict>true</strict> </configuration> </execution> 
+                </executions> </plugin> -->
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>derby.log</exclude>
+                        <exclude>.gitignore</exclude>
+                        <exclude>README.md</exclude>
+
+                        <!-- Eclipse build related files -->
+                        <exclude>*.launch</exclude>
+                        <exclude>build.properties</exclude>
+                        <exclude>.options</exclude>
+                        <exclude>META-INF/MANIFEST.MF</exclude>
+
+                        <!-- test data -->
+                        <exclude>**/*.binary</exclude>
+
+                        <!-- prevent failures when eclipse-test is not activated 
+                            as a submodule -->
+                        <exclude>eclipse-test/**</exclude>
+                        <!-- exclude target file from the source-bundle project 
+                            since it is not a module -->
+                        <exclude>source-bundle/target/**</exclude>
+                        <exclude>source-bundle/README.md</exclude>
+
+                        <!-- Jenkins Xvfb plugin -->
+                        <exclude>.Xauthority-*</exclude>
+                    </excludes>
+                </configuration>
+                <!-- <executions> <execution> <goals> <goal>check</goal> 
+                    </goals> <phase>verify</phase> </execution> </executions> -->
+            </plugin>
+        </plugins>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.1</version>
+                    <configuration>
+                        <source>1.7</source>
+                        <target>1.7</target>
+                    </configuration>
+                </plugin>
+                <!--This plugin's configuration is used to store Eclipse 
+                    m2e settings only. It has no influence on the Maven build itself. -->
+                <!-- We embed some bundles that are not available on p2 update 
+                    sites. To make the build seamless, we copy them early in the process. -->
+                <plugin>
+                    <groupId>org.eclipse.m2e</groupId>
+                    <artifactId>lifecycle-mapping</artifactId>
+                    <version>1.0.0</version>
+                    <configuration>
+                        <lifecycleMappingMetadata>
+                            <pluginExecutions>
+                                <pluginExecution>
+                                    <pluginExecutionFilter>
+                                        <groupId>
+                                            org.apache.maven.plugins
+                                        </groupId>
+                                        <artifactId>
+                                            maven-dependency-plugin
+                                        </artifactId>
+                                        <versionRange>
+                                            [2.8,)
+                                        </versionRange>
+                                        <goals>
+                                            <goal>copy</goal>
+                                        </goals>
+                                    </pluginExecutionFilter>
+                                    <action>
+                                        <ignore></ignore>
+                                    </action>
+                                </pluginExecution>
+                            </pluginExecutions>
+                        </lifecycleMappingMetadata>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+
+    <properties>
+        <tycho.version>1.0.0</tycho.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+</project>
diff --git a/shared/p2/shared-feature/build.properties b/shared/p2/shared-feature/build.properties
new file mode 100644
index 0000000..64f93a9
--- /dev/null
+++ b/shared/p2/shared-feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/api-test/src/main/resources/META-INF/LICENSE b/shared/p2/shared-feature/feature.xml
similarity index 74%
rename from api-test/src/main/resources/META-INF/LICENSE
rename to shared/p2/shared-feature/feature.xml
index d645695..e76ed1a 100644
--- a/api-test/src/main/resources/META-INF/LICENSE
+++ b/shared/p2/shared-feature/feature.xml
@@ -1,5 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or
+    more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information regarding
+    copyright ownership. The ASF licenses this file to you under the
+    Apache License, Version 2.0 (the "License"); you may not use
+    this file except in compliance with the License. You may obtain
+    a copy of the License at
 
-                                 Apache License
+    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+    applicable law or agreed to in writing, software distributed
+    under the License is distributed on an "AS IS" BASIS, WITHOUT
+    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions
+    and limitations under the License.
+-->
+<feature
+      id="org.apache.sling.ide.shared.feature"
+      label="Sling IDE Tools - Shared"
+      version="1.2.3.qualifier"
+      provider-name="The Apache Software Foundation">
+
+   <license url="http://www.apache.org/licenses/LICENSE-2.0">
+      Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
 
@@ -7,38 +30,38 @@
 
    1. Definitions.
 
-      "License" shall mean the terms and conditions for use, reproduction,
+      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
       and distribution as defined by Sections 1 through 9 of this document.
 
-      "Licensor" shall mean the copyright owner or entity authorized by
+      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
       the copyright owner that is granting the License.
 
-      "Legal Entity" shall mean the union of the acting entity and all
+      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
       other entities that control, are controlled by, or are under common
       control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
+      &quot;control&quot; means (i) the power, direct or indirect, to cause the
       direction or management of such entity, whether by contract or
       otherwise, or (ii) ownership of fifty percent (50%) or more of the
       outstanding shares, or (iii) beneficial ownership of such entity.
 
-      "You" (or "Your") shall mean an individual or Legal Entity
+      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
       exercising permissions granted by this License.
 
-      "Source" form shall mean the preferred form for making modifications,
+      &quot;Source&quot; form shall mean the preferred form for making modifications,
       including but not limited to software source code, documentation
       source, and configuration files.
 
-      "Object" form shall mean any form resulting from mechanical
+      &quot;Object&quot; form shall mean any form resulting from mechanical
       transformation or translation of a Source form, including but
       not limited to compiled object code, generated documentation,
       and conversions to other media types.
 
-      "Work" shall mean the work of authorship, whether in Source or
+      &quot;Work&quot; shall mean the work of authorship, whether in Source or
       Object form, made available under the License, as indicated by a
       copyright notice that is included in or attached to the work
       (an example is provided in the Appendix below).
 
-      "Derivative Works" shall mean any work, whether in Source or Object
+      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
       form, that is based on (or derived from) the Work and for which the
       editorial revisions, annotations, elaborations, or other modifications
       represent, as a whole, an original work of authorship. For the purposes
@@ -46,21 +69,21 @@
       separable from, or merely link (or bind by name) to the interfaces of,
       the Work and Derivative Works thereof.
 
-      "Contribution" shall mean any work of authorship, including
+      &quot;Contribution&quot; shall mean any work of authorship, including
       the original version of the Work and any modifications or additions
       to that Work or Derivative Works thereof, that is intentionally
       submitted to Licensor for inclusion in the Work by the copyright owner
       or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
+      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
       means any form of electronic, verbal, or written communication sent
       to the Licensor or its representatives, including but not limited to
       communication on electronic mailing lists, source code control systems,
       and issue tracking systems that are managed by, or on behalf of, the
       Licensor for the purpose of discussing and improving the Work, but
       excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
+      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
 
-      "Contributor" shall mean Licensor and any individual or Legal Entity
+      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
       on behalf of whom a Contribution has been received by Licensor and
       subsequently incorporated within the Work.
 
@@ -104,7 +127,7 @@
           excluding those notices that do not pertain to any part of
           the Derivative Works; and
 
-      (d) If the Work includes a "NOTICE" text file as part of its
+      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
           distribution, then any Derivative Works that You distribute must
           include a readable copy of the attribution notices contained
           within such NOTICE file, excluding those notices that do not
@@ -143,7 +166,7 @@
 
    7. Disclaimer of Warranty. Unless required by applicable law or
       agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
+      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
       implied, including, without limitation, any warranties or conditions
       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
@@ -179,24 +202,55 @@
    APPENDIX: How to apply the Apache License to your work.
 
       To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
+      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+      replaced with your own identifying information. (Don&apos;t include
       the brackets!)  The text should be enclosed in the appropriate
       comment syntax for the file format. We also recommend that a
       file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
+      same &quot;printed page&quot; as the copyright notice for easier
       identification within third-party archives.
 
    Copyright [yyyy] [name of copyright owner]
 
-   Licensed under the Apache License, Version 2.0 (the "License");
+   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
+   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
+   </license>
+
+   <plugin
+         id="org.apache.sling.ide.api"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.apache.sling.ide.vlt-wrapper"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.apache.sling.ide.impl-vlt"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.apache.sling.ide.artifacts"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+</feature>
+
diff --git a/shared/p2/shared-feature/pom.xml b/shared/p2/shared-feature/pom.xml
new file mode 100644
index 0000000..24f7584
--- /dev/null
+++ b/shared/p2/shared-feature/pom.xml
@@ -0,0 +1,40 @@
+<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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-ide-tooling-p2</artifactId>
+    <version>1.2.3-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>org.apache.sling.ide.shared.feature</artifactId>
+  <packaging>eclipse-feature</packaging>
+
+  <name>Apache Sling IDE Tooling Shared Features</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.vlt-wrapper</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.impl-vlt</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.artifacts</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+   </dependencies>
+
+</project>
diff --git a/impl-vlt/OSGI-INF/VaultFsLocatorImpl.xml b/shared/p2/shared-repository/category.xml
similarity index 74%
rename from impl-vlt/OSGI-INF/VaultFsLocatorImpl.xml
rename to shared/p2/shared-repository/category.xml
index c981e50..242fa40 100644
--- a/impl-vlt/OSGI-INF/VaultFsLocatorImpl.xml
+++ b/shared/p2/shared-repository/category.xml
@@ -15,9 +15,9 @@
     See the License for the specific language governing permissions
     and limitations under the License.
 -->
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false">
-   <implementation class="org.apache.sling.ide.impl.vlt.VaultFsLocatorImpl"/>
-   <service>
-      <provide interface="org.apache.sling.ide.impl.vlt.VaultFsLocator"/>
-   </service>
-</scr:component>
+<site>
+   <feature url="features/org.apache.sling.ide.shared.feature_0.0.0.qualifier.jar" id="org.apache.sling.ide.shared.feature" version="0.0.0">
+      <category name="sling"/>
+   </feature>
+   <category-def name="sling" label="Sling"/>
+</site>
diff --git a/shared/p2/shared-repository/pom.xml b/shared/p2/shared-repository/pom.xml
new file mode 100644
index 0000000..073a363
--- /dev/null
+++ b/shared/p2/shared-repository/pom.xml
@@ -0,0 +1,40 @@
+<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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-ide-tooling-p2</artifactId>
+    <version>1.2.3-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>org.apache.sling.ide.shared.repository</artifactId>
+  <packaging>eclipse-repository</packaging>
+
+  <name>Apache Sling IDE Tooling Shared Features P2 repository</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.vlt-wrapper</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.impl-vlt</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling.ide</groupId>
+      <artifactId>org.apache.sling.ide.artifacts</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+   </dependencies>
+
+</project>
diff --git a/target-definition/org.apache.sling.ide.target-definition-dev.target b/target-definition/org.apache.sling.ide.target-definition-dev.target
deleted file mode 100644
index 65751df..0000000
--- a/target-definition/org.apache.sling.ide.target-definition-dev.target
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<?pde version="3.8"?><target name="Sling IDE Tools (dev)" sequenceNumber="47">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.m2e.feature.feature.group" version="1.6.0.20150526-2032"/>
-<repository location="http://download.eclipse.org/technology/m2e/releases/1.6"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.swtbot.feature.group" version="2.3.0.201506081302"/>
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.3.0.201506081302"/>
-<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.3.0.201506081302"/>
-<repository location="http://download.eclipse.org/technology/swtbot/releases/2.3.0/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.wst.server_adapters.feature.feature.group" version="3.2.401.v201410241731"/>
-<unit id="org.eclipse.jst.server_ui.feature.feature.group" version="3.4.101.v201410241731"/>
-<unit id="org.eclipse.wst.xml_ui.feature.feature.group" version="3.6.3.v201501292352"/>
-<unit id="org.eclipse.pde.feature.group" version="3.10.1.v20150204-1700"/>
-<unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.6.3.v201502041526"/>
-<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="3.6.3.v201501312139"/>
-<unit id="org.eclipse.jst.server_adapters.feature.feature.group" version="3.2.301.v201410241731"/>
-<unit id="org.eclipse.jst.enterprise_ui.feature.feature.group" version="3.6.3.v201501281502"/>
-<repository location="http://download.eclipse.org/releases/luna"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
-<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
-<unit id="com.google.gson" version="2.2.4.v201311231704"/>
-<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
-<unit id="org.apache.commons.io" version="2.2.0.v201405211200"/>
-<unit id="org.apache.commons.httpclient" version="3.1.0.v201012070820"/>
-<unit id="org.junit" version="4.11.0.v201303080030"/>
-<unit id="org.hamcrest.core" version="1.3.0.v201303031735"/>
-<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>
-</location>
-</locations>
-</target>
diff --git a/vlt-wrapper/META-INF/LICENSE b/vlt-wrapper/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/vlt-wrapper/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/vlt-wrapper/META-INF/MANIFEST.MF b/vlt-wrapper/META-INF/MANIFEST.MF
deleted file mode 100644
index 8f8c1d5..0000000
--- a/vlt-wrapper/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,60 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.apache.sling.ide.vlt-wrapper
-Bundle-Version: 1.2.3.qualifier
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Bundle-ClassPath: .,
- lib/org.apache.jackrabbit.vault-3.1.44.jar,
- lib/vault-davex-3.1.44.jar,
- lib/jcr-2.0.jar,
- lib/guava-15.0.jar,
- lib/jackrabbit-api-2.16.1.jar,
- lib/jackrabbit-spi2dav-2.16.1.jar,
- lib/jackrabbit-spi-2.16.1.jar,
- lib/jackrabbit-jcr-client-2.16.1.jar,
- lib/jackrabbit-jcr2spi-2.16.1.jar,
- lib/jackrabbit-jcr-commons-2.16.1.jar,
- lib/jackrabbit-spi-commons-2.16.1.jar,
- lib/jackrabbit-webdav-2.16.1.jar,
- lib/httpmime-4.5.3.jar,
- lib/httpclient-4.5.3.jar,
- lib/httpcore-4.4.6.jar
-Export-Package: javax.jcr,
- javax.jcr.nodetype,
- org.apache.jackrabbit.api,
- org.apache.jackrabbit.spi.commons.conversion,
- org.apache.jackrabbit.spi.commons.namespace,
- org.apache.jackrabbit.util,
- org.apache.jackrabbit.vault.davex,
- org.apache.jackrabbit.vault.fs,
- org.apache.jackrabbit.vault.fs.api,
- org.apache.jackrabbit.vault.fs.config,
- org.apache.jackrabbit.vault.fs.filter,
- org.apache.jackrabbit.vault.fs.impl,
- org.apache.jackrabbit.vault.fs.impl.aggregator,
- org.apache.jackrabbit.vault.fs.impl.io,
- org.apache.jackrabbit.vault.fs.impl.io.legacycnd,
- org.apache.jackrabbit.vault.fs.io,
- org.apache.jackrabbit.vault.fs.spi,
- org.apache.jackrabbit.vault.fs.spi.impl.jcr20,
- org.apache.jackrabbit.vault.packaging,
- org.apache.jackrabbit.vault.packaging.impl,
- org.apache.jackrabbit.vault.util,
- org.apache.jackrabbit.vault.util.xml.serialize,
- org.apache.jackrabbit.vault.util.xml.xerces.dom,
- org.apache.jackrabbit.vault.util.xml.xerces.util,
- org.apache.jackrabbit.vault.util.xml.xerces.xni,
- org.apache.jackrabbit.vault.util.xml.xerces.xni.parser
-Require-Bundle: org.eclipse.core.runtime
-Import-Package: org.apache.commons.collections,
- org.apache.commons.collections.map,
- org.apache.commons.collections.list,
- org.apache.commons.collections.iterators,
- org.apache.commons.logging,
- org.apache.commons.codec,
- org.apache.commons.codec.binary,
- org.apache.commons.io,
- org.apache.commons.io.output,
- org.osgi.framework,
- org.slf4j
diff --git a/vlt-wrapper/META-INF/NOTICE b/vlt-wrapper/META-INF/NOTICE
deleted file mode 100644
index 45dda0c..0000000
--- a/vlt-wrapper/META-INF/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Sling IDE Tools: FileVault wrapper
-Copyright 2007-2014 The Apache Software Foundation
-
-Apache Sling is based on source code originally developed 
-by Day Software (http://www.day.com/).
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/vlt-wrapper/build.properties b/vlt-wrapper/build.properties
deleted file mode 100644
index d3b5912..0000000
--- a/vlt-wrapper/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               lib/org.apache.jackrabbit.vault-3.1.44.jar,\
-               lib/vault-davex-3.1.44.jar,\
-               lib/jcr-2.0.jar,\
-               lib/guava-15.0.jar,\
-               lib/jackrabbit-api-2.16.1.jar,\
-               lib/jackrabbit-spi2dav-2.16.1.jar,\
-               lib/jackrabbit-spi-2.16.1.jar,\
-               lib/jackrabbit-jcr-client-2.16.1.jar,\
-               lib/jackrabbit-jcr2spi-2.16.1.jar,\
-               lib/jackrabbit-jcr-commons-2.16.1.jar,\
-               lib/jackrabbit-spi-commons-2.16.1.jar,\
-               lib/jackrabbit-webdav-2.16.1.jar,\
-               lib/httpmime-4.5.3.jar,\
-               lib/httpclient-4.5.3.jar,\
-               lib/httpcore-4.4.6.jar
diff --git a/vlt-wrapper/lib/.gitignore b/vlt-wrapper/lib/.gitignore
deleted file mode 100644
index f23b948..0000000
--- a/vlt-wrapper/lib/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.jar
\ No newline at end of file
diff --git a/vlt-wrapper/pom.xml b/vlt-wrapper/pom.xml
deleted file mode 100644
index 1dd9674..0000000
--- a/vlt-wrapper/pom.xml
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or
-    more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information regarding
-    copyright ownership. The ASF licenses this file to you under the
-    Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain
-    a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-    applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT
-    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions
-    and limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.sling.ide</groupId>
-        <artifactId>sling-ide-tooling</artifactId>
-        <version>1.2.3-SNAPSHOT</version>
-    </parent>
-    <artifactId>org.apache.sling.ide.vlt-wrapper</artifactId>
-    <packaging>eclipse-plugin</packaging>
-    <name>Apache Sling IDE Tools FileVault wrapper</name>
-
-    <scm>
-        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</connection>
-        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-ide-tooling.git</developerConnection>
-        <url>https://gitbox.apache.org/repos/asf?p=sling-ide-tooling.git</url>
-    </scm>
-    <build>
-        <!-- ensure that extra files are picked up by the maven-source-plugin -->
-        <resources>
-            <resource>
-                <directory>.</directory>
-                <includes>
-                    <include>build.properties</include>
-                    <include>META-INF/*</include>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <artifactId>maven-clean-plugin</artifactId>
-                <configuration>
-                    <filesets>
-                        <fileset>
-                            <directory>lib</directory>
-                            <includes>
-                                <include>**/*.jar</include>
-                            </includes>
-                        </fileset>
-                    </filesets>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestFile>META-INF/MANIFEST.MF</manifestFile>
-                    </archive>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <configuration>
-                    <artifactItems>
-                        <!-- START JCR dependencies -->
-                        <artifactItem>
-                            <groupId>javax.jcr</groupId>
-                            <artifactId>jcr</artifactId>
-                            <version>2.0</version>
-                        </artifactItem>
-                        <!-- END JCR dependencies -->
-
-                        <!-- START Apache Jackrabbit dependencies -->
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-api</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-webdav</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-spi-commons</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-jcr-commons</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <!-- transitive dependency of jackrabbit-jcr-commons -->
-                        <artifactItem>
-                            <groupId>com.google.guava</groupId>
-                            <artifactId>guava</artifactId>
-                            <version>15.0</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-jcr2spi</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-jcr-client</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-spi</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit</groupId>
-                            <artifactId>jackrabbit-spi2dav</artifactId>
-                            <version>${jackrabbit.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.httpcomponents</groupId>
-                            <artifactId>httpmime</artifactId>
-                            <version>4.5.3</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.httpcomponents</groupId>
-                            <artifactId>httpclient</artifactId>
-                            <version>4.5.3</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.httpcomponents</groupId>
-                            <artifactId>httpcore</artifactId>
-                            <version>4.4.6</version>
-                        </artifactItem>
-                        <!-- END Apache Jackrabbit dependencies -->
-
-                        <!-- START Apache Jackrabbit FileVault dependencies -->
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit.vault</groupId>
-                            <artifactId>vault-davex</artifactId>
-                            <version>${vault.version}</version>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.jackrabbit.vault</groupId>
-                            <artifactId>org.apache.jackrabbit.vault</artifactId>
-                            <version>${vault.version}</version>
-                        </artifactItem>
-                        <!-- END Apache Jackrabbit FileVault dependencies -->
-
-                    </artifactItems>
-                    <outputDirectory>lib</outputDirectory>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <properties>
-        <!-- must match the version being referenced in the pom.xml of filevault -->
-        <jackrabbit.version>2.16.1</jackrabbit.version>
-        <vault.version>3.1.44</vault.version>
-    </properties>
-</project>