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