diff --git a/agents/che-core-api-agent-shared/pom.xml b/agents/che-core-api-agent-shared/pom.xml index 53a3bf8e03..1f10ff6255 100644 --- a/agents/che-core-api-agent-shared/pom.xml +++ b/agents/che-core-api-agent-shared/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-api-agent-shared diff --git a/agents/che-core-api-agent/pom.xml b/agents/che-core-api-agent/pom.xml index 53b0585783..bc5fd697e9 100644 --- a/agents/che-core-api-agent/pom.xml +++ b/agents/che-core-api-agent/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-api-agent diff --git a/agents/exec/pom.xml b/agents/exec/pom.xml index 0ee75a77a2..9863289102 100644 --- a/agents/exec/pom.xml +++ b/agents/exec/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT exec-agent Agent :: Exec diff --git a/agents/git-credentials/pom.xml b/agents/git-credentials/pom.xml new file mode 100644 index 0000000000..ff29f3e928 --- /dev/null +++ b/agents/git-credentials/pom.xml @@ -0,0 +1,33 @@ + + + + 4.0.0 + + che-agents-parent + org.eclipse.che + 5.13.0-SNAPSHOT + + git-credentials-agent + Git Credentials Agent + + + com.google.inject + guice + + + org.eclipse.che.core + che-core-api-agent-shared + + + diff --git a/agents/git-credentials/src/main/java/org/eclipse/che/api/agent/GitCredentialsAgent.java b/agents/git-credentials/src/main/java/org/eclipse/che/api/agent/GitCredentialsAgent.java new file mode 100644 index 0000000000..8cdc4d6b9e --- /dev/null +++ b/agents/git-credentials/src/main/java/org/eclipse/che/api/agent/GitCredentialsAgent.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2012-2017 Codenvy, S.A. + * 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: + * Codenvy, S.A. - initial API and implementation + *******************************************************************************/ +package org.eclipse.che.api.agent; + +import com.google.inject.Inject; +import com.google.inject.Singleton; + +import org.eclipse.che.api.agent.shared.model.Agent; +import org.eclipse.che.api.agent.shared.model.impl.BasicAgent; + +import java.io.IOException; + +/** + * Git credentials agent. + * Creates sh script that retrieves SSH keys from user preferences for console Git SSH operations. + * Injects Git username and email from user preferences to console Git preferences. + * + * @see Agent + * + * @author Igor Vinokur + */ +@Singleton +public class GitCredentialsAgent extends BasicAgent { + private static final String AGENT_DESCRIPTOR = "org.eclipse.che.git.json"; + private static final String AGENT_SCRIPT = "org.eclipse.che.git.script.sh"; + + @Inject + public GitCredentialsAgent() throws IOException { + super(AGENT_DESCRIPTOR, AGENT_SCRIPT); + } +} diff --git a/agents/git-credentials/src/main/resources/org.eclipse.che.git.json b/agents/git-credentials/src/main/resources/org.eclipse.che.git.json new file mode 100644 index 0000000000..2a6b5869ea --- /dev/null +++ b/agents/git-credentials/src/main/resources/org.eclipse.che.git.json @@ -0,0 +1,5 @@ +{ + "id": "org.eclipse.che.git-credentials", + "name": "Git-Credentials-Agent", + "description": "Agent fetches SSH keys, Git username and email from CHE user preferences, and injects to console Git" +} diff --git a/agents/git-credentials/src/main/resources/org.eclipse.che.git.script.sh b/agents/git-credentials/src/main/resources/org.eclipse.che.git.script.sh new file mode 100644 index 0000000000..36e13089bb --- /dev/null +++ b/agents/git-credentials/src/main/resources/org.eclipse.che.git.script.sh @@ -0,0 +1,58 @@ +# +# Copyright (c) 2012-2017 Codenvy, S.A. +# 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: +# Codenvy, S.A. - initial API and implementation +# + +SCRIPT_FILE=~/.ssh/git.sh + +token=$(if [ "$USER_TOKEN" != "dummy_token" ]; then echo "$USER_TOKEN"; fi) +che_host=$(cat /etc/hosts | grep che-host | awk '{print $1;}') +api_url=$(if [ "$CHE_API" != "http://che-host:8080/wsmaster/api" ]; then echo "$CHE_API"; else echo "$che_host:8080/api"; fi) + +CURL_INSTALLED=false +WGET_INSTALLED=false +command -v curl >/dev/null 2>&1 && CURL_INSTALLED=true +command -v wget >/dev/null 2>&1 && WGET_INSTALLED=true + +# no curl, no wget, install curl +if [ ${CURL_INSTALLED} = false ] && [ ${WGET_INSTALLED} = false ]; then + PACKAGES=${PACKAGES}" curl"; + CURL_INSTALLED=true +fi + +request=$(if ${CURL_INSTALLED}; then echo 'curl -s'; else echo 'wget -qO-'; fi) + +echo 'host=$(echo $(if [ "$1" = "-p" ]; then echo "$3" ; else echo "$1"; fi) | sed -e "s/git@//")' > ${SCRIPT_FILE} +echo 'token='"$token" >> ${SCRIPT_FILE} +echo 'api_url='"$api_url" >> ${SCRIPT_FILE} +echo 'request="'${request}'"' >> ${SCRIPT_FILE} +# Ssh key request may return key with decoded '=' symbol, so need to replace '\u003d' to '='. +# TODO remove the replacement after https://github.com/eclipse/che/issues/5253 will be fixed. +echo 'ssh_key=$(${request} "$api_url/ssh/vcs/find?name=$host$(if [ -n "$token" ]; then echo "&token=$token"; fi)"| grep -Po '\''"privateKey":.*?[^\\\\]",'\''| sed -e "s/\"privateKey\":\"//" | sed -e "s/\\\\\u003d/=/g")' >> ${SCRIPT_FILE} +echo 'if [ -n "$ssh_key" ]' >> ${SCRIPT_FILE} +echo 'then' >> ${SCRIPT_FILE} +echo ' key_file=$(mktemp)' >> ${SCRIPT_FILE} +echo ' echo "$ssh_key" > "$key_file"' >> ${SCRIPT_FILE} +echo ' ssh -i "$key_file" "$@"' >> ${SCRIPT_FILE} +echo ' rm "$key_file"' >> ${SCRIPT_FILE} +echo 'else' >> ${SCRIPT_FILE} +echo ' ssh "$@"' >> ${SCRIPT_FILE} +echo 'fi' >> ${SCRIPT_FILE} + +chmod +x ${SCRIPT_FILE} + +user_name="$(${request} "$api_url/preferences$(if [ -n "$token" ]; then echo "?token=$token"; fi)" | grep -Po '"git.committer.name":.*?[^\\]",' | sed -e "s/\"git.committer.name\":\"//" | sed -e "s/\",//")" +user_email="$(${request} "$api_url/preferences$(if [ -n "$token" ]; then echo "?token=$token"; fi)" | grep -Po '"git.committer.email":.*?[^\\]",' | sed -e "s/\"git.committer.email\":\"//" | sed -e "s/\",//")" +git config --global user.name \""$user_name"\" +git config --global user.email \""$user_email"\" + +if [ -z "$(cat ~/.bashrc | grep GIT_SSH)" ] +then + printf '\n export GIT_SSH='"$SCRIPT_FILE" >> ~/.bashrc +fi diff --git a/agents/go-agents/pom.xml b/agents/go-agents/pom.xml index 0009af49e1..0448654e7f 100644 --- a/agents/go-agents/pom.xml +++ b/agents/go-agents/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT go-agents Agent :: Golang agents @@ -26,7 +26,9 @@ com.mycila license-maven-plugin - **/** + + **/** + docs/** terminal-agent/term/server.go diff --git a/agents/ls-csharp/pom.xml b/agents/ls-csharp/pom.xml index 26d123cc1f..b343e8a405 100644 --- a/agents/ls-csharp/pom.xml +++ b/agents/ls-csharp/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ls-csharp-agent Language Server C# Agent diff --git a/agents/ls-json/pom.xml b/agents/ls-json/pom.xml index 4f7f7d812f..9cab587a49 100644 --- a/agents/ls-json/pom.xml +++ b/agents/ls-json/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ls-json-agent Language Server Json Agent diff --git a/agents/ls-json/src/main/resources/org.eclipse.che.ls.json.script.sh b/agents/ls-json/src/main/resources/org.eclipse.che.ls.json.script.sh index f314bc5023..c520fee176 100644 --- a/agents/ls-json/src/main/resources/org.eclipse.che.ls.json.script.sh +++ b/agents/ls-json/src/main/resources/org.eclipse.che.ls.json.script.sh @@ -154,4 +154,4 @@ curl -s ${AGENT_BINARIES_URI} | tar xzf - -C ${LS_DIR} touch ${LS_LAUNCHER} chmod +x ${LS_LAUNCHER} -echo "nodejs ${LS_DIR}/vscode-json-server/server.js" > ${LS_LAUNCHER} +echo "nodejs ${LS_DIR}/vscode-json-server/out/jsonServerMain.js --stdio" > ${LS_LAUNCHER} diff --git a/agents/ls-php/pom.xml b/agents/ls-php/pom.xml index bd28873f50..104c7be97e 100644 --- a/agents/ls-php/pom.xml +++ b/agents/ls-php/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ls-php-agent Language Server PHP Agent diff --git a/agents/ls-python/pom.xml b/agents/ls-python/pom.xml index 3516bd4dfd..8bfbf10d17 100644 --- a/agents/ls-python/pom.xml +++ b/agents/ls-python/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ls-python-agent Language Server python Agent diff --git a/agents/ls-typescript/pom.xml b/agents/ls-typescript/pom.xml index 97b5f17df0..fe67e6b6b6 100644 --- a/agents/ls-typescript/pom.xml +++ b/agents/ls-typescript/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ls-typescript-agent Language Server typescript Agent diff --git a/agents/pom.xml b/agents/pom.xml index 593ee7acc6..895a487b79 100644 --- a/agents/pom.xml +++ b/agents/pom.xml @@ -16,11 +16,11 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-agents-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Agents Parent @@ -32,6 +32,7 @@ che-core-api-agent-shared che-core-api-agent ls-json + git-credentials ls-php ls-python ls-typescript diff --git a/agents/ssh/pom.xml b/agents/ssh/pom.xml index 4f9ad76aa5..21f716b144 100644 --- a/agents/ssh/pom.xml +++ b/agents/ssh/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ssh-agent SSH Agent diff --git a/agents/terminal/pom.xml b/agents/terminal/pom.xml index 24cd2816bf..d692e9986b 100644 --- a/agents/terminal/pom.xml +++ b/agents/terminal/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT terminal-agent Agent :: Terminal diff --git a/agents/unison/pom.xml b/agents/unison/pom.xml index 28c4d9c4e4..3ea2e57ccb 100644 --- a/agents/unison/pom.xml +++ b/agents/unison/pom.xml @@ -16,7 +16,7 @@ che-agents-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT unison-agent Unison Agent diff --git a/assembly/assembly-ide-war/pom.xml b/assembly/assembly-ide-war/pom.xml index 7980df9322..965509a8d1 100644 --- a/assembly/assembly-ide-war/pom.xml +++ b/assembly/assembly-ide-war/pom.xml @@ -16,7 +16,7 @@ che-assembly-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT assembly-ide-war war diff --git a/assembly/assembly-main/pom.xml b/assembly/assembly-main/pom.xml index cbc661c05b..4d7da6b946 100644 --- a/assembly/assembly-main/pom.xml +++ b/assembly/assembly-main/pom.xml @@ -16,7 +16,7 @@ che-assembly-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT assembly-main pom diff --git a/assembly/assembly-wsagent-server/pom.xml b/assembly/assembly-wsagent-server/pom.xml index 1bc2c53b60..90cdf860ff 100644 --- a/assembly/assembly-wsagent-server/pom.xml +++ b/assembly/assembly-wsagent-server/pom.xml @@ -16,7 +16,7 @@ che-assembly-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT assembly-wsagent-server pom diff --git a/assembly/assembly-wsagent-war/pom.xml b/assembly/assembly-wsagent-war/pom.xml index 73ffc38499..4e8334a678 100644 --- a/assembly/assembly-wsagent-war/pom.xml +++ b/assembly/assembly-wsagent-war/pom.xml @@ -16,7 +16,7 @@ che-assembly-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT assembly-wsagent-war war diff --git a/assembly/assembly-wsmaster-war/pom.xml b/assembly/assembly-wsmaster-war/pom.xml index b5d073ee02..c683f439dd 100644 --- a/assembly/assembly-wsmaster-war/pom.xml +++ b/assembly/assembly-wsmaster-war/pom.xml @@ -16,7 +16,7 @@ che-assembly-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT assembly-wsmaster-war war @@ -66,6 +66,10 @@ org.eclipse.che exec-agent + + org.eclipse.che + git-credentials-agent + org.eclipse.che infrastructure-docker diff --git a/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterModule.java b/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterModule.java index c3112b636e..8846ed9606 100644 --- a/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterModule.java +++ b/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterModule.java @@ -14,6 +14,7 @@ import com.google.inject.AbstractModule; import com.google.inject.multibindings.Multibinder; import com.google.inject.name.Names; +import org.eclipse.che.api.agent.GitCredentialsAgent; import org.eclipse.che.api.agent.LSCSharpAgent; import org.eclipse.che.api.agent.LSJsonAgent; import org.eclipse.che.api.agent.LSPhpAgent; @@ -164,6 +165,7 @@ public class WsMasterModule extends AbstractModule { agents.addBinding().to(LSJsonAgent.class); agents.addBinding().to(LSCSharpAgent.class); agents.addBinding().to(LSTypeScriptAgent.class); + agents.addBinding().to(GitCredentialsAgent.class); Multibinder launchers = Multibinder.newSetBinder(binder(), AgentLauncher.class); // FIXME: spi diff --git a/assembly/pom.xml b/assembly/pom.xml index 46b74b4e48..7a4c9742cf 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -16,12 +16,12 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml org.eclipse.che che-assembly-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che IDE :: Parent diff --git a/core/che-core-api-core/pom.xml b/core/che-core-api-core/pom.xml index 8d021ea90c..827d6b3d5f 100644 --- a/core/che-core-api-core/pom.xml +++ b/core/che-core-api-core/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-core jar diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcPromise.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcPromise.java index 1c9c5d94c5..4da39369cb 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcPromise.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcPromise.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.che.api.core.jsonrpc.commons; +import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; @@ -27,13 +28,32 @@ import static com.google.common.base.Preconditions.checkState; public class JsonRpcPromise { private BiConsumer successConsumer; private BiConsumer failureConsumer; + private Runnable timeoutRunnable; - BiConsumer getSuccessConsumer() { - return successConsumer; + Optional> getSuccessConsumer() { + return Optional.ofNullable(successConsumer); } - BiConsumer getFailureConsumer() { - return failureConsumer; + Optional> getFailureConsumer() { + return Optional.ofNullable(failureConsumer); + } + + Optional getTimeoutRunnable() { + return Optional.ofNullable(timeoutRunnable); + } + + /** + * Set timeout runnable to be called on this promise timeout. + * + * @param runnable + * timeout runnable + * @return the instance of this very promise + */ + public JsonRpcPromise onTimeout(Runnable runnable) { + checkNotNull(runnable, "JSON RPC timeout runnable argument must not be null"); + checkState(this.timeoutRunnable == null, "JSON RPC timeout runnable field must not be set"); + this.timeoutRunnable = runnable; + return this; } /** diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/ResponseDispatcher.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/ResponseDispatcher.java index 31dfec8eb7..36a2789875 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/ResponseDispatcher.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/ResponseDispatcher.java @@ -14,11 +14,10 @@ import org.slf4j.Logger; import javax.inject.Inject; import javax.inject.Singleton; -import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; -import java.util.function.BiConsumer; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -31,17 +30,19 @@ import static org.slf4j.LoggerFactory.getLogger; public class ResponseDispatcher { private final static Logger LOGGER = getLogger(ResponseDispatcher.class); - private final JsonRpcComposer composer; + private final JsonRpcComposer composer; + private final TimeoutActionRunner timeoutActionRunner; - private final Map promises = new ConcurrentHashMap<>(); - private final Map> rClasses = new ConcurrentHashMap<>(); + private final Map> singleTypedPromises = new ConcurrentHashMap<>(); + private final Map> listTypedPromises = new ConcurrentHashMap<>(); @Inject - public ResponseDispatcher(JsonRpcComposer composer) { + public ResponseDispatcher(JsonRpcComposer composer, TimeoutActionRunner timeoutActionRunner) { this.composer = composer; + this.timeoutActionRunner = timeoutActionRunner; } - private static void checkArguments(String endpointId, String requestId, Class rClass, JsonRpcPromise success) { + private static void checkArguments(String endpointId, String requestId, Class rClass) { checkNotNull(endpointId, "Endpoint ID must not be null"); checkArgument(!endpointId.isEmpty(), "Endpoint ID must not be empty"); @@ -49,103 +50,105 @@ public class ResponseDispatcher { checkArgument(!requestId.isEmpty(), "Request ID must not be empty"); checkNotNull(rClass, "Result class must not be null"); - - checkNotNull(success, "Json rpc promise must not be null"); } - private static String combine(String endpointId, String requestId) { + private static String generateKey(String endpointId, String requestId) { return endpointId + '@' + requestId; } - @SuppressWarnings("unchecked") - private static T cast(Object object) { - return (T)object; - } - - private void processOne(String endpointId, JsonRpcResult jsonRpcResult, Class resultClass, BiConsumer consumer) { - LOGGER.debug("Result is a single object - processing single object..."); - - R result = composer.composeOne(jsonRpcResult, resultClass); - consumer.accept(endpointId, result); - } - - private void processMany(String endpointId, JsonRpcResult jsonRpcResult, Class resultClass, BiConsumer consumer) { - LOGGER.debug("Result is an array - processing array..."); - - List result = composer.composeMany(jsonRpcResult, resultClass); - consumer.accept(endpointId, result); - } - public void dispatch(String endpointId, JsonRpcResponse response) { checkNotNull(endpointId, "Endpoint ID name must not be null"); checkArgument(!endpointId.isEmpty(), "Endpoint ID name must not be empty"); checkNotNull(response, "Response name must not be null"); - LOGGER.debug("Dispatching a response: " + response + ", from endpoint: " + endpointId); - String responseId = response.getId(); if (responseId == null) { - LOGGER.debug("Response ID is not defined, skipping..."); return; } - LOGGER.debug("Fetching response ID: " + responseId); - String key = combine(endpointId, responseId); - LOGGER.debug("Generating key: " + key); - - Class rClass = rClasses.remove(key); - LOGGER.debug("Fetching result class:" + rClass); + String key = generateKey(endpointId, responseId); if (response.hasResult()) { - processResult(endpointId, response, key, rClass); + dispatchResult(endpointId, response, key); } else if (response.hasError()) { - processError(endpointId, response, key); + dispatchError(endpointId, response, key); } else { LOGGER.error("Received incorrect response: no error, no result"); } } - private void processError(String endpointId, JsonRpcResponse response, String key) { - LOGGER.debug("Response has error. Proceeding..."); + public synchronized JsonRpcPromise registerPromiseForSingleObject(String endpointId, String requestId, Class rClass, + int timeoutInMillis) { + checkArguments(endpointId, requestId, rClass); - JsonRpcError error = response.getError(); - JsonRpcPromise jsonRpcPromise = cast(promises.remove(key)); - BiConsumer consumer = jsonRpcPromise.getFailureConsumer(); - if (consumer != null) { - LOGGER.debug("Failure consumer is found, accepting..."); - consumer.accept(endpointId, error); - } else { - LOGGER.debug("Reject function is not found, skipping"); + SingleTypedPromise promise = new SingleTypedPromise<>(rClass); + String key = generateKey(endpointId, requestId); + singleTypedPromises.put(key, promise); + if (timeoutInMillis > 0) { + timeoutActionRunner.schedule(timeoutInMillis, () -> runTimeoutConsumer(singleTypedPromises.remove(key))); } - } - - private void processResult(String endpointId, JsonRpcResponse response, String key, Class rClass) { - LOGGER.debug("Response has result. Proceeding..."); - - JsonRpcResult result = response.getResult(); - if (result.isSingle()) { - processOne(endpointId, result, rClass, cast(promises.remove(key).getSuccessConsumer())); - } else { - processMany(endpointId, result, rClass, cast(promises.remove(key).getSuccessConsumer())); - } - } - - public synchronized JsonRpcPromise registerPromiseOfOne(String endpointId, String requestId, Class rClass) { - return cast(registerInternal(endpointId, requestId, rClass, new JsonRpcPromise())); - } - - public synchronized JsonRpcPromise> registerPromiseOfMany(String endpointId, String requestId, Class rClass) { - return cast(registerInternal(endpointId, requestId, rClass, new JsonRpcPromise>())); - } - - private JsonRpcPromise registerInternal(String endpointId, String requestId, Class rClass, JsonRpcPromise promise) { - checkArguments(endpointId, requestId, rClass, promise); - - String key = combine(endpointId, requestId); - - promises.put(key, promise); - rClasses.put(key, rClass); - return promise; } + + public synchronized JsonRpcPromise> registerPromiseForListOfObjects(String endpointId, String requestId, Class rClass, + int timeoutInMillis) { + checkArguments(endpointId, requestId, rClass); + + ListTypedPromise promise = new ListTypedPromise<>(rClass); + String key = generateKey(endpointId, requestId); + listTypedPromises.put(key, promise); + if (timeoutInMillis > 0) { + timeoutActionRunner.schedule(timeoutInMillis, () -> runTimeoutConsumer(listTypedPromises.remove(key))); + } + return promise; + } + + private void runTimeoutConsumer(JsonRpcPromise promise) { + Optional.ofNullable(promise) + .flatMap(JsonRpcPromise::getTimeoutRunnable) + .ifPresent(Runnable::run); + } + + private void dispatchResult(String endpointId, JsonRpcResponse response, String key) { + Optional.ofNullable(listTypedPromises.remove(key)).ifPresent( + promise -> promise.getSuccessConsumer().ifPresent( + consumer -> promise.getType().ifPresent( + type -> consumer.accept(endpointId, composer.composeMany(response.getResult(), type))))); + + Optional.ofNullable(singleTypedPromises.remove(key)).ifPresent( + promise -> promise.getSuccessConsumer().ifPresent( + consumer -> promise.getType().ifPresent( + type -> consumer.accept(endpointId, composer.composeOne(response.getResult(), type))))); + } + + private void dispatchError(String endpointId, JsonRpcResponse response, String key) { + SingleTypedPromise singlePromise = singleTypedPromises.remove(key); + ListTypedPromise listPromise = listTypedPromises.remove(key); + JsonRpcPromise promise = singlePromise != null ? singlePromise : listPromise; + promise.getFailureConsumer().ifPresent(it -> it.accept(endpointId, response.getError())); + } + + private class ListTypedPromise extends JsonRpcPromise> { + private final Class type; + + private ListTypedPromise(Class type) { + this.type = type; + } + + private Optional> getType() { + return Optional.ofNullable(type); + } + } + + private class SingleTypedPromise extends JsonRpcPromise { + private final Class type; + + private SingleTypedPromise(Class type) { + this.type = type; + } + + public Optional> getType() { + return Optional.ofNullable(type); + } + } } diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/TimeoutActionRunner.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/TimeoutActionRunner.java new file mode 100644 index 0000000000..38087a921e --- /dev/null +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/TimeoutActionRunner.java @@ -0,0 +1,18 @@ +/******************************************************************************* + * Copyright (c) 2012-2017 Codenvy, S.A. + * 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: + * Codenvy, S.A. - initial API and implementation + *******************************************************************************/ +package org.eclipse.che.api.core.jsonrpc.commons; + +/** + * Executes operation on timeout + */ +public interface TimeoutActionRunner { + void schedule(int timeoutInMillis, Runnable runnable); +} diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromMany.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromMany.java index 82cc803961..c36555a170 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromMany.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromMany.java @@ -10,7 +10,6 @@ *******************************************************************************/ package org.eclipse.che.api.core.jsonrpc.commons.transmission; -import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcErrorTransmitter; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcMarshaller; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcParams; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcPromise; @@ -65,7 +64,11 @@ public class SendConfiguratorFromMany

{ transmitNotification(); } - public JsonRpcPromise sendAndReceiveResultAsDto(final Class rClass) { + public JsonRpcPromise sendAndReceiveResultAsDto(Class rClass) { + return sendAndReceiveResultAsDto(rClass, 0); + } + + public JsonRpcPromise sendAndReceiveResultAsDto(Class rClass, int timeoutInMillis) { checkNotNull(rClass, "Result class value must not be null"); final String requestId = transmitRequest(); @@ -78,10 +81,14 @@ public class SendConfiguratorFromMany

{ "params list value" + pListValue + ", " + "result object class: " + rClass); - return dispatcher.registerPromiseOfOne(endpointId, requestId, rClass); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, rClass, timeoutInMillis); } public JsonRpcPromise sendAndReceiveResultAsString() { + return sendAndReceiveResultAsString(0); + } + + public JsonRpcPromise sendAndReceiveResultAsString(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -92,10 +99,14 @@ public class SendConfiguratorFromMany

{ "params list value" + pListValue + ", " + "result object class: " + String.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, String.class); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, String.class, timeoutInMillis); } public JsonRpcPromise sendAndReceiveResultAsBoolean() { + return sendAndReceiveResultAsBoolean(0); + } + + public JsonRpcPromise sendAndReceiveResultAsBoolean(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -106,10 +117,14 @@ public class SendConfiguratorFromMany

{ "params list value" + pListValue + ", " + "result object class: " + Boolean.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Boolean.class); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Boolean.class, timeoutInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfDto(Class rClass) { + return sendAndReceiveResultAsListOfDto(rClass, 0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfDto(Class rClass, int timeoutInMillis) { checkNotNull(rClass, "Result class value must not be null"); final String requestId = transmitRequest(); @@ -122,11 +137,14 @@ public class SendConfiguratorFromMany

{ "params list value" + pListValue + ", " + "result list items class: " + rClass); - return dispatcher.registerPromiseOfMany(endpointId, requestId, rClass); - + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, rClass, timeoutInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfString() { + return sendAndReceiveResultAsListOfString(0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfString(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -137,10 +155,14 @@ public class SendConfiguratorFromMany

{ "params list value" + pListValue + ", " + "result list items class: " + String.class); - return dispatcher.registerPromiseOfMany(endpointId, requestId, String.class); + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, String.class, timeoutInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfBoolean() { + return sendAndReceiveResultAsListOfBoolean(0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfBoolean(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -151,10 +173,14 @@ public class SendConfiguratorFromMany

{ "params list value" + pListValue + ", " + "result list items class: " + Boolean.class); - return dispatcher.registerPromiseOfMany(endpointId, requestId, Boolean.class); + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, Boolean.class, timeoutInMillis); } public JsonRpcPromise sendAndReceiveResultAsEmpty() { + return sendAndReceiveResultAsEmpty(0); + } + + public JsonRpcPromise sendAndReceiveResultAsEmpty(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -165,7 +191,7 @@ public class SendConfiguratorFromMany

{ "params list value" + pListValue + ", " + "result object class: " + Void.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Void.class); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Void.class, timeoutInMillis); } private void transmitNotification() { diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromNone.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromNone.java index 61443e0019..b3e28f3671 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromNone.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromNone.java @@ -10,7 +10,6 @@ *******************************************************************************/ package org.eclipse.che.api.core.jsonrpc.commons.transmission; -import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcErrorTransmitter; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcMarshaller; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcPromise; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcRequest; @@ -58,6 +57,10 @@ public class SendConfiguratorFromNone { } public JsonRpcPromise sendAndReceiveResultAsDto(final Class rClass) { + return sendAndReceiveResultAsDto(rClass, 0); + } + + public JsonRpcPromise sendAndReceiveResultAsDto(final Class rClass, int timeInMillis) { checkNotNull(rClass, "Result class value must not be null"); final String requestId = transmitRequest(); @@ -68,11 +71,14 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result object class: " + rClass); - return dispatcher.registerPromiseOfOne(endpointId, requestId, rClass); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, rClass, timeInMillis); } - public JsonRpcPromise sendAndReceiveResultAsString() { + return sendAndReceiveResultAsString(0); + } + + public JsonRpcPromise sendAndReceiveResultAsString(int timeInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -81,11 +87,14 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result object class: " + String.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, String.class); - + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, String.class, timeInMillis); } public JsonRpcPromise sendAndReceiveResultAsDouble() { + return sendAndReceiveResultAsDouble(0); + } + + public JsonRpcPromise sendAndReceiveResultAsDouble(int timeInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -94,11 +103,14 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result object class: " + Double.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Double.class); - + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Double.class, timeInMillis); } public JsonRpcPromise sendAndReceiveResultAsBoolean() { + return sendAndReceiveResultAsBoolean(0); + } + + public JsonRpcPromise sendAndReceiveResultAsBoolean(int timeInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -107,10 +119,14 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result object class: " + Boolean.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Boolean.class); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Boolean.class, timeInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfDto(final Class rClass) { + return sendAndReceiveResultAsListOfDto(rClass, 0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfDto(final Class rClass, int timeInMillis) { checkNotNull(rClass, "Result class value must not be null"); final String requestId = transmitRequest(); @@ -121,11 +137,14 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result list items class: " + rClass); - return dispatcher.registerPromiseOfMany(endpointId, requestId, rClass); - + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, rClass, timeInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfString() { + return sendAndReceiveResultAsListOfString(0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfString(int timeInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -134,10 +153,14 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result list items class: " + String.class); - return dispatcher.registerPromiseOfMany(endpointId, requestId, String.class); + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, String.class, timeInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfBoolean() { + return sendAndReceiveResultAsListOfBoolean(0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfBoolean(int timeInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -146,10 +169,14 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result list items class: " + Boolean.class); - return dispatcher.registerPromiseOfMany(endpointId, requestId, Boolean.class); + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, Boolean.class, timeInMillis); } public JsonRpcPromise sendAndReceiveResultAsEmpty() { + return sendAndReceiveResultAsEmpty(0); + } + + public JsonRpcPromise sendAndReceiveResultAsEmpty(int timeInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -158,7 +185,7 @@ public class SendConfiguratorFromNone { "method: " + method + ", " + "result list items class: " + Void.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Void.class); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Void.class, timeInMillis); } private void transmitNotification() { diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromOne.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromOne.java index 50e2298aee..75f79dced6 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromOne.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/transmission/SendConfiguratorFromOne.java @@ -10,7 +10,6 @@ *******************************************************************************/ package org.eclipse.che.api.core.jsonrpc.commons.transmission; -import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcErrorTransmitter; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcMarshaller; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcParams; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcPromise; @@ -66,6 +65,10 @@ public class SendConfiguratorFromOne

{ } public JsonRpcPromise sendAndReceiveResultAsDto(final Class rClass) { + return sendAndReceiveResultAsDto(rClass, 0); + } + + public JsonRpcPromise sendAndReceiveResultAsDto(final Class rClass, int timeoutInMillis) { checkNotNull(rClass, "Result class value must not be null"); final String requestId = transmitRequest(); @@ -78,11 +81,14 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result object class: " + rClass); - return dispatcher.registerPromiseOfOne(endpointId, requestId, rClass); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, rClass, timeoutInMillis); } - public JsonRpcPromise sendAndReceiveResultAsString() { + return sendAndReceiveResultAsString(0); + } + + public JsonRpcPromise sendAndReceiveResultAsString(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -93,11 +99,14 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result object class: " + String.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, String.class); - + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, String.class, timeoutInMillis); } public JsonRpcPromise sendAndReceiveResultAsDouble() { + return sendAndReceiveResultAsDouble(0); + } + + public JsonRpcPromise sendAndReceiveResultAsDouble(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -108,11 +117,14 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result object class: " + Double.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Double.class); - + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Double.class, timeoutInMillis); } public JsonRpcPromise sendAndReceiveResultAsBoolean() { + return sendAndReceiveResultAsBoolean(0); + } + + public JsonRpcPromise sendAndReceiveResultAsBoolean(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -123,10 +135,14 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result object class: " + Boolean.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Boolean.class); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Boolean.class, timeoutInMillis); } - public JsonRpcPromise> sendAndReceiveResultAsListOfDto(final Class rClass) { + public JsonRpcPromise> sendAndReceiveResultAsListOfDto(Class rClass) { + return sendAndReceiveResultAsListOfDto(rClass, 0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfDto(Class rClass, int timeoutInMillis) { checkNotNull(rClass, "Result class value must not be null"); final String requestId = transmitRequest(); @@ -139,11 +155,14 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result list items class: " + rClass); - return dispatcher.registerPromiseOfMany(endpointId, requestId, rClass); - + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, rClass, timeoutInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfString() { + return sendAndReceiveResultAsListOfString(0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfString(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -154,10 +173,14 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result list items class: " + String.class); - return dispatcher.registerPromiseOfMany(endpointId, requestId, String.class); + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, String.class, timeoutInMillis); } public JsonRpcPromise> sendAndReceiveResultAsListOfBoolean() { + return sendAndReceiveResultAsListOfBoolean(0); + } + + public JsonRpcPromise> sendAndReceiveResultAsListOfBoolean(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -168,10 +191,14 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result list items class: " + Boolean.class); - return dispatcher.registerPromiseOfMany(endpointId, requestId, Boolean.class); + return dispatcher.registerPromiseForListOfObjects(endpointId, requestId, Boolean.class, timeoutInMillis); } public JsonRpcPromise sendAndReceiveResultAsEmpty() { + return sendAndReceiveResultAsEmpty(0); + } + + public JsonRpcPromise sendAndReceiveResultAsEmpty(int timeoutInMillis) { final String requestId = transmitRequest(); LOGGER.debug("Transmitting request: " + @@ -182,7 +209,7 @@ public class SendConfiguratorFromOne

{ "params list value" + pValue + ", " + "result list items class: " + Void.class); - return dispatcher.registerPromiseOfOne(endpointId, requestId, Void.class); + return dispatcher.registerPromiseForSingleObject(endpointId, requestId, Void.class, timeoutInMillis); } private void transmitNotification() { diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/JsonRpcModule.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/JsonRpcModule.java index 02959d85f6..9e382f68b6 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/JsonRpcModule.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/JsonRpcModule.java @@ -22,6 +22,7 @@ import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcMarshaller; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcQualifier; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcUnmarshaller; import org.eclipse.che.api.core.jsonrpc.commons.RequestHandlerConfigurator; +import org.eclipse.che.api.core.jsonrpc.commons.TimeoutActionRunner; import javax.inject.Singleton; @@ -37,6 +38,7 @@ public class JsonRpcModule extends AbstractModule { bind(JsonRpcComposer.class).to(GsonJsonRpcComposer.class); bind(RequestProcessor.class).to(ServerSideRequestProcessor.class); + bind(TimeoutActionRunner.class).to(ServerSideTimeoutActionRunner.class); } @Provides diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/ServerSideTimeoutActionRunner.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/ServerSideTimeoutActionRunner.java new file mode 100644 index 0000000000..5a048e93e0 --- /dev/null +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/ServerSideTimeoutActionRunner.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2012-2017 Codenvy, S.A. + * 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: + * Codenvy, S.A. - initial API and implementation + *******************************************************************************/ +package org.eclipse.che.api.core.jsonrpc.impl; + +import com.google.inject.Singleton; + +import org.eclipse.che.api.core.jsonrpc.commons.TimeoutActionRunner; + +import java.util.Timer; +import java.util.TimerTask; + +@Singleton +public class ServerSideTimeoutActionRunner implements TimeoutActionRunner { + + @Override + public void schedule(int timeoutInMillis, Runnable runnable) { + new Timer().schedule(new TimerTask() { + @Override + public void run() { + runnable.run(); + } + }, timeoutInMillis); + } +} diff --git a/core/che-core-api-dto-maven-plugin/pom.xml b/core/che-core-api-dto-maven-plugin/pom.xml index 5cab41ed1e..7c1830dc51 100644 --- a/core/che-core-api-dto-maven-plugin/pom.xml +++ b/core/che-core-api-dto-maven-plugin/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-dto-maven-plugin maven-plugin diff --git a/core/che-core-api-dto/pom.xml b/core/che-core-api-dto/pom.xml index 6b928b3b52..496afbd05e 100644 --- a/core/che-core-api-dto/pom.xml +++ b/core/che-core-api-dto/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-dto jar diff --git a/core/che-core-api-model/pom.xml b/core/che-core-api-model/pom.xml index ca9324e269..30fc56d231 100644 --- a/core/che-core-api-model/pom.xml +++ b/core/che-core-api-model/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-model jar diff --git a/core/che-core-db-vendor-h2/pom.xml b/core/che-core-db-vendor-h2/pom.xml index 96e1e7bf6a..08ab1ca15c 100644 --- a/core/che-core-db-vendor-h2/pom.xml +++ b/core/che-core-db-vendor-h2/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-db-vendor-h2 Che Core :: DB :: Vendor H2 diff --git a/core/che-core-db-vendor-postgresql/pom.xml b/core/che-core-db-vendor-postgresql/pom.xml index f158fcc4a0..39256efd9a 100644 --- a/core/che-core-db-vendor-postgresql/pom.xml +++ b/core/che-core-db-vendor-postgresql/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-db-vendor-postgresql Che Core :: DB :: Vendor PostgreSQL diff --git a/core/che-core-db/pom.xml b/core/che-core-db/pom.xml index 996358227f..6ac255ff53 100644 --- a/core/che-core-db/pom.xml +++ b/core/che-core-db/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-db Che Core :: DB diff --git a/core/che-core-typescript-dto-maven-plugin/pom.xml b/core/che-core-typescript-dto-maven-plugin/pom.xml index 7532fd7510..1a8763e849 100644 --- a/core/che-core-typescript-dto-maven-plugin/pom.xml +++ b/core/che-core-typescript-dto-maven-plugin/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-typescript-dto-maven-plugin diff --git a/core/commons/che-core-commons-annotations/pom.xml b/core/commons/che-core-commons-annotations/pom.xml index 3f2b278687..c6e423df1d 100644 --- a/core/commons/che-core-commons-annotations/pom.xml +++ b/core/commons/che-core-commons-annotations/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-annotations jar diff --git a/core/commons/che-core-commons-inject/pom.xml b/core/commons/che-core-commons-inject/pom.xml index 06ab5d299b..ed9cc5a3d4 100644 --- a/core/commons/che-core-commons-inject/pom.xml +++ b/core/commons/che-core-commons-inject/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-inject jar diff --git a/core/commons/che-core-commons-j2ee/pom.xml b/core/commons/che-core-commons-j2ee/pom.xml index 478188fca0..c6296b0a58 100644 --- a/core/commons/che-core-commons-j2ee/pom.xml +++ b/core/commons/che-core-commons-j2ee/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-j2ee jar diff --git a/core/commons/che-core-commons-json/pom.xml b/core/commons/che-core-commons-json/pom.xml index 200fe468ba..cfe7da0c08 100644 --- a/core/commons/che-core-commons-json/pom.xml +++ b/core/commons/che-core-commons-json/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-json jar diff --git a/core/commons/che-core-commons-lang/pom.xml b/core/commons/che-core-commons-lang/pom.xml index 1e766df194..8580a89d37 100644 --- a/core/commons/che-core-commons-lang/pom.xml +++ b/core/commons/che-core-commons-lang/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-lang jar diff --git a/core/commons/che-core-commons-schedule/pom.xml b/core/commons/che-core-commons-schedule/pom.xml index bf47ea96c9..21e0559afc 100644 --- a/core/commons/che-core-commons-schedule/pom.xml +++ b/core/commons/che-core-commons-schedule/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-schedule jar diff --git a/core/commons/che-core-commons-test/pom.xml b/core/commons/che-core-commons-test/pom.xml index 8eba4c7810..bcbe26ff67 100644 --- a/core/commons/che-core-commons-test/pom.xml +++ b/core/commons/che-core-commons-test/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-test jar diff --git a/core/commons/che-core-commons-xml/pom.xml b/core/commons/che-core-commons-xml/pom.xml index aef7f07812..926ea9baff 100644 --- a/core/commons/che-core-commons-xml/pom.xml +++ b/core/commons/che-core-commons-xml/pom.xml @@ -16,7 +16,7 @@ che-core-commons-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-xml jar diff --git a/core/commons/pom.xml b/core/commons/pom.xml index 95fb74cc72..7b2fe1b595 100644 --- a/core/commons/pom.xml +++ b/core/commons/pom.xml @@ -16,7 +16,7 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-core-commons-parent diff --git a/core/pom.xml b/core/pom.xml index 02b3cb6a8c..2105609f60 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -16,12 +16,12 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml org.eclipse.che.core che-core-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Core Parent diff --git a/dashboard/pom.xml b/dashboard/pom.xml index 329e0a85ad..5f689b6524 100644 --- a/dashboard/pom.xml +++ b/dashboard/pom.xml @@ -16,12 +16,12 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml org.eclipse.che.dashboard che-dashboard-war - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT war Che Dashboard :: Web App 2015 diff --git a/dashboard/src/app/projects/create-project/create-project.controller.ts b/dashboard/src/app/projects/create-project/create-project.controller.ts index 86601c3eb8..579789ddff 100755 --- a/dashboard/src/app/projects/create-project/create-project.controller.ts +++ b/dashboard/src/app/projects/create-project/create-project.controller.ts @@ -78,6 +78,7 @@ export class CreateProjectController { private stackId: string; private stacks: Array; + private recipeContentCopy: string; /** * Default constructor that is using resource @@ -1083,7 +1084,9 @@ export class CreateProjectController { return; } this.workspaceConfig = config; - this.updateCurrentStack(stackId); + if (stackId !== this.stackId) { + this.updateCurrentStack(stackId); + } } /** @@ -1268,7 +1271,9 @@ export class CreateProjectController { getStackMachines(environment: any): any { let recipeType = environment.recipe.type; let environmentManager = this.cheEnvironmentRegistry.getEnvironmentManager(recipeType); - + if (this.recipeContentCopy && angular.equals(this.recipeContentCopy, environment.recipe.content)) { + return this.stackMachines[this.stackId]; + } if (!this.stackMachines[this.stackId] || !this.stackMachines[this.stackId].length) { let machines = environmentManager.getMachines(environment); machines.forEach((machine: IEnvironmentManagerMachine) => { @@ -1277,6 +1282,7 @@ export class CreateProjectController { environmentManager.setMemoryLimit(machine, this.workspaceRam); } }); + this.recipeContentCopy = angular.copy(environment.recipe.content); this.stackMachines[this.stackId] = machines; } diff --git a/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.controller.ts b/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.controller.ts index ea11419660..e1cea384a4 100644 --- a/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.controller.ts +++ b/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.controller.ts @@ -131,8 +131,12 @@ export class WorkspaceRecipeAuthoringController { } } + /** + * Returns validation state of the recipe. + * @returns {boolean} + */ isRecipeValid(): boolean { - return this.recipeValidationError.length === 0; + return angular.isUndefined(this.recipeValidationError) || this.recipeValidationError.length === 0; } onRecipeChange(): void { diff --git a/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.html b/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.html index 6eee42e0da..355b11e596 100644 --- a/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.html +++ b/dashboard/src/app/workspaces/workspace-details/select-stack/recipe-authoring/workspace-recipe-authoring.html @@ -14,6 +14,8 @@ ng-required> + +

The recipe is required.
{{workspaceRecipeAuthoringController.recipeValidationError}}
diff --git a/dashboard/src/components/widget/editor/che-editor.controller.ts b/dashboard/src/components/widget/editor/che-editor.controller.ts index cb5579d7d5..269649a963 100644 --- a/dashboard/src/components/widget/editor/che-editor.controller.ts +++ b/dashboard/src/components/widget/editor/che-editor.controller.ts @@ -91,4 +91,11 @@ export class CheEditorController { }; } + /** + * Returns validation state of the editor content. + * @returns {boolean} + */ + isEditorValid(): boolean { + return this.editorState && this.editorState.isValid; + } } diff --git a/dashboard/src/components/widget/editor/che-editor.html b/dashboard/src/components/widget/editor/che-editor.html index 5d2873b351..99904cf066 100644 --- a/dashboard/src/components/widget/editor/che-editor.html +++ b/dashboard/src/components/widget/editor/che-editor.html @@ -5,7 +5,7 @@ ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 500, 'blur': 0 }, allowInvalid: true }" ng-model="cheEditorController.editorContent" name="editor" - custom-validator="!!cheEditorController.editorState.isValid" + custom-validator="cheEditorController.isEditorValid()" required>
Editor's content is required.
diff --git a/dockerfiles/cli/.gitignore b/dockerfiles/cli/.gitignore index 2826715054..acbea2f64c 100644 --- a/dockerfiles/cli/.gitignore +++ b/dockerfiles/cli/.gitignore @@ -1 +1,2 @@ version/nightly/images +tests/testrun/* diff --git a/dockerfiles/cli/test.sh b/dockerfiles/cli/test.sh index 6e8482393e..564ed109c4 100755 --- a/dockerfiles/cli/test.sh +++ b/dockerfiles/cli/test.sh @@ -37,11 +37,18 @@ run_test_in_docker_container() { $IMAGE_NAME bats ${BATS_OPTIONS} /dockerfiles/cli/tests/$1 } - echo "Running tests in container from image $IMAGE_NAME" echo "Running functional bats tests for CLI prompts and usage" -#run_test_in_docker_container cli_prompts_usage_tests.bats +run_test_in_docker_container cli_prompts_usage_tests.bats +echo "Running functionals bats tests for config command" +run_test_in_docker_container cmd_config_tests.bats +echo "Running functionals bats tests for info command" +run_test_in_docker_container cmd_info_tests.bats echo "Running functional bats tests for init and destroy commands" -#run_test_in_docker_container cmd_init_destroy_tests.bats -echo "Running functionals bats tests for start command" -run_test_in_docker_container cmd_start_tests.bats --net=host +run_test_in_docker_container cmd_init_destroy_tests.bats +echo "Running functionals bats tests for start, stop, restart command" +run_test_in_docker_container cmd_start_stop_restart_tests.bats --net=host +echo "Running functionals bats tests for backup / restore commands" +run_test_in_docker_container cmd_backup_restore_tests.bats +echo "Running functionals bats tests for offline command" +run_test_in_docker_container cmd_offline_tests.bats diff --git a/dockerfiles/cli/tests/cli_prompts_usage_tests.bats b/dockerfiles/cli/tests/cli_prompts_usage_tests.bats index 3ed2871a57..fb6d2df762 100644 --- a/dockerfiles/cli/tests/cli_prompts_usage_tests.bats +++ b/dockerfiles/cli/tests/cli_prompts_usage_tests.bats @@ -17,12 +17,11 @@ source /dockerfiles/cli/tests/test_base.sh prompt_substring="-v /var/run/docker.sock:/var/run/docker.sock" #WHEN - run docker run --rm $CLI_IMAGE start + run execute_cli_command --che-cli-mount-scripts=false --che-cli-use-docker-sock=false --che-cli-command=start #THEN assert_failure assert_output --partial ${prompt_substring} - } @test "test CLI prompt to provide directory for user data" { @@ -30,7 +29,7 @@ source /dockerfiles/cli/tests/test_base.sh prompt_substring="-v :/data" #WHEN - run docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock $CLI_IMAGE start + run execute_cli_command --che-cli-command=start #THEN assert_failure @@ -42,10 +41,8 @@ source /dockerfiles/cli/tests/test_base.sh expected_output="USAGE:" #WHEN - result=$(docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock $CLI_IMAGE || true) + result=$(execute_cli_command || true) #THEN [[ $result == *${expected_output}* ]] } - - diff --git a/dockerfiles/cli/tests/cmd_backup_restore_tests.bats b/dockerfiles/cli/tests/cmd_backup_restore_tests.bats new file mode 100644 index 0000000000..ef812b4d05 --- /dev/null +++ b/dockerfiles/cli/tests/cmd_backup_restore_tests.bats @@ -0,0 +1,127 @@ +#!/usr/bin/env bats +# Copyright (c) 2017 Codenvy, S.A. +# 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: +# Roman Iuvshyn + +source /dockerfiles/cli/tests/test_base.sh + +# Kill running che server instance if there is any to be able to run tests +setup() { + kill_running_named_container che + remove_named_container che +} + +teardown() { + kill_running_named_container che + remove_named_container che +} + +@test "test cli 'backup' command: backup fail if che is running" { + #GIVEN + if [ ! port_is_free 8080 ]; then + [ "$status" -eq 1 ] + [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] + fi + tmp_path="${TESTRUN_DIR}"/cli_cmd_backup_fail_if_che_is_running + mkdir -p "${tmp_path}" + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + check_che_state + #WHEN + result=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=backup --che-cli-extra-options="--skip:nightly --skip:pull" || true) + + #THEN + [[ $result == *"che is running. Stop before performing a backup."* ]] +} + +@test "test cli 'restore' command: restore fail if che is running" { + #GIVEN + if [ ! port_is_free 8080 ]; then + [ "$status" -eq 1 ] + [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] + fi + tmp_path="${TESTRUN_DIR}"/cli_cmd_restore_fail_if_che_is_running + mkdir -p "${tmp_path}" + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + check_che_state + #WHEN + result=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=restore --che-cli-extra-options="--quiet --skip:nightly --skip:pull") + + #THEN + [[ $result == *"Eclipse Che is running. Stop before performing a restore."* ]] +} + +@test "test cli 'restore' command: restore fail if no backup found" { + #GIVEN + if [ ! port_is_free 8080 ]; then + [ "$status" -eq 1 ] + [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] + fi + tmp_path="${TESTRUN_DIR}"/cli_cmd_restore_fail_if_no_backup_found + mkdir -p "${tmp_path}" + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + check_che_state + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=stop --che-cli-extra-options="--skip:nightly --skip:pull" + + #WHEN + result=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=restore --che-cli-extra-options="--quiet --skip:nightly --skip:pull") + + #THEN + [[ $result == *"Backup files not found. To do restore please do backup first."* ]] +} + +@test "test cli 'backup / restore' commands" { + # TEST BACKUP + #GIVEN + if [ ! port_is_free 8080 ]; then + [ "$status" -eq 1 ] + [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] + fi + tmp_path="${TESTRUN_DIR}"/cli_cmd_backup_do_backup_restore + container_tmp_path="${CONTAINER_TESTRUN_DIR}"/cli_cmd_backup_do_backup_restore + workspace_name="backup-restore" + mkdir -p "${tmp_path}" + #start che + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + check_che_state + #create a workspace + + ws_create=$(curl 'http://'${ip_address}':8080/api/workspace?namespace=che&attribute=stackId:java-default' -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept: application/json, text/plain, */*' --data-binary '{"defaultEnv":"wksp-1p0b","environments":{"wksp-1p0b":{"recipe":{"location":"eclipse/ubuntu_jdk8","type":"dockerimage"},"machines":{"dev-machine":{"servers":{},"agents":["org.eclipse.che.exec","org.eclipse.che.terminal","org.eclipse.che.ws-agent","org.eclipse.che.ssh"],"attributes":{"memoryLimitBytes":"2147483648"}}}}},"projects":[],"commands":[{"commandLine":"mvn clean install -f ${current.project.path}","name":"build","type":"mvn","attributes":{"goal":"Build","previewUrl":""}}],"name":"backup-restore","links":[]}' --compressed) + [[ "$ws_create" == *"created"* ]] + [[ "$ws_create" == *"STOPPED"* ]] + #stop che + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=stop --che-cli-extra-options="--skip:nightly --skip:pull" + + #WHEN + backup=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=backup --che-cli-extra-options="--skip:nightly --skip:pull") + + #THEN + [[ "$backup" == *"Saving codenvy data..."* ]] + [[ "$backup" == *"che data saved in ${tmp_path}/backup/che_backup.tar.gz"* ]] + [[ -f "${container_tmp_path}"/backup/che_backup.tar.gz ]] + + # TEST RESTORE + #GIVEN + #destroy to wipe data + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=destroy --che-cli-extra-options="--quiet --skip:nightly --skip:pull" + [[ ! -d "${container_tmp_path}"/instance ]] + #WHEN + #perform restore from backup + restore=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=restore --che-cli-extra-options="--quiet --skip:nightly --skip:pull") + + #THEN + [[ "$restore" == *"Recovering Eclipse Che data..."* ]] + [[ -d "${container_tmp_path}"/instance ]] + [[ -d "${container_tmp_path}"/instance/data ]] + + #WHEN + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + check_che_state + + #THEN + [[ "$(curl -fsS http://${ip_address}:8080/api/workspace)" == *"$workspace_name"* ]] +} diff --git a/dockerfiles/cli/tests/cmd_config_tests.bats b/dockerfiles/cli/tests/cmd_config_tests.bats new file mode 100644 index 0000000000..b462bc8129 --- /dev/null +++ b/dockerfiles/cli/tests/cmd_config_tests.bats @@ -0,0 +1,36 @@ +#!/usr/bin/env bats +# Copyright (c) 2017 Codenvy, S.A. +# 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: +# Roman Iuvshyn + +load '/bats-support/load.bash' +load '/bats-assert/load.bash' +source /dockerfiles/cli/tests/test_base.sh + +@test "test CLI 'config' command" { + #GIVEN + tmp_path="${TESTRUN_DIR}"/cli_cmd_config + container_tmp_path="${CONTAINER_TESTRUN_DIR}"/cli_cmd_config + + #WHEN + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=config --che-cli-extra-options="--skip:nightly --skip:pull" + + #THEN + [[ -d "${container_tmp_path}"/docs ]] + [[ -e "${container_tmp_path}"/che.env ]] + [[ -e "${container_tmp_path}"/cli.log ]] + [[ -d "${container_tmp_path}"/instance ]] + [[ -d "${container_tmp_path}"/instance/config ]] + [[ -f "${container_tmp_path}"/instance/config/che.env ]] + [[ -d "${container_tmp_path}"/instance/data ]] + [[ -d "${container_tmp_path}"/instance/logs ]] + [[ -d "${container_tmp_path}"/instance/stacks ]] + [[ -d "${container_tmp_path}"/instance/templates ]] + [[ -f "${container_tmp_path}"/instance/docker-compose-container.yml ]] + [[ -f "${container_tmp_path}"/instance/che.ver.do_not_modify ]] +} diff --git a/dockerfiles/cli/tests/cmd_info_tests.bats b/dockerfiles/cli/tests/cmd_info_tests.bats new file mode 100644 index 0000000000..b7146019f9 --- /dev/null +++ b/dockerfiles/cli/tests/cmd_info_tests.bats @@ -0,0 +1,33 @@ +#!/usr/bin/env bats +# Copyright (c) 2017 Codenvy, S.A. +# 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: +# Roman Iuvshyn + +load '/bats-support/load.bash' +load '/bats-assert/load.bash' +source /dockerfiles/cli/tests/test_base.sh + +@test "test CLI 'info' command" { + #GIVEN + tmp_path="${TESTRUN_DIR}"/cli_cmd_info + expected_output_1="CLI:" + expected_output_2="Mounts:" + expected_output_3="System:" + expected_output_4="Internal:" + expected_output_5="Image Registry:" + + #WHEN + result=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=info --che-cli-extra-options="--skip:nightly --skip:pull") + + #THEN + [[ $result == *${expected_output_1}* ]] + [[ $result == *${expected_output_2}* ]] + [[ $result == *${expected_output_3}* ]] + [[ $result == *${expected_output_4}* ]] + [[ $result == *${expected_output_5}* ]] +} diff --git a/dockerfiles/cli/tests/cmd_init_destroy_tests.bats b/dockerfiles/cli/tests/cmd_init_destroy_tests.bats index a993bd0865..c45bad6bbc 100644 --- a/dockerfiles/cli/tests/cmd_init_destroy_tests.bats +++ b/dockerfiles/cli/tests/cmd_init_destroy_tests.bats @@ -18,7 +18,7 @@ source /dockerfiles/cli/tests/test_base.sh mkdir -p "${tmp_path}" #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE init --skip:nightly --skip:pull + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=init --che-cli-extra-options="--skip:nightly --skip:pull" #THEN [[ -d "${container_tmp_path}"/docs ]] @@ -27,8 +27,8 @@ source /dockerfiles/cli/tests/test_base.sh [[ -e "${container_tmp_path}"/cli.log ]] #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE destroy --quiet --skip:nightly --skip:pull - + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=destroy --che-cli-extra-options="--quiet --skip:nightly --skip:pull" + #THEN [[ ! -d "${container_tmp_path}"/docs ]] [[ ! -d "${container_tmp_path}"/instance ]] @@ -43,8 +43,8 @@ source /dockerfiles/cli/tests/test_base.sh tmp_path="${TESTRUN_DIR}"/init-destroy2 container_tmp_path="${CONTAINER_TESTRUN_DIR}"/init-destroy2 - #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE init --skip:nightly --skip:pull 1>/dev/null + #WHEN + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=init --che-cli-extra-options="--skip:nightly --skip:pull 1>/dev/null" #THEN [[ -e "${container_tmp_path}" ]] @@ -54,7 +54,7 @@ source /dockerfiles/cli/tests/test_base.sh [[ -e "${container_tmp_path}"/cli.log ]] #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE destroy --skip:nightly --skip:pull --quiet 1>/dev/null + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=destroy --che-cli-extra-options="--quiet --skip:nightly --skip:pull 1>/dev/null" #THEN [[ ! -d "${container_tmp_path}"/docs ]] @@ -73,7 +73,7 @@ source /dockerfiles/cli/tests/test_base.sh mkdir -p "${tmp_path}" #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE init --skip:nightly --skip:pull 1>/dev/null + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=init --che-cli-extra-options="--skip:nightly --skip:pull 1>/dev/null" remove_named_container $CLI_CONTAINER #THEN @@ -83,7 +83,7 @@ source /dockerfiles/cli/tests/test_base.sh [[ -e "${container_tmp_path}"/cli.log ]] #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE destroy --skip:nightly --skip:pull --quiet --cli 1>/dev/null + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=destroy --che-cli-extra-options="--quiet --skip:nightly --skip:pull --cli 1>/dev/null" #THEN [[ ! -d "${container_tmp_path}"/docs ]] @@ -101,7 +101,7 @@ source /dockerfiles/cli/tests/test_base.sh container_tmp_path="${CONTAINER_TESTRUN_DIR}"/init-destroy4 #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE init --skip:nightly --skip:pull 1>/dev/null + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=init --che-cli-extra-options="--skip:nightly --skip:pull 1>/dev/null" #THEN [[ -d "${container_tmp_path}" ]] @@ -111,14 +111,12 @@ source /dockerfiles/cli/tests/test_base.sh [[ -e "${container_tmp_path}"/cli.log ]] #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data $CLI_IMAGE destroy --skip:nightly --skip:pull --quiet --cli 1>/dev/null - + execute_cli_command --che-data-path=${tmp_path} --che-cli-command=destroy --che-cli-extra-options="--skip:nightly --skip:pull --quiet --cli 1>/dev/null" + #THEN [[ ! -d "${container_tmp_path}"/docs ]] [[ ! -d "${container_tmp_path}"/instance ]] [[ ! -e "${container_tmp_path}"/che.env ]] [[ ! -e "${container_tmp_path}"/cli.log ]] rm -rf "${container_tmp_path}" - } - diff --git a/dockerfiles/cli/tests/cmd_offline_tests.bats b/dockerfiles/cli/tests/cmd_offline_tests.bats new file mode 100644 index 0000000000..1d1ae43379 --- /dev/null +++ b/dockerfiles/cli/tests/cmd_offline_tests.bats @@ -0,0 +1,71 @@ +#!/usr/bin/env bats +# Copyright (c) 2017 Codenvy, S.A. +# 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: +# Roman Iuvshyn + +source /dockerfiles/cli/tests/test_base.sh + +@test "test cli 'offline' command: with default parameters" { + #GIVEN + tmp_path="${TESTRUN_DIR}"/cli_cmd_offline_with_default_parameters + container_tmp_path="${CONTAINER_TESTRUN_DIR}"/cli_cmd_offline_with_default_parameters + mkdir -p "${tmp_path}" + + #WHEN + result=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=offline --che-cli-extra-options="--skip:nightly --skip:pull") + + #THEN + [[ $result == *"Saving che cli image..."* ]] + [[ $result == *"Saving che bootstrap images..."* ]] + [[ $result == *"Saving che system images..."* ]] + [[ $result == *"Saving utility images..."* ]] + [[ $result == *"Saving che stack images..."* ]] + + [[ -f $(ls "${container_tmp_path}"/backup/alpine*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/docker_compose*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-action*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-cli*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-dir*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-init*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-ip*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-mount*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-server*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-test*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/traefik*.tar) ]] +} + +@test "test cli 'offline' command: include custom stack images" { + #GIVEN + tmp_path="${TESTRUN_DIR}"/cli_cmd_offline_with_custom_stack_images + container_tmp_path="${CONTAINER_TESTRUN_DIR}"/cli_cmd_offline_with_custom_stack_images + mkdir -p "${tmp_path}" + + #WHEN + result=$(execute_cli_command --che-data-path=${tmp_path} --che-cli-command=offline --che-cli-extra-options="--image:eclipse/alpine_jdk8 --image:eclipse/debian_jre --skip:nightly --skip:pull") + + #THEN + [[ $result == *"Saving che cli image..."* ]] + [[ $result == *"Saving che bootstrap images..."* ]] + [[ $result == *"Saving che system images..."* ]] + [[ $result == *"Saving utility images..."* ]] + [[ $result == *"Saving che stack images..."* ]] + + [[ -f $(ls "${container_tmp_path}"/backup/alpine*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/docker_compose*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-action*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-cli*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-dir*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-init*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-ip*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-mount*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-server*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/eclipse_che-test*.tar) ]] + [[ -f $(ls "${container_tmp_path}"/backup/traefik*.tar) ]] + [[ -f "${container_tmp_path}"/backup/eclipse_alpine_jdk8.tar ]] + [[ -f "${container_tmp_path}"/backup/eclipse_debian_jre.tar ]] +} diff --git a/dockerfiles/cli/tests/cmd_start_stop_restart_tests.bats b/dockerfiles/cli/tests/cmd_start_stop_restart_tests.bats new file mode 100644 index 0000000000..4e0e22b226 --- /dev/null +++ b/dockerfiles/cli/tests/cmd_start_stop_restart_tests.bats @@ -0,0 +1,88 @@ +#!/usr/bin/env bats +# Copyright (c) 2012-2017 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: +# Marian Labuda - Initial Implementation +# Roman Iuvshyn + +source /dockerfiles/cli/tests/test_base.sh + +# Kill running che server instance if there is any to be able to run tests +setup() { + kill_running_named_container chetest + remove_named_container chetest +} + +teardown() { + kill_running_named_container chetest + remove_named_container chetest +} + +@test "test cli 'start' command with default settings" { + #GIVEN + if [ ! port_is_free 8080 ]; then + [ "$status" -eq 1 ] + [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] + fi + tmp_path="${TESTRUN_DIR}"/cli_cmd_start_with_default_params + mkdir -p "${tmp_path}" + + #WHEN + execute_cli_command --che-data-path=${tmp_path} --che-container-name=chetest --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + + #THEN + check_che_state --che-container-name="chetest" +} + +@test "test cli 'stop' command with default settings" { + #GIVEN + if [ ! port_is_free 8080 ]; then + [ "$status" -eq 1 ] + [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] + fi + tmp_path="${TESTRUN_DIR}"/cli_cmd_stop_with_default_settings + mkdir -p "${tmp_path}" + execute_cli_command --che-data-path=${tmp_path} --che-container-name=chetest --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + check_che_state --che-container-name="chetest" + #WHEN + execute_cli_command --che-data-path=${tmp_path} --che-container-name=chetest --che-cli-command=stop --che-cli-extra-options="--skip:nightly --skip:pull" + + #THEN + #check that container is stopped and removed + [[ "$(docker ps -a)" != *"chetest"* ]] +} + +@test "test cli 'restart' command with default settings" { + #GIVEN + if [ ! port_is_free 8080 ]; then + [ "$status" -eq 1 ] + [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] + fi + tmp_path="${TESTRUN_DIR}"/cli_cmd_restart_with_default_settings + mkdir -p "${tmp_path}" + execute_cli_command --che-data-path=${tmp_path} --che-container-name=chetest --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + check_che_state --che-container-name="chetest" + che_container_id=$(docker inspect --format="{{.Id}}" chetest) + + #WHEN + execute_cli_command --che-data-path=${tmp_path} --che-container-name=chetest --che-cli-command=restart --che-cli-extra-options="--skip:nightly --skip:pull" + + #THEN + [[ "$(docker inspect --format="{{.Id}}" chetest)" != "$che_container_id" ]] + check_che_state --che-container-name="chetest" +} + +@test "test cli 'start' with custom port" { + #GIVEN + tmp_path=${TESTRUN_DIR}/cli_cmd_start_with_custom_port + free_port=$(get_free_port) + + #WHEN + execute_cli_command --che-data-path=${tmp_path} --che-port=$free_port --che-container-name=chetest --che-cli-command=start --che-cli-extra-options="--skip:nightly --skip:pull" + #THEN + check_che_state --che-container-name="chetest" --che-port="$free_port" +} diff --git a/dockerfiles/cli/tests/cmd_start_tests.bats b/dockerfiles/cli/tests/cmd_start_tests.bats deleted file mode 100644 index a4d0d86b79..0000000000 --- a/dockerfiles/cli/tests/cmd_start_tests.bats +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bats -# Copyright (c) 2012-2017 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: -# Marian Labuda - Initial Implementation - -source /dockerfiles/cli/tests/test_base.sh - -# Kill running che server instance if there is any to be able to run tests -setup() { - kill_running_named_container chetest - remove_named_container chetest -} - -teardown() { - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data -e CHE_CONTAINER=chetest $CLI_IMAGE stop --skip:nightly --skip:pull - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data -e CHE_CONTAINER=chetest $CLI_IMAGE destroy --quiet --skip:nightly --skip:pull -} - -@test "test cli 'start' with default settings" { - #GIVEN - if [ ! port_is_free 8080 ]; then - [ "$status" -eq 1 ] - [ "$output" = "Default port 8080 for che server is used. Cannot run this test on default che server port" ] - fi - tmp_path="${TESTRUN_DIR}"/start1 - echo $tmp_path - mkdir -p "${tmp_path}" - - #WHEN - docker run --rm -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data -e CHE_CONTAINER=chetest $CLI_IMAGE start --skip:nightly --skip:pull - - #THEN - [[ $(docker inspect --format="{{.State.Running}}" chetest) -eq "true" ]] - ip_address=$(docker inspect -f {{.NetworkSettings.Networks.bridge.IPAddress}} chetest) - curl -fsS http://${ip_address}:8080 > /dev/null -} - -@test "test cli 'start' with custom port" { - #GIVEN - tmp_path=${TESTRUN_DIR}/start2 - free_port=$(get_free_port) - - #WHEN - docker run --rm -e CHE_PORT=$free_port -v "${SCRIPTS_DIR}":/scripts/base -v /var/run/docker.sock:/var/run/docker.sock -v "${tmp_path}":/data -e CHE_CONTAINER=chetest $CLI_IMAGE start --skip:nightly --skip:pull - - #THEN - [[ $(docker inspect --format="{{.State.Running}}" chetest) -eq "true" ]] - ip_address=$(docker inspect -f {{.NetworkSettings.Networks.bridge.IPAddress}} chetest) - curl -fsS http://${ip_address}:${free_port} > /dev/null -} \ No newline at end of file diff --git a/dockerfiles/cli/tests/test_base.sh b/dockerfiles/cli/tests/test_base.sh index d3608229dc..96225a9131 100644 --- a/dockerfiles/cli/tests/test_base.sh +++ b/dockerfiles/cli/tests/test_base.sh @@ -14,8 +14,9 @@ export SCRIPTS_DIR="${BATS_BASE_DIR}"/base/scripts/base export TESTS_DIR="${BATS_BASE_DIR}"/cli/tests export TESTRUN_DIR="${TESTS_DIR}"/testrun export CONTAINER_TESTRUN_DIR=/dockerfiles/cli/tests/testrun -if [ -d "${TESTRUN_DIR}" ]; then - rm -rf "${TESTRUN_DIR}" + +if [ -d "${CONTAINER_TESTRUN_DIR}" ]; then + rm -rf "${CONTAINER_TESTRUN_DIR}" fi mkdir "${TESTRUN_DIR}" -p @@ -56,3 +57,99 @@ get_free_port() { echo $port } +check_che_state() { + local CHE_CONTAINER_NAME="che" + local CHE_PORT="8080" + local IS_RUNNING="true" + for i in "${@}" + do + case $i in + --che-container-name=*) + CHE_CONTAINER_NAME="${i#*=}" + shift + ;; + --che-port=*) + CHE_PORT="${i#*=}" + shift + ;; + --is-running=*) + IS_RUNNING="${i#*=}" + shift + ;; + *) + echo "You've passed unknown option" + exit 2 + ;; + esac + done + [[ "$(docker inspect --format='{{.State.Running}}' $CHE_CONTAINER_NAME)" == "$IS_RUNNING" ]] + ip_address=$(docker inspect -f {{.NetworkSettings.Networks.bridge.IPAddress}} $CHE_CONTAINER_NAME) + curl -fsS http://${ip_address}:$CHE_PORT > /dev/null +} + +execute_cli_command() { + local CHE_CONTAINER_NAME="che" + local CHE_DATA_PATH="" + local CHE_CLI_COMMAND="" + local CHE_CLI_EXTRA_OPTIONS="" + local CHE_PORT="8080" + local DATA_VOLUME="" + local USE_DOCKER_SOCK="true" + local MOUNT_SCRIPTS="true" + + for i in "${@}" + do + case $i in + --che-container-name=*) + CHE_CONTAINER_NAME="${i#*=}" + shift + ;; + --che-port=*) + CHE_PORT="${i#*=}" + shift + ;; + --che-data-path=*) + CHE_DATA_PATH="${i#*=}" + shift + ;; + --che-cli-command=*) + CHE_CLI_COMMAND="${i#*=}" + shift + ;; + --che-cli-extra-options=*) + CHE_CLI_EXTRA_OPTIONS="${i#*=}" + shift + ;; + --che-cli-use-docker-sock=*) + USE_DOCKER_SOCK="${i#*=}" + shift + ;; + --che-cli-mount-scripts=*) + MOUNT_SCRIPTS="${i#*=}" + shift + ;; + *) + echo "You've passed unknown option" + exit 2 + ;; + esac + done + + if [ ! -z $CHE_DATA_PATH ]; then + DATA_VOLUME="-v ${CHE_DATA_PATH}:/data" + fi + if [ $USE_DOCKER_SOCK == "true" ]; then + DOCKER_SOCK_VOLUME="-v /var/run/docker.sock:/var/run/docker.sock" + fi + if [ $MOUNT_SCRIPTS == "true" ]; then + SCRIPTS_VOLUME="-v ${SCRIPTS_DIR}:/scripts/base" + fi + if [ $CHE_PORT -ne 8080 ]; then + CLI_CUSTOM_PORT="-e CHE_PORT=${CHE_PORT}" + fi + if [ $CHE_CONTAINER_NAME != "che" ]; then + CLI_CUSTOM_CHE_CONTAINER_NAME="-e CHE_CONTAINER=${CHE_CONTAINER_NAME}" + fi + + docker run --rm ${CLI_CUSTOM_PORT} ${SCRIPTS_VOLUME} ${DOCKER_SOCK_VOLUME} ${DATA_VOLUME} ${CLI_CUSTOM_CHE_CONTAINER_NAME} $CLI_IMAGE ${CHE_CLI_COMMAND} ${CHE_CLI_EXTRA_OPTIONS} +} diff --git a/dockerfiles/cli/version/5.13.0/images b/dockerfiles/cli/version/5.13.0/images new file mode 100644 index 0000000000..1981e62dd7 --- /dev/null +++ b/dockerfiles/cli/version/5.13.0/images @@ -0,0 +1,4 @@ +IMAGE_INIT=eclipse/che-init:5.13.0 +IMAGE_CHE=eclipse/che-server:5.13.0 +IMAGE_COMPOSE=docker/compose:1.8.1 +IMAGE_TRAEFIK=traefik:v1.3.0-rc3 diff --git a/dockerfiles/cli/version/5.13.0/images-stacks b/dockerfiles/cli/version/5.13.0/images-stacks new file mode 100644 index 0000000000..4630f02af6 --- /dev/null +++ b/dockerfiles/cli/version/5.13.0/images-stacks @@ -0,0 +1,24 @@ +eclipse/alpine_jdk8 +eclipse/aspnet +eclipse/centos_jdk8 +eclipse/cpp_gcc +eclipse/debian_jdk8 +eclipse/debian_jdk8_node +eclipse/debian_jre +eclipse/dotnet_core +eclipse/hadoop-dev +eclipse/meteor +eclipse/node +eclipse/php +eclipse/platformio +eclipse/ruby_rails +eclipse/selenium +eclipse/ubuntu_android +eclipse/ubuntu_go +eclipse/ubuntu_gradle +eclipse/ubuntu_jdk8 +eclipse/ubuntu_jre +eclipse/ubuntu_python +eclipse/ubuntu_wildfly8 +registry.centos.org/che-stacks/vertx + diff --git a/dockerfiles/cli/version/latest.ver b/dockerfiles/cli/version/latest.ver index 725dcb1728..1a65f3bdfb 100644 --- a/dockerfiles/cli/version/latest.ver +++ b/dockerfiles/cli/version/latest.ver @@ -1 +1 @@ -5.11.2 \ No newline at end of file +5.12.0 \ No newline at end of file diff --git a/dockerfiles/lib/dto-pom.xml b/dockerfiles/lib/dto-pom.xml index 5380e57495..b96b46f08a 100644 --- a/dockerfiles/lib/dto-pom.xml +++ b/dockerfiles/lib/dto-pom.xml @@ -17,13 +17,13 @@ maven-depmgt-pom org.eclipse.che.depmgt - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT dto-typescript pom Che TypeScript DTO - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT diff --git a/ide/che-core-dyna-provider-generator-maven-plugin/pom.xml b/ide/che-core-dyna-provider-generator-maven-plugin/pom.xml index 03b14fa33a..a1bfc34311 100644 --- a/ide/che-core-dyna-provider-generator-maven-plugin/pom.xml +++ b/ide/che-core-dyna-provider-generator-maven-plugin/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-dyna-provider-generator-maven-plugin maven-plugin diff --git a/ide/che-core-ide-api/pom.xml b/ide/che-core-ide-api/pom.xml index 11b4dfdc8f..e3d13ea1fd 100644 --- a/ide/che-core-ide-api/pom.xml +++ b/ide/che-core-ide-api/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-ide-api diff --git a/ide/che-core-ide-app/pom.xml b/ide/che-core-ide-app/pom.xml index ee87a26598..d51a043442 100644 --- a/ide/che-core-ide-app/pom.xml +++ b/ide/che-core-ide-app/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-ide-app jar diff --git a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/core/JsonRpcModule.java b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/core/JsonRpcModule.java index 9e14834867..5c694c1519 100644 --- a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/core/JsonRpcModule.java +++ b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/core/JsonRpcModule.java @@ -20,9 +20,11 @@ import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcMarshaller; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcQualifier; import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcUnmarshaller; import org.eclipse.che.api.core.jsonrpc.commons.RequestHandlerConfigurator; +import org.eclipse.che.api.core.jsonrpc.commons.TimeoutActionRunner; import org.eclipse.che.ide.api.event.ng.JsonRpcWebSocketAgentEventListener; import org.eclipse.che.ide.api.jsonrpc.WorkspaceMasterJsonRpcInitializer; import org.eclipse.che.ide.jsonrpc.ClientSideRequestProcessor; +import org.eclipse.che.ide.jsonrpc.ClientSideTimeoutActionRunner; import org.eclipse.che.ide.jsonrpc.ElementalJsonRpcComposer; import org.eclipse.che.ide.jsonrpc.ElementalJsonRpcMarshaller; import org.eclipse.che.ide.jsonrpc.ElementalJsonRpcQualifier; @@ -53,5 +55,6 @@ public class JsonRpcModule extends AbstractGinModule { bind(JsonRpcQualifier.class).to(ElementalJsonRpcQualifier.class); bind(RequestProcessor.class).to(ClientSideRequestProcessor.class); + bind(TimeoutActionRunner.class).to(ClientSideTimeoutActionRunner.class); } } diff --git a/ide/che-core-ide-generators/pom.xml b/ide/che-core-ide-generators/pom.xml index 0a88992fce..9db290631a 100644 --- a/ide/che-core-ide-generators/pom.xml +++ b/ide/che-core-ide-generators/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-ide-generators diff --git a/ide/che-core-ide-stacks/pom.xml b/ide/che-core-ide-stacks/pom.xml index 6a0f737790..26bd65f3b4 100644 --- a/ide/che-core-ide-stacks/pom.xml +++ b/ide/che-core-ide-stacks/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-ide-stacks diff --git a/ide/che-core-ide-stacks/src/main/resources/stacks.json b/ide/che-core-ide-stacks/src/main/resources/stacks.json index 8f9ef7d1a0..dd341893b7 100644 --- a/ide/che-core-ide-stacks/src/main/resources/stacks.json +++ b/ide/che-core-ide-stacks/src/main/resources/stacks.json @@ -2437,11 +2437,7 @@ { "commandLine": "scl enable rh-maven33 'mvn clean install -f ${current.project.path}'", "name": "build", - "type": "custom", - "attributes": { - "previewUrl": "", - "goal": "Build" - } + "type": "mvn" }, { "commandLine": "java -jar ${current.project.path}/target/*.jar", diff --git a/ide/che-core-ide-templates/pom.xml b/ide/che-core-ide-templates/pom.xml index b8cb5d240d..bdc35f2a13 100644 --- a/ide/che-core-ide-templates/pom.xml +++ b/ide/che-core-ide-templates/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-ide-templates diff --git a/ide/che-core-ide-ui/pom.xml b/ide/che-core-ide-ui/pom.xml index b503274fe8..4b5b3a2afd 100644 --- a/ide/che-core-ide-ui/pom.xml +++ b/ide/che-core-ide-ui/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core che-core-ide-ui diff --git a/ide/che-core-orion-editor/pom.xml b/ide/che-core-orion-editor/pom.xml index e0d85acdf8..76e2d13a23 100644 --- a/ide/che-core-orion-editor/pom.xml +++ b/ide/che-core-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-orion-editor jar diff --git a/ide/che-ide-core/pom.xml b/ide/che-ide-core/pom.xml index 4460cc09c6..9470eb00da 100644 --- a/ide/che-ide-core/pom.xml +++ b/ide/che-ide-core/pom.xml @@ -16,7 +16,7 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../../pom.xml org.eclipse.che.core diff --git a/ide/commons-gwt/pom.xml b/ide/commons-gwt/pom.xml index 40fbade844..f19cd3e6c7 100644 --- a/ide/commons-gwt/pom.xml +++ b/ide/commons-gwt/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-commons-gwt Che Core :: Commons :: GWT diff --git a/ide/commons-gwt/src/main/java/org/eclipse/che/ide/jsonrpc/ClientSideTimeoutActionRunner.java b/ide/commons-gwt/src/main/java/org/eclipse/che/ide/jsonrpc/ClientSideTimeoutActionRunner.java new file mode 100644 index 0000000000..59b92e90f2 --- /dev/null +++ b/ide/commons-gwt/src/main/java/org/eclipse/che/ide/jsonrpc/ClientSideTimeoutActionRunner.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2012-2017 Codenvy, S.A. + * 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: + * Codenvy, S.A. - initial API and implementation + *******************************************************************************/ +package org.eclipse.che.ide.jsonrpc; + +import com.google.gwt.user.client.Timer; + +import org.eclipse.che.api.core.jsonrpc.commons.TimeoutActionRunner; + +import javax.inject.Singleton; + +@Singleton +public class ClientSideTimeoutActionRunner implements TimeoutActionRunner { + + @Override + public void schedule(int timeoutInMillis, Runnable runnable) { + new Timer() { + @Override + public void run() { + runnable.run(); + } + }.schedule(timeoutInMillis); + } +} diff --git a/ide/gwt-logger/pom.xml b/ide/gwt-logger/pom.xml index fc375e5fd8..2be4f8119b 100644 --- a/ide/gwt-logger/pom.xml +++ b/ide/gwt-logger/pom.xml @@ -16,7 +16,7 @@ che-core-ide-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-gwt-logger Che Core :: Commons :: GWT Logger diff --git a/ide/pom.xml b/ide/pom.xml index 6c719b07a2..4c9111869e 100644 --- a/ide/pom.xml +++ b/ide/pom.xml @@ -16,7 +16,7 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml org.eclipse.che.core diff --git a/infrastructures/docker/pom.xml b/infrastructures/docker/pom.xml index b05d46d3ee..cd5d858add 100644 --- a/infrastructures/docker/pom.xml +++ b/infrastructures/docker/pom.xml @@ -16,7 +16,7 @@ che-infrastructures-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml infrastructure-docker diff --git a/infrastructures/docker/src/test/java/org/eclipse/che/workspace/infrastructure/docker/environment/compose/CommandDeserializerTest.java b/infrastructures/docker/src/test/java/org/eclipse/che/workspace/infrastructure/docker/environment/compose/CommandDeserializerTest.java index 7b402a7459..9d305818ea 100644 --- a/infrastructures/docker/src/test/java/org/eclipse/che/workspace/infrastructure/docker/environment/compose/CommandDeserializerTest.java +++ b/infrastructures/docker/src/test/java/org/eclipse/che/workspace/infrastructure/docker/environment/compose/CommandDeserializerTest.java @@ -29,6 +29,7 @@ import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; /** * Test deserialization field {@link ComposeService#command} @@ -178,17 +179,16 @@ public class CommandDeserializerTest { }; } - @Test(expectedExceptions = ReaderException.class, - expectedExceptionsMessageRegExp = "special characters are not allowed", - dataProvider = "inValidSymbols") - public void symbolsShouldBeInvalidForYaml(String command) throws Exception { - String content = format(RECIPE_WITHOUT_COMMAND_VALUE, command); - + @Test(dataProvider = "inValidSymbols") + public void symbolsShouldBeInvalidForYaml(InvalidSymbolCommand command) throws Exception { + String content = format(RECIPE_WITHOUT_COMMAND_VALUE, command.getCommand()); try { composeEnvironmentParser.parse(content, "application/x-yaml"); - } catch (Exception e) { - System.out.println(e.getLocalizedMessage()); - throw e; + // it should fail. + fail("The command " + command.getCommand() + " has invalid symbol and it should fail"); + } catch (ReaderException e) { + // we're checking the exception there without throwing it, else it will print to testng-results.xml file an invalid symbol, thus the xml will be invalid. + assertEquals(e.getMessage(), "special characters are not allowed"); } } @@ -199,19 +199,36 @@ public class CommandDeserializerTest { @DataProvider(name = "inValidSymbols") private Object[][] inValidSymbols() { return new Object[][] { - {"service mysql start\uFFFE"}, - {"service mysql start\uDFFF"}, - {"service mysql start\uD800"}, - {"service mysql start\u009F"}, - {"service mysql start\u0086"}, - {"service mysql start\u0084"}, - {"service mysql start\u0084"}, - {"service mysql start\u007F"}, - {"service mysql start\u001F"}, - {"service mysql start\u000E"}, - {"service mysql start\u000C"}, - {"service mysql start\u000B"}, - {"service mysql start\u0008"}, + {new InvalidSymbolCommand("service mysql start\uFFFE")}, + {new InvalidSymbolCommand("service mysql start\uDFFF")}, + {new InvalidSymbolCommand("service mysql start\uD800")}, + {new InvalidSymbolCommand("service mysql start\u009F")}, + {new InvalidSymbolCommand("service mysql start\u0086")}, + {new InvalidSymbolCommand("service mysql start\u0084")}, + {new InvalidSymbolCommand("service mysql start\u0084")}, + {new InvalidSymbolCommand("service mysql start\u007F")}, + {new InvalidSymbolCommand("service mysql start\u001F")}, + {new InvalidSymbolCommand("service mysql start\u000E")}, + {new InvalidSymbolCommand("service mysql start\u000C")}, + {new InvalidSymbolCommand("service mysql start\u000B")}, + {new InvalidSymbolCommand("service mysql start\u0008")}, }; } + + /** + * Use of a custom class for the command, so the DataProvider is not printing the string containing invalid characters in the + * testng-results.xml file + */ + private class InvalidSymbolCommand { + + private final String command; + + InvalidSymbolCommand(String command) { + this.command = command; + } + + String getCommand() { + return this.command; + } + } } diff --git a/infrastructures/pom.xml b/infrastructures/pom.xml index f70459c663..c942a44668 100644 --- a/infrastructures/pom.xml +++ b/infrastructures/pom.xml @@ -16,11 +16,11 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-infrastructures-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Infrastructures Parent diff --git a/plugins/plugin-composer/che-plugin-composer-ide/pom.xml b/plugins/plugin-composer/che-plugin-composer-ide/pom.xml index 56c791f9c7..73118f7869 100644 --- a/plugins/plugin-composer/che-plugin-composer-ide/pom.xml +++ b/plugins/plugin-composer/che-plugin-composer-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-composer-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-composer-ide jar diff --git a/plugins/plugin-composer/che-plugin-composer-server/pom.xml b/plugins/plugin-composer/che-plugin-composer-server/pom.xml index 955fa31021..c86fdcfacf 100644 --- a/plugins/plugin-composer/che-plugin-composer-server/pom.xml +++ b/plugins/plugin-composer/che-plugin-composer-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-composer-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-composer-server Che Plugin :: Composer :: Server diff --git a/plugins/plugin-composer/che-plugin-composer-shared/pom.xml b/plugins/plugin-composer/che-plugin-composer-shared/pom.xml index 178dfccf6b..1e3411aeaa 100644 --- a/plugins/plugin-composer/che-plugin-composer-shared/pom.xml +++ b/plugins/plugin-composer/che-plugin-composer-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-composer-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-composer-shared Che Plugin :: Composer :: Shared diff --git a/plugins/plugin-composer/pom.xml b/plugins/plugin-composer/pom.xml index e3d53256b9..0cb5cd811a 100644 --- a/plugins/plugin-composer/pom.xml +++ b/plugins/plugin-composer/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-composer-parent diff --git a/plugins/plugin-cpp/che-plugin-cpp-lang-ide/pom.xml b/plugins/plugin-cpp/che-plugin-cpp-lang-ide/pom.xml index 070bf9871e..68e353566f 100644 --- a/plugins/plugin-cpp/che-plugin-cpp-lang-ide/pom.xml +++ b/plugins/plugin-cpp/che-plugin-cpp-lang-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-cpp-lang-ide jar diff --git a/plugins/plugin-cpp/che-plugin-cpp-lang-server/pom.xml b/plugins/plugin-cpp/che-plugin-cpp-lang-server/pom.xml index 068f4b2a1e..cae4d2df1f 100644 --- a/plugins/plugin-cpp/che-plugin-cpp-lang-server/pom.xml +++ b/plugins/plugin-cpp/che-plugin-cpp-lang-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-cpp-lang-server Che Plugin :: C/C++ :: Extension Server diff --git a/plugins/plugin-cpp/che-plugin-cpp-lang-shared/pom.xml b/plugins/plugin-cpp/che-plugin-cpp-lang-shared/pom.xml index cc8200870b..94a9b281ab 100644 --- a/plugins/plugin-cpp/che-plugin-cpp-lang-shared/pom.xml +++ b/plugins/plugin-cpp/che-plugin-cpp-lang-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-cpp-lang-shared Che Plugin :: C/C++ :: Shared diff --git a/plugins/plugin-cpp/pom.xml b/plugins/plugin-cpp/pom.xml index dc0ab1872f..1b392468a4 100644 --- a/plugins/plugin-cpp/pom.xml +++ b/plugins/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-cpp-parent diff --git a/plugins/plugin-csharp/che-plugin-csharp-lang-ide/pom.xml b/plugins/plugin-csharp/che-plugin-csharp-lang-ide/pom.xml index cb7633df5a..7e44c763cf 100644 --- a/plugins/plugin-csharp/che-plugin-csharp-lang-ide/pom.xml +++ b/plugins/plugin-csharp/che-plugin-csharp-lang-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-csharp-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-csharp-lang-ide jar diff --git a/plugins/plugin-csharp/che-plugin-csharp-lang-server/pom.xml b/plugins/plugin-csharp/che-plugin-csharp-lang-server/pom.xml index 91aa9377ac..b85792fbf7 100644 --- a/plugins/plugin-csharp/che-plugin-csharp-lang-server/pom.xml +++ b/plugins/plugin-csharp/che-plugin-csharp-lang-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-csharp-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-csharp-lang-server Che Plugin :: C# :: Extension Server diff --git a/plugins/plugin-csharp/che-plugin-csharp-lang-shared/pom.xml b/plugins/plugin-csharp/che-plugin-csharp-lang-shared/pom.xml index d388de5052..d2d998fd3d 100644 --- a/plugins/plugin-csharp/che-plugin-csharp-lang-shared/pom.xml +++ b/plugins/plugin-csharp/che-plugin-csharp-lang-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-csharp-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-csharp-lang-shared Che Plugin :: C# :: Shared diff --git a/plugins/plugin-csharp/pom.xml b/plugins/plugin-csharp/pom.xml index 57ab6d9554..1106a309e3 100644 --- a/plugins/plugin-csharp/pom.xml +++ b/plugins/plugin-csharp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-csharp-parent diff --git a/plugins/plugin-dashboard/che-plugin-ext-dashboard/pom.xml b/plugins/plugin-dashboard/che-plugin-ext-dashboard/pom.xml index 3c2b7bd97f..e05f615df9 100644 --- a/plugins/plugin-dashboard/che-plugin-ext-dashboard/pom.xml +++ b/plugins/plugin-dashboard/che-plugin-ext-dashboard/pom.xml @@ -16,7 +16,7 @@ che-plugin-dashboard-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-ext-dashboard-client jar diff --git a/plugins/plugin-dashboard/pom.xml b/plugins/plugin-dashboard/pom.xml index f3d5bd3e3c..686ae8fb8a 100644 --- a/plugins/plugin-dashboard/pom.xml +++ b/plugins/plugin-dashboard/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-dashboard-parent diff --git a/plugins/plugin-debugger/che-plugin-debugger-ide/pom.xml b/plugins/plugin-debugger/che-plugin-debugger-ide/pom.xml index 00056fb99d..9ace244408 100644 --- a/plugins/plugin-debugger/che-plugin-debugger-ide/pom.xml +++ b/plugins/plugin-debugger/che-plugin-debugger-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-debugger-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-debugger-ide jar diff --git a/plugins/plugin-debugger/pom.xml b/plugins/plugin-debugger/pom.xml index e9b86e8c04..65f13bd8d0 100644 --- a/plugins/plugin-debugger/pom.xml +++ b/plugins/plugin-debugger/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-debugger-parent diff --git a/plugins/plugin-docker/che-plugin-docker-client/pom.xml b/plugins/plugin-docker/che-plugin-docker-client/pom.xml index c7b28a09ac..fc1bcc505c 100644 --- a/plugins/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugins/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-docker-client jar diff --git a/plugins/plugin-docker/che-plugin-openshift-client/pom.xml b/plugins/plugin-docker/che-plugin-openshift-client/pom.xml index 5721a4002b..d7305f84e6 100644 --- a/plugins/plugin-docker/che-plugin-openshift-client/pom.xml +++ b/plugins/plugin-docker/che-plugin-openshift-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-openshift-client jar diff --git a/plugins/plugin-docker/pom.xml b/plugins/plugin-docker/pom.xml index 7fa91191cc..7c4b9749e3 100644 --- a/plugins/plugin-docker/pom.xml +++ b/plugins/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-docker-parent diff --git a/plugins/plugin-gdb/che-plugin-gdb-ide/pom.xml b/plugins/plugin-gdb/che-plugin-gdb-ide/pom.xml index 026d03e52e..00bfef1b71 100644 --- a/plugins/plugin-gdb/che-plugin-gdb-ide/pom.xml +++ b/plugins/plugin-gdb/che-plugin-gdb-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-gdb-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-gdb-ide jar diff --git a/plugins/plugin-gdb/che-plugin-gdb-server/pom.xml b/plugins/plugin-gdb/che-plugin-gdb-server/pom.xml index 5a0a33919f..a64e25281c 100644 --- a/plugins/plugin-gdb/che-plugin-gdb-server/pom.xml +++ b/plugins/plugin-gdb/che-plugin-gdb-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-gdb-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-gdb-server jar diff --git a/plugins/plugin-gdb/pom.xml b/plugins/plugin-gdb/pom.xml index 3ae8c9ee06..57b10ac69f 100644 --- a/plugins/plugin-gdb/pom.xml +++ b/plugins/plugin-gdb/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-gdb-parent pom diff --git a/plugins/plugin-git/che-plugin-git-ext-git/pom.xml b/plugins/plugin-git/che-plugin-git-ext-git/pom.xml index 7d53b44bb1..7e12f4c868 100644 --- a/plugins/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugins/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-git-ext-git jar diff --git a/plugins/plugin-git/pom.xml b/plugins/plugin-git/pom.xml index 2a93416ab9..f93bd8fe43 100644 --- a/plugins/plugin-git/pom.xml +++ b/plugins/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-git-parent diff --git a/plugins/plugin-github/che-plugin-github-factory-resolver/pom.xml b/plugins/plugin-github/che-plugin-github-factory-resolver/pom.xml index d945238c4e..a714b5c298 100644 --- a/plugins/plugin-github/che-plugin-github-factory-resolver/pom.xml +++ b/plugins/plugin-github/che-plugin-github-factory-resolver/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-github-factory-resolver jar diff --git a/plugins/plugin-github/che-plugin-github-ide/pom.xml b/plugins/plugin-github/che-plugin-github-ide/pom.xml index 1f9e0397d5..c7f682815c 100644 --- a/plugins/plugin-github/che-plugin-github-ide/pom.xml +++ b/plugins/plugin-github/che-plugin-github-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-github-ide jar diff --git a/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientService.java b/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientService.java index 6d1e6b3a6e..4fa6a2b987 100644 --- a/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientService.java +++ b/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientService.java @@ -32,19 +32,6 @@ import java.util.List; * @author Kevin Pollet */ public interface GitHubClientService { - /** - * Get given repository information. - * - * @param user - * the owner of the repository. - * @param repository - * the repository name. - * @param callback - * callback called when operation is done. - * @deprecated use {@link #getRepository(String, String)} - */ - @Deprecated - void getRepository(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); /** * Get given repository information. @@ -61,20 +48,6 @@ public interface GitHubClientService { */ Promise> getRepositoriesList(); - /** - * Get list of forks for given repository - * - * @param user - * the owner of the repository. - * @param repository - * the repository name. - * @param callback - * callback called when operation is done. - * @deprecated use {@link #getForks(String user, String repository)} - */ - @Deprecated - void getForks(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); - /** * Get list of forks for given repository * @@ -85,20 +58,6 @@ public interface GitHubClientService { */ Promise getForks(String user, String repository); - /** - * Fork the given repository for the authorized user. - * - * @param user - * the owner of the repository to fork. - * @param repository - * the repository name. - * @param callback - * callback called when operation is done. - * @deprecated use {@link #fork(String, String)} - */ - @Deprecated - void fork(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); - /** * Fork the given repository for the authorized user. * @@ -126,20 +85,6 @@ public interface GitHubClientService { void commentIssue(@NotNull String user, @NotNull String repository, @NotNull String issue, @NotNull GitHubIssueCommentInput input, @NotNull AsyncRequestCallback callback); - /** - * Get pull requests for given repository. - * - * @param owner - * the repository owner. - * @param repository - * the repository name. - * @param callback - * callback called when operation is done. - * @deprecated use {@link #getPullRequests(String, String)} - */ - @Deprecated - void getPullRequests(@NotNull String owner, @NotNull String repository, @NotNull AsyncRequestCallback callback); - /** * Get pull requests for given repository. * @@ -179,25 +124,6 @@ public interface GitHubClientService { @NotNull String pullRequestId, @NotNull AsyncRequestCallback callback); - /** - * Create a pull request on origin repository - * - * @param user - * the owner of the repository. - * @param repository - * the repository name. - * @param input - * the pull request information. - * @param callback - * callback called when operation is done. - * @deprecated use {@link #createPullRequest(String, String, GitHubPullRequestCreationInput)} - */ - @Deprecated - void createPullRequest(@NotNull String user, - @NotNull String repository, - @NotNull GitHubPullRequestCreationInput input, - @NotNull AsyncRequestCallback callback); - /** * Create a pull request on origin repository * @@ -254,27 +180,11 @@ public interface GitHubClientService { */ void getCollaborators(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); - /** - * Get the list of the organizations, where authorized user is a member. - * - * Use {@link #getOrganizations()}. - */ - @Deprecated - void getOrganizations(@NotNull AsyncRequestCallback> callback); - /** * Get the list of the organizations, where authorized user is a member. */ Promise> getOrganizations(); - /** - * Get authorized user information. - * - * Use {@link #getUserInfo()}. - */ - @Deprecated - void getUserInfo(@NotNull AsyncRequestCallback callback); - /** * Get authorized user information. */ diff --git a/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientServiceImpl.java b/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientServiceImpl.java index e1201d8a34..370278bc61 100644 --- a/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientServiceImpl.java +++ b/plugins/plugin-github/che-plugin-github-ide/src/main/java/org/eclipse/che/plugin/github/ide/GitHubClientServiceImpl.java @@ -79,12 +79,6 @@ public class GitHubClientServiceImpl implements GitHubClientService { return appContext.getDevAgentEndpoint() + "/github"; } - @Override - public void getRepository(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback) { - String url = baseUrl() + REPOSITORIES + "/" + user + "/" + repository; - asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); - } - @Override public Promise getRepository(String user, String repository) { final String url = baseUrl() + REPOSITORIES + "/" + user + "/" + repository; @@ -101,15 +95,6 @@ public class GitHubClientServiceImpl implements GitHubClientService { .send(dtoUnmarshallerFactory.newListUnmarshaller(GitHubRepository.class)); } - /** {@inheritDoc} */ - @Override - public void getForks(@NotNull String user, - @NotNull String repository, - @NotNull AsyncRequestCallback callback) { - String url = baseUrl() + FORKS + "/" + user + "/" + repository; - asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); - } - @Override public Promise getForks(String user, String repository) { return asyncRequestFactory.createGetRequest(baseUrl() + FORKS + '/' + user + '/' + repository) @@ -117,13 +102,6 @@ public class GitHubClientServiceImpl implements GitHubClientService { .send(dtoUnmarshallerFactory.newUnmarshaller(GitHubRepositoryList.class)); } - /** {@inheritDoc} */ - @Override - public void fork(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback) { - String url = baseUrl() + CREATE_FORK + "/" + user + "/" + repository; - asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); - } - @Override public Promise fork(String user, String repository) { return asyncRequestFactory.createGetRequest(baseUrl() + CREATE_FORK + '/' + user + '/' + repository) @@ -138,13 +116,6 @@ public class GitHubClientServiceImpl implements GitHubClientService { asyncRequestFactory.createPostRequest(url, input).loader(loader).send(callback); } - @Override - public void getPullRequests(@NotNull String owner, @NotNull String repository, - @NotNull AsyncRequestCallback callback) { - String url = baseUrl() + PULL_REQUESTS + "/" + owner + "/" + repository; - asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); - } - @Override public Promise getPullRequests(@NotNull String owner, @NotNull String repository) { final String url = baseUrl() + PULL_REQUESTS + '/' + owner + '/' + repository; @@ -168,14 +139,6 @@ public class GitHubClientServiceImpl implements GitHubClientService { asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } - /** {@inheritDoc} */ - @Override - public void createPullRequest(@NotNull String user, @NotNull String repository, @NotNull GitHubPullRequestCreationInput input, - @NotNull AsyncRequestCallback callback) { - String url = baseUrl() + PULL_REQUEST + "/" + user + "/" + repository; - asyncRequestFactory.createPostRequest(url, input).loader(loader).send(callback); - } - @Override public Promise createPullRequest(@NotNull String user, @NotNull String repository, @@ -201,13 +164,6 @@ public class GitHubClientServiceImpl implements GitHubClientService { asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } - /** {@inheritDoc} */ - @Override - public void getOrganizations(@NotNull AsyncRequestCallback> callback) { - String url = baseUrl() + ORGANIZATIONS; - asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); - } - /** {@inheritDoc} */ @Override public Promise> getOrganizations() { @@ -215,14 +171,6 @@ public class GitHubClientServiceImpl implements GitHubClientService { return asyncRequestFactory.createGetRequest(url).loader(loader).send(dtoUnmarshallerFactory.newListUnmarshaller(GitHubUser.class)); } - - /** {@inheritDoc} */ - @Override - public void getUserInfo(@NotNull AsyncRequestCallback callback) { - String url = baseUrl() + USER; - asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); - } - /** {@inheritDoc} */ @Override public Promise getUserInfo() { diff --git a/plugins/plugin-github/che-plugin-github-oauth2/pom.xml b/plugins/plugin-github/che-plugin-github-oauth2/pom.xml index f3147750a4..8547cce744 100644 --- a/plugins/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugins/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-github-oauth2 jar diff --git a/plugins/plugin-github/che-plugin-github-provider-github/pom.xml b/plugins/plugin-github/che-plugin-github-provider-github/pom.xml index 4b65b12378..1f55423457 100644 --- a/plugins/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugins/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugins/plugin-github/che-plugin-github-pullrequest/pom.xml b/plugins/plugin-github/che-plugin-github-pullrequest/pom.xml index 5138597716..414cea396e 100644 --- a/plugins/plugin-github/che-plugin-github-pullrequest/pom.xml +++ b/plugins/plugin-github/che-plugin-github-pullrequest/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-github-pullrequest Che Plugin :: Github :: Pull request diff --git a/plugins/plugin-github/che-plugin-github-pullrequest/src/main/java/org/eclipse/che/plugin/pullrequest/client/GitHubHostingService.java b/plugins/plugin-github/che-plugin-github-pullrequest/src/main/java/org/eclipse/che/plugin/pullrequest/client/GitHubHostingService.java index 4034376f89..5c463f71b2 100644 --- a/plugins/plugin-github/che-plugin-github-pullrequest/src/main/java/org/eclipse/che/plugin/pullrequest/client/GitHubHostingService.java +++ b/plugins/plugin-github/che-plugin-github-pullrequest/src/main/java/org/eclipse/che/plugin/pullrequest/client/GitHubHostingService.java @@ -24,8 +24,6 @@ import org.eclipse.che.api.promises.client.js.Promises; import org.eclipse.che.ide.api.app.AppContext; import org.eclipse.che.ide.api.app.CurrentUser; import org.eclipse.che.ide.dto.DtoFactory; -import org.eclipse.che.ide.rest.AsyncRequestCallback; -import org.eclipse.che.ide.rest.DtoUnmarshallerFactory; import org.eclipse.che.plugin.github.ide.GitHubClientService; import org.eclipse.che.plugin.github.shared.GitHubPullRequest; import org.eclipse.che.plugin.github.shared.GitHubPullRequestCreationInput; @@ -71,7 +69,6 @@ public class GitHubHostingService implements VcsHostingService { private static final String NO_HISTORYIN_COMMON_ERROR_MESSAGE = "has no history in common with"; private final AppContext appContext; - private final DtoUnmarshallerFactory dtoUnmarshallerFactory; private final DtoFactory dtoFactory; private final GitHubClientService gitHubClientService; private final HostingServiceTemplates templates; @@ -79,12 +76,10 @@ public class GitHubHostingService implements VcsHostingService { @Inject public GitHubHostingService(@NotNull final AppContext appContext, - @NotNull final DtoUnmarshallerFactory dtoUnmarshallerFactory, @NotNull final DtoFactory dtoFactory, @NotNull final GitHubClientService gitHubClientService, @NotNull final GitHubTemplates templates) { this.appContext = appContext; - this.dtoUnmarshallerFactory = dtoUnmarshallerFactory; this.dtoFactory = dtoFactory; this.gitHubClientService = gitHubClientService; this.templates = templates; @@ -183,7 +178,7 @@ public class GitHubHostingService implements VcsHostingService { @NotNull @Override public String makePullRequestUrl(@NotNull final String username, @NotNull final String repository, - @NotNull final String pullRequestNumber) { + @NotNull final String pullRequestNumber) { return templates.pullRequestUrlTemplate(username, repository, pullRequestNumber); } @@ -246,22 +241,17 @@ public class GitHubHostingService implements VcsHostingService { @NotNull final String repository, @NotNull final AsyncCallback> callback) { - gitHubClientService.getPullRequests(owner, repository, new AsyncRequestCallback( - dtoUnmarshallerFactory.newUnmarshaller(GitHubPullRequestList.class)) { - @Override - protected void onSuccess(final GitHubPullRequestList result) { - final List pullRequests = new ArrayList<>(); - for (final GitHubPullRequest oneGitHubPullRequest : result.getPullRequests()) { - pullRequests.add(valueOf(oneGitHubPullRequest)); - } - callback.onSuccess(pullRequests); - } - - @Override - protected void onFailure(final Throwable exception) { - callback.onFailure(exception); - } - }); + gitHubClientService.getPullRequests(owner, repository) + .then(result -> { + final List pullRequests = new ArrayList<>(); + for (final GitHubPullRequest oneGitHubPullRequest : result.getPullRequests()) { + pullRequests.add(valueOf(oneGitHubPullRequest)); + } + callback.onSuccess(pullRequests); + }) + .catchError(error -> { + callback.onFailure(error.getCause()); + }); } /** @@ -365,23 +355,17 @@ public class GitHubHostingService implements VcsHostingService { private void getForks(@NotNull final String owner, @NotNull final String repository, @NotNull final AsyncCallback> callback) { - - gitHubClientService.getForks(owner, repository, new AsyncRequestCallback( - dtoUnmarshallerFactory.newUnmarshaller(GitHubRepositoryList.class)) { - @Override - protected void onSuccess(final GitHubRepositoryList gitHubRepositoryList) { - final List repositories = new ArrayList<>(); - for (final GitHubRepository oneGitHubRepository : gitHubRepositoryList.getRepositories()) { - repositories.add(valueOf(oneGitHubRepository)); - } - callback.onSuccess(repositories); - } - - @Override - protected void onFailure(final Throwable exception) { - callback.onFailure(exception); - } - }); + gitHubClientService.getForks(owner, repository) + .then(gitHubRepositoryList -> { + final List repositories = new ArrayList<>(); + for (final GitHubRepository oneGitHubRepository : gitHubRepositoryList.getRepositories()) { + repositories.add(valueOf(oneGitHubRepository)); + } + callback.onSuccess(repositories); + }) + .catchError(error -> { + callback.onFailure(error.getCause()); + }); } private Promise> getForks(final String owner, final String repository) { diff --git a/plugins/plugin-github/che-plugin-github-server/pom.xml b/plugins/plugin-github/che-plugin-github-server/pom.xml index e9b8204665..0aa7a8dfb1 100644 --- a/plugins/plugin-github/che-plugin-github-server/pom.xml +++ b/plugins/plugin-github/che-plugin-github-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-github-server jar diff --git a/plugins/plugin-github/che-plugin-github-shared/pom.xml b/plugins/plugin-github/che-plugin-github-shared/pom.xml index 805a23fee0..b3d9dcb82f 100644 --- a/plugins/plugin-github/che-plugin-github-shared/pom.xml +++ b/plugins/plugin-github/che-plugin-github-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-github-shared Che Plugin :: Github :: Shared diff --git a/plugins/plugin-github/pom.xml b/plugins/plugin-github/pom.xml index 0915c6b43e..0396df06c0 100644 --- a/plugins/plugin-github/pom.xml +++ b/plugins/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-github-parent diff --git a/plugins/plugin-gwt/che-plugin-gwt-ext-gwt/pom.xml b/plugins/plugin-gwt/che-plugin-gwt-ext-gwt/pom.xml index 3bd0c46c5f..89f23596e7 100644 --- a/plugins/plugin-gwt/che-plugin-gwt-ext-gwt/pom.xml +++ b/plugins/plugin-gwt/che-plugin-gwt-ext-gwt/pom.xml @@ -16,7 +16,7 @@ che-plugin-gwt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-gwt-ext-gwt jar diff --git a/plugins/plugin-gwt/pom.xml b/plugins/plugin-gwt/pom.xml index 2a489b796e..0ca3311641 100644 --- a/plugins/plugin-gwt/pom.xml +++ b/plugins/plugin-gwt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-gwt-parent diff --git a/plugins/plugin-help/che-plugin-help-ext-client/pom.xml b/plugins/plugin-help/che-plugin-help-ext-client/pom.xml index 6fae4222ca..bef675deec 100644 --- a/plugins/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugins/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-help-ext-client jar diff --git a/plugins/plugin-help/pom.xml b/plugins/plugin-help/pom.xml index 7959e092a7..a1195f6ecc 100644 --- a/plugins/plugin-help/pom.xml +++ b/plugins/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-help-parent diff --git a/plugins/plugin-java-debugger/che-plugin-java-debugger-ide/pom.xml b/plugins/plugin-java-debugger/che-plugin-java-debugger-ide/pom.xml index 8f9a9ba620..88bd9582e9 100644 --- a/plugins/plugin-java-debugger/che-plugin-java-debugger-ide/pom.xml +++ b/plugins/plugin-java-debugger/che-plugin-java-debugger-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-debugger-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-debugger-ide jar diff --git a/plugins/plugin-java-debugger/che-plugin-java-debugger-server/pom.xml b/plugins/plugin-java-debugger/che-plugin-java-debugger-server/pom.xml index 9bbc7087af..aaab87416f 100644 --- a/plugins/plugin-java-debugger/che-plugin-java-debugger-server/pom.xml +++ b/plugins/plugin-java-debugger/che-plugin-java-debugger-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-debugger-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-debugger-server jar diff --git a/plugins/plugin-java-debugger/pom.xml b/plugins/plugin-java-debugger/pom.xml index 29f70608f7..22e8d49218 100644 --- a/plugins/plugin-java-debugger/pom.xml +++ b/plugins/plugin-java-debugger/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-debugger-parent pom diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filebuffers/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filebuffers/pom.xml index e568e62daa..18da01dfd1 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filebuffers/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filebuffers/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.core.filebuffers jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filesystem/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filesystem/pom.xml index 1fa1031598..d1d575d0f3 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filesystem/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-filesystem/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.core.filesystem jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-resources/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-resources/pom.xml index 7370aaa725..97d71fe266 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-resources/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-core-resources/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.core.resources jar 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 4d07b94ebc..87111a6641 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 @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.jdt.ui jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface-text/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface-text/pom.xml index 8fa13809ee..8c8b784c51 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface-text/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface-text/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.jface.text jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface/pom.xml index 88696006be..94f5bb2f71 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-jface/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.jface jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ltk-core-refactoring/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ltk-core-refactoring/pom.xml index 831f52d7c9..4f015c0e72 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ltk-core-refactoring/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ltk-core-refactoring/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.ltk.core.refactoring jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-search/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-search/pom.xml index e33b2c5cf5..69c20047ca 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-search/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-search/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.search jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ui-ide/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ui-ide/pom.xml index 38c015abb8..91a2ee4e4d 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ui-ide/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/org-eclipse-ui-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-ext-jdt-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.ui.ide jar diff --git a/plugins/plugin-java/che-plugin-java-ext-jdt/pom.xml b/plugins/plugin-java/che-plugin-java-ext-jdt/pom.xml index e9efef1b29..870dd98028 100644 --- a/plugins/plugin-java/che-plugin-java-ext-jdt/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-jdt/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-ext-jdt-parent pom diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-client/pom.xml b/plugins/plugin-java/che-plugin-java-ext-lang-client/pom.xml index 27d3eb46aa..a0bfa7a989 100644 --- a/plugins/plugin-java/che-plugin-java-ext-lang-client/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-ext-lang-client jar 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 71f2c2430d..e7379b5ce3 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 @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-ext-lang-server Che Plugin :: Java :: Extension Java Server diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-shared/pom.xml b/plugins/plugin-java/che-plugin-java-ext-lang-shared/pom.xml index 415bfd7858..da02ac131c 100644 --- a/plugins/plugin-java/che-plugin-java-ext-lang-shared/pom.xml +++ b/plugins/plugin-java/che-plugin-java-ext-lang-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-ext-lang-shared Che Plugin :: Java :: Extension Java Shared diff --git a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-ide/pom.xml b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-ide/pom.xml index 9fd2384792..1c6d001c88 100644 --- a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-ide/pom.xml +++ b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-plain org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-plain-ide jar diff --git a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/pom.xml b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/pom.xml index a0598ed601..9340a27336 100644 --- a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/pom.xml +++ b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-plain org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-plain-server Che Plugin :: Java :: Plain :: Server diff --git a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-shared/pom.xml b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-shared/pom.xml index cd8b378f31..4e12a96160 100644 --- a/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-shared/pom.xml +++ b/plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-plain org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-plain-shared Che Plugin :: Java :: Plain :: Shared diff --git a/plugins/plugin-java/che-plugin-java-plain/pom.xml b/plugins/plugin-java/che-plugin-java-plain/pom.xml index ee7ac8e01a..497a36da8b 100644 --- a/plugins/plugin-java/che-plugin-java-plain/pom.xml +++ b/plugins/plugin-java/che-plugin-java-plain/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-java-plain diff --git a/plugins/plugin-java/pom.xml b/plugins/plugin-java/pom.xml index d1d8f24de0..066747b495 100644 --- a/plugins/plugin-java/pom.xml +++ b/plugins/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-java-parent diff --git a/plugins/plugin-json/che-plugin-json-server/pom.xml b/plugins/plugin-json/che-plugin-json-server/pom.xml index 89cfe8cf4e..5205f35945 100644 --- a/plugins/plugin-json/che-plugin-json-server/pom.xml +++ b/plugins/plugin-json/che-plugin-json-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-json-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-json-server Che Plugin :: JSON :: Extension Server diff --git a/plugins/plugin-json/che-plugin-json-server/src/main/java/org/eclipse/che/plugin/json/languageserver/JsonExtension.java b/plugins/plugin-json/che-plugin-json-server/src/main/java/org/eclipse/che/plugin/json/languageserver/JsonExtension.java new file mode 100644 index 0000000000..021500602b --- /dev/null +++ b/plugins/plugin-json/che-plugin-json-server/src/main/java/org/eclipse/che/plugin/json/languageserver/JsonExtension.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012-2017 Codenvy, S.A. + * 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: + * Codenvy, S.A. - initial API and implementation + *******************************************************************************/ +package org.eclipse.che.plugin.json.languageserver; + +import org.eclipse.lsp4j.jsonrpc.services.JsonNotification; + +import java.util.Map; + +/** + * + */ +public interface JsonExtension { + + @JsonNotification(value="json/schemaAssociations", useSegment = false) + void jsonSchemaAssociation(Map associations); +} diff --git a/plugins/plugin-json/che-plugin-json-server/src/main/java/org/eclipse/che/plugin/json/languageserver/JsonLanguageServerLauncher.java b/plugins/plugin-json/che-plugin-json-server/src/main/java/org/eclipse/che/plugin/json/languageserver/JsonLanguageServerLauncher.java index 6be52d9e1d..5b38b31cdb 100644 --- a/plugins/plugin-json/che-plugin-json-server/src/main/java/org/eclipse/che/plugin/json/languageserver/JsonLanguageServerLauncher.java +++ b/plugins/plugin-json/che-plugin-json-server/src/main/java/org/eclipse/che/plugin/json/languageserver/JsonLanguageServerLauncher.java @@ -12,11 +12,14 @@ package org.eclipse.che.plugin.json.languageserver; import com.google.inject.Inject; import com.google.inject.Singleton; - import org.eclipse.che.api.languageserver.exception.LanguageServerException; import org.eclipse.che.api.languageserver.launcher.LanguageServerLauncherTemplate; +import org.eclipse.che.api.languageserver.registry.ServerInitializerObserver; import org.eclipse.che.api.languageserver.shared.model.LanguageDescription; +import org.eclipse.lsp4j.ServerCapabilities; +import org.eclipse.lsp4j.jsonrpc.Endpoint; import org.eclipse.lsp4j.jsonrpc.Launcher; +import org.eclipse.lsp4j.jsonrpc.services.ServiceEndpoints; import org.eclipse.lsp4j.services.LanguageClient; import org.eclipse.lsp4j.services.LanguageServer; @@ -24,6 +27,8 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; import static java.util.Arrays.asList; @@ -32,7 +37,7 @@ import static java.util.Arrays.asList; * @author Anatolii Bazko */ @Singleton -public class JsonLanguageServerLauncher extends LanguageServerLauncherTemplate { +public class JsonLanguageServerLauncher extends LanguageServerLauncherTemplate implements ServerInitializerObserver { private static final String LANGUAGE_ID = "json"; private static final String[] EXTENSIONS = new String[]{"json", "bowerrc", "jshintrc", "jscsrc", "eslintrc", @@ -42,6 +47,8 @@ public class JsonLanguageServerLauncher extends LanguageServerLauncherTemplate { private final Path launchScript; + private LanguageClient client; + @Inject public JsonLanguageServerLauncher() { launchScript = Paths.get(System.getenv("HOME"), "che/ls-json/launch.sh"); @@ -58,6 +65,7 @@ public class JsonLanguageServerLauncher extends LanguageServerLauncherTemplate { } protected LanguageServer connectToLanguageServer(final Process languageServerProcess, LanguageClient client) { + this.client = client; Launcher launcher = Launcher.createLauncher(client, LanguageServer.class, languageServerProcess.getInputStream(), languageServerProcess.getOutputStream()); @@ -82,4 +90,20 @@ public class JsonLanguageServerLauncher extends LanguageServerLauncherTemplate { description.setLanguageId(LANGUAGE_ID); description.setMimeTypes(asList(MIME_TYPES)); } + + @Override + public void onServerInitialized(LanguageServer server, ServerCapabilities capabilities, LanguageDescription languageDescription, String projectPath) { + Endpoint endpoint = ServiceEndpoints.toEndpoint(server); + JsonExtension serviceObject = ServiceEndpoints.toServiceObject(endpoint, JsonExtension.class); + Map associations = new HashMap<>(); + associations.put("/*.schema.json", new String[]{"http://json-schema.org/draft-04/schema#"}); + associations.put("/bower.json", new String[]{"http://json.schemastore.org/bower"}); + associations.put("/.bower.json", new String[]{"http://json.schemastore.org/bower"}); + associations.put("/.bowerrc", new String[]{"http://json.schemastore.org/bowerrc"}); + associations.put("/composer.json", new String[]{"https://getcomposer.org/schema.json"}); + associations.put("/package.json", new String[]{"http://json.schemastore.org/package"}); + associations.put("/jsconfig.json", new String[]{"http://json.schemastore.org/jsconfig"}); + associations.put("/tsconfig.json", new String[]{"http://json.schemastore.org/tsconfig"}); + serviceObject.jsonSchemaAssociation(associations); + } } diff --git a/plugins/plugin-json/pom.xml b/plugins/plugin-json/pom.xml index 3efe5adea8..aa3fa389ca 100644 --- a/plugins/plugin-json/pom.xml +++ b/plugins/plugin-json/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-json-parent diff --git a/plugins/plugin-keybinding-eclipse/plugin-keybinding-eclipse-ide/pom.xml b/plugins/plugin-keybinding-eclipse/plugin-keybinding-eclipse-ide/pom.xml index 027feea40a..8cdc056757 100644 --- a/plugins/plugin-keybinding-eclipse/plugin-keybinding-eclipse-ide/pom.xml +++ b/plugins/plugin-keybinding-eclipse/plugin-keybinding-eclipse-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-keybinding-eclipse-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-keybinding-eclipse-ide diff --git a/plugins/plugin-keybinding-eclipse/pom.xml b/plugins/plugin-keybinding-eclipse/pom.xml index 1e2add1b31..99c8f361e8 100644 --- a/plugins/plugin-keybinding-eclipse/pom.xml +++ b/plugins/plugin-keybinding-eclipse/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-keybinding-eclipse-parent diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/pom.xml b/plugins/plugin-languageserver/che-plugin-languageserver-ide/pom.xml index e798001d07..6eddd0c5a6 100644 --- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/pom.xml +++ b/plugins/plugin-languageserver/che-plugin-languageserver-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-languageserver-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT .. che-plugin-languageserver-ide diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/registry/LanguageServerRegistry.java b/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/registry/LanguageServerRegistry.java index 4520f91417..8dad885708 100644 --- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/registry/LanguageServerRegistry.java +++ b/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/registry/LanguageServerRegistry.java @@ -37,6 +37,7 @@ import org.eclipse.che.ide.websocket.MessageBusProvider; import org.eclipse.che.ide.websocket.WebSocketException; import org.eclipse.che.ide.websocket.rest.SubscriptionHandler; import org.eclipse.che.ide.websocket.rest.Unmarshallable; +import org.eclipse.che.plugin.languageserver.ide.service.LanguageServerRegistryJsonRpcClient; import org.eclipse.che.plugin.languageserver.ide.service.LanguageServerRegistryServiceClient; import org.eclipse.lsp4j.ServerCapabilities; @@ -47,6 +48,7 @@ import java.util.Map; import static org.eclipse.che.api.languageserver.shared.ProjectExtensionKey.createProjectKey; import static org.eclipse.che.ide.api.notification.StatusNotification.DisplayMode.EMERGE_MODE; import static org.eclipse.che.ide.api.notification.StatusNotification.Status.FAIL; +import static org.eclipse.che.ide.api.notification.StatusNotification.Status.WARNING; /** @@ -54,22 +56,24 @@ import static org.eclipse.che.ide.api.notification.StatusNotification.Status.FAI */ @Singleton public class LanguageServerRegistry { - private final EventBus eventBus; - private LoaderFactory loaderFactory; - private NotificationManager notificationManager; - private final LanguageServerRegistryServiceClient client; - + private final EventBus eventBus; + private final LanguageServerRegistryJsonRpcClient jsonRpcClient; + private final LanguageServerRegistryServiceClient client; private final Map projectToInitResult; private final Map> callbackMap; + private LoaderFactory loaderFactory; + private NotificationManager notificationManager; @Inject public LanguageServerRegistry(EventBus eventBus, LoaderFactory loaderFactory, NotificationManager notificationManager, + LanguageServerRegistryJsonRpcClient jsonRpcClient, LanguageServerRegistryServiceClient client) { this.eventBus = eventBus; this.loaderFactory = loaderFactory; this.notificationManager = notificationManager; + this.jsonRpcClient = jsonRpcClient; this.client = client; this.projectToInitResult = new HashMap<>(); this.callbackMap = new HashMap<>(); @@ -99,12 +103,23 @@ public class LanguageServerRegistry { //call initialize service final MessageLoader loader = loaderFactory.newLoader("Initializing Language Server for " + ext); loader.show(); - client.initializeServer(filePath).then(arg -> { - loader.hide(); - }).catchError(arg -> { - notificationManager.notify("Initializing Language Server for " + ext, arg.getMessage(), FAIL, EMERGE_MODE); - loader.hide(); - }); + + jsonRpcClient.initializeServer(filePath) + .onSuccess(loader::hide) + .onFailure((error) -> { + notificationManager + .notify("Failed to initialize language server for " + ext + " : ", error.getMessage(), FAIL, + EMERGE_MODE); + loader.hide(); + }) + .onTimeout(() -> { + notificationManager + .notify("Possible problem starting a language server", "The server either hangs or starts long", + WARNING, + EMERGE_MODE); + loader.hide(); + }); + //wait for response return CallbackPromiseHelper.createFromCallback(callback -> callbackMap.put(key, callback)); } diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/service/LanguageServerRegistryJsonRpcClient.java b/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/service/LanguageServerRegistryJsonRpcClient.java new file mode 100644 index 0000000000..e993281b93 --- /dev/null +++ b/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/service/LanguageServerRegistryJsonRpcClient.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2012-2017 Codenvy, S.A. + * 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: + * Codenvy, S.A. - initial API and implementation + *******************************************************************************/ +package org.eclipse.che.plugin.languageserver.ide.service; + +import com.google.inject.Inject; +import com.google.inject.Singleton; + +import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcPromise; +import org.eclipse.che.api.core.jsonrpc.commons.RequestTransmitter; +import org.eclipse.che.ide.api.app.AppContext; +import org.eclipse.che.ide.rest.AsyncRequestFactory; +import org.eclipse.che.ide.rest.DtoUnmarshallerFactory; + +@Singleton +public class LanguageServerRegistryJsonRpcClient { + + private final RequestTransmitter requestTransmitter; + + @Inject + public LanguageServerRegistryJsonRpcClient(RequestTransmitter requestTransmitter) { + this.requestTransmitter = requestTransmitter; + } + + public JsonRpcPromise initializeServer(String path) { + return requestTransmitter.newRequest() + .endpointId("ws-agent") + .methodName("languageServer/initialize") + .paramsAsString(path) + .sendAndReceiveResultAsBoolean(30_000); + } + +} diff --git a/plugins/plugin-languageserver/pom.xml b/plugins/plugin-languageserver/pom.xml index 4bd31cf40e..8c7f7d758a 100644 --- a/plugins/plugin-languageserver/pom.xml +++ b/plugins/plugin-languageserver/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-languageserver-parent diff --git a/plugins/plugin-machine/che-plugin-machine-ext-server/pom.xml b/plugins/plugin-machine/che-plugin-machine-ext-server/pom.xml index 6e484e4d9d..88ed90d3dc 100644 --- a/plugins/plugin-machine/che-plugin-machine-ext-server/pom.xml +++ b/plugins/plugin-machine/che-plugin-machine-ext-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-machine-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-machine-ext-server diff --git a/plugins/plugin-machine/che-plugin-machine-ssh-client/pom.xml b/plugins/plugin-machine/che-plugin-machine-ssh-client/pom.xml index 28da670016..e52538a3e6 100644 --- a/plugins/plugin-machine/che-plugin-machine-ssh-client/pom.xml +++ b/plugins/plugin-machine/che-plugin-machine-ssh-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-machine-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-machine-ssh-client jar diff --git a/plugins/plugin-machine/pom.xml b/plugins/plugin-machine/pom.xml index 5001223ea1..9f5734e171 100644 --- a/plugins/plugin-machine/pom.xml +++ b/plugins/plugin-machine/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-machine-parent diff --git a/plugins/plugin-maven/che-plugin-maven-generator-archetype/pom.xml b/plugins/plugin-maven/che-plugin-maven-generator-archetype/pom.xml index 8feb174f91..793a78944f 100644 --- a/plugins/plugin-maven/che-plugin-maven-generator-archetype/pom.xml +++ b/plugins/plugin-maven/che-plugin-maven-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-maven-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-maven-generator-archetype jar diff --git a/plugins/plugin-maven/che-plugin-maven-ide/pom.xml b/plugins/plugin-maven/che-plugin-maven-ide/pom.xml index 143342cbc9..032a0a5a2a 100644 --- a/plugins/plugin-maven/che-plugin-maven-ide/pom.xml +++ b/plugins/plugin-maven/che-plugin-maven-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-maven-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-maven-ide Che Plugin :: Maven :: Extension Maven Client diff --git a/plugins/plugin-maven/che-plugin-maven-server/pom.xml b/plugins/plugin-maven/che-plugin-maven-server/pom.xml index a7caffaed6..cda158e50b 100644 --- a/plugins/plugin-maven/che-plugin-maven-server/pom.xml +++ b/plugins/plugin-maven/che-plugin-maven-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-maven-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-maven-server jar diff --git a/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/MavenServerManager.java b/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/MavenServerManager.java index b42cfae648..b30a4eef9d 100644 --- a/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/MavenServerManager.java +++ b/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/MavenServerManager.java @@ -13,7 +13,6 @@ package org.eclipse.che.plugin.maven.server; import com.google.inject.Inject; import com.google.inject.Singleton; import com.google.inject.name.Named; - import org.eclipse.che.maven.data.MavenExplicitProfiles; import org.eclipse.che.maven.data.MavenModel; import org.eclipse.che.maven.server.MavenRemoteServer; @@ -192,7 +191,7 @@ public class MavenServerManager extends RmiObjectWrapper { public JavaParameters buildMavenServerParameters() { JavaParameters parameters = new JavaParameters(); - parameters.setJavaExecutable("java"); + parameters.setJavaExecutable(System.getProperties().getProperty("java.home") + "/bin/java"); parameters.setWorkingDirectory(System.getProperty("java.io.tmpdir")); parameters.setMainClassName(MAVEN_SERVER_MAIN); //TODO read and set MAVEN_OPTS system properties @@ -203,9 +202,7 @@ public class MavenServerManager extends RmiObjectWrapper { String mavenHome = System.getenv("M2_HOME"); addDirToClasspath(classPath, new File(mavenHome, "lib")); File bootDir = new File(mavenHome, "boot"); - File[] classworlds = bootDir.listFiles((dir, name) -> { - return name.contains("classworlds"); - }); + File[] classworlds = bootDir.listFiles((dir, name) -> name.contains("classworlds")); if (classworlds != null) { for (File file : classworlds) { diff --git a/plugins/plugin-maven/che-plugin-maven-shared/pom.xml b/plugins/plugin-maven/che-plugin-maven-shared/pom.xml index aab9112b64..ad701afbf9 100644 --- a/plugins/plugin-maven/che-plugin-maven-shared/pom.xml +++ b/plugins/plugin-maven/che-plugin-maven-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-maven-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-maven-shared Che Plugin :: Maven :: Extension Maven Shared diff --git a/plugins/plugin-maven/che-plugin-maven-tools/pom.xml b/plugins/plugin-maven/che-plugin-maven-tools/pom.xml index 6b48ddaf9d..4cf2bdcdf5 100644 --- a/plugins/plugin-maven/che-plugin-maven-tools/pom.xml +++ b/plugins/plugin-maven/che-plugin-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-maven-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-java-maven-tools jar diff --git a/plugins/plugin-maven/che-plugin-maven-wsmaster/pom.xml b/plugins/plugin-maven/che-plugin-maven-wsmaster/pom.xml index 636617c918..8b3e368660 100644 --- a/plugins/plugin-maven/che-plugin-maven-wsmaster/pom.xml +++ b/plugins/plugin-maven/che-plugin-maven-wsmaster/pom.xml @@ -16,7 +16,7 @@ che-plugin-maven-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-maven-wsmaster jar diff --git a/plugins/plugin-maven/maven-server/maven-server-api/pom.xml b/plugins/plugin-maven/maven-server/maven-server-api/pom.xml index f8a34c0aed..2009456164 100644 --- a/plugins/plugin-maven/maven-server/maven-server-api/pom.xml +++ b/plugins/plugin-maven/maven-server/maven-server-api/pom.xml @@ -16,7 +16,7 @@ che-maven-server org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT maven-server-api jar diff --git a/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml b/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml index be800bb1cd..85be0d8517 100644 --- a/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml +++ b/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml @@ -16,7 +16,7 @@ che-maven-server org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT maven-server-impl jar diff --git a/plugins/plugin-maven/maven-server/pom.xml b/plugins/plugin-maven/maven-server/pom.xml index a87e123c49..06fbf94113 100644 --- a/plugins/plugin-maven/maven-server/pom.xml +++ b/plugins/plugin-maven/maven-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-maven-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-maven-server pom diff --git a/plugins/plugin-maven/pom.xml b/plugins/plugin-maven/pom.xml index 256312cc30..2d14e2a0c3 100644 --- a/plugins/plugin-maven/pom.xml +++ b/plugins/plugin-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-maven-parent diff --git a/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-ide/pom.xml b/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-ide/pom.xml index 575a048963..a0de3130ad 100644 --- a/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-ide/pom.xml +++ b/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-nodejs-debugger-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-nodejs-debugger-ide jar diff --git a/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-server/pom.xml b/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-server/pom.xml index 0c2cca9333..cef909af02 100644 --- a/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-server/pom.xml +++ b/plugins/plugin-nodejs-debugger/che-plugin-nodejs-debugger-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-nodejs-debugger-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-nodejs-debugger-server jar diff --git a/plugins/plugin-nodejs-debugger/pom.xml b/plugins/plugin-nodejs-debugger/pom.xml index 8acbb25ffa..1c3abd19a4 100644 --- a/plugins/plugin-nodejs-debugger/pom.xml +++ b/plugins/plugin-nodejs-debugger/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-nodejs-debugger-parent pom diff --git a/plugins/plugin-nodejs/che-plugin-nodejs-lang-ide/pom.xml b/plugins/plugin-nodejs/che-plugin-nodejs-lang-ide/pom.xml index 3a6df54dcb..6109d58f07 100644 --- a/plugins/plugin-nodejs/che-plugin-nodejs-lang-ide/pom.xml +++ b/plugins/plugin-nodejs/che-plugin-nodejs-lang-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-nodejs-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-nodejs-lang-ide jar diff --git a/plugins/plugin-nodejs/che-plugin-nodejs-lang-server/pom.xml b/plugins/plugin-nodejs/che-plugin-nodejs-lang-server/pom.xml index 9f292d8c0b..38c183c83d 100644 --- a/plugins/plugin-nodejs/che-plugin-nodejs-lang-server/pom.xml +++ b/plugins/plugin-nodejs/che-plugin-nodejs-lang-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-nodejs-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-nodejs-lang-server Che Plugin :: NodeJs :: Extension Server diff --git a/plugins/plugin-nodejs/che-plugin-nodejs-lang-shared/pom.xml b/plugins/plugin-nodejs/che-plugin-nodejs-lang-shared/pom.xml index 4dd5814df3..11e03ad0f2 100644 --- a/plugins/plugin-nodejs/che-plugin-nodejs-lang-shared/pom.xml +++ b/plugins/plugin-nodejs/che-plugin-nodejs-lang-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-nodejs-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-nodejs-lang-shared Che Plugin :: NodeJs :: Extension Shared diff --git a/plugins/plugin-nodejs/pom.xml b/plugins/plugin-nodejs/pom.xml index a8a9938eca..b967cbd721 100644 --- a/plugins/plugin-nodejs/pom.xml +++ b/plugins/plugin-nodejs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-nodejs-parent diff --git a/plugins/plugin-orion/che-plugin-orion-compare/pom.xml b/plugins/plugin-orion/che-plugin-orion-compare/pom.xml index d5be55671e..5ca23147ee 100644 --- a/plugins/plugin-orion/che-plugin-orion-compare/pom.xml +++ b/plugins/plugin-orion/che-plugin-orion-compare/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-orion-compare jar diff --git a/plugins/plugin-orion/che-plugin-orion-editor/pom.xml b/plugins/plugin-orion/che-plugin-orion-editor/pom.xml index 5229027b85..597a00d70d 100644 --- a/plugins/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugins/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-orion-editor diff --git a/plugins/plugin-orion/pom.xml b/plugins/plugin-orion/pom.xml index 98e862efd3..63af0c18f4 100644 --- a/plugins/plugin-orion/pom.xml +++ b/plugins/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-orion-parent diff --git a/plugins/plugin-php/che-plugin-php-lang-ide/pom.xml b/plugins/plugin-php/che-plugin-php-lang-ide/pom.xml index f5ebd1c0df..821ea0b237 100644 --- a/plugins/plugin-php/che-plugin-php-lang-ide/pom.xml +++ b/plugins/plugin-php/che-plugin-php-lang-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-php-lang-ide jar diff --git a/plugins/plugin-php/che-plugin-php-lang-server/pom.xml b/plugins/plugin-php/che-plugin-php-lang-server/pom.xml index 6d598e4f8b..a7c0766527 100644 --- a/plugins/plugin-php/che-plugin-php-lang-server/pom.xml +++ b/plugins/plugin-php/che-plugin-php-lang-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-php-lang-server Che Plugin :: PHP :: Extension Server diff --git a/plugins/plugin-php/che-plugin-php-lang-shared/pom.xml b/plugins/plugin-php/che-plugin-php-lang-shared/pom.xml index 20c200d225..b7e7c0e5a2 100644 --- a/plugins/plugin-php/che-plugin-php-lang-shared/pom.xml +++ b/plugins/plugin-php/che-plugin-php-lang-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-php-lang-shared Che Plugin :: PHP :: Shared diff --git a/plugins/plugin-php/pom.xml b/plugins/plugin-php/pom.xml index e01626a3b8..8f3ea97c2b 100644 --- a/plugins/plugin-php/pom.xml +++ b/plugins/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-php-parent diff --git a/plugins/plugin-product-info/pom.xml b/plugins/plugin-product-info/pom.xml index bc1e578c39..14cd0b6e59 100644 --- a/plugins/plugin-product-info/pom.xml +++ b/plugins/plugin-product-info/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-product-info diff --git a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/pom.xml b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/pom.xml index 19b5552c61..35d7de2b4b 100644 --- a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/pom.xml +++ b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-pullrequest-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-pullrequest-ide Che Plugin :: Pull request :: IDE diff --git a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-server/pom.xml b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-server/pom.xml index 4e32e644c2..03c7be6614 100644 --- a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-server/pom.xml +++ b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-pullrequest-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-pullrequest-server Che Plugin :: Pull request :: Server diff --git a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-shared/pom.xml b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-shared/pom.xml index e533e9b05f..6a54c13e2c 100644 --- a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-shared/pom.xml +++ b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-pullrequest-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-pullrequest-shared Che Plugin :: Pull request :: Shared diff --git a/plugins/plugin-pullrequest-parent/pom.xml b/plugins/plugin-pullrequest-parent/pom.xml index 96c4d9b6e1..987e4f5946 100644 --- a/plugins/plugin-pullrequest-parent/pom.xml +++ b/plugins/plugin-pullrequest-parent/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-pullrequest-parent pom diff --git a/plugins/plugin-python/che-plugin-python-lang-ide/pom.xml b/plugins/plugin-python/che-plugin-python-lang-ide/pom.xml index b56827e8c7..afab5cfa5d 100644 --- a/plugins/plugin-python/che-plugin-python-lang-ide/pom.xml +++ b/plugins/plugin-python/che-plugin-python-lang-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-python-lang-ide jar diff --git a/plugins/plugin-python/che-plugin-python-lang-server/pom.xml b/plugins/plugin-python/che-plugin-python-lang-server/pom.xml index ea716d1984..0d6d14b364 100644 --- a/plugins/plugin-python/che-plugin-python-lang-server/pom.xml +++ b/plugins/plugin-python/che-plugin-python-lang-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-python-lang-server Che Plugin :: Python :: Extension Server diff --git a/plugins/plugin-python/che-plugin-python-lang-server/src/main/java/org/eclipse/che/plugin/python/languageserver/PythonLanguageSeverLauncher.java b/plugins/plugin-python/che-plugin-python-lang-server/src/main/java/org/eclipse/che/plugin/python/languageserver/PythonLanguageSeverLauncher.java index 113ad214d0..dda38dac3a 100644 --- a/plugins/plugin-python/che-plugin-python-lang-server/src/main/java/org/eclipse/che/plugin/python/languageserver/PythonLanguageSeverLauncher.java +++ b/plugins/plugin-python/che-plugin-python-lang-server/src/main/java/org/eclipse/che/plugin/python/languageserver/PythonLanguageSeverLauncher.java @@ -61,7 +61,7 @@ public class PythonLanguageSeverLauncher extends LanguageServerLauncherTemplate try { return processBuilder.start(); } catch (IOException e) { - throw new LanguageServerException("Can't start CSharp language server", e); + throw new LanguageServerException("Can't start Python language server", e); } } diff --git a/plugins/plugin-python/che-plugin-python-lang-shared/pom.xml b/plugins/plugin-python/che-plugin-python-lang-shared/pom.xml index 02f5e2465e..d9ffbe862d 100644 --- a/plugins/plugin-python/che-plugin-python-lang-shared/pom.xml +++ b/plugins/plugin-python/che-plugin-python-lang-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-python-lang-shared che-plugin-python-lang-shared diff --git a/plugins/plugin-python/pom.xml b/plugins/plugin-python/pom.xml index b18a863e0e..e3a3e05bf4 100644 --- a/plugins/plugin-python/pom.xml +++ b/plugins/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-python-parent diff --git a/plugins/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugins/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index 7d0a15bbd7..bab04a5c82 100644 --- a/plugins/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugins/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-sdk-ext-plugins jar diff --git a/plugins/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugins/plugin-sdk/che-plugin-sdk-tools/pom.xml index 3416b28469..6348a351c0 100644 --- a/plugins/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugins/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-sdk-tools jar diff --git a/plugins/plugin-sdk/pom.xml b/plugins/plugin-sdk/pom.xml index 9cc4350185..bccbe261bf 100644 --- a/plugins/plugin-sdk/pom.xml +++ b/plugins/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-sdk-parent diff --git a/plugins/plugin-ssh-machine/pom.xml b/plugins/plugin-ssh-machine/pom.xml index 4cfffeaf44..0893d24438 100644 --- a/plugins/plugin-ssh-machine/pom.xml +++ b/plugins/plugin-ssh-machine/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-ssh-machine diff --git a/plugins/plugin-svn/che-plugin-svn-ext-ide/pom.xml b/plugins/plugin-svn/che-plugin-svn-ext-ide/pom.xml index 9bdf1af97c..94a9c36b78 100644 --- a/plugins/plugin-svn/che-plugin-svn-ext-ide/pom.xml +++ b/plugins/plugin-svn/che-plugin-svn-ext-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-svn-ext-ide jar diff --git a/plugins/plugin-svn/che-plugin-svn-ext-server/pom.xml b/plugins/plugin-svn/che-plugin-svn-ext-server/pom.xml index a189a77347..f7a6320130 100644 --- a/plugins/plugin-svn/che-plugin-svn-ext-server/pom.xml +++ b/plugins/plugin-svn/che-plugin-svn-ext-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-svn-ext-server jar diff --git a/plugins/plugin-svn/che-plugin-svn-ext-shared/pom.xml b/plugins/plugin-svn/che-plugin-svn-ext-shared/pom.xml index ee989829cb..5534b95478 100644 --- a/plugins/plugin-svn/che-plugin-svn-ext-shared/pom.xml +++ b/plugins/plugin-svn/che-plugin-svn-ext-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-svn-ext-shared jar diff --git a/plugins/plugin-svn/pom.xml b/plugins/plugin-svn/pom.xml index a943333966..7d5c826282 100644 --- a/plugins/plugin-svn/pom.xml +++ b/plugins/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-svn-parent diff --git a/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-maven-server/pom.xml b/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-maven-server/pom.xml index 20e79d09b1..9e127ea563 100644 --- a/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-maven-server/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-maven-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-classpath org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-classpath-maven-server Che Plugin :: Java Testing :: Maven Classpath diff --git a/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-server/pom.xml b/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-server/pom.xml index 8c4420981a..7730ba09b6 100644 --- a/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-server/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-classpath/che-plugin-testing-classpath-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-classpath org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-classpath-server Che Plugin :: Java Testing :: Classpath diff --git a/plugins/plugin-testing-java/plugin-testing-classpath/pom.xml b/plugins/plugin-testing-java/plugin-testing-classpath/pom.xml index 013dc31cb7..b3e8284afd 100644 --- a/plugins/plugin-testing-java/plugin-testing-classpath/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-classpath/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-classpath pom diff --git a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/pom.xml b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/pom.xml index 08bffaa7fc..8d970b7df8 100644 --- a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-junit org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-junit-ide Che Plugin :: Java Testing :: JUnit IDE diff --git a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunAllTestAction.java b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunAllTestAction.java index e4b90f8348..224b05c9b6 100644 --- a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunAllTestAction.java +++ b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunAllTestAction.java @@ -18,7 +18,6 @@ import org.eclipse.che.ide.api.app.AppContext; import org.eclipse.che.ide.api.notification.NotificationManager; import org.eclipse.che.ide.api.resources.Project; import org.eclipse.che.ide.api.resources.Resource; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.plugin.testing.ide.TestServiceClient; import org.eclipse.che.plugin.testing.ide.action.RunTestActionDelegate; import org.eclipse.che.plugin.testing.ide.view.TestResultPresenter; @@ -26,10 +25,10 @@ import org.eclipse.che.plugin.testing.junit.ide.JUnitTestLocalizationConstant; import org.eclipse.che.plugin.testing.junit.ide.JUnitTestResources; import javax.validation.constraints.NotNull; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import static java.util.Collections.singletonList; import static org.eclipse.che.ide.part.perspectives.project.ProjectPerspective.PROJECT_PERSPECTIVE_ID; /** @@ -43,24 +42,21 @@ public class RunAllTestAction extends AbstractPerspectiveAction private final TestResultPresenter presenter; private final TestServiceClient service; private final AppContext appContext; - private final SelectionAgent selectionAgent; private final RunTestActionDelegate delegate; @Inject public RunAllTestAction(JUnitTestResources resources, - NotificationManager notificationManager, - AppContext appContext, - TestResultPresenter presenter, - TestServiceClient service, - SelectionAgent selectionAgent, - JUnitTestLocalizationConstant localization) { - super(Arrays.asList(PROJECT_PERSPECTIVE_ID), localization.actionRunAllTitle(), + NotificationManager notificationManager, + AppContext appContext, + TestResultPresenter presenter, + TestServiceClient service, + JUnitTestLocalizationConstant localization) { + super(singletonList(PROJECT_PERSPECTIVE_ID), localization.actionRunAllTitle(), localization.actionRunAllDescription(), null, resources.testAllIcon()); this.notificationManager = notificationManager; this.presenter = presenter; this.service = service; this.appContext = appContext; - this.selectionAgent = selectionAgent; this.delegate = new RunTestActionDelegate(this); } @@ -79,18 +75,14 @@ public class RunAllTestAction extends AbstractPerspectiveAction @Override public void updateInPerspective(@NotNull ActionEvent e) { Resource resource = appContext.getResource(); - if (resource == null) { + if (resource == null || resource.getProject() == null) { e.getPresentation().setEnabledAndVisible(false); + return; } - - Project project = resource.getProject(); - if (project == null) { - e.getPresentation().setEnabledAndVisible(false); - } - + e.getPresentation().setVisible(true); - String projectType = project.getType(); + String projectType = resource.getProject().getType(); boolean enable = "maven".equals(projectType); e.getPresentation().setEnabled(enable); } diff --git a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunClassTestAction.java b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunClassTestAction.java index 4cd85ceb22..d078bd2a67 100644 --- a/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunClassTestAction.java +++ b/plugins/plugin-testing-java/plugin-testing-junit/che-plugin-testing-junit-ide/src/main/java/org/eclipse/che/plugin/testing/junit/ide/action/RunClassTestAction.java @@ -17,7 +17,6 @@ import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; import org.eclipse.che.ide.api.notification.NotificationManager; import org.eclipse.che.ide.api.resources.File; -import org.eclipse.che.ide.api.resources.Project; import org.eclipse.che.ide.api.resources.Resource; import org.eclipse.che.ide.api.resources.VirtualFile; import org.eclipse.che.ide.ext.java.client.util.JavaUtil; @@ -28,10 +27,10 @@ import org.eclipse.che.plugin.testing.junit.ide.JUnitTestLocalizationConstant; import org.eclipse.che.plugin.testing.junit.ide.JUnitTestResources; import javax.validation.constraints.NotNull; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import static java.util.Collections.singletonList; import static org.eclipse.che.ide.part.perspectives.project.ProjectPerspective.PROJECT_PERSPECTIVE_ID; /** @@ -49,12 +48,12 @@ public class RunClassTestAction extends AbstractPerspectiveAction @Inject public RunClassTestAction(JUnitTestResources resources, - NotificationManager notificationManager, - AppContext appContext, - TestResultPresenter presenter, - TestServiceClient service, - JUnitTestLocalizationConstant localization) { - super(Arrays.asList(PROJECT_PERSPECTIVE_ID), localization.actionRunClassTitle(), + NotificationManager notificationManager, + AppContext appContext, + TestResultPresenter presenter, + TestServiceClient service, + JUnitTestLocalizationConstant localization) { + super(singletonList(PROJECT_PERSPECTIVE_ID), localization.actionRunClassTitle(), localization.actionRunClassDescription(), null, resources.testIcon()); this.notificationManager = notificationManager; this.presenter = presenter; @@ -79,20 +78,15 @@ public class RunClassTestAction extends AbstractPerspectiveAction @Override public void updateInPerspective(@NotNull ActionEvent e) { Resource resource = appContext.getResource(); - if (! (resource instanceof File)) { + if (!(resource instanceof File) || resource.getProject() == null) { e.getPresentation().setEnabledAndVisible(false); return; } - - Project project = resource.getProject(); - if (project == null) { - e.getPresentation().setEnabledAndVisible(false); - } - + e.getPresentation().setVisible(true); - String projectType = project.getType(); - if (! "maven".equals(projectType)) { + String projectType = resource.getProject().getType(); + if (!"maven".equals(projectType)) { e.getPresentation().setEnabled(false); } 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 a6969e5389..ee47f74abb 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 @@ -16,7 +16,7 @@ che-plugin-testing-junit org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-junit-server Che Plugin :: Java Testing :: JUnit Server diff --git a/plugins/plugin-testing-java/plugin-testing-junit/pom.xml b/plugins/plugin-testing-java/plugin-testing-junit/pom.xml index 47d3c735d3..d75983f88b 100644 --- a/plugins/plugin-testing-java/plugin-testing-junit/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-junit/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-junit pom diff --git a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/pom.xml b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/pom.xml index 681283f238..b9e4d10abe 100644 --- a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-testng org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-testng-ide Che Plugin :: Java Testing :: TestNG IDE diff --git a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunAllTestAction.java b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunAllTestAction.java index 56de71f3f8..d92169e6f9 100644 --- a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunAllTestAction.java +++ b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunAllTestAction.java @@ -25,10 +25,10 @@ import org.eclipse.che.plugin.testing.testng.ide.TestNGLocalizationConstant; import org.eclipse.che.plugin.testing.testng.ide.TestNGResources; import javax.validation.constraints.NotNull; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import static java.util.Collections.singletonList; import static org.eclipse.che.ide.part.perspectives.project.ProjectPerspective.PROJECT_PERSPECTIVE_ID; /** @@ -46,12 +46,12 @@ public class RunAllTestAction extends AbstractPerspectiveAction @Inject public RunAllTestAction(TestNGResources resources, - NotificationManager notificationManager, - AppContext appContext, - TestResultPresenter presenter, - TestServiceClient service, - TestNGLocalizationConstant localization) { - super(Arrays.asList(PROJECT_PERSPECTIVE_ID), localization.actionRunAllTitle(), + NotificationManager notificationManager, + AppContext appContext, + TestResultPresenter presenter, + TestServiceClient service, + TestNGLocalizationConstant localization) { + super(singletonList(PROJECT_PERSPECTIVE_ID), localization.actionRunAllTitle(), localization.actionRunAllDescription(), null, resources.testAllIcon()); this.notificationManager = notificationManager; this.presenter = presenter; @@ -75,22 +75,18 @@ public class RunAllTestAction extends AbstractPerspectiveAction @Override public void updateInPerspective(@NotNull ActionEvent e) { Resource resource = appContext.getResource(); - if (resource == null) { + if (resource == null || resource.getProject() == null) { e.getPresentation().setEnabledAndVisible(false); + return; } - - Project project = resource.getProject(); - if (project == null) { - e.getPresentation().setEnabledAndVisible(false); - } - + e.getPresentation().setVisible(true); - String projectType = project.getType(); + String projectType = resource.getProject().getType(); boolean enable = "maven".equals(projectType); e.getPresentation().setEnabled(enable); } - + @Override public NotificationManager getNotificationManager() { return notificationManager; diff --git a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunClassTestAction.java b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunClassTestAction.java index 5f76502ac6..784f370ce0 100644 --- a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunClassTestAction.java +++ b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunClassTestAction.java @@ -15,14 +15,11 @@ import com.google.inject.Inject; import org.eclipse.che.ide.api.action.AbstractPerspectiveAction; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.editor.EditorAgent; import org.eclipse.che.ide.api.notification.NotificationManager; import org.eclipse.che.ide.api.resources.File; -import org.eclipse.che.ide.api.resources.Project; import org.eclipse.che.ide.api.resources.Resource; import org.eclipse.che.ide.api.resources.VirtualFile; import org.eclipse.che.ide.ext.java.client.util.JavaUtil; -import org.eclipse.che.ide.rest.DtoUnmarshallerFactory; import org.eclipse.che.plugin.testing.ide.TestServiceClient; import org.eclipse.che.plugin.testing.ide.action.RunTestActionDelegate; import org.eclipse.che.plugin.testing.ide.view.TestResultPresenter; @@ -30,10 +27,10 @@ import org.eclipse.che.plugin.testing.testng.ide.TestNGLocalizationConstant; import org.eclipse.che.plugin.testing.testng.ide.TestNGResources; import javax.validation.constraints.NotNull; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import static java.util.Collections.singletonList; import static org.eclipse.che.ide.part.perspectives.project.ProjectPerspective.PROJECT_PERSPECTIVE_ID; /** @@ -50,14 +47,12 @@ public class RunClassTestAction extends AbstractPerspectiveAction @Inject public RunClassTestAction(TestNGResources resources, - NotificationManager notificationManager, - EditorAgent editorAgent, - AppContext appContext, - TestResultPresenter presenter, - TestServiceClient service, - DtoUnmarshallerFactory dtoUnmarshallerFactory, - TestNGLocalizationConstant localization) { - super(Arrays.asList(PROJECT_PERSPECTIVE_ID), localization.actionRunClassTitle(), + NotificationManager notificationManager, + AppContext appContext, + TestResultPresenter presenter, + TestServiceClient service, + TestNGLocalizationConstant localization) { + super(singletonList(PROJECT_PERSPECTIVE_ID), localization.actionRunClassTitle(), localization.actionRunClassDescription(), null, resources.testIcon()); this.notificationManager = notificationManager; this.presenter = presenter; @@ -82,20 +77,15 @@ public class RunClassTestAction extends AbstractPerspectiveAction @Override public void updateInPerspective(@NotNull ActionEvent e) { Resource resource = appContext.getResource(); - if (! (resource instanceof File)) { + if (!(resource instanceof File) || resource.getProject() == null) { e.getPresentation().setEnabledAndVisible(false); return; } - - Project project = resource.getProject(); - if (project == null) { - e.getPresentation().setEnabledAndVisible(false); - } - + e.getPresentation().setVisible(true); - String projectType = project.getType(); - if (! "maven".equals(projectType)) { + String projectType = resource.getProject().getType(); + if (!"maven".equals(projectType)) { e.getPresentation().setEnabled(false); } diff --git a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunTestXMLAction.java b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunTestXMLAction.java index ce8ed7629f..60080a1780 100644 --- a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunTestXMLAction.java +++ b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-ide/src/main/java/org/eclipse/che/plugin/testing/testng/ide/action/RunTestXMLAction.java @@ -27,10 +27,10 @@ import org.eclipse.che.plugin.testing.testng.ide.TestNGLocalizationConstant; import org.eclipse.che.plugin.testing.testng.ide.TestNGResources; import javax.validation.constraints.NotNull; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import static java.util.Collections.singletonList; import static org.eclipse.che.ide.part.perspectives.project.ProjectPerspective.PROJECT_PERSPECTIVE_ID; /** @@ -48,12 +48,12 @@ public class RunTestXMLAction extends AbstractPerspectiveAction @Inject public RunTestXMLAction(TestNGResources resources, - NotificationManager notificationManager, - AppContext appContext, - TestResultPresenter presenter, - TestServiceClient service, - TestNGLocalizationConstant localization) { - super(Arrays.asList(PROJECT_PERSPECTIVE_ID), localization.actionRunXMLTitle(), + NotificationManager notificationManager, + AppContext appContext, + TestResultPresenter presenter, + TestServiceClient service, + TestNGLocalizationConstant localization) { + super(singletonList(PROJECT_PERSPECTIVE_ID), localization.actionRunXMLTitle(), localization.actionRunXMLDescription(), null, resources.testAllIcon()); this.notificationManager = notificationManager; this.presenter = presenter; @@ -79,32 +79,27 @@ public class RunTestXMLAction extends AbstractPerspectiveAction @Override public void updateInPerspective(@NotNull ActionEvent e) { Resource resource = appContext.getResource(); - if (resource == null) { + if (resource == null || resource.getProject() == null) { e.getPresentation().setEnabledAndVisible(false); return; } - - Project project = resource.getProject(); - if (project == null) { - e.getPresentation().setEnabledAndVisible(false); - } - + e.getPresentation().setVisible(true); - String projectType = project.getType(); - if (! "maven".equals(projectType)) { + String projectType = resource.getProject().getType(); + if (!"maven".equals(projectType)) { e.getPresentation().setEnabled(false); } - String expectedXmlFile = MavenAttributes.DEFAULT_TEST_RESOURCES_FOLDER + "/testng.xml"; if (resource instanceof File) { File file = (File)resource; + String expectedXmlFile = MavenAttributes.DEFAULT_TEST_RESOURCES_FOLDER + "/testng.xml"; e.getPresentation().setEnabled(file.getLocation().toString().endsWith(expectedXmlFile)); } else { e.getPresentation().setEnabled(true); } } - + @Override public NotificationManager getNotificationManager() { return notificationManager; diff --git a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-server/pom.xml b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-server/pom.xml index 02673a3de9..cc219847cd 100644 --- a/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-server/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-testng/che-plugin-testing-testng-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-testng org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-testng-server Che Plugin :: Java Testing :: TestNG Server diff --git a/plugins/plugin-testing-java/plugin-testing-testng/pom.xml b/plugins/plugin-testing-java/plugin-testing-testng/pom.xml index 26fb696c00..d2ff76660e 100644 --- a/plugins/plugin-testing-java/plugin-testing-testng/pom.xml +++ b/plugins/plugin-testing-java/plugin-testing-testng/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-java-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-testng pom diff --git a/plugins/plugin-testing-java/pom.xml b/plugins/plugin-testing-java/pom.xml index b31bb0c855..837cbbb1a8 100644 --- a/plugins/plugin-testing-java/pom.xml +++ b/plugins/plugin-testing-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-java-parent pom diff --git a/plugins/plugin-testing/che-plugin-testing-ide/pom.xml b/plugins/plugin-testing/che-plugin-testing-ide/pom.xml index b062527db9..a38a1ff4de 100644 --- a/plugins/plugin-testing/che-plugin-testing-ide/pom.xml +++ b/plugins/plugin-testing/che-plugin-testing-ide/pom.xml @@ -16,7 +16,7 @@ che-plugin-testing-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-ide Che Plugin :: Testing :: IDE diff --git a/plugins/plugin-testing/pom.xml b/plugins/plugin-testing/pom.xml index 75fca60a2d..a78ba0862c 100644 --- a/plugins/plugin-testing/pom.xml +++ b/plugins/plugin-testing/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-testing-parent pom diff --git a/plugins/plugin-traefik/plugin-traefik-docker/pom.xml b/plugins/plugin-traefik/plugin-traefik-docker/pom.xml index 522e7bdb3e..19d0338f3a 100644 --- a/plugins/plugin-traefik/plugin-traefik-docker/pom.xml +++ b/plugins/plugin-traefik/plugin-traefik-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-traefik-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-traefik-docker jar diff --git a/plugins/plugin-traefik/pom.xml b/plugins/plugin-traefik/pom.xml index d9e938c011..878f40865d 100644 --- a/plugins/plugin-traefik/pom.xml +++ b/plugins/plugin-traefik/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-traefik-parent diff --git a/plugins/plugin-urlfactory/pom.xml b/plugins/plugin-urlfactory/pom.xml index bf680fe1e4..dbf9be250a 100644 --- a/plugins/plugin-urlfactory/pom.xml +++ b/plugins/plugin-urlfactory/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-url-factory diff --git a/plugins/plugin-web/che-plugin-web-ext-server/pom.xml b/plugins/plugin-web/che-plugin-web-ext-server/pom.xml index 938608eb6a..7081897a09 100644 --- a/plugins/plugin-web/che-plugin-web-ext-server/pom.xml +++ b/plugins/plugin-web/che-plugin-web-ext-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-web-ext-server diff --git a/plugins/plugin-web/che-plugin-web-ext-shared/pom.xml b/plugins/plugin-web/che-plugin-web-ext-shared/pom.xml index 135e08ebdf..0d5800ac9f 100644 --- a/plugins/plugin-web/che-plugin-web-ext-shared/pom.xml +++ b/plugins/plugin-web/che-plugin-web-ext-shared/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-web-ext-shared diff --git a/plugins/plugin-web/che-plugin-web-ext-web/pom.xml b/plugins/plugin-web/che-plugin-web-ext-web/pom.xml index 0af006acdc..2a2f0a429f 100644 --- a/plugins/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugins/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-web-ext-web jar diff --git a/plugins/plugin-web/pom.xml b/plugins/plugin-web/pom.xml index 98b800f855..1a47582749 100644 --- a/plugins/plugin-web/pom.xml +++ b/plugins/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-web-parent diff --git a/plugins/plugin-zend-debugger/che-plugin-zend-debugger-ide/pom.xml b/plugins/plugin-zend-debugger/che-plugin-zend-debugger-ide/pom.xml index 160421cd63..0183aca516 100644 --- a/plugins/plugin-zend-debugger/che-plugin-zend-debugger-ide/pom.xml +++ b/plugins/plugin-zend-debugger/che-plugin-zend-debugger-ide/pom.xml @@ -13,7 +13,7 @@ che-plugin-zend-debugger-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-zend-debugger-ide jar diff --git a/plugins/plugin-zend-debugger/che-plugin-zend-debugger-server/pom.xml b/plugins/plugin-zend-debugger/che-plugin-zend-debugger-server/pom.xml index 37c1e07b40..4cf18d7472 100644 --- a/plugins/plugin-zend-debugger/che-plugin-zend-debugger-server/pom.xml +++ b/plugins/plugin-zend-debugger/che-plugin-zend-debugger-server/pom.xml @@ -13,7 +13,7 @@ che-plugin-zend-debugger-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-plugin-zend-debugger-server jar diff --git a/plugins/plugin-zend-debugger/pom.xml b/plugins/plugin-zend-debugger/pom.xml index 573a793b3d..ec3d3106fa 100644 --- a/plugins/plugin-zend-debugger/pom.xml +++ b/plugins/plugin-zend-debugger/pom.xml @@ -13,7 +13,7 @@ che-plugin-parent org.eclipse.che.plugin - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-plugin-zend-debugger-parent diff --git a/plugins/pom.xml b/plugins/pom.xml index 971a2b25e6..04784c3ba9 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -16,12 +16,12 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml org.eclipse.che.plugin che-plugin-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Plugin :: Parent diff --git a/pom.xml b/pom.xml index 40a045afb3..8e5a7c277f 100644 --- a/pom.xml +++ b/pom.xml @@ -16,11 +16,11 @@ maven-depmgt-pom org.eclipse.che.depmgt - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che che-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Parent @@ -43,9 +43,9 @@ https://github.com/eclipse/che - 5.12.0-SNAPSHOT - 5.12.0-SNAPSHOT - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT + 5.13.0-SNAPSHOT + 5.13.0-SNAPSHOT 1.0-beta2 @@ -118,6 +118,11 @@ tar.gz linux_amd64 + + org.eclipse.che + git-credentials-agent + ${che.version} + org.eclipse.che infrastructure-docker diff --git a/samples/pom.xml b/samples/pom.xml index f831663e14..e45a760366 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -16,12 +16,12 @@ che-parent org.eclipse.che - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml org.eclipse.che.sample che-sample-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Sample :: Parent diff --git a/samples/sample-plugin-actions/README.md b/samples/sample-plugin-actions/README.md index d7afd800b3..44f3cb9048 100644 --- a/samples/sample-plugin-actions/README.md +++ b/samples/sample-plugin-actions/README.md @@ -22,20 +22,7 @@ Add: You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the `pom.xml` for you. -### 2- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML -... - -... -``` - -### 3- Rebuild Eclipse Che +### 2- Rebuild Eclipse Che ```Shell @@ -49,7 +36,7 @@ cd assembly/assembly-main mvn clean install ``` -### 4- Run Eclipse Che +### 3- Run Eclipse Che ```Shell # Start Che using the CLI with your new assembly diff --git a/samples/sample-plugin-actions/che-sample-plugin-actions-ide/pom.xml b/samples/sample-plugin-actions/che-sample-plugin-actions-ide/pom.xml index f146879c50..2b237fd51c 100644 --- a/samples/sample-plugin-actions/che-sample-plugin-actions-ide/pom.xml +++ b/samples/sample-plugin-actions/che-sample-plugin-actions-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-actions-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-actions-ide jar diff --git a/samples/sample-plugin-actions/pom.xml b/samples/sample-plugin-actions/pom.xml index 8e31e1c3ad..50b1e41ad2 100644 --- a/samples/sample-plugin-actions/pom.xml +++ b/samples/sample-plugin-actions/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-actions-parent diff --git a/samples/sample-plugin-embedjs/README.md b/samples/sample-plugin-embedjs/README.md index 7cc19aae1f..5fccfba386 100644 --- a/samples/sample-plugin-embedjs/README.md +++ b/samples/sample-plugin-embedjs/README.md @@ -23,20 +23,7 @@ Add: You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the `pom.xml` for you. -### 2- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML -... - -... -``` - -### 3- Rebuild Eclipse Che +### 2- Rebuild Eclipse Che ```Shell @@ -50,7 +37,7 @@ cd assembly/assembly-main mvn clean install ``` -### 4- Run Eclipse Che +### 3- Run Eclipse Che ```Shell # Start Che using the CLI with your new assembly diff --git a/samples/sample-plugin-embedjs/che-sample-plugin-embedjs-ide/pom.xml b/samples/sample-plugin-embedjs/che-sample-plugin-embedjs-ide/pom.xml index 05f21c7a5f..5f5dc48df4 100644 --- a/samples/sample-plugin-embedjs/che-sample-plugin-embedjs-ide/pom.xml +++ b/samples/sample-plugin-embedjs/che-sample-plugin-embedjs-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-embedjs-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-embedjs-ide jar diff --git a/samples/sample-plugin-embedjs/pom.xml b/samples/sample-plugin-embedjs/pom.xml index 6c82b8dbbd..afb0983c8d 100644 --- a/samples/sample-plugin-embedjs/pom.xml +++ b/samples/sample-plugin-embedjs/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-embedjs-parent diff --git a/samples/sample-plugin-filetype/README.md b/samples/sample-plugin-filetype/README.md index 12378014fb..1a84fffd95 100644 --- a/samples/sample-plugin-filetype/README.md +++ b/samples/sample-plugin-filetype/README.md @@ -22,18 +22,7 @@ Add: You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the `pom.xml` for you. -### 2- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML - -``` - -### 3- Rebuild Eclipse Che +### 2- Rebuild Eclipse Che ```Shell @@ -47,7 +36,7 @@ cd assembly/assembly-main mvn clean install ``` -### 4- Run Eclipse Che +### 3- Run Eclipse Che ```Shell # Start Che using the CLI with your new assembly diff --git a/samples/sample-plugin-filetype/che-sample-plugin-filetype-ide/pom.xml b/samples/sample-plugin-filetype/che-sample-plugin-filetype-ide/pom.xml index 9c009057e4..d29239245e 100644 --- a/samples/sample-plugin-filetype/che-sample-plugin-filetype-ide/pom.xml +++ b/samples/sample-plugin-filetype/che-sample-plugin-filetype-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-filetype-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-filetype-ide jar diff --git a/samples/sample-plugin-filetype/pom.xml b/samples/sample-plugin-filetype/pom.xml index 69888decd1..75e596c86f 100644 --- a/samples/sample-plugin-filetype/pom.xml +++ b/samples/sample-plugin-filetype/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-filetype-parent diff --git a/samples/sample-plugin-json/README.md b/samples/sample-plugin-json/README.md index 3543d4ed11..56a76290b4 100644 --- a/samples/sample-plugin-json/README.md +++ b/samples/sample-plugin-json/README.md @@ -51,20 +51,7 @@ Add: You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the pom.xml for you. -### 3- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML -... - -... -``` - -### 3- Rebuild Eclipse Che +### 2- Rebuild Eclipse Che ```Shell @@ -86,7 +73,7 @@ cd assembly/assembly-main mvn clean install ``` -### 4- Run Eclipse Che +### 3- Run Eclipse Che ```Shell # Start Che using the CLI with your new assembly diff --git a/samples/sample-plugin-json/che-sample-plugin-json-ide/pom.xml b/samples/sample-plugin-json/che-sample-plugin-json-ide/pom.xml index cbe00d7617..e1fde8c525 100644 --- a/samples/sample-plugin-json/che-sample-plugin-json-ide/pom.xml +++ b/samples/sample-plugin-json/che-sample-plugin-json-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-json-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-json-ide jar diff --git a/samples/sample-plugin-json/che-sample-plugin-json-server/pom.xml b/samples/sample-plugin-json/che-sample-plugin-json-server/pom.xml index f0f66cc965..68a2aef828 100644 --- a/samples/sample-plugin-json/che-sample-plugin-json-server/pom.xml +++ b/samples/sample-plugin-json/che-sample-plugin-json-server/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-json-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-json-server Che Sample :: Plugin JSON :: Server diff --git a/samples/sample-plugin-json/che-sample-plugin-json-shared/pom.xml b/samples/sample-plugin-json/che-sample-plugin-json-shared/pom.xml index b451a53d2c..c9381136f4 100644 --- a/samples/sample-plugin-json/che-sample-plugin-json-shared/pom.xml +++ b/samples/sample-plugin-json/che-sample-plugin-json-shared/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-json-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-json-shared Che Sample :: Plugin JSON :: Shared diff --git a/samples/sample-plugin-json/pom.xml b/samples/sample-plugin-json/pom.xml index 54c68fdf57..0aabb9773d 100644 --- a/samples/sample-plugin-json/pom.xml +++ b/samples/sample-plugin-json/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-json-parent diff --git a/samples/sample-plugin-nativeaccess/README.md b/samples/sample-plugin-nativeaccess/README.md index 4773c7ed7b..fedf4f7513 100644 --- a/samples/sample-plugin-nativeaccess/README.md +++ b/samples/sample-plugin-nativeaccess/README.md @@ -25,20 +25,7 @@ Add: You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the `pom.xml` for you. -### 2- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML -... - -... -``` - -### 3- Rebuild Eclipse Che +### 2- Rebuild Eclipse Che ```Shell @@ -52,7 +39,7 @@ cd assembly/assembly-main mvn clean install ``` -### 4- Run Eclipse Che +### 3- Run Eclipse Che ```Shell # Start Che using the CLI with your new assembly diff --git a/samples/sample-plugin-nativeaccess/che-sample-plugin-nativeaccess-ide/pom.xml b/samples/sample-plugin-nativeaccess/che-sample-plugin-nativeaccess-ide/pom.xml index 27f4eecee7..67dee5d760 100644 --- a/samples/sample-plugin-nativeaccess/che-sample-plugin-nativeaccess-ide/pom.xml +++ b/samples/sample-plugin-nativeaccess/che-sample-plugin-nativeaccess-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-nativeaccess-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-nativeaccess-ide jar diff --git a/samples/sample-plugin-nativeaccess/pom.xml b/samples/sample-plugin-nativeaccess/pom.xml index aa7d093099..ec9da189e6 100644 --- a/samples/sample-plugin-nativeaccess/pom.xml +++ b/samples/sample-plugin-nativeaccess/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-nativeaccess-parent diff --git a/samples/sample-plugin-parts/README.md b/samples/sample-plugin-parts/README.md index 3e8bf81d8f..6f00a18667 100644 --- a/samples/sample-plugin-parts/README.md +++ b/samples/sample-plugin-parts/README.md @@ -23,20 +23,7 @@ Add: You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the `pom.xml` for you. -### 2- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML -... - -... -``` - -### 3- Rebuild Eclipse Che +### 2- Rebuild Eclipse Che ```Shell @@ -50,7 +37,7 @@ cd assembly/assembly-main mvn clean install ``` -### 4- Run Eclipse Che +### 3- Run Eclipse Che ```Shell # Start Che using the CLI with your new assembly diff --git a/samples/sample-plugin-parts/che-sample-plugin-parts-ide/pom.xml b/samples/sample-plugin-parts/che-sample-plugin-parts-ide/pom.xml index 0e1320a229..9d91a15e9c 100644 --- a/samples/sample-plugin-parts/che-sample-plugin-parts-ide/pom.xml +++ b/samples/sample-plugin-parts/che-sample-plugin-parts-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-parts-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-parts-ide jar diff --git a/samples/sample-plugin-parts/pom.xml b/samples/sample-plugin-parts/pom.xml index 8ff6f5e6da..e21ab7caed 100644 --- a/samples/sample-plugin-parts/pom.xml +++ b/samples/sample-plugin-parts/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-parts-parent diff --git a/samples/sample-plugin-serverservice/README.md b/samples/sample-plugin-serverservice/README.md index 4510126848..4a8e5c02d9 100644 --- a/samples/sample-plugin-serverservice/README.md +++ b/samples/sample-plugin-serverservice/README.md @@ -37,21 +37,7 @@ Add: ``` You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the pom.xml for you. -### 3- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML -... - -... -``` - - -### 4- Rebuild Eclipse Che +### 3- Rebuild Eclipse Che ```Shell diff --git a/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-ide/pom.xml b/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-ide/pom.xml index 0f9b926b46..caf5d1b006 100644 --- a/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-ide/pom.xml +++ b/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-serverservice-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-serverservice-ide jar diff --git a/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-server/pom.xml b/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-server/pom.xml index 1112139f8f..47ffbbbd39 100644 --- a/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-server/pom.xml +++ b/samples/sample-plugin-serverservice/che-sample-plugin-serverservice-server/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-serverservice-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-serverservice-server Che Sample :: Plugin ServerService :: Server diff --git a/samples/sample-plugin-serverservice/pom.xml b/samples/sample-plugin-serverservice/pom.xml index 48e9a703fc..fad1400190 100644 --- a/samples/sample-plugin-serverservice/pom.xml +++ b/samples/sample-plugin-serverservice/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-serverservice-parent diff --git a/samples/sample-plugin-wizard/README.md b/samples/sample-plugin-wizard/README.md index 051cd7ec60..1d88dc51db 100644 --- a/samples/sample-plugin-wizard/README.md +++ b/samples/sample-plugin-wizard/README.md @@ -100,19 +100,6 @@ Add: You can insert the dependency anywhere in the list. After you have inserted it, run `mvn sortpom:sort` and maven will order the pom.xml for you. -### 3- Register dependency to the GWT application - -Link the GUI extension into the GWT app. You will add an `` tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension. - -In: `assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml` - -Add: -```XML -... - -... -``` - ### 3- Rebuild Eclipse Che diff --git a/samples/sample-plugin-wizard/che-sample-plugin-wizard-ide/pom.xml b/samples/sample-plugin-wizard/che-sample-plugin-wizard-ide/pom.xml index 4540b40738..af91eb4be8 100644 --- a/samples/sample-plugin-wizard/che-sample-plugin-wizard-ide/pom.xml +++ b/samples/sample-plugin-wizard/che-sample-plugin-wizard-ide/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-wizard-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-wizard-ide jar diff --git a/samples/sample-plugin-wizard/che-sample-plugin-wizard-server/pom.xml b/samples/sample-plugin-wizard/che-sample-plugin-wizard-server/pom.xml index ff32cc3452..2c1bfef3b4 100644 --- a/samples/sample-plugin-wizard/che-sample-plugin-wizard-server/pom.xml +++ b/samples/sample-plugin-wizard/che-sample-plugin-wizard-server/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-wizard-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-wizard-server Che Sample :: Plugin Wizard :: Server diff --git a/samples/sample-plugin-wizard/che-sample-plugin-wizard-shared/pom.xml b/samples/sample-plugin-wizard/che-sample-plugin-wizard-shared/pom.xml index 89b4a0047a..fbd8149a08 100644 --- a/samples/sample-plugin-wizard/che-sample-plugin-wizard-shared/pom.xml +++ b/samples/sample-plugin-wizard/che-sample-plugin-wizard-shared/pom.xml @@ -16,7 +16,7 @@ che-sample-plugin-wizard-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-sample-plugin-wizard-shared Che Sample :: Plugin Wizard :: Shared diff --git a/samples/sample-plugin-wizard/pom.xml b/samples/sample-plugin-wizard/pom.xml index 4a84ed8bb8..f13768d41b 100644 --- a/samples/sample-plugin-wizard/pom.xml +++ b/samples/sample-plugin-wizard/pom.xml @@ -16,7 +16,7 @@ che-sample-parent org.eclipse.che.sample - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml che-sample-plugin-wizard-parent diff --git a/wsagent/agent/pom.xml b/wsagent/agent/pom.xml index b478e8ca02..47b00082a6 100644 --- a/wsagent/agent/pom.xml +++ b/wsagent/agent/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT wsagent Workspace Agent diff --git a/wsagent/che-core-api-debug-shared/pom.xml b/wsagent/che-core-api-debug-shared/pom.xml index 35cfa84cf8..359dbe9c10 100644 --- a/wsagent/che-core-api-debug-shared/pom.xml +++ b/wsagent/che-core-api-debug-shared/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-debug-shared jar diff --git a/wsagent/che-core-api-debug/pom.xml b/wsagent/che-core-api-debug/pom.xml index 0f0ec30770..5a24076679 100644 --- a/wsagent/che-core-api-debug/pom.xml +++ b/wsagent/che-core-api-debug/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-debug Che Core :: API :: Debug diff --git a/wsagent/che-core-api-git-shared/pom.xml b/wsagent/che-core-api-git-shared/pom.xml index 3c8a4192a1..ecf15961cb 100644 --- a/wsagent/che-core-api-git-shared/pom.xml +++ b/wsagent/che-core-api-git-shared/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-git-shared jar diff --git a/wsagent/che-core-api-git/pom.xml b/wsagent/che-core-api-git/pom.xml index 508f8d5195..45dd791363 100644 --- a/wsagent/che-core-api-git/pom.xml +++ b/wsagent/che-core-api-git/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-git jar diff --git a/wsagent/che-core-api-languageserver-maven-plugin/pom.xml b/wsagent/che-core-api-languageserver-maven-plugin/pom.xml index ba14b0fa5c..7acece437c 100644 --- a/wsagent/che-core-api-languageserver-maven-plugin/pom.xml +++ b/wsagent/che-core-api-languageserver-maven-plugin/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-languageserver-maven-plugin maven-plugin diff --git a/wsagent/che-core-api-languageserver-shared/pom.xml b/wsagent/che-core-api-languageserver-shared/pom.xml index b040411d6f..eb4e44fca0 100644 --- a/wsagent/che-core-api-languageserver-shared/pom.xml +++ b/wsagent/che-core-api-languageserver-shared/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-languageserver-shared jar diff --git a/wsagent/che-core-api-languageserver-shared/src/main/java/org/eclipse/che/api/languageserver/shared/model/ExtendedCompletionItem.java b/wsagent/che-core-api-languageserver-shared/src/main/java/org/eclipse/che/api/languageserver/shared/model/ExtendedCompletionItem.java index 1a55c86536..2696f1c56e 100644 --- a/wsagent/che-core-api-languageserver-shared/src/main/java/org/eclipse/che/api/languageserver/shared/model/ExtendedCompletionItem.java +++ b/wsagent/che-core-api-languageserver-shared/src/main/java/org/eclipse/che/api/languageserver/shared/model/ExtendedCompletionItem.java @@ -10,13 +10,13 @@ import org.eclipse.lsp4j.TextDocumentIdentifier; */ public class ExtendedCompletionItem extends CompletionItem { - private TextDocumentIdentifier documentIdentifier; + private TextDocumentIdentifier textDocumentIdentifier; public TextDocumentIdentifier getTextDocumentIdentifier() { - return documentIdentifier; + return textDocumentIdentifier; } public void setTextDocumentIdentifier(TextDocumentIdentifier documentIdentifier) { - this.documentIdentifier = documentIdentifier; + this.textDocumentIdentifier = documentIdentifier; } } diff --git a/wsagent/che-core-api-languageserver/pom.xml b/wsagent/che-core-api-languageserver/pom.xml index 1b5125abe4..d0d7fff44d 100644 --- a/wsagent/che-core-api-languageserver/pom.xml +++ b/wsagent/che-core-api-languageserver/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-languageserver jar 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 bc771bf531..b2e2741e4e 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 @@ -22,6 +22,7 @@ import org.eclipse.che.api.languageserver.registry.LanguageServerRegistryImpl; import org.eclipse.che.api.languageserver.registry.ServerInitializer; import org.eclipse.che.api.languageserver.registry.ServerInitializerImpl; import org.eclipse.che.api.languageserver.service.LanguageRegistryService; +import org.eclipse.che.api.languageserver.service.LanguageServerInitializationHandler; import org.eclipse.che.api.languageserver.service.TextDocumentService; import org.eclipse.che.api.languageserver.service.WorkspaceService; @@ -39,5 +40,7 @@ public class LanguageServerModule extends AbstractModule { bind(TextDocumentService.class).asEagerSingleton(); bind(PublishDiagnosticsParamsJsonRpcTransmitter.class).asEagerSingleton(); bind(ShowMessageJsonRpcTransmitter.class).asEagerSingleton(); + + bind(LanguageServerInitializationHandler.class).asEagerSingleton(); } } diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/messager/PublishDiagnosticsParamsJsonRpcTransmitter.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/messager/PublishDiagnosticsParamsJsonRpcTransmitter.java index 6223c91abf..3d2233510c 100644 --- a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/messager/PublishDiagnosticsParamsJsonRpcTransmitter.java +++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/messager/PublishDiagnosticsParamsJsonRpcTransmitter.java @@ -31,7 +31,9 @@ public class PublishDiagnosticsParamsJsonRpcTransmitter { @Inject private void subscribe(EventService eventService, RequestTransmitter requestTransmitter) { eventService.subscribe(event -> { - event.setUri(event.getUri().substring(16)); + if(event.getUri() != null) { + event.setUri(event.getUri().substring(16)); + } endpointIds.forEach(endpointId -> requestTransmitter.newRequest() .endpointId(endpointId) .methodName("textDocument/publishDiagnostics") diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImpl.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImpl.java index c4aae3534d..313120d03a 100644 --- a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImpl.java +++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImpl.java @@ -12,7 +12,6 @@ package org.eclipse.che.api.languageserver.registry; import com.google.inject.Inject; import com.google.inject.Singleton; - import org.eclipse.che.api.core.notification.EventService; import org.eclipse.che.api.languageserver.exception.LanguageServerException; import org.eclipse.che.api.languageserver.launcher.LanguageServerLauncher; @@ -149,7 +148,7 @@ public class ServerInitializerImpl implements ServerInitializer { throw new LanguageServerException( "Can't initialize Language Server " + languageId + " on " + projectPath + ". " + e.getMessage(), e); } - registerCallbacks(server); + registerCallbacks(server, launcher); CompletableFuture completableFuture = server.initialize(initializeParams); try { @@ -166,11 +165,15 @@ public class ServerInitializerImpl implements ServerInitializer { return server; } - protected void registerCallbacks(LanguageServer server) { + protected void registerCallbacks(LanguageServer server, LanguageServerLauncher launcher) { if (server instanceof ServerInitializerObserver) { addObserver((ServerInitializerObserver)server); } + + if (launcher instanceof ServerInitializerObserver) { + addObserver((ServerInitializerObserver) launcher); + } } protected InitializeParams prepareInitializeParams(String projectPath) { diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/service/LanguageServerInitializationHandler.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/service/LanguageServerInitializationHandler.java new file mode 100644 index 0000000000..ec8bb29cf8 --- /dev/null +++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/service/LanguageServerInitializationHandler.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2012-2017 Codenvy, S.A. + * 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: + * Codenvy, S.A. - initial API and implementation + *******************************************************************************/ +package org.eclipse.che.api.languageserver.service; + +import com.google.inject.Inject; +import com.google.inject.Singleton; + +import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcException; +import org.eclipse.che.api.core.jsonrpc.commons.RequestHandlerConfigurator; +import org.eclipse.che.api.languageserver.exception.LanguageServerException; +import org.eclipse.che.api.languageserver.registry.LanguageServerRegistry; + +@Singleton +public class LanguageServerInitializationHandler { + + @Inject + public LanguageServerInitializationHandler(RequestHandlerConfigurator requestHandlerConfigurator, LanguageServerRegistry registry) { + requestHandlerConfigurator.newConfiguration() + .methodName("languageServer/initialize") + .paramsAsString() + .resultAsBoolean() + .withFunction(path -> { + try { + return registry.findServer(TextDocumentServiceUtils.prefixURI(path)) != null; + } catch (LanguageServerException e) { + throw new JsonRpcException(-27000, e.getMessage()); + } + }); + } +} diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/service/TextDocumentService.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/service/TextDocumentService.java index 558fe175ec..b100f18070 100644 --- a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/service/TextDocumentService.java +++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/service/TextDocumentService.java @@ -11,7 +11,6 @@ package org.eclipse.che.api.languageserver.service; import com.google.inject.Singleton; - import org.eclipse.che.api.core.jsonrpc.commons.JsonRpcException; import org.eclipse.che.api.core.jsonrpc.commons.RequestHandlerConfigurator; import org.eclipse.che.api.languageserver.exception.LanguageServerException; @@ -19,12 +18,12 @@ import org.eclipse.che.api.languageserver.registry.LanguageServerRegistry; import org.eclipse.che.api.languageserver.registry.LanguageServerRegistryImpl; import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.CompletionItemDto; import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.CompletionListDto; -import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.ExtendedCompletionItemDto; import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.HoverDto; import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.LocationDto; import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.SignatureHelpDto; import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.SymbolInformationDto; import org.eclipse.che.api.languageserver.server.dto.DtoServerImpls.TextEditDto; +import org.eclipse.che.api.languageserver.shared.model.ExtendedCompletionItem; import org.eclipse.lsp4j.DidChangeTextDocumentParams; import org.eclipse.lsp4j.DidCloseTextDocumentParams; import org.eclipse.lsp4j.DidOpenTextDocumentParams; @@ -34,6 +33,7 @@ import org.eclipse.lsp4j.DocumentHighlight; import org.eclipse.lsp4j.DocumentOnTypeFormattingParams; import org.eclipse.lsp4j.DocumentRangeFormattingParams; import org.eclipse.lsp4j.DocumentSymbolParams; +import org.eclipse.lsp4j.Hover; import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.ReferenceParams; import org.eclipse.lsp4j.TextDocumentIdentifier; @@ -81,7 +81,7 @@ public class TextDocumentService { dtoToDtoList("references", ReferenceParams.class, LocationDto.class, this::references); dtoToDtoList("onTypeFormatting", DocumentOnTypeFormattingParams.class, TextEditDto.class, this::onTypeFormatting); - dtoToDto("completionItem/resolve", ExtendedCompletionItemDto.class, CompletionItemDto.class, this::completionItemResolve); + dtoToDto("completionItem/resolve", ExtendedCompletionItem.class, CompletionItemDto.class, this::completionItemResolve); dtoToDto("documentHighlight", TextDocumentPositionParams.class, DocumentHighlight.class, this::documentHighlight); dtoToDto("completion", TextDocumentPositionParams.class, CompletionListDto.class, this::completion); dtoToDto("hover", TextDocumentPositionParams.class, HoverDto.class, this::hover); @@ -157,7 +157,7 @@ public class TextDocumentService { } } - private CompletionItemDto completionItemResolve(ExtendedCompletionItemDto unresolved) { + private CompletionItemDto completionItemResolve(ExtendedCompletionItem unresolved) { try { LanguageServer server = getServer(prefixURI(unresolved.getTextDocumentIdentifier().getUri())); @@ -173,7 +173,13 @@ public class TextDocumentService { positionParams.getTextDocument().setUri(prefixURI(positionParams.getTextDocument().getUri())); positionParams.setUri(prefixURI(positionParams.getUri())); LanguageServer server = getServer(positionParams.getTextDocument().getUri()); - return server != null ? new HoverDto(server.getTextDocumentService().hover(positionParams).get()) : null; + if(server != null) { + Hover hover = server.getTextDocumentService().hover(positionParams).get(); + if (hover != null) { + return new HoverDto(hover); + } + } + return null; } catch (InterruptedException | ExecutionException | LanguageServerException e) { throw new JsonRpcException(-27000, e.getMessage()); } diff --git a/wsagent/che-core-api-languageserver/src/test/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImplTest.java b/wsagent/che-core-api-languageserver/src/test/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImplTest.java index 732844eb44..4154e89160 100644 --- a/wsagent/che-core-api-languageserver/src/test/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImplTest.java +++ b/wsagent/che-core-api-languageserver/src/test/java/org/eclipse/che/api/languageserver/registry/ServerInitializerImplTest.java @@ -69,7 +69,7 @@ public class ServerInitializerImplTest { when(launcher.getLanguageDescription()).thenReturn(languageDescription); when(launcher.launch(anyString(), any())).thenReturn(server); - doNothing().when(initializer).registerCallbacks(server); + doNothing().when(initializer).registerCallbacks(server, launcher); initializer.addObserver(observer); LanguageServer languageServer = initializer.initialize(launcher, "/path"); diff --git a/wsagent/che-core-api-oauth/pom.xml b/wsagent/che-core-api-oauth/pom.xml index 9a4882a3e2..b199eea55f 100644 --- a/wsagent/che-core-api-oauth/pom.xml +++ b/wsagent/che-core-api-oauth/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-oauth jar diff --git a/wsagent/che-core-api-project-shared/pom.xml b/wsagent/che-core-api-project-shared/pom.xml index 840459da72..6683912003 100644 --- a/wsagent/che-core-api-project-shared/pom.xml +++ b/wsagent/che-core-api-project-shared/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-project-shared jar diff --git a/wsagent/che-core-api-project/pom.xml b/wsagent/che-core-api-project/pom.xml index 69dd7e16ab..1e7cbbc353 100644 --- a/wsagent/che-core-api-project/pom.xml +++ b/wsagent/che-core-api-project/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-project jar @@ -101,7 +101,7 @@ org.eclipse.che.core che-core-api-project-shared - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.core diff --git a/wsagent/che-core-api-testing-shared/pom.xml b/wsagent/che-core-api-testing-shared/pom.xml index 068f10960b..e297ad874b 100644 --- a/wsagent/che-core-api-testing-shared/pom.xml +++ b/wsagent/che-core-api-testing-shared/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-testing-shared Che Core :: API :: Testing Shared diff --git a/wsagent/che-core-api-testing/pom.xml b/wsagent/che-core-api-testing/pom.xml index 8896db63e1..e136d4fdb8 100644 --- a/wsagent/che-core-api-testing/pom.xml +++ b/wsagent/che-core-api-testing/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-testing Che Core :: API :: Testing diff --git a/wsagent/che-core-git-impl-jgit/pom.xml b/wsagent/che-core-git-impl-jgit/pom.xml index 4c81d77453..97ef8fb3c9 100644 --- a/wsagent/che-core-git-impl-jgit/pom.xml +++ b/wsagent/che-core-git-impl-jgit/pom.xml @@ -17,7 +17,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-git-impl-jgit jar diff --git a/wsagent/che-core-ssh-key-ide/pom.xml b/wsagent/che-core-ssh-key-ide/pom.xml index fb51ed94d6..695dcf2252 100644 --- a/wsagent/che-core-ssh-key-ide/pom.xml +++ b/wsagent/che-core-ssh-key-ide/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.plugin che-plugin-ssh-key-ide diff --git a/wsagent/che-core-ssh-key-server/pom.xml b/wsagent/che-core-ssh-key-server/pom.xml index 995404ade7..5707504ee3 100644 --- a/wsagent/che-core-ssh-key-server/pom.xml +++ b/wsagent/che-core-ssh-key-server/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT org.eclipse.che.plugin che-plugin-ssh-key-server diff --git a/wsagent/che-wsagent-core/pom.xml b/wsagent/che-wsagent-core/pom.xml index f72a8402f0..70ea417bda 100644 --- a/wsagent/che-wsagent-core/pom.xml +++ b/wsagent/che-wsagent-core/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-wsagent-core war diff --git a/wsagent/pom.xml b/wsagent/pom.xml index 07442c28aa..b9382342a8 100644 --- a/wsagent/pom.xml +++ b/wsagent/pom.xml @@ -16,12 +16,12 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../core/pom.xml org.eclipse.che.core che-agent-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Agent Parent diff --git a/wsagent/wsagent-local/pom.xml b/wsagent/wsagent-local/pom.xml index 5c526b755e..9a131da5b8 100644 --- a/wsagent/wsagent-local/pom.xml +++ b/wsagent/wsagent-local/pom.xml @@ -16,7 +16,7 @@ che-agent-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT wsagent-local Che Core :: API :: Agent diff --git a/wsmaster/che-core-api-account/pom.xml b/wsmaster/che-core-api-account/pom.xml index 26114fec9a..682e507837 100644 --- a/wsmaster/che-core-api-account/pom.xml +++ b/wsmaster/che-core-api-account/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-account Che Core :: API :: Account diff --git a/wsmaster/che-core-api-auth-shared/pom.xml b/wsmaster/che-core-api-auth-shared/pom.xml index 13a8ad7b27..bdf70bb80e 100644 --- a/wsmaster/che-core-api-auth-shared/pom.xml +++ b/wsmaster/che-core-api-auth-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-auth-shared jar diff --git a/wsmaster/che-core-api-auth/pom.xml b/wsmaster/che-core-api-auth/pom.xml index 6c7ec45d87..05d40e131a 100644 --- a/wsmaster/che-core-api-auth/pom.xml +++ b/wsmaster/che-core-api-auth/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-auth jar diff --git a/wsmaster/che-core-api-factory-shared/pom.xml b/wsmaster/che-core-api-factory-shared/pom.xml index a24ff4624f..73555e9ade 100644 --- a/wsmaster/che-core-api-factory-shared/pom.xml +++ b/wsmaster/che-core-api-factory-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-factory-shared jar diff --git a/wsmaster/che-core-api-factory/pom.xml b/wsmaster/che-core-api-factory/pom.xml index 8dc35aa50a..160d68c28b 100644 --- a/wsmaster/che-core-api-factory/pom.xml +++ b/wsmaster/che-core-api-factory/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-factory jar diff --git a/wsmaster/che-core-api-machine-shared/pom.xml b/wsmaster/che-core-api-machine-shared/pom.xml index f61d731db3..576c48080b 100644 --- a/wsmaster/che-core-api-machine-shared/pom.xml +++ b/wsmaster/che-core-api-machine-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-machine-shared jar diff --git a/wsmaster/che-core-api-project-templates-shared/pom.xml b/wsmaster/che-core-api-project-templates-shared/pom.xml index ec14000219..5d2f6b4f7c 100644 --- a/wsmaster/che-core-api-project-templates-shared/pom.xml +++ b/wsmaster/che-core-api-project-templates-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-project-templates-shared Che Core :: API :: Project Templates :: Shared diff --git a/wsmaster/che-core-api-project-templates/pom.xml b/wsmaster/che-core-api-project-templates/pom.xml index bd367e8132..9200ab49c4 100644 --- a/wsmaster/che-core-api-project-templates/pom.xml +++ b/wsmaster/che-core-api-project-templates/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-project-templates Che Core :: API :: Project Templates diff --git a/wsmaster/che-core-api-ssh-shared/pom.xml b/wsmaster/che-core-api-ssh-shared/pom.xml index 657b936de1..a512fb6db5 100644 --- a/wsmaster/che-core-api-ssh-shared/pom.xml +++ b/wsmaster/che-core-api-ssh-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-ssh-shared jar diff --git a/wsmaster/che-core-api-ssh/pom.xml b/wsmaster/che-core-api-ssh/pom.xml index 9a29642adb..172aba0f45 100644 --- a/wsmaster/che-core-api-ssh/pom.xml +++ b/wsmaster/che-core-api-ssh/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-ssh jar diff --git a/wsmaster/che-core-api-system-shared/pom.xml b/wsmaster/che-core-api-system-shared/pom.xml index 80d73e5a25..96724178ab 100644 --- a/wsmaster/che-core-api-system-shared/pom.xml +++ b/wsmaster/che-core-api-system-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-system-shared jar diff --git a/wsmaster/che-core-api-system/pom.xml b/wsmaster/che-core-api-system/pom.xml index c139d0eedb..7b3d1f5f42 100644 --- a/wsmaster/che-core-api-system/pom.xml +++ b/wsmaster/che-core-api-system/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-system jar diff --git a/wsmaster/che-core-api-user-shared/pom.xml b/wsmaster/che-core-api-user-shared/pom.xml index 1a1c10f30a..911e4f2e6d 100644 --- a/wsmaster/che-core-api-user-shared/pom.xml +++ b/wsmaster/che-core-api-user-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-user-shared Che Core :: API :: User :: Shared diff --git a/wsmaster/che-core-api-user/pom.xml b/wsmaster/che-core-api-user/pom.xml index a3d58c7573..00189af471 100644 --- a/wsmaster/che-core-api-user/pom.xml +++ b/wsmaster/che-core-api-user/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-user Che Core :: API :: User diff --git a/wsmaster/che-core-api-workspace-shared/pom.xml b/wsmaster/che-core-api-workspace-shared/pom.xml index 2aea0f968d..2e12e32867 100644 --- a/wsmaster/che-core-api-workspace-shared/pom.xml +++ b/wsmaster/che-core-api-workspace-shared/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-workspace-shared jar diff --git a/wsmaster/che-core-api-workspace/pom.xml b/wsmaster/che-core-api-workspace/pom.xml index 5c2b87f736..74e5410949 100644 --- a/wsmaster/che-core-api-workspace/pom.xml +++ b/wsmaster/che-core-api-workspace/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-api-workspace jar diff --git a/wsmaster/che-core-sql-schema/pom.xml b/wsmaster/che-core-sql-schema/pom.xml index cf630f0958..d7434060be 100644 --- a/wsmaster/che-core-sql-schema/pom.xml +++ b/wsmaster/che-core-sql-schema/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT che-core-sql-schema Che Core :: SQL :: Schema diff --git a/wsmaster/integration-tests/cascade-removal/pom.xml b/wsmaster/integration-tests/cascade-removal/pom.xml index 547de8c194..03467684c9 100644 --- a/wsmaster/integration-tests/cascade-removal/pom.xml +++ b/wsmaster/integration-tests/cascade-removal/pom.xml @@ -16,7 +16,7 @@ integration-tests-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT cascade-removal Integration Tests :: Cascade Removal diff --git a/wsmaster/integration-tests/pom.xml b/wsmaster/integration-tests/pom.xml index 3b02e566b6..e8d6cbed0f 100644 --- a/wsmaster/integration-tests/pom.xml +++ b/wsmaster/integration-tests/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../pom.xml integration-tests-parent diff --git a/wsmaster/integration-tests/postgresql-tck/pom.xml b/wsmaster/integration-tests/postgresql-tck/pom.xml index e65b1f1e57..bfecf41873 100644 --- a/wsmaster/integration-tests/postgresql-tck/pom.xml +++ b/wsmaster/integration-tests/postgresql-tck/pom.xml @@ -16,7 +16,7 @@ integration-tests-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT postgresql-tck jar diff --git a/wsmaster/pom.xml b/wsmaster/pom.xml index d485e621d4..5dfa807309 100644 --- a/wsmaster/pom.xml +++ b/wsmaster/pom.xml @@ -16,11 +16,11 @@ che-core-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT ../core/pom.xml che-master-parent - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT pom Che Master Parent diff --git a/wsmaster/wsmaster-local/pom.xml b/wsmaster/wsmaster-local/pom.xml index 2d6735ec60..266bf05259 100644 --- a/wsmaster/wsmaster-local/pom.xml +++ b/wsmaster/wsmaster-local/pom.xml @@ -16,7 +16,7 @@ che-master-parent org.eclipse.che.core - 5.12.0-SNAPSHOT + 5.13.0-SNAPSHOT wsmaster-local Che Core :: API :: Impl Local