diff --git a/agents/ls-java/pom.xml b/agents/ls-java/pom.xml
index 672b32e699..2842edcdd9 100644
--- a/agents/ls-java/pom.xml
+++ b/agents/ls-java/pom.xml
@@ -16,7 +16,7 @@
che-agents-parent
org.eclipse.che
- 6.6.0-SNAPSHOT
+ 6.7.0-SNAPSHOT
ls-java-agent
Language Server Java Agent
diff --git a/agents/ls-java/src/main/resources/installers/1.0.1/org.eclipse.che.ls.java.script.sh b/agents/ls-java/src/main/resources/installers/1.0.1/org.eclipse.che.ls.java.script.sh
index 4209faa76a..38dd89e099 100644
--- a/agents/ls-java/src/main/resources/installers/1.0.1/org.eclipse.che.ls.java.script.sh
+++ b/agents/ls-java/src/main/resources/installers/1.0.1/org.eclipse.che.ls.java.script.sh
@@ -131,8 +131,10 @@ WORKSPACE_MASTER_URI=$(echo $CHE_API | cut -d / -f 1-3)
## Evaluate variables now that prefix is defined
eval "DOWNLOAD_AGENT_BINARIES_URI=${DOWNLOAD_AGENT_BINARIES_URI}"
+echo Downloading java LS
curl -sL ${DOWNLOAD_AGENT_BINARIES_URI} | tar xzf - -C ${LS_DIR}
+echo writing start script to ${LS_LAUNCHER}
touch ${LS_LAUNCHER}
chmod +x ${LS_LAUNCHER}
-echo "java -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -noverify -Xmx1G -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4410 -jar ${LS_DIR}/plugins/org.eclipse.equinox.launcher_1.5.0.v20180207-1446.jar -configuration ./config_linux -data ${LS_DIR}/data" > ${LS_LAUNCHER}
+echo "java -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -noverify -Xmx1G -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4410 -jar ${LS_DIR}/plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar -configuration ./config_linux -data ${LS_DIR}/data" > ${LS_LAUNCHER}
diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jdt-ui/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jdt-ui/pom.xml
index 6ce404beee..15884ae989 100644
--- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jdt-ui/pom.xml
+++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jdt-ui/pom.xml
@@ -23,6 +23,10 @@
jar
Che Plugin :: Java :: Eclipse JDT UI
+
+ com.google.guava
+ guava
+
com.google.inject
guice
@@ -47,6 +51,10 @@
org.eclipse.birt.runtime
org.eclipse.equinox.common
+
+ org.eclipse.che.core
+ che-core-api-core
+
org.eclipse.che.core
che-core-api-dto
@@ -63,6 +71,10 @@
org.eclipse.che.core
che-core-api-project-shared
+
+ org.eclipse.che.core
+ che-core-commons-annotations
+
org.eclipse.che.core
che-core-commons-lang
diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-server/pom.xml b/plugins/plugin-java/che-plugin-java-ext-lang-server/pom.xml
index 29f6ce1414..1408996f76 100644
--- a/plugins/plugin-java/che-plugin-java-ext-lang-server/pom.xml
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-server/pom.xml
@@ -61,6 +61,10 @@
org.eclipse.che.core
che-core-api-dto
+
+ org.eclipse.che.core
+ che-core-api-model
+
org.eclipse.che.core
che-core-api-project
diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-shared/src/main/java/org/eclipse/che/ide/ext/java/shared/dto/ReconcileResult.java b/plugins/plugin-java/che-plugin-java-ext-lang-shared/src/main/java/org/eclipse/che/ide/ext/java/shared/dto/ReconcileResult.java
new file mode 100644
index 0000000000..874764960e
--- /dev/null
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-shared/src/main/java/org/eclipse/che/ide/ext/java/shared/dto/ReconcileResult.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2012-2018 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.che.ide.ext.java.shared.dto;
+
+import java.util.List;
+import org.eclipse.che.dto.shared.DTO;
+
+/** @author Evgen Vidolob */
+@DTO
+public interface ReconcileResult {
+
+ List getProblems();
+
+ void setProblems(List problems);
+
+ ReconcileResult withProblems(List problems);
+
+ List getHighlightedPositions();
+
+ void setHighlightedPositions(List positions);
+
+ ReconcileResult withHighlightedPositions(List positions);
+
+ String getFileLocation();
+
+ void setFileLocation(String path);
+
+ ReconcileResult withFileLocation(String path);
+}
diff --git a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/src/main/java/org/eclipse/che/plugin/java/plain/server/rest/ClasspathUpdaterService.java b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/src/main/java/org/eclipse/che/plugin/java/plain/server/rest/ClasspathUpdaterService.java
index 6c94354f60..eac6d8023c 100644
--- a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/src/main/java/org/eclipse/che/plugin/java/plain/server/rest/ClasspathUpdaterService.java
+++ b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/src/main/java/org/eclipse/che/plugin/java/plain/server/rest/ClasspathUpdaterService.java
@@ -29,8 +29,8 @@ import org.eclipse.che.api.core.NotFoundException;
import org.eclipse.che.api.core.ServerException;
import org.eclipse.che.api.project.server.ProjectManager;
import org.eclipse.che.api.project.server.impl.NewProjectConfigImpl;
-import org.eclipse.che.api.project.server.impl.RegisteredProject;
import org.eclipse.che.api.project.shared.NewProjectConfig;
+import org.eclipse.che.api.project.shared.RegisteredProject;
import org.eclipse.che.jdt.ls.extension.api.dto.ClasspathEntry;
import org.eclipse.che.plugin.java.languageserver.JavaLanguageServerExtensionService;
diff --git a/plugins/plugin-java/che-plugin-java-server/pom.xml b/plugins/plugin-java/che-plugin-java-server/pom.xml
index 276b213814..8b32101939 100644
--- a/plugins/plugin-java/che-plugin-java-server/pom.xml
+++ b/plugins/plugin-java/che-plugin-java-server/pom.xml
@@ -16,7 +16,7 @@
che-plugin-java-parent
org.eclipse.che.plugin
- 6.6.0-SNAPSHOT
+ 6.7.0-SNAPSHOT
che-plugin-java-server
Che Plugin :: Java :: Language Server
@@ -65,10 +65,19 @@
org.eclipse.che.core
che-core-api-languageserver
+
+ org.eclipse.che.core
+ che-core-api-languageserver-shared
+ 6.7.0-SNAPSHOT
+
org.eclipse.che.core
che-core-api-project
+
+ org.eclipse.che.core
+ che-core-api-project-shared
+
org.eclipse.che.core
che-core-api-workspace
diff --git a/plugins/plugin-java/che-plugin-java-server/src/main/java/org/eclipse/che/plugin/java/languageserver/ProjectsSynchronizer.java b/plugins/plugin-java/che-plugin-java-server/src/main/java/org/eclipse/che/plugin/java/languageserver/ProjectsSynchronizer.java
index 2afd967eab..6bbee6e02e 100644
--- a/plugins/plugin-java/che-plugin-java-server/src/main/java/org/eclipse/che/plugin/java/languageserver/ProjectsSynchronizer.java
+++ b/plugins/plugin-java/che-plugin-java-server/src/main/java/org/eclipse/che/plugin/java/languageserver/ProjectsSynchronizer.java
@@ -22,8 +22,8 @@ import org.eclipse.che.api.core.NotFoundException;
import org.eclipse.che.api.core.ServerException;
import org.eclipse.che.api.core.notification.EventService;
import org.eclipse.che.api.project.server.ProjectManager;
-import org.eclipse.che.api.project.server.impl.RegisteredProject;
import org.eclipse.che.api.project.server.notification.ProjectUpdatedEvent;
+import org.eclipse.che.api.project.shared.RegisteredProject;
import org.eclipse.che.api.workspace.server.model.impl.ProjectConfigImpl;
import org.eclipse.che.api.workspace.server.model.impl.SourceStorageImpl;
import org.slf4j.Logger;
diff --git a/plugins/plugin-maven/che-plugin-maven-server/pom.xml b/plugins/plugin-maven/che-plugin-maven-server/pom.xml
index 9ecf8202da..16efe4a26e 100644
--- a/plugins/plugin-maven/che-plugin-maven-server/pom.xml
+++ b/plugins/plugin-maven/che-plugin-maven-server/pom.xml
@@ -71,6 +71,10 @@
org.eclipse.che.core
che-core-api-project
+
+ org.eclipse.che.core
+ che-core-api-project-shared
+
org.eclipse.che.core
che-core-commons-inject
@@ -79,6 +83,10 @@
org.eclipse.che.core
che-core-commons-lang
+
+ org.eclipse.che.core
+ che-core-commons-schedule
+
org.eclipse.che.core
che-core-commons-xml
diff --git a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-server/pom.xml b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-server/pom.xml
index 3a731c40ac..65fdaba14c 100644
--- a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-server/pom.xml
+++ b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-server/pom.xml
@@ -34,10 +34,6 @@
javax.inject
javax.inject
-
- org.eclipse.che.core
- che-core-api-project
-
org.eclipse.che.core
che-core-api-testing
diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerConfigInitializer.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerConfigInitializer.java
index ec281964ea..837ecd5d78 100644
--- a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerConfigInitializer.java
+++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerConfigInitializer.java
@@ -20,7 +20,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.regex.Pattern;
-import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.eclipse.che.api.languageserver.LanguageServerConfig.CommunicationProvider;
@@ -60,7 +59,6 @@ class LanguageServerConfigInitializer {
this.languageFilterRegistry = registryContainer.languageFilterRegistry;
}
- @PostConstruct
void initialize() {
LOG.info("Language server config processing: started");
for (LanguageServerConfigProvider provider : providers) {
diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerInitializer.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerInitializer.java
index 54d361609c..b0a03ddb7c 100644
--- a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerInitializer.java
+++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerInitializer.java
@@ -65,8 +65,11 @@ public class LanguageServerInitializer {
private final Registry> ioStreamRegistry;
private final Registry communicationProviderRegistry;
+ private LanguageServerConfigInitializer configInitializer;
+
@Inject
public LanguageServerInitializer(
+ LanguageServerConfigInitializer configInitializer,
ServerCapabilitiesAccumulator serverCapabilitiesAccumulator,
RegistryContainer registryContainer,
FindId findId,
@@ -75,6 +78,7 @@ public class LanguageServerInitializer {
InitializeParamsProvider initializeParamsProvider) {
this.executor = newCachedThreadPool(getFactory());
+ this.configInitializer = configInitializer;
this.eventService = eventService;
this.cheLanguageClientFactory = cheLanguageClientFactory;
this.initializeParamsProvider = initializeParamsProvider;
@@ -112,6 +116,7 @@ public class LanguageServerInitializer {
() -> {
LOG.info("Started language servers initialization, file path '{}'", wsPath);
+ configInitializer.initialize();
Set serverCapabilitiesSet =
findId
.byPath(wsPath)
diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerModule.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerModule.java
index 6310472b8b..3e249f15be 100644
--- a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerModule.java
+++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/LanguageServerModule.java
@@ -27,12 +27,14 @@ public class LanguageServerModule extends AbstractModule {
@Override
protected void configure() {
+ bind(RegistryContainer.class).asEagerSingleton();
bind(WorkspaceService.class).asEagerSingleton();
bind(TextDocumentService.class).asEagerSingleton();
bind(PublishDiagnosticsParamsJsonRpcTransmitter.class).asEagerSingleton();
bind(ShowMessageJsonRpcTransmitter.class).asEagerSingleton();
bind(LanguageServerConfigInitializer.class).asEagerSingleton();
bind(LanguageServerService.class).asEagerSingleton();
+ bind(LanguageServerInitializer.class).asEagerSingleton();
install(new FactoryModuleBuilder().build(CheLanguageClientFactory.class));
diff --git a/wsagent/che-core-api-project/src/main/java/org/eclipse/che/api/project/server/impl/OnWorkspaceStartProjectInitializer.java b/wsagent/che-core-api-project/src/main/java/org/eclipse/che/api/project/server/impl/OnWorkspaceStartProjectInitializer.java
index 9f15a69857..b2befd05b9 100644
--- a/wsagent/che-core-api-project/src/main/java/org/eclipse/che/api/project/server/impl/OnWorkspaceStartProjectInitializer.java
+++ b/wsagent/che-core-api-project/src/main/java/org/eclipse/che/api/project/server/impl/OnWorkspaceStartProjectInitializer.java
@@ -30,6 +30,7 @@ import org.eclipse.che.api.fs.server.FsManager;
import org.eclipse.che.api.project.server.handlers.ProjectInitHandler;
import org.eclipse.che.api.project.server.notification.BeforeProjectInitializedEvent;
import org.eclipse.che.api.project.server.notification.ProjectInitializedEvent;
+import org.eclipse.che.api.project.shared.RegisteredProject;
import org.eclipse.che.api.search.server.excludes.HiddenItemPathMatcher;
@Singleton