diff --git a/vscode-extensions/commons/.project b/vscode-extensions/commons/.project
new file mode 100644
index 000000000..8b03f534c
--- /dev/null
+++ b/vscode-extensions/commons/.project
@@ -0,0 +1,17 @@
+
+
+ commons-parent
+
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/vscode-extensions/commons/.settings/org.eclipse.m2e.core.prefs b/vscode-extensions/commons/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 000000000..f897a7f1c
--- /dev/null
+++ b/vscode-extensions/commons/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/vscode-extensions/commons/language-server-commons/.classpath b/vscode-extensions/commons/language-server-commons/.classpath
new file mode 100644
index 000000000..fae1a2b37
--- /dev/null
+++ b/vscode-extensions/commons/language-server-commons/.classpath
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vscode-extensions/commons/language-server-commons/.project b/vscode-extensions/commons/language-server-commons/.project
new file mode 100644
index 000000000..095feb2a9
--- /dev/null
+++ b/vscode-extensions/commons/language-server-commons/.project
@@ -0,0 +1,23 @@
+
+
+ language-server-commons
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/vscode-extensions/commons/language-server-commons/.settings/org.eclipse.jdt.core.prefs b/vscode-extensions/commons/language-server-commons/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..714351aec
--- /dev/null
+++ b/vscode-extensions/commons/language-server-commons/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/vscode-extensions/commons/language-server-commons/.settings/org.eclipse.m2e.core.prefs b/vscode-extensions/commons/language-server-commons/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 000000000..f897a7f1c
--- /dev/null
+++ b/vscode-extensions/commons/language-server-commons/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/vscode-extensions/commons/language-server-commons/pom.xml b/vscode-extensions/commons/language-server-commons/pom.xml
new file mode 100644
index 000000000..70623cdea
--- /dev/null
+++ b/vscode-extensions/commons/language-server-commons/pom.xml
@@ -0,0 +1,79 @@
+
+ 4.0.0
+ language-server-commons
+ language-server-commons
+ Shared utilities for building vscode language servers in Java
+
+
+ org.springframework.ide.vscode
+ commons-parent
+ 0.0.1-SNAPSHOT
+ ../pom.xml
+
+
+
+
+
+ oss-sonatype
+ oss-sonatype
+ https://oss.sonatype.org/content/repositories/snapshots/
+
+ true
+
+
+
+
+
+ 2.5.0
+ 2.10
+ 0.2.0-SNAPSHOT
+
+
+
+
+
+ io.typefox.lsapi
+ io.typefox.lsapi
+ ${lsapi-version}
+
+
+ io.typefox.lsapi
+ io.typefox.lsapi.services
+ ${lsapi-version}
+
+
+ io.typefox.lsapi
+ io.typefox.lsapi.annotations
+ ${lsapi-version}
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ ${jackson-2-version}
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ ${jackson-2-version}
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson-2-version}
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ ${jackson-2-version}
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jdk8
+ ${jackson-2-version}
+
+
+
+
+
\ No newline at end of file
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/Assert.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/Assert.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/Assert.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/Assert.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/CompletionHandler.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/CompletionHandler.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/CompletionHandler.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/CompletionHandler.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/CompletionResolveHandler.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/CompletionResolveHandler.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/CompletionResolveHandler.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/CompletionResolveHandler.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/Futures.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/Futures.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/Futures.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/Futures.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/JSON.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/JSON.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/JSON.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/JSON.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/ListenerList.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/ListenerList.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/ListenerList.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/ListenerList.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/LoggingFormat.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/LoggingFormat.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/LoggingFormat.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/LoggingFormat.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/Settings.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/Settings.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/Settings.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/Settings.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/ShowMessageException.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/ShowMessageException.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/ShowMessageException.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/ShowMessageException.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/SimpleLanguageServer.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/SimpleLanguageServer.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/SimpleLanguageServer.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/SimpleLanguageServer.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/SimpleTextDocumentService.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/SimpleTextDocumentService.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/SimpleTextDocumentService.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/SimpleTextDocumentService.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/SimpleWorkspaceService.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/SimpleWorkspaceService.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/SimpleWorkspaceService.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/SimpleWorkspaceService.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/TextDocument.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/TextDocument.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/TextDocument.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/TextDocument.java
diff --git a/vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/TextDocumentContentChange.java b/vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/TextDocumentContentChange.java
similarity index 100%
rename from vscode-extensions/vscode-application-yaml/src/main/java/org/springframework/ide/vscode/util/TextDocumentContentChange.java
rename to vscode-extensions/commons/language-server-commons/src/main/java/org/springframework/ide/vscode/util/TextDocumentContentChange.java
diff --git a/vscode-extensions/commons/pom.xml b/vscode-extensions/commons/pom.xml
new file mode 100644
index 000000000..01c573a06
--- /dev/null
+++ b/vscode-extensions/commons/pom.xml
@@ -0,0 +1,45 @@
+
+ 4.0.0
+
+ org.springframework.ide.vscode
+ commons-parent
+ pom
+ 0.0.1-SNAPSHOT
+ Parent pom for headless services written in Java
+
+
+ language-server-commons
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+ org.assertj
+ assertj-core
+ 3.5.2
+ test
+
+
+