From 66d10ab099423abe1aad6b6f885d5afe79c10661 Mon Sep 17 00:00:00 2001 From: Mihail Kuznetsov Date: Wed, 2 Sep 2015 10:00:13 +0300 Subject: [PATCH 001/164] IDEX-2947 don't use junit from testng 6.8 --- plugin-java/che-plugin-java-maven-tools/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index c666746a4..cac0a2f47 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -32,6 +32,12 @@ che-core-commons-xml ${che.core.version} + + junit + junit + ${junit.version} + test + org.testng testng From 61d1bb7ba9ac6f1f5fe10275579f4d8b1ec561bb Mon Sep 17 00:00:00 2001 From: Florent BENOIT Date: Wed, 2 Sep 2015 17:17:10 +0200 Subject: [PATCH 002/164] Plugin datasource has been moved by IDEX-2966 --- .../datasource/server/CsvExportService.java | 113 ------------------ 1 file changed, 113 deletions(-) delete mode 100644 plugin-datasource/che-plugin-datasource-server/src/main/java/org/eclipse/che/ide/ext/datasource/server/CsvExportService.java diff --git a/plugin-datasource/che-plugin-datasource-server/src/main/java/org/eclipse/che/ide/ext/datasource/server/CsvExportService.java b/plugin-datasource/che-plugin-datasource-server/src/main/java/org/eclipse/che/ide/ext/datasource/server/CsvExportService.java deleted file mode 100644 index 16f7ad085..000000000 --- a/plugin-datasource/che-plugin-datasource-server/src/main/java/org/eclipse/che/ide/ext/datasource/server/CsvExportService.java +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012-2015 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.ext.datasource.server; - -import java.io.IOException; -import java.io.Writer; -import java.nio.charset.StandardCharsets; -import java.util.List; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.io.output.StringBuilderWriter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import au.com.bytecode.opencsv.CSVWriter; - -import org.eclipse.che.ide.ext.datasource.shared.ServicePaths; -import org.eclipse.che.ide.ext.datasource.shared.exception.CSVExportException; -import org.eclipse.che.ide.ext.datasource.shared.request.RequestResultDTO; -import org.eclipse.che.ide.ext.datasource.shared.request.SelectResultDTO; -import com.google.inject.Inject; - -/** - * Service for CSV export of SQL request results. - * - * @author "Mickaƫl Leduque" - */ -@Path(ServicePaths.RESULT_CSV_PATH) -public class CsvExportService { - - /** The logger. */ - private static final Logger LOG = LoggerFactory.getLogger(CsvExportService.class); - - public final static String TEXT_CSV = "text/csv"; - public final static String TEXT_CSV_HEADER_OPTION = "; header=present"; - public final static String TEXT_CSV_NO_HEADER_OPTION = "; header=absent"; - public final static String TEXT_CSV_CHARSET_UTF8_OPTION = "; charset=utf8"; - public final static MediaType TEXT_CSV_TYPE = new MediaType("text", "csv"); - - @Inject - public CsvExportService() { - } - - /** - * Export the SQL request result as CSV string. - * - * @param requestResult the result to convert - * @return the CSV data - * @throws CSVExportException any conversion error - */ - @POST - @Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN}) - public String exportAsCSV(final RequestResultDTO requestResult) throws CSVExportException { - if (requestResult == null) { - throw new CSVExportException("The parameter doesn't contain a result request"); - } - if (requestResult.getResultType() != SelectResultDTO.TYPE) { - throw new CSVExportException("Only request results for select can be converted to CSV"); - } - - String csvResult = convertDataToCsv(requestResult, true); - - byte[] byteResult = csvResult.getBytes(StandardCharsets.UTF_8); - String encodedResult = Base64.encodeBase64String(byteResult); - return encodedResult; - } - - private String convertDataToCsv(final RequestResultDTO requestResult, boolean withHeader) { - LOG.debug("convertDataToCsv - called for {}, withHeader={}", requestResult, withHeader); - - CSVWriter csvWriter = null; - final StringBuilder sb = new StringBuilder(); - try (final Writer writer = new StringBuilderWriter(sb)) { - - csvWriter = new CSVWriter(writer); - - // header - if (withHeader) { - csvWriter.writeNext(requestResult.getHeaderLine().toArray(new String[0])); - } - - // body - for (final List line : requestResult.getResultLines()) { - csvWriter.writeNext(line.toArray(new String[0])); - } - } catch (final IOException e) { - LOG.error("Close failed on resource - expect leaks and incorrect operation", e); - } finally { - if (csvWriter != null) { - try { - csvWriter.close(); - } catch (IOException e) { - LOG.error("Close failed on resource - expect leaks and incorrect operation", e); - } - } - } - - return sb.toString(); - } -} \ No newline at end of file From 7b9f4bf02f24c65e6af2e0257c8b7b4721725dbe Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Wed, 2 Sep 2015 19:31:06 +0000 Subject: [PATCH 003/164] RELEASE:Set tag of parent pom --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 51f4d880b..42194ff00 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ maven-depmgt-pom org.eclipse.che.depmgt - 3.12.2-SNAPSHOT + 3.12.2 org.eclipse.che.plugin che-plugin-parent From bc6b699b9d2eccb9e1c868425d6be4155ad9e693 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Wed, 2 Sep 2015 19:48:33 +0000 Subject: [PATCH 004/164] [maven-release-plugin] prepare release 3.12.2 --- plugin-angularjs/api/client/pom.xml | 2 +- plugin-angularjs/api/pom.xml | 2 +- plugin-angularjs/api/server/pom.xml | 2 +- plugin-angularjs/completion/dto-gen/pom.xml | 2 +- plugin-angularjs/completion/dto/pom.xml | 2 +- plugin-angularjs/completion/parser/pom.xml | 2 +- plugin-angularjs/completion/pom.xml | 2 +- plugin-angularjs/core/client/pom.xml | 2 +- plugin-angularjs/core/pom.xml | 2 +- plugin-angularjs/core/server/pom.xml | 2 +- plugin-angularjs/pom.xml | 2 +- plugin-angularjs/templates/angular-seed/pom.xml | 2 +- plugin-angularjs/templates/gulp-angularjs-starter/pom.xml | 2 +- plugin-angularjs/templates/pom.xml | 2 +- plugin-angularjs/templates/yeoman/pom.xml | 2 +- plugin-bower/che-plugin-bower-builder/pom.xml | 2 +- plugin-bower/che-plugin-bower-ext-client/pom.xml | 2 +- plugin-bower/pom.xml | 2 +- plugin-builder/che-plugin-builder-ext-builder/pom.xml | 2 +- plugin-builder/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-base-init/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-jso/pom.xml | 2 +- plugin-codemirror/pom.xml | 2 +- plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml | 2 +- plugin-cpp/pom.xml | 2 +- plugin-docker/che-plugin-docker-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-ext-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-runner/pom.xml | 2 +- plugin-docker/pom.xml | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 2 +- plugin-git/che-plugin-git-provider-che/pom.xml | 2 +- plugin-git/pom.xml | 2 +- plugin-github/che-plugin-github-ext-github/pom.xml | 2 +- plugin-github/che-plugin-github-oauth2/pom.xml | 2 +- plugin-github/che-plugin-github-provider-github/pom.xml | 2 +- plugin-github/pom.xml | 2 +- plugin-go/che-plugin-go-ext-go/pom.xml | 2 +- plugin-go/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-builder/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-ext-client/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-runner/pom.xml | 2 +- plugin-grunt/pom.xml | 2 +- plugin-gulp/che-plugin-gulp-runner/pom.xml | 2 +- plugin-gulp/pom.xml | 2 +- plugin-help/che-plugin-help-ext-client/pom.xml | 2 +- plugin-help/pom.xml | 2 +- plugin-java/che-plugin-java-ant-tools/pom.xml | 2 +- plugin-java/che-plugin-java-builder-ant/pom.xml | 2 +- plugin-java/che-plugin-java-builder-maven/pom.xml | 2 +- plugin-java/che-plugin-java-ext-ant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-maven/pom.xml | 2 +- plugin-java/che-plugin-java-generator-archetype/pom.xml | 2 +- plugin-java/che-plugin-java-jdt-core-repack/pom.xml | 2 +- plugin-java/che-plugin-java-jseditor/pom.xml | 2 +- plugin-java/che-plugin-java-maven-tools/pom.xml | 2 +- plugin-java/che-plugin-java-runner-webapps/pom.xml | 2 +- plugin-java/pom.xml | 2 +- plugin-npm/che-plugin-npm-builder/pom.xml | 2 +- plugin-npm/che-plugin-npm-ext-client/pom.xml | 2 +- plugin-npm/pom.xml | 2 +- plugin-orion/che-plugin-orion-editor/pom.xml | 2 +- plugin-orion/pom.xml | 2 +- plugin-php/che-plugin-php-ext-php/pom.xml | 2 +- plugin-php/pom.xml | 2 +- plugin-python/che-plugin-python-ext-python/pom.xml | 2 +- plugin-python/pom.xml | 2 +- plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml | 2 +- plugin-ruby/pom.xml | 2 +- plugin-runner/che-plugin-runner-ext-runner/pom.xml | 2 +- plugin-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-env-local/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-tools/pom.xml | 2 +- plugin-sdk/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-git-native/pom.xml | 2 +- plugin-ssh/pom.xml | 2 +- plugin-svn/che-plugin-svn-ext-subversion/pom.xml | 2 +- plugin-svn/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto-gen/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto/pom.xml | 2 +- plugin-tour/che-plugin-tour-ext-client/pom.xml | 2 +- plugin-tour/che-plugin-tour-hopscotch/pom.xml | 2 +- plugin-tour/che-plugin-tour-server/pom.xml | 2 +- plugin-tour/pom.xml | 2 +- plugin-web/che-plugin-web-ext-web/pom.xml | 2 +- plugin-web/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-builder/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml | 2 +- plugin-yeoman/pom.xml | 2 +- pom.xml | 4 ++-- 98 files changed, 99 insertions(+), 99 deletions(-) diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml index 2bec3c84e..72836eb40 100644 --- a/plugin-angularjs/api/client/pom.xml +++ b/plugin-angularjs/api/client/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-api-client jar diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml index 7e7479f44..512ccadad 100644 --- a/plugin-angularjs/api/pom.xml +++ b/plugin-angularjs/api/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-api pom diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml index b2a4db7eb..0d50cb8d6 100644 --- a/plugin-angularjs/api/server/pom.xml +++ b/plugin-angularjs/api/server/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-api-server jar diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml index 0ad716c68..9de62a025 100644 --- a/plugin-angularjs/completion/dto-gen/pom.xml +++ b/plugin-angularjs/completion/dto-gen/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-completion-dto-gen jar diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml index 8c6aa9565..fe78d8956 100644 --- a/plugin-angularjs/completion/dto/pom.xml +++ b/plugin-angularjs/completion/dto/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-completion-dto jar diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml index fd89381a2..b7c2b6233 100644 --- a/plugin-angularjs/completion/parser/pom.xml +++ b/plugin-angularjs/completion/parser/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-completion-parser jar diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml index e9eafb8e4..cf6778003 100644 --- a/plugin-angularjs/completion/pom.xml +++ b/plugin-angularjs/completion/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-completion pom diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml index fd3c06fac..72e7d4d8c 100644 --- a/plugin-angularjs/core/client/pom.xml +++ b/plugin-angularjs/core/client/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-core-client jar diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml index 50be6cc2b..34e2a5de4 100644 --- a/plugin-angularjs/core/pom.xml +++ b/plugin-angularjs/core/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-core pom diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml index 4a1f883ae..1e73a635d 100644 --- a/plugin-angularjs/core/server/pom.xml +++ b/plugin-angularjs/core/server/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-core-server jar diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml index e15de6023..e58fa4d76 100644 --- a/plugin-angularjs/pom.xml +++ b/plugin-angularjs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml angularjs-parent diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml index e55e73e45..aeadd667a 100644 --- a/plugin-angularjs/templates/angular-seed/pom.xml +++ b/plugin-angularjs/templates/angular-seed/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-template-angular-seed jar diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml index a15ab1014..15aa3ce41 100644 --- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml +++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-template-gulp-angularjs-starter jar diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml index c318041da..d61875a6c 100644 --- a/plugin-angularjs/templates/pom.xml +++ b/plugin-angularjs/templates/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-templates pom diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml index d0b0b1b79..20646240f 100644 --- a/plugin-angularjs/templates/yeoman/pom.xml +++ b/plugin-angularjs/templates/yeoman/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 angularjs-template-yeoman jar diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml index c7a04c713..5e5136dab 100644 --- a/plugin-bower/che-plugin-bower-builder/pom.xml +++ b/plugin-bower/che-plugin-bower-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-bower-builder jar diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml index c27e01337..6fec4b57c 100644 --- a/plugin-bower/che-plugin-bower-ext-client/pom.xml +++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-bower-ext-client jar diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml index 4110dd19c..1deb21953 100644 --- a/plugin-bower/pom.xml +++ b/plugin-bower/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-bower-parent diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml index 95d2671ac..fb36326cb 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml +++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-builder-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-builder-ext-builder jar diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml index 2a3a07a5d..8ce8a33f3 100644 --- a/plugin-builder/pom.xml +++ b/plugin-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-builder-parent diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml index 3dddeff1e..fe54f9427 100644 --- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-codemirror-base-init jar diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml index 5cf93abc0..dd089a0c6 100644 --- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-codemirror-editorwidget jar diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml index 6ba66aa73..bc17a17d1 100644 --- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-codemirror-highlighter Che Plugin :: CodeMirror :: Highlighter diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml index 201aff1a2..9e74392a5 100644 --- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-codemirror-ide-style jar diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index 4b50bccd4..bc7e26056 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-codemirror-jso jar diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml index 3c9a73683..330f30f0b 100644 --- a/plugin-codemirror/pom.xml +++ b/plugin-codemirror/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-codemirror-parent diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml index fee9ccdce..58e1a867c 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-cpp-ext-cpp jar diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml index ed23049fb..eec006f6e 100644 --- a/plugin-cpp/pom.xml +++ b/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-cpp-parent diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml index 6dfeececa..67ee5f2b6 100644 --- a/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-docker-client jar diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml index 732754a90..d2acc8c38 100644 --- a/plugin-docker/che-plugin-docker-ext-client/pom.xml +++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-docker-ext-client jar diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml index bd1bb0ca4..5d930d147 100644 --- a/plugin-docker/che-plugin-docker-runner/pom.xml +++ b/plugin-docker/che-plugin-docker-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-docker-runner jar diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index 296a95f59..048e44fa1 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-docker-parent diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index d14d6f631..8a4f055da 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-git-ext-git jar diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml index f34310691..f0df94f55 100644 --- a/plugin-git/che-plugin-git-provider-che/pom.xml +++ b/plugin-git/che-plugin-git-provider-che/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-git-provider-che Che Plugin :: Git :: Che credential provider diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml index 9ad0ced9f..1cd61bc04 100644 --- a/plugin-git/pom.xml +++ b/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-git-parent diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index 73a9ee021..f693ecdf7 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-github-ext-github jar diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml index d3a66c1d1..3ce686c25 100644 --- a/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-github-oauth2 jar diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml index a0e25337a..dc2a31892 100644 --- a/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml index 8b0912916..537b336da 100644 --- a/plugin-github/pom.xml +++ b/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-github-parent diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml index 137bb536b..12a54b100 100644 --- a/plugin-go/che-plugin-go-ext-go/pom.xml +++ b/plugin-go/che-plugin-go-ext-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-go-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-go-ext-go jar diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml index f022cc10b..739183bc8 100644 --- a/plugin-go/pom.xml +++ b/plugin-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-go-parent diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml index dc606c5cb..c6bddb4b3 100644 --- a/plugin-grunt/che-plugin-grunt-builder/pom.xml +++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-grunt-builder jar diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml index af577f000..a91c2005b 100644 --- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml +++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-grunt-ext-client jar diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml index 37369c5b9..4af2d5b7d 100644 --- a/plugin-grunt/che-plugin-grunt-runner/pom.xml +++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-grunt-runner jar diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml index ab87a24a0..844e7691c 100644 --- a/plugin-grunt/pom.xml +++ b/plugin-grunt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-grunt-parent diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml index 707857864..614e44143 100644 --- a/plugin-gulp/che-plugin-gulp-runner/pom.xml +++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-gulp-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-gulp-runner jar diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml index 78fb915fd..d96a2a9d0 100644 --- a/plugin-gulp/pom.xml +++ b/plugin-gulp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-gulp-parent diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml index 9e6409b5f..0233f219d 100644 --- a/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-help-ext-client jar diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml index c64e9cf58..4d156c36c 100644 --- a/plugin-help/pom.xml +++ b/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-help-parent diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml index 5b46a976b..91a574c12 100644 --- a/plugin-java/che-plugin-java-ant-tools/pom.xml +++ b/plugin-java/che-plugin-java-ant-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-ant-tools jar diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml index ae5f45dfa..e57ddc309 100644 --- a/plugin-java/che-plugin-java-builder-ant/pom.xml +++ b/plugin-java/che-plugin-java-builder-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-builder-ant jar diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml index 234f6f404..d09a8a9d6 100644 --- a/plugin-java/che-plugin-java-builder-maven/pom.xml +++ b/plugin-java/che-plugin-java-builder-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-builder-maven jar diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml index 3539949f0..bc8ef1b9c 100644 --- a/plugin-java/che-plugin-java-ext-ant/pom.xml +++ b/plugin-java/che-plugin-java-ext-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-ext-ant jar diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index c180e3964..736b5ce55 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-ext-debugger-java jar diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml index bd0623592..22d6cc9d9 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-ext-java-codeassistant jar diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml index a0398428b..5e73e9a4e 100644 --- a/plugin-java/che-plugin-java-ext-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-ext-java jar diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml index dd7978b99..25fe0489c 100644 --- a/plugin-java/che-plugin-java-ext-maven/pom.xml +++ b/plugin-java/che-plugin-java-ext-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-ext-maven jar diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml index d7bbde3f1..256bf834a 100644 --- a/plugin-java/che-plugin-java-generator-archetype/pom.xml +++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-generator-archetype jar diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml index 6766ba668..85977d7c4 100644 --- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml +++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-jdt-core-repack jar diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml index 58676d073..f4e5d720f 100644 --- a/plugin-java/che-plugin-java-jseditor/pom.xml +++ b/plugin-java/che-plugin-java-jseditor/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-jseditor Che Plugin :: Java :: JsEditor diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index cac0a2f47..82c371b53 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-maven-tools jar diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml index e1096f891..c7fe20ad1 100644 --- a/plugin-java/che-plugin-java-runner-webapps/pom.xml +++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-java-runner-webapps jar diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml index f75243fa5..a6199542d 100644 --- a/plugin-java/pom.xml +++ b/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-java-parent diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml index 835823939..7e8c62c66 100644 --- a/plugin-npm/che-plugin-npm-builder/pom.xml +++ b/plugin-npm/che-plugin-npm-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-npm-builder jar diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml index 4ee506973..f6a7b8540 100644 --- a/plugin-npm/che-plugin-npm-ext-client/pom.xml +++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-npm-ext-client jar diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml index b13dd5252..86153a63e 100644 --- a/plugin-npm/pom.xml +++ b/plugin-npm/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-npm-parent diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml index ddc20415a..70f88d37b 100644 --- a/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-orion-editor diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml index b1ff3b4ba..d205f6d47 100644 --- a/plugin-orion/pom.xml +++ b/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-orion-parent diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml index 9b257739e..4cc623203 100644 --- a/plugin-php/che-plugin-php-ext-php/pom.xml +++ b/plugin-php/che-plugin-php-ext-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-php-ext-php jar diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml index 919f25008..f692237e4 100644 --- a/plugin-php/pom.xml +++ b/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-php-parent diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml index 98292fb68..f32a706d8 100644 --- a/plugin-python/che-plugin-python-ext-python/pom.xml +++ b/plugin-python/che-plugin-python-ext-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-python-ext-python jar diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml index 6c4f2ab25..bd8a8e070 100644 --- a/plugin-python/pom.xml +++ b/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-python-parent diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml index 5d5d3d3cd..44abe324e 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-ruby-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-ruby-ext-ruby jar diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml index d0ba5b708..2e593baec 100644 --- a/plugin-ruby/pom.xml +++ b/plugin-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-ruby-parent diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml index 0ccdccd50..889fbbf12 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml +++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-runner-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-runner-ext-runner jar diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml index a5875645b..f8953303c 100644 --- a/plugin-runner/pom.xml +++ b/plugin-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-runner-parent diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml index 595186854..c20e5d8f5 100644 --- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml +++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-sdk-env-local jar diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index ba947b9be..611a5bb39 100644 --- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-sdk-ext-plugins jar diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index 858565070..8465274e3 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-sdk-runner jar diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml index b4ba2a22d..308938596 100644 --- a/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-sdk-tools jar diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml index f8b8461fd..a2339b80d 100644 --- a/plugin-sdk/pom.xml +++ b/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-sdk-parent diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml index 0e875a18a..d0b2ab587 100644 --- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml +++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-ssh-ext-sshkey jar diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml index 7f057d2fc..5b734f35b 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml +++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-ssh-git-native jar diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml index 37d14015d..5b333fcc7 100644 --- a/plugin-ssh/pom.xml +++ b/plugin-ssh/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-ssh-parent diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml index 87ef569ac..ddfcf80ae 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml +++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-svn-ext-subversion jar diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml index 5259e24d2..a45b0d0fe 100644 --- a/plugin-svn/pom.xml +++ b/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-svn-parent diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml index 5dd2fd73e..feb6cc905 100644 --- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml +++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-tour-dto-gen Che Plugin :: Tour :: DTO Generation diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml index 5b9ff9379..41b66bfaf 100644 --- a/plugin-tour/che-plugin-tour-dto/pom.xml +++ b/plugin-tour/che-plugin-tour-dto/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-tour-dto Che Plugin :: Tour :: DTO diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml index 3f5625fa7..4efdecfac 100644 --- a/plugin-tour/che-plugin-tour-ext-client/pom.xml +++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-tour-ext-client Che Plugin :: Tour :: Client diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml index 88748a485..313d8af9f 100644 --- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml +++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-tour-hopscotch Che Plugin :: Tour :: Hopscotch diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml index 2e16afd8b..1669cd6d0 100644 --- a/plugin-tour/che-plugin-tour-server/pom.xml +++ b/plugin-tour/che-plugin-tour-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-tour-server Che Plugin :: Tour :: Server diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml index 428bd01bd..7983630da 100644 --- a/plugin-tour/pom.xml +++ b/plugin-tour/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-tour-parent diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml index 71ba52426..7b38894a2 100644 --- a/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-web-ext-web jar diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml index 3cc73cab5..b00d55539 100644 --- a/plugin-web/pom.xml +++ b/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-web-parent diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml index e9cff6850..227d8be10 100644 --- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-yeoman-builder jar diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml index 25efbef27..fa4377fd0 100644 --- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 che-plugin-yeoman-ext-client jar diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml index fe4366d33..ddacf7557 100644 --- a/plugin-yeoman/pom.xml +++ b/plugin-yeoman/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2-SNAPSHOT + 3.12.2 ../pom.xml che-plugin-yeoman-parent diff --git a/pom.xml b/pom.xml index 42194ff00..1ee7accf7 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.eclipse.che.plugin che-plugin-parent - 3.12.2-SNAPSHOT + 3.12.2 pom Che Plugin :: Parent @@ -53,7 +53,7 @@ scm:git:git@github.com:codenvy/che-plugins.git scm:git:git@github.com:codenvy/che-plugins.git - 3.9.0 + 3.12.2 https://github.com/codenvy/che-plugins From 3c5d542b11ac15e3c019f282cf1e8fe8995f1e88 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Wed, 2 Sep 2015 19:48:35 +0000 Subject: [PATCH 005/164] [maven-release-plugin] prepare for next development iteration --- plugin-angularjs/api/client/pom.xml | 2 +- plugin-angularjs/api/pom.xml | 2 +- plugin-angularjs/api/server/pom.xml | 2 +- plugin-angularjs/completion/dto-gen/pom.xml | 2 +- plugin-angularjs/completion/dto/pom.xml | 2 +- plugin-angularjs/completion/parser/pom.xml | 2 +- plugin-angularjs/completion/pom.xml | 2 +- plugin-angularjs/core/client/pom.xml | 2 +- plugin-angularjs/core/pom.xml | 2 +- plugin-angularjs/core/server/pom.xml | 2 +- plugin-angularjs/pom.xml | 2 +- plugin-angularjs/templates/angular-seed/pom.xml | 2 +- plugin-angularjs/templates/gulp-angularjs-starter/pom.xml | 2 +- plugin-angularjs/templates/pom.xml | 2 +- plugin-angularjs/templates/yeoman/pom.xml | 2 +- plugin-bower/che-plugin-bower-builder/pom.xml | 2 +- plugin-bower/che-plugin-bower-ext-client/pom.xml | 2 +- plugin-bower/pom.xml | 2 +- plugin-builder/che-plugin-builder-ext-builder/pom.xml | 2 +- plugin-builder/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-base-init/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-jso/pom.xml | 2 +- plugin-codemirror/pom.xml | 2 +- plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml | 2 +- plugin-cpp/pom.xml | 2 +- plugin-docker/che-plugin-docker-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-ext-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-runner/pom.xml | 2 +- plugin-docker/pom.xml | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 2 +- plugin-git/che-plugin-git-provider-che/pom.xml | 2 +- plugin-git/pom.xml | 2 +- plugin-github/che-plugin-github-ext-github/pom.xml | 2 +- plugin-github/che-plugin-github-oauth2/pom.xml | 2 +- plugin-github/che-plugin-github-provider-github/pom.xml | 2 +- plugin-github/pom.xml | 2 +- plugin-go/che-plugin-go-ext-go/pom.xml | 2 +- plugin-go/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-builder/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-ext-client/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-runner/pom.xml | 2 +- plugin-grunt/pom.xml | 2 +- plugin-gulp/che-plugin-gulp-runner/pom.xml | 2 +- plugin-gulp/pom.xml | 2 +- plugin-help/che-plugin-help-ext-client/pom.xml | 2 +- plugin-help/pom.xml | 2 +- plugin-java/che-plugin-java-ant-tools/pom.xml | 2 +- plugin-java/che-plugin-java-builder-ant/pom.xml | 2 +- plugin-java/che-plugin-java-builder-maven/pom.xml | 2 +- plugin-java/che-plugin-java-ext-ant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-maven/pom.xml | 2 +- plugin-java/che-plugin-java-generator-archetype/pom.xml | 2 +- plugin-java/che-plugin-java-jdt-core-repack/pom.xml | 2 +- plugin-java/che-plugin-java-jseditor/pom.xml | 2 +- plugin-java/che-plugin-java-maven-tools/pom.xml | 2 +- plugin-java/che-plugin-java-runner-webapps/pom.xml | 2 +- plugin-java/pom.xml | 2 +- plugin-npm/che-plugin-npm-builder/pom.xml | 2 +- plugin-npm/che-plugin-npm-ext-client/pom.xml | 2 +- plugin-npm/pom.xml | 2 +- plugin-orion/che-plugin-orion-editor/pom.xml | 2 +- plugin-orion/pom.xml | 2 +- plugin-php/che-plugin-php-ext-php/pom.xml | 2 +- plugin-php/pom.xml | 2 +- plugin-python/che-plugin-python-ext-python/pom.xml | 2 +- plugin-python/pom.xml | 2 +- plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml | 2 +- plugin-ruby/pom.xml | 2 +- plugin-runner/che-plugin-runner-ext-runner/pom.xml | 2 +- plugin-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-env-local/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-tools/pom.xml | 2 +- plugin-sdk/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-git-native/pom.xml | 2 +- plugin-ssh/pom.xml | 2 +- plugin-svn/che-plugin-svn-ext-subversion/pom.xml | 2 +- plugin-svn/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto-gen/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto/pom.xml | 2 +- plugin-tour/che-plugin-tour-ext-client/pom.xml | 2 +- plugin-tour/che-plugin-tour-hopscotch/pom.xml | 2 +- plugin-tour/che-plugin-tour-server/pom.xml | 2 +- plugin-tour/pom.xml | 2 +- plugin-web/che-plugin-web-ext-web/pom.xml | 2 +- plugin-web/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-builder/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml | 2 +- plugin-yeoman/pom.xml | 2 +- pom.xml | 4 ++-- 98 files changed, 99 insertions(+), 99 deletions(-) diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml index 72836eb40..e6ddc0a58 100644 --- a/plugin-angularjs/api/client/pom.xml +++ b/plugin-angularjs/api/client/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-api-client jar diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml index 512ccadad..d88be7035 100644 --- a/plugin-angularjs/api/pom.xml +++ b/plugin-angularjs/api/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-api pom diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml index 0d50cb8d6..4caee53e6 100644 --- a/plugin-angularjs/api/server/pom.xml +++ b/plugin-angularjs/api/server/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-api-server jar diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml index 9de62a025..5417624a7 100644 --- a/plugin-angularjs/completion/dto-gen/pom.xml +++ b/plugin-angularjs/completion/dto-gen/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-completion-dto-gen jar diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml index fe78d8956..f6085af51 100644 --- a/plugin-angularjs/completion/dto/pom.xml +++ b/plugin-angularjs/completion/dto/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-completion-dto jar diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml index b7c2b6233..f8b70af31 100644 --- a/plugin-angularjs/completion/parser/pom.xml +++ b/plugin-angularjs/completion/parser/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-completion-parser jar diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml index cf6778003..dd5fbb1d8 100644 --- a/plugin-angularjs/completion/pom.xml +++ b/plugin-angularjs/completion/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-completion pom diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml index 72e7d4d8c..f46e5585a 100644 --- a/plugin-angularjs/core/client/pom.xml +++ b/plugin-angularjs/core/client/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-core-client jar diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml index 34e2a5de4..c5927bc2c 100644 --- a/plugin-angularjs/core/pom.xml +++ b/plugin-angularjs/core/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-core pom diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml index 1e73a635d..41dc4c265 100644 --- a/plugin-angularjs/core/server/pom.xml +++ b/plugin-angularjs/core/server/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-core-server jar diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml index e58fa4d76..54c9b61a8 100644 --- a/plugin-angularjs/pom.xml +++ b/plugin-angularjs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml angularjs-parent diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml index aeadd667a..aa7f0914a 100644 --- a/plugin-angularjs/templates/angular-seed/pom.xml +++ b/plugin-angularjs/templates/angular-seed/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-template-angular-seed jar diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml index 15aa3ce41..5fc766f30 100644 --- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml +++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-template-gulp-angularjs-starter jar diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml index d61875a6c..ca5713b3b 100644 --- a/plugin-angularjs/templates/pom.xml +++ b/plugin-angularjs/templates/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-templates pom diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml index 20646240f..e615f37d0 100644 --- a/plugin-angularjs/templates/yeoman/pom.xml +++ b/plugin-angularjs/templates/yeoman/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT angularjs-template-yeoman jar diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml index 5e5136dab..a655c872c 100644 --- a/plugin-bower/che-plugin-bower-builder/pom.xml +++ b/plugin-bower/che-plugin-bower-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-bower-builder jar diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml index 6fec4b57c..b5536d0bd 100644 --- a/plugin-bower/che-plugin-bower-ext-client/pom.xml +++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-bower-ext-client jar diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml index 1deb21953..6a0cb4799 100644 --- a/plugin-bower/pom.xml +++ b/plugin-bower/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-bower-parent diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml index fb36326cb..07355edc8 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml +++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-builder-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-builder-ext-builder jar diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml index 8ce8a33f3..f2780076a 100644 --- a/plugin-builder/pom.xml +++ b/plugin-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-builder-parent diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml index fe54f9427..0d454d30f 100644 --- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-codemirror-base-init jar diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml index dd089a0c6..2b7f77edb 100644 --- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-codemirror-editorwidget jar diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml index bc17a17d1..50685095e 100644 --- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-codemirror-highlighter Che Plugin :: CodeMirror :: Highlighter diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml index 9e74392a5..935683f97 100644 --- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-codemirror-ide-style jar diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index bc7e26056..ec4e64053 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-codemirror-jso jar diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml index 330f30f0b..e8bb0571a 100644 --- a/plugin-codemirror/pom.xml +++ b/plugin-codemirror/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-codemirror-parent diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml index 58e1a867c..3fa750fb0 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-cpp-ext-cpp jar diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml index eec006f6e..9014bf2c0 100644 --- a/plugin-cpp/pom.xml +++ b/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-cpp-parent diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml index 67ee5f2b6..468c4b960 100644 --- a/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-docker-client jar diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml index d2acc8c38..bdb2572bc 100644 --- a/plugin-docker/che-plugin-docker-ext-client/pom.xml +++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-docker-ext-client jar diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml index 5d930d147..31e826438 100644 --- a/plugin-docker/che-plugin-docker-runner/pom.xml +++ b/plugin-docker/che-plugin-docker-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-docker-runner jar diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index 048e44fa1..ceaffef72 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-docker-parent diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index 8a4f055da..0fc9f374c 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-git-ext-git jar diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml index f0df94f55..fb00e71a2 100644 --- a/plugin-git/che-plugin-git-provider-che/pom.xml +++ b/plugin-git/che-plugin-git-provider-che/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-git-provider-che Che Plugin :: Git :: Che credential provider diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml index 1cd61bc04..9fd5305c0 100644 --- a/plugin-git/pom.xml +++ b/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-git-parent diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index f693ecdf7..163b9d396 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-github-ext-github jar diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml index 3ce686c25..47b5bfe9c 100644 --- a/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-github-oauth2 jar diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml index dc2a31892..274a61c38 100644 --- a/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml index 537b336da..88e0238d7 100644 --- a/plugin-github/pom.xml +++ b/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-github-parent diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml index 12a54b100..fcd56de68 100644 --- a/plugin-go/che-plugin-go-ext-go/pom.xml +++ b/plugin-go/che-plugin-go-ext-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-go-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-go-ext-go jar diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml index 739183bc8..88f09756e 100644 --- a/plugin-go/pom.xml +++ b/plugin-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-go-parent diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml index c6bddb4b3..e5fbea5ff 100644 --- a/plugin-grunt/che-plugin-grunt-builder/pom.xml +++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-grunt-builder jar diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml index a91c2005b..49888e7db 100644 --- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml +++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-grunt-ext-client jar diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml index 4af2d5b7d..76a7914b0 100644 --- a/plugin-grunt/che-plugin-grunt-runner/pom.xml +++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-grunt-runner jar diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml index 844e7691c..156763737 100644 --- a/plugin-grunt/pom.xml +++ b/plugin-grunt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-grunt-parent diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml index 614e44143..6fb06ac4a 100644 --- a/plugin-gulp/che-plugin-gulp-runner/pom.xml +++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-gulp-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-gulp-runner jar diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml index d96a2a9d0..95fa92b44 100644 --- a/plugin-gulp/pom.xml +++ b/plugin-gulp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-gulp-parent diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml index 0233f219d..9091db60c 100644 --- a/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-help-ext-client jar diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml index 4d156c36c..1a3e05b5d 100644 --- a/plugin-help/pom.xml +++ b/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-help-parent diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml index 91a574c12..ae0bbe48c 100644 --- a/plugin-java/che-plugin-java-ant-tools/pom.xml +++ b/plugin-java/che-plugin-java-ant-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-ant-tools jar diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml index e57ddc309..046adb5eb 100644 --- a/plugin-java/che-plugin-java-builder-ant/pom.xml +++ b/plugin-java/che-plugin-java-builder-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-builder-ant jar diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml index d09a8a9d6..be09cb9fa 100644 --- a/plugin-java/che-plugin-java-builder-maven/pom.xml +++ b/plugin-java/che-plugin-java-builder-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-builder-maven jar diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml index bc8ef1b9c..6197e9fad 100644 --- a/plugin-java/che-plugin-java-ext-ant/pom.xml +++ b/plugin-java/che-plugin-java-ext-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-ext-ant jar diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index 736b5ce55..59ff12563 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-ext-debugger-java jar diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml index 22d6cc9d9..1b6db1d67 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-ext-java-codeassistant jar diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml index 5e73e9a4e..8d515af3d 100644 --- a/plugin-java/che-plugin-java-ext-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-ext-java jar diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml index 25fe0489c..296aaa4ac 100644 --- a/plugin-java/che-plugin-java-ext-maven/pom.xml +++ b/plugin-java/che-plugin-java-ext-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-ext-maven jar diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml index 256bf834a..66fd09415 100644 --- a/plugin-java/che-plugin-java-generator-archetype/pom.xml +++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-generator-archetype jar diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml index 85977d7c4..c1b9ea0a2 100644 --- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml +++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-jdt-core-repack jar diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml index f4e5d720f..d93a44f63 100644 --- a/plugin-java/che-plugin-java-jseditor/pom.xml +++ b/plugin-java/che-plugin-java-jseditor/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-jseditor Che Plugin :: Java :: JsEditor diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index 82c371b53..eb9730004 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-maven-tools jar diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml index c7fe20ad1..6cb724474 100644 --- a/plugin-java/che-plugin-java-runner-webapps/pom.xml +++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-java-runner-webapps jar diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml index a6199542d..6eacbd4f2 100644 --- a/plugin-java/pom.xml +++ b/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-java-parent diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml index 7e8c62c66..1d54db32a 100644 --- a/plugin-npm/che-plugin-npm-builder/pom.xml +++ b/plugin-npm/che-plugin-npm-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-npm-builder jar diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml index f6a7b8540..62d54dc03 100644 --- a/plugin-npm/che-plugin-npm-ext-client/pom.xml +++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-npm-ext-client jar diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml index 86153a63e..b4c2a3c1b 100644 --- a/plugin-npm/pom.xml +++ b/plugin-npm/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-npm-parent diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml index 70f88d37b..c220a7c2e 100644 --- a/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-orion-editor diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml index d205f6d47..bd489bed9 100644 --- a/plugin-orion/pom.xml +++ b/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-orion-parent diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml index 4cc623203..618a42bee 100644 --- a/plugin-php/che-plugin-php-ext-php/pom.xml +++ b/plugin-php/che-plugin-php-ext-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-php-ext-php jar diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml index f692237e4..3010702c9 100644 --- a/plugin-php/pom.xml +++ b/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-php-parent diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml index f32a706d8..640b43e77 100644 --- a/plugin-python/che-plugin-python-ext-python/pom.xml +++ b/plugin-python/che-plugin-python-ext-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-python-ext-python jar diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml index bd8a8e070..f0c7594f6 100644 --- a/plugin-python/pom.xml +++ b/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-python-parent diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml index 44abe324e..03f31f4ec 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-ruby-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-ruby-ext-ruby jar diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml index 2e593baec..6882479a4 100644 --- a/plugin-ruby/pom.xml +++ b/plugin-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-ruby-parent diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml index 889fbbf12..93f92c8e0 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml +++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-runner-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-runner-ext-runner jar diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml index f8953303c..2cb0abad7 100644 --- a/plugin-runner/pom.xml +++ b/plugin-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-runner-parent diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml index c20e5d8f5..d8c5232ff 100644 --- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml +++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-sdk-env-local jar diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index 611a5bb39..ee07af390 100644 --- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-sdk-ext-plugins jar diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index 8465274e3..3cecebb21 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-sdk-runner jar diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml index 308938596..9a406bec6 100644 --- a/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-sdk-tools jar diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml index a2339b80d..86e5e79b9 100644 --- a/plugin-sdk/pom.xml +++ b/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-sdk-parent diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml index d0b2ab587..89976b0bb 100644 --- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml +++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-ssh-ext-sshkey jar diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml index 5b734f35b..f49ff7f8d 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml +++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-ssh-git-native jar diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml index 5b333fcc7..3f7a36977 100644 --- a/plugin-ssh/pom.xml +++ b/plugin-ssh/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-ssh-parent diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml index ddfcf80ae..77fcf12be 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml +++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-svn-ext-subversion jar diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml index a45b0d0fe..42e19eb4f 100644 --- a/plugin-svn/pom.xml +++ b/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-svn-parent diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml index feb6cc905..bd784c321 100644 --- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml +++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-tour-dto-gen Che Plugin :: Tour :: DTO Generation diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml index 41b66bfaf..90a8d40cc 100644 --- a/plugin-tour/che-plugin-tour-dto/pom.xml +++ b/plugin-tour/che-plugin-tour-dto/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-tour-dto Che Plugin :: Tour :: DTO diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml index 4efdecfac..a82e0a464 100644 --- a/plugin-tour/che-plugin-tour-ext-client/pom.xml +++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-tour-ext-client Che Plugin :: Tour :: Client diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml index 313d8af9f..1f8fbc438 100644 --- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml +++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-tour-hopscotch Che Plugin :: Tour :: Hopscotch diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml index 1669cd6d0..33494ca97 100644 --- a/plugin-tour/che-plugin-tour-server/pom.xml +++ b/plugin-tour/che-plugin-tour-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-tour-server Che Plugin :: Tour :: Server diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml index 7983630da..14f64e9ff 100644 --- a/plugin-tour/pom.xml +++ b/plugin-tour/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-tour-parent diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml index 7b38894a2..403c28bc7 100644 --- a/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-web-ext-web jar diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml index b00d55539..ef9a13dac 100644 --- a/plugin-web/pom.xml +++ b/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-web-parent diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml index 227d8be10..0882e4322 100644 --- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-yeoman-builder jar diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml index fa4377fd0..1dc68a52a 100644 --- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT che-plugin-yeoman-ext-client jar diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml index ddacf7557..ceba0c601 100644 --- a/plugin-yeoman/pom.xml +++ b/plugin-yeoman/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.2 + 3.12.3-SNAPSHOT ../pom.xml che-plugin-yeoman-parent diff --git a/pom.xml b/pom.xml index 1ee7accf7..7b2bad8fb 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.eclipse.che.plugin che-plugin-parent - 3.12.2 + 3.12.3-SNAPSHOT pom Che Plugin :: Parent @@ -53,7 +53,7 @@ scm:git:git@github.com:codenvy/che-plugins.git scm:git:git@github.com:codenvy/che-plugins.git - 3.12.2 + 3.9.0 https://github.com/codenvy/che-plugins From 2dda1d04692e7edd285b4dd0103ab27181fee6c3 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Wed, 2 Sep 2015 20:06:11 +0000 Subject: [PATCH 006/164] RELEASE:Set next development version of parent pom --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7b2bad8fb..a8a27d144 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ maven-depmgt-pom org.eclipse.che.depmgt - 3.12.2 + 3.12.3-SNAPSHOT org.eclipse.che.plugin che-plugin-parent From 0a8bf6320f616a8b7339cec177c4e51ad6c4957a Mon Sep 17 00:00:00 2001 From: Florent BENOIT Date: Wed, 2 Sep 2015 17:14:07 +0200 Subject: [PATCH 007/164] IDEX-2970 Docker recipes should be packaged along the docker plugin --- .../che-plugin-docker-recipes/pom.xml | 24 +++++++++++++ .../src/main/resources/cpp/qt4/Dockerfile | 14 ++++++++ .../src/main/resources/cpp/qt4/Misc.json | 4 +++ .../src/main/resources/cpp/simple/Dockerfile | 17 ++++++++++ .../src/main/resources/cpp/simple/Misc.json | 4 +++ .../main/resources/go/standalone/Dockerfile | 26 ++++++++++++++ .../main/resources/go/standalone/Misc.json | 4 +++ .../src/main/resources/go/web/Dockerfile | 29 ++++++++++++++++ .../src/main/resources/go/web/Misc.json | 4 +++ .../resources/java/codenvy-cli/Dockerfile | 29 ++++++++++++++++ .../main/resources/java/codenvy-cli/Misc.json | 4 +++ .../java/mobile/android422/Dockerfile | 13 +++++++ .../java/mobile/android422/Misc.json | 4 +++ .../java/mobile/android431/Dockerfile | 13 +++++++ .../java/mobile/android431/Misc.json | 4 +++ .../java/mobile/android442/Dockerfile | 13 +++++++ .../java/mobile/android442/Misc.json | 4 +++ .../java/standalone/db/cassandra/Dockerfile | 15 ++++++++ .../java/standalone/db/cassandra/Misc.json | 4 +++ .../java/standalone/db/couchbase/Dockerfile | 15 ++++++++ .../java/standalone/db/couchbase/Misc.json | 4 +++ .../java/standalone/db/mongodb/Dockerfile | 15 ++++++++ .../java/standalone/db/mongodb/Misc.json | 4 +++ .../java/standalone/db/mysql/Dockerfile | 15 ++++++++ .../java/standalone/db/mysql/Misc.json | 4 +++ .../java/standalone/db/neo4j/Dockerfile | 15 ++++++++ .../java/standalone/db/neo4j/Misc.json | 4 +++ .../java/standalone/db/nuodb/Dockerfile | 15 ++++++++ .../java/standalone/db/nuodb/Misc.json | 4 +++ .../java/standalone/db/postgresql/Dockerfile | 15 ++++++++ .../java/standalone/db/postgresql/Misc.json | 4 +++ .../java/standalone/db/riak/Dockerfile | 15 ++++++++ .../java/standalone/db/riak/Misc.json | 4 +++ .../java/standalone/simple/cli/Dockerfile | 19 +++++++++++ .../java/standalone/simple/cli/Misc.json | 4 +++ .../java/standalone/simple/gui/Dockerfile | 16 +++++++++ .../java/standalone/simple/gui/Misc.json | 4 +++ .../main/resources/java/web/gae/Dockerfile | 17 ++++++++++ .../src/main/resources/java/web/gae/Misc.json | 4 +++ .../resources/java/web/gae1914/Dockerfile | 17 ++++++++++ .../main/resources/java/web/gae1914/Misc.json | 4 +++ .../resources/java/web/glassfish4/Dockerfile | 25 ++++++++++++++ .../resources/java/web/glassfish4/Misc.json | 4 +++ .../main/resources/java/web/jboss7/Dockerfile | 20 +++++++++++ .../main/resources/java/web/jboss7/Misc.json | 4 +++ .../main/resources/java/web/jetty9/Dockerfile | 20 +++++++++++ .../main/resources/java/web/jetty9/Misc.json | 4 +++ .../main/resources/java/web/play1/Dockerfile | 15 ++++++++ .../main/resources/java/web/play1/Misc.json | 4 +++ .../main/resources/java/web/resin/Dockerfile | 20 +++++++++++ .../main/resources/java/web/resin/Misc.json | 4 +++ .../resources/java/web/tomcat7/Dockerfile | 19 +++++++++++ .../main/resources/java/web/tomcat7/Misc.json | 4 +++ .../main/resources/java/web/tomee/Dockerfile | 19 +++++++++++ .../main/resources/java/web/tomee/Misc.json | 4 +++ .../main/resources/java/web/virgo/Dockerfile | 19 +++++++++++ .../main/resources/java/web/virgo/Misc.json | 4 +++ .../resources/javascript/web/grunt/Dockerfile | 32 +++++++++++++++++ .../resources/javascript/web/grunt/Misc.json | 4 +++ .../resources/javascript/web/gulp/Dockerfile | 32 +++++++++++++++++ .../resources/javascript/web/gulp/Misc.json | 4 +++ .../javascript/web/simple/Dockerfile | 14 ++++++++ .../resources/javascript/web/simple/Misc.json | 4 +++ .../php/web/php56_apache2/Dockerfile | 14 ++++++++ .../resources/php/web/php56_apache2/Misc.json | 4 +++ .../resources/php/web/php56_gae/Dockerfile | 14 ++++++++ .../resources/php/web/php56_gae/Misc.json | 4 +++ .../php/web/php56_gae1914/Dockerfile | 14 ++++++++ .../resources/php/web/php56_gae1914/Misc.json | 4 +++ .../resources/python/web/python27/Dockerfile | 34 +++++++++++++++++++ .../resources/python/web/python27/Misc.json | 4 +++ .../python/web/python27_django/Dockerfile | 34 +++++++++++++++++++ .../python/web/python27_django/Misc.json | 4 +++ .../python/web/python27_gae/Dockerfile | 16 +++++++++ .../python/web/python27_gae/Misc.json | 4 +++ .../python/web/python27_gae1914/Dockerfile | 16 +++++++++ .../python/web/python27_gae1914/Misc.json | 4 +++ .../web/python27_gae_ext_libs/Dockerfile | 29 ++++++++++++++++ .../web/python27_gae_ext_libs/Misc.json | 4 +++ .../resources/python/web/python34/Dockerfile | 34 +++++++++++++++++++ .../resources/python/web/python34/Misc.json | 4 +++ .../ruby/standalone/ruby210/Dockerfile | 15 ++++++++ .../ruby/standalone/ruby210/Misc.json | 4 +++ .../ruby/web/ruby210_rails403/Dockerfile | 34 +++++++++++++++++++ .../ruby/web/ruby210_rails403/Misc.json | 4 +++ plugin-docker/pom.xml | 1 + 86 files changed, 1025 insertions(+) create mode 100644 plugin-docker/che-plugin-docker-recipes/pom.xml create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Misc.json create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Dockerfile create mode 100644 plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Misc.json diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml new file mode 100644 index 000000000..9752dc7d1 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/pom.xml @@ -0,0 +1,24 @@ + + + + 4.0.0 + + che-plugin-docker-parent + org.eclipse.che.plugin + 3.12.3-SNAPSHOT + + che-plugin-docker-recipes + jar + Che Plugin :: Docker :: Recipes + \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Dockerfile new file mode 100644 index 000000000..0d82685ba --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Dockerfile @@ -0,0 +1,14 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/cpp_qt4 +ADD $app$ /home/user/ +RUN qmake -project && qmake && make diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Misc.json new file mode 100644 index 000000000..530b3d4d8 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/qt4/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"C/C++ with Qt4, Debian Jessie", + "displayName":"Qt4 + C++" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Dockerfile new file mode 100644 index 000000000..b0e3465a8 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Dockerfile @@ -0,0 +1,17 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/cpp +ENV CODENVY_APP_BIND_DIR /home/user/app +VOLUME ["/home/user/app"] +CMD cd /home/user/app && \ + make && \ + ./a.out diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Misc.json new file mode 100644 index 000000000..571588399 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/cpp/simple/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"C/C++, Debian Jessie", + "displayName":"C++" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Dockerfile new file mode 100644 index 000000000..3eee5d373 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Dockerfile @@ -0,0 +1,26 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/go + +ENV GOPATH /home/user/application + +RUN mkdir -p /home/user/application/src + +ENV CODENVY_APP_BIND_DIR /home/user/application/src + +VOLUME ["/home/user/application/src"] + +WORKDIR /home/user/application/src + +# 1. Get dependencies from source code of application +# 2. Start application +CMD go get -d && go run $executable:-main.go$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Misc.json new file mode 100644 index 000000000..ea3ab2b94 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/standalone/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Go 1.3.1, Debian Jessie", + "displayName":"Go Console 1.3" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Dockerfile new file mode 100644 index 000000000..3f6a27898 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Dockerfile @@ -0,0 +1,29 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/go + +EXPOSE 8080 +ENV CODENVY_APP_PORT_8080_HTTP 8080 + +ENV GOPATH /home/user/application + +RUN mkdir -p /home/user/application/src + +ENV CODENVY_APP_BIND_DIR /home/user/application/src + +VOLUME ["/home/user/application/src"] + +WORKDIR /home/user/application/src + +# 1. Get dependencies from source code of application +# 2. Start application +CMD go get -d && go run $executable:-main.go$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Misc.json new file mode 100644 index 000000000..e1113d42b --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/go/web/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Go 1.3.1, Debian Jessie", + "displayName":"Go Web 1.3" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Dockerfile new file mode 100644 index 000000000..9692ba85a --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Dockerfile @@ -0,0 +1,29 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7 + +RUN mkdir /home/user/application + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +# 1. Build application is unpacked zip archive, so move zip content into application dir +# 2. Remove unnecessary empty unzipped folder +# 3. Make main CLI scripts executable +# 4. Allow CLI starts automatically when shell opens +# 5. Disallow image stop automatically +CMD mv /home/user/application/codenvy-cli-*/* /home/user/application && \ + rm -R /home/user/application/codenvy-cli-* && \ + sudo chmod +x /home/user/application/bin/* && \ + echo "/home/user/application/bin/codenvy-cli" >> /home/user/.bashrc && \ + while true;do true; done diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Misc.json new file mode 100644 index 000000000..983e5e96c --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/codenvy-cli/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Codenvy CLI, JDK 1.7.0_55, Debian Jessie", + "displayName":"Codenvy CLI 2.x + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Dockerfile new file mode 100644 index 000000000..343ecb6e8 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Dockerfile @@ -0,0 +1,13 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/android422 +ADD $app$ /home/user/application.apk \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Misc.json new file mode 100644 index 000000000..67a31b0ee --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android422/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Android 4.2.2 SDK 23.0.2 API 17, x11vnc 0.9.13, JDK 1.7.0_55, Debian Jessie", + "displayName":"Android 4.2.2 API 17 + VNC + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Dockerfile new file mode 100644 index 000000000..19d29c661 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Dockerfile @@ -0,0 +1,13 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/android431 +ADD $app$ /home/user/application.apk \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Misc.json new file mode 100644 index 000000000..63c5e9d3c --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android431/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Android 4.3.1 SDK 23.0.2 API 18, x11vnc 0.9.13, JDK 1.7.0_55, Debian Jessie", + "displayName":"Android 4.3.1 API 18 + VNC + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Dockerfile new file mode 100644 index 000000000..f2a815fce --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Dockerfile @@ -0,0 +1,13 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/android442 +ADD $app$ /home/user/application.apk \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Misc.json new file mode 100644 index 000000000..fd3a2008e --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/mobile/android442/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Android 4.4.2 SDK 23.0.2 API 19, x11vnc 0.9.13, JDK 1.7.0_55, Debian Jessie", + "displayName":"Android 4.4.2 API 19 + VNC + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Dockerfile new file mode 100644 index 000000000..727d40fe6 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_cassandra +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Misc.json new file mode 100644 index 000000000..1e2cbd30d --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/cassandra/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Cassandra 2.0.9, JDK 1.7.0_55, Debian Jessie", + "displayName":"Cassandra DB 2.0 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Dockerfile new file mode 100644 index 000000000..e2112ee3b --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_couchbase +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Misc.json new file mode 100644 index 000000000..e879013af --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/couchbase/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Couchbase 3.0.1, JDK 1.7.0_55, Debian Jessie", + "displayName":"Couchbase 3.0.1 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Dockerfile new file mode 100644 index 000000000..944f6fe50 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_mongodb +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Misc.json new file mode 100644 index 000000000..1f233bbc2 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mongodb/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"MongoDB 2.6.4, JDK 1.7.0_55, Debian Jessie", + "displayName":"MongoDB 2.6 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Dockerfile new file mode 100644 index 000000000..3298f6941 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_mysql +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Misc.json new file mode 100644 index 000000000..16c267c7e --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/mysql/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"MySQL 5.5.37, JDK 1.7.0_55, Debian Jessie", + "displayName":"MySQL 5.5 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Dockerfile new file mode 100644 index 000000000..32ac8e288 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_neo4j +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Misc.json new file mode 100644 index 000000000..5e57d5b9b --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/neo4j/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Neo4j 2.1.3, JDK 1.7.0_55, Debian Jessie", + "displayName":"Neo4j 2.1 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Dockerfile new file mode 100644 index 000000000..3c5bb40f5 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_nuodb +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Misc.json new file mode 100644 index 000000000..627cdc762 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/nuodb/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"NuoDB 2.0.4, JDK 1.7.0_55, Debian Jessie", + "displayName":"NuoDB 2.0 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Dockerfile new file mode 100644 index 000000000..eb9c2b970 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_postgresql +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Misc.json new file mode 100644 index 000000000..dd1ca0289 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/postgresql/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"PostgreSQL 9.3, JDK 1.7.0_55, Debian Jessie", + "displayName":"PostgreSQL 9.3 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Dockerfile new file mode 100644 index 000000000..d0612b03c --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_riak +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user +ENV ARGUMENTS $args$ \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Misc.json new file mode 100644 index 000000000..fe2594e1a --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/db/riak/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"RiakDB 1.4.10, JDK 1.7.0_55, Debian Jessie", + "displayName":"RiakDB 1.4 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Dockerfile new file mode 100644 index 000000000..b2a3abd01 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Dockerfile @@ -0,0 +1,19 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7 +RUN mkdir /home/user/app +WORKDIR /home/user/app +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user/app && \ + rm /home/user/$app$ +# expected to have all dependencies in lib directory and one single jar file application.jar in 'root' directory of archive. +CMD java -jar application.jar $args$ diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Misc.json new file mode 100644 index 000000000..c7b2f0b9b --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/cli/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"JDK 1.7.0_55, Debian Jessie", + "displayName":"Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Dockerfile new file mode 100644 index 000000000..7e44870da --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Dockerfile @@ -0,0 +1,16 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_vnc +RUN mkdir /home/user/app +WORKDIR /home/user/app +ADD $app$ /home/user/$app$ +RUN unzip -q /home/user/$app$ -d /home/user/app diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Misc.json new file mode 100644 index 000000000..74de08a0d --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/standalone/simple/gui/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"x11vnc 0.9.13, JDK 1.7.0_55, Debian Jessie", + "displayName":"VNC + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Dockerfile new file mode 100644 index 000000000..4a0b64868 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Dockerfile @@ -0,0 +1,17 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_gae +ENV CODENVY_APP_BIND_DIR /home/user/app +VOLUME ["/home/user/app/"] +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?CMD ./dev_appserver.sh 2>&1 --disable_update_check --jvm_flag=-Xdebug --jvm_flag=-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -a 0.0.0.0 /home/user/app:$ diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Misc.json new file mode 100644 index 000000000..275db1204 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"JAVA GAE SDK 1.9.19. Application is launched with ./dev_appserver.sh command, JDK 1.7.0_55, Debian Jessie", + "displayName":"Google App Engine SDK 1.9.19 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Dockerfile new file mode 100644 index 000000000..4a0b64868 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Dockerfile @@ -0,0 +1,17 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_gae +ENV CODENVY_APP_BIND_DIR /home/user/app +VOLUME ["/home/user/app/"] +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?CMD ./dev_appserver.sh 2>&1 --disable_update_check --jvm_flag=-Xdebug --jvm_flag=-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -a 0.0.0.0 /home/user/app:$ diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Misc.json new file mode 100644 index 000000000..be6980ed0 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/gae1914/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"JAVA GAE SDK 1.9.14. Application is launched with ./dev_appserver.sh command, JDK 1.7.0_55, Debian Jessie", + "displayName":"Google App Engine SDK 1.9.14 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Dockerfile new file mode 100644 index 000000000..230006d9a --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Dockerfile @@ -0,0 +1,25 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_glassfish4 + +$debug?EXPOSE 9009:$ +$debug?ENV CODENVY_APP_PORT_9009_DEBUG 9009:$ + +CMD ./asadmin start-domain $debug?--debug:$ && \ + ./asadmin deploydir --contextroot "/" /home/user/application && \ + tail -f /home/user/glassfish4/glassfish/domains/domain1/logs/server.log + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + + diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Misc.json new file mode 100644 index 000000000..58a191caf --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/glassfish4/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"GlassFish 4.0, JDK 1.7.0_55, Debian Jessie", + "displayName":"GlassFish 4.0 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Dockerfile new file mode 100644 index 000000000..4dca6eb75 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Dockerfile @@ -0,0 +1,20 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_jboss7 + +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?ENV JAVA_OPTS "-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n":$ + +ENV CODENVY_APP_BIND_DIR /home/user/jboss7/standalone/deployments/ROOT.war + +VOLUME ["/home/user/jboss7/standalone/deployments/ROOT.war"] \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Misc.json new file mode 100644 index 000000000..63569ad72 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jboss7/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"JBoss 7.1.1, JDK 1.7.0_55, Debian Jessie", + "displayName":"JBoss 7.1 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Dockerfile new file mode 100644 index 000000000..2862fd20c --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Dockerfile @@ -0,0 +1,20 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_jetty9 + +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?CMD java -Xdebug -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar start.jar 2>&1:$ + +ENV CODENVY_APP_BIND_DIR /home/user/jetty9/webapps/ROOT + +VOLUME ["/home/user/jetty9/webapps/ROOT"] diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Misc.json new file mode 100644 index 000000000..353806bd3 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/jetty9/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Jetty 9.2.0, JDK 1.7.0_55, Debian Jessie", + "displayName":"Jetty 9.2 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Dockerfile new file mode 100644 index 000000000..2f24d517a --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_play1 +ADD $app$ /home/user/application.zip +RUN cd /home/user/ && unzip application.zip -d application && \ + rm -rf application.zip \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Misc.json new file mode 100644 index 000000000..37d194480 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/play1/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Play 1.2.7, JDK 1.7.0_55, Debian Jessie", + "displayName":"Play 1.2 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Dockerfile new file mode 100644 index 000000000..05f934050 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Dockerfile @@ -0,0 +1,20 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_resin + +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?CMD ./resin.sh console --debug-port 8000:$ + +ENV CODENVY_APP_BIND_DIR /home/user/resin/webapps/ROOT + +VOLUME ["/home/user/resin/webapps/ROOT"] \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Misc.json new file mode 100644 index 000000000..1b3bfd127 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/resin/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Resin 4.0.41, JDK 1.7.0_55, Debian Jessie", + "displayName":"Resin 4.0 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Dockerfile new file mode 100644 index 000000000..2471e43d7 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Dockerfile @@ -0,0 +1,19 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_tomcat7 + +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?CMD ./catalina.sh jpda run 2>&1:$ + +ENV CODENVY_APP_BIND_DIR /home/user/tomcat7/webapps/ROOT +VOLUME ["/home/user/tomcat7/webapps/ROOT"] diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Misc.json new file mode 100644 index 000000000..c72ae39bd --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomcat7/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Tomcat 7.0.53, JDK 1.7.0_55, Debian Jessie", + "displayName":"Tomcat 7.0 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Dockerfile new file mode 100644 index 000000000..6a5363b9a --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Dockerfile @@ -0,0 +1,19 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_tomee + +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?CMD ./catalina.sh jpda run 2>&1:$ + +ENV CODENVY_APP_BIND_DIR /home/user/tomee/webapps/ROOT +VOLUME ["/home/user/tomee/webapps/ROOT"] diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Misc.json new file mode 100644 index 000000000..5f19975a4 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/tomee/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"TomEE 1.5.1, JDK 1.7.0_55, Debian Jessie", + "displayName":"TomEE 1.5 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Dockerfile new file mode 100644 index 000000000..787569d63 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Dockerfile @@ -0,0 +1,19 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/jdk7_virgo + +$debug?EXPOSE 8000:$ +$debug?ENV CODENVY_APP_PORT_8000_DEBUG 8000:$ +$debug?CMD ./startup.sh -debug:$ + +ENV CODENVY_APP_BIND_DIR /home/user/virgo/pickup/ROOT.war +VOLUME ["/home/user/virgo/pickup/ROOT.war"] \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Misc.json new file mode 100644 index 000000000..049e19844 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/java/web/virgo/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Eclipse Virgo 3.6.3, JDK 1.7.0_55, Debian Jessie", + "displayName":"Virgo 3.6 + Java 7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Dockerfile new file mode 100644 index 000000000..a51939ef1 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Dockerfile @@ -0,0 +1,32 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/angular-yeoman + +ADD $app$/package.json /tmp/application/package.json + +RUN cd /tmp/application && npm install + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +# 1. Update permissions +# 2. Copy nodejs modules to the application folder +# 3. Update permissions recursively +# 4. Makes newly created files accessible for anyone +# 5. Start application +CMD sudo chmod a+rw /home/user/application/ && \ + cp -a /tmp/application/node_modules /home/user/application/ && \ + sudo chmod a+rw -R /home/user/application/ && \ + umask 0 && \ + grunt $taskName:-server$ + diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Misc.json new file mode 100644 index 000000000..b7af1b454 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/grunt/Misc.json @@ -0,0 +1,4 @@ +{ + "description": "Grunt 0.4.5, Node.js 0.10.31, AngularJS 1.2.23, Debian Jessie", + "displayName": "Grunt 0.4 + Node.js 0.10 + AngularJS 1.2" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Dockerfile new file mode 100644 index 000000000..53fe94280 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Dockerfile @@ -0,0 +1,32 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/angular-gulp + +ADD $app$/package.json /tmp/application/package.json + +RUN cd /tmp/application && npm install + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +# 1. Update permissions +# 2. Copy nodejs modules to the application folder +# 3. Update permissions recursively +# 4. Makes newly created files accessible for anyone +# 5. Start application +CMD sudo chmod a+rw /home/user/application/ && \ + cp -a /tmp/application/node_modules /home/user/application/ && \ + sudo chmod a+rw -R /home/user/application/ && \ + umask 0 && \ + gulp serve:app + diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Misc.json new file mode 100644 index 000000000..4441bb7b7 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/gulp/Misc.json @@ -0,0 +1,4 @@ +{ + "description": "Gulp 3.8.7, Node.js 0.10.31, AngularJS 1.2.23, Debian Jessie", + "displayName": "Gulp 3.8 + Node.js 0.10 + AngularJS 1.2" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Dockerfile new file mode 100644 index 000000000..ce686fb81 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Dockerfile @@ -0,0 +1,14 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/javascript_html +ENV CODENVY_APP_BIND_DIR /var/www/html +VOLUME ["/var/www/html"] \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Misc.json new file mode 100644 index 000000000..c9ac03301 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/javascript/web/simple/Misc.json @@ -0,0 +1,4 @@ +{ + "description": "Apache 2, Debian Jessie", + "displayName": "Apache 2" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Dockerfile new file mode 100644 index 000000000..26e86133f --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Dockerfile @@ -0,0 +1,14 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/php56_apache2 +ENV CODENVY_APP_BIND_DIR /var/www/html +VOLUME ["/var/www/html"] diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Misc.json new file mode 100644 index 000000000..ee4241cea --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_apache2/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"LAMP stack: Apache2, MYSQL 14.14 Distrib 5.5.40, PHP 5.6, Debian Jessie. DB name: test, username: test, password: test", + "displayName":"Apache 2.4 + MYSQL 14.14 + PHP 5.6" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Dockerfile new file mode 100644 index 000000000..a5ffac3e4 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Dockerfile @@ -0,0 +1,14 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/php56_gae +ENV CODENVY_APP_BIND_DIR /home/user/app +VOLUME ["/home/user/app"] \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Misc.json new file mode 100644 index 000000000..3f4a8451e --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Google App Engine SDK 1.9.19, PHP 5.6, Debian Jessie", + "displayName":"Google App Engine SDK 1.9.19 + PHP 5.6" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Dockerfile new file mode 100644 index 000000000..a5ffac3e4 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Dockerfile @@ -0,0 +1,14 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/php56_gae +ENV CODENVY_APP_BIND_DIR /home/user/app +VOLUME ["/home/user/app"] \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Misc.json new file mode 100644 index 000000000..0da443753 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/php/web/php56_gae1914/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Google App Engine SDK 1.9.14, PHP 5.6, Debian Jessie", + "displayName":"Google App Engine SDK 1.9.14 + PHP 5.6" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Dockerfile new file mode 100644 index 000000000..6bcb2259f --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Dockerfile @@ -0,0 +1,34 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/python27 + +EXPOSE 8080 +ENV CODENVY_APP_PORT_8080_HTTP 8080 + +RUN mkdir /tmp/application /home/user/application + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +ADD $app$/requirements.txt /tmp/application/requirements.txt + +RUN cd /tmp/application && \ + sudo virtualenv /env && \ + sudo /env/bin/pip install -r requirements.txt + +# 1. Update permissions recursively +# 2. Make newly created files accessible for anyone +# 3. Start application +CMD sudo chmod a+rw -R /home/user/application/ && \ + umask 0 && \ + /env/bin/python /home/user/application/$executable:-main.py$ diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Misc.json new file mode 100644 index 000000000..f8cdd13a4 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Python 2.7.8, Debian Jessie", + "displayName":"Python 2.7" +} \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Dockerfile new file mode 100644 index 000000000..26621cd65 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Dockerfile @@ -0,0 +1,34 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/python27 + +EXPOSE 8000 +ENV CODENVY_APP_PORT_8000_HTTP 8000 + +RUN mkdir /tmp/application /home/user/application + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +ADD $app$/requirements.txt /tmp/application/requirements.txt + +RUN cd /tmp/application && \ + sudo virtualenv /env && \ + sudo /env/bin/pip install -r requirements.txt + +# 1. Update permissions recursively +# 2. Make newly created files accessible for anyone +# 3. Start application +CMD sudo chmod a+rw -R /home/user/application/ && \ + umask 0 && \ + /env/bin/python /home/user/application/$executable:-manage.py$ runserver 0.0.0.0:8000 2>&1 \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Misc.json new file mode 100644 index 000000000..f7e4ee637 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_django/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Django Framework, Python 2.7, Debian Jessie", + "displayName":"Django + Python 2.7" +} \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Dockerfile new file mode 100644 index 000000000..1411673d7 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Dockerfile @@ -0,0 +1,16 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/python27_gae + +ENV CODENVY_APP_BIND_DIR /home/user/app + +VOLUME ["/home/user/app"] diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Misc.json new file mode 100644 index 000000000..eb1e1d8e0 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Google App Engine SDK 1.9.19, Python 2.7, Debian Jessie", + "displayName":"Google App Engine SDK 1.9.19 + Python 2.7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Dockerfile new file mode 100644 index 000000000..1411673d7 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Dockerfile @@ -0,0 +1,16 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/python27_gae + +ENV CODENVY_APP_BIND_DIR /home/user/app + +VOLUME ["/home/user/app"] diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Misc.json new file mode 100644 index 000000000..d1d81173c --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae1914/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Google App Engine SDK 1.9.14, Python 2.7, Debian Jessie", + "displayName":"Google App Engine SDK 1.9.14 + Python 2.7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Dockerfile new file mode 100644 index 000000000..edea1e220 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Dockerfile @@ -0,0 +1,29 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/python27_gae + +RUN mkdir /tmp/application + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +ADD $app$/requirements.txt /tmp/application/requirements.txt + +RUN cd /tmp/application && \ + sudo virtualenv /env && \ + sudo /env/bin/pip install -r requirements.txt -t /tmp/application/lib + +CMD sudo cp -a /tmp/application/lib /home/user/application/ && \ + sudo chmod a+rw -R /home/user/application/ && \ + umask 0 && \ + /home/user/google_appengine/dev_appserver.py 2>&1 --host 0.0.0.0 --skip_sdk_update_check true /home/user/application \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Misc.json new file mode 100644 index 000000000..31c006245 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python27_gae_ext_libs/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Google App Engine SDK 1.9.19, Python 2.7.8, Debian Jessie. This environment supports 3rd party libs, specified in requirements.txt. Docker image will fail if you don't have this file in your project", + "displayName":"Google App Engine SDK 1.9.19, Python 2.7" +} diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Dockerfile new file mode 100644 index 000000000..51d45935d --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Dockerfile @@ -0,0 +1,34 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/python34 + +EXPOSE 8080 +ENV CODENVY_APP_PORT_8080_HTTP 8080 + +RUN mkdir /tmp/application /home/user/application + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +ADD $app$/requirements.txt /tmp/application/requirements.txt + +RUN cd /tmp/application && \ + sudo virtualenv /env && \ + sudo /env/bin/pip install -r requirements.txt + +# 1. Update permissions recursively +# 2. Make newly created files accessible for anyone +# 3. Start application +CMD sudo chmod a+rw -R /home/user/application/ && \ + umask 0 && \ + /env/bin/python /home/user/application/$executable:-main.py$ diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Misc.json new file mode 100644 index 000000000..6b53e0542 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/python/web/python34/Misc.json @@ -0,0 +1,4 @@ +{ + "description": "Python 3.4.1, Debian Jessie", + "displayName": "Python 3.4" +} \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Dockerfile new file mode 100644 index 000000000..8c5eb09b2 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Dockerfile @@ -0,0 +1,15 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/ruby210 +RUN echo 'source /etc/profile.d/rvm.sh' >> /home/user/.bashrc +ADD $app$/ /home/user +CMD ruby /home/user/main.rb \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Misc.json new file mode 100644 index 000000000..9210c5717 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/standalone/ruby210/Misc.json @@ -0,0 +1,4 @@ +{ + "description": "Ruby 2.1.0, Debian Jessie", + "displayName": "Ruby 2.1" +} \ No newline at end of file diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Dockerfile b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Dockerfile new file mode 100644 index 000000000..4970e5d1b --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Dockerfile @@ -0,0 +1,34 @@ +# +# Copyright (c) 2012-2015 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 +# + +FROM codenvy/ruby210_rails403 + +RUN mkdir /tmp/application /home/user/application + +ENV CODENVY_APP_BIND_DIR /home/user/application + +VOLUME ["/home/user/application"] + +ADD $app$/Gemfile /tmp/application/Gemfile + +RUN cd /tmp/application && /bin/bash -l -c "bundle install" && \ + echo 'source /etc/profile.d/rvm.sh' >> /home/user/.bashrc + +# 1. Update permissions recursively +# 2. Make newly created files accessible for anyone +# 3. Copy Gemfile.lock to the application folder +# 4. Make file in bin directory executable +# 5. Start application +CMD sudo chmod a+rw -R /home/user/application/ && \ + umask 0 && \ + cp /tmp/application/Gemfile.lock /home/user/application/ && \ + sudo chmod +x /home/user/application/bin/* && \ + /home/user/application/bin/rails server diff --git a/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Misc.json b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Misc.json new file mode 100644 index 000000000..1f44a6631 --- /dev/null +++ b/plugin-docker/che-plugin-docker-recipes/src/main/resources/ruby/web/ruby210_rails403/Misc.json @@ -0,0 +1,4 @@ +{ + "description":"Rails 4.0.3, Ruby 2.1.0, Debian Jessie", + "displayName":"Rails 4.0 + Ruby 2.1" +} diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index ceaffef72..d337ee129 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -26,6 +26,7 @@ che-plugin-docker-client che-plugin-docker-runner che-plugin-docker-ext-client + che-plugin-docker-recipes ${project.build.directory}/generated-sources/dto/ From 7777cb6dbb2d7bc30f56949f4999642f4bee7c2e Mon Sep 17 00:00:00 2001 From: Vladyslav Zhukovskii Date: Thu, 3 Sep 2015 15:05:07 +0300 Subject: [PATCH 008/164] IDEX-2994, IDEX-2750, IDEX-2898, IDEX-3008, IDEX-3015: Tree improvements --- .../page/GitImporterPagePresenter.java | 4 + .../jdi/client/debug/DebuggerPresenter.java | 81 +++++++++++-------- .../maven/client/MavenExtension.java | 15 ++++ 3 files changed, 68 insertions(+), 32 deletions(-) diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java index 7d5ce9881..56d09c26b 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java @@ -126,10 +126,12 @@ public void keepDirectorySelected(boolean keepDirectory) { if (keepDirectory) { projectParameters().put("keepDirectory", view.getDirectoryName()); + dataObject.getProject().withType("blank"); view.highlightDirectoryNameField(!NameUtils.checkProjectName(view.getDirectoryName())); view.focusDirectoryNameFiend(); } else { projectParameters().remove("keepDirectory"); + dataObject.getProject().withType(null); view.highlightDirectoryNameField(false); } } @@ -139,10 +141,12 @@ public void keepDirectoryNameChanged(@Nonnull String directoryName) { if (view.keepDirectory()) { projectParameters().put("keepDirectory", directoryName); dataObject.getProject().setContentRoot(view.getDirectoryName()); + dataObject.getProject().withType("blank"); view.highlightDirectoryNameField(!NameUtils.checkProjectName(view.getDirectoryName())); } else { projectParameters().remove("keepDirectory"); dataObject.getProject().setContentRoot(null); + dataObject.getProject().withType(null); view.highlightDirectoryNameField(false); } } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java index 5dc65a2e1..532d0cd5d 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java @@ -21,6 +21,9 @@ import com.google.web.bindery.event.shared.HandlerRegistration; import org.eclipse.che.api.project.shared.dto.ProjectDescriptor; +import org.eclipse.che.api.promises.client.Operation; +import org.eclipse.che.api.promises.client.OperationException; +import org.eclipse.che.api.promises.client.Promise; import org.eclipse.che.api.runner.dto.ApplicationProcessDescriptor; import org.eclipse.che.api.runner.dto.RunOptions; import org.eclipse.che.ide.api.app.AppContext; @@ -38,9 +41,9 @@ import org.eclipse.che.ide.api.parts.PartStackType; import org.eclipse.che.ide.api.parts.WorkspaceAgent; import org.eclipse.che.ide.api.parts.base.BasePresenter; -import org.eclipse.che.ide.api.project.tree.TreeNode; +import org.eclipse.che.ide.api.project.node.HasStorablePath; +import org.eclipse.che.ide.api.project.node.Node; import org.eclipse.che.ide.api.project.tree.VirtualFile; -import org.eclipse.che.ide.api.project.tree.generic.FileNode; import org.eclipse.che.ide.debug.Breakpoint; import org.eclipse.che.ide.debug.BreakpointManager; import org.eclipse.che.ide.debug.Debugger; @@ -68,6 +71,8 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; import org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.common.RunnerApplicationStatusEvent; import org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.common.RunnerApplicationStatusEventHandler; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; +import org.eclipse.che.ide.project.node.FileReferenceNode; import org.eclipse.che.ide.rest.AsyncRequestCallback; import org.eclipse.che.ide.rest.DtoUnmarshallerFactory; import org.eclipse.che.ide.rest.HTTPStatus; @@ -135,6 +140,7 @@ public class DebuggerPresenter extends BasePresenter implements DebuggerView.Act private Location executionPoint; private Runner runner; private final ChooseRunnerAction chooseRunnerAction; + private final NewProjectExplorerPresenter projectExplorer; private String host; private int port; @@ -157,7 +163,8 @@ public DebuggerPresenter(DebuggerView view, final DtoFactory dtoFactory, DtoUnmarshallerFactory dtoUnmarshallerFactory, final AppContext appContext, - ChooseRunnerAction chooseRunnerAction) { + ChooseRunnerAction chooseRunnerAction, + NewProjectExplorerPresenter projectExplorer) { this.view = view; this.eventBus = eventBus; this.runnerManager = runnerManager; @@ -165,6 +172,7 @@ public DebuggerPresenter(DebuggerView view, this.dtoUnmarshallerFactory = dtoUnmarshallerFactory; this.appContext = appContext; this.chooseRunnerAction = chooseRunnerAction; + this.projectExplorer = projectExplorer; this.view.setDelegate(this); this.view.setTitle(TITLE); this.service = service; @@ -363,9 +371,9 @@ private void onEventListReceived(@Nonnull DebuggerEventList eventList) { final String filePath = resolveFilePathByLocation(location, activeFile); if (activeFile == null || !filePath.equalsIgnoreCase(activeFile.getPath())) { final Location finalLocation = location; - openFile(location, activeFile, new AsyncCallback() { + openFile(location, activeFile, new AsyncCallback() { @Override - public void onSuccess(FileNode result) { + public void onSuccess(VirtualFile result) { if (result != null && filePath != null && filePath.equalsIgnoreCase(result.getPath())) { breakpointManager.markCurrentBreakpoint(finalLocation.getLineNumber() - 1); } @@ -402,7 +410,7 @@ private String resolveFilePathByLocation(@Nonnull Location location, @Nullable V return activeFile.getProject().getProjectDescriptor().getPath() + "/" + srcFolder + "/" + location.getClassName().replace(".", "/") + ".java"; } - private void openFile(@Nonnull Location location, @Nullable VirtualFile activeFile, final AsyncCallback callback) { + private void openFile(@Nonnull Location location, @Nullable VirtualFile activeFile, final AsyncCallback callback) { final String filePath = resolveFilePathByLocation(location, activeFile); CurrentProject currentProject = appContext.getCurrentProject(); @@ -410,38 +418,47 @@ private void openFile(@Nonnull Location location, @Nullable VirtualFile activeFi return; } - currentProject.getCurrentTree().getNodeByPath(filePath, new AsyncCallback>() { + HasStorablePath path = new HasStorablePath() { + @Nonnull + @Override + public String getStorablePath() { + return filePath; + } + }; + + Promise fileNode = projectExplorer.navigate(path, true); + + + fileNode.then(new Operation() { public HandlerRegistration handlerRegistration; @Override - public void onSuccess(final TreeNode result) { - if (result instanceof FileNode) { - final FileNode fileToOpen = (FileNode)result; - handlerRegistration = eventBus.addHandler(ActivePartChangedEvent.TYPE, new ActivePartChangedHandler() { - @Override - public void onActivePartChanged(ActivePartChangedEvent event) { - if (event.getActivePart() instanceof EditorPartPresenter) { - final VirtualFile openedFile = ((EditorPartPresenter)event.getActivePart()).getEditorInput().getFile(); - if (fileToOpen.getPath().equals(openedFile.getPath())) { - handlerRegistration.removeHandler(); - // give the editor some time to fully render it's view - new Timer() { - @Override - public void run() { - callback.onSuccess(fileToOpen); - } - }.schedule(300); - } + public void apply(final Node node) throws OperationException { + + if (!(node instanceof FileReferenceNode)) { + return; + } + + handlerRegistration = eventBus.addHandler(ActivePartChangedEvent.TYPE, new ActivePartChangedHandler() { + @Override + public void onActivePartChanged(ActivePartChangedEvent event) { + if (event.getActivePart() instanceof EditorPartPresenter) { + final VirtualFile openedFile = ((EditorPartPresenter)event.getActivePart()).getEditorInput().getFile(); + if (((FileReferenceNode)node).getStorablePath().equals(openedFile.getPath())) { + handlerRegistration.removeHandler(); + // give the editor some time to fully render it's view + new Timer() { + @Override + public void run() { + callback.onSuccess((VirtualFile)node); + } + }.schedule(300); } } - }); - eventBus.fireEvent(new FileEvent(fileToOpen, OPEN)); - } - } + } + }); + eventBus.fireEvent(new FileEvent((VirtualFile)node, OPEN)); - @Override - public void onFailure(Throwable caught) { - callback.onFailure(caught); } }); } diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java index 7b3a92989..ba7212600 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java @@ -21,11 +21,14 @@ import org.eclipse.che.ide.api.action.DefaultActionGroup; import org.eclipse.che.ide.api.constraints.Anchor; import org.eclipse.che.ide.api.constraints.Constraints; +import org.eclipse.che.ide.api.event.FileEvent; +import org.eclipse.che.ide.api.event.FileEventHandler; import org.eclipse.che.ide.api.event.ProjectActionEvent; import org.eclipse.che.ide.api.event.ProjectActionHandler; import org.eclipse.che.ide.api.extension.Extension; import org.eclipse.che.ide.api.icon.Icon; import org.eclipse.che.ide.api.icon.IconRegistry; +import org.eclipse.che.ide.api.project.node.HasProjectDescriptor; import org.eclipse.che.ide.api.project.type.wizard.PreSelectedProjectTypeManager; import org.eclipse.che.ide.ext.java.client.dependenciesupdater.DependenciesUpdater; import org.eclipse.che.ide.extension.maven.client.actions.CreateMavenModuleAction; @@ -91,6 +94,18 @@ public void onProjectClosing(ProjectActionEvent event) { public void onProjectClosed(ProjectActionEvent event) { } }); + + eventBus.addHandler(FileEvent.TYPE, new FileEventHandler() { + @Override + public void onFileOperation(final FileEvent event) { + if (event.getOperationType() == FileEvent.FileOperation.SAVE && "pom.xml".equals(event.getFile().getName())) { + final HasProjectDescriptor project = event.getFile().getProject(); + if (isValidForResolveDependencies(project.getProjectDescriptor())) { + dependenciesUpdater.updateDependencies(project.getProjectDescriptor(), true); + } + } + } + }); } @Inject From 6a236105f3effcb60dd3bc23758b8fa2d8742db2 Mon Sep 17 00:00:00 2001 From: Roman Nikitenko Date: Thu, 3 Sep 2015 17:07:09 +0300 Subject: [PATCH 009/164] IDEX-2899. Added RemoveModuleHandler for delete module from pom.xml. Fixed remove module from the imported project. --- .../maven/server/inject/MavenModule.java | 2 + .../projecttype/MavenProjectResolver.java | 1 + .../handler/RemoveMavenModuleHandler.java | 60 +++++++ .../handler/RemoveMavenModuleHandlerTest.java | 168 ++++++++++++++++++ .../eclipse/che/ide/maven/tools/Model.java | 2 +- .../che/ide/maven/tools/ModelTest.java | 32 ++++ 6 files changed, 264 insertions(+), 1 deletion(-) create mode 100644 plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandler.java create mode 100644 plugin-java/che-plugin-java-ext-maven/src/test/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandlerTest.java diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/inject/MavenModule.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/inject/MavenModule.java index 9d0c1c1c0..8b1e67db6 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/inject/MavenModule.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/inject/MavenModule.java @@ -23,6 +23,7 @@ import org.eclipse.che.ide.extension.maven.server.projecttype.handler.MavenProjectGenerator; import org.eclipse.che.ide.extension.maven.server.projecttype.handler.MavenProjectImportedHandler; import org.eclipse.che.ide.extension.maven.server.projecttype.handler.ProjectHasBecomeMaven; +import org.eclipse.che.ide.extension.maven.server.projecttype.handler.RemoveMavenModuleHandler; import org.eclipse.che.inject.DynaModule; import com.google.inject.AbstractModule; import com.google.inject.multibindings.Multibinder; @@ -37,6 +38,7 @@ protected void configure() { Multibinder.newSetBinder(binder(), ProjectType.class).addBinding().to(MavenProjectType.class); Multibinder.newSetBinder(binder(), ProjectHandler.class).addBinding().to(MavenProjectGenerator.class); Multibinder.newSetBinder(binder(), ProjectHandler.class).addBinding().to(AddMavenModuleHandler.class); + Multibinder.newSetBinder(binder(), ProjectHandler.class).addBinding().to(RemoveMavenModuleHandler.class); Multibinder.newSetBinder(binder(), ProjectHandler.class).addBinding().to(MavenProjectImportedHandler.class); Multibinder.newSetBinder(binder(), ProjectHandler.class).addBinding().to(ProjectHasBecomeMaven.class); Multibinder.newSetBinder(binder(), ProjectHandler.class).addBinding().to(GetMavenModulesHandler.class); diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenProjectResolver.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenProjectResolver.java index 6eb9882b0..f95afd3a4 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenProjectResolver.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenProjectResolver.java @@ -99,6 +99,7 @@ private static void createProjectsOnModules(Model model, Project parentProject, project = new Project(moduleEntry, projectManager); } project.updateConfig(projectConfig); + parentProject.getModules().add(module); resolve(project.getBaseFolder(), projectManager); } } diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandler.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandler.java new file mode 100644 index 000000000..d0d66a48c --- /dev/null +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandler.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.extension.maven.server.projecttype.handler; + +import org.eclipse.che.api.core.ConflictException; +import org.eclipse.che.api.core.ForbiddenException; +import org.eclipse.che.api.core.ServerException; +import org.eclipse.che.api.project.server.FolderEntry; +import org.eclipse.che.api.project.server.ProjectConfig; +import org.eclipse.che.api.project.server.VirtualFileEntry; +import org.eclipse.che.api.project.server.handlers.RemoveModuleHandler; +import org.eclipse.che.ide.extension.maven.shared.MavenAttributes; +import org.eclipse.che.ide.maven.tools.Model; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; + +/** + * @author Roman Nikitenko + */ +public class RemoveMavenModuleHandler implements RemoveModuleHandler { + + private final static Logger logger = LoggerFactory.getLogger(RemoveMavenModuleHandler.class); + + @Override + public String getProjectType() { + return MavenAttributes.MAVEN_ID; + } + + @Override + public void onRemoveModule(FolderEntry parentFolder, String modulePath, ProjectConfig moduleConfig) + throws ForbiddenException, ConflictException, ServerException { + if (!moduleConfig.getTypeId().equals(MavenAttributes.MAVEN_ID)) { + logger.warn("Module isn't Maven module"); + throw new IllegalArgumentException("Module isn't Maven module"); + } + VirtualFileEntry pom = parentFolder.getChild("pom.xml"); + if (pom == null) { + throw new IllegalArgumentException("Can't find pom.xml file in path: " + parentFolder.getPath()); + } + try { + Model model = Model.readFrom(pom.getVirtualFile()); + if (model.getModules().contains(modulePath)) { + model.removeModule(modulePath); + model.writeTo(pom.getVirtualFile()); + } + } catch (IOException e) { + throw new ServerException(e); + } + } +} diff --git a/plugin-java/che-plugin-java-ext-maven/src/test/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandlerTest.java b/plugin-java/che-plugin-java-ext-maven/src/test/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandlerTest.java new file mode 100644 index 000000000..83493bcce --- /dev/null +++ b/plugin-java/che-plugin-java-ext-maven/src/test/java/org/eclipse/che/ide/extension/maven/server/projecttype/handler/RemoveMavenModuleHandlerTest.java @@ -0,0 +1,168 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.extension.maven.server.projecttype.handler; + +import org.eclipse.che.api.core.notification.EventService; +import org.eclipse.che.api.project.server.DefaultProjectManager; +import org.eclipse.che.api.project.server.Project; +import org.eclipse.che.api.project.server.ProjectConfig; +import org.eclipse.che.api.project.server.VirtualFileEntry; +import org.eclipse.che.api.project.server.handlers.ProjectHandler; +import org.eclipse.che.api.project.server.handlers.ProjectHandlerRegistry; +import org.eclipse.che.api.project.server.type.ProjectType; +import org.eclipse.che.api.project.server.type.ProjectTypeRegistry; +import org.eclipse.che.api.vfs.server.ContentStream; +import org.eclipse.che.api.vfs.server.VirtualFileSystemRegistry; +import org.eclipse.che.api.vfs.server.VirtualFileSystemUser; +import org.eclipse.che.api.vfs.server.VirtualFileSystemUserContext; +import org.eclipse.che.api.vfs.server.impl.memory.MemoryFileSystemProvider; +import org.eclipse.che.commons.lang.IoUtil; +import org.eclipse.che.commons.lang.NameGenerator; +import org.eclipse.che.ide.extension.maven.shared.MavenAttributes; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.runners.MockitoJUnitRunner; + +import java.io.InputStream; +import java.util.Arrays; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * @author Roman Nikitenko + */ +@RunWith(MockitoJUnitRunner.class) +public class RemoveMavenModuleHandlerTest { + + private static final String workspace = "my_ws"; + + private static final String POM_XML_TEMPL = "\n" + + "\n" + + " 4.0.0\n" + + " artifact-id\n" + + " group-id\n" + + " x.x.x\n" + + " \n" + + " firstModule\n" + + " secondModule\n" + + " \n" + + ""; + private static final String FIRST_MODULE = "firstModule"; + private static final String SECOND_MODULE = "secondModule"; + + private RemoveMavenModuleHandler removeMavenModuleHandler; + private DefaultProjectManager projectManager; + + @Before + public void setUp() throws Exception { + removeMavenModuleHandler = new RemoveMavenModuleHandler(); + ProjectType mavenProjectType = Mockito.mock(ProjectType.class); + Mockito.when(mavenProjectType.getId()).thenReturn(MavenAttributes.MAVEN_ID); + Mockito.when(mavenProjectType.getDisplayName()).thenReturn(MavenAttributes.MAVEN_ID); + Mockito.when(mavenProjectType.canBePrimary()).thenReturn(true); + final String vfsUser = "dev"; + final Set vfsUserGroups = new LinkedHashSet<>(Arrays.asList("workspace/developer")); + final EventService eventService = new EventService(); + VirtualFileSystemRegistry vfsRegistry = new VirtualFileSystemRegistry(); + final MemoryFileSystemProvider memoryFileSystemProvider = + new MemoryFileSystemProvider(workspace, eventService, new VirtualFileSystemUserContext() { + @Override + public VirtualFileSystemUser getVirtualFileSystemUser() { + return new VirtualFileSystemUser(vfsUser, vfsUserGroups); + } + }, vfsRegistry); + vfsRegistry.registerProvider(workspace, memoryFileSystemProvider); + + + Set projTypes = new HashSet<>(); + projTypes.add(mavenProjectType); + + ProjectTypeRegistry projectTypeRegistry = new ProjectTypeRegistry(projTypes); + + Set handlers = new HashSet<>(); + ProjectHandlerRegistry handlerRegistry = new ProjectHandlerRegistry(handlers); + + projectManager = new DefaultProjectManager(vfsRegistry, eventService, + projectTypeRegistry, handlerRegistry); + } + + @Test(expected = IllegalArgumentException.class) + public void shouldThrowExceptionWhenPomNotFound() throws Exception { + String parent = NameGenerator.generate("parent", 5); + String module = NameGenerator.generate("module", 5); + Project project = + projectManager.createProject(workspace, parent, new ProjectConfig(null, MavenAttributes.MAVEN_ID), null, "public"); + removeMavenModuleHandler + .onRemoveModule(project.getBaseFolder(), project.getPath() + "/" + module, new ProjectConfig(null, "maven")); + } + + @Test(expected = IllegalArgumentException.class) + public void shouldThrowExceptionWhenModuleIsNotMavenModule() throws Exception { + String parent = NameGenerator.generate("parent", 5); + String module = NameGenerator.generate("module", 5); + Project project = + projectManager.createProject(workspace, parent, new ProjectConfig(null, MavenAttributes.MAVEN_ID), null, "public"); + project.getBaseFolder().createFile("pom.xml", String.format(POM_XML_TEMPL, "jar").getBytes(), "text/xml"); + removeMavenModuleHandler + .onRemoveModule(project.getBaseFolder(), project.getPath() + "/" + module, new ProjectConfig(null, "notmaven")); + } + + @Test + public void shouldRemoveModule() throws Exception { + String parent = NameGenerator.generate("parent", 5); + Project project = + projectManager.createProject(workspace, parent, new ProjectConfig(null, MavenAttributes.MAVEN_ID), null, "public"); + project.getBaseFolder().createFile("pom.xml", String.format(POM_XML_TEMPL, "pom").getBytes(), "text/xml"); + removeMavenModuleHandler.onRemoveModule(project.getBaseFolder(), FIRST_MODULE, new ProjectConfig(null, MavenAttributes.MAVEN_ID)); + + VirtualFileEntry pom = project.getBaseFolder().getChild("pom.xml"); + Assert.assertNotNull(pom); + ContentStream content = pom.getVirtualFile().getContent(); + Assert.assertNotNull(content); + InputStream stream = content.getStream(); + String pomContent = IoUtil.readStream(stream); + Assert.assertNotNull(pomContent); + Assert.assertFalse(pomContent.isEmpty()); + + String firstMavenModule = String.format("%s", FIRST_MODULE); + String secondMavenModule = String.format("%s", SECOND_MODULE); + Assert.assertFalse(pomContent.contains(firstMavenModule)); + Assert.assertTrue(pomContent.contains(secondMavenModule)); + } + + @Test + public void shouldNotRemoveModuleWhenPomNotContainsModule() throws Exception { + String parent = NameGenerator.generate("parent", 5); + String module = NameGenerator.generate("module", 5); + Project project = + projectManager.createProject(workspace, parent, new ProjectConfig(null, MavenAttributes.MAVEN_ID), null, "public"); + project.getBaseFolder().createFile("pom.xml", String.format(POM_XML_TEMPL, "pom").getBytes(), "text/xml"); + removeMavenModuleHandler.onRemoveModule(project.getBaseFolder(), module, new ProjectConfig(null, MavenAttributes.MAVEN_ID)); + + VirtualFileEntry pom = project.getBaseFolder().getChild("pom.xml"); + Assert.assertNotNull(pom); + ContentStream content = pom.getVirtualFile().getContent(); + Assert.assertNotNull(content); + InputStream stream = content.getStream(); + String pomContent = IoUtil.readStream(stream); + Assert.assertNotNull(pomContent); + Assert.assertFalse(pomContent.isEmpty()); + + String firstMavenModule = String.format("%s", FIRST_MODULE); + String secondMavenModule = String.format("%s", SECOND_MODULE); + Assert.assertTrue(pomContent.contains(firstMavenModule)); + Assert.assertTrue(pomContent.contains(secondMavenModule)); + } +} diff --git a/plugin-java/che-plugin-java-maven-tools/src/main/java/org/eclipse/che/ide/maven/tools/Model.java b/plugin-java/che-plugin-java-maven-tools/src/main/java/org/eclipse/che/ide/maven/tools/Model.java index 3bd1d1f9b..54d5e1f28 100644 --- a/plugin-java/che-plugin-java-maven-tools/src/main/java/org/eclipse/che/ide/maven/tools/Model.java +++ b/plugin-java/che-plugin-java-maven-tools/src/main/java/org/eclipse/che/ide/maven/tools/Model.java @@ -1061,7 +1061,7 @@ private void removeModuleFromXML(String module) { if (modules.isEmpty()) { root.removeChild("modules"); } else { - for (Element element : root.getChildren()) { + for (Element element : root.getSingleChild("modules").getChildren()) { if (module.equals(element.getText())) { element.remove(); } diff --git a/plugin-java/che-plugin-java-maven-tools/src/test/java/org/eclipse/che/ide/maven/tools/ModelTest.java b/plugin-java/che-plugin-java-maven-tools/src/test/java/org/eclipse/che/ide/maven/tools/ModelTest.java index c36deb3f9..5849e3012 100644 --- a/plugin-java/che-plugin-java-maven-tools/src/test/java/org/eclipse/che/ide/maven/tools/ModelTest.java +++ b/plugin-java/che-plugin-java-maven-tools/src/test/java/org/eclipse/che/ide/maven/tools/ModelTest.java @@ -173,6 +173,38 @@ public void shouldRemoveModulesIfLastModuleWasRemoved() throws Exception { assertTrue(model.getModules().isEmpty()); } + @Test + public void shouldRemoveModule() throws Exception { + final File pom = getTestPomFile(); + write(pom, "\n" + + "\n" + + " 4.0.0\n" + + " artifact-id\n" + + " group-id\n" + + " x.x.x\n" + + " \n" + + " firstModule\n" + + " secondModule\n" + + " \n" + + ""); + final Model model = Model.readFrom(pom); + + model.removeModule("firstModule"); + + model.writeTo(pom); + assertEquals(read(pom), "\n" + + "\n" + + " 4.0.0\n" + + " artifact-id\n" + + " group-id\n" + + " x.x.x\n" + + " \n" + + " secondModule\n" + + " \n" + + ""); + assertEquals(model.getModules().size(), 1); + } + @Test public void shouldBeAbleToRemoveModelMembers() throws Exception { final File pom = getTestPomFile(); From 7eab3e916ca311bc8a3ef8d4cfac99de8df58b4f Mon Sep 17 00:00:00 2001 From: Sergii Kabashniuk Date: Fri, 4 Sep 2015 15:24:34 +0300 Subject: [PATCH 010/164] Fix findbugs property name Signed-off-by: Sergii Kabashniuk --- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index 59ff12563..e8ffd7095 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -23,7 +23,7 @@ Che Plugin :: Java :: Extension Debugger Java ${project.build.directory}/generated-sources/dto/ - ${project.build.testSourceDirectory}/../resources/findbugs-exclude.xml + ${project.build.testSourceDirectory}/../resources/findbugs-exclude.xml From bf33c666cd0f466854966a62fc61d4dd1cdb84d4 Mon Sep 17 00:00:00 2001 From: Mihail Kuznetsov Date: Fri, 4 Sep 2015 17:34:04 +0300 Subject: [PATCH 011/164] use Eclipse-approved jackson-databind 2.3.0 --- plugin-github/che-plugin-github-ext-github/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index 163b9d396..6df9c80f9 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -25,6 +25,11 @@ ${project.build.directory}/generated-sources/dto/ + + com.fasterxml.jackson.core + jackson-databind + ${com.fasterxml.jackson.core.version} + com.google.code.findbugs jsr305 From 671f540b3127cf207016c7e760ce3cffc47983fe Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Wed, 9 Sep 2015 15:02:28 +0300 Subject: [PATCH 012/164] do not fail docker container start if docker api respond 200 with warning message --- .../che/plugin/docker/client/DockerConnector.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java index aa7c694da..87ad893cc 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java @@ -1036,9 +1036,15 @@ protected void doStartContainer(String container, final int status = response.getStatus(); if (!(204 == status || 304 == status)) { final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (200 == status) { + // docker API 1.20 returns 200 with warning message about usage of loopback docker backend + LOG.error(msg); + } else { + throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), + status); + } } - if (204 == status) { + if ((204 == status) || (200 == status)) { startOOMDetector(container, startContainerLogProcessor); } } finally { From d04fe7d02c16243ffa3e635c22f2594ccc8662f8 Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Wed, 9 Sep 2015 16:13:53 +0300 Subject: [PATCH 013/164] reduce logging level --- .../org/eclipse/che/plugin/docker/client/DockerConnector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java index 87ad893cc..b20e46300 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java @@ -1038,7 +1038,7 @@ protected void doStartContainer(String container, final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); if (200 == status) { // docker API 1.20 returns 200 with warning message about usage of loopback docker backend - LOG.error(msg); + LOG.warn(msg); } else { throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); From 9dc31e0f80b3c35a0efe209a538e8b28a4d32fa6 Mon Sep 17 00:00:00 2001 From: Aleksandr Andrienko Date: Wed, 9 Sep 2015 18:50:04 +0300 Subject: [PATCH 014/164] IDEX-2996: Added possibility show/hide hidden files --- .../java/client/project/settings/JavaNodeSettings.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/settings/JavaNodeSettings.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/settings/JavaNodeSettings.java index 79e3b955d..7d45647d8 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/settings/JavaNodeSettings.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/settings/JavaNodeSettings.java @@ -21,9 +21,16 @@ public class JavaNodeSettings implements NodeSettings { private boolean showExternalLibrariesNode = true; + private boolean showHiddenFiles; + @Override public boolean isShowHiddenFiles() { - return false; //TODO make it configurable + return showHiddenFiles; + } + + @Override + public void setShowHiddenFiles(boolean showHiddenFiles) { + this.showHiddenFiles = showHiddenFiles; } @Override From 062db756bf18e2cd0e136f25d3fbecf449757c92 Mon Sep 17 00:00:00 2001 From: Vitaly Parfonov Date: Thu, 10 Sep 2015 10:29:40 +0300 Subject: [PATCH 015/164] IDEX-3020 --- plugin-sdk/che-plugin-sdk-runner/pom.xml | 5 + .../che/runner/sdk/AbstractCodeServer.java | 2 +- .../org/eclipse/che/runner/sdk/SDKRunner.java | 2 +- .../org/eclipse/che/runner/sdk/Utils.java | 2 +- .../main/resources/codenvyPlatform/pom.xml | 130 +++++++++--------- .../org/eclipse/che/api/deploy/ApiModule.java | 15 -- .../org/eclipse/che/ide/IDEPlatform.gwt.xml | 44 ++++-- .../che/ide/sdk/tools/GwtXmlUtils.java | 119 ++++++++++++++++ .../che/ide/sdk/tools/InstallExtension.java | 1 - 9 files changed, 228 insertions(+), 92 deletions(-) create mode 100644 plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/GwtXmlUtils.java diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index 3cecebb21..2ab3f5d6c 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -42,6 +42,11 @@ che-plugin-java-maven-tools ${project.version} + + org.eclipse.che.plugin + che-plugin-sdk-tools + ${project.version} + org.jvnet.winp winp diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/AbstractCodeServer.java b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/AbstractCodeServer.java index 0ea119324..d4a021a48 100644 --- a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/AbstractCodeServer.java +++ b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/AbstractCodeServer.java @@ -14,10 +14,10 @@ import org.eclipse.che.api.runner.RunnerException; import org.eclipse.che.commons.lang.IoUtil; import org.eclipse.che.commons.lang.ZipUtils; -import org.eclipse.che.ide.commons.GwtXmlUtils; import org.eclipse.che.ide.maven.tools.Dependency; import org.eclipse.che.ide.maven.tools.Model; import org.eclipse.che.ide.maven.tools.Plugin; +import org.eclipse.che.ide.sdk.tools.GwtXmlUtils; import java.io.File; import java.io.IOException; diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java index 3e948daec..ac9450401 100644 --- a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java +++ b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java @@ -28,10 +28,10 @@ import org.eclipse.che.commons.lang.IoUtil; import org.eclipse.che.commons.lang.ZipUtils; import org.eclipse.che.dto.server.DtoFactory; -import org.eclipse.che.ide.commons.GwtXmlUtils; import org.eclipse.che.ide.maven.tools.Dependency; import org.eclipse.che.ide.maven.tools.Model; +import org.eclipse.che.ide.sdk.tools.GwtXmlUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java index 435d508e1..641e12428 100644 --- a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java +++ b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java @@ -21,9 +21,9 @@ import org.eclipse.che.api.project.server.Constants; import org.eclipse.che.api.project.shared.dto.ProjectDescriptor; import org.eclipse.che.commons.lang.IoUtil; -import org.eclipse.che.ide.commons.GwtXmlUtils; import org.eclipse.che.ide.maven.tools.MavenUtils; import org.eclipse.che.ide.maven.tools.Model; +import org.eclipse.che.ide.sdk.tools.GwtXmlUtils; import java.io.IOException; import java.net.URL; diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/pom.xml b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/pom.xml index a88328d3a..28c4f188a 100644 --- a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/pom.xml @@ -16,7 +16,7 @@ che-sdk-parent org.eclipse.che.sdk - $current_version$ + 3.12.3-SNAPSHOT che-application-war war @@ -34,14 +34,18 @@ ${com.google.gwt.gin.version} - commons-io - commons-io - ${commons-io.version} - compile + org.eclipse.che.core + che-core-api-account + ${che.core.version} org.eclipse.che.core - che-core-api-account + che-core-api-analytics + ${che.core.version} + + + org.eclipse.che.core + che-core-api-auth ${che.core.version} @@ -51,19 +55,19 @@ org.eclipse.che.core - che-core-api-core + che-core-api-factory ${che.core.version} org.eclipse.che.core che-core-api-infrastructure-local ${che.core.version} - - - slf4j-api - org.slf4j - - + + + org.eclipse.che.core + che-core-api-git + ${che.core.version} + provided org.eclipse.che.core @@ -87,17 +91,17 @@ org.eclipse.che.core - che-core-client-gwt-account + che-core-api-workspace ${che.core.version} org.eclipse.che.core - che-core-client-gwt-analytics + che-core-client-gwt-account ${che.core.version} org.eclipse.che.core - che-core-client-gwt-builder + che-core-client-gwt-analytics ${che.core.version} @@ -107,7 +111,7 @@ org.eclipse.che.core - che-core-client-gwt-runner + che-core-client-gwt-project ${che.core.version} @@ -125,15 +129,31 @@ che-core-client-gwt-workspace ${che.core.version} + + org.eclipse.che.core + che-core-commons-gwt + ${che.core.version} + org.eclipse.che.core che-core-commons-inject ${che.core.version} + + org.eclipse.che.core + che-core-ide-api + ${che.core.version} + org.eclipse.che.core che-core-ide-app ${che.core.version} + + + org.eclipse.che.core + che-core-api-git + + org.eclipse.che.core @@ -148,12 +168,27 @@ org.eclipse.che.plugin che-plugin-codemirror-editorwidget - ${project.version} + ${che.plugins.version} + + + org.eclipse.che.plugin + che-plugin-help-ext-client + ${che.plugins.version} + + + org.eclipse.che.plugin + che-plugin-orion-editor + ${che.plugins.version} org.eclipse.che.plugin che-plugin-sdk-env-local - ${project.version} + ${che.sdk.version} + + + org.eclipse.che.plugin + che-plugin-svn-ext-subversion + ${che.plugins.version} org.everrest @@ -178,55 +213,22 @@ provided - com.google.gwt - gwt-servlet - ${com.google.gwt.version} - runtime - - - org.eclipse.che.core - che-core-api-git - ${che.core.version} - - - org.eclipse.che.core - che-core-git-impl-native - ${che.core.version} - - - org.eclipse.che.plugin - che-plugin-git-provider-che - ${project.version} - - - org.eclipse.che.plugin - che-plugin-ssh-git-native - ${project.version} - - - org.eclipse.che.plugin - che-plugin-ssh-ext-sshkey - ${project.version} - - - org.eclipse.che.plugin - che-plugin-git-provider-che - ${project.version} - - - org.eclipse.che.plugin - che-plugin-github-ext-github - ${project.version} + org.apache.tomcat + tomcat-catalina + ${org.apache.tomcat.version} + provided - org.eclipse.che.core - che-core-api-auth - ${che.core.version} + org.apache.tomcat + tomcat-coyote + ${org.apache.tomcat.version} + provided - org.eclipse.che.plugin - che-plugin-github-oauth2 - ${project.version} + com.google.gwt + gwt-servlet + ${com.google.gwt.version} + runtime diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/java/org/eclipse/che/api/deploy/ApiModule.java b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/java/org/eclipse/che/api/deploy/ApiModule.java index 1d19e2483..7debd07c5 100644 --- a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/java/org/eclipse/che/api/deploy/ApiModule.java +++ b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/java/org/eclipse/che/api/deploy/ApiModule.java @@ -47,16 +47,6 @@ import org.everrest.core.impl.async.AsynchronousJobPool; import org.everrest.core.impl.async.AsynchronousJobService; import org.everrest.guice.PathKey; -import org.eclipse.che.api.git.GitConnectionFactory; -import org.eclipse.che.git.impl.nativegit.NativeGitConnectionFactory; -import org.eclipse.che.git.impl.nativegit.ssh.SshKeyProvider; -import org.eclipse.che.git.impl.nativegit.ssh.SshKeyProviderImpl; -import org.eclipse.che.ide.ext.ssh.server.SshKeyStore; -import org.eclipse.che.ide.ext.ssh.server.UserProfileSshKeyStore; -import org.eclipse.che.api.auth.oauth.OAuthTokenProvider; -import org.eclipse.che.security.oauth.OAuthAuthenticatorTokenProvider; -import org.eclipse.che.security.oauth.OAuthAuthenticatorProvider; -import org.eclipse.che.security.oauth.OAuthAuthenticatorProviderImpl; /** @author andrew00x */ @DynaModule @@ -97,10 +87,5 @@ protected void configure() { install(new VirtualFileSystemModule()); install(new VirtualFileSystemFSModule()); - bind(GitConnectionFactory.class).to(NativeGitConnectionFactory.class); - bind(SshKeyProvider.class).to(SshKeyProviderImpl.class); - bind(SshKeyStore.class).to(UserProfileSshKeyStore.class); - bind(OAuthTokenProvider.class).to(OAuthAuthenticatorTokenProvider.class); - bind(OAuthAuthenticatorProvider.class).to(OAuthAuthenticatorProviderImpl.class); } } diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/resources/org/eclipse/che/ide/IDEPlatform.gwt.xml b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/resources/org/eclipse/che/ide/IDEPlatform.gwt.xml index 6231cb388..954628ddb 100644 --- a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/resources/org/eclipse/che/ide/IDEPlatform.gwt.xml +++ b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/resources/org/eclipse/che/ide/IDEPlatform.gwt.xml @@ -11,38 +11,63 @@ Codenvy, S.A. - initial API and implementation --> - + + + + - + + + + + + + + + + + + + + + + + + - - - + - - - + - + @@ -52,3 +77,4 @@ + diff --git a/plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/GwtXmlUtils.java b/plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/GwtXmlUtils.java new file mode 100644 index 000000000..76aa83474 --- /dev/null +++ b/plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/GwtXmlUtils.java @@ -0,0 +1,119 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.sdk.tools; + +import java.io.File; +import java.io.IOException; +import java.nio.file.FileSystems; +import java.nio.file.FileVisitOption; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.PathMatcher; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.EnumSet; +import java.util.List; + +import static java.nio.charset.StandardCharsets.UTF_8; +import static java.nio.file.FileVisitResult.CONTINUE; +import static java.nio.file.FileVisitResult.TERMINATE; + +/** + * A smattering of useful methods to work with GWT module descriptor (*.gwt.xml) files. + * + * @author Artem Zatsarynnyy + * @version $Id: GwtXmlUtils.java Jul 31, 2013 11:30:14 AM azatsarynnyy $ + */ +public class GwtXmlUtils { + /** Filename suffix used for GWT module XML files. */ + public static final String GWT_MODULE_XML_SUFFIX = ".gwt.xml"; + + private GwtXmlUtils() { + } + + /** + * Inherit the specified module name in the provided GWT module descriptor. + * + * @param path + * GWT module descriptor + * @param inheritableModuleLogicalName + * logical name of the GWT module to inherit + * @throws java.io.IOException + * error occurred while reading or writing content of file + */ + public static void inheritGwtModule(Path path, String inheritableModuleLogicalName) throws IOException { + final String inheritsString = " "; + List content = Files.readAllLines(path, UTF_8); + // insert custom module as last 'inherits' entry + int i = 0, lastInheritsLine = 0; + for (String str : content) { + i++; + if (str.contains(" { + final PathMatcher matcher; + Path firstMatchedFile; + + Finder(String pattern) { + matcher = FileSystems.getDefault().getPathMatcher("glob:" + pattern); + } + + /** {@inheritDoc} */ + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Path fileName = file.getFileName(); + if (fileName != null && matcher.matches(fileName)) { + firstMatchedFile = file; + return TERMINATE; + } + return CONTINUE; + } + + /** Returns the first matched {@link java.nio.file.Path}. */ + Path getFirstMatchedFile() { + return firstMatchedFile; + } + } +} diff --git a/plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/InstallExtension.java b/plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/InstallExtension.java index 38d49d67e..26f6c4d58 100644 --- a/plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/InstallExtension.java +++ b/plugin-sdk/che-plugin-sdk-tools/src/main/java/org/eclipse/che/ide/sdk/tools/InstallExtension.java @@ -11,7 +11,6 @@ package org.eclipse.che.ide.sdk.tools; import org.eclipse.che.commons.lang.IoUtil; -import org.eclipse.che.ide.commons.GwtXmlUtils; import org.eclipse.che.ide.maven.tools.Dependency; import org.eclipse.che.ide.maven.tools.MavenUtils; import org.eclipse.che.ide.maven.tools.Model; From 145bde3a7c6a20c4cec698003d5124ac779114b2 Mon Sep 17 00:00:00 2001 From: Vitaly Parfonov Date: Thu, 10 Sep 2015 12:08:24 +0300 Subject: [PATCH 016/164] IDEX-3029 --- .../main/java/org/eclipse/che/jdt/internal/core/BinaryType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/internal/core/BinaryType.java b/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/internal/core/BinaryType.java index 5a62ca7a5..108b9b035 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/internal/core/BinaryType.java +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/internal/core/BinaryType.java @@ -11,10 +11,10 @@ package org.eclipse.che.jdt.internal.core; -import org.eclipse.che.ide.runtime.OperationCanceledException; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.jdt.core.CompletionRequestor; import org.eclipse.jdt.core.IAnnotation; import org.eclipse.jdt.core.IClassFile; From c038fb8357c59a0d2c3b8210e9095b5cda11ed55 Mon Sep 17 00:00:00 2001 From: Vladyslav Zhukovskii Date: Thu, 10 Sep 2015 12:42:35 +0300 Subject: [PATCH 017/164] Fix order position --- .../project/interceptor/AbstractJavaContentRootInterceptor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java index b10b168fe..883f16978 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java @@ -117,6 +117,6 @@ private void setupAttribute(FolderReferenceNode node, String attributeName) { @Override public Integer weightOrder() { - return 0; + return 1; } } From bc3b2bac5585a58018629fa9739e6f63999e0d8c Mon Sep 17 00:00:00 2001 From: Sergey Leschenko Date: Fri, 4 Sep 2015 12:32:43 +0300 Subject: [PATCH 018/164] IDEX-2234 Removed autogenerating of ssh keys --- .../nativegit/ssh/SshKeyProviderImpl.java | 34 ++++++------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java b/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java index 926455c8e..ed0f18217 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java +++ b/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java @@ -16,7 +16,6 @@ import org.eclipse.che.api.git.GitException; import org.eclipse.che.git.impl.nativegit.GitUrl; import org.eclipse.che.ide.ext.ssh.server.SshKey; -import org.eclipse.che.ide.ext.ssh.server.SshKeyPair; import org.eclipse.che.ide.ext.ssh.server.SshKeyStore; import org.eclipse.che.ide.ext.ssh.server.SshKeyStoreException; import org.eclipse.che.ide.ext.ssh.server.SshKeyUploader; @@ -24,7 +23,7 @@ import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.Iterator; +import java.util.Optional; import java.util.Set; /** @@ -33,8 +32,8 @@ * @author Anton Korneta */ public class SshKeyProviderImpl implements SshKeyProvider { - private static final Logger LOG = LoggerFactory.getLogger(SshKeyProviderImpl.class); + private final SshKeyStore sshKeyStore; private final Set sshKeyUploaders; @@ -45,7 +44,7 @@ public SshKeyProviderImpl(SshKeyStore sshKeyStore, Set sshKeyUpl } /** - * Get private ssh key and upload public ssh key to epository hosting service. + * Get private ssh key and upload public ssh key to repository hosting service. * * @param url * url to git repository @@ -59,35 +58,22 @@ public byte[] getPrivateKey(String url) throws GitException { SshKey publicKey; SshKey privateKey; - // check keys existence and generate if need + // check keys existence try { if ((privateKey = sshKeyStore.getPrivateKey(host)) != null) { publicKey = sshKeyStore.getPublicKey(host); - if (publicKey == null) { - sshKeyStore.removeKeys(host); - SshKeyPair sshKeyPair = sshKeyStore.genKeyPair(host, null, null); - publicKey = sshKeyPair.getPublicKey(); - privateKey = sshKeyPair.getPrivateKey(); - } } else { - SshKeyPair sshKeyPair = sshKeyStore.genKeyPair(host, null, null); - publicKey = sshKeyPair.getPublicKey(); - privateKey = sshKeyPair.getPrivateKey(); + throw new GitException("Unable get private ssh key"); } } catch (SshKeyStoreException e) { throw new GitException(e.getMessage(), e); } - SshKeyUploader uploader = null; - - for (Iterator itr = sshKeyUploaders.iterator(); uploader == null && itr.hasNext(); ) { - SshKeyUploader next = itr.next(); - if (next.match(url)) { - uploader = next; - } - } - - if (uploader != null) { + final Optional optionalKeyUploader = sshKeyUploaders.stream() + .filter(keyUploader -> keyUploader.match(url)) + .findFirst(); + if (optionalKeyUploader.isPresent()) { + final SshKeyUploader uploader = optionalKeyUploader.get(); // upload public key try { uploader.uploadKey(publicKey); From 2227de347395ff63d3f75c7e360658afd323fd10 Mon Sep 17 00:00:00 2001 From: Valeriy Svydenko Date: Thu, 10 Sep 2015 15:02:20 +0300 Subject: [PATCH 019/164] IDEX-2180: Add an ability to configure git user name and email into the Preferences wizard. --- plugin-git/che-plugin-git-ext-git/pom.xml | 5 + .../git/client/GitLocalizationConstant.java | 6 + .../ext/git/client/inject/GitGinModule.java | 13 ++- .../CommitterPreferencePresenter.java | 109 ++++++++++++++++++ .../preference/CommitterPreferenceView.java | 38 ++++++ .../CommitterPreferenceViewImpl.java | 77 +++++++++++++ .../CommitterPreferenceViewImpl.ui.xml | 40 +++++++ .../org/eclipse/che/ide/ext/git/Git.gwt.xml | 1 + .../client/GitLocalizationConstant.properties | 4 + .../CommitterPreferencePresenterTest.java | 109 ++++++++++++++++++ .../CodenvyAccessTokenCredentialProvider.java | 90 ++++++--------- .../server/nativegit/CodenvyGitModule.java | 2 +- .../GitHubOAuthCredentialProvider.java | 4 +- .../git/server/nativegit/GithubGitModule.java | 2 +- 14 files changed, 433 insertions(+), 67 deletions(-) create mode 100644 plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenter.java create mode 100644 plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceView.java create mode 100644 plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.java create mode 100644 plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.ui.xml create mode 100644 plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenterTest.java diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index 0fc9f374c..32deca108 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -35,6 +35,11 @@ gson ${com.googlecode.gson.version} + + com.google.guava + guava-gwt + ${com.google.guava.version} + com.google.inject.extensions guice-multibindings diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.java index 66539af65..ef65b38bf 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.java @@ -613,4 +613,10 @@ public interface GitLocalizationConstant extends Messages { */ @Key("project.name") String projectName(); + + @Key("committer.preference.category") + String committerPreferenceCategory(); + + @Key("committer.title") + String committerTitle(); } \ No newline at end of file diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/inject/GitGinModule.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/inject/GitGinModule.java index ae9cffb5f..663b8505c 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/inject/GitGinModule.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/inject/GitGinModule.java @@ -10,9 +10,12 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.git.client.inject; -import org.eclipse.che.api.git.gwt.client.GitServiceClient; -import org.eclipse.che.api.git.gwt.client.GitServiceClientImpl; +import com.google.gwt.inject.client.AbstractGinModule; +import com.google.gwt.inject.client.multibindings.GinMultibinder; +import com.google.inject.Singleton; + import org.eclipse.che.ide.api.extension.ExtensionGinModule; +import org.eclipse.che.ide.api.preferences.PreferencePagePresenter; import org.eclipse.che.ide.api.project.wizard.ImportWizardRegistrar; import org.eclipse.che.ide.ext.git.client.GitOutputPartView; import org.eclipse.che.ide.ext.git.client.GitOutputPartViewImpl; @@ -29,6 +32,7 @@ import org.eclipse.che.ide.ext.git.client.importer.GitImportWizardRegistrar; import org.eclipse.che.ide.ext.git.client.merge.MergeView; import org.eclipse.che.ide.ext.git.client.merge.MergeViewImpl; +import org.eclipse.che.ide.ext.git.client.preference.CommitterPreferencePresenter; import org.eclipse.che.ide.ext.git.client.pull.PullView; import org.eclipse.che.ide.ext.git.client.pull.PullViewImpl; import org.eclipse.che.ide.ext.git.client.push.PushToRemoteView; @@ -46,10 +50,6 @@ import org.eclipse.che.ide.ext.git.client.url.ShowProjectGitReadOnlyUrlView; import org.eclipse.che.ide.ext.git.client.url.ShowProjectGitReadOnlyUrlViewImpl; -import com.google.gwt.inject.client.AbstractGinModule; -import com.google.gwt.inject.client.multibindings.GinMultibinder; -import com.google.inject.Singleton; - /** @author Andrey Plotnikov */ @ExtensionGinModule public class GitGinModule extends AbstractGinModule { @@ -59,6 +59,7 @@ protected void configure() { // bind(GitServiceClient.class).to(GitServiceClientImpl.class).in(Singleton.class); GinMultibinder.newSetBinder(binder(), ImportWizardRegistrar.class).addBinding().to(GitImportWizardRegistrar.class); + GinMultibinder.newSetBinder(binder(), PreferencePagePresenter.class).addBinding().to(CommitterPreferencePresenter.class); bind(AddToIndexView.class).to(AddToIndexViewImpl.class).in(Singleton.class); bind(ResetToCommitView.class).to(ResetToCommitViewImpl.class).in(Singleton.class); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenter.java new file mode 100644 index 000000000..e768d4ce5 --- /dev/null +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenter.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.ext.git.client.preference; + +import com.google.gwt.user.client.ui.AcceptsOneWidget; +import com.google.inject.Inject; +import com.google.inject.Singleton; + +import org.eclipse.che.ide.api.preferences.AbstractPreferencePagePresenter; +import org.eclipse.che.ide.api.preferences.PreferencesManager; +import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant; + +import static com.google.common.base.MoreObjects.firstNonNull; + +/** + * Preference page presenter for the information about git committer. + * + * @author Valeriy Svydenko */ +@Singleton +public class CommitterPreferencePresenter extends AbstractPreferencePagePresenter implements CommitterPreferenceView.ActionDelegate { + + public static final String COMMITTER_NAME = "git.committer.name"; + public static final String COMMITTER_EMAIL = "git.committer.email"; + + public static final String DEFAULT_COMMITTER_NAME = "Anonymous"; + public static final String DEFAULT_COMMITTER_EMAIL = "anonymous@noemail.com"; + + private CommitterPreferenceView view; + private PreferencesManager preferencesManager; + private boolean dirty = false; + private String name; + private String email; + + + @Inject + public CommitterPreferencePresenter(CommitterPreferenceView view, + GitLocalizationConstant constant, + PreferencesManager preferencesManager) { + super(constant.committerTitle(), constant.committerPreferenceCategory(), null); + this.view = view; + this.preferencesManager = preferencesManager; + + name = firstNonNull(preferencesManager.getValue(COMMITTER_NAME), DEFAULT_COMMITTER_NAME); + email = firstNonNull(preferencesManager.getValue(COMMITTER_EMAIL), DEFAULT_COMMITTER_EMAIL); + + view.setDelegate(this); + } + + /** {@inheritDoc} */ + @Override + public boolean isDirty() { + return dirty; + } + + /** {@inheritDoc} */ + @Override + public void go(AcceptsOneWidget container) { + container.setWidget(view); + + view.setName(name); + view.setEmail(email); + } + + /** {@inheritDoc} */ + @Override + public void nameChanged(String name) { + this.name = name; + dirty = !name.equals(preferencesManager.getValue(COMMITTER_NAME)); + delegate.onDirtyChanged(); + } + + /** {@inheritDoc} */ + @Override + public void emailChanged(String email) { + this.email = email; + dirty = !email.equals(preferencesManager.getValue(COMMITTER_EMAIL)); + delegate.onDirtyChanged(); + } + + /** {@inheritDoc} */ + @Override + public void storeChanges() { + preferencesManager.setValue(COMMITTER_NAME, name); + preferencesManager.setValue(COMMITTER_EMAIL, email); + + dirty = false; + } + + /** {@inheritDoc} */ + @Override + public void revertChanges() { + name = firstNonNull(preferencesManager.getValue(COMMITTER_NAME), DEFAULT_COMMITTER_NAME); + email = firstNonNull(preferencesManager.getValue(COMMITTER_EMAIL), DEFAULT_COMMITTER_EMAIL); + + view.setName(name); + view.setEmail(email); + + dirty = false; + } + +} \ No newline at end of file diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceView.java new file mode 100644 index 000000000..0eb61a763 --- /dev/null +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceView.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.ext.git.client.preference; + +import com.google.inject.ImplementedBy; + +import org.eclipse.che.ide.api.mvp.View; + +/** + * View interface for the preference page for the information about git committer. + * + * @author Valeriy Svydenko + */ +@ImplementedBy(CommitterPreferenceViewImpl.class) +public interface CommitterPreferenceView extends View { + + /** Sets user name */ + void setName(String name); + + /** Sets user email */ + void setEmail(String email); + + interface ActionDelegate { + /** User name is being changed */ + void nameChanged(String name); + + /** User email is being changed */ + void emailChanged(String email); + } +} diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.java new file mode 100644 index 000000000..f87df535a --- /dev/null +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.ext.git.client.preference; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.KeyUpEvent; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.TextBox; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Singleton; + +/** + * @author Valeriy Svydenko + */ +@Singleton +public class CommitterPreferenceViewImpl implements CommitterPreferenceView { + private static CommitterPreferenceViewImplUiBinder ourUiBinder = GWT.create(CommitterPreferenceViewImplUiBinder.class); + private final FlowPanel rootElement; + @UiField + TextBox email; + @UiField + TextBox name; + private ActionDelegate delegate; + + public CommitterPreferenceViewImpl() { + rootElement = ourUiBinder.createAndBindUi(this); + } + + /** {@inheritDoc} */ + @Override + public void setDelegate(ActionDelegate delegate) { + this.delegate = delegate; + } + + /** {@inheritDoc} */ + @Override + public Widget asWidget() { + return rootElement; + } + + /** {@inheritDoc} */ + @Override + public void setName(String name) { + this.name.setText(name); + } + + /** {@inheritDoc} */ + @Override + public void setEmail(String email) { + this.email.setText(email); + } + + @UiHandler("name") + void handleNameChanged(KeyUpEvent event) { + delegate.nameChanged(name.getText()); + } + + @UiHandler("email") + void handleEmailChanged(KeyUpEvent event) { + delegate.emailChanged(email.getText()); + } + + interface CommitterPreferenceViewImplUiBinder + extends UiBinder { + } +} \ No newline at end of file diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.ui.xml b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.ui.xml new file mode 100644 index 000000000..d50147aed --- /dev/null +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferenceViewImpl.ui.xml @@ -0,0 +1,40 @@ + + + + + .main { + margin: 5px; + } + + .inherit { + margin-top: 5px; + } + + + + + + Name: + + + + + Email: + + + + + + \ No newline at end of file diff --git a/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/Git.gwt.xml b/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/Git.gwt.xml index f95d19b74..82a4da037 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/Git.gwt.xml +++ b/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/Git.gwt.xml @@ -17,6 +17,7 @@ + diff --git a/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.properties b/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.properties index 28813d567..f0bb32d70 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.properties +++ b/plugin-git/che-plugin-git-ext-git/src/main/resources/org/eclipse/che/ide/ext/git/client/GitLocalizationConstant.properties @@ -235,3 +235,7 @@ projectNameStartWith_Message = Project name cannot start with character _ ############### ProjectView ############### project.name=Project name: + +################ Committer preferences ################ +committer.preference.category = Git Committer Information +committer.title = Committer diff --git a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenterTest.java b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenterTest.java new file mode 100644 index 000000000..86e5ec26c --- /dev/null +++ b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/preference/CommitterPreferencePresenterTest.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.ext.git.client.preference; + +import com.google.gwt.user.client.ui.AcceptsOneWidget; + +import org.eclipse.che.ide.api.preferences.PreferencesManager; +import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; + +import static org.junit.Assert.assertFalse; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +/** + * @author Valeriy Svydenko + */ +@RunWith(MockitoJUnitRunner.class) +public class CommitterPreferencePresenterTest { + public static final String SOME_TEXT = "text"; + public static final String COMMITTER_NAME = "git.committer.name"; + public static final String COMMITTER_EMAIL = "git.committer.email"; + public static final String DEFAULT_COMMITTER_NAME = "Anonymous"; + public static final String DEFAULT_COMMITTER_EMAIL = "anonymous@noemail.com"; + + @Mock + private CommitterPreferenceView view; + @Mock + private GitLocalizationConstant constant; + @Mock + private PreferencesManager preferencesManager; + @Mock + private AcceptsOneWidget container; + + private CommitterPreferencePresenter presenter; + + @Before + public void setUp() throws Exception { + when(constant.committerTitle()).thenReturn(SOME_TEXT); + when(constant.committerPreferenceCategory()).thenReturn(SOME_TEXT); + + + presenter = new CommitterPreferencePresenter(view, constant, preferencesManager); + } + + @Test + public void constructorShouldBePerformed() throws Exception { + verify(view).setDelegate(presenter); + verify(constant).committerTitle(); + verify(constant).committerPreferenceCategory(); + verify(preferencesManager).getValue(COMMITTER_NAME); + verify(preferencesManager).getValue(COMMITTER_EMAIL); + } + + @Test + public void dirtyStateShouldBeReturned() throws Exception { + assertFalse(presenter.isDirty()); + } + + @Test + public void widgetShouldBePrepared() throws Exception { + presenter.go(container); + + verify(container).setWidget(view); + verify(view).setEmail(anyString()); + verify(view).setName(anyString()); + } + + @Test + public void changesShouldBeRestored() throws Exception { + presenter.revertChanges(); + + verify(preferencesManager, times(2)).getValue(COMMITTER_NAME); + verify(preferencesManager, times(2)).getValue(COMMITTER_EMAIL); + + assertFalse(presenter.isDirty()); + } + + @Test + public void defaultUserNameAndEmailShouldBeRestored() throws Exception { + when(preferencesManager.getValue(COMMITTER_EMAIL)).thenReturn(null); + when(preferencesManager.getValue(COMMITTER_NAME)).thenReturn(null); + + presenter.revertChanges(); + + verify(preferencesManager, times(2)).getValue(COMMITTER_NAME); + verify(preferencesManager, times(2)).getValue(COMMITTER_EMAIL); + + verify(view).setEmail(DEFAULT_COMMITTER_EMAIL); + verify(view).setName(DEFAULT_COMMITTER_NAME); + + assertFalse(presenter.isDirty()); + } +} + diff --git a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyAccessTokenCredentialProvider.java b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyAccessTokenCredentialProvider.java index fef26e21d..3ed890c9e 100644 --- a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyAccessTokenCredentialProvider.java +++ b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyAccessTokenCredentialProvider.java @@ -10,49 +10,40 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.git.server.nativegit; -import org.eclipse.che.api.core.ConflictException; -import org.eclipse.che.api.core.ForbiddenException; -import org.eclipse.che.api.core.NotFoundException; import org.eclipse.che.api.core.ServerException; -import org.eclipse.che.api.core.UnauthorizedException; -import org.eclipse.che.api.core.rest.HttpJsonHelper; -import org.eclipse.che.api.core.rest.shared.dto.Link; +import org.eclipse.che.api.git.CredentialsProvider; import org.eclipse.che.api.git.GitException; +import org.eclipse.che.api.git.UserCredential; import org.eclipse.che.api.git.shared.GitUser; -import org.eclipse.che.api.user.shared.dto.ProfileDescriptor; +import org.eclipse.che.api.user.server.dao.PreferenceDao; import org.eclipse.che.commons.env.EnvironmentContext; import org.eclipse.che.commons.user.User; -import org.eclipse.che.dto.server.DtoFactory; -import org.eclipse.che.git.impl.nativegit.CredentialsProvider; -import org.eclipse.che.git.impl.nativegit.UserCredential; -import com.google.common.base.Joiner; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; -import javax.ws.rs.core.UriBuilder; -import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; +import java.util.Map; + +import static com.google.common.base.Strings.isNullOrEmpty; +import static org.eclipse.che.dto.server.DtoFactory.newDto; /** * Credentials provider for Codenvy * * @author Alexander Garagatyi + * @author Valeriy Svydenko */ @Singleton public class CodenvyAccessTokenCredentialProvider implements CredentialsProvider { - private static final Logger LOG = LoggerFactory.getLogger(CodenvyAccessTokenCredentialProvider.class); - - private final String codenvyHost; - private final String apiEndpoint; + private final String codenvyHost; + private PreferenceDao preferenceDao; @Inject - public CodenvyAccessTokenCredentialProvider(@Named("api.endpoint") String apiEndPoint) throws URISyntaxException { - this.apiEndpoint = apiEndPoint; + public CodenvyAccessTokenCredentialProvider(@Named("api.endpoint") String apiEndPoint, + PreferenceDao preferenceDao) throws URISyntaxException { + this.preferenceDao = preferenceDao; this.codenvyHost = new URI(apiEndPoint).getHost(); } @@ -67,42 +58,28 @@ public UserCredential getUserCredential() throws GitException { @Override public GitUser getUser() throws GitException { - try { - - User user = EnvironmentContext.getCurrent().getUser(); - GitUser gitUser = DtoFactory.getInstance().createDto(GitUser.class); - if (user.isTemporary()) { - return gitUser.withEmail("anonymous@noemail.com") - .withName("Anonymous"); - } else { - - Link link = DtoFactory.getInstance().createDto(Link.class).withMethod("GET") - .withHref(UriBuilder.fromUri(apiEndpoint).path("profile").build().toString()); - final ProfileDescriptor profile = HttpJsonHelper.request(ProfileDescriptor.class, link); - - - String firstName = profile.getAttributes().get("firstName"); - String lastName = profile.getAttributes().get("lastName"); - String email = profile.getAttributes().get("email"); - - String name; - if (firstName != null || lastName != null) { - // add this temporary for fixing problem with "" in last name of user from profile - name = Joiner.on(" ").skipNulls().join(firstName, lastName.contains("") ? "" : lastName); - } else { - name = user.getName(); - } - gitUser.setName(name != null && !name.isEmpty() ? name : "Anonymous"); - gitUser.setEmail(email != null ? email : "anonymous@noemail.com"); - return gitUser; - + User user = EnvironmentContext.getCurrent().getUser(); + GitUser gitUser = newDto(GitUser.class); + if (user.isTemporary()) { + gitUser.setEmail("anonymous@noemail.com"); + gitUser.setName("Anonymous"); + } else { + String name = null; + String email = null; + try { + Map preferences = preferenceDao.getPreferences(EnvironmentContext.getCurrent().getUser().getId(), + "git.committer.\\w+"); + name = preferences.get("git.committer.name"); + email = preferences.get("git.committer.email"); + } catch (ServerException e) { + //ignored } - } catch (IOException | ServerException | UnauthorizedException | ForbiddenException | NotFoundException | ConflictException e) { - LOG.warn(e.getLocalizedMessage()); - // throw new GitException(e); + gitUser.setName(isNullOrEmpty(name) ? "Anonymous" : name); + gitUser.setEmail(isNullOrEmpty(email) ? "anonymous@noemail.com" : email); } - return null; + + return gitUser; } @Override @@ -115,5 +92,4 @@ public boolean canProvideCredentials(String url) { return url.contains(codenvyHost); } -} - +} \ No newline at end of file diff --git a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyGitModule.java b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyGitModule.java index 28f58c7ec..498b8f666 100644 --- a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyGitModule.java +++ b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyGitModule.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.git.server.nativegit; -import org.eclipse.che.git.impl.nativegit.CredentialsProvider; +import org.eclipse.che.api.git.CredentialsProvider; import org.eclipse.che.inject.DynaModule; import com.google.inject.AbstractModule; import com.google.inject.multibindings.Multibinder; diff --git a/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GitHubOAuthCredentialProvider.java b/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GitHubOAuthCredentialProvider.java index 09ea0406f..97015d807 100644 --- a/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GitHubOAuthCredentialProvider.java +++ b/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GitHubOAuthCredentialProvider.java @@ -15,8 +15,8 @@ import org.eclipse.che.api.git.shared.GitUser; import org.eclipse.che.commons.env.EnvironmentContext; import org.eclipse.che.dto.server.DtoFactory; -import org.eclipse.che.git.impl.nativegit.CredentialsProvider; -import org.eclipse.che.git.impl.nativegit.UserCredential; +import org.eclipse.che.api.git.CredentialsProvider; +import org.eclipse.che.api.git.UserCredential; import org.eclipse.che.security.oauth.GitHubOAuthAuthenticator; import org.eclipse.che.security.oauth.OAuthAuthenticationException; import org.eclipse.che.security.oauth.shared.User; diff --git a/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GithubGitModule.java b/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GithubGitModule.java index 95553ff2f..2bf220df0 100644 --- a/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GithubGitModule.java +++ b/plugin-github/che-plugin-github-provider-github/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/GithubGitModule.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.git.server.nativegit; -import org.eclipse.che.git.impl.nativegit.CredentialsProvider; +import org.eclipse.che.api.git.CredentialsProvider; import org.eclipse.che.inject.DynaModule; import com.google.inject.AbstractModule; import com.google.inject.multibindings.Multibinder; From bd0e99edc6581b55f619d0d97b28c3f2d8ea79cf Mon Sep 17 00:00:00 2001 From: Vitaly Parfonov Date: Thu, 10 Sep 2015 18:51:22 +0300 Subject: [PATCH 020/164] IDEX-3005 --- .../ext/svn/client/SubversionExtension.java | 15 ++-- .../ide/ext/svn/client/action/AddAction.java | 9 +-- .../svn/client/action/ApplyPatchAction.java | 7 +- .../svn/client/action/BranchTagAction.java | 7 +- .../action/ChangeCredentialsAction.java | 6 +- .../ext/svn/client/action/CleanupAction.java | 7 +- .../ext/svn/client/action/CommitAction.java | 7 +- .../ide/ext/svn/client/action/CopyAction.java | 21 +++--- .../svn/client/action/CreatePatchAction.java | 7 +- .../ide/ext/svn/client/action/DiffAction.java | 6 +- .../ext/svn/client/action/ExportAction.java | 10 +-- .../ide/ext/svn/client/action/LockAction.java | 6 +- .../ide/ext/svn/client/action/LogAction.java | 7 +- .../ext/svn/client/action/MergeAction.java | 6 +- .../ide/ext/svn/client/action/MoveAction.java | 5 +- .../svn/client/action/PropertiesAction.java | 6 +- .../ext/svn/client/action/RelocateAction.java | 7 +- .../ext/svn/client/action/RemoveAction.java | 7 +- .../ext/svn/client/action/RenameAction.java | 7 +- .../ext/svn/client/action/ResolveAction.java | 21 +++--- .../ext/svn/client/action/RevertAction.java | 6 +- .../ext/svn/client/action/StatusAction.java | 7 +- .../svn/client/action/SubversionAction.java | 11 +-- .../ext/svn/client/action/SwitchAction.java | 7 +- .../ext/svn/client/action/UnlockAction.java | 6 +- .../ext/svn/client/action/UpdateAction.java | 6 +- .../client/action/UpdateToRevisionAction.java | 6 +- .../common/SubversionActionPresenter.java | 59 ++++++++-------- .../ext/svn/client/copy/CopyPresenter.java | 70 +++++-------------- .../che/ide/ext/svn/client/copy/CopyView.java | 10 +-- .../ide/ext/svn/client/copy/CopyViewImpl.java | 40 ++++++----- .../svn/client/copy/CopyPresenterTest.java | 15 ++-- 32 files changed, 206 insertions(+), 211 deletions(-) diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/SubversionExtension.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/SubversionExtension.java index 39fbe59c5..9ba641489 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/SubversionExtension.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/SubversionExtension.java @@ -22,14 +22,12 @@ import org.eclipse.che.ide.ext.svn.client.action.ChangeCredentialsAction; import org.eclipse.che.ide.ext.svn.client.action.CleanupAction; import org.eclipse.che.ide.ext.svn.client.action.CommitAction; -import org.eclipse.che.ide.ext.svn.client.action.CopyAction; import org.eclipse.che.ide.ext.svn.client.action.CreatePatchAction; import org.eclipse.che.ide.ext.svn.client.action.DiffAction; import org.eclipse.che.ide.ext.svn.client.action.ExportAction; import org.eclipse.che.ide.ext.svn.client.action.LockAction; import org.eclipse.che.ide.ext.svn.client.action.LogAction; import org.eclipse.che.ide.ext.svn.client.action.MergeAction; -import org.eclipse.che.ide.ext.svn.client.action.MoveAction; import org.eclipse.che.ide.ext.svn.client.action.PropertiesAction; import org.eclipse.che.ide.ext.svn.client.action.RelocateAction; import org.eclipse.che.ide.ext.svn.client.action.RemoveAction; @@ -75,8 +73,6 @@ public SubversionExtension(final ActionManager actionManager, final ChangeCredentialsAction changeCredentialsAction, final CleanupAction cleanupAction, final CommitAction commitAction, - final CopyAction copyAction, - final MoveAction moveAction, final CreatePatchAction createPatchAction, final DiffAction diffAction, final ExportAction exportAction, @@ -161,10 +157,13 @@ public SubversionExtension(final ActionManager actionManager, fileCommandGroup.add(commitAction); actionManager.registerAction("SvnResolve", resolveAction); fileCommandGroup.add(resolveAction); - actionManager.registerAction("SvnCopy", copyAction); - fileCommandGroup.add(copyAction); - actionManager.registerAction("SvnMove", moveAction); - fileCommandGroup.add(moveAction); + +//TODO: temporary remove Copy and Move action +// need to fix ASAP problem come with new Project Tree +// actionManager.registerAction("SvnCopy", copyAction); +// fileCommandGroup.add(copyAction); +// actionManager.registerAction("SvnMove", moveAction); +// fileCommandGroup.add(moveAction); // Commands that interact with the repository actionManager.registerAction("SvnMerge", mergeAction); diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/AddAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/AddAction.java index 23af6b07b..eb4b673e6 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/AddAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/AddAction.java @@ -17,7 +17,9 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + +import com.google.gwt.user.client.Window; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -35,13 +37,12 @@ public class AddAction extends SubversionAction { @Inject public AddAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final AddPresenter presenter) { super(constants.addTitle(), constants.addDescription(), resources.add(), eventLogger, appContext, - constants, resources, selectionAgent); - + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ApplyPatchAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ApplyPatchAction.java index 09f25b5ac..efd003790 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ApplyPatchAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ApplyPatchAction.java @@ -15,7 +15,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -31,11 +32,11 @@ public class ApplyPatchAction extends SubversionAction { @Inject public ApplyPatchAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.applyPatchTitle(), constants.applyPatchDescription(), resources.applyPatch(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/BranchTagAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/BranchTagAction.java index f4b225dfb..85cac0521 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/BranchTagAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/BranchTagAction.java @@ -15,7 +15,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -31,11 +32,11 @@ public class BranchTagAction extends SubversionAction { @Inject public BranchTagAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.branchTagTitle(), constants.branchTagDescription(), resources.branchTag(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ChangeCredentialsAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ChangeCredentialsAction.java index 5e8df94af..d758e281a 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ChangeCredentialsAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ChangeCredentialsAction.java @@ -19,10 +19,10 @@ import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; import org.eclipse.che.ide.api.app.CurrentProject; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.askcredentials.AskCredentialsPresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -41,12 +41,12 @@ public class ChangeCredentialsAction extends SubversionAction { @Inject public ChangeCredentialsAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final AskCredentialsPresenter presenter) { super(constants.changeCredentialsTitle(), constants.changeCredentialsDescription(), resources.add(), - eventLogger, appContext, constants, resources, selectionAgent); + eventLogger, appContext, constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CleanupAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CleanupAction.java index 6c1cd4fc4..38d226646 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CleanupAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CleanupAction.java @@ -17,7 +17,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -36,11 +37,11 @@ public class CleanupAction extends SubversionAction { public CleanupAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, final CleanupPresenter cleanupPresenter, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.cleanupTitle(), constants.cleanupDescription(), resources.cleanup(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); this.cleanupPresenter = cleanupPresenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CommitAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CommitAction.java index c9949cfac..09776a653 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CommitAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CommitAction.java @@ -17,7 +17,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -36,11 +37,11 @@ public class CommitAction extends SubversionAction { public CommitAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, final CommitPresenter presenter, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.commitTitle(), constants.commitDescription(), resources.commit(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CopyAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CopyAction.java index 96582758e..8f51552e1 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CopyAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CopyAction.java @@ -16,12 +16,11 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.project.tree.TreeNode; -import org.eclipse.che.ide.api.project.tree.generic.StorableNode; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.copy.CopyPresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; +import org.eclipse.che.ide.project.node.ResourceBasedNode; /** * Extension of {@link SubversionAction} for implementing the "svn copy" (copy a file or directory) command. @@ -31,19 +30,19 @@ @Singleton public class CopyAction extends SubversionAction { - private SelectionAgent selectionAgent; - private final CopyPresenter presenter; + private NewProjectExplorerPresenter projectExplorerPresenter; + private final CopyPresenter presenter; @Inject public CopyAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final CopyPresenter presenter) { super(constants.copyTitle(), constants.copyDescription(), resources.copy(), eventLogger, appContext, constants, resources, - selectionAgent); - this.selectionAgent = selectionAgent; + projectExplorerPresenter); + this.projectExplorerPresenter = projectExplorerPresenter; this.presenter = presenter; } @@ -62,8 +61,8 @@ protected boolean isSelectionRequired() { return true; } - private TreeNode getSelectedNode() { - Object selectedNode = selectionAgent.getSelection().getFirstElement(); - return selectedNode != null && selectedNode instanceof StorableNode ? (StorableNode)selectedNode : null; + private ResourceBasedNode getSelectedNode() { + Object selectedNode = projectExplorerPresenter.getSelection().getHeadElement(); + return selectedNode != null && selectedNode instanceof ResourceBasedNode ? (ResourceBasedNode)selectedNode : null; } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CreatePatchAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CreatePatchAction.java index 1eba48cc4..ef0261a17 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CreatePatchAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/CreatePatchAction.java @@ -15,7 +15,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -31,11 +32,11 @@ public class CreatePatchAction extends SubversionAction { @Inject public CreatePatchAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.createPatchTitle(), constants.createPatchDescription(), resources.createPatch(), - eventLogger, appContext, constants, resources, selectionAgent); + eventLogger, appContext, constants, resources, projectExplorerPresenter); } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/DiffAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/DiffAction.java index 54424efbd..a13d58f86 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/DiffAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/DiffAction.java @@ -15,10 +15,10 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.diff.DiffPresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; /** * Extension of {@link org.eclipse.che.ide.ext.svn.client.action.SubversionAction} for implementing the "svn diff" command. @@ -33,12 +33,12 @@ public class DiffAction extends SubversionAction { @Inject public DiffAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final DiffPresenter presenter) { super(constants.diffTitle(), constants.diffDescription(), resources.diff(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ExportAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ExportAction.java index a1fa8528e..06418aa85 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ExportAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ExportAction.java @@ -17,10 +17,10 @@ import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; import org.eclipse.che.ide.api.project.node.HasStorablePath; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.export.ExportPresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; /** * Extension of {@link SubversionAction} for implementing the "svn export" command. @@ -28,6 +28,7 @@ @Singleton public class ExportAction extends SubversionAction { + private NewProjectExplorerPresenter projectExplorerPresenter; private ExportPresenter presenter; /** @@ -36,12 +37,13 @@ public class ExportAction extends SubversionAction { @Inject public ExportAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final ExportPresenter presenter) { super(constants.exportTitle(), constants.exportDescription(), resources.export(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); + this.projectExplorerPresenter = projectExplorerPresenter; this.presenter = presenter; } @@ -59,7 +61,7 @@ protected boolean isSelectionRequired() { } private HasStorablePath getSelectedNode() { - Object selectedNode = selectionAgent.getSelection().getHeadElement(); + Object selectedNode =projectExplorerPresenter.getSelection().getHeadElement(); return selectedNode != null && selectedNode instanceof HasStorablePath ? (HasStorablePath)selectedNode : null; } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LockAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LockAction.java index 5685814ce..1cf63c28d 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LockAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LockAction.java @@ -16,7 +16,7 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -36,11 +36,11 @@ public class LockAction extends SubversionAction { public LockAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, final LockUnlockPresenter presenter, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.lockTitle(), constants.lockDescription(), resources.lock(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LogAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LogAction.java index cd0d55f75..a57e3b68b 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LogAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/LogAction.java @@ -17,7 +17,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -38,9 +39,9 @@ public LogAction(final ShowLogPresenter presenter, final AppContext appContext, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, - final SelectionAgent selectionAgent) { + final NewProjectExplorerPresenter projectExplorerPresenter) { super(constants.logTitle(), constants.logDescription(), resources.log(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MergeAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MergeAction.java index e961ae69a..96843ac17 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MergeAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MergeAction.java @@ -16,10 +16,10 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.merge.MergePresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; /** * Extension of {@link SubversionAction} for implementing the "svn merge" command. @@ -35,12 +35,12 @@ public class MergeAction extends SubversionAction { @Inject public MergeAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final MergePresenter presenter) { super(constants.mergeTitle(), constants.mergeDescription(), resources.merge(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MoveAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MoveAction.java index 89dfcb0c0..fb9d716e0 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MoveAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/MoveAction.java @@ -20,6 +20,7 @@ import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.move.MovePresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; /** * Extension of {@link SubversionAction} for implementing the "svn move" command. @@ -36,10 +37,10 @@ public MoveAction(AnalyticsEventLogger eventLogger, AppContext appContext, SubversionExtensionLocalizationConstants constants, SubversionExtensionResources resources, - SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, MovePresenter presenter) { super(constants.moveActionTitle(), constants.moveActionDescription(), resources.move(), eventLogger, appContext, constants, - resources, selectionAgent); + resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/PropertiesAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/PropertiesAction.java index 3b31e4ff0..11bfdb744 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/PropertiesAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/PropertiesAction.java @@ -16,10 +16,10 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; import com.google.inject.Inject; import com.google.inject.Singleton; import org.eclipse.che.ide.ext.svn.client.property.PropertyEditorPresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; /** * Extension of {@link SubversionAction} for implementing the "svn [propset|propdel]" command. @@ -32,12 +32,12 @@ public class PropertiesAction extends SubversionAction { @Inject public PropertiesAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final PropertyEditorPresenter presenter) { super(constants.propertiesTitle(), constants.propertiesDescription(), resources.properties(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RelocateAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RelocateAction.java index c7d036fe1..2ca85044a 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RelocateAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RelocateAction.java @@ -15,7 +15,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -31,11 +32,11 @@ public class RelocateAction extends SubversionAction { @Inject public RelocateAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.relocateTitle(), constants.relocateDescription(), resources.relocate(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RemoveAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RemoveAction.java index f02edb08d..a1f49d1a3 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RemoveAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RemoveAction.java @@ -13,10 +13,11 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.remove.RemovePresenter; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -34,12 +35,12 @@ public class RemoveAction extends SubversionAction { @Inject public RemoveAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final RemovePresenter presenter) { super(constants.removeTitle(), constants.removeDescription(), resources.delete(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RenameAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RenameAction.java index cf2368603..e14492698 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RenameAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RenameAction.java @@ -15,7 +15,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -31,11 +32,11 @@ public class RenameAction extends SubversionAction { @Inject public RenameAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.renameTitle(), constants.renameDescription(), resources.rename(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java index 62fd72696..bbfbb44d6 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java @@ -22,14 +22,14 @@ import org.eclipse.che.ide.api.event.ProjectActionHandler; import org.eclipse.che.ide.api.event.SelectionChangedEvent; import org.eclipse.che.ide.api.event.SelectionChangedHandler; -import org.eclipse.che.ide.api.project.tree.generic.StorableNode; +import org.eclipse.che.ide.api.project.node.HasStorablePath; import org.eclipse.che.ide.api.selection.Selection; -import org.eclipse.che.ide.api.selection.SelectionAgent; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.client.resolve.ResolvePresenter; import org.eclipse.che.ide.ext.svn.client.update.SubversionProjectUpdatedEvent; import org.eclipse.che.ide.ext.svn.client.update.SubversionProjectUpdatedHandler; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; import javax.annotation.Nullable; import java.util.List; @@ -40,9 +40,11 @@ * @author vzhukovskii@codenvy.com */ @Singleton -public class ResolveAction extends SubversionAction implements SelectionChangedHandler, ProjectActionHandler, +public class ResolveAction extends SubversionAction implements SelectionChangedHandler, + ProjectActionHandler, SubversionProjectUpdatedHandler { + private NewProjectExplorerPresenter projectExplorerPresenter; private final ResolvePresenter presenter; private List conflictsList; @@ -53,11 +55,12 @@ public ResolveAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final ResolvePresenter presenter, final EventBus eventBus) { super(constants.resolvedTitle(), constants.resolvedDescription(), resources.resolved(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); + this.projectExplorerPresenter = projectExplorerPresenter; this.presenter = presenter; eventBus.addHandler(SelectionChangedEvent.TYPE, this); @@ -84,7 +87,7 @@ public void updateProjectAction(final ActionEvent e) { public void onSelectionChanged(SelectionChangedEvent event) { enable = false; - StorableNode selectedNode = getStorableNodeFromSelection(event.getSelection()); + HasStorablePath selectedNode = getStorableNodeFromSelection(event.getSelection()); if (selectedNode == null || conflictsList == null) { return; @@ -93,7 +96,7 @@ public void onSelectionChanged(SelectionChangedEvent event) { for (String conflictPath : conflictsList) { final String absPath = (appContext.getCurrentProject().getProjectDescription().getPath() + "/" + conflictPath.trim()); - if (absPath.startsWith(selectedNode.getPath())) { + if (absPath.startsWith(selectedNode.getStorablePath())) { enable = true; break; } @@ -102,12 +105,12 @@ public void onSelectionChanged(SelectionChangedEvent event) { } @Nullable - private StorableNode getStorableNodeFromSelection(Selection selection) { + private HasStorablePath getStorableNodeFromSelection(Selection selection) { if (selection == null) { return null; } - return selection.getHeadElement() instanceof StorableNode ? (StorableNode)selection.getHeadElement() : null; + return projectExplorerPresenter.getSelection().getHeadElement() instanceof HasStorablePath ? (HasStorablePath)selection.getHeadElement() : null; } /** {@inheritDoc} */ diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RevertAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RevertAction.java index bc0951c50..ea9ad5a25 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RevertAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/RevertAction.java @@ -16,7 +16,7 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -36,11 +36,11 @@ public class RevertAction extends SubversionAction { public RevertAction(final RevertPresenter presenter, final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.revertTitle(), constants.revertDescription(), resources.revert(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/StatusAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/StatusAction.java index 8a6170656..b8429a56e 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/StatusAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/StatusAction.java @@ -17,7 +17,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -34,12 +35,12 @@ public class StatusAction extends SubversionAction { @Inject public StatusAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final StatusPresenter presenter) { super(constants.statusTitle(), constants.statusDescription(), resources.status(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SubversionAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SubversionAction.java index 73fc09f63..e7df1c2a3 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SubversionAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SubversionAction.java @@ -22,6 +22,7 @@ import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants; import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources; import org.eclipse.che.ide.ext.svn.shared.SubversionTypeConstant; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; import org.vectomatic.dom.svg.ui.SVGResource; import java.util.List; @@ -31,9 +32,9 @@ */ public abstract class SubversionAction extends ProjectAction { - protected final AnalyticsEventLogger eventLogger; + protected final AnalyticsEventLogger eventLogger; + private NewProjectExplorerPresenter projectExplorerPresenter; protected final AppContext appContext; - protected final SelectionAgent selectionAgent; protected final SubversionExtensionLocalizationConstants constants; protected final SubversionExtensionResources resources; protected final String title; @@ -48,14 +49,14 @@ public SubversionAction(final String title, final AppContext appContext, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, - final SelectionAgent selectionAgent) { + final NewProjectExplorerPresenter projectExplorerPresenter) { super(title, description, svgIcon); this.constants = constants; this.resources = resources; this.appContext = appContext; this.eventLogger = eventLogger; - this.selectionAgent = selectionAgent; + this.projectExplorerPresenter = projectExplorerPresenter; this.title = title; } @@ -85,7 +86,7 @@ protected CurrentProject getActiveProject() { * @return if there is currently an item selected */ protected boolean isItemSelected() { - final Selection selection = selectionAgent.getSelection(); + final Selection selection = projectExplorerPresenter.getSelection(); return selection != null && selection.getHeadElement() != null && selection.getHeadElement() instanceof HasStorablePath; diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SwitchAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SwitchAction.java index 9b185a9f1..572efec9e 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SwitchAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/SwitchAction.java @@ -15,7 +15,8 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -31,11 +32,11 @@ public class SwitchAction extends SubversionAction { @Inject public SwitchAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.switchTitle(), constants.switchDescription(), resources.switchLocation(), eventLogger, - appContext, constants, resources, selectionAgent); + appContext, constants, resources, projectExplorerPresenter); } } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UnlockAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UnlockAction.java index 074b0b5e5..ebc9561d9 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UnlockAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UnlockAction.java @@ -16,7 +16,7 @@ import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger; import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; -import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -36,11 +36,11 @@ public class UnlockAction extends SubversionAction { public UnlockAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, final LockUnlockPresenter presenter, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources) { super(constants.unlockTitle(), constants.unlockDescription(), resources.unlock(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateAction.java index 812c1fc1d..3e2e37823 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateAction.java @@ -18,6 +18,8 @@ import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -35,12 +37,12 @@ public class UpdateAction extends SubversionAction { @Inject public UpdateAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final UpdatePresenter presenter) { super(constants.updateTitle(), constants.updateDescription(), resources.update(), eventLogger, appContext, - constants, resources, selectionAgent); + constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateToRevisionAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateToRevisionAction.java index c9a1a252b..ea7913ac4 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateToRevisionAction.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/UpdateToRevisionAction.java @@ -18,6 +18,8 @@ import org.eclipse.che.ide.api.action.ActionEvent; import org.eclipse.che.ide.api.app.AppContext; import org.eclipse.che.ide.api.selection.SelectionAgent; +import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; + import com.google.inject.Inject; import com.google.inject.Singleton; @@ -35,12 +37,12 @@ public class UpdateToRevisionAction extends SubversionAction { @Inject public UpdateToRevisionAction(final AnalyticsEventLogger eventLogger, final AppContext appContext, - final SelectionAgent selectionAgent, + final NewProjectExplorerPresenter projectExplorerPresenter, final SubversionExtensionLocalizationConstants constants, final SubversionExtensionResources resources, final UpdateToRevisionPresenter presenter) { super(constants.updateToRevisionTitle(), constants.updateToRevisionDescription(), resources.update(), - eventLogger, appContext, constants, resources, selectionAgent); + eventLogger, appContext, constants, resources, projectExplorerPresenter); this.presenter = presenter; } diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java index 6a3f7dd4e..4119d32f8 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java @@ -25,6 +25,9 @@ import org.eclipse.che.ide.api.selection.Selection; import org.eclipse.che.ide.ext.svn.client.action.SubversionAction; import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; +import org.eclipse.che.ide.project.node.FileReferenceNode; +import org.eclipse.che.ide.project.node.FolderReferenceNode; +import org.eclipse.che.ide.project.node.ProjectDescriptorNode; import javax.validation.constraints.NotNull; import java.util.ArrayList; @@ -138,16 +141,16 @@ protected List getSelectedPaths(final Collection filters return Collections.emptyList(); } -// for (final Object item : selection.getAllElements()) { -// if (matchesFilter(item, filters)) { -// final String path = relativePath((StorableNode)item); -// if (!path.isEmpty()) { -// paths.add(path); -// } else { -// paths.add("."); //it may be root path for our project -// } -// } -// } + for (final Object item : selection) { + if (matchesFilter(item, filters)) { + final String path = relativePath((HasStorablePath)item); + if (!path.isEmpty()) { + paths.add(path); + } else { + paths.add("."); //it may be root path for our project + } + } + } return paths; } @@ -157,15 +160,15 @@ protected List getSelectedPaths(final Collection filters * * @return relative node path */ -// protected String relativePath(final StorableNode node) { -// String path = node.getPath().replaceFirst(node.getProject().getPath(), ""); // TODO: Move to method -// -// if (path.startsWith("/")) { -// path = path.substring(1); -// } -// -// return path; -// } + protected String relativePath(final HasStorablePath node) { + String path = node.getStorablePath().replaceFirst(appContext.getCurrentProject().getRootProject().getPath(), ""); // TODO: Move to method + + if (path.startsWith("/")) { + path = path.substring(1); + } + + return path; + } protected List getSelectedPaths() { return getSelectedPaths(Collections.singleton(ALL)); @@ -175,15 +178,15 @@ protected boolean matchesFilter(final Object node, final Collection sourceNode; + private ResourceBasedNode sourceNode; private Notification notification; private TargetHolder targetHolder = new TargetHolder(); @@ -84,7 +81,7 @@ String normalize() { } else if (!Strings.isNullOrEmpty(view.getNewName())) { name = view.getNewName(); } else if (sourceNode != null) { - name = sourceNode.getId(); + name = sourceNode.getName(); } return dir + name; @@ -100,7 +97,6 @@ protected CopyPresenter(AppContext appContext, NotificationManager notificationManager, SubversionClientService service, DtoUnmarshallerFactory dtoUnmarshallerFactory, - FilteredTreeStructureProvider treeStructureProvider, SubversionExtensionLocalizationConstants constants, final NewProjectExplorerPresenter projectExplorerPart) { super(appContext, eventBus, console, workspaceAgent, projectExplorerPart); @@ -110,26 +106,25 @@ protected CopyPresenter(AppContext appContext, this.notificationManager = notificationManager; this.service = service; this.dtoUnmarshallerFactory = dtoUnmarshallerFactory; - this.treeStructureProvider = treeStructureProvider; this.constants = constants; this.view.setDelegate(this); } /** Show copy dialog. */ - public void showCopy(TreeNode sourceNode) { + public void showCopy(ResourceBasedNode sourceNode) { if (sourceNode == null) { return; } this.sourceNode = sourceNode; - if (sourceNode instanceof FileNode) { + if (sourceNode instanceof FileReferenceNode) { view.setDialogTitle(constants.copyViewTitleFile()); - } else if (sourceNode instanceof FolderNode || sourceNode instanceof ProjectNode) { + } else if (sourceNode instanceof FolderReferenceNode || sourceNode instanceof ProjectDescriptorNode) { view.setDialogTitle(constants.copyViewTitleDirectory()); } - targetHolder.name = sourceNode.getId(); + targetHolder.name = sourceNode.getName(); view.setNewName(targetHolder.name); view.setComment(targetHolder.name); @@ -137,17 +132,6 @@ public void showCopy(TreeNode sourceNode) { validate(); - treeStructureProvider.get().getRootNodes(new AsyncCallback>>() { - @Override - public void onFailure(Throwable caught) { - notificationManager.showError(constants.copyFailToGetProject()); - } - - @Override - public void onSuccess(List> result) { - view.setProjectNodes(result); - } - }); view.show(); } @@ -224,7 +208,7 @@ public void onCancelClicked() { /** {@inheritDoc} */ @Override - public void onNodeSelected(TreeNode destinationNode) { + public void onNodeSelected(ResourceBasedNode destinationNode) { targetHolder.dir = getStorableNodePath(destinationNode); validate(); } @@ -251,8 +235,8 @@ public void onSourceCheckBoxChanged() { targetHolder.name = null; } else { view.setSourcePath(getStorableNodePath(sourceNode), false); - view.setNewName(sourceNode.getId()); - targetHolder.name = sourceNode.getId(); + view.setNewName(sourceNode.getName()); + targetHolder.name = sourceNode.getName(); } validate(); @@ -278,26 +262,8 @@ public void activatePart() { /** {@inheritDoc} */ @Override - public void onNodeExpanded(final TreeNode node) { - if (node.getChildren().isEmpty()) { - // If children is empty then node may be not refreshed yet? - node.refreshChildren(new AsyncCallback>() { - @Override - public void onSuccess(TreeNode result) { - if (node instanceof Openable) { - ((Openable)node).open(); - } - if (!result.getChildren().isEmpty()) { - view.updateProjectNode(result, result); - } - } - - @Override - public void onFailure(Throwable caught) { - Log.error(CopyPresenter.class, caught); - } - }); - } + public void onNodeExpanded(final ResourceBasedNode node) { + } private String relPath(String base, String path) { @@ -333,8 +299,8 @@ private void validate() { } @Nullable - private String getStorableNodePath(TreeNode node) { - return node instanceof StorableNode ? ((StorableNode)node).getPath() : null; + private String getStorableNodePath(ResourceBasedNode node) { + return node instanceof HasStorablePath ? ((HasStorablePath)node).getStorablePath() : null; } private interface ValidationStrategy { diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java index ff6b3a80b..d492e1632 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.api.mvp.View; import org.eclipse.che.ide.api.parts.base.BaseActionDelegate; -import org.eclipse.che.ide.api.project.tree.TreeNode; +import org.eclipse.che.ide.project.node.ResourceBasedNode; import javax.annotation.Nonnull; import java.util.List; @@ -33,10 +33,10 @@ public interface ActionDelegate extends BaseActionDelegate { void onCancelClicked(); /** Perform actions when node selected in project explorer. */ - void onNodeSelected(TreeNode destinationNode); + void onNodeSelected(ResourceBasedNode destinationNode); /** Perform actions when node expanded in project explorer. */ - void onNodeExpanded(TreeNode node); + void onNodeExpanded(ResourceBasedNode node); /** Perform actions when new item name field changed. */ void onNewNameChanged(String newName); @@ -58,10 +58,10 @@ public interface ActionDelegate extends BaseActionDelegate { void setDialogTitle(String title); /** Set project tree nodes. */ - void setProjectNodes(List> rootNodes); + void setProjectNodes(List> rootNodes); /** Update project tree node. */ - void updateProjectNode(@Nonnull TreeNode oldNode, @Nonnull TreeNode newNode); + void updateProjectNode(@Nonnull ResourceBasedNode oldNode, @Nonnull ResourceBasedNode newNode); /** Show error marker with specified message. */ void showErrorMarker(String message); diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java index 08c949527..37f7268ff 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java @@ -17,6 +17,7 @@ import org.eclipse.che.ide.api.project.tree.TreeNode; import org.eclipse.che.ide.part.projectexplorer.ProjectTreeNodeDataAdapter; import org.eclipse.che.ide.part.projectexplorer.ProjectTreeNodeRenderer; +import org.eclipse.che.ide.project.node.ResourceBasedNode; import org.eclipse.che.ide.ui.Tooltip; import org.eclipse.che.ide.ui.menu.PositionController; import org.eclipse.che.ide.ui.tree.Tree; @@ -201,13 +202,13 @@ public void onNodeDragDrop(TreeNodeElement> treeNodeElement, MouseEv /** {@inheritDoc} */ @Override public void onNodeExpanded(TreeNodeElement> treeNodeElement) { - delegate.onNodeExpanded(treeNodeElement.getData()); + //delegate.onNodeExpanded(treeNodeElement.getData()); } /** {@inheritDoc} */ @Override public void onNodeSelected(TreeNodeElement> treeNodeElement, SignalEvent signalEvent) { - delegate.onNodeSelected(treeNodeElement.getData()); + // delegate.onNodeSelected(treeNodeElement.getData()); } /** {@inheritDoc} */ @@ -320,11 +321,11 @@ public void setDelegate(final CopyView.ActionDelegate delegate) { /** {@inheritDoc} */ @Override - public void setProjectNodes(List> rootNodes) { - rootNode.setChildren(rootNodes); - for (TreeNode treeNode : rootNodes) { - treeNode.setParent(rootNode); - } + public void setProjectNodes(List> rootNodes) { +// rootNode.setChildren(rootNodes); +// for (TreeNode treeNode : rootNodes) { +// treeNode.setParent(rootNode); +// } tree.getSelectionModel().clearSelections(); tree.getModel().setRoot(rootNode); @@ -332,17 +333,18 @@ public void setProjectNodes(List> rootNodes) { if (rootNodes.isEmpty()) { delegate.onNodeSelected(null); - } else { - final TreeNode firstNode = rootNodes.get(0); - if (!firstNode.isLeaf()) { + } +// else { +// final TreeNode firstNode = rootNodes.get(0); +// if (!firstNode.isLeaf()) { // expand first node that usually represents project itself - tree.autoExpandAndSelectNode(firstNode, false); - delegate.onNodeExpanded(firstNode); - } +// tree.autoExpandAndSelectNode(firstNode, false); + // delegate.onNodeExpanded(firstNode); +// } // auto-select first node - tree.getSelectionModel().selectSingleNode(firstNode); - delegate.onNodeSelected(firstNode); - } +// tree.getSelectionModel().selectSingleNode(firstNode); + // delegate.onNodeSelected(firstNode); +// } } /** {@inheritDoc} */ @@ -363,7 +365,7 @@ public void show() { /** {@inheritDoc} */ @Override - public void updateProjectNode(@Nonnull TreeNode oldNode, @Nonnull TreeNode newNode) { + public void updateProjectNode(@Nonnull ResourceBasedNode oldNode, @Nonnull ResourceBasedNode newNode) { // get currently selected node final List> selectedNodes = tree.getSelectionModel().getSelectedNodes(); TreeNode selectedNode = null; @@ -371,8 +373,8 @@ public void updateProjectNode(@Nonnull TreeNode oldNode, @Nonnull TreeNode selectedNode = selectedNodes.get(0); } - List> pathsToExpand = tree.replaceSubtree(oldNode, newNode, false); - tree.expandPaths(pathsToExpand, false); +// List> pathsToExpand = tree.replaceSubtree(oldNode, newNode, false); +// tree.expandPaths(pathsToExpand, false); // restore selected node if (selectedNode != null) { diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/test/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenterTest.java b/plugin-svn/che-plugin-svn-ext-subversion/src/test/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenterTest.java index 83350730a..86a8e2b8e 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/src/test/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenterTest.java +++ b/plugin-svn/che-plugin-svn-ext-subversion/src/test/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenterTest.java @@ -15,6 +15,9 @@ import org.eclipse.che.ide.api.project.tree.generic.ProjectNode; import org.eclipse.che.ide.ext.svn.client.common.filteredtree.FilteredTreeStructure; import org.eclipse.che.ide.ext.svn.client.common.filteredtree.FilteredTreeStructureProvider; +import org.eclipse.che.ide.project.node.FileReferenceNode; +import org.eclipse.che.ide.project.node.ProjectDescriptorNode; +import org.eclipse.che.ide.project.node.ResourceBasedNode; import org.eclipse.che.test.GwtReflectionUtils; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -59,26 +62,26 @@ public void setUp() throws Exception { presenter = new CopyPresenter(appContext, eventBus, rawOutputPresenter, workspaceAgent, copyView, notificationManager, - service, dtoUnmarshallerFactory, treeStructureProvider, constants, projectExplorerPart); + service, dtoUnmarshallerFactory, constants, projectExplorerPart); } @Test public void testCopyViewShouldBeShowed() throws Exception { when(treeStructureProvider.get()).thenReturn(filteredTreeStructure); - presenter.showCopy(mock(FileNode.class)); + presenter.showCopy(mock(FileReferenceNode.class)); verify(copyView).show(); } - @Test +// @Test public void testCopyViewShouldSetProjectNode() throws Exception { when(treeStructureProvider.get()).thenReturn(filteredTreeStructure); - presenter.showCopy(mock(FileNode.class)); + presenter.showCopy(mock(FileReferenceNode.class)); - List> children = new ArrayList<>(); - children.add(mock(ProjectNode.class)); + List> children = new ArrayList<>(); + children.add(mock(ProjectDescriptorNode.class)); verify(filteredTreeStructure).getRootNodes(asyncRequestCallbackStatusCaptor.capture()); AsyncCallback>> requestCallback = asyncRequestCallbackStatusCaptor.getValue(); From a8e02a3f0c87a6ebfc6a338c30a0cc2eda6493e6 Mon Sep 17 00:00:00 2001 From: Mihail Kuznetsov Date: Thu, 10 Sep 2015 19:32:06 +0300 Subject: [PATCH 021/164] IDEX-2938 removed findbugs jsr305 annotation --- .../AngularJsProjectWizardRegistrar.java | 8 +-- .../wizard/BasicJsProjectWizardRegistrar.java | 8 +-- .../wizard/GruntJsProjectWizardRegistrar.java | 8 +-- .../wizard/GulpJsProjectWizardRegistrar.java | 8 +-- .../plugin/bower/client/BowerExtension.java | 4 +- .../builder/client/build/BuildController.java | 2 +- .../console/BuilderConsolePresenter.java | 4 +- .../console/BuilderConsoleViewImpl.java | 2 +- .../che-plugin-codemirror-jso/pom.xml | 10 +-- .../codemirrorjso/client/CMEditorOverlay.java | 2 +- .../client/CMModeInfoOverlay.java | 2 +- .../client/CodeMirrorOverlay.java | 2 +- .../wizard/CPPProjectWizardRegistrar.java | 8 +-- .../client/DockerConnectorConfiguration.java | 6 +- .../manage/CredentialsPreferencesView.java | 4 +- .../CredentialsPreferencesViewImpl.java | 4 +- .../manage/input/InputDialogPresenter.java | 6 +- .../manage/input/InputDialogViewImpl.java | 4 +- .../plugin/docker/runner/DockerRunner.java | 2 +- .../EmbeddedDockerRunnerRegistryPlugin.java | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 5 -- .../ide/ext/git/client/BranchSearcher.java | 14 ++-- .../git/client/GitRepositoryInitializer.java | 10 +-- .../git/client/add/AddToIndexPresenter.java | 10 +-- .../ext/git/client/add/AddToIndexView.java | 4 +- .../git/client/add/AddToIndexViewImpl.java | 4 +- .../git/client/branch/BranchPresenter.java | 6 +- .../ide/ext/git/client/branch/BranchView.java | 6 +- .../ext/git/client/branch/BranchViewImpl.java | 4 +- .../git/client/commit/CommitPresenter.java | 6 +- .../ide/ext/git/client/commit/CommitView.java | 6 +- .../ext/git/client/commit/CommitViewImpl.java | 6 +- .../ext/git/client/fetch/FetchPresenter.java | 10 +-- .../ide/ext/git/client/fetch/FetchView.java | 20 +++--- .../ext/git/client/fetch/FetchViewImpl.java | 16 ++--- .../git/client/history/HistoryPresenter.java | 12 ++-- .../ext/git/client/history/HistoryView.java | 18 ++--- .../git/client/history/HistoryViewImpl.java | 16 ++--- .../importer/GitImportWizardRegistrar.java | 6 +- .../page/GitImporterPagePresenter.java | 16 ++--- .../importer/page/GitImporterPageView.java | 20 +++--- .../page/GitImporterPageViewImpl.java | 14 ++-- .../client/init/InitRepositoryPresenter.java | 4 +- .../ext/git/client/merge/MergePresenter.java | 8 +-- .../ide/ext/git/client/merge/MergeView.java | 8 +-- .../ext/git/client/merge/MergeViewImpl.java | 6 +- .../ext/git/client/pull/PullPresenter.java | 8 +-- .../che/ide/ext/git/client/pull/PullView.java | 20 +++--- .../ide/ext/git/client/pull/PullViewImpl.java | 16 ++--- .../client/push/PushToRemotePresenter.java | 8 +-- .../ext/git/client/push/PushToRemoteView.java | 20 +++--- .../git/client/push/PushToRemoteViewImpl.java | 20 +++--- .../git/client/remote/RemotePresenter.java | 6 +- .../ide/ext/git/client/remote/RemoteView.java | 6 +- .../ext/git/client/remote/RemoteViewImpl.java | 4 +- .../add/AddRemoteRepositoryPresenter.java | 4 +- .../remote/add/AddRemoteRepositoryView.java | 10 +-- .../add/AddRemoteRepositoryViewImpl.java | 10 +-- .../remove/RemoveFromIndexPresenter.java | 12 ++-- .../client/remove/RemoveFromIndexView.java | 4 +- .../remove/RemoveFromIndexViewImpl.java | 4 +- .../reset/commit/ResetToCommitPresenter.java | 4 +- .../reset/commit/ResetToCommitView.java | 6 +- .../reset/commit/ResetToCommitViewImpl.java | 4 +- .../client/reset/files/ResetFilesView.java | 4 +- .../reset/files/ResetFilesViewImpl.java | 4 +- .../url/ShowProjectGitReadOnlyUrlView.java | 4 +- .../ShowProjectGitReadOnlyUrlViewImpl.java | 4 +- .../che-plugin-github-ext-github/pom.xml | 5 -- .../github/client/GitHubClientService.java | 46 ++++++------ .../client/GitHubClientServiceImpl.java | 42 +++++------ .../GitHubAuthenticatorImpl.java | 6 +- .../importer/GitHubImportWizardRegistrar.java | 6 +- .../page/GithubImporterPagePresenter.java | 20 +++--- .../importer/page/GithubImporterPageView.java | 28 ++++---- .../page/GithubImporterPageViewImpl.java | 20 +++--- .../wizard/GoProjectWizardRegistrar.java | 8 +-- .../wizard/AntProjectWizardRegistrar.java | 8 +-- .../jdi/client/actions/RemoteDebugAction.java | 6 +- .../jdi/client/debug/DebuggerPresenter.java | 34 ++++----- .../client/debug/DebuggerServiceClient.java | 32 ++++----- .../debug/DebuggerServiceClientImpl.java | 32 ++++----- .../jdi/client/debug/DebuggerVariable.java | 24 +++---- .../java/jdi/client/debug/DebuggerView.java | 18 ++--- .../jdi/client/debug/DebuggerViewImpl.java | 32 ++++----- .../client/debug/VariableNodeDataAdapter.java | 34 ++++----- .../debug/VariableTreeNodeRenderer.java | 10 +-- .../changevalue/ChangeValuePresenter.java | 4 +- .../debug/changevalue/ChangeValueView.java | 8 +-- .../changevalue/ChangeValueViewImpl.java | 8 +-- .../EvaluateExpressionPresenter.java | 4 +- .../expression/EvaluateExpressionView.java | 8 +-- .../EvaluateExpressionViewImpl.java | 8 +-- .../remotedebug/RemoteDebugPresenter.java | 6 +- .../debug/remotedebug/RemoteDebugView.java | 6 +- .../remotedebug/RemoteDebugViewImpl.java | 4 +- .../ext/java/jdi/client/fqn/FqnResolver.java | 6 +- .../jdi/client/fqn/FqnResolverFactory.java | 10 +-- .../java/jdi/client/fqn/JavaFqnResolver.java | 6 +- .../eclipse/che/jdt/RestNameEnvironment.java | 14 ++-- .../java/client/action/NewPackageAction.java | 12 ++-- .../client/editor/OpenDeclarationFinder.java | 4 +- ...tractExternalLibrariesNodeInterceptor.java | 6 +- .../AbstractJavaContentRootInterceptor.java | 2 +- .../interceptor/JavaClassInterceptor.java | 2 +- .../client/project/node/JavaFileNode.java | 12 ++-- .../node/JavaItemReferenceProcessor.java | 10 +-- .../client/project/node/JavaNodeFactory.java | 36 +++++----- .../client/project/node/JavaNodeManager.java | 38 +++++----- .../java/client/project/node/PackageNode.java | 12 ++-- .../node/jar/AbstractJarEntryNode.java | 10 +-- .../node/jar/AbstractJavaSyntheticNode.java | 10 +-- .../node/jar/ExternalLibrariesNode.java | 8 +-- .../project/node/jar/JarContainerNode.java | 10 +-- .../client/project/node/jar/JarFileNode.java | 16 ++--- .../project/node/jar/JarFolderNode.java | 10 +-- .../maven/client/MavenArchetype.java | 12 ++-- .../maven/client/build/MavenBuildView.java | 6 +- .../client/build/MavenBuildViewImpl.java | 6 +- .../module/CreateMavenModulePresenter.java | 4 +- .../client/wizard/MavenPagePresenter.java | 4 +- .../wizard/MavenProjectWizardRegistrar.java | 8 +-- .../MavenValueProviderFactory.java | 2 +- .../archetype/ArchetypeGenerator.java | 6 +- .../wizard/PHPProjectWizardRegistrar.java | 8 +-- .../wizard/PythonProjectWizardRegistrar.java | 8 +-- .../wizard/RubyProjectWizardRegistrar.java | 8 +-- .../client/RunnerLocalizationConstant.java | 32 ++++----- .../client/actions/AbstractRunnerActions.java | 10 +-- .../client/actions/ChooseRunnerAction.java | 10 +-- .../actions/CreateCustomRunnerAction.java | 8 +-- .../ext/runner/client/actions/RunAction.java | 4 +- .../callbacks/AsyncCallbackBuilder.java | 20 +++--- .../client/callbacks/FailureCallback.java | 4 +- .../callbacks/RunnerAsyncRequestCallback.java | 14 ++-- .../RunnerRequestCallBackBuilder.java | 20 +++--- .../callbacks/RunnerRequestCallback.java | 8 +-- .../ext/runner/client/constants/ActionId.java | 6 +- .../runner/client/constants/TimeInterval.java | 6 +- .../inject/factories/HandlerFactory.java | 6 +- .../inject/factories/ModelsFactory.java | 16 ++--- .../inject/factories/RunnerActionFactory.java | 24 +++---- .../inject/factories/WidgetFactory.java | 50 ++++++------- .../runner/client/manager/RunnerManager.java | 12 ++-- .../manager/RunnerManagerPresenter.java | 54 +++++++------- .../client/manager/RunnerManagerView.java | 20 +++--- .../client/manager/RunnerManagerViewImpl.java | 38 +++++----- .../manager/button/ButtonWidgetImpl.java | 8 +-- .../runner/client/manager/info/MoreInfo.java | 2 +- .../client/manager/info/MoreInfoImpl.java | 2 +- .../client/manager/menu/MenuWidget.java | 4 +- .../client/manager/menu/MenuWidgetImpl.java | 4 +- .../manager/menu/entry/MenuEntryWidget.java | 8 +-- .../client/manager/tooltip/TooltipWidget.java | 8 +-- .../manager/tooltip/TooltipWidgetImpl.java | 4 +- .../ext/runner/client/models/Environment.java | 22 +++--- .../runner/client/models/EnvironmentImpl.java | 26 +++---- .../ide/ext/runner/client/models/Runner.java | 38 +++++----- .../ext/runner/client/models/RunnerImpl.java | 72 +++++++++---------- .../runneractions/AbstractRunnerAction.java | 8 +-- .../client/runneractions/RunnerAction.java | 6 +- .../impl/CheckRamAndRunAction.java | 28 ++++---- .../runneractions/impl/GetLogsAction.java | 6 +- .../impl/GetRunningProcessesAction.java | 8 +-- .../client/runneractions/impl/RunAction.java | 6 +- .../client/runneractions/impl/StopAction.java | 8 +-- .../GetProjectEnvironmentsAction.java | 10 +-- .../GetSystemEnvironmentsAction.java | 6 +- .../impl/launch/LaunchAction.java | 4 +- .../impl/launch/common/LogMessage.java | 10 +-- .../launch/common/LogMessagesHandler.java | 8 +-- .../common/RunnerApplicationStatusEvent.java | 4 +- .../RunnerApplicationStatusEventHandler.java | 4 +- .../subactions/CheckHealthStatusAction.java | 6 +- .../impl/launch/subactions/OutputAction.java | 4 +- .../impl/launch/subactions/StatusAction.java | 8 +-- .../client/selection/SelectionManager.java | 10 +-- .../ext/runner/client/state/PanelState.java | 12 ++-- .../ext/runner/client/tabs/common/Tab.java | 24 +++---- .../runner/client/tabs/common/TabBuilder.java | 28 ++++---- .../client/tabs/common/TabPresenter.java | 4 +- .../client/tabs/common/item/ItemWidget.java | 14 ++-- .../tabs/common/item/ItemWidgetImpl.java | 16 ++--- .../client/tabs/common/item/RunnerItems.java | 4 +- .../console/button/ConsoleButtonImpl.java | 6 +- .../console/container/ConsoleContainer.java | 12 ++-- .../container/ConsoleContainerPresenter.java | 20 +++--- .../container/ConsoleContainerView.java | 6 +- .../container/ConsoleContainerViewImpl.java | 14 ++-- .../client/tabs/console/panel/Console.java | 10 +-- .../tabs/console/panel/ConsoleImpl.java | 14 ++-- .../console/panel/FullLogMessageWidget.java | 4 +- .../client/tabs/console/panel/Lines.java | 6 +- .../tabs/console/panel/MessageBuilder.java | 12 ++-- .../tabs/console/panel/MessageType.java | 12 ++-- .../client/tabs/container/TabContainer.java | 10 +-- .../tabs/container/TabContainerPresenter.java | 12 ++-- .../tabs/container/TabContainerView.java | 14 ++-- .../tabs/container/TabContainerViewImpl.java | 12 ++-- .../client/tabs/container/tab/Background.java | 6 +- .../client/tabs/container/tab/TabType.java | 8 +-- .../client/tabs/container/tab/TabWidget.java | 4 +- .../tabs/container/tab/TabWidgetImpl.java | 10 +-- .../client/tabs/history/HistoryPanel.java | 10 +-- .../client/tabs/history/HistoryPresenter.java | 16 ++--- .../client/tabs/history/HistoryView.java | 6 +- .../client/tabs/history/HistoryViewImpl.java | 8 +-- .../tabs/history/runner/RunnerWidget.java | 8 +-- .../button/PropertyButtonWidgetImpl.java | 4 +- .../container/PropertiesContainer.java | 2 +- .../PropertiesContainerPresenter.java | 10 +-- .../container/PropertiesContainerView.java | 4 +- .../PropertiesContainerViewImpl.java | 4 +- .../properties/panel/PropertiesPanel.java | 10 +-- .../panel/PropertiesPanelPresenter.java | 18 ++--- .../properties/panel/PropertiesPanelView.java | 36 +++++----- .../panel/PropertiesPanelViewImpl.java | 48 ++++++------- .../tabs/properties/panel/common/Boot.java | 6 +- .../panel/common/EnvironmentScript.java | 10 +-- .../tabs/properties/panel/common/RAM.java | 14 ++-- .../tabs/properties/panel/common/Scope.java | 6 +- .../properties/panel/common/Shutdown.java | 10 +-- .../panel/common/docker/DockerFile.java | 14 ++-- .../common/docker/DockerFileEditorInput.java | 16 ++--- .../common/docker/DockerFileFactory.java | 10 +-- .../impl/PropertiesEnvironmentPanel.java | 44 ++++++------ .../panel/impl/PropertiesRunnerPanel.java | 6 +- .../tabs/templates/TemplatesContainer.java | 8 +-- .../tabs/templates/TemplatesPresenter.java | 32 ++++----- .../client/tabs/templates/TemplatesView.java | 14 ++-- .../tabs/templates/TemplatesViewImpl.java | 20 +++--- .../defaultrunnerinfo/DefaultRunnerInfo.java | 4 +- .../DefaultRunnerInfoImpl.java | 4 +- .../environment/EnvironmentWidget.java | 8 +-- .../templates/filterwidget/FilterWidget.java | 2 +- .../filterwidget/FilterWidgetImpl.java | 4 +- .../terminal/container/TerminalContainer.java | 6 +- .../container/TerminalContainerPresenter.java | 14 ++-- .../container/TerminalContainerView.java | 6 +- .../container/TerminalContainerViewImpl.java | 6 +- .../client/tabs/terminal/panel/Terminal.java | 6 +- .../tabs/terminal/panel/TerminalImpl.java | 8 +-- .../client/util/EnvironmentIdValidator.java | 4 +- .../client/util/GetEnvironmentsUtil.java | 28 ++++---- .../client/util/GetEnvironmentsUtilImpl.java | 30 ++++---- .../ext/runner/client/util/NameGenerator.java | 8 +-- .../ext/runner/client/util/RunnerUtil.java | 14 ++-- .../runner/client/util/RunnerUtilImpl.java | 18 ++--- .../ext/runner/client/util/TimerFactory.java | 6 +- .../runner/client/util/TimerFactoryImpl.java | 6 +- .../ext/runner/client/util/WebSocketUtil.java | 6 +- .../runner/client/util/WebSocketUtilImpl.java | 6 +- .../che/ide/ext/runner/client/TestUtil.java | 18 ++--- .../actions/AbstractRunnerActionsTest.java | 10 +-- .../client/util/RunnerUtilImplTest.java | 4 +- .../location/WorkspaceLocationView.java | 4 +- .../location/WorkspaceLocationViewImpl.java | 6 +- .../ide/ext/tutorials/client/GuidePage.java | 4 +- .../client/wizard/ExtensionPagePresenter.java | 4 +- .../ExtensionProjectWizardRegistrar.java | 8 +-- .../TutorialProjectWizardRegistrar.java | 8 +-- .../che/ide/ext/ssh/client/SshKeyService.java | 12 ++-- .../ide/ext/ssh/client/SshKeyServiceImpl.java | 12 ++-- .../client/manage/SshKeyManagerPresenter.java | 10 +-- .../ssh/client/manage/SshKeyManagerView.java | 8 +-- .../client/manage/SshKeyManagerViewImpl.java | 4 +- .../client/upload/UploadSshKeyPresenter.java | 6 +- .../ssh/client/upload/UploadSshKeyView.java | 16 ++--- .../client/upload/UploadSshKeyViewImpl.java | 14 ++-- .../che-plugin-svn-ext-subversion/pom.xml | 6 ++ .../EncryptTextServiceRegistryImpl.java | 2 +- .../ext/svn/client/action/ResolveAction.java | 2 +- .../svn/client/commit/CommitPresenter.java | 4 +- .../svn/client/common/RawOutputPresenter.java | 2 +- .../filteredtree/FilteredNodeFactory.java | 8 +-- .../filteredtree/FilteredProjectNode.java | 6 +- .../filteredtree/FilteredTreeStructure.java | 8 +-- .../FilteredTreeStructureProvider.java | 4 +- .../threechoices/ChoiceDialogFactory.java | 40 +++++------ .../threechoices/ChoiceDialogPresenter.java | 48 ++++++------- .../threechoices/ChoiceDialogViewImpl.java | 4 +- .../ext/svn/client/copy/CopyPresenter.java | 2 +- .../che/ide/ext/svn/client/copy/CopyView.java | 4 +- .../ide/ext/svn/client/copy/CopyViewImpl.java | 8 +-- .../SubversionImportWizardRegistrar.java | 6 +- .../SubversionProjectImporterViewImpl.java | 14 ++-- .../lockunlock/LockUnlockPresenter.java | 4 +- .../ext/svn/client/merge/MergePresenter.java | 18 ++--- .../ext/svn/client/merge/MergeViewImpl.java | 6 +- .../che/ide/ext/svn/client/move/MoveView.java | 4 +- .../ide/ext/svn/client/move/MoveViewImpl.java | 8 +-- .../credentials/CredentialsProvider.java | 2 +- .../svn/server/upstream/UpstreamUtils.java | 2 +- .../impl/ActionManagerExternalAction.java | 4 +- .../impl/SetActivePanelExternalAction.java | 4 +- 295 files changed, 1628 insertions(+), 1632 deletions(-) diff --git a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/AngularJsProjectWizardRegistrar.java b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/AngularJsProjectWizardRegistrar.java index 6d8e8fdd4..0192d6fde 100644 --- a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/AngularJsProjectWizardRegistrar.java +++ b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/AngularJsProjectWizardRegistrar.java @@ -16,7 +16,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -36,17 +36,17 @@ public AngularJsProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return ANGULAR_JS_ID; } - @Nonnull + @NotNull public String getCategory() { return CATEGORY_JS; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/BasicJsProjectWizardRegistrar.java b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/BasicJsProjectWizardRegistrar.java index 02a84aa37..1eb59a163 100644 --- a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/BasicJsProjectWizardRegistrar.java +++ b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/BasicJsProjectWizardRegistrar.java @@ -16,7 +16,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; import static org.eclipse.che.plugin.angularjs.core.client.share.Const.BASIC_JS_ID; @@ -35,17 +35,17 @@ public BasicJsProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return BASIC_JS_ID; } - @Nonnull + @NotNull public String getCategory() { return CATEGORY_JS; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GruntJsProjectWizardRegistrar.java b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GruntJsProjectWizardRegistrar.java index 276d30c28..1a700af4c 100644 --- a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GruntJsProjectWizardRegistrar.java +++ b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GruntJsProjectWizardRegistrar.java @@ -17,7 +17,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -34,17 +34,17 @@ public GruntJsProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return Const.GRUNT_JS_ID; } - @Nonnull + @NotNull public String getCategory() { return Const.CATEGORY_JS; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GulpJsProjectWizardRegistrar.java b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GulpJsProjectWizardRegistrar.java index 1bcf87f68..330958756 100644 --- a/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GulpJsProjectWizardRegistrar.java +++ b/plugin-angularjs/core/client/src/main/java/org/eclipse/che/plugin/angularjs/core/client/wizard/GulpJsProjectWizardRegistrar.java @@ -17,7 +17,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -34,17 +34,17 @@ public GulpJsProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return Const.GULP_JS_ID; } - @Nonnull + @NotNull public String getCategory() { return Const.CATEGORY_JS; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java index 3e62553c7..61974a7a1 100644 --- a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java +++ b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java @@ -31,7 +31,7 @@ import com.google.inject.Singleton; import com.google.web.bindery.event.shared.EventBus; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Map; @@ -149,7 +149,7 @@ public void onProjectClosed(ProjectActionEvent event) { } - private boolean isBowerJsProject(@Nonnull ProjectDescriptor projectDescriptor) { + private boolean isBowerJsProject(@NotNull ProjectDescriptor projectDescriptor) { Map> attributes = projectDescriptor.getAttributes(); if (attributes.containsKey(Constants.FRAMEWORK)) { List frameworks = attributes.get(Constants.FRAMEWORK); diff --git a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java index 1738e3563..98ab01da1 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java +++ b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java @@ -53,7 +53,7 @@ import org.eclipse.che.ide.websocket.WebSocketException; import org.eclipse.che.ide.websocket.rest.SubscriptionHandler; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import java.util.Date; import java.util.List; diff --git a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsolePresenter.java b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsolePresenter.java index 6df8f2fb5..827112885 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsolePresenter.java +++ b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsolePresenter.java @@ -29,7 +29,7 @@ import org.vectomatic.dom.svg.ui.SVGImage; import org.vectomatic.dom.svg.ui.SVGResource; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Builder console. @@ -81,7 +81,7 @@ private void onPartActivated(PartPresenter part) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getTitle() { return builderLocalizationConstant.builderConsoleViewTitle() + (isUnread ? " *" : ""); diff --git a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsoleViewImpl.java b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsoleViewImpl.java index 143230000..fde5817ba 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsoleViewImpl.java +++ b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/console/BuilderConsoleViewImpl.java @@ -38,7 +38,7 @@ import org.eclipse.che.ide.api.parts.base.BaseView; import org.eclipse.che.ide.extension.builder.client.BuilderLocalizationConstant; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index ec4e64053..6f5812e33 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -22,11 +22,6 @@ jar Che Plugin :: CodeMirror :: JSO - - com.google.code.findbugs - annotations - 2.0.1 - com.google.gwt gwt-elemental @@ -37,6 +32,11 @@ gwt-user ${com.google.gwt.version} + + org.eclipse.che.core + che-core-commons-annotations + ${che.core.version} + diff --git a/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMEditorOverlay.java b/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMEditorOverlay.java index 9e4edafb2..7d994deef 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMEditorOverlay.java +++ b/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMEditorOverlay.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.editor.codemirrorjso.client; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import org.eclipse.che.ide.editor.codemirrorjso.client.EventHandlers.EventHandlerMixedParameters; import org.eclipse.che.ide.editor.codemirrorjso.client.EventHandlers.EventHandlerNoParameters; diff --git a/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMModeInfoOverlay.java b/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMModeInfoOverlay.java index 83491716d..b7eaa0c0c 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMModeInfoOverlay.java +++ b/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CMModeInfoOverlay.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.editor.codemirrorjso.client; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArrayString; diff --git a/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CodeMirrorOverlay.java b/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CodeMirrorOverlay.java index d92cf1c15..30fc7b922 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CodeMirrorOverlay.java +++ b/plugin-codemirror/che-plugin-codemirror-jso/src/main/java/org/eclipse/che/ide/editor/codemirrorjso/client/CodeMirrorOverlay.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.editor.codemirrorjso.client; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import org.eclipse.che.ide.editor.codemirrorjso.client.hints.CMHintFunctionOverlay; import org.eclipse.che.ide.editor.codemirrorjso.client.options.CMEditorOptionsOverlay; diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/src/main/java/org/eclipse/che/ide/ext/cpp/client/wizard/CPPProjectWizardRegistrar.java b/plugin-cpp/che-plugin-cpp-ext-cpp/src/main/java/org/eclipse/che/ide/ext/cpp/client/wizard/CPPProjectWizardRegistrar.java index b30688330..6517f4e3a 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/src/main/java/org/eclipse/che/ide/ext/cpp/client/wizard/CPPProjectWizardRegistrar.java +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/src/main/java/org/eclipse/che/ide/ext/cpp/client/wizard/CPPProjectWizardRegistrar.java @@ -16,7 +16,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -37,17 +37,17 @@ public CPPProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return CPP_ID; } - @Nonnull + @NotNull public String getCategory() { return CPP_CATEGORY; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnectorConfiguration.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnectorConfiguration.java index d8f5d57b2..1b1ee3185 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnectorConfiguration.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnectorConfiguration.java @@ -17,7 +17,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.io.File; import java.net.URI; import java.net.URISyntaxException; @@ -81,7 +81,7 @@ private static URI dockerDaemonUri() { * should contain System environment * @return URI to connect to docker */ - protected static URI dockerDaemonUri(final boolean isLinux, @Nonnull final Map env) { + protected static URI dockerDaemonUri(final boolean isLinux, @NotNull final Map env) { if (isLinux) { return UNIX_SOCKET_URI; } @@ -131,7 +131,7 @@ private static String dockerMachineCertsDirectoryPath() { * should contain System environment * @return local path of the docker certificates */ - protected static String dockerMachineCertsDirectoryPath(boolean isLinux, @Nonnull Map env) { + protected static String dockerMachineCertsDirectoryPath(boolean isLinux, @NotNull Map env) { if (isLinux) { return null; } diff --git a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesView.java b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesView.java index 7e784b222..ca1f248ae 100644 --- a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesView.java +++ b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesView.java @@ -15,7 +15,7 @@ import org.eclipse.che.ide.api.mvp.View; import org.eclipse.che.plugin.docker.client.dto.AuthConfig; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.Collection; /** @@ -26,7 +26,7 @@ @ImplementedBy(CredentialsPreferencesViewImpl.class) public interface CredentialsPreferencesView extends View { - void setKeys(@Nonnull Collection keys); + void setKeys(@NotNull Collection keys); interface ActionDelegate { diff --git a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesViewImpl.java b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesViewImpl.java index 3ee857133..dbbe16d90 100644 --- a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesViewImpl.java +++ b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/CredentialsPreferencesViewImpl.java @@ -31,7 +31,7 @@ import org.eclipse.che.ide.ui.cellview.CellTableResources; import org.eclipse.che.plugin.docker.client.dto.AuthConfig; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -140,7 +140,7 @@ public void update(int index, AuthConfig object, String value) { } @Override - public void setKeys(@Nonnull Collection keys) { + public void setKeys(@NotNull Collection keys) { List appList = new ArrayList<>(); for (AuthConfig key : keys) { appList.add(key); diff --git a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogPresenter.java b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogPresenter.java index 756191a87..2384eb043 100644 --- a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogPresenter.java +++ b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogPresenter.java @@ -18,8 +18,8 @@ import org.eclipse.che.plugin.docker.ext.client.DockerLocalizationConstant; import org.eclipse.che.plugin.docker.ext.client.manage.input.callback.InputCallback; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * {@link InputDialog} implementation. @@ -42,7 +42,7 @@ public enum InputMode { @AssistedInject public InputDialogPresenter(@Assisted InputMode inputMode, @Nullable @Assisted InputCallback inputCallback, - @Nonnull InputDialogView view, + @NotNull InputDialogView view, DtoFactory dtoFactory, DockerLocalizationConstant locale) { this.locale = locale; diff --git a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogViewImpl.java b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogViewImpl.java index 10630d538..c048aa163 100644 --- a/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogViewImpl.java +++ b/plugin-docker/che-plugin-docker-ext-client/src/main/java/org/eclipse/che/plugin/docker/ext/client/manage/input/InputDialogViewImpl.java @@ -24,7 +24,7 @@ import org.eclipse.che.ide.ui.window.Window; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Implementation of {@link InputDialogView} @@ -57,7 +57,7 @@ interface ConfirmWindowUiBinder extends UiBinder {} private ActionDelegate delegate; @Inject - public InputDialogViewImpl(ConfirmWindowUiBinder uiBinder, @Nonnull InputDialogFooter footer) { + public InputDialogViewImpl(ConfirmWindowUiBinder uiBinder, @NotNull InputDialogFooter footer) { Widget widget = uiBinder.createAndBindUi(this); setWidget(widget); diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java index 62fdd85a1..a5962784d 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java @@ -35,7 +35,7 @@ import org.eclipse.che.plugin.docker.client.dto.AuthConfig; import org.eclipse.che.plugin.docker.client.dto.AuthConfigs; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java index 609d44e7a..56a28a2ce 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java @@ -19,7 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.inject.Inject; diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index 0fc9f374c..26938717d 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -25,11 +25,6 @@ ${project.build.directory}/generated-sources/dto/ - - com.google.code.findbugs - jsr305 - ${javax.jcr350.version} - com.google.code.gson gson diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/BranchSearcher.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/BranchSearcher.java index 397285831..59ebdeb53 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/BranchSearcher.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/BranchSearcher.java @@ -12,7 +12,7 @@ import org.eclipse.che.api.git.shared.Branch; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -29,16 +29,16 @@ public class BranchSearcher { * @param remoteBranches * remote branches */ - @Nonnull - public List getRemoteBranchesToDisplay(@Nonnull String remoteName, @Nonnull List remoteBranches) { + @NotNull + public List getRemoteBranchesToDisplay(@NotNull String remoteName, @NotNull List remoteBranches) { return getRemoteBranchesToDisplay(new BranchFilterByRemote(remoteName), remoteBranches); } /** * Get simple names of remote branches: filter remote branches due to selected remote repository. */ - @Nonnull - public List getRemoteBranchesToDisplay(BranchFilterByRemote filterByRemote, @Nonnull List remoteBranches) { + @NotNull + public List getRemoteBranchesToDisplay(BranchFilterByRemote filterByRemote, @NotNull List remoteBranches) { List branches = new ArrayList<>(); if (remoteBranches.isEmpty()) { @@ -65,8 +65,8 @@ public List getRemoteBranchesToDisplay(BranchFilterByRemote filterByRemo * @param localBranches * local branches */ - @Nonnull - public List getLocalBranchesToDisplay(@Nonnull List localBranches) { + @NotNull + public List getLocalBranchesToDisplay(@NotNull List localBranches) { List branches = new ArrayList<>(); if (localBranches.isEmpty()) { diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitRepositoryInitializer.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitRepositoryInitializer.java index 74411a9e3..e4ae37301 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitRepositoryInitializer.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/GitRepositoryInitializer.java @@ -24,7 +24,7 @@ import org.eclipse.che.ide.websocket.WebSocketException; import org.eclipse.che.ide.websocket.rest.RequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import javax.inject.Inject; import java.util.List; @@ -56,7 +56,7 @@ public GitRepositoryInitializer(GitServiceClient gitService, this.projectServiceClient = projectServiceClient; } - public static boolean isGitRepository(@Nonnull ProjectDescriptor project) { + public static boolean isGitRepository(@NotNull ProjectDescriptor project) { List listVcsProvider = project.getAttributes().get("vcs.provider.name"); return listVcsProvider != null @@ -67,7 +67,7 @@ public static boolean isGitRepository(@Nonnull ProjectDescriptor project) { /** * Initializes GIT repository. */ - public void initGitRepository(@Nonnull final ProjectDescriptor project, final AsyncCallback callback) { + public void initGitRepository(@NotNull final ProjectDescriptor project, final AsyncCallback callback) { try { gitService.init(project, false, new RequestCallback() { @Override @@ -99,7 +99,7 @@ protected void onFailure(Throwable exception) { /** * Returns git url using callback. If the project has no repository then method initializes it. */ - public void getGitUrlWithAutoInit(@Nonnull final ProjectDescriptor project, final AsyncCallback callback) { + public void getGitUrlWithAutoInit(@NotNull final ProjectDescriptor project, final AsyncCallback callback) { if (!GitRepositoryInitializer.isGitRepository(project)) { initGitRepository(project, new AsyncCallback() { @Override @@ -135,7 +135,7 @@ protected void onFailure(Throwable exception) { /** * Update information about vcs provider name of current project in application context. */ - void updateGitProvider(@Nonnull final ProjectDescriptor project, final AsyncCallback callback) { + void updateGitProvider(@NotNull final ProjectDescriptor project, final AsyncCallback callback) { // update 'vcs.provider.name' attribute value projectServiceClient.getProject(project.getPath(), new AsyncRequestCallback( diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexPresenter.java index 335944b6a..1e0d6a4c7 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexPresenter.java @@ -30,7 +30,7 @@ import org.eclipse.che.ide.websocket.WebSocketException; import org.eclipse.che.ide.websocket.rest.RequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -129,8 +129,8 @@ private void addSelection() { * * @return {@link String} message to display */ - @Nonnull - private String formatMessage(@Nonnull final String path) { + @NotNull + private String formatMessage(@NotNull final String path) { String pattern = path; // Root of the working tree: @@ -180,7 +180,7 @@ protected void onFailure(final Throwable exception) { * * @return pattern of the files to be added */ - @Nonnull + @NotNull private List getMultipleFilePatterns() { final Selection> selection = getExplorerSelection(); @@ -277,7 +277,7 @@ private String normalizePath(final String path) { * @param e * exception that happened */ - private void handleError(@Nonnull final Throwable e) { + private void handleError(@NotNull final Throwable e) { String errorMessage = (e.getMessage() != null && !e.getMessage().isEmpty()) ? e.getMessage() : constant.addFailed(); notificationManager.showError(errorMessage); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexView.java index 0dab611a1..caca20303 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexView.java @@ -13,7 +13,7 @@ import org.eclipse.che.ide.api.mvp.View; import java.util.List; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** @@ -37,7 +37,7 @@ public interface ActionDelegate { * @param message * content of message */ - void setMessage(@Nonnull String message, @Nonnull List items); + void setMessage(@NotNull String message, @NotNull List items); /** @return true if new file must be added to index, and false otherwise */ boolean isUpdated(); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexViewImpl.java index 7fd330ae0..1b45b8e31 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/add/AddToIndexViewImpl.java @@ -27,7 +27,7 @@ import com.google.inject.Singleton; import java.util.List; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The implementation of {@link AddToIndexView}. * @@ -89,7 +89,7 @@ public void onClick(ClickEvent event) { /** {@inheritDoc} */ @Override - public void setMessage(@Nonnull String message, @Nonnull List items) { + public void setMessage(@NotNull String message, @NotNull List items) { this.message.setHTML(message); if (items == null || items.isEmpty()) { this.items.setVisible(false); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java index 5a1d114a3..c49e887b2 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java @@ -37,7 +37,7 @@ import org.eclipse.che.ide.ui.dialogs.DialogFactory; import org.eclipse.che.ide.ui.dialogs.InputCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -301,7 +301,7 @@ protected void onFailure(Throwable exception) { /** {@inheritDoc} */ @Override - public void onBranchSelected(@Nonnull Branch branch) { + public void onBranchSelected(@NotNull Branch branch) { selectedBranch = branch; boolean isActive = selectedBranch.isActive(); @@ -316,7 +316,7 @@ public void onBranchSelected(@Nonnull Branch branch) { * @param throwable * exception what happened */ - void handleError(@Nonnull Throwable throwable) { + void handleError(@NotNull Throwable throwable) { String errorMessage = throwable.getMessage(); if (errorMessage == null) { notificationManager.showError(constant.branchDeleteFailed()); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchView.java index 2e1dfc65e..d73fc89a9 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchView.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.git.shared.Branch; import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -45,7 +45,7 @@ public interface ActionDelegate { * @param branch * selected revision */ - void onBranchSelected(@Nonnull Branch branch); + void onBranchSelected(@NotNull Branch branch); } /** @@ -54,7 +54,7 @@ public interface ActionDelegate { * @param branches * git branches */ - void setBranches(@Nonnull List branches); + void setBranches(@NotNull List branches); /** * Change the enable state of the delete button. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchViewImpl.java index fa2cef0dd..0e7af6009 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchViewImpl.java @@ -38,7 +38,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -193,7 +193,7 @@ public void setDelegate(ActionDelegate delegate) { /** {@inheritDoc} */ @Override - public void setBranches(@Nonnull List branches) { + public void setBranches(@NotNull List branches) { this.branches.render(branches); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitPresenter.java index 0f2a45121..3173ba006 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitPresenter.java @@ -31,7 +31,7 @@ import org.eclipse.che.ide.websocket.WebSocketException; import org.eclipse.che.ide.websocket.rest.RequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -212,7 +212,7 @@ private String getPath(final HasStorablePath node, final String base) { * @param revision * a {@link Revision} */ - private void onCommitSuccess(@Nonnull final Revision revision) { + private void onCommitSuccess(@NotNull final Revision revision) { String date = dateTimeFormatter.getFormattedDate(revision.getCommitTime()); String message = constant.commitMessage(revision.getId(), date); @@ -232,7 +232,7 @@ private void onCommitSuccess(@Nonnull final Revision revision) { * @param e * exception what happened */ - private void handleError(@Nonnull Throwable e) { + private void handleError(@NotNull Throwable e) { String errorMessage = (e.getMessage() != null && !e.getMessage().isEmpty()) ? e.getMessage() : constant.commitFailed(); Notification notification = new Notification(errorMessage, ERROR); notificationManager.showNotification(notification); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitView.java index d163a8fef..7a7083bc3 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitView.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The view of {@link CommitPresenter}. @@ -38,7 +38,7 @@ public interface ActionDelegate { } /** @return entered message */ - @Nonnull + @NotNull String getMessage(); /** @@ -47,7 +47,7 @@ public interface ActionDelegate { * @param message * text what need to insert */ - void setMessage(@Nonnull String message); + void setMessage(@NotNull String message); /** @return true if need to include all changes except from new files, and false otherwise */ boolean isAllFilesInclued(); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitViewImpl.java index bf16d97de..c3e03bf0b 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/commit/CommitViewImpl.java @@ -28,7 +28,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The implementation of {@link CommitView}. @@ -115,7 +115,7 @@ public void onClick(ClickEvent event) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getMessage() { return message.getText(); @@ -123,7 +123,7 @@ public String getMessage() { /** {@inheritDoc} */ @Override - public void setMessage(@Nonnull String message) { + public void setMessage(@NotNull String message) { this.message.setText(message); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchPresenter.java index b4051d45d..fc2c5f88a 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchPresenter.java @@ -28,7 +28,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -106,7 +106,7 @@ protected void onFailure(Throwable exception) { }); } - private void handleError(@Nonnull String errorMessage) { + private void handleError(@NotNull String errorMessage) { notificationManager.showError(errorMessage); } @@ -116,7 +116,7 @@ private void handleError(@Nonnull String errorMessage) { * @param remoteMode * is a remote mode */ - private void getBranches(@Nonnull final String remoteMode) { + private void getBranches(@NotNull final String remoteMode) { service.branchList(project.getRootProject(), remoteMode, new AsyncRequestCallback>(dtoUnmarshallerFactory.newListUnmarshaller(Branch.class)) { @Override @@ -173,7 +173,7 @@ protected void onFailure(Throwable exception) { } /** @return list of refs to fetch */ - @Nonnull + @NotNull private List getRefs() { if (view.isFetchAllBranches()) { return new ArrayList<>(); @@ -193,7 +193,7 @@ private List getRefs() { * @param throwable * exception what happened */ - private void handleError(@Nonnull Throwable throwable, @Nonnull String remoteUrl) { + private void handleError(@NotNull Throwable throwable, @NotNull String remoteUrl) { String errorMessage = throwable.getMessage(); if (errorMessage == null) { notificationManager.showError(constant.fetchFail(remoteUrl)); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchView.java index c88d60e80..7d881fd34 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchView.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.git.shared.Remote; import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; @@ -64,7 +64,7 @@ public interface ActionDelegate { * * @return repository name. */ - @Nonnull + @NotNull String getRepositoryName(); /** @@ -72,7 +72,7 @@ public interface ActionDelegate { * * @return repository url. */ - @Nonnull + @NotNull String getRepositoryUrl(); /** @@ -81,10 +81,10 @@ public interface ActionDelegate { * @param repositories * available repositories */ - void setRepositories(@Nonnull List repositories); + void setRepositories(@NotNull List repositories); /** @return local branch */ - @Nonnull + @NotNull String getLocalBranch(); /** @@ -93,10 +93,10 @@ public interface ActionDelegate { * @param branches * local branches */ - void setLocalBranches(@Nonnull List branches); + void setLocalBranches(@NotNull List branches); /** @return remote branches */ - @Nonnull + @NotNull String getRemoteBranch(); /** @@ -105,21 +105,21 @@ public interface ActionDelegate { * @param branches * remote branches */ - void setRemoteBranches(@Nonnull List branches); + void setRemoteBranches(@NotNull List branches); /** * Selects pointed local branch * * @param branch local branch to select */ - void selectLocalBranch(@Nonnull String branch); + void selectLocalBranch(@NotNull String branch); /** * Selects pointed remote branch * * @param branch remote branch to select */ - void selectRemoteBranch(@Nonnull String branch); + void selectRemoteBranch(@NotNull String branch); /** * Change the enable state of the push button. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchViewImpl.java index 712fc1814..22eafc0d1 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/fetch/FetchViewImpl.java @@ -30,7 +30,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -112,7 +112,7 @@ public void setRemoveDeleteRefs(boolean isRemoveDeleteRefs) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRepositoryName() { int index = repository.getSelectedIndex(); @@ -120,7 +120,7 @@ public String getRepositoryName() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRepositoryUrl() { int index = repository.getSelectedIndex(); @@ -129,7 +129,7 @@ public String getRepositoryUrl() { /** {@inheritDoc} */ @Override - public void setRepositories(@Nonnull List repositories) { + public void setRepositories(@NotNull List repositories) { this.repository.clear(); for (int i = 0; i < repositories.size(); i++) { Remote repository = repositories.get(i); @@ -138,7 +138,7 @@ public void setRepositories(@Nonnull List repositories) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getLocalBranch() { int index = localBranch.getSelectedIndex(); @@ -147,7 +147,7 @@ public String getLocalBranch() { /** {@inheritDoc} */ @Override - public void setLocalBranches(@Nonnull List branches) { + public void setLocalBranches(@NotNull List branches) { this.localBranch.clear(); for (String branch : branches) { this.localBranch.addItem(branch); @@ -155,7 +155,7 @@ public void setLocalBranches(@Nonnull List branches) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRemoteBranch() { int index = remoteBranch.getSelectedIndex(); @@ -164,7 +164,7 @@ public String getRemoteBranch() { /** {@inheritDoc} */ @Override - public void setRemoteBranches(@Nonnull List branches) { + public void setRemoteBranches(@NotNull List branches) { this.remoteBranch.clear(); for (String branch : branches) { this.remoteBranch.addItem(branch); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java index a8ffa84a5..c7de71017 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java @@ -40,8 +40,8 @@ import org.eclipse.che.ide.rest.StringUnmarshaller; import org.vectomatic.dom.svg.ui.SVGResource; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -148,7 +148,7 @@ public void showDialog() { } /** Get the log of the commits. If successfully received, then display in revision grid, otherwise - show error in output panel. */ - private void getCommitsLog(@Nonnull ProjectDescriptor project) { + private void getCommitsLog(@NotNull ProjectDescriptor project) { service.log(project, false, new AsyncRequestCallback(dtoUnmarshallerFactory.newUnmarshaller(LogResponse.class)) { @Override @@ -285,7 +285,7 @@ public void onDiffWithPrevCommitClicked() { /** {@inheritDoc} */ @Override - public void onRevisionSelected(@Nonnull Revision revision) { + public void onRevisionSelected(@NotNull Revision revision) { selectedRevision = revision; update(); } @@ -336,7 +336,7 @@ private void getDiff() { * @param isCached * if true compare with index, else - with working tree */ - private void doDiffWithNotCommitted(@Nonnull List filePatterns, @Nullable final Revision revision, final boolean isCached) { + private void doDiffWithNotCommitted(@NotNull List filePatterns, @Nullable final Revision revision, final boolean isCached) { if (revision == null) { return; } @@ -370,7 +370,7 @@ protected void onFailure(Throwable exception) { * @param revisionB * selected commit */ - private void doDiffWithPrevVersion(@Nonnull List filePatterns, @Nullable final Revision revisionB) { + private void doDiffWithPrevVersion(@NotNull List filePatterns, @Nullable final Revision revisionB) { if (revisionB == null) { return; } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryView.java index dd602f0fe..e47d7445d 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryView.java @@ -14,7 +14,7 @@ import org.eclipse.che.ide.api.mvp.View; import org.eclipse.che.ide.api.parts.base.BaseActionDelegate; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -49,7 +49,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param revision * selected revision */ - void onRevisionSelected(@Nonnull Revision revision); + void onRevisionSelected(@NotNull Revision revision); } /** @@ -58,7 +58,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param revisions * git revisions */ - void setRevisions(@Nonnull List revisions); + void setRevisions(@NotNull List revisions); /** * Change the selected state of the changes in project button. @@ -106,7 +106,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param date * commit A date */ - void setCommitADate(@Nonnull String date); + void setCommitADate(@NotNull String date); /** * Set commit B date into view. @@ -114,7 +114,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param date * commit B date */ - void setCommitBDate(@Nonnull String date); + void setCommitBDate(@NotNull String date); /** * Set commit A revision into view. @@ -122,7 +122,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param revision * commit A revision */ - void setCommitARevision(@Nonnull String revision); + void setCommitARevision(@NotNull String revision); /** * Set commit B revision into view. @@ -130,7 +130,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param revision * commit B revision */ - void setCommitBRevision(@Nonnull String revision); + void setCommitBRevision(@NotNull String revision); /** * Set compare type into view. @@ -138,7 +138,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param type * compare type */ - void setCompareType(@Nonnull String type); + void setCompareType(@NotNull String type); /** * Set diff context into view. @@ -146,7 +146,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param diffContext * diff between different commits */ - void setDiffContext(@Nonnull String diffContext); + void setDiffContext(@NotNull String diffContext); /** * Change the visible state of the commit B panel. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryViewImpl.java index b8052bd2d..d2da8a17d 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryViewImpl.java @@ -14,7 +14,7 @@ import java.util.Date; import java.util.List; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant; import org.eclipse.che.api.git.shared.Revision; @@ -204,7 +204,7 @@ public void onSelectionChange(SelectionChangeEvent event) { /** {@inheritDoc} */ @Override - public void setRevisions(@Nonnull List revisions) { + public void setRevisions(@NotNull List revisions) { // Wraps Array in java.util.List List list = new ArrayList<>(); for (Revision revision : revisions) { @@ -245,37 +245,37 @@ public void selectDiffWithPrevVersionButton(boolean selected) { /** {@inheritDoc} */ @Override - public void setCommitADate(@Nonnull String date) { + public void setCommitADate(@NotNull String date) { commitADate.setText(date); } /** {@inheritDoc} */ @Override - public void setCommitBDate(@Nonnull String date) { + public void setCommitBDate(@NotNull String date) { commitBDate.setText(date); } /** {@inheritDoc} */ @Override - public void setCommitARevision(@Nonnull String revision) { + public void setCommitARevision(@NotNull String revision) { commitARevision.setText(revision); } /** {@inheritDoc} */ @Override - public void setCommitBRevision(@Nonnull String revision) { + public void setCommitBRevision(@NotNull String revision) { commitBRevision.setText(revision); } /** {@inheritDoc} */ @Override - public void setCompareType(@Nonnull String type) { + public void setCompareType(@NotNull String type) { compareType.setHTML(type); } /** {@inheritDoc} */ @Override - public void setDiffContext(@Nonnull String diffContext) { + public void setDiffContext(@NotNull String diffContext) { if (this.hightlighter == null) { this.delayedDiffContext = diffContext; } else { diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/GitImportWizardRegistrar.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/GitImportWizardRegistrar.java index 4f50969e2..412bad9e5 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/GitImportWizardRegistrar.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/GitImportWizardRegistrar.java @@ -18,7 +18,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -37,12 +37,12 @@ public GitImportWizardRegistrar(Provider provider) { wizardPages.add(provider); } - @Nonnull + @NotNull public String getImporterId() { return ID; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java index 56d09c26b..fae20557d 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPagePresenter.java @@ -19,7 +19,7 @@ import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.inject.Inject; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.HashMap; import java.util.Map; @@ -61,7 +61,7 @@ public boolean isCompleted() { } @Override - public void projectNameChanged(@Nonnull String name) { + public void projectNameChanged(@NotNull String name) { dataObject.getProject().setName(name); updateDelegate.updateControls(); @@ -77,7 +77,7 @@ private void validateProjectName() { } @Override - public void projectUrlChanged(@Nonnull String url) { + public void projectUrlChanged(@NotNull String url) { dataObject.getSource().getProject().setLocation(url); isGitUrlCorrect(url); @@ -94,7 +94,7 @@ public void projectUrlChanged(@Nonnull String url) { } @Override - public void projectDescriptionChanged(@Nonnull String projectDescription) { + public void projectDescriptionChanged(@NotNull String projectDescription) { dataObject.getProject().setDescription(projectDescription); updateDelegate.updateControls(); } @@ -137,7 +137,7 @@ public void keepDirectorySelected(boolean keepDirectory) { } @Override - public void keepDirectoryNameChanged(@Nonnull String directoryName) { + public void keepDirectoryNameChanged(@NotNull String directoryName) { if (view.keepDirectory()) { projectParameters().put("keepDirectory", directoryName); dataObject.getProject().setContentRoot(view.getDirectoryName()); @@ -152,7 +152,7 @@ public void keepDirectoryNameChanged(@Nonnull String directoryName) { } @Override - public void go(@Nonnull AcceptsOneWidget container) { + public void go(@NotNull AcceptsOneWidget container) { container.setWidget(view); view.setProjectName(dataObject.getProject().getName()); @@ -170,7 +170,7 @@ public void go(@Nonnull AcceptsOneWidget container) { } /** Gets project name from uri. */ - private String extractProjectNameFromUri(@Nonnull String uri) { + private String extractProjectNameFromUri(@NotNull String uri) { int indexFinishProjectName = uri.lastIndexOf("."); int indexStartProjectName = uri.lastIndexOf("/") != -1 ? uri.lastIndexOf("/") + 1 : (uri.lastIndexOf(":") + 1); @@ -190,7 +190,7 @@ private String extractProjectNameFromUri(@Nonnull String uri) { * url for validate * @return true if url is correct */ - private boolean isGitUrlCorrect(@Nonnull String url) { + private boolean isGitUrlCorrect(@NotNull String url) { if (WHITE_SPACE.test(url)) { view.showUrlError(locale.importProjectMessageStartWithWhiteSpace()); return false; diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPageView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPageView.java index d5dc2aa61..67dde6a1b 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPageView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/importer/page/GitImporterPageView.java @@ -13,7 +13,7 @@ import org.eclipse.che.ide.api.mvp.View; import com.google.inject.ImplementedBy; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * @author Roman Nikitenko @@ -23,13 +23,13 @@ public interface GitImporterPageView extends View openedEditors) { * result of merge operation * @return {@link String} merge result message */ - @Nonnull - private String formMergeMessage(@Nonnull MergeResult mergeResult) { + @NotNull + private String formMergeMessage(@NotNull MergeResult mergeResult) { if (mergeResult.getMergeStatus().equals(ALREADY_UP_TO_DATE)) { return mergeResult.getMergeStatus().getValue(); } @@ -241,7 +241,7 @@ private String formMergeMessage(@Nonnull MergeResult mergeResult) { /** {@inheritDoc} */ @Override - public void onReferenceSelected(@Nonnull Reference reference) { + public void onReferenceSelected(@NotNull Reference reference) { selectedReference = reference; String displayName = selectedReference.getDisplayName(); boolean isEnabled = !displayName.equals(LOCAL_BRANCHES_TITLE) && !displayName.equals(REMOTE_BRANCHES_TITLE); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeView.java index e3cb27700..1cd78cf78 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeView.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -35,7 +35,7 @@ public interface ActionDelegate { * @param reference * selected reference */ - void onReferenceSelected(@Nonnull Reference reference); + void onReferenceSelected(@NotNull Reference reference); } /** @@ -44,7 +44,7 @@ public interface ActionDelegate { * @param references * local branches */ - void setLocalBranches(@Nonnull List references); + void setLocalBranches(@NotNull List references); /** * Set remote branches. @@ -52,7 +52,7 @@ public interface ActionDelegate { * @param references * remote branches */ - void setRemoteBranches(@Nonnull List references); + void setRemoteBranches(@NotNull List references); /** * Change the enable state of the merge button. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeViewImpl.java index 401afdd63..e2090fe6b 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergeViewImpl.java @@ -30,7 +30,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -173,14 +173,14 @@ public void onClick(ClickEvent event) { /** {@inheritDoc} */ @Override - public void setLocalBranches(@Nonnull List references) { + public void setLocalBranches(@NotNull List references) { localBranch.setBranches(references); this.references.renderTree(0); } /** {@inheritDoc} */ @Override - public void setRemoteBranches(@Nonnull List references) { + public void setRemoteBranches(@NotNull List references) { remoteBranch.setBranches(references); this.references.renderTree(0); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java index b73faabc5..84d27445d 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java @@ -33,7 +33,7 @@ import com.google.inject.Singleton; import com.google.web.bindery.event.shared.EventBus; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -128,7 +128,7 @@ protected void onFailure(Throwable exception) { * @param remoteMode * is a remote mode */ - private void getBranches(@Nonnull final String remoteMode) { + private void getBranches(@NotNull final String remoteMode) { gitServiceClient.branchList(project.getRootProject(), remoteMode, new AsyncRequestCallback>(dtoUnmarshallerFactory.newListUnmarshaller(Branch.class)) { @Override @@ -207,7 +207,7 @@ private void refreshProject(final List openedEditors) { } /** @return list of refs to fetch */ - @Nonnull + @NotNull private String getRefs() { String remoteName = view.getRepositoryName(); String localBranch = view.getLocalBranch(); @@ -223,7 +223,7 @@ private String getRefs() { * @param throwable * exception what happened */ - private void handleError(@Nonnull Throwable throwable, @Nonnull String remoteUrl) { + private void handleError(@NotNull Throwable throwable, @NotNull String remoteUrl) { String errorMessage = throwable.getMessage(); if (errorMessage == null) { notificationManager.showError(constant.pullFail(remoteUrl)); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullView.java index daed9851d..e15c3c6fa 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullView.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.git.shared.Remote; import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -39,7 +39,7 @@ public interface ActionDelegate { * * @return repository name. */ - @Nonnull + @NotNull String getRepositoryName(); /** @@ -47,7 +47,7 @@ public interface ActionDelegate { * * @return repository url. */ - @Nonnull + @NotNull String getRepositoryUrl(); /** @@ -56,10 +56,10 @@ public interface ActionDelegate { * @param repositories * available repositories */ - void setRepositories(@Nonnull List repositories); + void setRepositories(@NotNull List repositories); /** @return local branch */ - @Nonnull + @NotNull String getLocalBranch(); /** @@ -67,14 +67,14 @@ public interface ActionDelegate { * * @param branch local branch to select */ - void selectLocalBranch(@Nonnull String branch); + void selectLocalBranch(@NotNull String branch); /** * Selects pointed remote branch * * @param branch remote branch to select */ - void selectRemoteBranch(@Nonnull String branch); + void selectRemoteBranch(@NotNull String branch); /** * Set local branches into view. @@ -82,10 +82,10 @@ public interface ActionDelegate { * @param branches * local branches */ - void setLocalBranches(@Nonnull List branches); + void setLocalBranches(@NotNull List branches); /** @return remote branches */ - @Nonnull + @NotNull String getRemoteBranch(); /** @@ -94,7 +94,7 @@ public interface ActionDelegate { * @param branches * remote branches */ - void setRemoteBranches(@Nonnull List branches); + void setRemoteBranches(@NotNull List branches); /** * Change the enable state of the push button. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullViewImpl.java index a049438d3..34024b749 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullViewImpl.java @@ -28,7 +28,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -94,7 +94,7 @@ public void onClick(ClickEvent event) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRepositoryName() { int index = repository.getSelectedIndex(); @@ -102,7 +102,7 @@ public String getRepositoryName() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRepositoryUrl() { int index = repository.getSelectedIndex(); @@ -111,7 +111,7 @@ public String getRepositoryUrl() { /** {@inheritDoc} */ @Override - public void setRepositories(@Nonnull List repositories) { + public void setRepositories(@NotNull List repositories) { this.repository.clear(); for (Remote repository : repositories) { this.repository.addItem(repository.getName(), repository.getUrl()); @@ -119,7 +119,7 @@ public void setRepositories(@Nonnull List repositories) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getLocalBranch() { int index = localBranch.getSelectedIndex(); @@ -128,7 +128,7 @@ public String getLocalBranch() { /** {@inheritDoc} */ @Override - public void setLocalBranches(@Nonnull List branches) { + public void setLocalBranches(@NotNull List branches) { this.localBranch.clear(); for (String branch : branches) { this.localBranch.addItem(branch); @@ -136,7 +136,7 @@ public void setLocalBranches(@Nonnull List branches) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRemoteBranch() { int index = remoteBranch.getSelectedIndex(); @@ -145,7 +145,7 @@ public String getRemoteBranch() { /** {@inheritDoc} */ @Override - public void setRemoteBranches(@Nonnull List branches) { + public void setRemoteBranches(@NotNull List branches) { this.remoteBranch.clear(); for (String branch : branches) { this.remoteBranch.addItem(branch); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemotePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemotePresenter.java index 8fb5c1ab0..626e17787 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemotePresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemotePresenter.java @@ -31,7 +31,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -240,7 +240,7 @@ protected void onFailure(Throwable exception) { * @param remoteMode * is a remote mode */ - void getBranchesForCurrentProject(@Nonnull final String remoteMode, + void getBranchesForCurrentProject(@NotNull final String remoteMode, final AsyncCallback> asyncResult) { service.branchList(project.getRootProject(), remoteMode, @@ -278,7 +278,7 @@ protected void onFailure(Throwable exception) { } /** @return list of refs to push */ - @Nonnull + @NotNull private List getRefs() { String localBranch = view.getLocalBranch(); String remoteBranch = view.getRemoteBranch(); @@ -309,7 +309,7 @@ public void onRepositoryChanged() { * @param throwable * exception what happened */ - void handleError(@Nonnull Throwable throwable) { + void handleError(@NotNull Throwable throwable) { if (throwable instanceof UnauthorizedException) { notificationManager.showError(constant.messagesNotAuthorized()); return; diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteView.java index 2bd85a3d7..0d3a50ee2 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteView.java @@ -14,7 +14,7 @@ import org.eclipse.che.ide.api.mvp.View; import java.util.List; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The view of {@link PushToRemotePresenter}. @@ -43,7 +43,7 @@ public interface ActionDelegate { * * @return repository. */ - @Nonnull + @NotNull String getRepository(); /** @@ -52,10 +52,10 @@ public interface ActionDelegate { * @param repositories * available repositories */ - void setRepositories(@Nonnull List repositories); + void setRepositories(@NotNull List repositories); /** @return local branch */ - @Nonnull + @NotNull String getLocalBranch(); /** @@ -64,10 +64,10 @@ public interface ActionDelegate { * @param branches * local branches */ - void setLocalBranches(@Nonnull List branches); + void setLocalBranches(@NotNull List branches); /** @return remote branches */ - @Nonnull + @NotNull String getRemoteBranch(); /** @@ -76,7 +76,7 @@ public interface ActionDelegate { * @param branches * remote branches */ - void setRemoteBranches(@Nonnull List branches); + void setRemoteBranches(@NotNull List branches); /** * Add remote branch into view. @@ -85,7 +85,7 @@ public interface ActionDelegate { * remote branch * @return {@code true} if branch added and {@code false} if branch already exist */ - boolean addRemoteBranch(@Nonnull String branch); + boolean addRemoteBranch(@NotNull String branch); /** * Selects pointed local branch @@ -93,7 +93,7 @@ public interface ActionDelegate { * @param branch * local branch to select */ - void selectLocalBranch(@Nonnull String branch); + void selectLocalBranch(@NotNull String branch); /** * Selects pointed remote branch @@ -101,7 +101,7 @@ public interface ActionDelegate { * @param branch * remote branch to select */ - void selectRemoteBranch(@Nonnull String branch); + void selectRemoteBranch(@NotNull String branch); /** * Change the enable state of the push button. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteViewImpl.java index 99bf91968..c46a23409 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/push/PushToRemoteViewImpl.java @@ -27,7 +27,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -88,7 +88,7 @@ public void onClick(ClickEvent event) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRepository() { int index = repository.getSelectedIndex(); @@ -97,7 +97,7 @@ public String getRepository() { /** {@inheritDoc} */ @Override - public void setRepositories(@Nonnull List repositories) { + public void setRepositories(@NotNull List repositories) { this.repository.clear(); for (int i = 0; i < repositories.size(); i++) { Remote repository = repositories.get(i); @@ -106,7 +106,7 @@ public void setRepositories(@Nonnull List repositories) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getLocalBranch() { int index = localBranch.getSelectedIndex(); @@ -115,7 +115,7 @@ public String getLocalBranch() { /** {@inheritDoc} */ @Override - public void setLocalBranches(@Nonnull List branches) { + public void setLocalBranches(@NotNull List branches) { this.localBranch.clear(); for (int i = 0; i < branches.size(); i++) { String branch = branches.get(i); @@ -124,7 +124,7 @@ public void setLocalBranches(@Nonnull List branches) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getRemoteBranch() { int index = remoteBranch.getSelectedIndex(); @@ -133,7 +133,7 @@ public String getRemoteBranch() { /** {@inheritDoc} */ @Override - public void setRemoteBranches(@Nonnull List branches) { + public void setRemoteBranches(@NotNull List branches) { this.remoteBranch.clear(); for (int i = 0; i < branches.size(); i++) { String branch = branches.get(i); @@ -142,7 +142,7 @@ public void setRemoteBranches(@Nonnull List branches) { } @Override - public boolean addRemoteBranch(@Nonnull String branch) { + public boolean addRemoteBranch(@NotNull String branch) { for (int i = 0; i < remoteBranch.getItemCount(); ++i) { if (branch.equals(remoteBranch.getItemText(i))) { return false; @@ -188,7 +188,7 @@ public void onRepositoryValueChanged(ChangeEvent event) { /** {@inheritDoc} */ @Override - public void selectLocalBranch(@Nonnull String branch) { + public void selectLocalBranch(@NotNull String branch) { for (int i = 0; i < localBranch.getItemCount(); i++) { if (localBranch.getValue(i).equals(branch)) { localBranch.setItemSelected(i, true); @@ -200,7 +200,7 @@ public void selectLocalBranch(@Nonnull String branch) { /** {@inheritDoc} */ @Override - public void selectRemoteBranch(@Nonnull String branch) { + public void selectRemoteBranch(@NotNull String branch) { for (int i = 0; i < remoteBranch.getItemCount(); i++) { if (remoteBranch.getValue(i).equals(branch)) { remoteBranch.setItemSelected(i, true); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java index 2f7603234..2271a2fae 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java @@ -25,7 +25,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; @@ -154,12 +154,12 @@ protected void onFailure(Throwable exception) { * {@inheritDoc} */ @Override - public void onRemoteSelected(@Nonnull Remote remote) { + public void onRemoteSelected(@NotNull Remote remote) { selectedRemote = remote; view.setEnableDeleteButton(selectedRemote != null); } - private void handleError(@Nonnull String errorMessage) { + private void handleError(@NotNull String errorMessage) { Notification notification = new Notification(errorMessage, ERROR); notificationManager.showNotification(notification); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java index 4b104ee10..da079bc94 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.git.shared.Remote; import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -39,7 +39,7 @@ public interface ActionDelegate { * @param remote * selected Remote */ - void onRemoteSelected(@Nonnull Remote remote); + void onRemoteSelected(@NotNull Remote remote); } /** @@ -48,7 +48,7 @@ public interface ActionDelegate { * @param remotes * list of available remote repositories. */ - void setRemotes(@Nonnull List remotes); + void setRemotes(@NotNull List remotes); /** * Change the enable state of the delete button. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java index 2c2596ad0..02cbf922e 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java @@ -35,7 +35,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -163,7 +163,7 @@ public void onSelectionChange(SelectionChangeEvent event) { /** {@inheritDoc} */ @Override - public void setRemotes(@Nonnull List remotes) { + public void setRemotes(@NotNull List remotes) { // Wraps Array in java.util.List List list = new ArrayList<>(); for (Remote remote : remotes) { diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryPresenter.java index 606a4efa9..59e2caf3d 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryPresenter.java @@ -18,7 +18,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Presenter for adding remote repository. @@ -48,7 +48,7 @@ public AddRemoteRepositoryPresenter(AddRemoteRepositoryView view, GitServiceClie } /** Show dialog. */ - public void showDialog(@Nonnull AsyncCallback callback) { + public void showDialog(@NotNull AsyncCallback callback) { this.callback = callback; view.setUrl(""); view.setName(""); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryView.java index 24f0abb02..3d6f18251 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryView.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The view of {@link AddRemoteRepositoryPresenter}. @@ -33,7 +33,7 @@ public interface ActionDelegate { } /** @return repository name */ - @Nonnull + @NotNull String getName(); /** @@ -42,10 +42,10 @@ public interface ActionDelegate { * @param name * repository name */ - void setName(@Nonnull String name); + void setName(@NotNull String name); /** @return repository url */ - @Nonnull + @NotNull String getUrl(); /** @@ -54,7 +54,7 @@ public interface ActionDelegate { * @param url * repository url */ - void setUrl(@Nonnull String url); + void setUrl(@NotNull String url); /** * Change the enable state of the ok button. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryViewImpl.java index 08762ad35..c9d8806d4 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/add/AddRemoteRepositoryViewImpl.java @@ -26,7 +26,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The implementation of {@link AddRemoteRepositoryView}. @@ -89,7 +89,7 @@ public void onClick(ClickEvent event) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getName() { return name.getText(); @@ -97,12 +97,12 @@ public String getName() { /** {@inheritDoc} */ @Override - public void setName(@Nonnull String name) { + public void setName(@NotNull String name) { this.name.setText(name); } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getUrl() { return url.getText(); @@ -110,7 +110,7 @@ public String getUrl() { /** {@inheritDoc} */ @Override - public void setUrl(@Nonnull String url) { + public void setUrl(@NotNull String url) { this.url.setText(url); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexPresenter.java index 6d4338279..f81bd7dcc 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexPresenter.java @@ -33,8 +33,8 @@ import org.eclipse.che.ide.project.node.ResourceBasedNode; import org.eclipse.che.ide.rest.AsyncRequestCallback; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -105,8 +105,8 @@ public void showDialog() { * * @return {@link String} message to display */ - @Nonnull - private String formMessage(@Nonnull String workDir) { + @NotNull + private String formMessage(@NotNull String workDir) { Selection> selection = (Selection>)selectionAgent.getSelection(); String path; @@ -208,7 +208,7 @@ protected boolean isResourceAndStorableNode(@Nullable Node node) { * * @return pattern of the items to be removed */ - @Nonnull + @NotNull private List getFilePatterns() { Selection> selection = (Selection>)selectionAgent.getSelection(); String path; @@ -231,7 +231,7 @@ private List getFilePatterns() { * @param e * exception what happened */ - private void handleError(@Nonnull Throwable e) { + private void handleError(@NotNull Throwable e) { String errorMessage = (e.getMessage() != null && !e.getMessage().isEmpty()) ? e.getMessage() : constant.removeFilesFailed(); Notification notification = new Notification(errorMessage, ERROR); notificationManager.showNotification(notification); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexView.java index 17c7bedd4..ac713581c 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexView.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The view of {@link RemoveFromIndexPresenter}. @@ -36,7 +36,7 @@ interface ActionDelegate { * @param message * content of message */ - void setMessage(@Nonnull String message); + void setMessage(@NotNull String message); /** @return true if files need to remove only from index, and false otherwise */ boolean isRemoved(); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexViewImpl.java index 63f69dbd5..fb23617b2 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remove/RemoveFromIndexViewImpl.java @@ -25,7 +25,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The implementation of {@link RemoveFromIndexView}. @@ -89,7 +89,7 @@ public void onClick(ClickEvent event) { /** {@inheritDoc} */ @Override - public void setMessage(@Nonnull String message) { + public void setMessage(@NotNull String message) { this.message.getElement().setInnerHTML(message); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java index 11e9913f5..7e44301cd 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java @@ -29,7 +29,7 @@ import com.google.inject.Singleton; import com.google.web.bindery.event.shared.EventBus; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -127,7 +127,7 @@ public void onCancelClicked() { * {@inheritDoc} */ @Override - public void onRevisionSelected(@Nonnull Revision revision) { + public void onRevisionSelected(@NotNull Revision revision) { selectedRevision = revision; view.setEnableResetButton(selectedRevision != null); } diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitView.java index e4364120b..af3b8d906 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitView.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.git.shared.Revision; import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -36,7 +36,7 @@ public interface ActionDelegate { * @param revision * selected revision */ - void onRevisionSelected(@Nonnull Revision revision); + void onRevisionSelected(@NotNull Revision revision); } /** @@ -45,7 +45,7 @@ public interface ActionDelegate { * @param revisions * git revisions */ - void setRevisions(@Nonnull List revisions); + void setRevisions(@NotNull List revisions); /** @return true if soft mode is chosen, and false otherwise */ boolean isSoftMode(); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitViewImpl.java index 3e552b9f6..dbab6c7b2 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitViewImpl.java @@ -34,7 +34,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Date; @@ -199,7 +199,7 @@ public void onSelectionChange(SelectionChangeEvent event) { /** {@inheritDoc} */ @Override - public void setRevisions(@Nonnull List revisions) { + public void setRevisions(@NotNull List revisions) { // Wraps Array in java.util.List List list = new ArrayList(); for (int i = 0; i < revisions.size(); i++) { diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesView.java index 1bd4f7d01..10e8e1ef4 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesView.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.git.shared.IndexFile; import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -39,7 +39,7 @@ public interface ActionDelegate { * @param indexedFiles * indexed files */ - void setIndexedFiles(@Nonnull List indexedFiles); + void setIndexedFiles(@NotNull List indexedFiles); /** Close dialog. */ void close(); diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesViewImpl.java index 2663d4d9d..bbbf4f204 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/files/ResetFilesViewImpl.java @@ -32,7 +32,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -143,7 +143,7 @@ public String asString() { /** {@inheritDoc} */ @Override - public void setIndexedFiles(@Nonnull List indexedFiles) { + public void setIndexedFiles(@NotNull List indexedFiles) { // Wraps Array in java.util.List List appList = new ArrayList<>(); for (IndexFile indexedFile : indexedFiles) { diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlView.java index d0bcfb891..aa889aeee 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlView.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlView.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.git.shared.Remote; import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -34,7 +34,7 @@ public interface ActionDelegate { * @param url * text what will be shown on view */ - void setLocaleUrl(@Nonnull String url); + void setLocaleUrl(@NotNull String url); /** * Set project remote URL into field on the view. diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlViewImpl.java index 19355858d..57cbcb34a 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlViewImpl.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/url/ShowProjectGitReadOnlyUrlViewImpl.java @@ -29,7 +29,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -93,7 +93,7 @@ public void onClick(ClickEvent event) { /** {@inheritDoc} */ @Override - public void setLocaleUrl(@Nonnull String url) { + public void setLocaleUrl(@NotNull String url) { localUrl.setText(url); } diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index 6df9c80f9..649fc91a9 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -30,11 +30,6 @@ jackson-databind ${com.fasterxml.jackson.core.version} - - com.google.code.findbugs - jsr305 - ${javax.jcr350.version} - javax.validation validation-api diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientService.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientService.java index 0afcbca28..d0036ccbb 100644 --- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientService.java +++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientService.java @@ -21,7 +21,7 @@ import org.eclipse.che.ide.ext.github.shared.GitHubUser; import org.eclipse.che.ide.rest.AsyncRequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Map; @@ -42,7 +42,7 @@ public interface GitHubClientService { * @param callback * callback called when operation is done. */ - void getRepository(@Nonnull String user, @Nonnull String repository, @Nonnull AsyncRequestCallback callback); + void getRepository(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); /** * Get list of available public and private repositories of the authorized user. @@ -50,7 +50,7 @@ public interface GitHubClientService { * @param callback * callback called when operation is done. */ - void getRepositoriesList(@Nonnull AsyncRequestCallback callback); + void getRepositoriesList(@NotNull AsyncRequestCallback callback); /** * Get list of forks for given repository @@ -62,7 +62,7 @@ public interface GitHubClientService { * @param callback * callback called when operation is done. */ - void getForks(@Nonnull String user, @Nonnull String repository, @Nonnull AsyncRequestCallback callback); + void getForks(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); /** * Fork the given repository for the authorized user. @@ -74,7 +74,7 @@ public interface GitHubClientService { * @param callback * callback called when operation is done. */ - void fork(@Nonnull String user, @Nonnull String repository, @Nonnull AsyncRequestCallback callback); + void fork(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); /** * Add a comment to the issue on the given repository. @@ -90,8 +90,8 @@ public interface GitHubClientService { * @param callback * callback called when operation is done. */ - void commentIssue(@Nonnull String user, @Nonnull String repository, @Nonnull String issue, @Nonnull GitHubIssueCommentInput input, - @Nonnull AsyncRequestCallback callback); + void commentIssue(@NotNull String user, @NotNull String repository, @NotNull String issue, @NotNull GitHubIssueCommentInput input, + @NotNull AsyncRequestCallback callback); /** * Get pull requests for given repository. @@ -103,7 +103,7 @@ void commentIssue(@Nonnull String user, @Nonnull String repository, @Nonnull Str * @param callback * callback called when operation is done. */ - void getPullRequests(@Nonnull String owner, @Nonnull String repository, @Nonnull AsyncRequestCallback callback); + void getPullRequests(@NotNull String owner, @NotNull String repository, @NotNull AsyncRequestCallback callback); /** * Get a pull request by id for a given repository. @@ -113,10 +113,10 @@ void commentIssue(@Nonnull String user, @Nonnull String repository, @Nonnull Str * @param pullRequestId the Id of the pull request * @param callback the callback with either the pull request as argument or null if it doesn't exist */ - void getPullRequest(@Nonnull String owner, - @Nonnull String repository, - @Nonnull String pullRequestId, - @Nonnull AsyncRequestCallback callback); + void getPullRequest(@NotNull String owner, + @NotNull String repository, + @NotNull String pullRequestId, + @NotNull AsyncRequestCallback callback); /** * Create a pull request on origin repository @@ -130,8 +130,8 @@ void getPullRequest(@Nonnull String owner, * @param callback * callback called when operation is done. */ - void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnull GitHubPullRequestCreationInput input, - @Nonnull AsyncRequestCallback callback); + void createPullRequest(@NotNull String user, @NotNull String repository, @NotNull GitHubPullRequestCreationInput input, + @NotNull AsyncRequestCallback callback); /** * Get the list of available public repositories for a GitHub user. @@ -141,7 +141,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getRepositoriesByUser(String userName, @Nonnull AsyncRequestCallback callback); + void getRepositoriesByUser(String userName, @NotNull AsyncRequestCallback callback); /** * Get the list of available repositories by GitHub organization. @@ -151,7 +151,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getRepositoriesByOrganization(String organization, @Nonnull AsyncRequestCallback callback); + void getRepositoriesByOrganization(String organization, @NotNull AsyncRequestCallback callback); /** * Get list of available public repositories for GitHub account. @@ -161,7 +161,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getRepositoriesByAccount(String account, @Nonnull AsyncRequestCallback callback); + void getRepositoriesByAccount(String account, @NotNull AsyncRequestCallback callback); /** * Get list of collaborators of GitHub repository. For detail see GitHub REST API http://developer.github.com/v3/repos/collaborators/. @@ -173,7 +173,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getCollaborators(@Nonnull String user, @Nonnull String repository, @Nonnull AsyncRequestCallback callback); + void getCollaborators(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback); /** * Get the GitHub oAuth token for the pointed user. @@ -183,7 +183,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getUserToken(@Nonnull String user, @Nonnull AsyncRequestCallback callback); + void getUserToken(@NotNull String user, @NotNull AsyncRequestCallback callback); /** * Get the map of available public and private repositories of the authorized user and organizations he exists in. @@ -191,7 +191,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getAllRepositories(@Nonnull AsyncRequestCallback>> callback); + void getAllRepositories(@NotNull AsyncRequestCallback>> callback); /** * Get the list of the organizations, where authorized user is a member. @@ -199,7 +199,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getOrganizations(@Nonnull AsyncRequestCallback> callback); + void getOrganizations(@NotNull AsyncRequestCallback> callback); /** * Get authorized user information. @@ -207,7 +207,7 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void getUserInfo(@Nonnull AsyncRequestCallback callback); + void getUserInfo(@NotNull AsyncRequestCallback callback); /** * Generate and upload new public key if not exist on github.com. @@ -215,5 +215,5 @@ void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnul * @param callback * callback called when operation is done. */ - void updatePublicKey(@Nonnull AsyncRequestCallback callback); + void updatePublicKey(@NotNull AsyncRequestCallback callback); } \ No newline at end of file diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientServiceImpl.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientServiceImpl.java index 1c2e14d01..d3d210c42 100644 --- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientServiceImpl.java +++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/GitHubClientServiceImpl.java @@ -27,7 +27,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Map; @@ -71,43 +71,43 @@ protected GitHubClientServiceImpl(@RestContext String baseUrl, } @Override - public void getRepository(@Nonnull String user, @Nonnull String repository, @Nonnull AsyncRequestCallback callback) { + 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); } /** {@inheritDoc} */ @Override - public void getRepositoriesList(@Nonnull AsyncRequestCallback callback) { + public void getRepositoriesList(@NotNull AsyncRequestCallback callback) { String url = baseUrl + LIST; asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getForks(@Nonnull String user, @Nonnull String repository, - @Nonnull AsyncRequestCallback callback) { + 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); } /** {@inheritDoc} */ @Override - public void fork(@Nonnull String user, @Nonnull String repository, @Nonnull AsyncRequestCallback callback) { + 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 void commentIssue(@Nonnull String user, @Nonnull String repository, @Nonnull String issue, - @Nonnull GitHubIssueCommentInput input, @Nonnull AsyncRequestCallback callback) { + public void commentIssue(@NotNull String user, @NotNull String repository, @NotNull String issue, + @NotNull GitHubIssueCommentInput input, @NotNull AsyncRequestCallback callback) { String url = baseUrl + ISSUE_COMMENTS + "/" + user + "/" + repository + "/" + issue; asyncRequestFactory.createPostRequest(url, input).loader(loader).send(callback); } @Override - public void getPullRequests(@Nonnull String owner, @Nonnull String repository, - @Nonnull AsyncRequestCallback callback) { + 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); } @@ -121,15 +121,15 @@ public void getPullRequest(final String owner, final String repository, final St /** {@inheritDoc} */ @Override - public void createPullRequest(@Nonnull String user, @Nonnull String repository, @Nonnull GitHubPullRequestCreationInput input, - @Nonnull AsyncRequestCallback callback) { + 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); } /** {@inheritDoc} */ @Override - public void getRepositoriesByUser(String userName, @Nonnull AsyncRequestCallback callback) { + public void getRepositoriesByUser(String userName, @NotNull AsyncRequestCallback callback) { String params = (userName != null) ? "?username=" + userName : ""; String url = baseUrl + LIST_USER; asyncRequestFactory.createGetRequest(url + params).loader(loader).send(callback); @@ -137,42 +137,42 @@ public void getRepositoriesByUser(String userName, @Nonnull AsyncRequestCallback /** {@inheritDoc} */ @Override - public void getAllRepositories(@Nonnull AsyncRequestCallback>> callback) { + public void getAllRepositories(@NotNull AsyncRequestCallback>> callback) { String url = baseUrl + LIST_ALL; asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getCollaborators(@Nonnull String user, @Nonnull String repository, @Nonnull AsyncRequestCallback callback) { + public void getCollaborators(@NotNull String user, @NotNull String repository, @NotNull AsyncRequestCallback callback) { String url = baseUrl + COLLABORATORS + "/" + user + "/" + repository; asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getUserToken(@Nonnull String user, @Nonnull AsyncRequestCallback callback) { + public void getUserToken(@NotNull String user, @NotNull AsyncRequestCallback callback) { String url = baseUrl + TOKEN + "/" + user; asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getOrganizations(@Nonnull AsyncRequestCallback> callback) { + public void getOrganizations(@NotNull AsyncRequestCallback> callback) { String url = baseUrl + ORGANIZATIONS; asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getUserInfo(@Nonnull AsyncRequestCallback callback) { + public void getUserInfo(@NotNull AsyncRequestCallback callback) { String url = baseUrl + USER; asyncRequestFactory.createGetRequest(url).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getRepositoriesByOrganization(String organization, @Nonnull AsyncRequestCallback callback) { + public void getRepositoriesByOrganization(String organization, @NotNull AsyncRequestCallback callback) { String params = (organization != null) ? "?organization=" + organization : ""; String url = baseUrl + LIST_ORG; asyncRequestFactory.createGetRequest(url + params).loader(loader).send(callback); @@ -180,7 +180,7 @@ public void getRepositoriesByOrganization(String organization, @Nonnull AsyncReq /** {@inheritDoc} */ @Override - public void getRepositoriesByAccount(String account, @Nonnull AsyncRequestCallback callback) { + public void getRepositoriesByAccount(String account, @NotNull AsyncRequestCallback callback) { String params = (account != null) ? "?account=" + account : ""; String url = baseUrl + LIST_ACCOUNT; asyncRequestFactory.createGetRequest(url + params).loader(loader).send(callback); @@ -188,7 +188,7 @@ public void getRepositoriesByAccount(String account, @Nonnull AsyncRequestCallba /** {@inheritDoc} */ @Override - public void updatePublicKey(@Nonnull AsyncRequestCallback callback) { + public void updatePublicKey(@NotNull AsyncRequestCallback callback) { String url = baseUrl + SSH_GEN; asyncRequestFactory.createPostRequest(url, null).loader(loader).send(callback); } diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/authenticator/GitHubAuthenticatorImpl.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/authenticator/GitHubAuthenticatorImpl.java index 3adf63e65..381af8ff2 100644 --- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/authenticator/GitHubAuthenticatorImpl.java +++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/authenticator/GitHubAuthenticatorImpl.java @@ -29,7 +29,7 @@ import org.eclipse.che.security.oauth.OAuthStatus; import org.eclipse.che.ide.util.Config; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -70,7 +70,7 @@ public GitHubAuthenticatorImpl(SshKeyService sshKeyService, } @Override - public void authorize(@Nonnull final AsyncCallback callback) { + public void authorize(@NotNull final AsyncCallback callback) { this.callback = callback; view.showDialog(); } @@ -159,7 +159,7 @@ public void onFailure(Throwable exception) { * @param key * failed key */ - private void removeFailedKey(@Nonnull final KeyItem key) { + private void removeFailedKey(@NotNull final KeyItem key) { sshKeyService.deleteKey(key, new AsyncRequestCallback() { @Override public void onFailure(Throwable caught) { diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/GitHubImportWizardRegistrar.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/GitHubImportWizardRegistrar.java index cd6a16d0e..06f5a1a5e 100644 --- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/GitHubImportWizardRegistrar.java +++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/GitHubImportWizardRegistrar.java @@ -17,7 +17,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -36,12 +36,12 @@ public GitHubImportWizardRegistrar(Provider provide wizardPages.add(provider); } - @Nonnull + @NotNull public String getImporterId() { return ID; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java index 64f2c9975..601eb6eff 100644 --- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java +++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java @@ -30,7 +30,7 @@ import org.eclipse.che.ide.util.NameUtils; import org.eclipse.che.security.oauth.OAuthStatus; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -89,7 +89,7 @@ public boolean isCompleted() { } @Override - public void projectNameChanged(@Nonnull String name) { + public void projectNameChanged(@NotNull String name) { dataObject.getProject().setName(name); updateDelegate.updateControls(); @@ -108,7 +108,7 @@ private void validateProjectName() { } @Override - public void projectUrlChanged(@Nonnull String url) { + public void projectUrlChanged(@NotNull String url) { dataObject.getSource().getProject().setLocation(url); isGitUrlCorrect(url); @@ -125,7 +125,7 @@ public void projectUrlChanged(@Nonnull String url) { } @Override - public void projectDescriptionChanged(@Nonnull String projectDescription) { + public void projectDescriptionChanged(@NotNull String projectDescription) { dataObject.getProject().setDescription(projectDescription); updateDelegate.updateControls(); } @@ -166,7 +166,7 @@ public void keepDirectorySelected(boolean keepDirectory) { } @Override - public void keepDirectoryNameChanged(@Nonnull String directoryName) { + public void keepDirectoryNameChanged(@NotNull String directoryName) { if (view.keepDirectory()) { projectParameters().put("keepDirectory", directoryName); view.highlightDirectoryNameField(!NameUtils.checkProjectName(view.getDirectoryName())); @@ -177,7 +177,7 @@ public void keepDirectoryNameChanged(@Nonnull String directoryName) { } @Override - public void go(@Nonnull AcceptsOneWidget container) { + public void go(@NotNull AcceptsOneWidget container) { container.setWidget(view); updateView(); @@ -249,7 +249,7 @@ public void onSuccess(OAuthStatus result) { } @Override - public void onRepositorySelected(@Nonnull ProjectData repository) { + public void onRepositorySelected(@NotNull ProjectData repository) { dataObject.getProject().setName(repository.getName()); dataObject.getProject().setDescription(repository.getDescription()); dataObject.getSource().getProject().setLocation(repository.getRepositoryUrl()); @@ -270,7 +270,7 @@ public void onAccountChanged() { * @param repositories * loaded list of repositories */ - private void onListLoaded(@Nonnull Map> repositories) { + private void onListLoaded(@NotNull Map> repositories) { this.repositories = repositories; view.setAccountNames(repositories.keySet()); refreshProjectList(); @@ -318,7 +318,7 @@ private void showProcessing(boolean inProgress) { /** * Gets project name from uri. */ - private String extractProjectNameFromUri(@Nonnull String uri) { + private String extractProjectNameFromUri(@NotNull String uri) { int indexFinishProjectName = uri.lastIndexOf("."); int indexStartProjectName = uri.lastIndexOf("/") != -1 ? uri.lastIndexOf("/") + 1 : (uri.lastIndexOf(":") + 1); @@ -338,7 +338,7 @@ private String extractProjectNameFromUri(@Nonnull String uri) { * url for validate * @return true if url is correct */ - private boolean isGitUrlCorrect(@Nonnull String url) { + private boolean isGitUrlCorrect(@NotNull String url) { if (WHITE_SPACE.test(url)) { view.showUrlError(locale.importProjectMessageStartWithWhiteSpace()); return false; diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageView.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageView.java index 278688fea..a914960c9 100644 --- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageView.java +++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageView.java @@ -14,7 +14,7 @@ import org.eclipse.che.ide.ext.github.client.load.ProjectData; import com.google.inject.ImplementedBy; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Set; @@ -28,17 +28,17 @@ interface ActionDelegate { /** * Performs any actions appropriate in response to the user having changed the project's name. */ - void projectNameChanged(@Nonnull String name); + void projectNameChanged(@NotNull String name); /** * Performs any actions appropriate in response to the user having changed the project's URL. */ - void projectUrlChanged(@Nonnull String url); + void projectUrlChanged(@NotNull String url); /** * Performs any actions appropriate in response to the user having changed the project's description. */ - void projectDescriptionChanged(@Nonnull String projectDescriptionValue); + void projectDescriptionChanged(@NotNull String projectDescriptionValue); /** * Performs any actions appropriate in response to the user having changed the project's visibility. @@ -56,7 +56,7 @@ interface ActionDelegate { * @param repository * selected repository */ - void onRepositorySelected(@Nonnull ProjectData repository); + void onRepositorySelected(@NotNull ProjectData repository); /** * Performs any actions appropriate in response to the user having changed account field. @@ -67,7 +67,7 @@ interface ActionDelegate { void keepDirectorySelected(boolean keepDirectory); /** Perform actions when changing the name of a directory. */ - void keepDirectoryNameChanged(@Nonnull String url); + void keepDirectoryNameChanged(@NotNull String url); } /** @@ -83,7 +83,7 @@ interface ActionDelegate { /** * Show URL error. */ - void showUrlError(@Nonnull String message); + void showUrlError(@NotNull String message); /** * Hide URL error. @@ -96,7 +96,7 @@ interface ActionDelegate { * @param url * the project's URL to set */ - void setProjectUrl(@Nonnull String url); + void setProjectUrl(@NotNull String url); /** * Updates project visibility. @@ -110,7 +110,7 @@ interface ActionDelegate { * * @return {@link String} project's name */ - @Nonnull + @NotNull String getProjectName(); /** @@ -119,7 +119,7 @@ interface ActionDelegate { * @param projectName * project's name to set */ - void setProjectName(@Nonnull String projectName); + void setProjectName(@NotNull String projectName); /** * Set the project's description value. @@ -127,7 +127,7 @@ interface ActionDelegate { * @param projectDescription * project's description to set */ - void setProjectDescription(@Nonnull String projectDescription); + void setProjectDescription(@NotNull String projectDescription); /** * Focuses URL field. @@ -148,10 +148,10 @@ interface ActionDelegate { * @param repositories * available repositories */ - void setRepositories(@Nonnull List repositories); + void setRepositories(@NotNull List repositories); /** @return account name */ - @Nonnull + @NotNull String getAccountName(); /** @@ -160,7 +160,7 @@ interface ActionDelegate { * @param names * available names */ - void setAccountNames(@Nonnull Set names); + void setAccountNames(@NotNull Set names); /** * Close github panel. diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageViewImpl.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageViewImpl.java index f2afe6d56..90f7796a1 100644 --- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageViewImpl.java +++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPageViewImpl.java @@ -50,7 +50,7 @@ import com.google.gwt.view.client.SingleSelectionModel; import com.google.inject.Inject; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -241,7 +241,7 @@ void onDirectoryNameChanged(KeyUpEvent event) { } @Override - public void setProjectUrl(@Nonnull String url) { + public void setProjectUrl(@NotNull String url) { projectUrl.setText(url); delegate.projectUrlChanged(url); } @@ -275,7 +275,7 @@ public void hideNameError() { } @Override - public void showUrlError(@Nonnull String message) { + public void showUrlError(@NotNull String message) { projectUrl.addStyleName(style.inputError()); labelUrlError.setText(message); } @@ -286,20 +286,20 @@ public void hideUrlError() { labelUrlError.setText(""); } - @Nonnull + @NotNull @Override public String getProjectName() { return projectName.getValue(); } @Override - public void setProjectName(@Nonnull String projectName) { + public void setProjectName(@NotNull String projectName) { this.projectName.setValue(projectName); delegate.projectNameChanged(projectName); } @Override - public void setProjectDescription(@Nonnull String projectDescription) { + public void setProjectDescription(@NotNull String projectDescription) { this.projectDescription.setText(projectDescription); delegate.projectDescriptionChanged(projectDescription); } @@ -366,12 +366,12 @@ public void execute() { } @Override - public void setDelegate(@Nonnull ActionDelegate delegate) { + public void setDelegate(@NotNull ActionDelegate delegate) { this.delegate = delegate; } @Override - public void setRepositories(@Nonnull List repositories) { + public void setRepositories(@NotNull List repositories) { // Wraps Array in java.util.List List list = new ArrayList(); for (ProjectData repository : repositories) { @@ -380,7 +380,7 @@ public void setRepositories(@Nonnull List repositories) { this.repositories.setRowData(list); } - @Nonnull + @NotNull @Override public String getAccountName() { int index = accountName.getSelectedIndex(); @@ -388,7 +388,7 @@ public String getAccountName() { } @Override - public void setAccountNames(@Nonnull Set names) { + public void setAccountNames(@NotNull Set names) { this.accountName.clear(); for (String name : names) { this.accountName.addItem(name); diff --git a/plugin-go/che-plugin-go-ext-go/src/main/java/org/eclipse/che/ide/ext/go/client/wizard/GoProjectWizardRegistrar.java b/plugin-go/che-plugin-go-ext-go/src/main/java/org/eclipse/che/ide/ext/go/client/wizard/GoProjectWizardRegistrar.java index 86c689d14..90a58c307 100644 --- a/plugin-go/che-plugin-go-ext-go/src/main/java/org/eclipse/che/ide/ext/go/client/wizard/GoProjectWizardRegistrar.java +++ b/plugin-go/che-plugin-go-ext-go/src/main/java/org/eclipse/che/ide/ext/go/client/wizard/GoProjectWizardRegistrar.java @@ -16,7 +16,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -37,17 +37,17 @@ public GoProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return GO_ID; } - @Nonnull + @NotNull public String getCategory() { return GO_CATEGORY; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/wizard/AntProjectWizardRegistrar.java b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/wizard/AntProjectWizardRegistrar.java index 7eabf2be9..2308700f5 100644 --- a/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/wizard/AntProjectWizardRegistrar.java +++ b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/wizard/AntProjectWizardRegistrar.java @@ -18,7 +18,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -39,17 +39,17 @@ public AntProjectWizardRegistrar(Provider antPagePresenter) { wizardPages.add(antPagePresenter); } - @Nonnull + @NotNull public String getProjectTypeId() { return AntAttributes.ANT_ID; } - @Nonnull + @NotNull public String getCategory() { return JAVA_CATEGORY; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/actions/RemoteDebugAction.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/actions/RemoteDebugAction.java index 8b1232554..06bb3e494 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/actions/RemoteDebugAction.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/actions/RemoteDebugAction.java @@ -23,7 +23,7 @@ import org.eclipse.che.ide.ext.java.jdi.client.JavaRuntimeLocalizationConstant; import org.eclipse.che.ide.ext.java.jdi.client.debug.remotedebug.RemoteDebugPresenter; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.api.project.type.RunnerCategory.JAVA; @@ -56,7 +56,7 @@ public RemoteDebugAction(AppContext appContext, /** {@inheritDoc} */ @Override - public void updateProjectAction(@Nonnull ActionEvent actionEvent) { + public void updateProjectAction(@NotNull ActionEvent actionEvent) { final CurrentProject currentProject = appContext.getCurrentProject(); if (currentProject == null) { return; @@ -74,7 +74,7 @@ public void updateProjectAction(@Nonnull ActionEvent actionEvent) { /** {@inheritDoc} */ @Override - public void actionPerformed(@Nonnull ActionEvent actionEvent) { + public void actionPerformed(@NotNull ActionEvent actionEvent) { eventLogger.log(this); presenter.showDialog(); } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java index 532d0cd5d..8c2d0732a 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java @@ -83,9 +83,9 @@ import org.eclipse.che.ide.websocket.rest.exceptions.ServerException; import org.vectomatic.dom.svg.ui.SVGResource; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -283,7 +283,7 @@ public void onProjectClosed(ProjectActionEvent event) { private void configureStatusRunEventHandler() { eventBus.addHandler(RunnerApplicationStatusEvent.TYPE, new RunnerApplicationStatusEventHandler() { @Override - public void onRunnerStatusChanged(@Nonnull Runner changedRunner) { + public void onRunnerStatusChanged(@NotNull Runner changedRunner) { CurrentProject currentProject = appContext.getCurrentProject(); ApplicationProcessDescriptor changedDescriptor = changedRunner.getDescriptor(); ApplicationProcessDescriptor existingDescriptor = null; @@ -311,7 +311,7 @@ public void onRunnerStatusChanged(@Nonnull Runner changedRunner) { /** {@inheritDoc} */ @Override - @Nonnull + @NotNull public String getTitle() { return TITLE; } @@ -342,7 +342,7 @@ public void go(AcceptsOneWidget container) { container.setWidget(view); } - private void onEventListReceived(@Nonnull DebuggerEventList eventList) { + private void onEventListReceived(@NotNull DebuggerEventList eventList) { if (eventList.getEvents().size() == 0) { return; } @@ -401,8 +401,8 @@ public void onFailure(Throwable caught) { * location of class * @return file path */ - @Nonnull - private String resolveFilePathByLocation(@Nonnull Location location, @Nullable VirtualFile activeFile) { + @NotNull + private String resolveFilePathByLocation(@NotNull Location location, @Nullable VirtualFile activeFile) { if (activeFile == null) { return ""; } @@ -410,7 +410,7 @@ private String resolveFilePathByLocation(@Nonnull Location location, @Nullable V return activeFile.getProject().getProjectDescriptor().getPath() + "/" + srcFolder + "/" + location.getClassName().replace(".", "/") + ".java"; } - private void openFile(@Nonnull Location location, @Nullable VirtualFile activeFile, final AsyncCallback callback) { + private void openFile(@NotNull Location location, @Nullable VirtualFile activeFile, final AsyncCallback callback) { final String filePath = resolveFilePathByLocation(location, activeFile); CurrentProject currentProject = appContext.getCurrentProject(); @@ -419,7 +419,7 @@ private void openFile(@Nonnull Location location, @Nullable VirtualFile activeFi } HasStorablePath path = new HasStorablePath() { - @Nonnull + @NotNull @Override public String getStorablePath() { return filePath; @@ -490,8 +490,8 @@ protected void onFailure(Throwable exception) { ); } - @Nonnull - private List getDebuggerVariables(@Nonnull List variables) { + @NotNull + private List getDebuggerVariables(@NotNull List variables) { List debuggerVariables = new ArrayList<>(); for (Variable variable : variables) { @@ -672,7 +672,7 @@ protected void onFailure(Throwable exception) { /** {@inheritDoc} */ @Override - public void onSelectedVariableElement(@Nonnull DebuggerVariable variable) { + public void onSelectedVariableElement(@NotNull DebuggerVariable variable) { this.selectedVariable = variable; updateChangeValueButtonEnableState(); } @@ -690,7 +690,7 @@ private void resetStates() { breakpointManager.unmarkCurrentBreakpoint(); } - private void showDialog(@Nonnull DebuggerInfo debuggerInfo) { + private void showDialog(@NotNull DebuggerInfo debuggerInfo) { view.setVMName(debuggerInfo.getVmName() + " " + debuggerInfo.getVmVersion()); selectedVariable = null; updateChangeValueButtonEnableState(); @@ -747,7 +747,7 @@ private RunOptions getRunOptions(CurrentProject currentProject) { * @param port * port which need to connect to debugger */ - public void attachDebugger(@Nonnull final String host, @Nonnegative final int port) { + public void attachDebugger(@NotNull final String host, @Min(value=0) final int port) { this.host = host; this.port = port; @@ -843,7 +843,7 @@ private void updateBreakPoints() { /** {@inheritDoc} */ @Override - public void addBreakpoint(@Nonnull final VirtualFile file, final int lineNumber, final AsyncCallback callback) { + public void addBreakpoint(@NotNull final VirtualFile file, final int lineNumber, final AsyncCallback callback) { if (debuggerInfo != null) { Location location = dtoFactory.createDto(Location.class); location.setLineNumber(lineNumber + 1); @@ -878,7 +878,7 @@ protected void onFailure(Throwable exception) { /** {@inheritDoc} */ @Override - public void deleteBreakpoint(@Nonnull VirtualFile file, int lineNumber, final AsyncCallback callback) { + public void deleteBreakpoint(@NotNull VirtualFile file, int lineNumber, final AsyncCallback callback) { if (debuggerInfo != null) { Location location = dtoFactory.createDto(Location.class); location.setLineNumber(lineNumber + 1); diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClient.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClient.java index 0b29dba63..8df8e0c11 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClient.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClient.java @@ -19,7 +19,7 @@ import org.eclipse.che.ide.ext.java.jdi.shared.Variable; import org.eclipse.che.ide.rest.AsyncRequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The client for service to debug java application. @@ -34,7 +34,7 @@ public interface DebuggerServiceClient { * @param port * @param callback */ - void connect(@Nonnull String host, int port, @Nonnull AsyncRequestCallback callback); + void connect(@NotNull String host, int port, @NotNull AsyncRequestCallback callback); /** * Disconnect debugger. @@ -42,7 +42,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void disconnect(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void disconnect(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Adds breakpoint. @@ -51,7 +51,7 @@ public interface DebuggerServiceClient { * @param breakPoint * @param callback */ - void addBreakpoint(@Nonnull String id, @Nonnull BreakPoint breakPoint, @Nonnull AsyncRequestCallback callback); + void addBreakpoint(@NotNull String id, @NotNull BreakPoint breakPoint, @NotNull AsyncRequestCallback callback); /** * Returns list of breakpoints. @@ -59,7 +59,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void getAllBreakpoints(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void getAllBreakpoints(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Deletes breakpoint. @@ -68,7 +68,7 @@ public interface DebuggerServiceClient { * @param breakPoint * @param callback */ - void deleteBreakpoint(@Nonnull String id, @Nonnull BreakPoint breakPoint, @Nonnull AsyncRequestCallback callback); + void deleteBreakpoint(@NotNull String id, @NotNull BreakPoint breakPoint, @NotNull AsyncRequestCallback callback); /** * Remove all breakpoints. @@ -76,7 +76,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void deleteAllBreakpoints(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void deleteAllBreakpoints(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Checks event. @@ -84,7 +84,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void checkEvents(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void checkEvents(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Get dump of fields and local variable of current stack frame. @@ -92,7 +92,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void getStackFrameDump(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void getStackFrameDump(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Resume process. @@ -100,7 +100,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void resume(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void resume(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Returns value of a variable. @@ -109,7 +109,7 @@ public interface DebuggerServiceClient { * @param var * @param callback */ - void getValue(@Nonnull String id, @Nonnull Variable var, @Nonnull AsyncRequestCallback callback); + void getValue(@NotNull String id, @NotNull Variable var, @NotNull AsyncRequestCallback callback); /** * Sets value of a variable. @@ -118,7 +118,7 @@ public interface DebuggerServiceClient { * @param request * @param callback */ - void setValue(@Nonnull String id, @Nonnull UpdateVariableRequest request, @Nonnull AsyncRequestCallback callback); + void setValue(@NotNull String id, @NotNull UpdateVariableRequest request, @NotNull AsyncRequestCallback callback); /** * Do step into. @@ -126,7 +126,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void stepInto(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void stepInto(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Do step over. @@ -134,7 +134,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void stepOver(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void stepOver(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Do step return. @@ -142,7 +142,7 @@ public interface DebuggerServiceClient { * @param id * @param callback */ - void stepReturn(@Nonnull String id, @Nonnull AsyncRequestCallback callback); + void stepReturn(@NotNull String id, @NotNull AsyncRequestCallback callback); /** * Evaluate an expression. @@ -151,5 +151,5 @@ public interface DebuggerServiceClient { * @param expression * @param callback */ - void evaluateExpression(@Nonnull String id, @Nonnull String expression, @Nonnull AsyncRequestCallback callback); + void evaluateExpression(@NotNull String id, @NotNull String expression, @NotNull AsyncRequestCallback callback); } \ No newline at end of file diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClientImpl.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClientImpl.java index 6c47d358c..865a8e86b 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClientImpl.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerServiceClientImpl.java @@ -28,7 +28,7 @@ import org.eclipse.che.ide.rest.RestContext; import org.eclipse.che.ide.ui.loader.EmptyLoader; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.MimeType.TEXT_PLAIN; import static org.eclipse.che.ide.rest.HTTPHeader.ACCEPT; @@ -61,7 +61,7 @@ protected DebuggerServiceClientImpl(@RestContext String baseUrl, /** {@inheritDoc} */ @Override - public void connect(@Nonnull String host, int port, @Nonnull AsyncRequestCallback callback) { + public void connect(@NotNull String host, int port, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/connect"; final String params = "?host=" + host + "&port=" + port; asyncRequestFactory.createGetRequest(requestUrl + params).loader(loader, localizationConstant.debuggerConnecting()).send(callback); @@ -69,98 +69,98 @@ public void connect(@Nonnull String host, int port, @Nonnull AsyncRequestCallbac /** {@inheritDoc} */ @Override - public void disconnect(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void disconnect(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/disconnect/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader, localizationConstant.debuggerDisconnecting()).send(callback); } /** {@inheritDoc} */ @Override - public void addBreakpoint(@Nonnull String id, @Nonnull BreakPoint breakPoint, @Nonnull AsyncRequestCallback callback) { + public void addBreakpoint(@NotNull String id, @NotNull BreakPoint breakPoint, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/breakpoints/add/" + id; asyncRequestFactory.createPostRequest(requestUrl, breakPoint).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getAllBreakpoints(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void getAllBreakpoints(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/breakpoints/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void deleteBreakpoint(@Nonnull String id, @Nonnull BreakPoint breakPoint, @Nonnull AsyncRequestCallback callback) { + public void deleteBreakpoint(@NotNull String id, @NotNull BreakPoint breakPoint, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/breakpoints/delete/" + id; asyncRequestFactory.createPostRequest(requestUrl, breakPoint).loader(new EmptyLoader()).send(callback); } /** {@inheritDoc} */ @Override - public void deleteAllBreakpoints(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void deleteAllBreakpoints(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/breakpoints/delete_all/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void checkEvents(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void checkEvents(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/events/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(new EmptyLoader()).send(callback); } /** {@inheritDoc} */ @Override - public void getStackFrameDump(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void getStackFrameDump(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/dump/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void resume(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void resume(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/resume/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void getValue(@Nonnull String id, @Nonnull Variable var, @Nonnull AsyncRequestCallback callback) { + public void getValue(@NotNull String id, @NotNull Variable var, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/value/get/" + id; asyncRequestFactory.createPostRequest(requestUrl, var.getVariablePath()).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void setValue(@Nonnull String id, @Nonnull UpdateVariableRequest request, @Nonnull AsyncRequestCallback callback) { + public void setValue(@NotNull String id, @NotNull UpdateVariableRequest request, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/value/set/" + id; asyncRequestFactory.createPostRequest(requestUrl, request).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void stepInto(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void stepInto(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/step/into/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void stepOver(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void stepOver(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/step/over/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void stepReturn(@Nonnull String id, @Nonnull AsyncRequestCallback callback) { + public void stepReturn(@NotNull String id, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/step/out/" + id; asyncRequestFactory.createGetRequest(requestUrl).loader(loader).send(callback); } /** {@inheritDoc} */ @Override - public void evaluateExpression(@Nonnull String id, @Nonnull String expression, @Nonnull AsyncRequestCallback callback) { + public void evaluateExpression(@NotNull String id, @NotNull String expression, @NotNull AsyncRequestCallback callback) { final String requestUrl = baseUrl + "/expression/" + id; asyncRequestFactory.createPostRequest(requestUrl, null) .data(expression) diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerVariable.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerVariable.java index 2e0408d5f..be1a55d1b 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerVariable.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerVariable.java @@ -13,7 +13,7 @@ import org.eclipse.che.ide.ext.java.jdi.shared.Variable; import org.eclipse.che.ide.ext.java.jdi.shared.VariablePath; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -27,43 +27,43 @@ public class DebuggerVariable { private final Variable variable; - public DebuggerVariable(@Nonnull Variable variable) { + public DebuggerVariable(@NotNull Variable variable) { this.variable = variable; } - @Nonnull + @NotNull public Variable getVariable() { return variable; } - @Nonnull + @NotNull public String getName() { return variable.getName(); } - public void setName(@Nonnull String name) { + public void setName(@NotNull String name) { variable.setName(name); } - @Nonnull + @NotNull public String getValue() { return variable.getValue(); } - public void setValue(@Nonnull String value) { + public void setValue(@NotNull String value) { variable.setValue(value); } - @Nonnull + @NotNull public String getType() { return variable.getType(); } - public void setType(@Nonnull String type) { + public void setType(@NotNull String type) { variable.setType(type); } - @Nonnull + @NotNull public VariablePath getVariablePath() { return variable.getVariablePath(); } @@ -72,7 +72,7 @@ public boolean isPrimitive() { return variable.isPrimitive(); } - @Nonnull + @NotNull public List getVariables() { List variables = new ArrayList<>(); @@ -83,7 +83,7 @@ public List getVariables() { return variables; } - public void setVariables(@Nonnull List debuggerVariables) { + public void setVariables(@NotNull List debuggerVariables) { List variables = new ArrayList<>(); for (DebuggerVariable debuggerVariable : debuggerVariables) { diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerView.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerView.java index d870830c2..f2eb6f6bb 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerView.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerView.java @@ -17,7 +17,7 @@ import org.eclipse.che.ide.debug.Breakpoint; import org.eclipse.che.ide.ext.java.jdi.shared.Location; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -63,7 +63,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param variable * variable that is selected */ - void onSelectedVariableElement(@Nonnull DebuggerVariable variable); + void onSelectedVariableElement(@NotNull DebuggerVariable variable); } /** @@ -74,7 +74,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param location * information about the execution point */ - public void setExecutionPoint(boolean absentInformation, @Nonnull Location location); + public void setExecutionPoint(boolean absentInformation, @NotNull Location location); /** * Sets variables. @@ -82,7 +82,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param variables * available variables */ - void setVariables(@Nonnull List variables); + void setVariables(@NotNull List variables); /** * Sets breakpoints. @@ -90,7 +90,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param breakPoints * available breakpoints */ - void setBreakpoints(@Nonnull List breakPoints); + void setBreakpoints(@NotNull List breakPoints); /** * Sets java virtual machine name and version. @@ -98,7 +98,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param name * virtual machine name */ - void setVMName(@Nonnull String name); + void setVMName(@NotNull String name); /** * Sets whether Resume button is enabled. @@ -165,7 +165,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param state * the new state of button */ - public boolean setButtonState(@Nonnull ToggleButton button, boolean state); + public boolean setButtonState(@NotNull ToggleButton button, boolean state); /** * Sets whether Change value button is enabled. @@ -189,7 +189,7 @@ public interface ActionDelegate extends BaseActionDelegate { * @param title * title of view */ - void setTitle(@Nonnull String title); + void setTitle(@NotNull String title); /** Update contents for selected variable. */ void updateSelectedVariable(); @@ -200,5 +200,5 @@ public interface ActionDelegate extends BaseActionDelegate { * @param variables * variable what need to add into */ - void setVariablesIntoSelectedVariable(@Nonnull List variables); + void setVariablesIntoSelectedVariable(@NotNull List variables); } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerViewImpl.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerViewImpl.java index fa99c0da7..6a416c311 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerViewImpl.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerViewImpl.java @@ -47,8 +47,8 @@ import org.eclipse.che.ide.util.input.SignalEvent; import org.vectomatic.dom.svg.ui.SVGImage; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.List; /** @@ -178,35 +178,35 @@ public Element createElement() { this.variables = Tree.create(rendererResources, new VariableNodeDataAdapter(), new VariableTreeNodeRenderer(rendererResources)); this.variables.setTreeEventHandler(new Tree.Listener() { @Override - public void onNodeAction(@Nonnull TreeNodeElement node) { + public void onNodeAction(@NotNull TreeNodeElement node) { } @Override - public void onNodeClosed(@Nonnull TreeNodeElement node) { + public void onNodeClosed(@NotNull TreeNodeElement node) { selectedVariable = null; } @Override - public void onNodeContextMenu(int mouseX, int mouseY, @Nonnull TreeNodeElement node) { + public void onNodeContextMenu(int mouseX, int mouseY, @NotNull TreeNodeElement node) { } @Override - public void onNodeDragStart(@Nonnull TreeNodeElement node, @Nonnull MouseEvent event) { + public void onNodeDragStart(@NotNull TreeNodeElement node, @NotNull MouseEvent event) { } @Override - public void onNodeDragDrop(@Nonnull TreeNodeElement node, @Nonnull MouseEvent event) { + public void onNodeDragDrop(@NotNull TreeNodeElement node, @NotNull MouseEvent event) { } @Override - public void onNodeExpanded(@Nonnull final TreeNodeElement node) { + public void onNodeExpanded(@NotNull final TreeNodeElement node) { selectedVariable = node; delegate.onSelectedVariableElement(selectedVariable.getData()); delegate.onExpandVariablesTree(); } @Override - public void onNodeSelected(@Nonnull TreeNodeElement node, @Nonnull SignalEvent event) { + public void onNodeSelected(@NotNull TreeNodeElement node, @NotNull SignalEvent event) { selectedVariable = node; delegate.onSelectedVariableElement(selectedVariable.getData()); } @@ -216,11 +216,11 @@ public void onRootContextMenu(int mouseX, int mouseY) { } @Override - public void onRootDragDrop(@Nonnull MouseEvent event) { + public void onRootDragDrop(@NotNull MouseEvent event) { } @Override - public void onKeyboard(@Nonnull KeyboardEvent event) { + public void onKeyboard(@NotNull KeyboardEvent event) { } }); @@ -246,7 +246,7 @@ public void setExecutionPoint(boolean existInformation, @Nullable Location locat /** {@inheritDoc} */ @Override - public void setVariables(@Nonnull List variables) { + public void setVariables(@NotNull List variables) { DebuggerVariable root = this.variables.getModel().getRoot(); if (root == null) { root = new DebuggerVariable(dtoFactory.createDto(Variable.class)); @@ -258,13 +258,13 @@ public void setVariables(@Nonnull List variables) { /** {@inheritDoc} */ @Override - public void setBreakpoints(@Nonnull List breakpoints) { + public void setBreakpoints(@NotNull List breakpoints) { this.breakpoints.render(breakpoints); } /** {@inheritDoc} */ @Override - public void setVMName(@Nonnull String name) { + public void setVMName(@NotNull String name) { vmName.setText(name); } @@ -324,7 +324,7 @@ public boolean resetStepReturnButton(boolean state) { /** {@inheritDoc} */ @Override - public boolean setButtonState(@Nonnull ToggleButton button, boolean state) { + public boolean setButtonState(@NotNull ToggleButton button, boolean state) { if (state) { if (!button.isDown()) return true; button.setDown(false); @@ -356,7 +356,7 @@ public void updateSelectedVariable() { /** {@inheritDoc} */ @Override - public void setVariablesIntoSelectedVariable(@Nonnull List variables) { + public void setVariablesIntoSelectedVariable(@NotNull List variables) { DebuggerVariable rootVariable = selectedVariable.getData(); rootVariable.setVariables(variables); } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableNodeDataAdapter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableNodeDataAdapter.java index 7fd1d7604..e2b0aaeb0 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableNodeDataAdapter.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableNodeDataAdapter.java @@ -13,8 +13,8 @@ import org.eclipse.che.ide.ui.tree.NodeDataAdapter; import org.eclipse.che.ide.ui.tree.TreeNodeElement; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -30,7 +30,7 @@ public class VariableNodeDataAdapter implements NodeDataAdapter pathA = a.getVariablePath().getPath(); List pathB = b.getVariablePath().getPath(); @@ -49,75 +49,75 @@ public int compare(@Nonnull DebuggerVariable a, @Nonnull DebuggerVariable b) { /** {@inheritDoc} */ @Override - public boolean hasChildren(@Nonnull DebuggerVariable data) { + public boolean hasChildren(@NotNull DebuggerVariable data) { return !data.isPrimitive(); } /** {@inheritDoc} */ @Override - @Nonnull - public List getChildren(@Nonnull DebuggerVariable data) { + @NotNull + public List getChildren(@NotNull DebuggerVariable data) { return data.getVariables(); } /** {@inheritDoc} */ @Override @Nullable - public String getNodeId(@Nonnull DebuggerVariable data) { + public String getNodeId(@NotNull DebuggerVariable data) { return null; } /** {@inheritDoc} */ @Override - @Nonnull - public String getNodeName(@Nonnull DebuggerVariable data) { + @NotNull + public String getNodeName(@NotNull DebuggerVariable data) { return data.getName() + ": " + data.getValue(); } /** {@inheritDoc} */ @Override @Nullable - public DebuggerVariable getParent(@Nonnull DebuggerVariable data) { + public DebuggerVariable getParent(@NotNull DebuggerVariable data) { return null; } /** {@inheritDoc} */ @Override @Nullable - public TreeNodeElement getRenderedTreeNode(@Nonnull DebuggerVariable data) { + public TreeNodeElement getRenderedTreeNode(@NotNull DebuggerVariable data) { return treeNodeElements.get(data); } /** {@inheritDoc} */ @Override - public void setNodeName(@Nonnull DebuggerVariable data,@Nonnull String name) { + public void setNodeName(@NotNull DebuggerVariable data,@NotNull String name) { // do nothing } /** {@inheritDoc} */ @Override - public void setRenderedTreeNode(@Nonnull DebuggerVariable data,@Nonnull TreeNodeElement renderedNode) { + public void setRenderedTreeNode(@NotNull DebuggerVariable data,@NotNull TreeNodeElement renderedNode) { treeNodeElements.put(data, renderedNode); } /** {@inheritDoc} */ @Override @Nullable - public DebuggerVariable getDragDropTarget(@Nonnull DebuggerVariable data) { + public DebuggerVariable getDragDropTarget(@NotNull DebuggerVariable data) { return null; } /** {@inheritDoc} */ @Override - @Nonnull - public List getNodePath(@Nonnull DebuggerVariable data) { + @NotNull + public List getNodePath(@NotNull DebuggerVariable data) { return new ArrayList<>(data.getVariablePath().getPath()); } /** {@inheritDoc} */ @Override @Nullable - public DebuggerVariable getNodeByPath(@Nonnull DebuggerVariable root,@Nonnull List relativeNodePath) { + public DebuggerVariable getNodeByPath(@NotNull DebuggerVariable root,@NotNull List relativeNodePath) { DebuggerVariable localRoot = root; for (int i = 0; i < relativeNodePath.size(); i++) { String path = relativeNodePath.get(i); diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableTreeNodeRenderer.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableTreeNodeRenderer.java index b80e542d3..6442d75d7 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableTreeNodeRenderer.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/VariableTreeNodeRenderer.java @@ -22,7 +22,7 @@ import org.eclipse.che.ide.ui.tree.TreeNodeElement; import org.eclipse.che.ide.util.dom.Elements; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The rendered for debug variable node. @@ -52,20 +52,20 @@ public interface Resources extends Tree.Resources { private final Css css; - public VariableTreeNodeRenderer(@Nonnull Resources res) { + public VariableTreeNodeRenderer(@NotNull Resources res) { this.css = res.variableCss(); this.css.ensureInjected(); } /** {@inheritDoc} */ @Override - public Element getNodeKeyTextContainer(@Nonnull SpanElement treeNodeLabel) { + public Element getNodeKeyTextContainer(@NotNull SpanElement treeNodeLabel) { return (Element)treeNodeLabel.getChildNodes().item(1); } /** {@inheritDoc} */ @Override - public SpanElement renderNodeContents(@Nonnull DebuggerVariable data) { + public SpanElement renderNodeContents(@NotNull DebuggerVariable data) { SpanElement root = Elements.createSpanElement(css.variableRoot()); DivElement icon = Elements.createDivElement(css.variableIcon()); SpanElement label = Elements.createSpanElement(css.variableLabel()); @@ -80,7 +80,7 @@ public SpanElement renderNodeContents(@Nonnull DebuggerVariable data) { /** {@inheritDoc} */ @Override - public void updateNodeContents(@Nonnull TreeNodeElement treeNode) { + public void updateNodeContents(@NotNull TreeNodeElement treeNode) { // do nothing } } \ No newline at end of file diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValuePresenter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValuePresenter.java index 163668fa7..91bb4554e 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValuePresenter.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValuePresenter.java @@ -24,7 +24,7 @@ import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.api.notification.Notification.Type.ERROR; @@ -59,7 +59,7 @@ public ChangeValuePresenter(ChangeValueView view, DebuggerServiceClient service, } /** Show dialog. */ - public void showDialog(@Nonnull DebuggerInfo debuggerInfo, @Nonnull Variable variable, @Nonnull AsyncCallback callback) { + public void showDialog(@NotNull DebuggerInfo debuggerInfo, @NotNull Variable variable, @NotNull AsyncCallback callback) { this.debuggerInfo = debuggerInfo; this.variable = variable; this.callback = callback; diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueView.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueView.java index 6a13e0956..5e611ea9c 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueView.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueView.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** @@ -34,7 +34,7 @@ public interface ActionDelegate { } /** @return changed value */ - @Nonnull + @NotNull String getValue(); /** @@ -43,7 +43,7 @@ public interface ActionDelegate { * @param value * new value */ - void setValue(@Nonnull String value); + void setValue(@NotNull String value); /** * Change the enable state of the evaluate button. @@ -65,7 +65,7 @@ public interface ActionDelegate { * @param title * new title for value field */ - void setValueTitle(@Nonnull String title); + void setValueTitle(@NotNull String title); /** Close dialog. */ void close(); diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueViewImpl.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueViewImpl.java index eb20dc9b5..d8e59ed50 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueViewImpl.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/changevalue/ChangeValueViewImpl.java @@ -26,7 +26,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** @@ -73,7 +73,7 @@ protected ChangeValueViewImpl(JavaRuntimeResources resources, JavaRuntimeLocaliz } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getValue() { return value.getText(); @@ -81,7 +81,7 @@ public String getValue() { /** {@inheritDoc} */ @Override - public void setValue(@Nonnull String value) { + public void setValue(@NotNull String value) { this.value.setText(value); } @@ -105,7 +105,7 @@ public void selectAllText() { /** {@inheritDoc} */ @Override - public void setValueTitle(@Nonnull String title) { + public void setValueTitle(@NotNull String title) { changeValueLabel.getElement().setInnerHTML(title); } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionPresenter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionPresenter.java index 6e6ec9e84..732648d33 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionPresenter.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionPresenter.java @@ -18,7 +18,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Presenter for evaluating an expression. @@ -43,7 +43,7 @@ public EvaluateExpressionPresenter(EvaluateExpressionView view, DebuggerServiceC } /** Show dialog. */ - public void showDialog(@Nonnull DebuggerInfo debuggerInfo) { + public void showDialog(@NotNull DebuggerInfo debuggerInfo) { this.debuggerInfo = debuggerInfo; view.setExpression(""); view.setResult(""); diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionView.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionView.java index d0d56f325..75d0d934f 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionView.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionView.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** @@ -38,7 +38,7 @@ public interface ActionDelegate { * * @return {@link String} */ - @Nonnull + @NotNull String getExpression(); /** @@ -46,7 +46,7 @@ public interface ActionDelegate { * * @param expression */ - void setExpression(@Nonnull String expression); + void setExpression(@NotNull String expression); /** * Set result field value. @@ -54,7 +54,7 @@ public interface ActionDelegate { * @param value * result field value */ - void setResult(@Nonnull String value); + void setResult(@NotNull String value); /** * Change the enable state of the evaluate button. diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionViewImpl.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionViewImpl.java index 46e18b9cf..6592b9679 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionViewImpl.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/expression/EvaluateExpressionViewImpl.java @@ -28,7 +28,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** @@ -84,7 +84,7 @@ public void onKeyUp(KeyUpEvent event) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getExpression() { return expression.getText(); @@ -92,13 +92,13 @@ public String getExpression() { /** {@inheritDoc} */ @Override - public void setExpression(@Nonnull String expression) { + public void setExpression(@NotNull String expression) { this.expression.setText(expression); } /** {@inheritDoc} */ @Override - public void setResult(@Nonnull String value) { + public void setResult(@NotNull String value) { this.result.setText(value); } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugPresenter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugPresenter.java index e6c1af085..482c2ae0e 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugPresenter.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugPresenter.java @@ -14,8 +14,8 @@ import org.eclipse.che.ide.ext.java.jdi.client.debug.DebuggerPresenter; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; /** * Contains methods which allows control of remote debugging. @@ -42,7 +42,7 @@ public void showDialog() { /** {@inheritDoc} */ @Override - public void onConfirmClicked(@Nonnull String host, @Nonnegative int port) { + public void onConfirmClicked(@NotNull String host, @Min(value=0) int port) { debuggerPresenter.attachDebugger(host, port); } } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugView.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugView.java index da13bb91f..244d47a64 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugView.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugView.java @@ -14,8 +14,8 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; /** * Provides methods which allow control of remote debugging. @@ -37,7 +37,7 @@ interface ActionDelegate { * @param port * port via which we connect to remote server */ - void onConfirmClicked(@Nonnull String host, @Nonnegative int port); + void onConfirmClicked(@NotNull String host, @Min(value=0) int port); } } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugViewImpl.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugViewImpl.java index 926805b23..f3aca631b 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugViewImpl.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/remotedebug/RemoteDebugViewImpl.java @@ -28,7 +28,7 @@ import org.eclipse.che.ide.ui.dialogs.DialogFactory; import org.eclipse.che.ide.ui.dialogs.confirm.ConfirmDialog; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.api.notification.Notification.Type.ERROR; @@ -93,7 +93,7 @@ public void cancelled() { /** {@inheritDoc} */ @Override - public void setDelegate(@Nonnull ActionDelegate delegate) { + public void setDelegate(@NotNull ActionDelegate delegate) { this.delegate = delegate; } diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolver.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolver.java index 0ff677ee5..4cc214885 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolver.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolver.java @@ -12,12 +12,12 @@ import org.eclipse.che.ide.api.project.tree.VirtualFile; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * @author Evgen Vidolob */ public interface FqnResolver { - @Nonnull - String resolveFqn(@Nonnull VirtualFile file); + @NotNull + String resolveFqn(@NotNull VirtualFile file); } \ No newline at end of file diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolverFactory.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolverFactory.java index e32c2a63f..8b85c52ec 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolverFactory.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/FqnResolverFactory.java @@ -13,8 +13,8 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.HashMap; import java.util.Map; @@ -29,16 +29,16 @@ protected FqnResolverFactory() { this.resolvers = new HashMap<>(); } - public void addResolver(@Nonnull String mimeType, @Nonnull FqnResolver resolver) { + public void addResolver(@NotNull String mimeType, @NotNull FqnResolver resolver) { resolvers.put(mimeType, resolver); } @Nullable - public FqnResolver getResolver(@Nonnull String mimeType) { + public FqnResolver getResolver(@NotNull String mimeType) { return resolvers.get(mimeType); } - public boolean isResolverExist(@Nonnull String mimeType) { + public boolean isResolverExist(@NotNull String mimeType) { return resolvers.containsKey(mimeType); } } \ No newline at end of file diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/JavaFqnResolver.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/JavaFqnResolver.java index 94aa8659f..e57f7ba27 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/JavaFqnResolver.java +++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/fqn/JavaFqnResolver.java @@ -16,7 +16,7 @@ import org.eclipse.che.ide.api.project.tree.generic.ProjectNode; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -26,9 +26,9 @@ @Singleton public class JavaFqnResolver implements FqnResolver { /** {@inheritDoc} */ - @Nonnull + @NotNull @Override - public String resolveFqn(@Nonnull final VirtualFile file) { + public String resolveFqn(@NotNull final VirtualFile file) { final HasProjectDescriptor project = file.getProject(); final BuildersDescriptor builders = project.getProjectDescriptor().getBuilders(); final List sourceFolders = new ArrayList<>(); diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/RestNameEnvironment.java b/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/RestNameEnvironment.java index e81288d6f..d6e465af3 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/RestNameEnvironment.java +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/src/main/java/org/eclipse/che/jdt/RestNameEnvironment.java @@ -46,8 +46,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; @@ -354,7 +354,7 @@ private void buildFailed(@Nullable BuildTaskDescriptor buildStatus) throws Build } @Nullable - private Link findLink(@Nonnull String rel, List links) { + private Link findLink(@NotNull String rel, List links) { for (Link link : links) { if (link.getRel().equals(rel)) { return link; @@ -363,8 +363,8 @@ private Link findLink(@Nonnull String rel, List links) { return null; } - @Nonnull - private BuildTaskDescriptor waitTaskFinish(@Nonnull BuildTaskDescriptor buildDescription) throws Exception { + @NotNull + private BuildTaskDescriptor waitTaskFinish(@NotNull BuildTaskDescriptor buildDescription) throws Exception { BuildTaskDescriptor request = buildDescription; final int sleepTime = 500; @@ -384,8 +384,8 @@ private BuildTaskDescriptor waitTaskFinish(@Nonnull BuildTaskDescriptor buildDes } - @Nonnull - private BuildTaskDescriptor getDependencies(@Nonnull String url, @Nonnull String projectName, @Nonnull String analyzeType, @Nullable + @NotNull + private BuildTaskDescriptor getDependencies(@NotNull String url, @NotNull String projectName, @NotNull String analyzeType, @Nullable BuildOptions options) throws Exception { Pair projectParam = Pair.of("project", projectName); diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java index e09e31937..06f2e4f65 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java @@ -35,8 +35,8 @@ import org.eclipse.che.ide.ui.dialogs.input.InputDialog; import org.eclipse.che.ide.ui.dialogs.input.InputValidator; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.List; import java.util.Map; @@ -161,9 +161,9 @@ public String getCorrectedValue() { } } - @Nonnull + @NotNull @Override - protected Function, ItemReferenceBasedNode> iterateAndFindCreatedNode(@Nonnull final ItemReference itemReference) { + protected Function, ItemReferenceBasedNode> iterateAndFindCreatedNode(@NotNull final ItemReference itemReference) { return new Function, ItemReferenceBasedNode>() { @Override public ItemReferenceBasedNode apply(List nodes) throws FunctionException { @@ -182,9 +182,9 @@ public ItemReferenceBasedNode apply(List nodes) throws FunctionException { }; } - @Nonnull + @NotNull @Override - protected Operation fireNodeCreated(@Nonnull ResourceBasedNode parent) { + protected Operation fireNodeCreated(@NotNull ResourceBasedNode parent) { return new Operation() { @Override public void apply(ItemReferenceBasedNode arg) throws OperationException { diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java index 304d6403c..f84e2e87a 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java @@ -34,7 +34,7 @@ import org.eclipse.che.ide.rest.Unmarshallable; import org.eclipse.che.ide.util.loging.Log; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.Map; /** @@ -142,7 +142,7 @@ public void apply(Node node) throws OperationException { }); } else { HasStorablePath path = new HasStorablePath() { - @Nonnull + @NotNull @Override public String getStorablePath() { return descriptor.getPath(); diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractExternalLibrariesNodeInterceptor.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractExternalLibrariesNodeInterceptor.java index 4c59fa171..f98e38284 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractExternalLibrariesNodeInterceptor.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractExternalLibrariesNodeInterceptor.java @@ -24,8 +24,8 @@ import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettings; import org.eclipse.che.ide.project.node.AbstractProjectBasedNode; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.List; import static org.eclipse.che.ide.project.node.NodeManager.isProjectOrModuleNode; @@ -61,7 +61,7 @@ public Promise> intercept(Node parent, List children) { public abstract boolean show(HasProjectDescriptor node); - private void insertExternalLibrariesNode(@Nonnull List children, @Nullable Node externalLibrariesNode) { + private void insertExternalLibrariesNode(@NotNull List children, @Nullable Node externalLibrariesNode) { if (externalLibrariesNode != null) { children.add(externalLibrariesNode); } diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java index 883f16978..ca0bcb23a 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java @@ -19,7 +19,7 @@ import org.eclipse.che.ide.ext.java.shared.ContentRoot; import org.eclipse.che.ide.project.node.FolderReferenceNode; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import java.util.Collections; import java.util.List; diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/JavaClassInterceptor.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/JavaClassInterceptor.java index 5860055bb..5df54fbbb 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/JavaClassInterceptor.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/JavaClassInterceptor.java @@ -27,7 +27,7 @@ import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettings; import org.eclipse.che.ide.project.node.FileReferenceNode; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import java.util.List; /** diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaFileNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaFileNode.java index a05812dda..ade54af93 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaFileNode.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaFileNode.java @@ -23,8 +23,8 @@ import org.eclipse.che.ide.project.node.FileReferenceNode; import org.eclipse.che.ide.ui.smartTree.presentation.NodePresentation; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * @author Vlad Zhukovskiy @@ -37,15 +37,15 @@ public class JavaFileNode extends FileReferenceNode implements MutableNode { public JavaFileNode(@Assisted ItemReference itemReference, @Assisted ProjectDescriptor projectDescriptor, @Assisted JavaNodeSettings nodeSettings, - @Nonnull EventBus eventBus, - @Nonnull JavaNodeManager nodeManager, - @Nonnull JavaItemReferenceProcessor resourceProcessor) { + @NotNull EventBus eventBus, + @NotNull JavaNodeManager nodeManager, + @NotNull JavaItemReferenceProcessor resourceProcessor) { super(itemReference, projectDescriptor, nodeSettings, eventBus, nodeManager, resourceProcessor); this.nodeManager = nodeManager; } @Override - public void updatePresentation(@Nonnull NodePresentation presentation) { + public void updatePresentation(@NotNull NodePresentation presentation) { presentation.setPresentableText(getDisplayName()); presentation.setPresentableIcon(nodeManager.getJavaNodesResources().fileJava()); } diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaItemReferenceProcessor.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaItemReferenceProcessor.java index 3dcd558ae..8e0e677af 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaItemReferenceProcessor.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaItemReferenceProcessor.java @@ -23,8 +23,8 @@ import org.eclipse.che.ide.rest.DtoUnmarshallerFactory; import org.eclipse.che.ide.ui.dialogs.DialogFactory; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * @author Vlad Zhukovskiy @@ -43,13 +43,13 @@ public JavaItemReferenceProcessor(EventBus eventBus, } @Override - public Promise delete(@Nonnull HasDataObject node) { + public Promise delete(@NotNull HasDataObject node) { return super.delete(node); } @Override - public Promise rename(@Nullable HasStorablePath parent, @Nonnull HasDataObject node, - @Nonnull String newName) { + public Promise rename(@Nullable HasStorablePath parent, @NotNull HasDataObject node, + @NotNull String newName) { dialogFactory.createMessageDialog("Unsupported operation", "At this moment we don't support to rename java files", null).show(); diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java index 91cda5efe..3a6991139 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java @@ -21,34 +21,34 @@ import org.eclipse.che.ide.ext.java.shared.Jar; import org.eclipse.che.ide.ext.java.shared.JarEntry; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * @author Vlad Zhukovskiy */ public interface JavaNodeFactory { - ExternalLibrariesNode newExternalLibrariesNode(@Nonnull ProjectDescriptor projectDescriptor, - @Nonnull NodeSettings nodeSettings); + ExternalLibrariesNode newExternalLibrariesNode(@NotNull ProjectDescriptor projectDescriptor, + @NotNull NodeSettings nodeSettings); - JarContainerNode newJarContainerNode(@Nonnull Jar jar, - @Nonnull ProjectDescriptor projectDescriptor, - @Nonnull NodeSettings nodeSettings); + JarContainerNode newJarContainerNode(@NotNull Jar jar, + @NotNull ProjectDescriptor projectDescriptor, + @NotNull NodeSettings nodeSettings); - JarFileNode newJarFileNode(@Nonnull JarEntry jarEntry, + JarFileNode newJarFileNode(@NotNull JarEntry jarEntry, int libId, - @Nonnull ProjectDescriptor projectDescriptor, - @Nonnull NodeSettings nodeSettings); + @NotNull ProjectDescriptor projectDescriptor, + @NotNull NodeSettings nodeSettings); - JarFolderNode newJarFolderNode(@Nonnull JarEntry jarEntry, + JarFolderNode newJarFolderNode(@NotNull JarEntry jarEntry, int libId, - @Nonnull ProjectDescriptor projectDescriptor, - @Nonnull NodeSettings nodeSettings); + @NotNull ProjectDescriptor projectDescriptor, + @NotNull NodeSettings nodeSettings); - PackageNode newPackageNode(@Nonnull ItemReference itemReference, - @Nonnull ProjectDescriptor projectDescriptor, - @Nonnull JavaNodeSettings nodeSettings); + PackageNode newPackageNode(@NotNull ItemReference itemReference, + @NotNull ProjectDescriptor projectDescriptor, + @NotNull JavaNodeSettings nodeSettings); - JavaFileNode newJavaFileNode(@Nonnull ItemReference itemReference, - @Nonnull ProjectDescriptor projectDescriptor, - @Nonnull JavaNodeSettings nodeSettings); + JavaFileNode newJavaFileNode(@NotNull ItemReference itemReference, + @NotNull ProjectDescriptor projectDescriptor, + @NotNull JavaNodeSettings nodeSettings); } diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java index ddf6e1c05..6576bca4e 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java @@ -44,7 +44,7 @@ import org.eclipse.che.ide.rest.DtoUnmarshallerFactory; import org.eclipse.che.ide.rest.Unmarshallable; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -91,14 +91,14 @@ public JavaNodeManager(NodeFactory nodeFactory, /** **************** External Libraries operations ********************* */ - @Nonnull - public Promise> getExternalLibraries(@Nonnull ProjectDescriptor descriptor) { + @NotNull + public Promise> getExternalLibraries(@NotNull ProjectDescriptor descriptor) { return AsyncPromiseHelper.createFromAsyncRequest(getExternalLibrariesRC(descriptor.getPath())) .then(createJarNodes(descriptor, settingsProvider.getSettings())); } - @Nonnull - private RequestCall> getExternalLibrariesRC(@Nonnull final String projectPath) { + @NotNull + private RequestCall> getExternalLibrariesRC(@NotNull final String projectPath) { return new RequestCall>() { @Override public void makeCall(AsyncCallback> callback) { @@ -107,9 +107,9 @@ public void makeCall(AsyncCallback> callback) { }; } - @Nonnull - private Function, List> createJarNodes(@Nonnull final ProjectDescriptor descriptor, - @Nonnull final NodeSettings nodeSettings) { + @NotNull + private Function, List> createJarNodes(@NotNull final ProjectDescriptor descriptor, + @NotNull final NodeSettings nodeSettings) { return new Function, List>() { @Override public List apply(List jars) throws FunctionException { @@ -127,14 +127,14 @@ public List apply(List jars) throws FunctionException { /** **************** Jar Library Children operations ********************* */ - @Nonnull - public Promise> getJarLibraryChildren(@Nonnull ProjectDescriptor descriptor, int libId, @Nonnull NodeSettings nodeSettings) { + @NotNull + public Promise> getJarLibraryChildren(@NotNull ProjectDescriptor descriptor, int libId, @NotNull NodeSettings nodeSettings) { return AsyncPromiseHelper.createFromAsyncRequest(getLibraryChildrenRC(descriptor.getPath(), libId)) .then(createJarEntryNodes(libId, descriptor, nodeSettings)); } - @Nonnull - private RequestCall> getLibraryChildrenRC(@Nonnull final String projectPath, final int libId) { + @NotNull + private RequestCall> getLibraryChildrenRC(@NotNull final String projectPath, final int libId) { return new RequestCall>() { @Override public void makeCall(AsyncCallback> callback) { @@ -144,14 +144,14 @@ public void makeCall(AsyncCallback> callback) { }; } - @Nonnull - public Promise> getJarChildren(@Nonnull ProjectDescriptor descriptor, int libId, @Nonnull String path, @Nonnull NodeSettings nodeSettings) { + @NotNull + public Promise> getJarChildren(@NotNull ProjectDescriptor descriptor, int libId, @NotNull String path, @NotNull NodeSettings nodeSettings) { return AsyncPromiseHelper.createFromAsyncRequest(getChildrenRC(descriptor.getPath(), libId, path)) .then(createJarEntryNodes(libId, descriptor, nodeSettings)); } - @Nonnull - private RequestCall> getChildrenRC(@Nonnull final String projectPath, final int libId, @Nonnull final String path) { + @NotNull + private RequestCall> getChildrenRC(@NotNull final String projectPath, final int libId, @NotNull final String path) { return new RequestCall>() { @Override public void makeCall(AsyncCallback> callback) { @@ -161,9 +161,9 @@ public void makeCall(AsyncCallback> callback) { }; } - @Nonnull - private Function, List> createJarEntryNodes(final int libId, @Nonnull final ProjectDescriptor descriptor, - @Nonnull final NodeSettings nodeSettings) { + @NotNull + private Function, List> createJarEntryNodes(final int libId, @NotNull final ProjectDescriptor descriptor, + @NotNull final NodeSettings nodeSettings) { return new Function, List>() { @Override public List apply(List entries) throws FunctionException { diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java index 068a10b92..4f938bbcd 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java @@ -30,7 +30,7 @@ import org.eclipse.che.ide.ui.smartTree.presentation.NodePresentation; import org.eclipse.che.ide.util.loging.Log; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -46,14 +46,14 @@ public class PackageNode extends FolderReferenceNode { public PackageNode(@Assisted ItemReference itemReference, @Assisted ProjectDescriptor projectDescriptor, @Assisted JavaNodeSettings nodeSettings, - @Nonnull EventBus eventBus, - @Nonnull JavaNodeManager nodeManager, - @Nonnull ItemReferenceProcessor resourceProcessor) { + @NotNull EventBus eventBus, + @NotNull JavaNodeManager nodeManager, + @NotNull ItemReferenceProcessor resourceProcessor) { super(itemReference, projectDescriptor, nodeSettings, eventBus, nodeManager, resourceProcessor); this.nodeManager = nodeManager; } - @Nonnull + @NotNull @Override protected Promise> getChildrenImpl() { return nodeManager.getChildren(getData(), @@ -137,7 +137,7 @@ public Promise> apply(List children) throws F } @Override - public void updatePresentation(@Nonnull NodePresentation presentation) { + public void updatePresentation(@NotNull NodePresentation presentation) { presentation.setPresentableText(getDisplayFqn()); presentation.setPresentableIcon(nodeManager.getJavaNodesResources().packageFolder()); } diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/AbstractJarEntryNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/AbstractJarEntryNode.java index daffe073d..1bfa1e99d 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/AbstractJarEntryNode.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/AbstractJarEntryNode.java @@ -15,7 +15,7 @@ import org.eclipse.che.ide.ext.java.client.project.node.JavaNodeManager; import org.eclipse.che.ide.ext.java.shared.JarEntry; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * @author Vlad Zhukovskiy @@ -24,11 +24,11 @@ public abstract class AbstractJarEntryNode extends AbstractJavaSyntheticNode extends SyntheticBasedNode { protected final JavaNodeManager nodeManager; - public AbstractJavaSyntheticNode(@Nonnull DataObject dataObject, - @Nonnull ProjectDescriptor projectDescriptor, - @Nonnull NodeSettings nodeSettings, - @Nonnull JavaNodeManager nodeManager) { + public AbstractJavaSyntheticNode(@NotNull DataObject dataObject, + @NotNull ProjectDescriptor projectDescriptor, + @NotNull NodeSettings nodeSettings, + @NotNull JavaNodeManager nodeManager) { super(dataObject, projectDescriptor, nodeSettings); this.nodeManager = nodeManager; } diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/ExternalLibrariesNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/ExternalLibrariesNode.java index d0d69f3af..1b016d621 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/ExternalLibrariesNode.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/ExternalLibrariesNode.java @@ -21,7 +21,7 @@ import org.eclipse.che.ide.project.node.SyntheticBasedNode; import org.eclipse.che.ide.ui.smartTree.presentation.NodePresentation; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -39,19 +39,19 @@ public ExternalLibrariesNode(@Assisted ProjectDescriptor projectDescriptor, this.javaNodeManager = javaNodeManager; } - @Nonnull + @NotNull @Override protected Promise> getChildrenImpl() { return javaNodeManager.getExternalLibraries(getProjectDescriptor()); } @Override - public void updatePresentation(@Nonnull NodePresentation presentation) { + public void updatePresentation(@NotNull NodePresentation presentation) { presentation.setPresentableIcon(javaNodeManager.getJavaNodesResources().librariesIcon()); presentation.setPresentableText(getName()); } - @Nonnull + @NotNull @Override public String getName() { return "External Libraries"; diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarContainerNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarContainerNode.java index bb2700bd2..c11fb0f72 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarContainerNode.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarContainerNode.java @@ -21,7 +21,7 @@ import org.eclipse.che.ide.ext.java.shared.Jar; import org.eclipse.che.ide.ui.smartTree.presentation.NodePresentation; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -32,23 +32,23 @@ public class JarContainerNode extends AbstractJavaSyntheticNode { public JarContainerNode(@Assisted Jar jar, @Assisted ProjectDescriptor projectDescriptor, @Assisted NodeSettings nodeSettings, - @Nonnull JavaNodeManager javaResourceNodeManager) { + @NotNull JavaNodeManager javaResourceNodeManager) { super(jar, projectDescriptor, nodeSettings, javaResourceNodeManager); } - @Nonnull + @NotNull @Override protected Promise> getChildrenImpl() { return nodeManager.getJarLibraryChildren(getProjectDescriptor(), getData().getId(), getSettings()); } @Override - public void updatePresentation(@Nonnull NodePresentation presentation) { + public void updatePresentation(@NotNull NodePresentation presentation) { presentation.setPresentableIcon(nodeManager.getJavaNodesResources().jarIcon()); presentation.setPresentableText(getData().getName()); } - @Nonnull + @NotNull @Override public String getName() { return getData().getName(); diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFileNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFileNode.java index dd08cb607..d0f1de41c 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFileNode.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFileNode.java @@ -34,8 +34,8 @@ import org.eclipse.che.ide.util.Pair; import org.vectomatic.dom.svg.ui.SVGImage; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.Collections; import java.util.List; @@ -51,13 +51,13 @@ public JarFileNode(@Assisted JarEntry jarEntry, @Assisted int libId, @Assisted ProjectDescriptor projectDescriptor, @Assisted NodeSettings nodeSettings, - @Nonnull JavaNodeManager nodeManager, - @Nonnull IconRegistry iconRegistry) { + @NotNull JavaNodeManager nodeManager, + @NotNull IconRegistry iconRegistry) { super(jarEntry, libId, projectDescriptor, nodeSettings, nodeManager); this.iconRegistry = iconRegistry; } - @Nonnull + @NotNull @Override protected Promise> getChildrenImpl() { return Promises.resolve(Collections.emptyList()); @@ -69,7 +69,7 @@ public void actionPerformed() { } @Override - public void updatePresentation(@Nonnull NodePresentation presentation) { + public void updatePresentation(@NotNull NodePresentation presentation) { presentation.setPresentableText(getDisplayName()); presentation.setPresentableIcon(isClassFile() ? nodeManager.getJavaNodesResources().javaClassIcon() : nodeManager.getNodesResources().file()); @@ -77,7 +77,7 @@ public void updatePresentation(@Nonnull NodePresentation presentation) { presentation.setInfoTextWrapper(Pair.of("(", ")")); } - @Nonnull + @NotNull @Override public String getName() { return getData().getName(); @@ -88,7 +88,7 @@ public boolean isLeaf() { return true; } - @Nonnull + @NotNull @Override public String getPath() { return getData().getPath(); diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFolderNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFolderNode.java index 3cc06dbf8..43874b2bc 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFolderNode.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/jar/JarFolderNode.java @@ -21,7 +21,7 @@ import org.eclipse.che.ide.ext.java.shared.JarEntry; import org.eclipse.che.ide.ui.smartTree.presentation.NodePresentation; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; import static org.eclipse.che.ide.ext.java.shared.JarEntry.JarEntryType.PACKAGE; @@ -35,24 +35,24 @@ public JarFolderNode(@Assisted JarEntry jarEntry, @Assisted int libId, @Assisted ProjectDescriptor projectDescriptor, @Assisted NodeSettings nodeSettings, - @Nonnull JavaNodeManager nodeManager) { + @NotNull JavaNodeManager nodeManager) { super(jarEntry, libId, projectDescriptor, nodeSettings, nodeManager); } - @Nonnull + @NotNull @Override protected Promise> getChildrenImpl() { return nodeManager.getJarChildren(getProjectDescriptor(), libId, getData().getPath(), getSettings()); } @Override - public void updatePresentation(@Nonnull NodePresentation presentation) { + public void updatePresentation(@NotNull NodePresentation presentation) { presentation.setPresentableText(getData().getName()); presentation.setPresentableIcon(getData().getType() == PACKAGE ? nodeManager.getJavaNodesResources().packageFolder() : nodeManager.getNodesResources().simpleRoot()); } - @Nonnull + @NotNull @Override public String getName() { return getData().getName(); diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenArchetype.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenArchetype.java index 3ff9d2fde..686de6b1a 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenArchetype.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenArchetype.java @@ -10,8 +10,8 @@ *******************************************************************************/ package org.eclipse.che.ide.extension.maven.client; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * Describes the Maven archetype. @@ -38,24 +38,24 @@ public class MavenArchetype { * @param repository * the repository where need to find the archetype */ - public MavenArchetype(@Nonnull String groupId, @Nonnull String artifactId, @Nonnull String version, @Nullable String repository) { + public MavenArchetype(@NotNull String groupId, @NotNull String artifactId, @NotNull String version, @Nullable String repository) { this.groupId = groupId; this.artifactId = artifactId; this.version = version; this.repository = repository; } - @Nonnull + @NotNull public String getGroupId() { return groupId; } - @Nonnull + @NotNull public String getArtifactId() { return artifactId; } - @Nonnull + @NotNull public String getVersion() { return version; } diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildView.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildView.java index 6ae1bb1f5..b4e27361b 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildView.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildView.java @@ -13,7 +13,7 @@ import org.eclipse.che.ide.api.mvp.View; import com.google.gwt.event.logical.shared.ValueChangeEvent; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** @@ -40,7 +40,7 @@ public interface ActionDelegate { } /** @return entered buildCommand */ - @Nonnull + @NotNull String getBuildCommand(); /** @@ -49,7 +49,7 @@ public interface ActionDelegate { * @param message * text what need to insert */ - void setBuildCommand(@Nonnull String message); + void setBuildCommand(@NotNull String message); /** Close dialog. */ diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildViewImpl.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildViewImpl.java index 38797656e..80af050d3 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildViewImpl.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/build/MavenBuildViewImpl.java @@ -27,7 +27,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** @@ -120,7 +120,7 @@ public void onClick(ClickEvent event) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getBuildCommand() { return buildCommand.getText(); @@ -128,7 +128,7 @@ public String getBuildCommand() { /** {@inheritDoc} */ @Override - public void setBuildCommand(@Nonnull String buildCommand) { + public void setBuildCommand(@NotNull String buildCommand) { this.buildCommand.setText(buildCommand); } diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java index fe2db5777..049c27fcd 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java @@ -29,7 +29,7 @@ import org.eclipse.che.ide.util.NameUtils; import org.eclipse.che.ide.util.loging.Log; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -77,7 +77,7 @@ public CreateMavenModulePresenter(CreateMavenModuleView view, ProjectServiceClie view.setDelegate(this); } - public void showDialog(@Nonnull CurrentProject project) { + public void showDialog(@NotNull CurrentProject project) { parentProject = project; view.setParentArtifactId(project.getAttributeValue(ARTIFACT_ID)); view.setGroupId(project.getAttributeValue(GROUP_ID)); diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenPagePresenter.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenPagePresenter.java index a79d1e8e6..2dc14b3ce 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenPagePresenter.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenPagePresenter.java @@ -27,7 +27,7 @@ import com.google.inject.Inject; import com.google.web.bindery.event.shared.EventBus; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -280,7 +280,7 @@ private void validateCoordinates() { } /** Reads single value of attribute from data-object. */ - @Nonnull + @NotNull private String getAttribute(String attrId) { Map> attributes = dataObject.getProject().getAttributes(); List values = attributes.get(attrId); diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenProjectWizardRegistrar.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenProjectWizardRegistrar.java index e4612c882..3c506fb3d 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenProjectWizardRegistrar.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/wizard/MavenProjectWizardRegistrar.java @@ -16,7 +16,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -38,17 +38,17 @@ public MavenProjectWizardRegistrar(Provider mavenPagePresent wizardPages.add(mavenPagePresenter); } - @Nonnull + @NotNull public String getProjectTypeId() { return MAVEN_ID; } - @Nonnull + @NotNull public String getCategory() { return JAVA_CATEGORY; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenValueProviderFactory.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenValueProviderFactory.java index e478453e7..d6be93cba 100644 --- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenValueProviderFactory.java +++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/server/projecttype/MavenValueProviderFactory.java @@ -28,7 +28,7 @@ import org.eclipse.che.ide.maven.tools.Model; import org.eclipse.che.ide.maven.tools.Resource; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.ArrayList; diff --git a/plugin-java/che-plugin-java-generator-archetype/src/main/java/org/eclipse/che/generator/archetype/ArchetypeGenerator.java b/plugin-java/che-plugin-java-generator-archetype/src/main/java/org/eclipse/che/generator/archetype/ArchetypeGenerator.java index 07e2cb3d9..72066296e 100644 --- a/plugin-java/che-plugin-java-generator-archetype/src/main/java/org/eclipse/che/generator/archetype/ArchetypeGenerator.java +++ b/plugin-java/che-plugin-java-generator-archetype/src/main/java/org/eclipse/che/generator/archetype/ArchetypeGenerator.java @@ -24,7 +24,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.inject.Inject; @@ -176,8 +176,8 @@ public GenerationTask getTaskById(Long id) throws ServerException { * @throws ServerException * if an error occurs while generating project */ - public GenerationTask generateFromArchetype(@Nonnull MavenArchetype archetype, @Nonnull String groupId, @Nonnull String artifactId, - @Nonnull String version) throws ServerException { + public GenerationTask generateFromArchetype(@NotNull MavenArchetype archetype, @NotNull String groupId, @NotNull String artifactId, + @NotNull String version) throws ServerException { Map archetypeProperties = new HashMap<>(); archetypeProperties.put("-DinteractiveMode", "false"); // get rid of the interactivity of the archetype plugin archetypeProperties.put("-DarchetypeGroupId", archetype.getGroupId()); diff --git a/plugin-php/che-plugin-php-ext-php/src/main/java/org/eclipse/che/ide/ext/php/client/wizard/PHPProjectWizardRegistrar.java b/plugin-php/che-plugin-php-ext-php/src/main/java/org/eclipse/che/ide/ext/php/client/wizard/PHPProjectWizardRegistrar.java index de22433f8..344d30df1 100644 --- a/plugin-php/che-plugin-php-ext-php/src/main/java/org/eclipse/che/ide/ext/php/client/wizard/PHPProjectWizardRegistrar.java +++ b/plugin-php/che-plugin-php-ext-php/src/main/java/org/eclipse/che/ide/ext/php/client/wizard/PHPProjectWizardRegistrar.java @@ -17,7 +17,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -34,17 +34,17 @@ public PHPProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return ProjectAttributes.PHP_ID; } - @Nonnull + @NotNull public String getCategory() { return ProjectAttributes.PHP_CATEGORY; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-python/che-plugin-python-ext-python/src/main/java/org/eclipse/che/ide/ext/python/client/wizard/PythonProjectWizardRegistrar.java b/plugin-python/che-plugin-python-ext-python/src/main/java/org/eclipse/che/ide/ext/python/client/wizard/PythonProjectWizardRegistrar.java index af87cb98b..42ef98877 100644 --- a/plugin-python/che-plugin-python-ext-python/src/main/java/org/eclipse/che/ide/ext/python/client/wizard/PythonProjectWizardRegistrar.java +++ b/plugin-python/che-plugin-python-ext-python/src/main/java/org/eclipse/che/ide/ext/python/client/wizard/PythonProjectWizardRegistrar.java @@ -17,7 +17,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -34,17 +34,17 @@ public PythonProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return ProjectAttributes.PYTHON_ID; } - @Nonnull + @NotNull public String getCategory() { return ProjectAttributes.PYTHON_CATEGORY; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/src/main/java/org/eclipse/che/ide/ext/ruby/client/wizard/RubyProjectWizardRegistrar.java b/plugin-ruby/che-plugin-ruby-ext-ruby/src/main/java/org/eclipse/che/ide/ext/ruby/client/wizard/RubyProjectWizardRegistrar.java index 31e4a214c..1de148c5a 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/src/main/java/org/eclipse/che/ide/ext/ruby/client/wizard/RubyProjectWizardRegistrar.java +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/src/main/java/org/eclipse/che/ide/ext/ruby/client/wizard/RubyProjectWizardRegistrar.java @@ -16,7 +16,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -37,17 +37,17 @@ public RubyProjectWizardRegistrar() { wizardPages = new ArrayList<>(); } - @Nonnull + @NotNull public String getProjectTypeId() { return RUBY_ID; } - @Nonnull + @NotNull public String getCategory() { return RUBY_CATEGORY; } - @Nonnull + @NotNull public List>> getWizardPages() { return wizardPages; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/RunnerLocalizationConstant.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/RunnerLocalizationConstant.java index ef2c92234..c46afa252 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/RunnerLocalizationConstant.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/RunnerLocalizationConstant.java @@ -13,8 +13,8 @@ import com.google.gwt.i18n.client.Messages; import com.google.inject.Singleton; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; /** * Contains all names of graphical elements needed for runner plugin. @@ -35,21 +35,21 @@ public interface RunnerLocalizationConstant extends Messages { @Key("accountGigabyteHoursLimit.error.message") String accountGigabyteHoursLimitErrorMessage(); - String environmentCooking(@Nonnull String projectName); + String environmentCooking(@NotNull String projectName); - String applicationStarting(@Nonnull String projectName); + String applicationStarting(@NotNull String projectName); - String applicationStopped(@Nonnull String projectName); + String applicationStopped(@NotNull String projectName); - String applicationFailed(@Nonnull String projectName); + String applicationFailed(@NotNull String projectName); - String applicationCanceled(@Nonnull String projectName); + String applicationCanceled(@NotNull String projectName); - String applicationMaybeStarted(@Nonnull String projectName); + String applicationMaybeStarted(@NotNull String projectName); - String applicationStarted(@Nonnull String projectName); + String applicationStarted(@NotNull String projectName); - String startApplicationFailed(@Nonnull String projectName); + String startApplicationFailed(@NotNull String projectName); String applicationLogsFailed(); @@ -69,13 +69,13 @@ public interface RunnerLocalizationConstant extends Messages { String messagesOverrideMemory(); @Key("messages.overrideLessRequiredMemory") - String messagesOverrideLessRequiredMemory(@Nonnegative int overrideRAM, @Nonnegative int requestedRAM); + String messagesOverrideLessRequiredMemory(@Min(value=0) int overrideRAM, @Min(value=0) int requestedRAM); @Key("messages.largeMemoryRequest") String messagesLargeMemoryRequest(); @Key("action.project.running.now") - String projectRunningNow(@Nonnull String project); + String projectRunningNow(@NotNull String project); @Key("titles.warning") String titlesWarning(); @@ -101,22 +101,22 @@ public interface RunnerLocalizationConstant extends Messages { String removeEnvironment(); @Key("remove.environment.message") - String removeEnvironmentMessage(@Nonnull String environmentName); + String removeEnvironmentMessage(@NotNull String environmentName); @Key("custom.runner.get.environment.failed") String customRunnerGetEnvironmentFailed(); @Key("messages.un.multiple.ram.value") - String ramSizeMustBeMultipleOf(@Nonnegative int multiple); + String ramSizeMustBeMultipleOf(@Min(value=0) int multiple); @Key("messages.incorrect.value") String messagesIncorrectValue(); @Key("messages.total.ram.less.custom") - String messagesTotalRamLessCustom(@Nonnegative int totalRam, @Nonnegative int customRam); + String messagesTotalRamLessCustom(@Min(value=0) int totalRam, @Min(value=0) int customRam); @Key("messages.available.ram.less.custom") - String messagesAvailableRamLessCustom(@Nonnegative int overrideRam, @Nonnegative int total, @Nonnegative int used); + String messagesAvailableRamLessCustom(@Min(value=0) int overrideRam, @Min(value=0) int total, @Min(value=0) int used); String runnerNotReady(); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActions.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActions.java index 962e69af6..14703637b 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActions.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActions.java @@ -17,8 +17,8 @@ import org.vectomatic.dom.svg.ui.SVGResource; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * The class contains general actions business logic of runners. @@ -29,9 +29,9 @@ public abstract class AbstractRunnerActions extends ProjectAction { private final AppContext appContext; - public AbstractRunnerActions(@Nonnull AppContext appContext, - @Nonnull String actionName, - @Nonnull String actionPrompt, + public AbstractRunnerActions(@NotNull AppContext appContext, + @NotNull String actionName, + @NotNull String actionPrompt, @Nullable SVGResource image) { super(actionName, actionPrompt, image); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/ChooseRunnerAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/ChooseRunnerAction.java index c2d0cd4dc..1c88ed384 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/ChooseRunnerAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/ChooseRunnerAction.java @@ -29,8 +29,8 @@ import org.eclipse.che.ide.ui.dropdown.DropDownHeaderWidget; import org.eclipse.che.ide.ui.dropdown.DropDownListFactory; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.LinkedList; import java.util.List; @@ -100,7 +100,7 @@ public Widget createCustomComponent(Presentation presentation) { * @param systemEnvironments * list of system environments */ - public void addSystemRunners(@Nonnull List systemEnvironments) { + public void addSystemRunners(@NotNull List systemEnvironments) { DefaultActionGroup runnersList = (DefaultActionGroup)actionManager.getAction(RUNNER_LIST); systemRunners.clear(); @@ -134,7 +134,7 @@ public void addSystemRunners(@Nonnull List systemEnvironments) { * @param projectEnvironments * list of system environments */ - public void addProjectRunners(@Nonnull List projectEnvironments) { + public void addProjectRunners(@NotNull List projectEnvironments) { DefaultActionGroup runnersList = (DefaultActionGroup)actionManager.getAction(RUNNER_LIST); projectRunners.clear(); @@ -162,7 +162,7 @@ public void addProjectRunners(@Nonnull List projectEnvironments) { selectDefaultRunner(); } - private void clearRunnerActions(@Nonnull DefaultActionGroup runnersList) { + private void clearRunnerActions(@NotNull DefaultActionGroup runnersList) { for (Action a : projectActions.getChildActionsOrStubs()) { runnersList.remove(a); } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/CreateCustomRunnerAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/CreateCustomRunnerAction.java index 2f2a5d777..03ed4b13a 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/CreateCustomRunnerAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/CreateCustomRunnerAction.java @@ -33,7 +33,7 @@ import org.eclipse.che.ide.rest.AsyncRequestCallback; import org.eclipse.che.ide.util.loging.Log; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.ext.runner.client.models.EnvironmentImpl.ROOT_FOLDER; @@ -114,7 +114,7 @@ public void onSuccess(ItemReference result) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { notificationManager.showError(reason.getMessage()); } }) @@ -123,7 +123,7 @@ public void onFailure(@Nonnull Throwable reason) { projectService.createFolder(path, callback); } - private void createFile(@Nonnull String content, @Nonnull String fileName) { + private void createFile(@NotNull String content, @NotNull String fileName) { String path = currentProject.getProjectDescription().getPath() + ROOT_FOLDER; AsyncRequestCallback callback = @@ -136,7 +136,7 @@ public void onSuccess(ItemReference result) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { Log.error(PropertiesPanelPresenter.class, reason.getMessage()); } }) diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/RunAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/RunAction.java index 5f50865f4..4cb082323 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/RunAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/actions/RunAction.java @@ -24,7 +24,7 @@ import org.eclipse.che.ide.ext.runner.client.manager.RunnerManager; import org.eclipse.che.ide.ext.runner.client.models.Environment; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Action which allows run project with default runner parameters. @@ -64,7 +64,7 @@ public RunAction(RunnerManager runnerManager, /** {@inheritDoc} */ @Override - public void actionPerformed(@Nonnull ActionEvent event) { + public void actionPerformed(@NotNull ActionEvent event) { eventLogger.log(this); CurrentProject currentProject = appContext.getCurrentProject(); if (currentProject == null) { diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/AsyncCallbackBuilder.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/AsyncCallbackBuilder.java index 7482ab841..347fad1c3 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/AsyncCallbackBuilder.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/AsyncCallbackBuilder.java @@ -17,7 +17,7 @@ import org.eclipse.che.ide.rest.Unmarshallable; import com.google.inject.Inject; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The builder that provides an ability to create an instance of {@link AsyncRequestCallback}. It has to simplify work flow of creating @@ -54,8 +54,8 @@ public AsyncCallbackBuilder(NotificationManager notificationManager, * callback that has to be added * @return an instance of builder with changed configuration */ - @Nonnull - public AsyncCallbackBuilder success(@Nonnull SuccessCallback successCallback) { + @NotNull + public AsyncCallbackBuilder success(@NotNull SuccessCallback successCallback) { this.successCallback = successCallback; return this; } @@ -67,8 +67,8 @@ public AsyncCallbackBuilder success(@Nonnull SuccessCallback successCallba * unmarshaller that has to be added * @return an instance of builder with changed configuration */ - @Nonnull - public AsyncCallbackBuilder unmarshaller(@Nonnull Unmarshallable unmarshaller) { + @NotNull + public AsyncCallbackBuilder unmarshaller(@NotNull Unmarshallable unmarshaller) { this.unmarshaller = unmarshaller; return this; } @@ -80,8 +80,8 @@ public AsyncCallbackBuilder unmarshaller(@Nonnull Unmarshallable unmarshal * class of unmarshaller * @return an instance of builder with changed configuration */ - @Nonnull - public AsyncCallbackBuilder unmarshaller(@Nonnull Class clazz) { + @NotNull + public AsyncCallbackBuilder unmarshaller(@NotNull Class clazz) { this.clazz = clazz; return this; } @@ -93,14 +93,14 @@ public AsyncCallbackBuilder unmarshaller(@Nonnull Class clazz) { * callback that has to be added * @return an instance of builder with changed configuration */ - @Nonnull - public AsyncCallbackBuilder failure(@Nonnull FailureCallback failureCallback) { + @NotNull + public AsyncCallbackBuilder failure(@NotNull FailureCallback failureCallback) { this.failureCallback = failureCallback; return this; } /** @return an instance of {link AsyncRequestCallback} with a given configuration */ - @Nonnull + @NotNull public AsyncRequestCallback build() { if (successCallback == null) { throw new IllegalStateException("You forgot to initialize success callback parameter. Please, fix it and try again."); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/FailureCallback.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/FailureCallback.java index e75c5a6ca..6cda9502e 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/FailureCallback.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/FailureCallback.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.runner.client.callbacks; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Class which describes methods to receive a failure response from a remote procedure call. @@ -25,5 +25,5 @@ public interface FailureCallback { * @param reason * exception which was thrown */ - void onFailure(@Nonnull Throwable reason); + void onFailure(@NotNull Throwable reason); } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerAsyncRequestCallback.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerAsyncRequestCallback.java index e7879bedf..536b152e8 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerAsyncRequestCallback.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerAsyncRequestCallback.java @@ -16,8 +16,8 @@ import org.eclipse.che.ide.rest.AsyncRequestCallback; import org.eclipse.che.ide.rest.Unmarshallable; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * Class to receive a response from a remote procedure call. @@ -34,10 +34,10 @@ public class RunnerAsyncRequestCallback extends AsyncRequestCallback { private final SuccessCallback successCallback; private final FailureCallback failureCallback; - public RunnerAsyncRequestCallback(@Nonnull NotificationManager notificationManager, - @Nonnull RunnerLocalizationConstant locale, + public RunnerAsyncRequestCallback(@NotNull NotificationManager notificationManager, + @NotNull RunnerLocalizationConstant locale, @Nullable Unmarshallable unmarshaller, - @Nonnull SuccessCallback successCallback, + @NotNull SuccessCallback successCallback, @Nullable FailureCallback failureCallback) { super(unmarshaller); this.notificationManager = notificationManager; @@ -48,13 +48,13 @@ public RunnerAsyncRequestCallback(@Nonnull NotificationManager notificationManag /** {@inheritDoc} */ @Override - protected void onSuccess(@Nonnull T result) { + protected void onSuccess(@NotNull T result) { successCallback.onSuccess(result); } /** {@inheritDoc} */ @Override - protected void onFailure(@Nonnull Throwable exception) { + protected void onFailure(@NotNull Throwable exception) { if (failureCallback != null) { failureCallback.onFailure(exception); return; diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallBackBuilder.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallBackBuilder.java index 35efb1224..80476931b 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallBackBuilder.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallBackBuilder.java @@ -16,7 +16,7 @@ import org.eclipse.che.ide.websocket.rest.Unmarshallable; import com.google.inject.Inject; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The builder that provides an ability to create an instance of {@link RequestCallback}. It has to simplify work flow of creating @@ -49,8 +49,8 @@ public RunnerRequestCallBackBuilder(NotificationManager notificationManager, Dto * callback that has to be added * @return an instance of builder with changed configuration */ - @Nonnull - public RunnerRequestCallBackBuilder success(@Nonnull SuccessCallback successCallback) { + @NotNull + public RunnerRequestCallBackBuilder success(@NotNull SuccessCallback successCallback) { this.successCallback = successCallback; return this; } @@ -62,8 +62,8 @@ public RunnerRequestCallBackBuilder success(@Nonnull SuccessCallback succe * unmarshaller that has to be added * @return an instance of builder with changed configuration */ - @Nonnull - public RunnerRequestCallBackBuilder unmarshaller(@Nonnull Unmarshallable unmarshaller) { + @NotNull + public RunnerRequestCallBackBuilder unmarshaller(@NotNull Unmarshallable unmarshaller) { this.unmarshaller = unmarshaller; return this; } @@ -75,8 +75,8 @@ public RunnerRequestCallBackBuilder unmarshaller(@Nonnull Unmarshallable u * class of unmarshaller * @return an instance of builder with changed configuration */ - @Nonnull - public RunnerRequestCallBackBuilder unmarshaller(@Nonnull Class clazz) { + @NotNull + public RunnerRequestCallBackBuilder unmarshaller(@NotNull Class clazz) { this.clazz = clazz; return this; } @@ -88,14 +88,14 @@ public RunnerRequestCallBackBuilder unmarshaller(@Nonnull Class clazz) { * callback that has to be added * @return an instance of builder with changed configuration */ - @Nonnull - public RunnerRequestCallBackBuilder failure(@Nonnull FailureCallback failureCallback) { + @NotNull + public RunnerRequestCallBackBuilder failure(@NotNull FailureCallback failureCallback) { this.failureCallback = failureCallback; return this; } /** @return an instance of {link RequestCallback} with a given configuration */ - @Nonnull + @NotNull public RequestCallback build() { if (successCallback == null) { throw new IllegalStateException("You forgot to initialize success callback parameter. Please, fix it and try again."); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallback.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallback.java index b4ce1d352..4574a0ab0 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallback.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/callbacks/RunnerRequestCallback.java @@ -14,8 +14,8 @@ import org.eclipse.che.ide.websocket.rest.RequestCallback; import org.eclipse.che.ide.websocket.rest.Unmarshallable; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * Class to receive a response from a remote procedure call. @@ -29,9 +29,9 @@ public class RunnerRequestCallback extends RequestCallback { private final SuccessCallback successCallback; private final NotificationManager notificationManager; - public RunnerRequestCallback(@Nonnull NotificationManager notificationManager, + public RunnerRequestCallback(@NotNull NotificationManager notificationManager, @Nullable Unmarshallable unmarshallable, - @Nonnull SuccessCallback successCallback, + @NotNull SuccessCallback successCallback, @Nullable FailureCallback failureCallback) { super(unmarshallable); this.notificationManager = notificationManager; diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/ActionId.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/ActionId.java index 76beee606..0145ad60b 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/ActionId.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/ActionId.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.runner.client.constants; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The class contains ids of runner components. @@ -25,12 +25,12 @@ public enum ActionId { private final String id; - ActionId(@Nonnull String id) { + ActionId(@NotNull String id) { this.id = id; } /** @return id of the runner component. */ - @Nonnull + @NotNull public String getId() { return id; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/TimeInterval.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/TimeInterval.java index 648f8af7a..7ea1aab0d 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/TimeInterval.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/constants/TimeInterval.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.runner.client.constants; -import javax.annotation.Nonnegative; +import javax.validation.constraints.Min; /** * The class store Integer representation of time intervals in milliseconds. @@ -23,12 +23,12 @@ public enum TimeInterval { private final int timeInterval; - TimeInterval(@Nonnegative int timeInterval) { + TimeInterval(@Min(value=0) int timeInterval) { this.timeInterval = timeInterval; } /** @return time interval value. */ - @Nonnegative + @Min(value=0) public int getValue() { return timeInterval; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/HandlerFactory.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/HandlerFactory.java index 64c1b138d..12577fe17 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/HandlerFactory.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/HandlerFactory.java @@ -14,7 +14,7 @@ import org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.common.LogMessagesHandler; import org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.common.LogMessagesHandler.ErrorHandler; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The factory for creating an instances of different handlers. @@ -31,6 +31,6 @@ public interface HandlerFactory { * handler that delegate actions which need to perform when error happened * @return an instance of {@link LogMessagesHandler} */ - @Nonnull - LogMessagesHandler createLogMessageHandler(@Nonnull Runner runner, @Nonnull ErrorHandler errorHandler); + @NotNull + LogMessagesHandler createLogMessageHandler(@NotNull Runner runner, @NotNull ErrorHandler errorHandler); } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/ModelsFactory.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/ModelsFactory.java index d07db2ef9..919399534 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/ModelsFactory.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/ModelsFactory.java @@ -16,8 +16,8 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * The factory for creating an instances of different models which use in the project. @@ -35,8 +35,8 @@ public interface ModelsFactory { * options which needs to be used * @return an instance of {@link Runner} */ - @Nonnull - Runner createRunner(@Nonnull RunOptions runOptions); + @NotNull + Runner createRunner(@NotNull RunOptions runOptions); /** * Creates a runner with runner options and environment name. It means the title of the runner will be generated with additional @@ -50,8 +50,8 @@ public interface ModelsFactory { * additional part of name for runner * @return an instance of {@link Runner} */ - @Nonnull - Runner createRunner(@Nonnull RunOptions runOptions, @Nonnull Scope scope, @Nullable String environmentName); + @NotNull + Runner createRunner(@NotNull RunOptions runOptions, @NotNull Scope scope, @Nullable String environmentName); /** * Creates environments with environment and scope. @@ -62,7 +62,7 @@ public interface ModelsFactory { * scope which need set to environment * @return an instance of {@link Environment} */ - @Nonnull - Environment createEnvironment(@Nonnull RunnerEnvironment runnerEnvironment, @Nonnull Scope scope); + @NotNull + Environment createEnvironment(@NotNull RunnerEnvironment runnerEnvironment, @NotNull Scope scope); } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/RunnerActionFactory.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/RunnerActionFactory.java index 6cd1e0cb3..14fb9defc 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/RunnerActionFactory.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/RunnerActionFactory.java @@ -21,7 +21,7 @@ import org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.subactions.StatusAction; import org.eclipse.che.ide.ext.runner.client.runneractions.impl.RunAction; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The factory for creating sub-actions for Launch action. @@ -39,8 +39,8 @@ public interface RunnerActionFactory { * notification that has to show status of process * @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.subactions.StatusAction} */ - @Nonnull - StatusAction createStatus(@Nonnull Notification notification); + @NotNull + StatusAction createStatus(@NotNull Notification notification); /** * Create an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.subactions.CheckHealthStatusAction} with a given notification for updating status of process. @@ -49,35 +49,35 @@ public interface RunnerActionFactory { * notification that has to show status of process * @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.subactions.CheckHealthStatusAction} */ - @Nonnull - CheckHealthStatusAction createCheckHealthStatus(@Nonnull Notification notification); + @NotNull + CheckHealthStatusAction createCheckHealthStatus(@NotNull Notification notification); /** @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.subactions.OutputAction} */ - @Nonnull + @NotNull OutputAction createOutput(); /** @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.LaunchAction} */ - @Nonnull + @NotNull LaunchAction createLaunch(); /** @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.CheckRamAndRunAction} */ - @Nonnull + @NotNull CheckRamAndRunAction createCheckRamAndRun(); /** @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.GetLogsAction} */ - @Nonnull + @NotNull GetLogsAction createGetLogs(); /** @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.GetRunningProcessesAction} */ - @Nonnull + @NotNull GetRunningProcessesAction createGetRunningProcess(); /** @return an instance of {@link RunAction} */ - @Nonnull + @NotNull RunAction createRun(); /** @return an instance of {@link org.eclipse.che.ide.ext.runner.client.runneractions.impl.StopAction} */ - @Nonnull + @NotNull StopAction createStop(); } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/WidgetFactory.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/WidgetFactory.java index e973f5eef..7f8867fd1 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/WidgetFactory.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/inject/factories/WidgetFactory.java @@ -31,7 +31,7 @@ import org.eclipse.che.ide.ext.runner.client.util.annotations.RunnerProperties; import org.vectomatic.dom.svg.ui.SVGResource; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The factory for creating an instances of the widget. @@ -49,8 +49,8 @@ public interface WidgetFactory { * icon which need set to button * @return an instance of {@link ButtonWidget} */ - @Nonnull - ButtonWidget createButton(@Nonnull String prompt, @Nonnull SVGResource resource); + @NotNull + ButtonWidget createButton(@NotNull String prompt, @NotNull SVGResource resource); /** * Creates console button widget with special icon. @@ -61,8 +61,8 @@ public interface WidgetFactory { * icon which need set to button * @return an instance of {@link ConsoleButton} */ - @Nonnull - ConsoleButton createConsoleButton(@Nonnull String prompt, @Nonnull SVGResource resource); + @NotNull + ConsoleButton createConsoleButton(@NotNull String prompt, @NotNull SVGResource resource); /** * Creates tab widget with special title. @@ -73,15 +73,15 @@ public interface WidgetFactory { * enum which contains values of height and width * @return an instance of {@link TabWidget} */ - @Nonnull - TabWidget createTab(@Nonnull String title, @Nonnull TabType tabType); + @NotNull + TabWidget createTab(@NotNull String title, @NotNull TabType tabType); /** * Creates runner widget. * * @return an instance of {@link RunnerWidget} */ - @Nonnull + @NotNull RunnerWidget createRunner(); /** @@ -89,7 +89,7 @@ public interface WidgetFactory { * * @return an instance of {@link EnvironmentWidget} */ - @Nonnull + @NotNull EnvironmentWidget createEnvironment(); /** @@ -99,15 +99,15 @@ public interface WidgetFactory { * runner that needs to be bound with a widget * @return an instance of {@link org.eclipse.che.ide.ext.runner.client.tabs.console.panel.Console} */ - @Nonnull - Console createConsole(@Nonnull Runner runner); + @NotNull + Console createConsole(@NotNull Runner runner); /** * Creates terminal widget. * * @return an instance of {@link Terminal} */ - @Nonnull + @NotNull Terminal createTerminal(); /** @@ -117,9 +117,9 @@ public interface WidgetFactory { * runner that needs to be bound with a widget * @return an instance of {@link PropertiesPanel} */ - @Nonnull + @NotNull @RunnerProperties - PropertiesPanel createPropertiesPanel(@Nonnull Runner runner); + PropertiesPanel createPropertiesPanel(@NotNull Runner runner); /** * Creates a properties panel widget for a given environment. @@ -128,16 +128,16 @@ public interface WidgetFactory { * environment that needs to be bound with a widget * @return an instance of {@link PropertiesPanel} */ - @Nonnull + @NotNull @EnvironmentProperties - PropertiesPanel createPropertiesPanel(@Nonnull Environment environment); + PropertiesPanel createPropertiesPanel(@NotNull Environment environment); /** * Creates stab of properties panel widget * * @return an instance of {@link PropertiesPanel} */ - @Nonnull + @NotNull PropertiesPanel createPropertiesPanel(); /** @@ -145,7 +145,7 @@ public interface WidgetFactory { * * @return an instance of {@link MoreInfo} */ - @Nonnull + @NotNull MoreInfo createMoreInfo(); /** @@ -155,8 +155,8 @@ public interface WidgetFactory { * url where full log is located * @return an instance of {@link FullLogMessageWidget} */ - @Nonnull - FullLogMessageWidget createFullLogMessage(@Nonnull String logUrl); + @NotNull + FullLogMessageWidget createFullLogMessage(@NotNull String logUrl); /** * Creates property button widget. @@ -167,15 +167,15 @@ public interface WidgetFactory { * background of button * @return an instance of {@link org.eclipse.che.ide.ext.runner.client.tabs.properties.button.PropertyButtonWidget} */ - @Nonnull - PropertyButtonWidget createPropertyButton(@Nonnull String title, @Nonnull Background background); + @NotNull + PropertyButtonWidget createPropertyButton(@NotNull String title, @NotNull Background background); /** * Creates menu widget on which we can add different entities to control panel displaying. * * @return an instance of {@link MenuWidget} */ - @Nonnull + @NotNull MenuWidget createMenuWidget(); /** @@ -185,7 +185,7 @@ public interface WidgetFactory { * name which need set to entry * @return an instance of {@link MenuEntry} */ - @Nonnull - MenuEntry createMenuEntry(@Nonnull String entryName); + @NotNull + MenuEntry createMenuEntry(@NotNull String entryName); } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManager.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManager.java index fcf2ca0a2..1007dd022 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManager.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManager.java @@ -16,7 +16,7 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * It is the main class of structure. It provides an ability to launch a new runner. It can launch default runner or custom runner. Default @@ -43,8 +43,8 @@ public interface RunnerManager { * configuration of the runner * @return new instance of the runner */ - @Nonnull - Runner launchRunner(@Nonnull RunOptions runOptions); + @NotNull + Runner launchRunner(@NotNull RunOptions runOptions); /** * Launch a new runner with given configurations. @@ -57,8 +57,8 @@ public interface RunnerManager { * configuration of the runner * @return new instance of the runner */ - @Nonnull - Runner launchRunner(@Nonnull RunOptions runOptions, @Nonnull Scope scope, @Nonnull String environmentName); + @NotNull + Runner launchRunner(@NotNull RunOptions runOptions, @NotNull Scope scope, @NotNull String environmentName); /** * Stops launch and run actions. @@ -66,6 +66,6 @@ public interface RunnerManager { * @param runner * runner which performs actions */ - void stopRunner(@Nonnull Runner runner); + void stopRunner(@NotNull Runner runner); } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java index f1a3bea1f..70c69b40d 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java @@ -68,8 +68,8 @@ import org.eclipse.che.ide.ext.runner.client.util.annotations.LeftPropertiesPanel; import org.eclipse.che.ide.ext.runner.client.util.annotations.RightPropertiesPanel; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; @@ -252,10 +252,10 @@ private void updateRunnerTimer() { view.updateMoreInfoPopup(selectedRunner); } - private void initializeLeftPanel(@Nonnull final PanelState panelState, - @Nonnull Provider tabBuilderProvider, - @Nonnull HistoryPanel historyPanel, - @Nonnull final TemplatesContainer templatesContainer) { + private void initializeLeftPanel(@NotNull final PanelState panelState, + @NotNull Provider tabBuilderProvider, + @NotNull HistoryPanel historyPanel, + @NotNull final TemplatesContainer templatesContainer) { TabSelectHandler historyHandler = new TabSelectHandler() { @Override public void onTabSelected() { @@ -299,7 +299,7 @@ public void onTabSelected() { leftTabContainer.addTab(templateTab); } - private void initializeLeftPropertiesPanel(@Nonnull Provider tabBuilderProvider) { + private void initializeLeftPropertiesPanel(@NotNull Provider tabBuilderProvider) { final TabSelectHandler consoleHandler = new TabSelectHandler() { @Override public void onTabSelected() { @@ -347,7 +347,7 @@ public void onTabSelected() { leftPropertiesContainer.addTab(propertiesTab); } - private void initializeRightPropertiesPanel(@Nonnull Provider tabBuilderProvider) { + private void initializeRightPropertiesPanel(@NotNull Provider tabBuilderProvider) { rightPropertiesContainer.addTab(consoleTab); TabSelectHandler terminalHandler = new TabSelectHandler() { @@ -378,7 +378,7 @@ public void onTabSelected() { } /** @return the GWT widget that is controlled by the presenter */ - @Nonnull + @NotNull public RunnerManagerView getView() { return view; } @@ -389,7 +389,7 @@ public RunnerManagerView getView() { * @param runner * runner which was changed */ - public void update(@Nonnull Runner runner) { + public void update(@NotNull Runner runner) { history.update(runner); if (runner.equals(selectedRunner) && history.isRunnerExist(runner)) { @@ -398,7 +398,7 @@ public void update(@Nonnull Runner runner) { } } - private void changeURLDependingOnState(@Nonnull Runner runner) { + private void changeURLDependingOnState(@NotNull Runner runner) { switch (runner.getStatus()) { case IN_PROGRESS: view.setApplicationURl(locale.uplAppWaitingForBoot()); @@ -486,7 +486,7 @@ public void onLogsButtonClicked() { /** {@inheritDoc} */ @Override - public void stopRunner(@Nonnull Runner runner) { + public void stopRunner(@NotNull Runner runner) { RunnerAction runnerAction = runnerActions.get(runner); if (runnerAction != null) { runnerAction.stop(); @@ -584,21 +584,21 @@ public Runner launchRunner() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override - public Runner launchRunner(@Nonnull RunOptions runOptions) { + public Runner launchRunner(@NotNull RunOptions runOptions) { return launchRunner(modelsFactory.createRunner(runOptions)); } /** {@inheritDoc} */ @Override - @Nonnull - public Runner launchRunner(@Nonnull RunOptions runOptions, @Nonnull Scope scope, @Nonnull String environmentName) { + @NotNull + public Runner launchRunner(@NotNull RunOptions runOptions, @NotNull Scope scope, @NotNull String environmentName) { return launchRunner(modelsFactory.createRunner(runOptions, scope, environmentName)); } - @Nonnull - private Runner launchRunner(@Nonnull Runner runner) { + @NotNull + private Runner launchRunner(@NotNull Runner runner) { if (runActionPermit.isAllowed()) { CurrentProject currentProject = appContext.getCurrentProject(); @@ -631,7 +631,7 @@ private Runner launchRunner(@Nonnull Runner runner) { /** {@inheritDoc} */ @Override - public void go(@Nonnull AcceptsOneWidget container) { + public void go(@NotNull AcceptsOneWidget container) { container.setWidget(view); } @@ -644,7 +644,7 @@ public void setActive() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getTitle() { return locale.runnerTitle(); @@ -666,7 +666,7 @@ public String getTitleToolTip() { /** {@inheritDoc} */ @Override - public void onProjectOpened(@Nonnull ProjectActionEvent projectActionEvent) { + public void onProjectOpened(@NotNull ProjectActionEvent projectActionEvent) { view.setEnableReRunButton(false); view.setEnableStopButton(false); view.setEnableLogsButton(false); @@ -696,7 +696,7 @@ public void onProjectClosing(ProjectActionEvent event) { /** {@inheritDoc} */ @Override - public void onProjectClosed(@Nonnull ProjectActionEvent projectActionEvent) { + public void onProjectClosed(@NotNull ProjectActionEvent projectActionEvent) { partStack.hidePart(this); selectionManager.setRunner(null); @@ -731,8 +731,8 @@ public void onProjectClosed(@Nonnull ProjectActionEvent projectActionEvent) { * The descriptor of new runner * @return instance of new runner */ - @Nonnull - public Runner addRunner(@Nonnull ApplicationProcessDescriptor processDescriptor) { + @NotNull + public Runner addRunner(@NotNull ApplicationProcessDescriptor processDescriptor) { RunOptions runOptions = dtoFactory.createDto(RunOptions.class); Runner runner = modelsFactory.createRunner(runOptions); @@ -771,7 +771,7 @@ public Runner addRunner(@Nonnull ApplicationProcessDescriptor processDescriptor) * @param runnerId * process id of runner */ - public void addRunnerId(@Nonnull Long runnerId) { + public void addRunnerId(@NotNull Long runnerId) { runnersId.add(runnerId); } @@ -781,13 +781,13 @@ public void addRunnerId(@Nonnull Long runnerId) { * @param runnerId * ID of runner */ - public boolean isRunnerExist(@Nonnull Long runnerId) { + public boolean isRunnerExist(@NotNull Long runnerId) { return runnersId.contains(runnerId); } /** {@inheritDoc} */ @Override - public void onSelectionChanged(@Nonnull Selection selection) { + public void onSelectionChanged(@NotNull Selection selection) { if (RUNNER.equals(selection)) { runnerSelected(); } else { diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerView.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerView.java index 059f86a60..34ad36610 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerView.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerView.java @@ -18,8 +18,8 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; import org.eclipse.che.ide.ext.runner.client.tabs.container.TabContainer; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * This is abstract representation of widget that provides an ability to show runners and manage them. @@ -38,7 +38,7 @@ public interface RunnerManagerView extends View { @Inject public ButtonWidgetImpl(RunnerResources resources, TooltipWidget tooltip, - @Nonnull @Assisted String prompt, - @Nonnull @Assisted SVGResource image) { + @NotNull @Assisted String prompt, + @NotNull @Assisted SVGResource image) { this.resources = resources; this.tooltip = tooltip; this.tooltip.setDescription(prompt); @@ -91,7 +91,7 @@ public void setEnable() { /** {@inheritDoc} */ @Override - public void setDelegate(@Nonnull ActionDelegate delegate) { + public void setDelegate(@NotNull ActionDelegate delegate) { this.delegate = delegate; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfo.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfo.java index a1fa6582b..b345a8a71 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfo.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfo.java @@ -13,7 +13,7 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; import com.google.gwt.user.client.ui.IsWidget; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; /** * Provides methods which allow update info about runner and display it on special widget. diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfoImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfoImpl.java index d404320e3..81909e7b9 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfoImpl.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/info/MoreInfoImpl.java @@ -22,7 +22,7 @@ import org.eclipse.che.ide.ext.runner.client.RunnerResources; import org.eclipse.che.ide.ext.runner.client.models.Runner; -import javax.annotation.Nullable; +import org.eclipse.che.commons.annotation.Nullable; import static org.eclipse.che.ide.ext.runner.client.manager.RunnerManagerPresenter.TIMER_STUB; diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidget.java index 1a55396ad..2f91d35ba 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidget.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidget.java @@ -16,7 +16,7 @@ import org.eclipse.che.ide.ext.runner.client.manager.menu.entry.MenuEntry; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The interface provides methods to control header menu. @@ -35,5 +35,5 @@ public interface MenuWidget extends IsWidget { * @param entry * entry which need add */ - void addEntry(@Nonnull MenuEntry entry); + void addEntry(@NotNull MenuEntry entry); } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidgetImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidgetImpl.java index 95caa02bd..18cbead7f 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidgetImpl.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/MenuWidgetImpl.java @@ -21,7 +21,7 @@ import org.eclipse.che.ide.ext.runner.client.manager.menu.entry.MenuEntry; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The class describes special widget which is header menu and contains menu entries. @@ -54,7 +54,7 @@ public SimplePanel getSpan() { /** {@inheritDoc} */ @Override - public void addEntry(@Nonnull MenuEntry entry) { + public void addEntry(@NotNull MenuEntry entry) { entityPanel.add(entry); } } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/entry/MenuEntryWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/entry/MenuEntryWidget.java index ae0609e54..6a2dbf243 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/entry/MenuEntryWidget.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/menu/entry/MenuEntryWidget.java @@ -25,7 +25,7 @@ import org.eclipse.che.ide.ext.runner.client.RunnerResources; import org.vectomatic.dom.svg.ui.SVGImage; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The class describes special widget which is entry in header menu. @@ -52,7 +52,7 @@ interface MenuEntityWidgetUiBinder extends UiBinder { private boolean isSplitterHidden; @Inject - public MenuEntryWidget(RunnerResources resources, @Nonnull @Assisted String entryName) { + public MenuEntryWidget(RunnerResources resources, @NotNull @Assisted String entryName) { this.resources = resources; initWidget(UI_BINDER.createAndBindUi(this)); @@ -68,7 +68,7 @@ public MenuEntryWidget(RunnerResources resources, @Nonnull @Assisted String entr /** {@inheritDoc} */ @Override - public void onClick(@Nonnull ClickEvent event) { + public void onClick(@NotNull ClickEvent event) { image.getElement().setInnerHTML(isSplitterHidden ? icon.toString() : ""); delegate.onEntryClicked(isSplitterHidden); @@ -78,7 +78,7 @@ public void onClick(@Nonnull ClickEvent event) { /** {@inheritDoc} */ @Override - public void setDelegate(@Nonnull ActionDelegate delegate) { + public void setDelegate(@NotNull ActionDelegate delegate) { this.delegate = delegate; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidget.java index e611bd857..84d12ecd6 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidget.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidget.java @@ -12,8 +12,8 @@ import com.google.inject.ImplementedBy; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; /** * Provides methods which allow work with tooltip widget. @@ -29,7 +29,7 @@ public interface TooltipWidget { * @param description * description which need set */ - void setDescription(@Nonnull String description); + void setDescription(@NotNull String description); /** * Sets coordinates where will be displayed tooltip. @@ -39,7 +39,7 @@ public interface TooltipWidget { * @param y * value of y coordinate */ - void setPopupPosition(@Nonnegative int x, @Nonnegative int y); + void setPopupPosition(@Min(value=0) int x, @Min(value=0) int y); /** Shows tooltip. */ void show(); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidgetImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidgetImpl.java index cb2e28ba7..135a931f8 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidgetImpl.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/tooltip/TooltipWidgetImpl.java @@ -18,7 +18,7 @@ import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The class contains methods which allow change view representation of tooltip widget. @@ -44,7 +44,7 @@ public TooltipWidgetImpl() { /** {@inheritDoc} */ @Override - public void setDescription(@Nonnull String description) { + public void setDescription(@NotNull String description) { this.description.setText(description); } } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Environment.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Environment.java index 770196520..b9f4cc1d1 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Environment.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Environment.java @@ -12,9 +12,9 @@ import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.Map; /** @@ -26,11 +26,11 @@ public interface Environment extends Comparable { /** @return name of current environment */ - @Nonnull + @NotNull String getName(); /** @return id of current environment */ - @Nonnull + @NotNull String getId(); /** @return description of current environment */ @@ -38,15 +38,15 @@ public interface Environment extends Comparable { String getDescription(); /** @return scope of current environment */ - @Nonnull + @NotNull Scope getScope(); /** @return path to current environment */ - @Nonnull + @NotNull String getPath(); /** @return value of ram for current environment */ - @Nonnegative + @Min(value=0) int getRam(); /** @@ -55,14 +55,14 @@ public interface Environment extends Comparable { * @param ram * ram which need set */ - void setRam(@Nonnegative int ram); + void setRam(@Min(value=0) int ram); /** @return type of current environment */ - @Nonnull + @NotNull String getType(); /** @return map which contains options for current environment */ - @Nonnull + @NotNull Map getOptions(); } \ No newline at end of file diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/EnvironmentImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/EnvironmentImpl.java index fcfc5e84f..7202b5845 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/EnvironmentImpl.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/EnvironmentImpl.java @@ -22,9 +22,9 @@ import org.eclipse.che.ide.ext.runner.client.util.GetEnvironmentsUtil; import org.eclipse.che.ide.rest.RestContext; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.Collections; import java.util.Map; @@ -55,8 +55,8 @@ public class EnvironmentImpl implements Environment { public EnvironmentImpl(@RestContext String restContext, AppContext appContext, GetEnvironmentsUtil util, - @Assisted @Nonnull RunnerEnvironment runnerEnvironment, - @Assisted @Nonnull Scope scope) { + @Assisted @NotNull RunnerEnvironment runnerEnvironment, + @Assisted @NotNull Scope scope) { this.runnerEnvironment = runnerEnvironment; this.scope = scope; this.ram = RAM.DEFAULT.getValue(); @@ -99,14 +99,14 @@ public EnvironmentImpl(@RestContext String restContext, } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getName() { return name; } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getId() { return id; @@ -120,14 +120,14 @@ public String getDescription() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public Scope getScope() { return scope; } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getPath() { return path; @@ -141,19 +141,19 @@ public int getRam() { /** {@inheritDoc} */ @Override - public void setRam(@Nonnegative int ram) { + public void setRam(@Min(value=0) int ram) { this.ram = ram; } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getType() { return type; } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public Map getOptions() { return options; @@ -161,7 +161,7 @@ public Map getOptions() { /** {@inheritDoc} */ @Override - public int compareTo(@Nonnull Environment otherEnvironment) { + public int compareTo(@NotNull Environment otherEnvironment) { return name.toLowerCase().compareTo(otherEnvironment.getName().toLowerCase()); } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Runner.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Runner.java index d850a4fed..64a3d001c 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Runner.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/Runner.java @@ -15,9 +15,9 @@ import org.eclipse.che.api.runner.dto.RunOptions; import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * It contains all necessary information for every Runner. @@ -32,7 +32,7 @@ public interface Runner { ApplicationProcessDescriptor getDescriptor(); /** @return title of tab which is active for current runner */ - @Nonnull + @NotNull String getActiveTab(); /** @@ -41,10 +41,10 @@ public interface Runner { * @param title * title of the active tab */ - void setActiveTab(@Nonnull String title); + void setActiveTab(@NotNull String title); /** @return amount of available RAM for current runner */ - @Nonnegative + @Min(value=0) int getRAM(); /** @@ -53,7 +53,7 @@ public interface Runner { * @param ram * new memory value */ - void setRAM(@Nonnegative int ram); + void setRAM(@Min(value=0) int ram); /** @return the date when this runner was launched */ String getCreationTime(); @@ -65,19 +65,19 @@ public interface Runner { void resetCreationTime(); /** @return string representation of runner timeout */ - @Nonnull + @NotNull String getTimeout(); /** @return string representation of runner active time */ - @Nonnull + @NotNull String getActiveTime(); /** @return string representation of time when runner was stopped */ - @Nonnull + @NotNull String getStopTime(); /** @return id of the environment */ - @Nonnull + @NotNull String getEnvironmentId(); /** @@ -85,7 +85,7 @@ public interface Runner { * * @return title of runner */ - @Nonnull + @NotNull String getTitle(); /** @@ -94,10 +94,10 @@ public interface Runner { * @param runnerTitle * title which need set */ - void setTitle(@Nonnull String runnerTitle); + void setTitle(@NotNull String runnerTitle); /** @return status of runner */ - @Nonnull + @NotNull Status getStatus(); /** @@ -106,7 +106,7 @@ public interface Runner { * @param status * new status that needs to be applied */ - void setStatus(@Nonnull Status status); + void setStatus(@NotNull Status status); /** @return url where application is running */ @Nullable @@ -129,11 +129,11 @@ public interface Runner { Link getStopUrl(); /** @return type of current runner */ - @Nonnull + @NotNull String getType(); /** @return scope of current runner */ - @Nonnull + @NotNull Scope getScope(); /** @@ -142,7 +142,7 @@ public interface Runner { * @param scope * scope which need set */ - void setScope(@Nonnull Scope scope); + void setScope(@NotNull Scope scope); /** * @return true when status is IN_PROGRESS, RUNNING, DONE, IN_QUEUE, TIMEOUT @@ -162,7 +162,7 @@ public interface Runner { long getProcessId(); /** @return options of a runner */ - @Nonnull + @NotNull RunOptions getOptions(); /** The list of available states of a runner. */ diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/RunnerImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/RunnerImpl.java index addcdec82..8bfb07cec 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/RunnerImpl.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/models/RunnerImpl.java @@ -25,9 +25,9 @@ import org.eclipse.che.ide.ext.runner.client.util.GetEnvironmentsUtil; import org.eclipse.che.ide.util.StringUtils; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; import java.util.Date; import java.util.EnumSet; import java.util.Objects; @@ -83,10 +83,10 @@ public class RunnerImpl implements Runner { * options which needs to be used */ @AssistedInject - public RunnerImpl(@Nonnull RunnerLocalizationConstant locale, - @Nonnull RunnerCounter runnerCounter, - @Nonnull GetEnvironmentsUtil util, - @Nonnull @Assisted RunOptions runOptions) { + public RunnerImpl(@NotNull RunnerLocalizationConstant locale, + @NotNull RunnerCounter runnerCounter, + @NotNull GetEnvironmentsUtil util, + @NotNull @Assisted RunOptions runOptions) { this(locale, runnerCounter, util, runOptions, SYSTEM, null); } @@ -104,11 +104,11 @@ public RunnerImpl(@Nonnull RunnerLocalizationConstant locale, * name of custom configuration */ @AssistedInject - public RunnerImpl(@Nonnull RunnerLocalizationConstant locale, - @Nonnull RunnerCounter runnerCounter, - @Nonnull GetEnvironmentsUtil util, - @Nonnull @Assisted RunOptions runOptions, - @Nonnull @Assisted Scope environmentScope, + public RunnerImpl(@NotNull RunnerLocalizationConstant locale, + @NotNull RunnerCounter runnerCounter, + @NotNull GetEnvironmentsUtil util, + @NotNull @Assisted RunOptions runOptions, + @NotNull @Assisted Scope environmentScope, @Nullable @Assisted String environmentName) { this.runOptions = runOptions; this.ram = runOptions.getMemorySize(); @@ -136,8 +136,8 @@ public RunnerImpl(@Nonnull RunnerLocalizationConstant locale, } - @Nonnull - private String getCorrectName(@Nonnull String environmentName) { + @NotNull + private String getCorrectName(@NotNull String environmentName) { int lastIndex = environmentName.lastIndexOf("/") + 1; return environmentName.substring(lastIndex, environmentName.length()); @@ -151,7 +151,7 @@ public ApplicationProcessDescriptor getDescriptor() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getActiveTab() { return activeTab; @@ -159,7 +159,7 @@ public String getActiveTab() { /** {@inheritDoc} */ @Override - public void setActiveTab(@Nonnull String tab) { + public void setActiveTab(@NotNull String tab) { activeTab = tab; } @@ -171,7 +171,7 @@ public int getRAM() { /** {@inheritDoc} */ @Override - public void setRAM(@Nonnegative int ram) { + public void setRAM(@Min(value=0) int ram) { this.ram = ram; } @@ -194,7 +194,7 @@ public void resetCreationTime() { /** {@inheritDoc} */ @Override - @Nonnull + @NotNull public String getTimeout() { if (!(DONE.equals(status) || RUNNING.equals(status))) { return TIMER_STUB; @@ -215,8 +215,8 @@ public String getTimeout() { return TIMER_STUB; } - @Nonnull - private String getTimeOut(@Nonnull RunnerMetric timeoutMetric) { + @NotNull + private String getTimeOut(@NotNull RunnerMetric timeoutMetric) { String timeout = timeoutMetric.getValue(); if (RunnerMetric.ALWAYS_ON.equals(timeout)) { @@ -237,8 +237,8 @@ private String getTimeOut(@Nonnull RunnerMetric timeoutMetric) { return StringUtils.timeMlsToHumanReadable((long)terminationTimeout); } - @Nonnull - private String getLifeTime(@Nonnull RunnerMetric lifeTimeMetric) { + @NotNull + private String getLifeTime(@NotNull RunnerMetric lifeTimeMetric) { String lifeTimeValue = lifeTimeMetric.getValue(); if (RunnerMetric.ALWAYS_ON.equals(lifeTimeValue)) { @@ -254,7 +254,7 @@ private String getLifeTime(@Nonnull RunnerMetric lifeTimeMetric) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getActiveTime() { return isAlive() ? StringUtils.timeSecToHumanReadable((System.currentTimeMillis() - creationTime) / ONE_SEC.getValue()) @@ -262,7 +262,7 @@ public String getActiveTime() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getStopTime() { if (isAlive()) { @@ -286,14 +286,14 @@ public String getStopTime() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getEnvironmentId() { return runOptions.getEnvironmentId(); } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getTitle() { return title; @@ -301,12 +301,12 @@ public String getTitle() { /** {@inheritDoc} */ @Override - public void setTitle(@Nonnull String title) { + public void setTitle(@NotNull String title) { this.title = title; } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public Status getStatus() { return status; @@ -314,7 +314,7 @@ public Status getStatus() { /** {@inheritDoc} */ @Override - public void setStatus(@Nonnull Status status) { + public void setStatus(@NotNull Status status) { this.status = status; } @@ -334,7 +334,7 @@ public String getApplicationURL() { return appUrl + getCodeServerParam(); } - @Nonnull + @NotNull private String getCodeServerParam() { String codeServerHref = getUrlByName("code server"); if (codeServerHref == null) { @@ -382,14 +382,14 @@ public Link getStopUrl() { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public String getType() { return type; } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public Scope getScope() { return scope; @@ -397,7 +397,7 @@ public Scope getScope() { /** {@inheritDoc} */ @Override - public void setScope(@Nonnull Scope scope) { + public void setScope(@NotNull Scope scope) { this.scope = scope; } @@ -408,7 +408,7 @@ public boolean isAlive() { } @Nullable - private String getUrlByName(@Nonnull String name) { + private String getUrlByName(@NotNull String name) { Link link = RunnerUtils.getLink(descriptor, name); return link == null ? null : link.getHref(); } @@ -427,7 +427,7 @@ public long getProcessId() { } @Nullable - private RunnerMetric getRunnerMetricByName(@Nonnull String name) { + private RunnerMetric getRunnerMetricByName(@NotNull String name) { if (descriptor == null) { return null; } @@ -442,7 +442,7 @@ private RunnerMetric getRunnerMetricByName(@Nonnull String name) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public RunOptions getOptions() { return runOptions; diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/AbstractRunnerAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/AbstractRunnerAction.java index 6b1185e0d..ecd849a64 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/AbstractRunnerAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/AbstractRunnerAction.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -38,7 +38,7 @@ protected AbstractRunnerAction() { * @param action * sub-action that needs to be added */ - protected void addAction(@Nonnull RunnerAction action) { + protected void addAction(@NotNull RunnerAction action) { actions.add(action); action.setListener(this); } @@ -60,7 +60,7 @@ public void stop() { /** {@inheritDoc} */ @Override - public void setListener(@Nonnull StopActionListener listener) { + public void setListener(@NotNull StopActionListener listener) { this.listener = listener; } @@ -84,7 +84,7 @@ public void perform() { /** {@inheritDoc} */ @Override - public void perform(@Nonnull Runner runner) { + public void perform(@NotNull Runner runner) { throw new UnsupportedOperationException("Not supported"); } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/RunnerAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/RunnerAction.java index a604431c7..6774e797f 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/RunnerAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/RunnerAction.java @@ -12,7 +12,7 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The general representation of runner manager action. It provides different actions which were bound to this action. @@ -28,7 +28,7 @@ public interface RunnerAction { * @param runner * runner that execute this action */ - void perform(@Nonnull Runner runner); + void perform(@NotNull Runner runner); /** Perform any actions which were bound to this action. */ void perform(); @@ -42,7 +42,7 @@ public interface RunnerAction { * @param listener * listener that has to detect stop process */ - void setListener(@Nonnull StopActionListener listener); + void setListener(@NotNull StopActionListener listener); /** Remove a listener that detects a stop process of action. */ void removeListener(); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/CheckRamAndRunAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/CheckRamAndRunAction.java index 1d3ae72ff..69b46dce5 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/CheckRamAndRunAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/CheckRamAndRunAction.java @@ -39,8 +39,8 @@ import org.eclipse.che.ide.ui.dialogs.confirm.ConfirmDialog; import org.eclipse.che.ide.ui.dialogs.message.MessageDialog; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.RAM.MB_4000; @@ -101,7 +101,7 @@ public CheckRamAndRunAction(RunnerServiceClient service, /** {@inheritDoc} */ @Override - public void perform(@Nonnull final Runner runner) { + public void perform(@NotNull final Runner runner) { this.runner = runner; project = appContext.getCurrentProject(); @@ -120,7 +120,7 @@ public void onSuccess(ResourcesDescriptor resourcesDescriptor) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { runnerUtil.showError(runner, constant.getResourcesFailed(), reason); } }) @@ -129,7 +129,7 @@ public void onFailure(@Nonnull Throwable reason) { service.getResources(callback); } - private void checkRamAndRunProject(@Nonnull ResourcesDescriptor resourcesDescriptor) { + private void checkRamAndRunProject(@NotNull ResourcesDescriptor resourcesDescriptor) { int totalMemory = Integer.valueOf(resourcesDescriptor.getTotalMemory()); int usedMemory = Integer.valueOf(resourcesDescriptor.getUsedMemory()); @@ -175,7 +175,7 @@ private void checkRamAndRunProject(@Nonnull ResourcesDescriptor resourcesDescrip runAction.perform(runner); } - @Nonnegative + @Min(value=0) private int getOverrideMemory() { ProjectDescriptor projectDescriptor = project.getProjectDescription(); @@ -184,7 +184,7 @@ private int getOverrideMemory() { return runner.getRAM(); } - private void initializeRunnerConfiguration(@Nonnull ProjectDescriptor projectDescriptor) { + private void initializeRunnerConfiguration(@NotNull ProjectDescriptor projectDescriptor) { RunnersDescriptor runners = projectDescriptor.getRunners(); if (runners == null) { @@ -198,7 +198,7 @@ private void initializeRunnerConfiguration(@Nonnull ProjectDescriptor projectDes } } - private void runProjectWithRequiredMemory(@Nonnegative final int requiredMemory, @Nonnegative int overrideMemory) { + private void runProjectWithRequiredMemory(@Min(value=0) final int requiredMemory, @Min(value=0) int overrideMemory) { /*Offer the user to run an application with requiredMemory * If the user selects OK, then runnerMemory = requiredMemory * Else we should terminate the Runner process*/ @@ -226,9 +226,9 @@ public void accepted() { messageDialog.show(); } - private boolean isSufficientMemory(@Nonnegative int totalMemory, - @Nonnegative int usedMemory, - @Nonnegative final int requiredMemory) { + private boolean isSufficientMemory(@Min(value=0) int totalMemory, + @Min(value=0) int usedMemory, + @Min(value=0) final int requiredMemory) { int availableMemory = totalMemory - usedMemory; if (availableMemory < requiredMemory) { dialogFactory.createChoiceDialog(constant.messagesAvailableLessOverrideMemoryTitle(), @@ -253,9 +253,9 @@ public void accepted() { return true; } - private boolean isOverrideMemoryCorrect(@Nonnegative int totalMemory, - @Nonnegative int usedMemory, - @Nonnegative final int overrideMemory) { + private boolean isOverrideMemoryCorrect(@Min(value=0) int totalMemory, + @Min(value=0) int usedMemory, + @Min(value=0) final int overrideMemory) { int availableMemory = totalMemory - usedMemory; if (availableMemory < overrideMemory) { dialogFactory.createChoiceDialog(constant.messagesAvailableLessOverrideMemoryTitle(), diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetLogsAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetLogsAction.java index 0da401ad0..aee784bbe 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetLogsAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetLogsAction.java @@ -30,7 +30,7 @@ import org.eclipse.che.ide.rest.AsyncRequestCallback; import org.eclipse.che.ide.rest.StringUnmarshaller; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Action for getting logs from current runner. @@ -69,7 +69,7 @@ public GetLogsAction(RunnerServiceClient service, /** {@inheritDoc} */ @Override - public void perform(@Nonnull final Runner runner) { + public void perform(@NotNull final Runner runner) { eventLogger.log(this); CurrentProject project = appContext.getCurrentProject(); @@ -95,7 +95,7 @@ public void onSuccess(String result) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { runnerUtil.showError(runner, constant.applicationLogsFailed(), reason); } }) diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetRunningProcessesAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetRunningProcessesAction.java index 8285aa77c..ee6d1e4bd 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetRunningProcessesAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/GetRunningProcessesAction.java @@ -37,7 +37,7 @@ import org.eclipse.che.ide.util.loging.Log; import org.eclipse.che.ide.websocket.rest.SubscriptionHandler; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; @@ -133,7 +133,7 @@ public void onSuccess(List result) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { Log.error(GetRunningProcessesAction.class, reason); } }) @@ -142,7 +142,7 @@ public void onFailure(@Nonnull Throwable reason) { service.getRunningProcesses(project.getProjectDescription().getPath(), callback); } - private boolean isNewOrRunningProcess(@Nonnull ApplicationProcessDescriptor processDescriptor) { + private boolean isNewOrRunningProcess(@NotNull ApplicationProcessDescriptor processDescriptor) { ApplicationStatus status = processDescriptor.getStatus(); return status == NEW || status == RUNNING; } @@ -168,7 +168,7 @@ protected void onErrorReceived(Throwable exception) { webSocketUtil.subscribeHandler(channel, processStartedHandler); } - private void prepareRunnerWithRunningApp(@Nonnull ApplicationProcessDescriptor processDescriptor) { + private void prepareRunnerWithRunningApp(@NotNull ApplicationProcessDescriptor processDescriptor) { Runner runner = runnerManagerPresenter.addRunner(processDescriptor); logsAction.perform(runner); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/RunAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/RunAction.java index 35c4a6ad9..1ea658cd4 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/RunAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/RunAction.java @@ -32,7 +32,7 @@ import org.eclipse.che.ide.ext.runner.client.util.RunnerUtil; import org.eclipse.che.ide.rest.AsyncRequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * This action executes a request on the server side for running a runner. Then it adds handlers for listening WebSocket messages from @@ -77,7 +77,7 @@ public RunAction(RunnerServiceClient service, /** {@inheritDoc} */ @Override - public void perform(@Nonnull final Runner runner) { + public void perform(@NotNull final Runner runner) { eventLogger.log(this); final CurrentProject project = appContext.getCurrentProject(); if (project == null) { @@ -104,7 +104,7 @@ public void onSuccess(ApplicationProcessDescriptor descriptor) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { if (project.getRunner() == null) { runnerUtil.showError(runner, locale.defaultRunnerAbsent(), null); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/StopAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/StopAction.java index 5c7b78b95..2cae6f281 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/StopAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/StopAction.java @@ -35,7 +35,7 @@ import org.eclipse.che.ide.ext.runner.client.util.RunnerUtil; import org.eclipse.che.ide.rest.AsyncRequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.api.notification.Notification.Status.FINISHED; import static org.eclipse.che.ide.api.notification.Notification.Status.PROGRESS; @@ -100,7 +100,7 @@ public StopAction(RunnerServiceClient service, /** {@inheritDoc} */ @Override - public void perform(@Nonnull final Runner runner) { + public void perform(@NotNull final Runner runner) { notification = new Notification(constant.messageRunnerShuttingDown(), PROGRESS); notificationManager.showNotification(notification); @@ -134,7 +134,7 @@ public void onSuccess(ApplicationProcessDescriptor result) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { runner.setStatus(FAILED); presenter.update(runner); runner.setProcessDescriptor(null); @@ -153,7 +153,7 @@ public void onFailure(@Nonnull Throwable reason) { service.stop(stopLink, callback); } - private void processStoppedMessage(@Nonnull ApplicationProcessDescriptor descriptor) { + private void processStoppedMessage(@NotNull ApplicationProcessDescriptor descriptor) { runner.setProcessDescriptor(descriptor); project.setIsRunningEnabled(true); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetProjectEnvironmentsAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetProjectEnvironmentsAction.java index 9142dd0ef..68927ddc6 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetProjectEnvironmentsAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetProjectEnvironmentsAction.java @@ -32,7 +32,7 @@ import org.eclipse.che.ide.ext.runner.client.util.RunnerUtil; import org.eclipse.che.ide.rest.AsyncRequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; import static org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope.PROJECT; @@ -106,7 +106,7 @@ public void onSuccess(RunnerEnvironmentTree result) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { notificationManager.showError(locale.customRunnerGetEnvironmentFailed()); } }) @@ -115,9 +115,9 @@ public void onFailure(@Nonnull Throwable reason) { projectService.getRunnerEnvironments(descriptor.getPath(), callback); } - private void setDefaultRunner(@Nonnull String defaultRunner, - @Nonnull List projectEnvironments, - @Nonnull TemplatesContainer panel) { + private void setDefaultRunner(@NotNull String defaultRunner, + @NotNull List projectEnvironments, + @NotNull TemplatesContainer panel) { if (!defaultRunner.startsWith(ENVIRONMENT_PREFIX)) { return; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetSystemEnvironmentsAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetSystemEnvironmentsAction.java index 13793ad3c..963865fe5 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetSystemEnvironmentsAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/environments/GetSystemEnvironmentsAction.java @@ -32,7 +32,7 @@ import org.eclipse.che.ide.ext.runner.client.util.RunnerUtil; import org.eclipse.che.ide.rest.AsyncRequestCallback; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.List; import static org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope.SYSTEM; @@ -103,7 +103,7 @@ public void onSuccess(RunnerEnvironmentTree result) { }) .failure(new FailureCallback() { @Override - public void onFailure(@Nonnull Throwable reason) { + public void onFailure(@NotNull Throwable reason) { notificationManager.showError(locale.customRunnerGetEnvironmentFailed()); } }) @@ -116,7 +116,7 @@ public void onFailure(@Nonnull Throwable reason) { } } - private void getEnvironments(@Nonnull RunnerEnvironmentTree tree) { + private void getEnvironments(@NotNull RunnerEnvironmentTree tree) { CurrentProject currentProject = appContext.getCurrentProject(); if (currentProject == null) { diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/LaunchAction.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/LaunchAction.java index 85c49269d..1cc4b3da2 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/LaunchAction.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/LaunchAction.java @@ -23,7 +23,7 @@ import org.eclipse.che.ide.ext.runner.client.runneractions.RunnerAction; import org.eclipse.che.ide.ext.runner.client.tabs.console.container.ConsoleContainer; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import static org.eclipse.che.ide.api.notification.Notification.Status.PROGRESS; @@ -58,7 +58,7 @@ public LaunchAction(NotificationManager notificationManager, /** {@inheritDoc} */ @Override - public void perform(@Nonnull Runner runner) { + public void perform(@NotNull Runner runner) { CurrentProject project = appContext.getCurrentProject(); if (project == null) { return; diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessage.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessage.java index 07b6059f3..c16900dec 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessage.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessage.java @@ -10,8 +10,8 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.runner.client.runneractions.impl.launch.common; -import javax.annotation.Nonnegative; -import javax.annotation.Nonnull; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; /** * It contains information about received message from server. @@ -23,19 +23,19 @@ public class LogMessage { private final int lineNumber; private final String text; - public LogMessage(@Nonnegative int lineNumber, @Nonnull String text) { + public LogMessage(@Min(value=0) int lineNumber, @NotNull String text) { this.lineNumber = lineNumber; this.text = text; } /** @return number of message line */ - @Nonnegative + @Min(value=0) public int getNumber() { return lineNumber; } /** @return content that needs to shown in the line */ - @Nonnull + @NotNull public String getText() { return text; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessagesHandler.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessagesHandler.java index e4d68d01d..639dc83d7 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessagesHandler.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/LogMessagesHandler.java @@ -20,7 +20,7 @@ import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.HashMap; import java.util.Map; @@ -47,8 +47,8 @@ public class LogMessagesHandler extends SubscriptionHandler { public LogMessagesHandler(LogMessageUnmarshaller unmarshaller, ConsoleContainer consoleContainer, TimerFactory timerFactory, - @Nonnull @Assisted Runner runner, - @Nonnull @Assisted ErrorHandler errorHandler) { + @NotNull @Assisted Runner runner, + @NotNull @Assisted ErrorHandler errorHandler) { super(unmarshaller); this.runner = runner; @@ -111,7 +111,7 @@ private void printAllPostponedMessages() { } } - private void printLine(@Nonnull LogMessage logMessage) { + private void printLine(@NotNull LogMessage logMessage) { consoleContainer.print(runner, logMessage.getText()); lastPrintedMessageNum = logMessage.getNumber(); } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/RunnerApplicationStatusEvent.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/RunnerApplicationStatusEvent.java index 2943a3aee..5d5d989ac 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/RunnerApplicationStatusEvent.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/runneractions/impl/launch/common/RunnerApplicationStatusEvent.java @@ -13,7 +13,7 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; import com.google.web.bindery.event.shared.Event; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Client event sent by the runner extension when running application status is updated. @@ -28,7 +28,7 @@ public class RunnerApplicationStatusEvent extends Event scopes; - public Tab(@Nonnull String title, - @Nonnull TabPresenter tabPresenter, - @Nonnull Set scopes, + public Tab(@NotNull String title, + @NotNull TabPresenter tabPresenter, + @NotNull Set scopes, @Nullable TabSelectHandler handler, - @Nonnull TabType tabType, - @Nonnull VisibleState visibleState) { + @NotNull TabType tabType, + @NotNull VisibleState visibleState) { this.title = title; this.tabPresenter = tabPresenter; this.scopes = scopes; @@ -53,19 +53,19 @@ public Tab(@Nonnull String title, } /** @return title for the current tab */ - @Nonnull + @NotNull public String getTitle() { return title; } /** @return widget of the current tab */ - @Nonnull + @NotNull public TabPresenter getTab() { return tabPresenter; } /** Sets scopes to current type. */ - public void setScopes(@Nonnull Set scopes) { + public void setScopes(@NotNull Set scopes) { this.scopes = scopes; } @@ -76,7 +76,7 @@ public void setScopes(@Nonnull Set scopes) { * current scope * @return true if need to show this tab false otherwise */ - public boolean isAvailableScope(@Nonnull State scope) { + public boolean isAvailableScope(@NotNull State scope) { return scopes.contains(scope); } @@ -90,7 +90,7 @@ public void performHandler() { } /** @return type of tab */ - @Nonnull + @NotNull public TabType getTabType() { return tabType; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabBuilder.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabBuilder.java index 837a8e6cd..bd9e26f15 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabBuilder.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabBuilder.java @@ -17,7 +17,7 @@ import org.eclipse.che.ide.ext.runner.client.tabs.container.TabContainer.TabSelectHandler; import org.eclipse.che.ide.ext.runner.client.tabs.container.tab.TabType; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.Set; import static org.eclipse.che.ide.ext.runner.client.tabs.common.Tab.VisibleState.REMOVABLE; @@ -51,8 +51,8 @@ public TabBuilder() { * title that needs to be used * @return an instance of {@link TabBuilder} */ - @Nonnull - public TabBuilder title(@Nonnull String title) { + @NotNull + public TabBuilder title(@NotNull String title) { this.title = title; return this; } @@ -64,8 +64,8 @@ public TabBuilder title(@Nonnull String title) { * presenter of widget that needs to be shown * @return an instance of {@link TabBuilder} */ - @Nonnull - public TabBuilder presenter(@Nonnull TabPresenter presenter) { + @NotNull + public TabBuilder presenter(@NotNull TabPresenter presenter) { this.presenter = presenter; return this; } @@ -77,8 +77,8 @@ public TabBuilder presenter(@Nonnull TabPresenter presenter) { * scope these need to be used * @return an instance of {@link TabBuilder} */ - @Nonnull - public TabBuilder scope(@Nonnull Set scopes) { + @NotNull + public TabBuilder scope(@NotNull Set scopes) { this.scopes = scopes; return this; } @@ -90,8 +90,8 @@ public TabBuilder scope(@Nonnull Set scopes) { * handler that needs to be added * @return an instance of {@link TabBuilder} */ - @Nonnull - public TabBuilder selectHandler(@Nonnull TabSelectHandler handler) { + @NotNull + public TabBuilder selectHandler(@NotNull TabSelectHandler handler) { this.handler = handler; return this; } @@ -103,8 +103,8 @@ public TabBuilder selectHandler(@Nonnull TabSelectHandler handler) { * height of tab that needs to be added * @return an instance of {@link TabBuilder} */ - @Nonnull - public TabBuilder tabType(@Nonnull TabType tabType) { + @NotNull + public TabBuilder tabType(@NotNull TabType tabType) { this.tabType = tabType; return this; } @@ -116,14 +116,14 @@ public TabBuilder tabType(@Nonnull TabType tabType) { * visibility state that needs to be applied for tab * @return an instance of {@link TabBuilder} */ - @Nonnull - public TabBuilder visible(@Nonnull VisibleState visibleState) { + @NotNull + public TabBuilder visible(@NotNull VisibleState visibleState) { this.visibleState = visibleState; return this; } /** @return an instance of {@link Tab} with given parameters */ - @Nonnull + @NotNull public Tab build() { if (title == null) { throw new IllegalStateException("You forgot to initialize 'Title' value. Please, initialize it and try again."); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabPresenter.java index ab00326ea..00728c697 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabPresenter.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/TabPresenter.java @@ -14,7 +14,7 @@ import org.eclipse.che.ide.api.mvp.Presenter; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Provides general methods which must be implemented by all presenters which are added in tab container. @@ -25,7 +25,7 @@ public interface TabPresenter extends Presenter { /** @return view representation of current tab. */ - @Nonnull + @NotNull IsWidget getView(); /** diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidget.java index 64e58022a..2d0882841 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidget.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidget.java @@ -18,8 +18,8 @@ import org.eclipse.che.ide.api.mvp.View; import org.vectomatic.dom.svg.ui.SVGImage; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * Provides methods which allow change visual representation of runner. @@ -42,7 +42,7 @@ public interface ItemWidget extends View { * @param name * name which need set */ - void setName(@Nonnull String name); + void setName(@NotNull String name); /** * Sets description to special place on widget. @@ -58,7 +58,7 @@ public interface ItemWidget extends View { * @param time * time which need set */ - void setStartTime(@Nonnull String time); + void setStartTime(@NotNull String time); /** * Sets svg image to special place on widget. @@ -66,7 +66,7 @@ public interface ItemWidget extends View { * @param image * image which need set */ - void setImage(@Nonnull SVGImage image); + void setImage(@NotNull SVGImage image); /** * Sets image to special place on widget. @@ -74,10 +74,10 @@ public interface ItemWidget extends View { * @param imageResource * image which need set */ - void setImage(@Nonnull ImageResource imageResource); + void setImage(@NotNull ImageResource imageResource); /** @return an instance of {@link FlowPanel} on which is displayed runner status icon. */ - @Nonnull + @NotNull SimpleLayoutPanel getImagePanel(); interface ActionDelegate { diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidgetImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidgetImpl.java index 3c8a3fd68..e0ee79a61 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidgetImpl.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/ItemWidgetImpl.java @@ -26,8 +26,8 @@ import org.eclipse.che.ide.ext.runner.client.RunnerResources; import org.vectomatic.dom.svg.ui.SVGImage; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import javax.validation.constraints.NotNull; +import org.eclipse.che.commons.annotation.Nullable; /** * Class provides general view representation for runners and environments. @@ -89,7 +89,7 @@ public void unSelect() { /** {@inheritDoc} */ @Override - public void setDelegate(@Nonnull ActionDelegate delegate) { + public void setDelegate(@NotNull ActionDelegate delegate) { this.delegate = delegate; } @@ -101,7 +101,7 @@ public void onClick(ClickEvent event) { /** {@inheritDoc} */ @Override - public void setName(@Nonnull String name) { + public void setName(@NotNull String name) { this.ensureDebugId(name); runnerName.setText(name); } @@ -114,13 +114,13 @@ public void setDescription(@Nullable String description) { /** {@inheritDoc} */ @Override - public void setStartTime(@Nonnull String time) { + public void setStartTime(@NotNull String time) { startTime.setText(time); } /** {@inheritDoc} */ @Override - public void setImage(@Nonnull SVGImage svgImageResource) { + public void setImage(@NotNull SVGImage svgImageResource) { svgImage.clear(); svgImage.add(svgImageResource); svgImage.getElement().getStyle().setZIndex(-1); @@ -130,13 +130,13 @@ public void setImage(@Nonnull SVGImage svgImageResource) { /** {@inheritDoc} */ @Override - public void setImage(@Nonnull ImageResource imageResource) { + public void setImage(@NotNull ImageResource imageResource) { pngImage.setResource(imageResource); image.setWidget(pngImage); } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public SimpleLayoutPanel getImagePanel() { return imagePanel; diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/RunnerItems.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/RunnerItems.java index 8eb2bf67a..3935759c6 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/RunnerItems.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/common/item/RunnerItems.java @@ -12,7 +12,7 @@ import com.google.gwt.user.client.ui.IsWidget; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * Provides methods which are general for runner and environment widget. @@ -33,5 +33,5 @@ public interface RunnerItems extends IsWidget { * @param item * runner or environment item which need update */ - void update(@Nonnull T item); + void update(@NotNull T item); } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/button/ConsoleButtonImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/button/ConsoleButtonImpl.java index 450cceb66..7d25eee1b 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/button/ConsoleButtonImpl.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/button/ConsoleButtonImpl.java @@ -31,7 +31,7 @@ import org.vectomatic.dom.svg.ui.SVGImage; import org.vectomatic.dom.svg.ui.SVGResource; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * @author Andrey Plotnikov @@ -60,8 +60,8 @@ interface ConsoleButtonImplUiBinder extends UiBinder @Inject public ConsoleButtonImpl(RunnerResources resources, TooltipWidget tooltip, - @Nonnull @Assisted String prompt, - @Nonnull @Assisted SVGResource image) { + @NotNull @Assisted String prompt, + @NotNull @Assisted SVGResource image) { this.resources = resources; this.tooltip = tooltip; this.tooltip.setDescription(prompt); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainer.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainer.java index ab73a6dd7..bc6ef0a79 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainer.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainer.java @@ -15,7 +15,7 @@ import org.eclipse.che.ide.ext.runner.client.models.Runner; import org.eclipse.che.ide.ext.runner.client.tabs.common.TabPresenter; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The common representation of console container widget. This widget provides an ability to manager many console widgets for every runner. @@ -34,7 +34,7 @@ public interface ConsoleContainer extends TabPresenter { * @param message * message that needs to be printed */ - void print(@Nonnull Runner runner, @Nonnull String message); + void print(@NotNull Runner runner, @NotNull String message); /** * Prints a given message with info content in the console for a given runner. @@ -45,7 +45,7 @@ public interface ConsoleContainer extends TabPresenter { * @param message * message that needs to be printed */ - void printInfo(@Nonnull Runner runner, @Nonnull String message); + void printInfo(@NotNull Runner runner, @NotNull String message); /** * Prints a given message with error content in the console for a given runner. @@ -56,7 +56,7 @@ public interface ConsoleContainer extends TabPresenter { * @param message * message that needs to be printed */ - void printError(@Nonnull Runner runner, @Nonnull String message); + void printError(@NotNull Runner runner, @NotNull String message); /** * Prints a given message with warning content in the console for a given runner. @@ -67,13 +67,13 @@ public interface ConsoleContainer extends TabPresenter { * @param message * message that needs to be printed */ - void printWarn(@Nonnull Runner runner, @Nonnull String message); + void printWarn(@NotNull Runner runner, @NotNull String message); /** Cleans the data of the console widgets. */ void reset(); /** Deletes console by Runner. */ - void deleteConsoleByRunner(@Nonnull Runner runner); + void deleteConsoleByRunner(@NotNull Runner runner); /** * Changes visibility of the no runner label. diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerPresenter.java index deada503e..8ea05f999 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerPresenter.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerPresenter.java @@ -21,7 +21,7 @@ import org.eclipse.che.ide.ext.runner.client.selection.SelectionManager; import org.eclipse.che.ide.ext.runner.client.tabs.console.panel.Console; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.HashMap; import java.util.Map; @@ -55,28 +55,28 @@ public ConsoleContainerPresenter(ConsoleContainerView view, WidgetFactory widget /** {@inheritDoc} */ @Override - public void print(@Nonnull Runner runner, @Nonnull String message) { + public void print(@NotNull Runner runner, @NotNull String message) { Console console = getConsoleOrCreate(runner); console.print(message); } /** {@inheritDoc} */ @Override - public void printInfo(@Nonnull Runner runner, @Nonnull String message) { + public void printInfo(@NotNull Runner runner, @NotNull String message) { Console console = getConsoleOrCreate(runner); console.printInfo(message); } /** {@inheritDoc} */ @Override - public void printError(@Nonnull Runner runner, @Nonnull String message) { + public void printError(@NotNull Runner runner, @NotNull String message) { Console console = getConsoleOrCreate(runner); console.printError(message); } /** {@inheritDoc} */ @Override - public void printWarn(@Nonnull Runner runner, @Nonnull String message) { + public void printWarn(@NotNull Runner runner, @NotNull String message) { Console console = getConsoleOrCreate(runner); console.printWarn(message); } @@ -93,7 +93,7 @@ public void reset() { /** {@inheritDoc} */ @Override - public void onSelectionChanged(@Nonnull Selection selection) { + public void onSelectionChanged(@NotNull Selection selection) { if (Selection.ENVIRONMENT.equals(selection)) { return; } @@ -107,8 +107,8 @@ public void onSelectionChanged(@Nonnull Selection selection) { view.showWidget(selectedConsole); } - @Nonnull - private Console getConsoleOrCreate(@Nonnull Runner runner) { + @NotNull + private Console getConsoleOrCreate(@NotNull Runner runner) { Console result = consoles.get(runner); if (result == null) { result = widgetFactory.createConsole(runner); @@ -119,7 +119,7 @@ private Console getConsoleOrCreate(@Nonnull Runner runner) { } /** {@inheritDoc} */ - @Nonnull + @NotNull @Override public IsWidget getView() { return view; @@ -170,7 +170,7 @@ public void onCleanClicked() { /** {@inheritDoc} */ @Override - public void deleteConsoleByRunner(@Nonnull Runner runner) { + public void deleteConsoleByRunner(@NotNull Runner runner) { Console console = consoles.get(runner); view.removeWidget(console); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerView.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerView.java index 3da6392c6..b33f4ff1b 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerView.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/container/ConsoleContainerView.java @@ -15,7 +15,7 @@ import org.eclipse.che.ide.api.mvp.View; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * The abstract representation of console container widget UI part. @@ -32,7 +32,7 @@ public interface ConsoleContainerView extends View { public ConsoleImpl(RunnerResources resources, Provider messageBuilderProvider, WidgetFactory widgetFactory, - @Nonnull @Assisted Runner runner) { + @NotNull @Assisted Runner runner) { this.res = resources; this.messageBuilderProvider = messageBuilderProvider; this.widgetFactory = widgetFactory; @@ -82,7 +82,7 @@ public ConsoleImpl(RunnerResources resources, /** {@inheritDoc} */ @Override - public void print(@Nonnull String text) { + public void print(@NotNull String text) { // nothing to display if (text.isEmpty()) { return; @@ -112,7 +112,7 @@ public void print(@Nonnull String text) { /** {@inheritDoc} */ @Override - public void printInfo(@Nonnull String line) { + public void printInfo(@NotNull String line) { MessageBuilder messageBuilder = messageBuilderProvider.get() .type(INFO) .message(INFO.getPrefix() + ' ' + line); @@ -121,7 +121,7 @@ public void printInfo(@Nonnull String line) { /** {@inheritDoc} */ @Override - public void printError(@Nonnull String line) { + public void printError(@NotNull String line) { MessageBuilder messageBuilder = messageBuilderProvider.get() .type(ERROR) .message(ERROR.getPrefix() + ' ' + line); @@ -130,14 +130,14 @@ public void printError(@Nonnull String line) { /** {@inheritDoc} */ @Override - public void printWarn(@Nonnull String line) { + public void printWarn(@NotNull String line) { MessageBuilder messageBuilder = messageBuilderProvider.get() .type(WARNING) .message(WARNING.getPrefix() + ' ' + line); print(messageBuilder.build()); } - private void print(@Nonnull SafeHtml message) { + private void print(@NotNull SafeHtml message) { cleanOverHeadLinesIfAny(); HTML html = new HTML(message); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/FullLogMessageWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/FullLogMessageWidget.java index f6c63c647..62f94c617 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/FullLogMessageWidget.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/FullLogMessageWidget.java @@ -19,7 +19,7 @@ import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; /** * THe widget that show url where full log is located. @@ -28,7 +28,7 @@ */ public class FullLogMessageWidget extends HTML { @Inject - public FullLogMessageWidget(RunnerResources resources, RunnerLocalizationConstant locale, @Nonnull @Assisted String logUrl) { + public FullLogMessageWidget(RunnerResources resources, RunnerLocalizationConstant locale, @NotNull @Assisted String logUrl) { addStyleName(resources.runnerCss().logLink()); Element text = DOM.createSpan(); diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/Lines.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/Lines.java index b73f7d76a..46c5b68a3 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/Lines.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/Lines.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.che.ide.ext.runner.client.tabs.console.panel; -import javax.annotation.Nonnegative; +import javax.validation.constraints.Min; /** * The enum that contains list of constant values of console's lines. @@ -22,12 +22,12 @@ public enum Lines { private final int value; - Lines(@Nonnegative int value) { + Lines(@Min(value = 0) int value) { this.value = value; } /** @return line's count */ - @Nonnegative + @Min(value = 0) public int getValue() { return value; } diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageBuilder.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageBuilder.java index 518314242..e8c2970f1 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageBuilder.java +++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageBuilder.java @@ -15,7 +15,7 @@ import com.google.gwt.safehtml.shared.SimpleHtmlSanitizer; import com.google.inject.Inject; -import javax.annotation.Nonnull; +import javax.validation.constraints.NotNull; import java.util.EnumSet; import java.util.Iterator; import java.util.Set; @@ -47,8 +47,8 @@ public MessageBuilder() { * type that needs to apply * @return an instance of {@link MessageBuilder} */ - @Nonnull - public MessageBuilder type(@Nonnull MessageType type) { + @NotNull + public MessageBuilder type(@NotNull MessageType type) { types.add(type); return this; } @@ -61,14 +61,14 @@ public MessageBuilder type(@Nonnull MessageType type) { * message that needs to show * @return an instance of {@link MessageBuilder} */ - @Nonnull - public MessageBuilder message(@Nonnull String message) { + @NotNull + public MessageBuilder message(@NotNull String message) { this.message = message; return this; } /** @return an instance of {@link SafeHtml} with all given information */ - @Nonnull + @NotNull public SafeHtml build() { SafeHtmlBuilder builder = new SafeHtmlBuilder().appendHtmlConstant("
");
         StringBuilder prefixes = new StringBuilder();
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageType.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageType.java
index 43851e7d7..985340466 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageType.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/console/panel/MessageType.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.runner.client.tabs.console.panel;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The enum contains all available list of message's type of console.
@@ -30,19 +30,19 @@ public enum MessageType {
     private final String prefix;
     private final String color;
 
-    MessageType(@Nonnull String prefix, @Nonnull String color) {
+    MessageType(@NotNull String prefix, @NotNull String color) {
         this.prefix = prefix;
         this.color = color;
     }
 
     /** @return prefix of the current message type */
-    @Nonnull
+    @NotNull
     public String getPrefix() {
         return prefix;
     }
 
     /** @return color of message type */
-    @Nonnull
+    @NotNull
     public String getColor() {
         return color;
     }
@@ -54,8 +54,8 @@ public String getColor() {
      *         content that needs to be analyzed for detecting type of message
      * @return type of message
      */
-    @Nonnull
-    public static MessageType detect(@Nonnull String content) {
+    @NotNull
+    public static MessageType detect(@NotNull String content) {
         for (MessageType type : MessageType.values()) {
             if (content.startsWith(type.getPrefix())) {
                 return type;
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainer.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainer.java
index 44d9e2427..916847ff7 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainer.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainer.java
@@ -15,7 +15,7 @@
 import org.eclipse.che.ide.api.mvp.Presenter;
 import org.eclipse.che.ide.ext.runner.client.tabs.common.Tab;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Provides methods which allow work with tab container.
@@ -32,7 +32,7 @@ public interface TabContainer extends Presenter {
      * @param title
      *         title of the tab
      */
-    void showTab(@Nonnull String title);
+    void showTab(@NotNull String title);
 
     /**
      * Adds tab to tab container and saves tab visibility.
@@ -40,7 +40,7 @@ public interface TabContainer extends Presenter {
      * @param tab
      *         tab which need add
      */
-    void addTab(@Nonnull Tab tab);
+    void addTab(@NotNull Tab tab);
 
     /**
      * Changes visibility of tabs titles.
@@ -50,7 +50,7 @@ public interface TabContainer extends Presenter {
      * @param isShown
      *         true shows tabs title, false hides tab titles
      */
-    void showTabTitle(@Nonnull String tabName, boolean isShown);
+    void showTabTitle(@NotNull String tabName, boolean isShown);
 
     /**
      * Sets location of panel. There are three panel location LEFT, LEFT_PROPERTIES, RIGHT_PROPERTIES. This panel states are stored
@@ -59,7 +59,7 @@ public interface TabContainer extends Presenter {
      * @param panelLocation
      *         location which need set
      */
-    void setLocation(@Nonnull PanelLocation panelLocation);
+    void setLocation(@NotNull PanelLocation panelLocation);
 
     interface TabSelectHandler {
         /** Performs some actions when user clicks on tab. */
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerPresenter.java
index 5968c3a0b..6ff7390d0 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerPresenter.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerPresenter.java
@@ -18,7 +18,7 @@
 import org.eclipse.che.ide.ext.runner.client.state.State;
 import org.eclipse.che.ide.ext.runner.client.tabs.common.Tab;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -63,13 +63,13 @@ public void go(AcceptsOneWidget container) {
 
     /** {@inheritDoc} */
     @Override
-    public void showTab(@Nonnull String title) {
+    public void showTab(@NotNull String title) {
         onTabClicked(title);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void addTab(@Nonnull Tab tab) {
+    public void addTab(@NotNull Tab tab) {
         String title = tab.getTitle();
 
         if (tabs.containsKey(title)) {
@@ -91,19 +91,19 @@ public void addTab(@Nonnull Tab tab) {
 
     /** {@inheritDoc} */
     @Override
-    public void showTabTitle(@Nonnull String tabName, boolean isShown) {
+    public void showTabTitle(@NotNull String tabName, boolean isShown) {
         view.showTabTitle(tabName, isShown);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setLocation(@Nonnull PanelLocation panelLocation) {
+    public void setLocation(@NotNull PanelLocation panelLocation) {
         this.panelLocation = panelLocation;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void onTabClicked(@Nonnull String title) {
+    public void onTabClicked(@NotNull String title) {
         Tab tab = tabs.get(title);
 
         if (tab != null && title.equals(tab.getTitle())) {
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerView.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerView.java
index b778cb70b..54bd2b91d 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerView.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerView.java
@@ -15,7 +15,7 @@
 import org.eclipse.che.ide.api.mvp.View;
 import org.eclipse.che.ide.ext.runner.client.tabs.common.Tab;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.Map;
 
 /**
@@ -32,7 +32,7 @@ public interface TabContainerView extends View
      * @param tab
      *         tab that needs to be shown
      */
-    void showTab(@Nonnull Tab tab);
+    void showTab(@NotNull Tab tab);
 
     /**
      * Change visibility state of tab's titles.
@@ -40,7 +40,7 @@ public interface TabContainerView extends View
      * @param tabVisibilities
      *         visibility states for all tabs
      */
-    void setVisibleTitle(@Nonnull Map tabVisibilities);
+    void setVisibleTitle(@NotNull Map tabVisibilities);
 
     /**
      * Add tab's title in the special container for it.
@@ -48,7 +48,7 @@ public interface TabContainerView extends View
      * @param tab
      *         tab that needs to be added
      */
-    void addTab(@Nonnull Tab tab);
+    void addTab(@NotNull Tab tab);
 
     /**
      * Changes visibility of tabs titles.
@@ -58,7 +58,7 @@ public interface TabContainerView extends View
      * @param isShown
      *         true shows tabs title, false hides tab titles
      */
-    void showTabTitle(@Nonnull String tabName, boolean isShown);
+    void showTabTitle(@NotNull String tabName, boolean isShown);
 
     /**
      * Select a given tab.
@@ -66,7 +66,7 @@ public interface TabContainerView extends View
      * @param tab
      *         tab that needs to be selected
      */
-    void selectTab(@Nonnull Tab tab);
+    void selectTab(@NotNull Tab tab);
 
     interface ActionDelegate {
         /**
@@ -75,7 +75,7 @@ interface ActionDelegate {
          * @param title
          *         title of clicked tab
          */
-        void onTabClicked(@Nonnull String title);
+        void onTabClicked(@NotNull String title);
     }
 
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerViewImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerViewImpl.java
index 450797abb..a8dbf85e0 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerViewImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/TabContainerViewImpl.java
@@ -26,7 +26,7 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.container.tab.TabType;
 import org.eclipse.che.ide.ext.runner.client.tabs.container.tab.TabWidget;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -73,7 +73,7 @@ public TabContainerViewImpl(RunnerResources resources, WidgetFactory widgetFacto
 
     /** {@inheritDoc} */
     @Override
-    public void showTab(@Nonnull Tab tab) {
+    public void showTab(@NotNull Tab tab) {
         for (TabPresenter tabPresenter : visiblePresenters) {
             tabPresenter.setVisible(false);
         }
@@ -96,7 +96,7 @@ public void showTab(@Nonnull Tab tab) {
 
     /** {@inheritDoc} */
     @Override
-    public void selectTab(@Nonnull Tab tab) {
+    public void selectTab(@NotNull Tab tab) {
         for (TabWidget widget : titles.values()) {
             widget.unSelect();
         }
@@ -108,7 +108,7 @@ public void selectTab(@Nonnull Tab tab) {
 
     /** {@inheritDoc} */
     @Override
-    public void setVisibleTitle(@Nonnull Map tabVisibilities) {
+    public void setVisibleTitle(@NotNull Map tabVisibilities) {
         tabs.clear();
 
         for (Map.Entry entry : tabVisibilities.entrySet()) {
@@ -123,7 +123,7 @@ public void setVisibleTitle(@Nonnull Map tabVisibilities) {
 
     /** {@inheritDoc} */
     @Override
-    public void addTab(@Nonnull Tab tab) {
+    public void addTab(@NotNull Tab tab) {
         final String title = tab.getTitle();
         TabType tabType = tab.getTabType();
 
@@ -145,7 +145,7 @@ public void onMouseClicked() {
 
     /** {@inheritDoc} */
     @Override
-    public void showTabTitle(@Nonnull String tabName, boolean isShown) {
+    public void showTabTitle(@NotNull String tabName, boolean isShown) {
         titles.get(tabName).setVisible(isShown);
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/Background.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/Background.java
index 1e865d3a2..5ff9fd938 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/Background.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/Background.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.runner.client.tabs.container.tab;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Enum contains values of background color.
@@ -22,13 +22,13 @@ public enum Background {
 
     private final String color;
 
-    Background(@Nonnull String color) {
+    Background(@NotNull String color) {
         this.color = color;
     }
 
     /** @return value of background color */
     @Override
-    @Nonnull
+    @NotNull
     public String toString() {
         return color;
     }
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabType.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabType.java
index 8c799eb33..26e0ad829 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabType.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabType.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.runner.client.tabs.container.tab;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The class contains values of tabs size
@@ -25,19 +25,19 @@ public enum TabType {
     private final String height;
     private final String width;
 
-    TabType(@Nonnull String height, @Nonnull String width) {
+    TabType(@NotNull String height, @NotNull String width) {
         this.height = height;
         this.width = width;
     }
 
     /** @return string value of height. */
-    @Nonnull
+    @NotNull
     public String getHeight() {
         return height;
     }
 
     /** @return string value of width. */
-    @Nonnull
+    @NotNull
     public String getWidth() {
         return width;
     }
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidget.java
index da6c5ae85..e89a99128 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidget.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidget.java
@@ -12,7 +12,7 @@
 
 import org.eclipse.che.ide.api.mvp.View;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Provides methods which allow change visual representation of tab.
@@ -27,7 +27,7 @@ public interface TabWidget extends View {
      * @param background
      *         parameter which need to set correct background color
      */
-    void select(@Nonnull Background background);
+    void select(@NotNull Background background);
 
     /** Performs some actions when tab is unselected. */
     void unSelect();
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidgetImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidgetImpl.java
index 361d0d55a..db187bb22 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidgetImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/container/tab/TabWidgetImpl.java
@@ -24,7 +24,7 @@
 
 import org.eclipse.che.ide.ext.runner.client.RunnerResources;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Class provides view representation of tab.
@@ -51,8 +51,8 @@ interface TabViewImplUiBinder extends UiBinder {
 
     @Inject
     public TabWidgetImpl(RunnerResources resources,
-                         @Nonnull @Assisted String title,
-                         @Nonnull @Assisted TabType tabType) {
+                         @NotNull @Assisted String title,
+                         @NotNull @Assisted TabType tabType) {
         this.resources = resources;
 
         initWidget(UI_BINDER.createAndBindUi(this));
@@ -68,7 +68,7 @@ public TabWidgetImpl(RunnerResources resources,
 
     /** {@inheritDoc} */
     @Override
-    public void select(@Nonnull Background background) {
+    public void select(@NotNull Background background) {
         getElement().getStyle().setBackgroundColor(background.toString());
 
         tabTitle.addStyleName(resources.runnerCss().activeTabText());
@@ -88,7 +88,7 @@ public void unSelect() {
 
     /** {@inheritDoc} */
     @Override
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         this.delegate = delegate;
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPanel.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPanel.java
index 014312799..543713ef1 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPanel.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPanel.java
@@ -15,7 +15,7 @@
 import org.eclipse.che.ide.ext.runner.client.models.Runner;
 import org.eclipse.che.ide.ext.runner.client.tabs.common.TabPresenter;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Provides methods which allow work with history panel.
@@ -31,7 +31,7 @@ public interface HistoryPanel extends TabPresenter {
      * @param runner
      *         runner which need add
      */
-    void addRunner(@Nonnull Runner runner);
+    void addRunner(@NotNull Runner runner);
 
     /**
      * The method update state of current runner.
@@ -39,7 +39,7 @@ public interface HistoryPanel extends TabPresenter {
      * @param runner
      *         runner which need update
      */
-    void update(@Nonnull Runner runner);
+    void update(@NotNull Runner runner);
 
     /**
      * Selects runner widget using current runner.
@@ -47,7 +47,7 @@ public interface HistoryPanel extends TabPresenter {
      * @param runner
      *         runner which was selected
      */
-    void selectRunner(@Nonnull Runner runner);
+    void selectRunner(@NotNull Runner runner);
 
     /**
      * Checks if runner exist on the Runners tab
@@ -56,7 +56,7 @@ public interface HistoryPanel extends TabPresenter {
      *         the runner which need to check
      * @return true if the runner exist else false
      */
-    boolean isRunnerExist(@Nonnull Runner runner);
+    boolean isRunnerExist(@NotNull Runner runner);
 
     /** Clears runner widgets. */
     void clear();
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPresenter.java
index 1c9a5188c..eccbf44db 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPresenter.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryPresenter.java
@@ -24,7 +24,7 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.history.runner.RunnerWidget;
 import org.eclipse.che.ide.ext.runner.client.tabs.terminal.container.TerminalContainer;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -70,7 +70,7 @@ public HistoryPresenter(HistoryView view,
 
     /** {@inheritDoc} */
     @Override
-    public void addRunner(@Nonnull Runner runner) {
+    public void addRunner(@NotNull Runner runner) {
         if (runnerWidgets.get(runner) != null) {
             return;
         }
@@ -89,7 +89,7 @@ public void addRunner(@Nonnull Runner runner) {
 
     /** {@inheritDoc} */
     @Override
-    public void update(@Nonnull Runner runner) {
+    public void update(@NotNull Runner runner) {
         RunnerWidget runnerWidget = runnerWidgets.get(runner);
         if (runnerWidget == null) {
             return;
@@ -100,7 +100,7 @@ public void update(@Nonnull Runner runner) {
 
     /** {@inheritDoc} */
     @Override
-    public void selectRunner(@Nonnull Runner runner) {
+    public void selectRunner(@NotNull Runner runner) {
         for (RunnerItems widget : runnerWidgets.values()) {
             widget.unSelect();
         }
@@ -119,7 +119,7 @@ public void clear() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public IsWidget getView() {
         return view;
@@ -133,19 +133,19 @@ public void setVisible(boolean visible) {
 
     /** {@inheritDoc} */
     @Override
-    public void go(@Nonnull AcceptsOneWidget container) {
+    public void go(@NotNull AcceptsOneWidget container) {
         container.setWidget(view);
     }
 
     /** {@inheritDoc} */
     @Override
-    public boolean isRunnerExist(@Nonnull Runner runner) {
+    public boolean isRunnerExist(@NotNull Runner runner) {
         return runnerWidgets.get(runner) != null;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void removeRunnerWidget(@Nonnull Runner runner) {
+    public void removeRunnerWidget(@NotNull Runner runner) {
         RunnerWidget widget = runnerWidgets.get(runner);
 
         view.removeRunner(widget);
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryView.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryView.java
index e168cf85b..dcf62c286 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryView.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryView.java
@@ -15,7 +15,7 @@
 import org.eclipse.che.ide.api.mvp.View;
 import org.eclipse.che.ide.ext.runner.client.tabs.history.runner.RunnerWidget;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Provides methods which allow change history panel.
@@ -32,7 +32,7 @@ public interface HistoryView extends View {
      * @param runnerWidget
      *         runner which was added
      */
-    void addRunner(@Nonnull RunnerWidget runnerWidget);
+    void addRunner(@NotNull RunnerWidget runnerWidget);
 
     /**
      * Removes runner from panel.
@@ -40,7 +40,7 @@ public interface HistoryView extends View {
      * @param runnerWidget
      *         widget which need remove
      */
-    void removeRunner(@Nonnull RunnerWidget runnerWidget);
+    void removeRunner(@NotNull RunnerWidget runnerWidget);
 
     /**
      * Sets visibility state to panel.
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryViewImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryViewImpl.java
index 6bf6c7736..59786e291 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryViewImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/HistoryViewImpl.java
@@ -26,7 +26,7 @@
 import org.eclipse.che.ide.ext.runner.client.RunnerResources;
 import org.eclipse.che.ide.ext.runner.client.tabs.history.runner.RunnerWidget;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The class contains methods which allow change view representation of history panel.
@@ -69,14 +69,14 @@ public void onClick(ClickEvent event) {
 
     /** {@inheritDoc} */
     @Override
-    public void addRunner(@Nonnull RunnerWidget runnerWidget) {
+    public void addRunner(@NotNull RunnerWidget runnerWidget) {
         runnersPanel.add(runnerWidget);
         scrollPanel.getElement().setScrollTop(scrollPanel.getElement().getScrollHeight());
     }
 
     /** {@inheritDoc} */
     @Override
-    public void removeRunner(@Nonnull RunnerWidget runnerWidget) {
+    public void removeRunner(@NotNull RunnerWidget runnerWidget) {
         runnersPanel.remove(runnerWidget);
     }
 
@@ -88,7 +88,7 @@ public void clear() {
 
     /** {@inheritDoc} */
     @Override
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         this.actionDelegate = delegate;
     }
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/runner/RunnerWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/runner/RunnerWidget.java
index 011e0c090..b077be9af 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/runner/RunnerWidget.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/history/runner/RunnerWidget.java
@@ -28,7 +28,7 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.common.item.RunnerItems;
 import org.vectomatic.dom.svg.ui.SVGImage;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 import static org.eclipse.che.ide.ext.runner.client.models.Runner.Status.FAILED;
 import static org.eclipse.che.ide.ext.runner.client.models.Runner.Status.STOPPED;
@@ -122,7 +122,7 @@ public void unSelect() {
 
     /** {@inheritDoc} */
     @Override
-    public void update(@Nonnull Runner runner) {
+    public void update(@NotNull Runner runner) {
         this.runner = runner;
         this.runnerStatus = runner.getStatus();
 
@@ -181,12 +181,12 @@ public Widget asWidget() {
      * @param delegate
      *         delegate which need set
      */
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         this.delegate = delegate;
     }
 
     public interface ActionDelegate {
         /** Performs some actions in respond to user's actions. */
-        void removeRunnerWidget(@Nonnull Runner runner);
+        void removeRunnerWidget(@NotNull Runner runner);
     }
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/button/PropertyButtonWidgetImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/button/PropertyButtonWidgetImpl.java
index 5bba04fa0..9a07fbc0e 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/button/PropertyButtonWidgetImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/button/PropertyButtonWidgetImpl.java
@@ -24,7 +24,7 @@
 import com.google.inject.Inject;
 import com.google.inject.assistedinject.Assisted;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Class provides view representation of property button on properties panel.
@@ -81,7 +81,7 @@ public void setEnable(boolean isEnable) {
 
     /** {@inheritDoc} */
     @Override
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         this.delegate = delegate;
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainer.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainer.java
index c80f35bfd..57fcc5374 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainer.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainer.java
@@ -16,7 +16,7 @@
 import org.eclipse.che.ide.ext.runner.client.models.Runner;
 import org.eclipse.che.ide.ext.runner.client.tabs.common.TabPresenter;
 
-import javax.annotation.Nullable;
+import org.eclipse.che.commons.annotation.Nullable;
 
 /**
  * The container for properties panels.
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerPresenter.java
index 22c186cc1..9b743e99a 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerPresenter.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerPresenter.java
@@ -24,8 +24,8 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.PropertiesPanel;
 import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.PropertiesPanelPresenter;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -117,7 +117,7 @@ public void reset() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public IsWidget getView() {
         return view;
@@ -140,7 +140,7 @@ public void go(AcceptsOneWidget container) {
 
     /** {@inheritDoc} */
     @Override
-    public void onSelectionChanged(@Nonnull Selection selection) {
+    public void onSelectionChanged(@NotNull Selection selection) {
         if (ENVIRONMENT.equals(selection)) {
             return;
         }
@@ -155,7 +155,7 @@ public void onSelectionChanged(@Nonnull Selection selection) {
 
     /** {@inheritDoc} */
     @Override
-    public void onPanelRemoved(@Nonnull Environment environment) {
+    public void onPanelRemoved(@NotNull Environment environment) {
         environmentsPanels.remove(environment);
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerView.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerView.java
index 69fe3c8c5..747cc185b 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerView.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/container/PropertiesContainerView.java
@@ -15,7 +15,7 @@
 import org.eclipse.che.ide.api.mvp.View;
 import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.PropertiesPanel;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * @author Andrey Plotnikov
@@ -37,7 +37,7 @@ public interface PropertiesContainerView extends View {
 
     /** @return content of Name field */
-    @Nonnull
+    @NotNull
     String getName();
 
     /**
@@ -43,10 +43,10 @@ public interface PropertiesPanelView extends View ports);
 
     /** @return chosen value of Boot field */
-    @Nonnull
+    @NotNull
     Boot getBoot();
 
     /**
@@ -123,10 +123,10 @@ public interface PropertiesPanelView extends View valueChangeEvent) {
         portMappingHeader.setVisible(false);
     }
 
-    private void prepareField(@Nonnull ListBox field, @Nonnull Set items) {
+    private void prepareField(@NotNull ListBox field, @NotNull Set items) {
         for (Enum item : items) {
             field.addItem(item.toString().toLowerCase());
         }
     }
 
-    @Nonnull
-    private PropertyButtonWidget createButton(@Nonnull String title,
-                                              @Nonnull PropertyButtonWidget.ActionDelegate delegate,
-                                              @Nonnull Background background) {
+    @NotNull
+    private PropertyButtonWidget createButton(@NotNull String title,
+                                              @NotNull PropertyButtonWidget.ActionDelegate delegate,
+                                              @NotNull Background background) {
         PropertyButtonWidget button = widgetFactory.createPropertyButton(title, background);
         button.setDelegate(delegate);
 
@@ -212,7 +212,7 @@ public void setDelegate(ActionDelegate delegate) {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getName() {
         return name.getText();
@@ -220,12 +220,12 @@ public String getName() {
 
     /** {@inheritDoc} */
     @Override
-    public void setName(@Nonnull String name) {
+    public void setName(@NotNull String name) {
         this.name.setText(name);
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public RAM getRam() {
         String value = ram.getValue(ram.getSelectedIndex());
@@ -234,7 +234,7 @@ public RAM getRam() {
 
     /** {@inheritDoc} */
     @Override
-    public void selectMemory(@Nonnull RAM size) {
+    public void selectMemory(@NotNull RAM size) {
         if (DEFAULT.equals(size)) {
             selectDefaultMemory(Integer.toString(DEFAULT.getValue()));
         } else {
@@ -244,7 +244,7 @@ public void selectMemory(@Nonnull RAM size) {
 
     /** {@inheritDoc} */
     @Override
-    public void addRamValue(@Nonnegative int value) {
+    public void addRamValue(@Min(value=0) int value) {
         for (int i = 0; i < ram.getItemCount(); i++) {
             if (ram.getValue(i).equals(value + " mb")) {
                 return;
@@ -255,7 +255,7 @@ public void addRamValue(@Nonnegative int value) {
 
     /** {@inheritDoc} */
     @Override
-    public void selectMemory(@Nonnegative int size) {
+    public void selectMemory(@Min(value=0) int size) {
         for (int i = 0; i < ram.getItemCount(); i++) {
             if (ram.getValue(i).equals(size + " mb")) {
                 ram.setItemSelected(i, true);
@@ -267,7 +267,7 @@ public void selectMemory(@Nonnegative int size) {
         selectDefaultMemory(Integer.toString(DEFAULT.getValue()));
     }
 
-    private void selectDefaultMemory(@Nonnull String size) {
+    private void selectDefaultMemory(@NotNull String size) {
         size = size + " mb";
         int amountItems = ram.getItemCount();
         for (int index = 0; index < amountItems; index++) {
@@ -279,7 +279,7 @@ private void selectDefaultMemory(@Nonnull String size) {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public Scope getScope() {
         String value = scope.getValue(scope.getSelectedIndex());
@@ -288,25 +288,25 @@ public Scope getScope() {
 
     /** {@inheritDoc} */
     @Override
-    public void selectScope(@Nonnull Scope scope) {
+    public void selectScope(@NotNull Scope scope) {
         this.scope.setItemSelected(scope.ordinal(), true);
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getType() {
         return type.getText();
     }
 
     @Override
-    public void setConfig(@Nonnull String config) {
+    public void setConfig(@NotNull String config) {
         configLink.setText(config);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setType(@Nonnull String type) {
+    public void setType(@NotNull String type) {
         this.type.setText(type);
     }
 
@@ -328,7 +328,7 @@ public void setPorts(Map ports) {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public Boot getBoot() {
         String value = boot.getValue(boot.getSelectedIndex());
@@ -337,12 +337,12 @@ public Boot getBoot() {
 
     /** {@inheritDoc} */
     @Override
-    public void selectBoot(@Nonnull Boot boot) {
+    public void selectBoot(@NotNull Boot boot) {
         this.boot.setItemSelected(boot.ordinal(), true);
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public Shutdown getShutdown() {
         String value = shutdown.getValue(shutdown.getSelectedIndex());
@@ -351,7 +351,7 @@ public Shutdown getShutdown() {
 
     /** {@inheritDoc} */
     @Override
-    public void selectShutdown(@Nonnull Shutdown shutdown) {
+    public void selectShutdown(@NotNull Shutdown shutdown) {
         this.shutdown.setItemSelected(shutdown.ordinal(), true);
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Boot.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Boot.java
index 583b5abec..6d4d1e5c4 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Boot.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Boot.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The enum represents a list of available states of booting process of a runner.
@@ -22,7 +22,7 @@ public enum Boot {
 
     private final String name;
 
-    Boot(@Nonnull String name) {
+    Boot(@NotNull String name) {
         this.name = name;
     }
 
@@ -39,7 +39,7 @@ public String toString() {
      *         content that needs to analyze
      * @return an instance {@link Boot}
      */
-    public static Boot detect(@Nonnull String content) {
+    public static Boot detect(@NotNull String content) {
         for (Boot boot : Boot.values()) {
             if (content.equals(boot.toString())) {
                 return boot;
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/EnvironmentScript.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/EnvironmentScript.java
index f0d2417cc..cc53e32a0 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/EnvironmentScript.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/EnvironmentScript.java
@@ -22,8 +22,8 @@
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.rest.StringUnmarshaller;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
 
 /**
@@ -48,20 +48,20 @@ public EnvironmentScript(ItemReference data,
         this.environmentName = environmentName;
     }
 
-    @Nonnull
+    @NotNull
     @Override
     public String getPath() {
         return data.getPath();
     }
 
-    @Nonnull
+    @NotNull
     @Override
     public String getName() {
         return data.getName();
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getDisplayName() {
         return '[' + environmentName + "] " + data.getName();
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/RAM.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/RAM.java
index bcd3923b6..058a042bc 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/RAM.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/RAM.java
@@ -10,8 +10,8 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
 
 /**
  * Enums which store information about memory size.
@@ -40,7 +40,7 @@ public int getValue() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String toString() {
         return size + " mb";
@@ -53,8 +53,8 @@ public String toString() {
      *         value of string for which need return {@link RAM} enum
      * @return an instance {@link RAM}
      */
-    @Nonnull
-    public static RAM detect(@Nonnull String inputMemory) {
+    @NotNull
+    public static RAM detect(@NotNull String inputMemory) {
         for (RAM size : RAM.values()) {
             if (inputMemory.equals(size.toString())) {
                 return size;
@@ -71,8 +71,8 @@ public static RAM detect(@Nonnull String inputMemory) {
      *         value of integer for which need return {@link RAM} enum
      * @return an instance {@link RAM}
      */
-    @Nonnull
-    public static RAM detect(@Nonnegative int value) {
+    @NotNull
+    public static RAM detect(@Min(value=0) int value) {
         for (RAM size : RAM.values()) {
             if (size.getValue() == value) {
                 return size;
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Scope.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Scope.java
index 69f2b05fd..ac349316c 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Scope.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Scope.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The enum represents a list of available scope of runner configurations.
@@ -24,7 +24,7 @@ public enum Scope {
 
     private final String name;
 
-    Scope(@Nonnull String name) {
+    Scope(@NotNull String name) {
         this.name = name;
     }
 
@@ -41,7 +41,7 @@ public String toString() {
      *         content that needs to analyze
      * @return an instance {@link Scope}
      */
-    public static Scope detect(@Nonnull String content) {
+    public static Scope detect(@NotNull String content) {
         for (Scope scope : Scope.values()) {
             if (content.equals(scope.toString())) {
                 return scope;
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Shutdown.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Shutdown.java
index 1cf4921cd..e8a361adb 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Shutdown.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/Shutdown.java
@@ -10,8 +10,8 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
 
 /**
  * The enum represents a list of available states of shutdowning process of a runner.
@@ -25,7 +25,7 @@ public enum Shutdown {
 
     private final int timeout;
 
-    Shutdown(@Nonnegative int timeout, @Nonnull String name) {
+    Shutdown(@Min(value=0) int timeout, @NotNull String name) {
         this.timeout = timeout;
         this.name = name;
     }
@@ -46,7 +46,7 @@ public int getTimeout() {
      *         content that needs to analyze
      * @return an instance {@link Shutdown}
      */
-    public static Shutdown detect(@Nonnull String content) {
+    public static Shutdown detect(@NotNull String content) {
         for (Shutdown shutdown : Shutdown.values()) {
             if (content.equals(shutdown.toString())) {
                 return shutdown;
@@ -57,7 +57,7 @@ public static Shutdown detect(@Nonnull String content) {
                 "You tried to detect unknown shutdown. Please, check your value. Your shutdown is " + content);
     }
 
-    public static Shutdown detect(@Nonnull int timeout) {
+    public static Shutdown detect(@NotNull int timeout) {
         for (Shutdown shutdown : Shutdown.values()) {
             if (timeout ==  shutdown.getTimeout()) {
                 return shutdown;
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFile.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFile.java
index 44bcbcc66..ebcb33023 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFile.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFile.java
@@ -27,8 +27,8 @@
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.util.loging.Log;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
 
 /**
@@ -45,8 +45,8 @@ public class DockerFile implements VirtualFile {
     private final ProjectServiceClient projectServiceClient;
     private final ItemReference data;
 
-    public DockerFile(@Nonnull ProjectServiceClient projectServiceClient,
-                      @Nonnull ItemReference data) {
+    public DockerFile(@NotNull ProjectServiceClient projectServiceClient,
+                      @NotNull ItemReference data) {
         this.projectServiceClient = projectServiceClient;
         this.data = data;
     }
@@ -73,7 +73,7 @@ public void makeCall(AsyncCallback callback) {
         });
     }
 
-    private void sendRequest(@Nonnull final AsyncCallback callback, @Nonnull String href) {
+    private void sendRequest(@NotNull final AsyncCallback callback, @NotNull String href) {
         try {
             new RequestBuilder(RequestBuilder.GET, href).sendRequest("", new RequestCallback() {
                 @Override
@@ -91,13 +91,13 @@ public void onError(Request request, Throwable exception) {
         }
     }
 
-    @Nonnull
+    @NotNull
     @Override
     public String getPath() {
         return data.getPath();
     }
 
-    @Nonnull
+    @NotNull
     @Override
     public String getName() {
         return data.getName();
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileEditorInput.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileEditorInput.java
index 148c933b4..bebcc3516 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileEditorInput.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileEditorInput.java
@@ -17,7 +17,7 @@
 
 import org.vectomatic.dom.svg.ui.SVGResource;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * This class is copy of com.codenvy.ide.core.editor.EditorInputImpl.
@@ -29,7 +29,7 @@ public class DockerFileEditorInput implements EditorInput {
     private final FileType    fileType;
     private       VirtualFile file;
 
-    public DockerFileEditorInput(@Nonnull FileType fileType, @Nonnull VirtualFile file) {
+    public DockerFileEditorInput(@NotNull FileType fileType, @NotNull VirtualFile file) {
         this.fileType = fileType;
         this.file = file;
     }
@@ -41,35 +41,35 @@ public String getContentDescription() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getToolTipText() {
         return "";
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getName() {
         return file.getDisplayName();
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public ImageResource getImageResource() {
         return fileType.getImage();
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public SVGResource getSVGResource() {
         return fileType.getSVGImage();
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public VirtualFile getFile() {
         return file;
@@ -77,7 +77,7 @@ public VirtualFile getFile() {
 
     /** {@inheritDoc} */
     @Override
-    public void setFile(@Nonnull VirtualFile file) {
+    public void setFile(@NotNull VirtualFile file) {
         this.file = file;
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileFactory.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileFactory.java
index 90af395ba..8331a11d8 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileFactory.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/common/docker/DockerFileFactory.java
@@ -21,7 +21,7 @@
 import org.eclipse.che.ide.api.project.tree.VirtualFile;
 import org.eclipse.che.ide.dto.DtoFactory;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.Arrays;
 import java.util.List;
 
@@ -61,13 +61,13 @@ public DockerFileFactory(ProjectServiceClient projectServiceClient,
      * @throws IllegalStateException
      *         when no project is opened
      */
-    @Nonnull
-    public VirtualFile newInstance(@Nonnull String href) {
+    @NotNull
+    public VirtualFile newInstance(@NotNull String href) {
         return newInstance(href, NAME, PATH);
     }
 
-    @Nonnull
-    public VirtualFile newInstance(@Nonnull String href, @Nonnull String name, @Nonnull String path) {
+    @NotNull
+    public VirtualFile newInstance(@NotNull String href, @NotNull String name, @NotNull String path) {
         CurrentProject currentProject = appContext.getCurrentProject();
         if (currentProject == null) {
             throw new IllegalStateException("No project is opened");
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesEnvironmentPanel.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesEnvironmentPanel.java
index 964f660ef..fd008473e 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesEnvironmentPanel.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesEnvironmentPanel.java
@@ -58,8 +58,8 @@
 import org.eclipse.che.ide.ui.dialogs.DialogFactory;
 import org.eclipse.che.ide.util.loging.Log;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -110,7 +110,7 @@ public class PropertiesEnvironmentPanel extends PropertiesPanelPresenter {
     public PropertiesEnvironmentPanel(final PropertiesPanelView view,
                                       DtoFactory dtoFactory,
                                       @Named("DefaultEditorProvider") EditorProvider editorProvider,
-                                      @Nonnull final FileTypeRegistry fileTypeRegistry,
+                                      @NotNull final FileTypeRegistry fileTypeRegistry,
                                       final DockerFileFactory dockerFileFactory,
                                       final ProjectServiceClient projectService,
                                       EventBus eventBus,
@@ -127,7 +127,7 @@ public PropertiesEnvironmentPanel(final PropertiesPanelView view,
                                       AsyncCallbackBuilder asyncDescriptorCallbackBuilder,
                                       TemplatesContainer templatesContainer,
                                       EditorAgent editorAgent,
-                                      @Assisted @Nonnull final Environment environment) {
+                                      @Assisted @NotNull final Environment environment) {
         super(view, appContext);
         this.dtoFactory = dtoFactory;
         this.editorProvider = editorProvider;
@@ -178,8 +178,8 @@ public PropertiesEnvironmentPanel(final PropertiesPanelView view,
         currentRam = getRam(environment.getId());
     }
 
-    @Nonnegative
-    private int getRam(@Nonnull String environmentId) {
+    @Min(value=0)
+    private int getRam(@NotNull String environmentId) {
         boolean isConfigExist = runnerConfigs.containsKey(environmentId) || runnerConfigs.containsKey(URL.encode(environmentId));
 
         if (!isConfigExist) {
@@ -201,7 +201,7 @@ private int getRam(@Nonnull String environmentId) {
      *         the environment to check
      * @return the type of the provided environment
      */
-    private String getType(@Nonnull Environment environment) {
+    private String getType(@NotNull Environment environment) {
         String envId = URL.encode(environment.getId());
         RunnerConfiguration runnerConfiguration = runnerConfigs.get(envId);
         if (runnerConfiguration != null) {
@@ -230,7 +230,7 @@ public void onSuccess(List result) {
                                          })
                                          .failure(new FailureCallback() {
                                              @Override
-                                             public void onFailure(@Nonnull Throwable exception) {
+                                             public void onFailure(@NotNull Throwable exception) {
                                                  Log.error(getClass(), exception.getMessage());
                                              }
                                          })
@@ -263,7 +263,7 @@ public void onSuccess(ItemReference result) {
                                                                            })
                                                                            .failure(new FailureCallback() {
                                                                                @Override
-                                                                               public void onFailure(@Nonnull Throwable reason) {
+                                                                               public void onFailure(@NotNull Throwable reason) {
                                                                                    notificationManager.showError(reason.getMessage());
                                                                                }
                                                                            })
@@ -272,7 +272,7 @@ public void onFailure(@Nonnull Throwable reason) {
         projectService.createFolder(path, callback);
     }
 
-    private void getEditorContent(@Nonnull final String fileName) {
+    private void getEditorContent(@NotNull final String fileName) {
 
         editor.getEditorInput().getFile().getContent().then(new Operation() {
             @Override
@@ -287,7 +287,7 @@ public void apply(PromiseError arg) throws OperationException {
         });
     }
 
-    private void createFile(@Nonnull String content, @Nonnull String fileName) {
+    private void createFile(@NotNull String content, @NotNull String fileName) {
         String path = currentProject.getProjectDescription().getPath() + ROOT_FOLDER;
 
         AsyncRequestCallback callback =
@@ -305,7 +305,7 @@ public void onSuccess(ItemReference result) {
                                     })
                                     .failure(new FailureCallback() {
                                         @Override
-                                        public void onFailure(@Nonnull Throwable reason) {
+                                        public void onFailure(@NotNull Throwable reason) {
                                             Log.error(PropertiesPanelPresenter.class, reason.getMessage());
                                         }
                                     })
@@ -314,7 +314,7 @@ public void onFailure(@Nonnull Throwable reason) {
         projectService.createFile(path, fileName + DOCKER_SCRIPT_NAME, content, null, callback);
     }
 
-    private void updateRunnerConfig(@Nonnull ItemReference result) {
+    private void updateRunnerConfig(@NotNull ItemReference result) {
         boolean isConfigExist = runnerConfigs.containsKey(environment.getId());
         view.selectShutdown(getTimeout());
         String newEnvironmentName = getNewEnvironmentName(result.getPath());
@@ -342,14 +342,14 @@ private void updateRunnerConfig(@Nonnull ItemReference result) {
         }
     }
 
-    @Nonnull
-    private String getNewEnvironmentName(@Nonnull String path) {
+    @NotNull
+    private String getNewEnvironmentName(@NotNull String path) {
         String withoutDocker = path.substring(0, path.lastIndexOf('/'));
 
         return withoutDocker.substring(withoutDocker.lastIndexOf('/') + 1);
     }
 
-    private String generateEnvironmentId(@Nonnull String environmentName) {
+    private String generateEnvironmentId(@NotNull String environmentName) {
         String newName = URL.encode(ENVIRONMENT_ID_PREFIX + environmentName);
         // with GWT mocks, native methods can be empty
         if (newName.isEmpty()) {
@@ -411,7 +411,7 @@ public void onSuccess(Void result) {
                 })
                 .failure(new FailureCallback() {
                     @Override
-                    public void onFailure(@Nonnull Throwable reason) {
+                    public void onFailure(@NotNull Throwable reason) {
                         notificationManager.showError(reason.getMessage());
                     }
                 })
@@ -466,7 +466,7 @@ public void onSuccess(ProjectDescriptor result) {
                     }
                 }).failure(new FailureCallback() {
                     @Override
-                    public void onFailure(@Nonnull Throwable reason) {
+                    public void onFailure(@NotNull Throwable reason) {
                         Log.error(getClass(), reason.getMessage());
 
                     }
@@ -519,7 +519,7 @@ public void onSuccess(Void result) {
                 })
                 .failure(new FailureCallback() {
                     @Override
-                    public void onFailure(@Nonnull Throwable reason) {
+                    public void onFailure(@NotNull Throwable reason) {
                         notificationManager.showError(reason.getMessage());
                     }
                 })
@@ -528,7 +528,7 @@ public void onFailure(@Nonnull Throwable reason) {
         projectService.delete(environment.getPath(), asyncRequestCallback);
     }
 
-    private void notifyListeners(@Nonnull Environment environment) {
+    private void notifyListeners(@NotNull Environment environment) {
         for (RemovePanelListener listener : listeners) {
             listener.onPanelRemoved(environment);
         }
@@ -562,7 +562,7 @@ public void onCancelButtonClicked() {
 
     /** {@inheritDoc} */
     @Override
-    public void update(@Nonnull Environment environment) {
+    public void update(@NotNull Environment environment) {
         view.setEnableCancelButton(isParameterChanged);
         view.setEnableSaveButton(isParameterChanged);
 
@@ -613,7 +613,7 @@ public void onSwitcherChanged(boolean isOn) {
 
     /** {@inheritDoc} */
     @Override
-    public void addListener(@Nonnull RemovePanelListener listener) {
+    public void addListener(@NotNull RemovePanelListener listener) {
         listeners.add(listener);
     }
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesRunnerPanel.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesRunnerPanel.java
index 8d4f928f0..24a1f8b94 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesRunnerPanel.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/properties/panel/impl/PropertiesRunnerPanel.java
@@ -33,7 +33,7 @@
 import org.eclipse.che.ide.ext.runner.client.util.TimerFactory;
 import org.eclipse.che.ide.ext.runner.client.util.annotations.LeftPanel;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.Map;
 
 import static org.eclipse.che.ide.ext.runner.client.constants.TimeInterval.ONE_SEC;
@@ -59,7 +59,7 @@ public PropertiesRunnerPanel(final PropertiesPanelView view,
                                  final DockerFileFactory dockerFileFactory,
                                  AppContext appContext,
                                  TimerFactory timerFactory,
-                                 @Assisted @Nonnull final Runner runner,
+                                 @Assisted @NotNull final Runner runner,
                                  @LeftPanel TabContainer tabContainer,
                                  RunnerLocalizationConstant locale,
                                  EventBus eventBus) {
@@ -115,7 +115,7 @@ public void onConfigLinkClicked() {
     private void configureStatusRunEventHandler() {
         eventBus.addHandler(TYPE, new RunnerApplicationStatusEventHandler() {
             @Override
-            public void onRunnerStatusChanged(@Nonnull final Runner runner) {
+            public void onRunnerStatusChanged(@NotNull final Runner runner) {
                 if (currentRunner.equals(runner)) {
                     setPorts(runner);
                 }
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesContainer.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesContainer.java
index ce0427034..9d92e6d08 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesContainer.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesContainer.java
@@ -17,8 +17,8 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.common.TabPresenter;
 import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
 
 /**
@@ -45,14 +45,14 @@ public interface TemplatesContainer extends TabPresenter {
      *         scope of environments which are saved in list
      * @return list environments generated from tree by scope
      */
-    List addEnvironments(@Nonnull RunnerEnvironmentTree tree, @Nonnull Scope scope);
+    List addEnvironments(@NotNull RunnerEnvironmentTree tree, @NotNull Scope scope);
 
     /**
      * Returns the project environments
      *
      * @return the list of project environments
      */
-    @Nonnull
+    @NotNull
     List getProjectEnvironments();
 
     /** Shows environments when user click on templates tab the first time. */
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesPresenter.java
index 1d5b59d4b..5c1a39008 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesPresenter.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesPresenter.java
@@ -47,8 +47,8 @@
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.util.loging.Log;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.ArrayList;
 import java.util.EnumMap;
 import java.util.List;
@@ -161,7 +161,7 @@ public void select(@Nullable Environment environment) {
 
     /** {@inheritDoc} */
     @Override
-    public List addEnvironments(@Nonnull RunnerEnvironmentTree tree, @Nonnull Scope scope) {
+    public List addEnvironments(@NotNull RunnerEnvironmentTree tree, @NotNull Scope scope) {
         ProjectDescriptor descriptor = getCurrentProject().getProjectDescription();
 
         List list;
@@ -179,7 +179,7 @@ public List addEnvironments(@Nonnull RunnerEnvironmentTree tree, @N
         return environments;
     }
 
-    @Nonnull
+    @NotNull
     private CurrentProject getCurrentProject() {
         CurrentProject currentProject = appContext.getCurrentProject();
 
@@ -190,9 +190,9 @@ private CurrentProject getCurrentProject() {
         return currentProject;
     }
 
-    private void addEnvironments(@Nonnull List sourceList,
-                                 @Nonnull List targetList,
-                                 @Nonnull Scope scope) {
+    private void addEnvironments(@NotNull List sourceList,
+                                 @NotNull List targetList,
+                                 @NotNull Scope scope) {
         sourceList.clear();
         sourceList.addAll(targetList);
 
@@ -215,7 +215,7 @@ private void addEnvironments(@Nonnull List sourceList,
         }
     }
 
-    private void selectNewProjectEnvironment(@Nonnull List currentProjectEnvironments) {
+    private void selectNewProjectEnvironment(@NotNull List currentProjectEnvironments) {
         for (Environment environment : currentProjectEnvironments) {
             if (!previousProjectEnvironments.contains(environment)) {
                 select(environment);
@@ -226,7 +226,7 @@ private void selectNewProjectEnvironment(@Nonnull List currentProje
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     public List getProjectEnvironments() {
         return new ArrayList<>(environmentMap.get(PROJECT));
     }
@@ -369,7 +369,7 @@ public void setDefaultEnvironment(@Nullable Environment environment) {
         view.setDefaultProjectWidget(defaultEnvWidget);
     }
 
-    private void updateProject(@Nonnull ProjectDescriptor descriptor, @Nullable final EnvironmentWidget environmentWidget) {
+    private void updateProject(@NotNull ProjectDescriptor descriptor, @Nullable final EnvironmentWidget environmentWidget) {
         AsyncRequestCallback asyncDescriptorCallback =
                 asyncDescriptorCallbackBuilder.success(new SuccessCallback() {
                     @Override
@@ -379,7 +379,7 @@ public void onSuccess(ProjectDescriptor result) {
                     }
                 }).failure(new FailureCallback() {
                     @Override
-                    public void onFailure(@Nonnull Throwable reason) {
+                    public void onFailure(@NotNull Throwable reason) {
                         Log.error(getClass(), reason.getMessage());
 
                     }
@@ -422,7 +422,7 @@ public void onSuccess(ItemReference result) {
                                                                            })
                                                                            .failure(new FailureCallback() {
                                                                                @Override
-                                                                               public void onFailure(@Nonnull Throwable reason) {
+                                                                               public void onFailure(@NotNull Throwable reason) {
                                                                                    notificationManager.showError(reason.getMessage());
                                                                                }
                                                                            })
@@ -431,7 +431,7 @@ public void onFailure(@Nonnull Throwable reason) {
         projectService.createFolder(path, callback);
     }
 
-    private void createFile(@Nonnull String content, @Nonnull String fileName) {
+    private void createFile(@NotNull String content, @NotNull String fileName) {
         String path = currentProject.getProjectDescription().getPath() + ROOT_FOLDER;
 
         AsyncRequestCallback callback =
@@ -444,7 +444,7 @@ public void onSuccess(ItemReference result) {
                                     })
                                     .failure(new FailureCallback() {
                                         @Override
-                                        public void onFailure(@Nonnull Throwable reason) {
+                                        public void onFailure(@NotNull Throwable reason) {
                                             Log.error(PropertiesPanelPresenter.class, reason.getMessage());
                                         }
                                     })
@@ -455,12 +455,12 @@ public void onFailure(@Nonnull Throwable reason) {
 
     /** {@inheritDoc} */
     @Override
-    public void go(@Nonnull AcceptsOneWidget container) {
+    public void go(@NotNull AcceptsOneWidget container) {
         container.setWidget(view);
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public IsWidget getView() {
         return view;
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesView.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesView.java
index 93fae963f..cca1d46a4 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesView.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesView.java
@@ -18,9 +18,9 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.templates.environment.EnvironmentWidget;
 import org.eclipse.che.ide.ext.runner.client.tabs.templates.filterwidget.FilterWidget;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
 import java.util.Map;
 
@@ -38,7 +38,7 @@ public interface TemplatesView extends View {
      * @param environments
      *         runner which was added
      */
-    void addEnvironment(@Nonnull Map> environments);
+    void addEnvironment(@NotNull Map> environments);
 
     /**
      * Sets visibility state to panel.
@@ -65,7 +65,7 @@ public interface TemplatesView extends View {
      * @param filterWidget
      *         panel which need set
      */
-    void setFilterWidget(@Nonnull FilterWidget filterWidget);
+    void setFilterWidget(@NotNull FilterWidget filterWidget);
 
     /**
      * Sets default project widget to special place on view.
@@ -81,7 +81,7 @@ public interface TemplatesView extends View {
      * @param defaultEnvironment
      *         environment for which need display info
      */
-    void showDefaultEnvironmentInfo(@Nonnull Environment defaultEnvironment);
+    void showDefaultEnvironmentInfo(@NotNull Environment defaultEnvironment);
 
     /**
      * Scroll to top of the selected environment.
@@ -89,7 +89,7 @@ public interface TemplatesView extends View {
      * @param index
      *         index of selected environment
      */
-    void scrollTop(@Nonnegative int index);
+    void scrollTop(@Min(value=0) int index);
 
     interface ActionDelegate {
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesViewImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesViewImpl.java
index 0f24a994c..d59eb3edd 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesViewImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/TemplatesViewImpl.java
@@ -41,9 +41,9 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.templates.environment.EnvironmentWidget;
 import org.eclipse.che.ide.ext.runner.client.tabs.templates.filterwidget.FilterWidget;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -152,7 +152,7 @@ public void onMouseOut(MouseOutEvent event) {
 
     /** {@inheritDoc} */
     @Override
-    public void addEnvironment(@Nonnull Map> environments) {
+    public void addEnvironment(@NotNull Map> environments) {
         clearEnvironmentsPanel();
         int i = 0;
 
@@ -167,7 +167,7 @@ public void addEnvironment(@Nonnull Map> environments)
         }
     }
 
-    private void addEnvironment(@Nonnull Environment environment, @Nonnull Scope scope, @Nonnegative int index) {
+    private void addEnvironment(@NotNull Environment environment, @NotNull Scope scope, @Min(value=0) int index) {
         EnvironmentWidget widget = getItem(index);
 
         widget.setScope(scope);
@@ -177,8 +177,8 @@ private void addEnvironment(@Nonnull Environment environment, @Nonnull Scope sco
         environmentsPanel.add(widget);
     }
 
-    @Nonnull
-    private EnvironmentWidget getItem(@Nonnegative int index) {
+    @NotNull
+    private EnvironmentWidget getItem(@Min(value=0) int index) {
         if (cacheWidgets.size() > index) {
             EnvironmentWidget widget = cacheWidgets.get(index);
             widget.unSelect();
@@ -207,7 +207,7 @@ public void selectEnvironment(@Nullable Environment selectedEnvironment) {
 
     /** {@inheritDoc} */
     @Override
-    public void setFilterWidget(@Nonnull FilterWidget filterWidget) {
+    public void setFilterWidget(@NotNull FilterWidget filterWidget) {
         filterPanel.setWidget(filterWidget);
     }
 
@@ -229,7 +229,7 @@ public void scrollTop(int index) {
 
     /** {@inheritDoc} */
     @Override
-    public void showDefaultEnvironmentInfo(@Nonnull Environment defaultEnvironment) {
+    public void showDefaultEnvironmentInfo(@NotNull Environment defaultEnvironment) {
         defaultRunnerInfo.update(defaultEnvironment);
 
         int x = defaultRunner.getAbsoluteLeft() + LEFT_SHIFT;
@@ -248,7 +248,7 @@ public void clearEnvironmentsPanel() {
 
     /** {@inheritDoc} */
     @Override
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         this.delegate = delegate;
     }
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfo.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfo.java
index 2524fe932..c54b1ff49 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfo.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfo.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.che.ide.ext.runner.client.models.Environment;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Provides methods which allows change information about default environment.
@@ -31,5 +31,5 @@ public interface DefaultRunnerInfo extends IsWidget {
      * @param environment
      *         default environment for which need displays info
      */
-    void update(@Nonnull Environment environment);
+    void update(@NotNull Environment environment);
 }
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfoImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfoImpl.java
index 175e54e85..41c5c4a72 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfoImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/defaultrunnerinfo/DefaultRunnerInfoImpl.java
@@ -22,7 +22,7 @@
 import org.eclipse.che.ide.ext.runner.client.RunnerResources;
 import org.eclipse.che.ide.ext.runner.client.models.Environment;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The class contains methods which allows change information about default runner.
@@ -57,7 +57,7 @@ public DefaultRunnerInfoImpl(RunnerResources resources, RunnerLocalizationConsta
 
     /** {@inheritDoc} */
     @Override
-    public void update(@Nonnull Environment environment) {
+    public void update(@NotNull Environment environment) {
         name.setText(environment.getName());
         type.setText(environment.getType());
         ram.setText(String.valueOf(environment.getRam()) + " mb");
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/environment/EnvironmentWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/environment/EnvironmentWidget.java
index 90db0e8b6..8f712ebc1 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/environment/EnvironmentWidget.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/environment/EnvironmentWidget.java
@@ -25,8 +25,8 @@
 import org.eclipse.che.ide.ext.runner.client.util.EnvironmentIdValidator;
 import org.vectomatic.dom.svg.ui.SVGImage;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 
 import static org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope.PROJECT;
 import static org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope.SYSTEM;
@@ -79,7 +79,7 @@ public void onWidgetClicked() {
      * @param environmentScope
      *         scope which need set
      */
-    public void setScope(@Nonnull Scope environmentScope) {
+    public void setScope(@NotNull Scope environmentScope) {
         this.environmentScope = environmentScope;
     }
 
@@ -97,7 +97,7 @@ public void unSelect() {
 
     /** {@inheritDoc} */
     @Override
-    public void update(@Nonnull Environment environment) {
+    public void update(@NotNull Environment environment) {
         this.environment = environment;
         this.environmentScope = environment.getScope();
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidget.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidget.java
index e8657e8b7..29c7c429b 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidget.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidget.java
@@ -15,7 +15,7 @@
 import org.eclipse.che.ide.api.mvp.View;
 import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Describes methods which allows change view representation of filter panel.
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidgetImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidgetImpl.java
index 3700f8cfa..8c6e0c41f 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidgetImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/templates/filterwidget/FilterWidgetImpl.java
@@ -23,7 +23,7 @@
 import org.eclipse.che.ide.ext.runner.client.RunnerLocalizationConstant;
 import org.eclipse.che.ide.ext.runner.client.RunnerResources;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The class provides methods which allows change view representation of filter panel.
@@ -66,7 +66,7 @@ public boolean getMatchesProjectType() {
 
     /** {@inheritDoc} */
     @Override
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         this.delegate = delegate;
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainer.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainer.java
index 23668d2ab..783e3d39f 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainer.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainer.java
@@ -15,7 +15,7 @@
 import org.eclipse.che.ide.ext.runner.client.models.Runner;
 import org.eclipse.che.ide.ext.runner.client.tabs.common.TabPresenter;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The common representation of terminal container widget. This widget provides an ability to manager many terminal widgets for every
@@ -31,7 +31,7 @@ public interface TerminalContainer extends TabPresenter {
      * @param runner
      *         runner which need update
      */
-    void update(@Nonnull Runner runner);
+    void update(@NotNull Runner runner);
 
     /** Cleans the data of console widgets. */
     void reset();
@@ -42,7 +42,7 @@ public interface TerminalContainer extends TabPresenter {
      * @param runner
      *         instance of Runner which contains iframe with terminal
      */
-    void removeTerminalUrl(@Nonnull Runner runner);
+    void removeTerminalUrl(@NotNull Runner runner);
 
     /**
      * Changes visibility of the no runner label.
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerPresenter.java
index 7cf7b219f..16a762613 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerPresenter.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerPresenter.java
@@ -23,7 +23,7 @@
 import org.eclipse.che.ide.ext.runner.client.selection.SelectionManager;
 import org.eclipse.che.ide.ext.runner.client.tabs.terminal.panel.Terminal;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -69,7 +69,7 @@ public TerminalContainerPresenter(TerminalContainerView view,
     private void configureStatusRunEventHandler() {
         eventBus.addHandler(TYPE, new RunnerApplicationStatusEventHandler() {
                                 @Override
-                                public void onRunnerStatusChanged(@Nonnull final Runner runner) {
+                                public void onRunnerStatusChanged(@NotNull final Runner runner) {
                                     final Terminal terminal = terminals.get(runner);
                                     if (terminal == null) {
                                         return;
@@ -94,7 +94,7 @@ public void onRunnerStatusChanged(@Nonnull final Runner runner) {
     }
 
     /** {@inheritDoc} */
-    public void onSelectionChanged(@Nonnull Selection selection) {
+    public void onSelectionChanged(@NotNull Selection selection) {
         if (ENVIRONMENT.equals(selection)) {
             return;
         }
@@ -107,7 +107,7 @@ public void onSelectionChanged(@Nonnull Selection selection) {
         showTerminal(runner);
     }
 
-    private void showTerminal(@Nonnull Runner runner) {
+    private void showTerminal(@NotNull Runner runner) {
         for (Terminal terminal : terminals.values()) {
             terminal.setVisible(false);
             terminal.setUnavailableLabelVisible(false);
@@ -129,7 +129,7 @@ private void showTerminal(@Nonnull Runner runner) {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public IsWidget getView() {
         return view;
@@ -149,7 +149,7 @@ public void go(AcceptsOneWidget container) {
 
     /** {@inheritDoc} */
     @Override
-    public void update(@Nonnull Runner runner) {
+    public void update(@NotNull Runner runner) {
         Terminal terminal = terminals.get(runner);
         if (terminal != null) {
             terminal.update(runner);
@@ -168,7 +168,7 @@ public void reset() {
 
     /** {@inheritDoc} */
     @Override
-    public void removeTerminalUrl(@Nonnull Runner runner) {
+    public void removeTerminalUrl(@NotNull Runner runner) {
         Terminal terminal = terminals.get(runner);
         if (terminal != null) {
             terminal.removeUrl();
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerView.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerView.java
index ce52c7400..b07dc5f69 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerView.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/tabs/terminal/container/TerminalContainerView.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.che.ide.api.mvp.View;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The abstract representation of console container widget UI part.
@@ -31,7 +31,7 @@ public interface TerminalContainerView extends View getAllEnvironments(@Nonnull RunnerEnvironmentTree tree);
+    @NotNull
+    List getAllEnvironments(@NotNull RunnerEnvironmentTree tree);
 
     /**
      * Gets all environments from nodes and adds them to list.
@@ -54,8 +54,8 @@ public interface GetEnvironmentsUtil {
      *         scope of runner environments
      * @return list of environments
      */
-    @Nonnull
-    List getEnvironmentsFromNodes(@Nonnull List leaves, @Nonnull Scope scope);
+    @NotNull
+    List getEnvironmentsFromNodes(@NotNull List leaves, @NotNull Scope scope);
 
     /**
      * Returns list of environments from environments tree which relate to current project type.
@@ -68,10 +68,10 @@ public interface GetEnvironmentsUtil {
      *         scope of runner environments
      * @return list environments
      */
-    @Nonnull
-    List getEnvironmentsByProjectType(@Nonnull RunnerEnvironmentTree tree,
-                                                   @Nonnull String projectType,
-                                                   @Nonnull Scope scope);
+    @NotNull
+    List getEnvironmentsByProjectType(@NotNull RunnerEnvironmentTree tree,
+                                                   @NotNull String projectType,
+                                                   @NotNull Scope scope);
 
     /**
      * Returns category of runner for current project type.
@@ -82,8 +82,8 @@ List getEnvironmentsByProjectType(@Nonnull RunnerEnvironmentTree tr
      *         type of project
      * @return tree which contains all runner environments for current project type
      */
-    @Nonnull
-    RunnerEnvironmentTree getRunnerCategoryByProjectType(@Nonnull RunnerEnvironmentTree tree, @Nonnull String projectType);
+    @NotNull
+    RunnerEnvironmentTree getRunnerCategoryByProjectType(@NotNull RunnerEnvironmentTree tree, @NotNull String projectType);
 
     /**
      * Returns correct category name when default runner is defined for project.
@@ -92,14 +92,14 @@ List getEnvironmentsByProjectType(@Nonnull RunnerEnvironmentTree tr
      *         runner from which need get category
      * @return string representation of runner category
      */
-    @Nonnull
-    String getCorrectCategoryName(@Nonnull String defaultRunner);
+    @NotNull
+    String getCorrectCategoryName(@NotNull String defaultRunner);
 
     /**
      * Returns correct project type.
      *
      * @return string representation of project type
      */
-    @Nonnull
+    @NotNull
     String getType();
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/GetEnvironmentsUtilImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/GetEnvironmentsUtilImpl.java
index 798514b98..25edd1b3c 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/GetEnvironmentsUtilImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/GetEnvironmentsUtilImpl.java
@@ -24,7 +24,7 @@
 import org.eclipse.che.ide.ext.runner.client.models.Environment;
 import org.eclipse.che.ide.ext.runner.client.tabs.properties.panel.common.Scope;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
@@ -50,9 +50,9 @@ public GetEnvironmentsUtilImpl(ModelsFactory modelsFactory, ProjectTypeRegistry
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
-    public List getAllEnvironments(@Nonnull RunnerEnvironmentTree tree) {
+    public List getAllEnvironments(@NotNull RunnerEnvironmentTree tree) {
         List allEnvironments = new ArrayList<>();
 
         getEnvironments(tree, allEnvironments);
@@ -60,7 +60,7 @@ public List getAllEnvironments(@Nonnull RunnerEnvironment
         return allEnvironments;
     }
 
-    private void getEnvironments(@Nonnull RunnerEnvironmentTree tree, @Nonnull List allEnvironments) {
+    private void getEnvironments(@NotNull RunnerEnvironmentTree tree, @NotNull List allEnvironments) {
         for (RunnerEnvironmentLeaf environmentLeaf : tree.getLeaves()) {
             allEnvironments.add(environmentLeaf);
         }
@@ -71,9 +71,9 @@ private void getEnvironments(@Nonnull RunnerEnvironmentTree tree, @Nonnull List<
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
-    public List getEnvironmentsFromNodes(@Nonnull List leaves, @Nonnull Scope scope) {
+    public List getEnvironmentsFromNodes(@NotNull List leaves, @NotNull Scope scope) {
         Set sortEnvironment = new TreeSet<>();
 
         for (RunnerEnvironmentLeaf environmentLeaf : leaves) {
@@ -86,11 +86,11 @@ public List getEnvironmentsFromNodes(@Nonnull List getEnvironmentsByProjectType(@Nonnull RunnerEnvironmentTree tree,
-                                                          @Nonnull String projectType,
-                                                          @Nonnull Scope scope) {
+    public List getEnvironmentsByProjectType(@NotNull RunnerEnvironmentTree tree,
+                                                          @NotNull String projectType,
+                                                          @NotNull Scope scope) {
         List leaves = new ArrayList<>();
 
         CurrentProject currentProject = appContext.getCurrentProject();
@@ -122,7 +122,7 @@ public List getEnvironmentsByProjectType(@Nonnull RunnerEnvironment
 
     /** {@inheritDoc} */
     @Override
-    @Nonnull
+    @NotNull
     public String getType() {
         CurrentProject currentProject = appContext.getCurrentProject();
 
@@ -148,17 +148,17 @@ public String getType() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
-    public String getCorrectCategoryName(@Nonnull String defaultRunner) {
+    public String getCorrectCategoryName(@NotNull String defaultRunner) {
         int index = defaultRunner.indexOf('/') + 1;
         return defaultRunner.substring(index, defaultRunner.lastIndexOf('/'));
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
-    public RunnerEnvironmentTree getRunnerCategoryByProjectType(@Nonnull RunnerEnvironmentTree tree, @Nonnull String projectType) {
+    public RunnerEnvironmentTree getRunnerCategoryByProjectType(@NotNull RunnerEnvironmentTree tree, @NotNull String projectType) {
         ProjectTypeDefinition definition = projectTypeRegistry.getProjectType(projectType);
 
         List categories = definition.getRunnerCategories();
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/NameGenerator.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/NameGenerator.java
index f2b5d9ca5..c14eabc2d 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/NameGenerator.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/NameGenerator.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.che.ide.ext.runner.client.models.Environment;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -48,8 +48,8 @@ protected static String removeCopyPrefix(String name) {
      * @return environment name which consists of string 'Copy of ' and existing name with a current date. If there is an existing name,
      * add a number suffix like "Copy2 of", "Copy3 of", etc.
      */
-    @Nonnull
-    public static String generateCopy(@Nonnull String name, @Nonnull List projectEnvironments) {
+    @NotNull
+    public static String generateCopy(@NotNull String name, @NotNull List projectEnvironments) {
         List existingNames = new ArrayList<>();
 
         for (Environment environment : projectEnvironments) {
@@ -81,7 +81,7 @@ public static String generateCopy(@Nonnull String name, @Nonnull List environments, @Nonnull String projectName) {
+    public static String generateCustomEnvironmentName(@NotNull List environments, @NotNull String projectName) {
         int counter = 1;
         String name = CUSTOM_ENV_PREFIX + counter + '-' + projectName;
         for (int i = 0; i < environments.size(); i++) {
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtil.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtil.java
index 576e2a774..5360f19c8 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtil.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtil.java
@@ -15,9 +15,9 @@
 
 import com.google.inject.ImplementedBy;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 
 /**
  * The class contains methods which are general used.
@@ -38,7 +38,7 @@ public interface RunnerUtil {
      *         value of available runner memory
      * @return true memory values are correct,false memory values are incorrect
      */
-    boolean isRunnerMemoryCorrect(@Nonnegative int totalMemory, @Nonnegative int usedMemory, @Nonnegative int availableMemory);
+    boolean isRunnerMemoryCorrect(@Min(value=0) int totalMemory, @Min(value=0) int usedMemory, @Min(value=0) int availableMemory);
 
     /**
      * Shows warning message using dialog factory.
@@ -46,7 +46,7 @@ public interface RunnerUtil {
      * @param message
      *         message which need to show
      */
-    void showWarning(@Nonnull String message);
+    void showWarning(@NotNull String message);
 
     /**
      * Show error to user. It creates a new notification and shows it. Updates Multi-runner panel and print a message on the console for a
@@ -59,7 +59,7 @@ public interface RunnerUtil {
      * @param exception
      *         exception that happened
      */
-    void showError(@Nonnull Runner runner, @Nonnull String message, @Nullable Throwable exception);
+    void showError(@NotNull Runner runner, @NotNull String message, @Nullable Throwable exception);
 
     /**
      * Show error to user. It updates a given notification, updates Multi-runner panel and print a message on the console for a
@@ -74,7 +74,7 @@ public interface RunnerUtil {
      * @param notification
      *         notification that needs to be updated with some message
      */
-    void showError(@Nonnull Runner runner, @Nonnull String message, @Nullable Throwable exception, @Nonnull Notification notification);
+    void showError(@NotNull Runner runner, @NotNull String message, @Nullable Throwable exception, @NotNull Notification notification);
 
     /**
      * Checks user permissions for running project.
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImpl.java
index 8528f6fa4..d9d2000b6 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImpl.java
@@ -24,9 +24,9 @@
 import org.eclipse.che.ide.ext.runner.client.tabs.console.container.ConsoleContainer;
 import org.eclipse.che.ide.ui.dialogs.DialogFactory;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 
 import static org.eclipse.che.ide.api.notification.Notification.Status.FINISHED;
 import static org.eclipse.che.ide.api.notification.Notification.Type.ERROR;
@@ -64,7 +64,7 @@ public RunnerUtilImpl(DialogFactory dialogFactory,
 
     /** {@inheritDoc} */
     @Override
-    public boolean isRunnerMemoryCorrect(@Nonnegative int totalMemory, @Nonnegative int usedMemory, @Nonnegative int availableMemory) {
+    public boolean isRunnerMemoryCorrect(@Min(value=0) int totalMemory, @Min(value=0) int usedMemory, @Min(value=0) int availableMemory) {
         if (usedMemory < 0 || totalMemory < 0 || availableMemory < 0) {
             showWarning(locale.messagesIncorrectValue());
             return false;
@@ -90,13 +90,13 @@ public boolean isRunnerMemoryCorrect(@Nonnegative int totalMemory, @Nonnegative
 
     /** {@inheritDoc} */
     @Override
-    public void showWarning(@Nonnull String message) {
+    public void showWarning(@NotNull String message) {
         dialogFactory.createMessageDialog(locale.titlesWarning(), message, null).show();
     }
 
     /** {@inheritDoc} */
     @Override
-    public void showError(@Nonnull Runner runner, @Nonnull String message, @Nullable Throwable exception) {
+    public void showError(@NotNull Runner runner, @NotNull String message, @Nullable Throwable exception) {
         Notification notification = new Notification(message, ERROR, true);
 
         showError(runner, message, exception, notification);
@@ -106,10 +106,10 @@ public void showError(@Nonnull Runner runner, @Nonnull String message, @Nullable
 
     /** {@inheritDoc} */
     @Override
-    public void showError(@Nonnull Runner runner,
-                          @Nonnull String message,
+    public void showError(@NotNull Runner runner,
+                          @NotNull String message,
                           @Nullable Throwable exception,
-                          @Nonnull Notification notification) {
+                          @NotNull Notification notification) {
         runner.setStatus(Runner.Status.FAILED);
 
         presenter.get().update(runner);
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactory.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactory.java
index 890534f9f..5d4b14746 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactory.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactory.java
@@ -13,7 +13,7 @@
 import com.google.gwt.user.client.Timer;
 import com.google.inject.ImplementedBy;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The utility interface that create instance of Timer.
@@ -29,8 +29,8 @@ public interface TimerFactory {
      * @param timerCallBack
      *         callback with actions for method run of Timer
      */
-    @Nonnull
-    Timer newInstance(@Nonnull TimerCallBack timerCallBack);
+    @NotNull
+    Timer newInstance(@NotNull TimerCallBack timerCallBack);
 
     /** Callback with actions which will be launch in method run of Timer */
     interface TimerCallBack {
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactoryImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactoryImpl.java
index 806e18b06..0522f98df 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactoryImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/TimerFactoryImpl.java
@@ -13,7 +13,7 @@
 import com.google.gwt.user.client.Timer;
 import com.google.inject.Inject;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The utility class that crate instance of Timer.
@@ -27,9 +27,9 @@ public TimerFactoryImpl() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
-    public Timer newInstance(@Nonnull final TimerCallBack timerCallBack) {
+    public Timer newInstance(@NotNull final TimerCallBack timerCallBack) {
         return new Timer() {
             @Override
             public void run() {
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtil.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtil.java
index 3a550706e..527b71ec3 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtil.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtil.java
@@ -13,7 +13,7 @@
 import org.eclipse.che.ide.websocket.rest.SubscriptionHandler;
 import com.google.inject.ImplementedBy;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The utility class that simplify work flow of WebSocket.
@@ -31,7 +31,7 @@ public interface WebSocketUtil {
      * @param handler
      *         handler that has to analyze messages from WebSocket
      */
-    void subscribeHandler(@Nonnull String channel, @Nonnull SubscriptionHandler handler);
+    void subscribeHandler(@NotNull String channel, @NotNull SubscriptionHandler handler);
 
     /**
      * Unsubsribe a given handler from WebSocket. It means new messages from this chanel will be not analyzed.
@@ -41,6 +41,6 @@ public interface WebSocketUtil {
      * @param handler
      *         handler that analyzes messages from WebSocket
      */
-    void unSubscribeHandler(@Nonnull String channel, @Nonnull SubscriptionHandler handler);
+    void unSubscribeHandler(@NotNull String channel, @NotNull SubscriptionHandler handler);
 
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtilImpl.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtilImpl.java
index 45cfe9ab4..e543b24d7 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtilImpl.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/util/WebSocketUtilImpl.java
@@ -17,7 +17,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * @author Andrey Plotnikov
@@ -34,7 +34,7 @@ public WebSocketUtilImpl(MessageBus messageBus) {
 
     /** {@inheritDoc} */
     @Override
-    public void subscribeHandler(@Nonnull String channel, @Nonnull SubscriptionHandler handler) {
+    public void subscribeHandler(@NotNull String channel, @NotNull SubscriptionHandler handler) {
         try {
             messageBus.subscribe(channel, handler);
         } catch (WebSocketException e) {
@@ -44,7 +44,7 @@ public void subscribeHandler(@Nonnull String channel, @Nonnull SubscriptionHandl
 
     /** {@inheritDoc} */
     @Override
-    public void unSubscribeHandler(@Nonnull String channel, @Nonnull SubscriptionHandler handler) {
+    public void unSubscribeHandler(@NotNull String channel, @NotNull SubscriptionHandler handler) {
         if (!messageBus.isHandlerSubscribed(handler, channel)) {
             return;
         }
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/TestUtil.java b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/TestUtil.java
index c504b9eeb..6cb144fca 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/TestUtil.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/TestUtil.java
@@ -12,8 +12,8 @@
 
 import com.google.common.io.Resources;
 
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
 import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
@@ -37,7 +37,7 @@ public class TestUtil {
      * @return value of field by name
      * @throws Exception
      */
-    public static  Object getFieldValueByName(@Nonnull T object, @Nonnull String fieldName) throws Exception {
+    public static  Object getFieldValueByName(@NotNull T object, @NotNull String fieldName) throws Exception {
         Field field;
         try {
             field = object.getClass().getDeclaredField(fieldName);
@@ -62,7 +62,7 @@ public static  Object getFieldValueByName(@Nonnull T object, @Nonnull String
      *         argument of method
      * @throws Exception
      */
-    public static  void invokeMethodByName(@Nonnull T object, @Nonnull String name, Object arg) throws Exception {
+    public static  void invokeMethodByName(@NotNull T object, @NotNull String name, Object arg) throws Exception {
         Method method = object.getClass().getDeclaredMethod(name, Object.class);
 
         method.setAccessible(true);
@@ -83,8 +83,8 @@ public static  void invokeMethodByName(@Nonnull T object, @Nonnull String nam
      *         argument of method
      * @throws Exception
      */
-    public static  void invokeMethodByName(@Nonnull T object,
-                                              @Nonnull String name,
+    public static  void invokeMethodByName(@NotNull T object,
+                                              @NotNull String name,
                                               Class typeArg,
                                               Object arg) throws Exception {
         Method method = object.getClass().getDeclaredMethod(name, typeArg);
@@ -104,7 +104,7 @@ public static  void invokeMethodByName(@Nonnull T object,
      * @return value of field by index
      * @throws Exception
      */
-    public static  Object getFieldValueByIndex(@Nonnull T object, @Nonnegative int index) throws Exception {
+    public static  Object getFieldValueByIndex(@NotNull T object, @Min(value=0) int index) throws Exception {
         Field[] fields = object.getClass().getDeclaredFields();
 
         Field field = fields[index];
@@ -123,8 +123,8 @@ public static  Object getFieldValueByIndex(@Nonnull T object, @Nonnegative in
      *         path to content which need to read
      * @return string representation of content which located by current path
      */
-    @Nonnull
-    public static String getContentByPath(@Nonnull Class clazz, @Nonnull String path) throws IOException {
+    @NotNull
+    public static String getContentByPath(@NotNull Class clazz, @NotNull String path) throws IOException {
         return Resources.toString(Resources.getResource(clazz, path), Charset.defaultCharset());
     }
 }
\ No newline at end of file
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActionsTest.java b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActionsTest.java
index b411c6ce2..57924143b 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActionsTest.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/actions/AbstractRunnerActionsTest.java
@@ -21,8 +21,8 @@
 import org.mockito.Mock;
 import org.vectomatic.dom.svg.ui.SVGResource;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 
 import static org.mockito.Answers.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.verify;
@@ -72,9 +72,9 @@ public void actionShouldBeUpdatedWhenCurrentProjectIsNull() throws Exception {
 
     private class DummyAction extends AbstractRunnerActions {
 
-        public DummyAction(@Nonnull AppContext appContext,
-                           @Nonnull String actionName,
-                           @Nonnull String actionPrompt,
+        public DummyAction(@NotNull AppContext appContext,
+                           @NotNull String actionName,
+                           @NotNull String actionPrompt,
                            @Nullable SVGResource image) {
             super(appContext, actionName, actionPrompt, image);
         }
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImplTest.java b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImplTest.java
index df7646ada..17b6e22c0 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImplTest.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/util/RunnerUtilImplTest.java
@@ -36,7 +36,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
-import javax.annotation.Nonnegative;
+import javax.validation.constraints.Min;
 
 import java.util.Arrays;
 import java.util.List;
@@ -116,7 +116,7 @@ public static Object[][] checkIsNonNegativeMemoryValue() {
 
     @Test
     @UseDataProvider("checkIsNonNegativeMemoryValue")
-    public void runnerMemoryShouldBeAboveZero(@Nonnegative int totalMemory, @Nonnegative int usedMemory, @Nonnegative int availableMemory) {
+    public void runnerMemoryShouldBeAboveZero(@Min(value=0) int totalMemory, @Min(value=0) int usedMemory, @Min(value=0) int availableMemory) {
         when(locale.messagesIncorrectValue()).thenReturn(SOME_TEXT);
 
         boolean isCorrect = util.isRunnerMemoryCorrect(totalMemory, usedMemory, availableMemory);
diff --git a/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationView.java b/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationView.java
index 9282e4a74..7f80fe681 100644
--- a/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationView.java
+++ b/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationView.java
@@ -12,7 +12,7 @@
 
 import com.google.inject.ImplementedBy;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  *  The visual part of workspace localization window.
@@ -30,7 +30,7 @@ interface ActionDelegate {
      * @param workspaceLocation
      *         location path
      */
-    void setWorkspaceLocation(@Nonnull String workspaceLocation);
+    void setWorkspaceLocation(@NotNull String workspaceLocation);
 
     /** Show dialog. */
     void showDialog();
diff --git a/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationViewImpl.java b/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationViewImpl.java
index 336765474..38f6ff063 100644
--- a/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationViewImpl.java
+++ b/plugin-sdk/che-plugin-sdk-env-local/src/main/java/org/eclipse/che/env/local/client/location/WorkspaceLocationViewImpl.java
@@ -37,7 +37,7 @@
 import org.eclipse.che.ide.ui.window.Window;
 import org.eclipse.che.ide.util.loging.Log;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.Map;
 
 /**
@@ -113,7 +113,7 @@ public void accepted() {
 
     /** {@inheritDoc} */
     @Override
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         //do nothing
     }
 
@@ -131,7 +131,7 @@ public void showDialog() {
 
     /** {@inheritDoc} */
     @Override
-    public void setWorkspaceLocation(@Nonnull String workspaceLocation) {
+    public void setWorkspaceLocation(@NotNull String workspaceLocation) {
         this.workspaceLocation.setText(workspaceLocation);
     }
 
diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePage.java b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePage.java
index b5abf75bc..bd794415f 100644
--- a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePage.java
+++ b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePage.java
@@ -25,7 +25,7 @@
 
 import org.vectomatic.dom.svg.ui.SVGResource;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 import static org.eclipse.che.ide.ext.tutorials.client.TutorialsExtension.DEFAULT_GUIDE_FILE_NAME;
 
@@ -72,7 +72,7 @@ protected void onFailure(Throwable exception) {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getTitle() {
         return "Tutorial Guide";
diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionPagePresenter.java b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionPagePresenter.java
index 2f2601617..4d74a5d61 100644
--- a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionPagePresenter.java
+++ b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionPagePresenter.java
@@ -21,7 +21,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -192,7 +192,7 @@ private void validateCoordinates() {
     }
 
     /** Reads single value of attribute from data-object. */
-    @Nonnull
+    @NotNull
     private String getAttribute(String attrId) {
         Map> attributes = dataObject.getProject().getAttributes();
         List values = attributes.get(attrId);
diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionProjectWizardRegistrar.java b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionProjectWizardRegistrar.java
index 0189e0325..a30392c5e 100644
--- a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionProjectWizardRegistrar.java
+++ b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/ExtensionProjectWizardRegistrar.java
@@ -16,7 +16,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -38,17 +38,17 @@ public ExtensionProjectWizardRegistrar(Provider provider
         wizardPages.add(provider);
     }
 
-    @Nonnull
+    @NotNull
     public String getProjectTypeId() {
         return CODENVY_PLUGIN_ID;
     }
 
-    @Nonnull
+    @NotNull
     public String getCategory() {
         return ECLIPSE_CHE_CATEGORY;
     }
 
-    @Nonnull
+    @NotNull
     public List>> getWizardPages() {
         return wizardPages;
     }
diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/TutorialProjectWizardRegistrar.java b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/TutorialProjectWizardRegistrar.java
index 4556cce5b..01ee83fb0 100644
--- a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/TutorialProjectWizardRegistrar.java
+++ b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/wizard/TutorialProjectWizardRegistrar.java
@@ -16,7 +16,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -38,17 +38,17 @@ public TutorialProjectWizardRegistrar(Provider provider)
         wizardPages.add(provider);
     }
 
-    @Nonnull
+    @NotNull
     public String getProjectTypeId() {
         return TUTORIAL_ID;
     }
 
-    @Nonnull
+    @NotNull
     public String getCategory() {
         return ECLIPSE_CHE_CATEGORY;
     }
 
-    @Nonnull
+    @NotNull
     public List>> getWizardPages() {
         return wizardPages;
     }
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyService.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyService.java
index c98a75618..005d7a32a 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyService.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyService.java
@@ -14,7 +14,7 @@
 import org.eclipse.che.ide.ext.ssh.dto.PublicKey;
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 import java.util.Map;
 
@@ -40,14 +40,14 @@ public interface SshKeyService {
      * @param sshKeyProvider
      *         keys provider
      */
-    void registerSshKeyProvider(@Nonnull String host, @Nonnull SshKeyProvider sshKeyProvider);
+    void registerSshKeyProvider(@NotNull String host, @NotNull SshKeyProvider sshKeyProvider);
 
     /**
      * Receive all ssh key, stored on server
      *
      * @param callback
      */
-    void getAllKeys(@Nonnull AsyncRequestCallback> callback);
+    void getAllKeys(@NotNull AsyncRequestCallback> callback);
 
     /**
      * Generate new ssh key pare
@@ -56,7 +56,7 @@ public interface SshKeyService {
      *         for ssh key
      * @param callback
      */
-    void generateKey(@Nonnull String host, @Nonnull AsyncRequestCallback callback);
+    void generateKey(@NotNull String host, @NotNull AsyncRequestCallback callback);
 
     /**
      * Get public ssh key
@@ -65,7 +65,7 @@ public interface SshKeyService {
      *         to get public key
      * @param callback
      */
-    void getPublicKey(@Nonnull KeyItem keyItem, @Nonnull AsyncRequestCallback callback);
+    void getPublicKey(@NotNull KeyItem keyItem, @NotNull AsyncRequestCallback callback);
 
     /**
      * Delete ssh key
@@ -74,5 +74,5 @@ public interface SshKeyService {
      *         to delete
      * @param callback
      */
-    void deleteKey(@Nonnull KeyItem keyItem, @Nonnull AsyncRequestCallback callback);
+    void deleteKey(@NotNull KeyItem keyItem, @NotNull AsyncRequestCallback callback);
 }
\ No newline at end of file
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyServiceImpl.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyServiceImpl.java
index eb70a2fa4..cda7277f7 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyServiceImpl.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/SshKeyServiceImpl.java
@@ -23,7 +23,7 @@
 import com.google.inject.Singleton;
 import com.google.inject.name.Named;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -58,14 +58,14 @@ protected SshKeyServiceImpl(@RestContext String baseUrl,
 
     /** {@inheritDoc} */
     @Override
-    public void getAllKeys(@Nonnull AsyncRequestCallback> callback) {
+    public void getAllKeys(@NotNull AsyncRequestCallback> callback) {
         loader.show("Getting SSH keys....");
         asyncRequestFactory.createGetRequest(baseUrl + "/ssh-keys/" + workspaceId + "/all").send(callback);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void generateKey(@Nonnull String host, @Nonnull AsyncRequestCallback callback) {
+    public void generateKey(@NotNull String host, @NotNull AsyncRequestCallback callback) {
         String url = baseUrl + "/ssh-keys/" + workspaceId + "/gen";
 
         GenKeyRequest keyRequest = dtoFactory.createDto(GenKeyRequest.class).withHost(host);
@@ -77,14 +77,14 @@ public void generateKey(@Nonnull String host, @Nonnull AsyncRequestCallback callback) {
+    public void getPublicKey(@NotNull KeyItem keyItem, @NotNull AsyncRequestCallback callback) {
         loader.show("Getting public SSH key for " + keyItem.getHost());
         asyncRequestFactory.createGetRequest(keyItem.getPublicKeyUrl()).send(callback);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void deleteKey(@Nonnull KeyItem keyItem, @Nonnull AsyncRequestCallback callback) {
+    public void deleteKey(@NotNull KeyItem keyItem, @NotNull AsyncRequestCallback callback) {
         loader.show("Deleting SSH keys for " + keyItem.getHost());
         asyncRequestFactory.createGetRequest(keyItem.getRemoteKeyUrl()).send(callback);
     }
@@ -97,7 +97,7 @@ public Map getSshKeyProviders() {
 
     /** {@inheritDoc} */
     @Override
-    public void registerSshKeyProvider(@Nonnull String host, @Nonnull SshKeyProvider sshKeyProvider) {
+    public void registerSshKeyProvider(@NotNull String host, @NotNull SshKeyProvider sshKeyProvider) {
         sshKeyProviders.put(host, sshKeyProvider);
     }
 }
\ No newline at end of file
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerPresenter.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerPresenter.java
index 4d8571886..57bf9f643 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerPresenter.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerPresenter.java
@@ -34,7 +34,7 @@
 import org.eclipse.che.ide.ui.dialogs.DialogFactory;
 import org.eclipse.che.ide.ui.dialogs.InputCallback;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -84,7 +84,7 @@ public SshKeyManagerPresenter(SshKeyManagerView view,
 
     /** {@inheritDoc} */
     @Override
-    public void onViewClicked(@Nonnull final KeyItem key) {
+    public void onViewClicked(@NotNull final KeyItem key) {
         service.getPublicKey(key, new AsyncRequestCallback(dtoUnmarshallerFactory.newUnmarshaller(PublicKey.class)) {
             @Override
             public void onSuccess(PublicKey result) {
@@ -102,14 +102,14 @@ public void onFailure(Throwable exception) {
 
     /** {@inheritDoc} */
     @Override
-    public void onDeleteClicked(@Nonnull final KeyItem key) {
+    public void onDeleteClicked(@NotNull final KeyItem key) {
         dialogFactory.createConfirmDialog(constant.deleteSshKeyTitle(),
                                           constant.deleteSshKeyQuestion(key.getHost()).asString(),
                                           getConfirmCallbackForDelete(key),
                                           getCancelCallback()).show();
     }
 
-    private ConfirmCallback getConfirmCallbackForDelete(@Nonnull final KeyItem key) {
+    private ConfirmCallback getConfirmCallbackForDelete(@NotNull final KeyItem key) {
         return new ConfirmCallback() {
             @Override
             public void accepted() {
@@ -246,7 +246,7 @@ public void onFailure(Throwable exception) {
      * @param key
      *         failed key
      */
-    private void removeFailedKey(@Nonnull final KeyItem key) {
+    private void removeFailedKey(@NotNull final KeyItem key) {
         service.deleteKey(key, new AsyncRequestCallback() {
             @Override
             public void onFailure(Throwable caught) {
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerView.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerView.java
index 66f4a8af0..57c415a17 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerView.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerView.java
@@ -13,7 +13,7 @@
 import org.eclipse.che.ide.api.mvp.View;
 import org.eclipse.che.ide.ext.ssh.dto.KeyItem;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -30,7 +30,7 @@ public interface ActionDelegate {
          * @param key
          *         key what need to show
          */
-        void onViewClicked(@Nonnull KeyItem key);
+        void onViewClicked(@NotNull KeyItem key);
 
         /**
          * Performs any actions appropriate in response to the user having pressed the Delete button.
@@ -38,7 +38,7 @@ public interface ActionDelegate {
          * @param key
          *         key what need to delete
          */
-        void onDeleteClicked(@Nonnull KeyItem key);
+        void onDeleteClicked(@NotNull KeyItem key);
 
         /** Performs any actions appropriate in response to the user having pressed the Generate button. */
         void onGenerateClicked();
@@ -56,5 +56,5 @@ public interface ActionDelegate {
      * @param keys
      *         available keys
      */
-    void setKeys(@Nonnull List keys);
+    void setKeys(@NotNull List keys);
 }
\ No newline at end of file
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerViewImpl.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerViewImpl.java
index 0a3296fdc..c919b084c 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerViewImpl.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/manage/SshKeyManagerViewImpl.java
@@ -38,7 +38,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -175,7 +175,7 @@ public void update(int index, KeyItem object, String value) {
 
     /** {@inheritDoc} */
     @Override
-    public void setKeys(@Nonnull List keys) {
+    public void setKeys(@NotNull List keys) {
         // Wraps Array in java.util.List
         List appList = new ArrayList();
         for (int i = 0; i < keys.size(); i++) {
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyPresenter.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyPresenter.java
index 8e2db7bb6..9af4de1fd 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyPresenter.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyPresenter.java
@@ -22,7 +22,7 @@
 import com.google.inject.name.Named;
 import com.google.web.bindery.event.shared.EventBus;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Main appointment of this class is upload private SSH key to the server.
@@ -59,7 +59,7 @@ public UploadSshKeyPresenter(UploadSshKeyView view,
     }
 
     /** Show dialog. */
-    public void showDialog(@Nonnull AsyncCallback callback) {
+    public void showDialog(@NotNull AsyncCallback callback) {
         this.callback = callback;
         view.setMessage("");
         view.setHost("");
@@ -88,7 +88,7 @@ public void onUploadClicked() {
 
     /** {@inheritDoc} */
     @Override
-    public void onSubmitComplete(@Nonnull String result) {
+    public void onSubmitComplete(@NotNull String result) {
         if (result.isEmpty()) {
             view.close();
             callback.onSuccess(null);
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyView.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyView.java
index d35bff017..cd5356b3c 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyView.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyView.java
@@ -12,7 +12,7 @@
 
 import org.eclipse.che.ide.api.mvp.View;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The view of {@link UploadSshKeyPresenter}.
@@ -34,14 +34,14 @@ public interface ActionDelegate {
          * @param result
          *         result of submit operation
          */
-        void onSubmitComplete(@Nonnull String result);
+        void onSubmitComplete(@NotNull String result);
 
         /** Performs any actions appropriate in response to the user having changed file name field. */
         void onFileNameChanged();
     }
 
     /** @return host */
-    @Nonnull
+    @NotNull
     String getHost();
 
     /**
@@ -49,10 +49,10 @@ public interface ActionDelegate {
      *
      * @param host
      */
-    void setHost(@Nonnull String host);
+    void setHost(@NotNull String host);
 
     /** @return file name */
-    @Nonnull
+    @NotNull
     String getFileName();
 
     /**
@@ -69,7 +69,7 @@ public interface ActionDelegate {
      * @param message
      *         the message
      */
-    void setMessage(@Nonnull String message);
+    void setMessage(@NotNull String message);
 
     /**
      * Sets the encoding used for submitting this form.
@@ -77,7 +77,7 @@ public interface ActionDelegate {
      * @param encodingType
      *         the form's encoding
      */
-    void setEncoding(@Nonnull String encodingType);
+    void setEncoding(@NotNull String encodingType);
 
     /**
      * Sets the 'action' associated with this form. This is the URL to which it will be submitted.
@@ -85,7 +85,7 @@ public interface ActionDelegate {
      * @param url
      *         the form's action
      */
-    void setAction(@Nonnull String url);
+    void setAction(@NotNull String url);
 
     /** Submits the form. */
     void submit();
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyViewImpl.java b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyViewImpl.java
index 0d9d5182e..6f2a2628b 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyViewImpl.java
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/src/main/java/org/eclipse/che/ide/ext/ssh/client/upload/UploadSshKeyViewImpl.java
@@ -28,7 +28,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * The implementation of {@link org.eclipse.che.ide.ext.ssh.client.key.SshKeyView}.
@@ -101,7 +101,7 @@ public void onSubmitComplete(FormPanel.SubmitCompleteEvent event) {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getHost() {
         return host.getText();
@@ -109,12 +109,12 @@ public String getHost() {
 
     /** {@inheritDoc} */
     @Override
-    public void setHost(@Nonnull String host) {
+    public void setHost(@NotNull String host) {
         this.host.setText(host);
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getFileName() {
         return file.getFilename();
@@ -128,19 +128,19 @@ public void setEnabledUploadButton(boolean enabled) {
 
     /** {@inheritDoc} */
     @Override
-    public void setMessage(@Nonnull String message) {
+    public void setMessage(@NotNull String message) {
         this.message.setText(message);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setEncoding(@Nonnull String encodingType) {
+    public void setEncoding(@NotNull String encodingType) {
         uploadForm.setEncoding(encodingType);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setAction(@Nonnull String url) {
+    public void setAction(@NotNull String url) {
         uploadForm.setAction(url);
         uploadForm.setMethod(FormPanel.METHOD_POST);
     }
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
index 77fcf12be..3b18aafc9 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
+++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
@@ -29,6 +29,12 @@
             com.google.guava
             guava-gwt
             ${com.google.guava.version}
+            
+                
+                    jsr305
+                    com.google.code.findbugs
+                
+            
         
         
             com.google.inject
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/api/crypt/server/EncryptTextServiceRegistryImpl.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/api/crypt/server/EncryptTextServiceRegistryImpl.java
index e62a36e00..2adccfd13 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/api/crypt/server/EncryptTextServiceRegistryImpl.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/api/crypt/server/EncryptTextServiceRegistryImpl.java
@@ -15,7 +15,7 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.annotation.Nullable;
+import org.eclipse.che.commons.annotation.Nullable;
 import javax.inject.Inject;
 import javax.inject.Named;
 
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java
index 62fd72696..1f138b10e 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java
@@ -31,7 +31,7 @@
 import org.eclipse.che.ide.ext.svn.client.update.SubversionProjectUpdatedEvent;
 import org.eclipse.che.ide.ext.svn.client.update.SubversionProjectUpdatedHandler;
 
-import javax.annotation.Nullable;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
 
 /**
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/commit/CommitPresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/commit/CommitPresenter.java
index 673a6e3c9..0f8ec553a 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/commit/CommitPresenter.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/commit/CommitPresenter.java
@@ -34,7 +34,7 @@
 import org.eclipse.che.ide.rest.Unmarshallable;
 import org.eclipse.che.ide.util.loging.Log;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import javax.inject.Inject;
 import java.util.Collections;
 import java.util.HashMap;
@@ -215,7 +215,7 @@ protected void onFailure(final Throwable exception) {
         view.onClose();
     }
 
-    private void handleError(@Nonnull final Throwable e) {
+    private void handleError(@NotNull final Throwable e) {
         String errorMessage;
         if (e.getMessage() != null && !e.getMessage().isEmpty()) {
             errorMessage = e.getMessage();
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/RawOutputPresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/RawOutputPresenter.java
index 786c285bb..d4d4eadb6 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/RawOutputPresenter.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/RawOutputPresenter.java
@@ -22,7 +22,7 @@
 import org.eclipse.che.ide.ext.svn.client.SubversionExtensionLocalizationConstants;
 import org.vectomatic.dom.svg.ui.SVGResource;
 
-import javax.annotation.Nullable;
+import org.eclipse.che.commons.annotation.Nullable;
 import javax.validation.constraints.NotNull;
 
 /**
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredNodeFactory.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredNodeFactory.java
index 655effb5e..935b0076f 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredNodeFactory.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredNodeFactory.java
@@ -14,8 +14,8 @@
 import org.eclipse.che.ide.api.project.tree.TreeNode;
 import org.eclipse.che.ide.api.project.tree.generic.NodeFactory;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 
 /**
  * Factory that helps to create nodes for {@link FilteredTreeStructure}.
@@ -38,6 +38,6 @@ public interface FilteredNodeFactory extends NodeFactory {
      * @return a new {@link FilteredProjectNode}
      */
     FilteredProjectNode newFilteredProjectNode(@Nullable TreeNode parent,
-                                               @Nonnull ProjectDescriptor data,
-                                               @Nonnull FilteredTreeStructure treeStructure);
+                                               @NotNull ProjectDescriptor data,
+                                               @NotNull FilteredTreeStructure treeStructure);
 }
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredProjectNode.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredProjectNode.java
index 867ff952f..032a22ae2 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredProjectNode.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredProjectNode.java
@@ -21,8 +21,8 @@
 import com.google.inject.assistedinject.AssistedInject;
 import com.google.web.bindery.event.shared.EventBus;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
 
 /**
@@ -43,7 +43,7 @@ public FilteredProjectNode(@Assisted TreeNode parent,
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public FilteredTreeStructure getTreeStructure() {
         return (FilteredTreeStructure)super.getTreeStructure();
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructure.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructure.java
index 71f8ba516..c6c05cdb0 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructure.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructure.java
@@ -22,7 +22,7 @@
 import org.eclipse.che.ide.rest.DtoUnmarshallerFactory;
 import com.google.web.bindery.event.shared.EventBus;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Builds a currently opened project's tree structure that reflects the project's physical structure which shows filtered content.
@@ -44,19 +44,19 @@ public FilteredNodeFactory getNodeFactory() {
 
     /** {@inheritDoc} */
     @Override
-    public FileNode newFileNode(@Nonnull TreeNode parent, @Nonnull ItemReference data) {
+    public FileNode newFileNode(@NotNull TreeNode parent, @NotNull ItemReference data) {
         return null;
     }
 
     /** {@inheritDoc} */
     @Override
-    public FilteredProjectNode newProjectNode(@Nonnull ProjectDescriptor data) {
+    public FilteredProjectNode newProjectNode(@NotNull ProjectDescriptor data) {
         return getNodeFactory().newFilteredProjectNode(null, data, this);
     }
 
     /** {@inheritDoc} */
     @Override
-    public FolderNode newFolderNode(@Nonnull TreeNode parent, @Nonnull ItemReference data) {
+    public FolderNode newFolderNode(@NotNull TreeNode parent, @NotNull ItemReference data) {
         return getNodeFactory().newFolderNode(parent, data, this);
     }
 }
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructureProvider.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructureProvider.java
index d63d86a27..61b85a63f 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructureProvider.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/filteredtree/FilteredTreeStructureProvider.java
@@ -19,7 +19,7 @@
 import com.google.inject.Singleton;
 import com.google.web.bindery.event.shared.EventBus;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 /**
  * Provides an instances of {@code com.codenvy.ide.api.project.tree.TreeStructure}.
@@ -49,7 +49,7 @@ public FilteredTreeStructureProvider(FilteredNodeFactory nodeFactory,
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getId() {
         return ID;
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogFactory.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogFactory.java
index dcaef54ee..8bc7b4cf6 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogFactory.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogFactory.java
@@ -10,8 +10,8 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.svn.client.common.threechoices;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 
 import org.eclipse.che.ide.ui.dialogs.ConfirmCallback;
 import org.eclipse.che.ide.ui.dialogs.confirm.ConfirmDialog;
@@ -37,10 +37,10 @@ public interface ChoiceDialogFactory {
      *         the callback used on second choice
      * @return a {@link ConfirmDialog} instance
      */
-    ChoiceDialog createChoiceDialog(@Nonnull @Assisted("title") String title,
-                                     @Nonnull @Assisted("message") String content,
-                                     @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                     @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
+    ChoiceDialog createChoiceDialog(@NotNull @Assisted("title") String title,
+                                     @NotNull @Assisted("message") String content,
+                                     @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                     @NotNull @Assisted("secondChoice") String secondChoiceLabel,
                                     @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                     @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback);
 
@@ -61,10 +61,10 @@ ChoiceDialog createChoiceDialog(@Nonnull @Assisted("title") String title,
      *         the callback used on second choice
      * @return a {@link ConfirmDialog} instance
      */
-    ChoiceDialog createChoiceDialog(@Nonnull @Assisted("title") String title,
-                                     @Nonnull IsWidget content,
-                                     @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                     @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
+    ChoiceDialog createChoiceDialog(@NotNull @Assisted("title") String title,
+                                     @NotNull IsWidget content,
+                                     @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                     @NotNull @Assisted("secondChoice") String secondChoiceLabel,
                                     @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                     @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback);
     
@@ -89,11 +89,11 @@ ChoiceDialog createChoiceDialog(@Nonnull @Assisted("title") String title,
      *         the callback used on third choice
      * @return a {@link ConfirmDialog} instance
      */
-    ChoiceDialog createChoiceDialog(@Nonnull @Assisted("title") String title,
-                                     @Nonnull @Assisted("message") String content,
-                                     @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                     @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
-                                     @Nonnull @Assisted("thirdChoice") String thirdChoiceLabel,
+    ChoiceDialog createChoiceDialog(@NotNull @Assisted("title") String title,
+                                     @NotNull @Assisted("message") String content,
+                                     @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                     @NotNull @Assisted("secondChoice") String secondChoiceLabel,
+                                     @NotNull @Assisted("thirdChoice") String thirdChoiceLabel,
                                     @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                     @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback,
                                     @Nullable @Assisted("thirdCallback") ConfirmCallback thirdChoiceCallback);
@@ -119,11 +119,11 @@ ChoiceDialog createChoiceDialog(@Nonnull @Assisted("title") String title,
      *         the callback used on third choice
      * @return a {@link ConfirmDialog} instance
      */
-    ChoiceDialog createChoiceDialog(@Nonnull @Assisted("title") String title,
-                                    @Nonnull @Assisted IsWidget content,
-                                    @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                    @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
-                                    @Nonnull @Assisted("thirdChoice") String thirdChoiceLabel,
+    ChoiceDialog createChoiceDialog(@NotNull @Assisted("title") String title,
+                                    @NotNull @Assisted IsWidget content,
+                                    @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                    @NotNull @Assisted("secondChoice") String secondChoiceLabel,
+                                    @NotNull @Assisted("thirdChoice") String thirdChoiceLabel,
                                     @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                     @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback,
                                     @Nullable @Assisted("thirdCallback") ConfirmCallback thirdChoiceCallback);
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogPresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogPresenter.java
index 496675741..d9ebbab0d 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogPresenter.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogPresenter.java
@@ -10,8 +10,8 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.svn.client.common.threechoices;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 
 import org.eclipse.che.ide.ui.dialogs.ConfirmCallback;
 import com.google.gwt.user.client.ui.InlineHTML;
@@ -40,11 +40,11 @@ public class ChoiceDialogPresenter implements ChoiceDialog, ChoiceDialogView.Act
     private final ConfirmCallback thirdChoiceCallback;
 
     @AssistedInject
-    public ChoiceDialogPresenter(final @Nonnull ChoiceDialogView view,
-                                 final @Nonnull @Assisted("title") String title,
-                                 final @Nonnull @Assisted("message") String message,
-                                 final @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                 final @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
+    public ChoiceDialogPresenter(final @NotNull ChoiceDialogView view,
+                                 final @NotNull @Assisted("title") String title,
+                                 final @NotNull @Assisted("message") String message,
+                                 final @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                 final @NotNull @Assisted("secondChoice") String secondChoiceLabel,
                                  final @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                  final @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback) {
         this(view, title, new InlineHTML(message),
@@ -53,11 +53,11 @@ public ChoiceDialogPresenter(final @Nonnull ChoiceDialogView view,
     }
 
     @AssistedInject
-    public ChoiceDialogPresenter(final @Nonnull ChoiceDialogView view,
-                                 final @Nonnull @Assisted("title") String title,
-                                 final @Nonnull @Assisted IsWidget content,
-                                 final @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                 final @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
+    public ChoiceDialogPresenter(final @NotNull ChoiceDialogView view,
+                                 final @NotNull @Assisted("title") String title,
+                                 final @NotNull @Assisted IsWidget content,
+                                 final @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                 final @NotNull @Assisted("secondChoice") String secondChoiceLabel,
                                  final @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                  final @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback) {
         this(view, title, content,
@@ -66,12 +66,12 @@ public ChoiceDialogPresenter(final @Nonnull ChoiceDialogView view,
     }
 
     @AssistedInject
-    public ChoiceDialogPresenter(final @Nonnull ChoiceDialogView view,
-                                 final @Nonnull @Assisted("title") String title,
-                                 final @Nonnull @Assisted("message") String message,
-                                 final @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                 final @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
-                                 final @Nonnull @Assisted("thirdChoice") String thirdChoiceLabel,
+    public ChoiceDialogPresenter(final @NotNull ChoiceDialogView view,
+                                 final @NotNull @Assisted("title") String title,
+                                 final @NotNull @Assisted("message") String message,
+                                 final @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                 final @NotNull @Assisted("secondChoice") String secondChoiceLabel,
+                                 final @NotNull @Assisted("thirdChoice") String thirdChoiceLabel,
                                  final @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                  final @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback,
                                  final @Nullable @Assisted("thirdCallback") ConfirmCallback thirdChoiceCallback) {
@@ -81,12 +81,12 @@ public ChoiceDialogPresenter(final @Nonnull ChoiceDialogView view,
     }
 
     @AssistedInject
-    public ChoiceDialogPresenter(final @Nonnull ChoiceDialogView view,
-                                 final @Nonnull @Assisted("title") String title,
-                                 final @Nonnull @Assisted IsWidget content,
-                                 final @Nonnull @Assisted("firstChoice") String firstChoiceLabel,
-                                 final @Nonnull @Assisted("secondChoice") String secondChoiceLabel,
-                                 final @Nonnull @Assisted("thirdChoice") String thirdChoiceLabel,
+    public ChoiceDialogPresenter(final @NotNull ChoiceDialogView view,
+                                 final @NotNull @Assisted("title") String title,
+                                 final @NotNull @Assisted IsWidget content,
+                                 final @NotNull @Assisted("firstChoice") String firstChoiceLabel,
+                                 final @NotNull @Assisted("secondChoice") String secondChoiceLabel,
+                                 final @NotNull @Assisted("thirdChoice") String thirdChoiceLabel,
                                  final @Nullable @Assisted("firstCallback") ConfirmCallback firstChoiceCallback,
                                  final @Nullable @Assisted("secondCallback") ConfirmCallback secondChoiceCallback,
                                  final @Nullable @Assisted("thirdCallback") ConfirmCallback thirdChoiceCallback) {
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogViewImpl.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogViewImpl.java
index 6e0c0506a..13ed7318d 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogViewImpl.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/threechoices/ChoiceDialogViewImpl.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.svn.client.common.threechoices;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 import org.eclipse.che.ide.ui.window.Window;
 
@@ -40,7 +40,7 @@ public class ChoiceDialogViewImpl extends Window implements ChoiceDialogView {
     private ActionDelegate delegate;
 
     @Inject
-    public ChoiceDialogViewImpl(final @Nonnull ChoiceDialogFooter footer) {
+    public ChoiceDialogViewImpl(final @NotNull ChoiceDialogFooter footer) {
         Widget widget = uiBinder.createAndBindUi(this);
         setWidget(widget);
 
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenter.java
index edf727742..94da2b8e5 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenter.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyPresenter.java
@@ -39,7 +39,7 @@
 import org.eclipse.che.ide.util.RegExpUtils;
 import org.eclipse.che.ide.util.loging.Log;
 
-import javax.annotation.Nullable;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
 
 import static org.eclipse.che.ide.api.notification.Notification.Status.FINISHED;
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java
index ff6b3a80b..27b5be645 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyView.java
@@ -14,7 +14,7 @@
 import org.eclipse.che.ide.api.parts.base.BaseActionDelegate;
 import org.eclipse.che.ide.api.project.tree.TreeNode;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -61,7 +61,7 @@ public interface ActionDelegate extends BaseActionDelegate {
     void setProjectNodes(List> rootNodes);
 
     /** Update project tree node. */
-    void updateProjectNode(@Nonnull TreeNode oldNode, @Nonnull TreeNode newNode);
+    void updateProjectNode(@NotNull TreeNode oldNode, @NotNull TreeNode newNode);
 
     /** Show error marker with specified message. */
     void showErrorMarker(String message);
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java
index 08c949527..7afb714d9 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/copy/CopyViewImpl.java
@@ -45,7 +45,7 @@
 import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources;
 import org.vectomatic.dom.svg.OMSVGSVGElement;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -146,14 +146,14 @@ public void onClick(ClickEvent event) {
 
         rootNode = new AbstractTreeNode(null, null, null, null) {
             /** {@inheritDoc} */
-            @Nonnull
+            @NotNull
             @Override
             public String getId() {
                 return "ROOT";
             }
 
             /** {@inheritDoc} */
-            @Nonnull
+            @NotNull
             @Override
             public String getDisplayName() {
                 return "ROOT";
@@ -363,7 +363,7 @@ public void show() {
 
     /** {@inheritDoc} */
     @Override
-    public void updateProjectNode(@Nonnull TreeNode oldNode, @Nonnull TreeNode newNode) {
+    public void updateProjectNode(@NotNull TreeNode oldNode, @NotNull TreeNode newNode) {
         // get currently selected node
         final List> selectedNodes = tree.getSelectionModel().getSelectedNodes();
         TreeNode selectedNode = null;
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionImportWizardRegistrar.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionImportWizardRegistrar.java
index 0b88ce607..3af496bfa 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionImportWizardRegistrar.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionImportWizardRegistrar.java
@@ -16,7 +16,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -33,12 +33,12 @@ public SubversionImportWizardRegistrar(final Provider>> getWizardPages() {
         return wizardPages;
     }
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionProjectImporterViewImpl.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionProjectImporterViewImpl.java
index 625212108..5938884fc 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionProjectImporterViewImpl.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/importer/SubversionProjectImporterViewImpl.java
@@ -27,7 +27,7 @@
 import com.google.gwt.user.client.ui.TextBox;
 import com.google.inject.Inject;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 
 import org.eclipse.che.ide.ext.svn.client.SubversionExtensionResources;
 
@@ -79,13 +79,13 @@ public SubversionProjectImporterViewImpl(SubversionExtensionResources resources,
 
     /** {@inheritDoc} */
     @Override
-    public void setDelegate(@Nonnull ActionDelegate delegate) {
+    public void setDelegate(@NotNull ActionDelegate delegate) {
         this.delegate = delegate;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setProjectUrl(@Nonnull String url) {
+    public void setProjectUrl(@NotNull String url) {
         projectUrl.setText(url);
         delegate.onProjectUrlChanged();
     }
@@ -97,7 +97,7 @@ public String getProjectUrl() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getProjectRelativePath() {
         return this.projectRelativePath.getValue();
@@ -115,7 +115,7 @@ public void setNameErrorVisibility(boolean visible) {
 
     /** {@inheritDoc} */
     @Override
-    public void setProjectDescription(@Nonnull String text) {
+    public void setProjectDescription(@NotNull String text) {
         projectDescription.setText(text);
     }
 
@@ -126,7 +126,7 @@ public String getProjectDescription() {
     }
 
     /** {@inheritDoc} */
-    @Nonnull
+    @NotNull
     @Override
     public String getProjectName() {
         return projectName.getValue();
@@ -134,7 +134,7 @@ public String getProjectName() {
 
     /** {@inheritDoc} */
     @Override
-    public void setProjectName(@Nonnull String projectName) {
+    public void setProjectName(@NotNull String projectName) {
         this.projectName.setValue(projectName);
         delegate.onProjectNameChanged();
     }
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/lockunlock/LockUnlockPresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/lockunlock/LockUnlockPresenter.java
index abd4feff2..bd88ed1a4 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/lockunlock/LockUnlockPresenter.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/lockunlock/LockUnlockPresenter.java
@@ -34,7 +34,7 @@
 import org.eclipse.che.ide.ui.dialogs.ConfirmCallback;
 import org.eclipse.che.ide.ui.dialogs.DialogFactory;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -218,7 +218,7 @@ protected void onFailure(final Throwable exception) {
         };
     }
 
-    private void handleError(@Nonnull final Throwable e) {
+    private void handleError(@NotNull final Throwable e) {
         String errorMessage;
         if (e.getMessage() != null && !e.getMessage().isEmpty()) {
             errorMessage = e.getMessage();
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergePresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergePresenter.java
index 51ce59f3e..aaff33043 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergePresenter.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergePresenter.java
@@ -36,8 +36,8 @@
 import org.eclipse.che.ide.ui.tree.TreeNodeElement;
 import org.vectomatic.dom.svg.ui.SVGImage;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.eclipse.che.commons.annotation.Nullable;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -330,36 +330,36 @@ public void setData(SubversionItem data) {
             this.data = data;
         }
 
-        @Nonnull
+        @NotNull
         @Override
         public String getId() {
             return data.getURL();
         }
 
-        @Nonnull
+        @NotNull
         @Override
         public TreeStructure getTreeStructure() {
             return null;
         }
 
-        @Nonnull
+        @NotNull
         @Override
         public HasProjectDescriptor getProject() {
             return new HasProjectDescriptor() {
-                @Nonnull
+                @NotNull
                 @Override
                 public ProjectDescriptor getProjectDescriptor() {
                     return null;
                 }
 
                 @Override
-                public void setProjectDescriptor(@Nonnull ProjectDescriptor projectDescriptor) {
+                public void setProjectDescriptor(@NotNull ProjectDescriptor projectDescriptor) {
                     //stub
                 }
             };
         }
 
-        @Nonnull
+        @NotNull
         @Override
         public String getDisplayName() {
             if (data.getRepositoryRoot().equals(data.getURL())) {
@@ -392,7 +392,7 @@ public boolean isLeaf() {
             return false;
         }
 
-        @Nonnull
+        @NotNull
         @Override
         public List> getChildren() {
             return children;
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergeViewImpl.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergeViewImpl.java
index 4d8487a60..fe0cdd24b 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergeViewImpl.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/merge/MergeViewImpl.java
@@ -44,7 +44,7 @@
 import org.eclipse.che.ide.util.input.SignalEvent;
 import org.vectomatic.dom.svg.OMSVGSVGElement;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -151,14 +151,14 @@ public void onClick(ClickEvent event) {
 
         rootNode = new AbstractTreeNode(null, null, null, null) {
             /** {@inheritDoc} */
-            @Nonnull
+            @NotNull
             @Override
             public String getId() {
                 return "ROOT";
             }
 
             /** {@inheritDoc} */
-            @Nonnull
+            @NotNull
             @Override
             public String getDisplayName() {
                 return "ROOT";
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveView.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveView.java
index c7d67525c..5fbbe547b 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveView.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveView.java
@@ -14,7 +14,7 @@
 import org.eclipse.che.ide.api.parts.base.BaseActionDelegate;
 import org.eclipse.che.ide.api.project.tree.TreeNode;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -44,7 +44,7 @@ public interface ActionDelegate extends BaseActionDelegate {
     void setProjectNodes(List> rootNodes);
 
     /** Update project tree node. */
-    void updateProjectNode(@Nonnull TreeNode oldNode, @Nonnull TreeNode newNode);
+    void updateProjectNode(@NotNull TreeNode oldNode, @NotNull TreeNode newNode);
 
     /** Show error marker with specified message. */
     void showErrorMarker(String message);
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveViewImpl.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveViewImpl.java
index 560697d6b..e4646a13a 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveViewImpl.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/move/MoveViewImpl.java
@@ -45,7 +45,7 @@
 import org.eclipse.che.ide.util.input.SignalEvent;
 import org.vectomatic.dom.svg.OMSVGSVGElement;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -138,14 +138,14 @@ public void onClick(ClickEvent event) {
 
         rootNode = new AbstractTreeNode(null, null, null, null) {
             /** {@inheritDoc} */
-            @Nonnull
+            @NotNull
             @Override
             public String getId() {
                 return "ROOT";
             }
 
             /** {@inheritDoc} */
-            @Nonnull
+            @NotNull
             @Override
             public String getDisplayName() {
                 return "ROOT";
@@ -270,7 +270,7 @@ public void setProjectNodes(List> rootNodes) {
 
     /** {@inheritDoc} */
     @Override
-    public void updateProjectNode(@Nonnull TreeNode oldNode, @Nonnull TreeNode newNode) {
+    public void updateProjectNode(@NotNull TreeNode oldNode, @NotNull TreeNode newNode) {
         // get currently selected node
         final List> selectedNodes = tree.getSelectionModel().getSelectedNodes();
         TreeNode selectedNode = null;
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/credentials/CredentialsProvider.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/credentials/CredentialsProvider.java
index 1a9afe15f..9d93b68c9 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/credentials/CredentialsProvider.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/credentials/CredentialsProvider.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.svn.server.credentials;
 
-import javax.annotation.Nullable;
+import org.eclipse.che.commons.annotation.Nullable;
 
 public interface CredentialsProvider {
 
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/upstream/UpstreamUtils.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/upstream/UpstreamUtils.java
index 965f95555..448aad209 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/upstream/UpstreamUtils.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/server/upstream/UpstreamUtils.java
@@ -14,7 +14,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.annotation.Nullable;
+import org.eclipse.che.commons.annotation.Nullable;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/ActionManagerExternalAction.java b/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/ActionManagerExternalAction.java
index d97f5e047..f8e72f097 100644
--- a/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/ActionManagerExternalAction.java
+++ b/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/ActionManagerExternalAction.java
@@ -17,7 +17,7 @@
 import org.eclipse.che.ide.api.action.Presentation;
 import org.eclipse.che.plugin.tour.client.action.ExternalAction;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import javax.inject.Inject;
 
 /**
@@ -48,7 +48,7 @@ public boolean accept(String category) {
      * @param actionId the id of action
      */
     @Override
-    public void execute(@Nonnull String actionId) {
+    public void execute(@NotNull String actionId) {
         Action action = actionManager.getAction(actionId);
         if (action != null) {
             ActionEvent e = new ActionEvent("", new Presentation(), actionManager, 0);
diff --git a/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/SetActivePanelExternalAction.java b/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/SetActivePanelExternalAction.java
index d7e6952bb..155541c83 100644
--- a/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/SetActivePanelExternalAction.java
+++ b/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/action/impl/SetActivePanelExternalAction.java
@@ -18,7 +18,7 @@
 import org.eclipse.che.plugin.tour.client.action.ExternalAction;
 import org.eclipse.che.plugin.tour.client.log.Log;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import javax.inject.Inject;
 import java.util.List;
 
@@ -56,7 +56,7 @@ public boolean accept(String category) {
      * @param tabIdentifier the identifier based on the following : PartStackType.TITLE {@link org.eclipse.che.ide.api.parts.PartStackType}
      */
     @Override
-    public void execute(@Nonnull String tabIdentifier) {
+    public void execute(@NotNull String tabIdentifier) {
 
 
         int firstDot = tabIdentifier.indexOf('.');

From 9da64fbd565fb809c4745583e284136e96bccd42 Mon Sep 17 00:00:00 2001
From: Vladyslav Zhukovskii 
Date: Thu, 10 Sep 2015 19:46:39 +0300
Subject: [PATCH 022/164] IDEX-2971: Tree collapse fixes

---
 .../bower/client/menu/BowerInstallAction.java |  6 +--
 .../git/client/branch/BranchPresenter.java    |  8 +--
 .../checkout/CheckoutReferencePresenter.java  |  7 +--
 .../delete/DeleteRepositoryPresenter.java     |  7 +--
 .../client/init/InitRepositoryPresenter.java  | 15 +++---
 .../ext/git/client/merge/MergePresenter.java  |  2 +-
 .../ext/git/client/pull/PullPresenter.java    |  2 +-
 .../client/branch/BranchPresenterTest.java    |  3 +-
 .../delete/DeleteRepositoryPresenterTest.java |  3 +-
 .../init/InitRepositoryPresenterTest.java     |  8 ++-
 .../page/GithubImporterPagePresenter.java     |  6 +++
 .../java/client/action/NewPackageAction.java  | 54 ++++++-------------
 .../NewJavaSourceFilePresenter.java           | 32 ++++++-----
 .../maven/client/MavenExtension.java          | 15 ------
 .../module/CreateMavenModulePresenter.java    |  4 +-
 .../npm/client/menu/NpmInstallAction.java     |  8 +--
 .../client/panel/YeomanPartPresenter.java     |  9 +---
 .../client/panel/YeomanPartPresenterTest.java |  5 +-
 18 files changed, 65 insertions(+), 129 deletions(-)

diff --git a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/menu/BowerInstallAction.java b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/menu/BowerInstallAction.java
index 0e6e9fc84..b6045f000 100644
--- a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/menu/BowerInstallAction.java
+++ b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/menu/BowerInstallAction.java
@@ -11,7 +11,6 @@
 package org.eclipse.che.plugin.bower.client.menu;
 
 import com.google.inject.Inject;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger;
 import org.eclipse.che.api.builder.BuildStatus;
@@ -37,7 +36,6 @@ public class BowerInstallAction extends CustomAction implements BuildFinishedCal
 
     private BuilderAgent builderAgent;
 
-    private EventBus eventBus;
     private final NewProjectExplorerPresenter projectExplorer;
 
     private boolean buildInProgress;
@@ -50,7 +48,6 @@ public BowerInstallAction(LocalizationConstant localizationConstant,
                               DtoFactory dtoFactory,
                               BuilderAgent builderAgent,
                               AppContext appContext,
-                              EventBus eventBus,
                               BowerResources bowerResources,
                               AnalyticsEventLogger analyticsEventLogger,
                               NewProjectExplorerPresenter projectExplorer) {
@@ -60,7 +57,6 @@ public BowerInstallAction(LocalizationConstant localizationConstant,
         this.builderAgent = builderAgent;
         this.appContext = appContext;
         this.analyticsEventLogger = analyticsEventLogger;
-        this.eventBus = eventBus;
         this.projectExplorer = projectExplorer;
     }
 
@@ -84,7 +80,7 @@ public void installDependencies() {
     public void onFinished(BuildStatus buildStatus) {
         // and refresh the tree if success
         if (buildStatus == BuildStatus.SUCCESSFUL) {
-            projectExplorer.synchronizeTree();
+            projectExplorer.reloadChildren();
         }
         buildInProgress = false;
         appContext.getCurrentProject().setIsRunningEnabled(true);
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java
index 5a1d114a3..66c2429ca 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java
@@ -14,7 +14,6 @@
 import com.google.gwt.json.client.JSONParser;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.core.rest.shared.dto.ServiceError;
 import org.eclipse.che.api.git.gwt.client.GitServiceClient;
@@ -57,7 +56,6 @@ public class BranchPresenter implements BranchView.ActionDelegate {
     private       WorkspaceAgent              workspaceAgent;
     private       DialogFactory               dialogFactory;
     private final NewProjectExplorerPresenter projectExplorer;
-    private       EventBus                    eventBus;
     private       CurrentProject              project;
     private       GitServiceClient            service;
     private       GitLocalizationConstant     constant;
@@ -69,7 +67,6 @@ public class BranchPresenter implements BranchView.ActionDelegate {
     /** Create presenter. */
     @Inject
     public BranchPresenter(BranchView view,
-                           EventBus eventBus,
                            DtoFactory dtoFactory,
                            EditorAgent editorAgent,
                            GitServiceClient service,
@@ -88,7 +85,6 @@ public BranchPresenter(BranchView view,
         this.dialogFactory = dialogFactory;
         this.projectExplorer = projectExplorer;
         this.view.setDelegate(this);
-        this.eventBus = eventBus;
         this.editorAgent = editorAgent;
         this.service = service;
         this.constant = constant;
@@ -215,11 +211,9 @@ public void onCheckoutClicked() {
             @Override
             protected void onSuccess(String result) {
                 getBranches();
-//                String projectPath = project.getRootProject().getPath();
                 //In this case we can have unconfigured state of the project,
                 //so we must repeat the logic which is performed when we open a project
-                projectExplorer.synchronizeTree();
-//                eventBus.fireEvent(new OpenProjectEvent(projectPath));
+                projectExplorer.reloadChildren();
             }
 
             @Override
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java
index 032a3e191..aecf0389e 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java
@@ -12,7 +12,6 @@
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.git.gwt.client.GitServiceClient;
 import org.eclipse.che.api.git.shared.BranchCheckoutRequest;
@@ -34,7 +33,6 @@ public class CheckoutReferencePresenter implements CheckoutReferenceView.ActionD
     private final NotificationManager         notificationManager;
     private       GitServiceClient            service;
     private       AppContext                  appContext;
-    private       EventBus                    eventBus;
     private       GitLocalizationConstant     constant;
     private       CheckoutReferenceView       view;
     private final NewProjectExplorerPresenter projectExplorer;
@@ -43,7 +41,6 @@ public class CheckoutReferencePresenter implements CheckoutReferenceView.ActionD
     @Inject
     public CheckoutReferencePresenter(CheckoutReferenceView view,
                                       GitServiceClient service,
-                                      EventBus eventBus,
                                       AppContext appContext,
                                       GitLocalizationConstant constant,
                                       NotificationManager notificationManager,
@@ -56,7 +53,6 @@ public CheckoutReferencePresenter(CheckoutReferenceView view,
         this.service = service;
         this.appContext = appContext;
         this.constant = constant;
-        this.eventBus = eventBus;
         this.notificationManager = notificationManager;
     }
 
@@ -82,10 +78,9 @@ public void onCheckoutClicked(final String reference) {
                                new AsyncRequestCallback() {
                                    @Override
                                    protected void onSuccess(String result) {
-//                                       String projectPath = project.getPath();
                                        //In this case we can have unconfigured state of the project,
                                        //so we must repeat the logic which is performed when we open a project
-                                       projectExplorer.synchronizeTree();
+                                       projectExplorer.reloadChildren();
                                    }
 
                                    @Override
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenter.java
index 247db28bc..f83f98f27 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenter.java
@@ -12,7 +12,6 @@
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.git.gwt.client.GitServiceClient;
 import org.eclipse.che.ide.api.app.AppContext;
@@ -30,7 +29,6 @@
 @Singleton
 public class DeleteRepositoryPresenter {
     private GitServiceClient        service;
-    private EventBus                eventBus;
     private GitLocalizationConstant constant;
     private AppContext              appContext;
     private NotificationManager     notificationManager;
@@ -40,20 +38,17 @@ public class DeleteRepositoryPresenter {
      * Create presenter.
      *
      * @param service
-     * @param eventBus
      * @param constant
      * @param appContext
      * @param notificationManager
      */
     @Inject
     public DeleteRepositoryPresenter(GitServiceClient service,
-                                     EventBus eventBus,
                                      GitLocalizationConstant constant,
                                      AppContext appContext,
                                      NotificationManager notificationManager,
                                      NewProjectExplorerPresenter projectExplorer) {
         this.service = service;
-        this.eventBus = eventBus;
         this.constant = constant;
         this.appContext = appContext;
         this.notificationManager = notificationManager;
@@ -70,7 +65,7 @@ protected void onSuccess(Void result) {
 
                 notificationManager.showInfo(constant.deleteGitRepositorySuccess());
                 //it's need for hide .git in project tree
-                projectExplorer.synchronizeTree();
+                projectExplorer.reloadChildren();
             }
 
             @Override
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenter.java
index 447d62906..1814e6543 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenter.java
@@ -10,17 +10,17 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.git.client.init;
 
-import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
 import org.eclipse.che.ide.api.app.AppContext;
 import org.eclipse.che.ide.api.app.CurrentProject;
 import org.eclipse.che.ide.api.notification.NotificationManager;
+import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant;
 import org.eclipse.che.ide.ext.git.client.GitRepositoryInitializer;
 import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter;
 import org.eclipse.che.ide.util.loging.Log;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import javax.annotation.Nonnull;
 
@@ -34,20 +34,17 @@
 public class InitRepositoryPresenter {
     private final GitRepositoryInitializer gitRepositoryInitializer;
     private final NewProjectExplorerPresenter projectExplorer;
-    private final EventBus                eventBus;
     private final AppContext              appContext;
     private final GitLocalizationConstant constant;
     private final NotificationManager     notificationManager;
 
     @Inject
     public InitRepositoryPresenter(AppContext appContext,
-                                   EventBus eventBus,
                                    GitLocalizationConstant constant,
                                    NotificationManager notificationManager,
                                    GitRepositoryInitializer gitRepositoryInitializer,
                                    NewProjectExplorerPresenter projectExplorer) {
         this.appContext = appContext;
-        this.eventBus = eventBus;
         this.constant = constant;
         this.notificationManager = notificationManager;
         this.gitRepositoryInitializer = gitRepositoryInitializer;
@@ -72,7 +69,7 @@ public void onFailure(Throwable caught) {
             public void onSuccess(Void result) {
                 notificationManager.showInfo(constant.initSuccess());
                 //it's need for show .git in project tree
-                projectExplorer.synchronizeTree();
+                projectExplorer.reloadChildren();
             }
         });
     }
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergePresenter.java
index 82186ca3c..85a6207a9 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergePresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/merge/MergePresenter.java
@@ -193,7 +193,7 @@ protected void onFailure(Throwable exception) {
      *         editors that corresponds to open files
      */
     private void refreshProject(final List openedEditors) {
-        projectExplorer.synchronizeTree();
+        projectExplorer.reloadChildren();
         for (EditorPartPresenter partPresenter : openedEditors) {
             final VirtualFile file = partPresenter.getEditorInput().getFile();
             eventBus.fireEvent(new FileEvent(file, FileEvent.FileOperation.CLOSE));
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java
index b73faabc5..a4b2c9388 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/pull/PullPresenter.java
@@ -199,7 +199,7 @@ protected void onFailure(Throwable throwable) {
      *         editors that corresponds to open files
      */
     private void refreshProject(final List openedEditors) {
-        projectExplorer.synchronizeTree();
+        projectExplorer.reloadChildren();
         for (EditorPartPresenter partPresenter : openedEditors) {
             final VirtualFile file = partPresenter.getEditorInput().getFile();
             eventBus.fireEvent(new FileEvent(file, FileEvent.FileOperation.CLOSE));
diff --git a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java
index e944be353..da2a927d4 100644
--- a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java
+++ b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java
@@ -106,7 +106,7 @@ public class BranchPresenterTest extends BaseTest {
     public void disarm() {
         super.disarm();
 
-        presenter = new BranchPresenter(view, eventBus, dtoFactory, editorAgent, service, constant, appContext, notificationManager,
+        presenter = new BranchPresenter(view, dtoFactory, editorAgent, service, constant, appContext, notificationManager,
                                         dtoUnmarshallerFactory, gitConsole, workspaceAgent, dialogFactory, projectExplorer);
 
         NavigableMap partPresenterMap = new TreeMap<>();
@@ -118,7 +118,6 @@ public void disarm() {
         when(selectedBranch.isActive()).thenReturn(IS_ACTIVE);
         when(editorAgent.getOpenedEditors()).thenReturn(partPresenterMap);
         when(partPresenter.getEditorInput()).thenReturn(editorInput);
-//        when(editorInput.getFile()).thenReturn(file);
     }
 
     @Ignore
diff --git a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenterTest.java b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenterTest.java
index 6e2355803..81d9dbd1b 100644
--- a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenterTest.java
+++ b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/delete/DeleteRepositoryPresenterTest.java
@@ -17,7 +17,6 @@
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.ui.window.Window;
 import org.junit.Test;
-import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
@@ -56,7 +55,7 @@ public void disarm() {
         when(css.glassVisible()).thenReturn("sdgsdf");
         when(css.contentVisible()).thenReturn("sdgsdf");
         when(css.animationDuration()).thenReturn(1);
-        presenter = new DeleteRepositoryPresenter(service, eventBus, constant, appContext, notificationManager, projectExplorer);
+        presenter = new DeleteRepositoryPresenter(service, constant, appContext, notificationManager, projectExplorer);
     }
 
     @Test
diff --git a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenterTest.java b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenterTest.java
index ed0a4412a..81dbb34e1 100644
--- a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenterTest.java
+++ b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/init/InitRepositoryPresenterTest.java
@@ -10,14 +10,13 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.git.client.init;
 
-import org.eclipse.che.api.project.shared.dto.ProjectDescriptor;
-import org.eclipse.che.ide.ext.git.client.BaseTest;
-import org.eclipse.che.ide.ext.git.client.GitRepositoryInitializer;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.googlecode.gwt.test.utils.GwtReflectionUtils;
 
+import org.eclipse.che.api.project.shared.dto.ProjectDescriptor;
+import org.eclipse.che.ide.ext.git.client.BaseTest;
+import org.eclipse.che.ide.ext.git.client.GitRepositoryInitializer;
 import org.junit.Test;
-import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
@@ -47,7 +46,6 @@ public void disarm() {
         super.disarm();
 
         presenter = new InitRepositoryPresenter(appContext,
-                                                eventBus,
                                                 constant,
                                                 notificationManager,
                                                 gitRepositoryInitializer,
diff --git a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java
index 64f2c9975..c096ec337 100644
--- a/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java
+++ b/plugin-github/che-plugin-github-ext-github/src/main/java/org/eclipse/che/ide/ext/github/client/importer/page/GithubImporterPagePresenter.java
@@ -157,10 +157,12 @@ public void keepDirectorySelected(boolean keepDirectory) {
 
         if (keepDirectory) {
             projectParameters().put("keepDirectory", view.getDirectoryName());
+            dataObject.getProject().withType("blank");
             view.highlightDirectoryNameField(!NameUtils.checkProjectName(view.getDirectoryName()));
             view.focusDirectoryNameFiend();
         } else {
             projectParameters().remove("keepDirectory");
+            dataObject.getProject().withType(null);
             view.highlightDirectoryNameField(false);
         }
     }
@@ -169,9 +171,13 @@ public void keepDirectorySelected(boolean keepDirectory) {
     public void keepDirectoryNameChanged(@Nonnull String directoryName) {
         if (view.keepDirectory()) {
             projectParameters().put("keepDirectory", directoryName);
+            dataObject.getProject().setContentRoot(view.getDirectoryName());
+            dataObject.getProject().withType("blank");
             view.highlightDirectoryNameField(!NameUtils.checkProjectName(view.getDirectoryName()));
         } else {
             projectParameters().remove("keepDirectory");
+            dataObject.getProject().setContentRoot(null);
+            dataObject.getProject().withType(null);
             view.highlightDirectoryNameField(false);
         }
     }
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java
index e09e31937..fa645d703 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java
@@ -14,11 +14,10 @@
 import com.google.inject.Singleton;
 
 import org.eclipse.che.api.project.shared.dto.ItemReference;
-import org.eclipse.che.api.promises.client.Function;
-import org.eclipse.che.api.promises.client.FunctionException;
 import org.eclipse.che.api.promises.client.Operation;
 import org.eclipse.che.api.promises.client.OperationException;
 import org.eclipse.che.ide.api.action.ActionEvent;
+import org.eclipse.che.ide.api.project.node.HasDataObject;
 import org.eclipse.che.ide.api.project.node.Node;
 import org.eclipse.che.ide.api.selection.Selection;
 import org.eclipse.che.ide.ext.java.client.JavaLocalizationConstant;
@@ -28,7 +27,6 @@
 import org.eclipse.che.ide.json.JsonHelper;
 import org.eclipse.che.ide.newresource.AbstractNewResourceAction;
 import org.eclipse.che.ide.project.node.FolderReferenceNode;
-import org.eclipse.che.ide.project.node.ItemReferenceBasedNode;
 import org.eclipse.che.ide.project.node.ResourceBasedNode;
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.ui.dialogs.InputCallback;
@@ -88,10 +86,24 @@ protected void onSuccess(final ItemReference itemReference) {
                 parent.getChildren(false).then(new Operation>() {
                     @Override
                     public void apply(List cachedChildren) throws OperationException {
+                        HasDataObject dataObject = new HasDataObject() {
+                            @Nonnull
+                            @Override
+                            public Object getData() {
+                                return itemReference;
+                            }
+
+                            @Override
+                            public void setData(@Nonnull Object data) {
+
+                            }
+                        };
+
+
                         if (cachedChildren.size() == 1 && cachedChildren.get(0) instanceof PackageNode) {
-                            projectExplorer.reloadChildren(parent.getParent(), itemReference);
+                            projectExplorer.reloadChildren(parent.getParent(), dataObject, false, false);
                         } else {
-                            projectExplorer.reloadChildren(parent, itemReference);
+                            projectExplorer.reloadChildren(parent, dataObject, false, false);
                         }
                     }
                 });
@@ -160,36 +172,4 @@ public String getCorrectedValue() {
             return null;
         }
     }
-
-    @Nonnull
-    @Override
-    protected Function, ItemReferenceBasedNode> iterateAndFindCreatedNode(@Nonnull final ItemReference itemReference) {
-        return new Function, ItemReferenceBasedNode>() {
-            @Override
-            public ItemReferenceBasedNode apply(List nodes) throws FunctionException {
-                if (nodes.isEmpty()) {
-                    return null;
-                }
-
-                for (Node node : nodes) {
-                    if (node instanceof PackageNode && ((PackageNode)node).getData().equals(itemReference)) {
-                        return (PackageNode)node;
-                    }
-                }
-
-                return null;
-            }
-        };
-    }
-
-    @Nonnull
-    @Override
-    protected Operation fireNodeCreated(@Nonnull ResourceBasedNode parent) {
-        return new Operation() {
-            @Override
-            public void apply(ItemReferenceBasedNode arg) throws OperationException {
-                projectExplorer.synchronizeTree();
-            }
-        };
-    }
 }
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
index 6bbaa83a6..8685480d8 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
@@ -13,14 +13,12 @@
 import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.project.gwt.client.ProjectServiceClient;
 import org.eclipse.che.api.project.shared.dto.ItemReference;
 import org.eclipse.che.ide.api.app.AppContext;
 import org.eclipse.che.ide.api.app.CurrentProject;
-import org.eclipse.che.ide.api.project.node.Node;
-import org.eclipse.che.ide.ext.java.client.project.node.JavaNodeManager;
+import org.eclipse.che.ide.api.project.node.HasDataObject;
 import org.eclipse.che.ide.ext.java.client.project.node.PackageNode;
 import org.eclipse.che.ide.json.JsonHelper;
 import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter;
@@ -30,8 +28,8 @@
 import org.eclipse.che.ide.rest.DtoUnmarshallerFactory;
 import org.eclipse.che.ide.ui.dialogs.DialogFactory;
 
+import javax.annotation.Nonnull;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 import static org.eclipse.che.ide.ext.java.client.JavaUtils.checkCompilationUnitName;
@@ -53,11 +51,9 @@ public class NewJavaSourceFilePresenter implements NewJavaSourceFileView.ActionD
     private static final String DEFAULT_CONTENT = " {\n}\n";
 
     private final NewProjectExplorerPresenter projectExplorer;
-    private final JavaNodeManager             nodeManager;
     private final NewJavaSourceFileView       view;
     private final ProjectServiceClient        projectServiceClient;
     private final DtoUnmarshallerFactory      dtoUnmarshallerFactory;
-    private final EventBus                    eventBus;
     private final DialogFactory               dialogFactory;
     private final List    sourceFileTypes;
     private final AppContext                  appContext;
@@ -67,18 +63,14 @@ public NewJavaSourceFilePresenter(NewJavaSourceFileView view,
                                       NewProjectExplorerPresenter projectExplorer,
                                       ProjectServiceClient projectServiceClient,
                                       DtoUnmarshallerFactory dtoUnmarshallerFactory,
-                                      EventBus eventBus,
                                       DialogFactory dialogFactory,
-                                      AppContext appContext,
-                                      JavaNodeManager nodeManager) {
+                                      AppContext appContext) {
         this.appContext = appContext;
         sourceFileTypes = Arrays.asList(CLASS, INTERFACE, ENUM, ANNOTATION);
         this.view = view;
-        this.nodeManager = nodeManager;
         this.projectExplorer = projectExplorer;
         this.projectServiceClient = projectServiceClient;
         this.dtoUnmarshallerFactory = dtoUnmarshallerFactory;
-        this.eventBus = eventBus;
         this.dialogFactory = dialogFactory;
         this.view.setDelegate(this);
     }
@@ -255,8 +247,22 @@ private void createAndOpenFile(String nameWithoutExtension, FolderReferenceNode
     protected AsyncRequestCallback createCallback(final ResourceBasedNode parent) {
         return new AsyncRequestCallback(dtoUnmarshallerFactory.newUnmarshaller(ItemReference.class)) {
             @Override
-            protected void onSuccess(ItemReference itemReference) {
-                projectExplorer.reloadChildren(Collections.singletonList((Node)parent), itemReference, true);
+            protected void onSuccess(final ItemReference itemReference) {
+
+                HasDataObject dataObject = new HasDataObject() {
+                    @Nonnull
+                    @Override
+                    public Object getData() {
+                        return itemReference;
+                    }
+
+                    @Override
+                    public void setData(@Nonnull Object data) {
+
+                    }
+                };
+
+                projectExplorer.reloadChildren(parent, dataObject, true, false);
             }
 
             @Override
diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java
index ba7212600..7b3a92989 100644
--- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java
+++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java
@@ -21,14 +21,11 @@
 import org.eclipse.che.ide.api.action.DefaultActionGroup;
 import org.eclipse.che.ide.api.constraints.Anchor;
 import org.eclipse.che.ide.api.constraints.Constraints;
-import org.eclipse.che.ide.api.event.FileEvent;
-import org.eclipse.che.ide.api.event.FileEventHandler;
 import org.eclipse.che.ide.api.event.ProjectActionEvent;
 import org.eclipse.che.ide.api.event.ProjectActionHandler;
 import org.eclipse.che.ide.api.extension.Extension;
 import org.eclipse.che.ide.api.icon.Icon;
 import org.eclipse.che.ide.api.icon.IconRegistry;
-import org.eclipse.che.ide.api.project.node.HasProjectDescriptor;
 import org.eclipse.che.ide.api.project.type.wizard.PreSelectedProjectTypeManager;
 import org.eclipse.che.ide.ext.java.client.dependenciesupdater.DependenciesUpdater;
 import org.eclipse.che.ide.extension.maven.client.actions.CreateMavenModuleAction;
@@ -94,18 +91,6 @@ public void onProjectClosing(ProjectActionEvent event) {
             public void onProjectClosed(ProjectActionEvent event) {
             }
         });
-
-        eventBus.addHandler(FileEvent.TYPE, new FileEventHandler() {
-            @Override
-            public void onFileOperation(final FileEvent event) {
-                if (event.getOperationType() == FileEvent.FileOperation.SAVE && "pom.xml".equals(event.getFile().getName())) {
-                    final HasProjectDescriptor project = event.getFile().getProject();
-                    if (isValidForResolveDependencies(project.getProjectDescriptor())) {
-                        dependenciesUpdater.updateDependencies(project.getProjectDescriptor(), true);
-                    }
-                }
-            }
-        });
     }
 
     @Inject
diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java
index fe2db5777..5195e1b4e 100644
--- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java
+++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/module/CreateMavenModulePresenter.java
@@ -12,7 +12,6 @@
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.project.gwt.client.ProjectServiceClient;
 import org.eclipse.che.api.project.shared.dto.BuildersDescriptor;
@@ -129,8 +128,7 @@ protected void onSuccess(ProjectDescriptor result) {
                                             view.close();
                                             view.showButtonLoader(false);
 
-//                                            eventBus.fireEvent(new RefreshProjectTreeEvent());
-                                            projectExplorer.synchronizeTree();
+                                            projectExplorer.reloadChildren();
                                         }
 
                                         @Override
diff --git a/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/menu/NpmInstallAction.java b/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/menu/NpmInstallAction.java
index 5ac7742b6..4da97b502 100644
--- a/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/menu/NpmInstallAction.java
+++ b/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/menu/NpmInstallAction.java
@@ -11,7 +11,6 @@
 package org.eclipse.che.plugin.npm.client.menu;
 
 import com.google.inject.Inject;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger;
 import org.eclipse.che.api.builder.BuildStatus;
@@ -36,7 +35,6 @@ public class NpmInstallAction extends CustomAction implements BuildFinishedCallb
 
     private BuilderAgent builderAgent;
 
-    private EventBus eventBus;
     private final NewProjectExplorerPresenter projectExplorer;
 
     private boolean buildInProgress;
@@ -46,13 +44,12 @@ public class NpmInstallAction extends CustomAction implements BuildFinishedCallb
     @Inject
     public NpmInstallAction(LocalizationConstant localizationConstant,
                             DtoFactory dtoFactory, BuilderAgent builderAgent, AppContext appContext,
-                            AnalyticsEventLogger analyticsEventLogger, EventBus eventBus,
+                            AnalyticsEventLogger analyticsEventLogger,
                             NewProjectExplorerPresenter projectExplorer) {
         super(appContext, localizationConstant.npmInstallText(), localizationConstant.npmInstallDescription());
         this.dtoFactory = dtoFactory;
         this.builderAgent = builderAgent;
         this.analyticsEventLogger = analyticsEventLogger;
-        this.eventBus = eventBus;
         this.projectExplorer = projectExplorer;
     }
 
@@ -76,8 +73,7 @@ public void installDependencies() {
     public void onFinished(BuildStatus buildStatus) {
         // and refresh the tree if success
         if (buildStatus == BuildStatus.SUCCESSFUL) {
-//            eventBus.fireEvent(new RefreshProjectTreeEvent());
-            projectExplorer.synchronizeTree();
+            projectExplorer.reloadChildren();
         }
 
         // build finished
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java
index 745ef0482..7f966f3bb 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java
@@ -14,7 +14,6 @@
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import org.eclipse.che.api.builder.BuildStatus;
 import org.eclipse.che.api.builder.dto.BuildOptions;
@@ -56,18 +55,15 @@ public class YeomanPartPresenter extends BasePresenter implements YeomanPartView
      */
     private Map widgetByTypes;
 
-    private EventBus eventBus;
-
     private DtoFactory   dtoFactory;
     private BuilderAgent builderAgent;
     private final NewProjectExplorerPresenter projectExplorer;
 
     @Inject
-    public YeomanPartPresenter(YeomanPartView view, EventBus eventBus, FoldingPanelFactory foldingPanelFactory,
+    public YeomanPartPresenter(YeomanPartView view, FoldingPanelFactory foldingPanelFactory,
                                GeneratedItemViewFactory generatedItemViewFactory, DtoFactory dtoFactory,
                                BuilderAgent builderAgent, NewProjectExplorerPresenter projectExplorer) {
         this.view = view;
-        this.eventBus = eventBus;
         this.foldingPanelFactory = foldingPanelFactory;
         this.generatedItemViewFactory = generatedItemViewFactory;
         this.dtoFactory = dtoFactory;
@@ -160,8 +156,7 @@ public void addItem(String generatedName, YeomanGeneratorType selectedType) {
     public void onFinished(BuildStatus buildStatus) {
         // refresh the tree if it is successful
         if (buildStatus == BuildStatus.SUCCESSFUL) {
-//            eventBus.fireEvent(new RefreshProjectTreeEvent());
-            projectExplorer.synchronizeTree();
+            projectExplorer.reloadChildren();
             // remove what has been generated
             namesByTypes.clear();
             widgetByTypes.clear();
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/src/test/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenterTest.java b/plugin-yeoman/che-plugin-yeoman-ext-client/src/test/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenterTest.java
index d9997dbbd..267ffada1 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/src/test/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenterTest.java
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/src/test/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenterTest.java
@@ -58,9 +58,6 @@ public class YeomanPartPresenterTest {
     @Mock
     private YeomanPartView yeomanPartView;
 
-    @Mock
-    EventBus eventBus;
-
     @Mock
     FoldingPanelFactory foldingPanelFactory;
 
@@ -116,7 +113,7 @@ public class YeomanPartPresenterTest {
 
     @Before
     public void setUp() {
-        this.presenter = new YeomanPartPresenter(yeomanPartView, eventBus, foldingPanelFactory,
+        this.presenter = new YeomanPartPresenter(yeomanPartView, foldingPanelFactory,
                                                  generatedItemViewFactory, dtoFactory, builderAgent, projectExplorer);
 
         // Mock folding panel factory

From 5e532d2727e7ea32a2d1837e159a50db1c8d921a Mon Sep 17 00:00:00 2001
From: Sergey Leschenko 
Date: Fri, 11 Sep 2015 10:58:46 +0300
Subject: [PATCH 023/164] IDEX-1972 Added checking actuality of remote
 selection

---
 .../git/client/remote/RemotePresenter.java    |  4 +-
 .../ide/ext/git/client/remote/RemoteView.java |  6 +-
 .../ext/git/client/remote/RemoteViewImpl.java | 58 +++++++++++++------
 3 files changed, 46 insertions(+), 22 deletions(-)

diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java
index 2f7603234..629a787d7 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemotePresenter.java
@@ -154,9 +154,9 @@ protected void onFailure(Throwable exception) {
      * {@inheritDoc}
      */
     @Override
-    public void onRemoteSelected(@Nonnull Remote remote) {
+    public void onRemoteSelected(Remote remote) {
         selectedRemote = remote;
-        view.setEnableDeleteButton(selectedRemote != null);
+        view.setEnableDeleteButton(remote != null);
     }
 
     private void handleError(@Nonnull String errorMessage) {
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java
index 4b104ee10..f04219710 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteView.java
@@ -23,7 +23,7 @@
  */
 public interface RemoteView extends View {
     /** Needs for delegate some function into Applications view. */
-    public interface ActionDelegate {
+    interface ActionDelegate {
         /** Performs any actions appropriate in response to the user having pressed the Close button. */
         void onCloseClicked();
 
@@ -37,9 +37,9 @@ public interface ActionDelegate {
          * Performs any action in response to the user having select remote.
          *
          * @param remote
-         *         selected Remote
+         *         selected remote. It can be null when user remove selected remote
          */
-        void onRemoteSelected(@Nonnull Remote remote);
+        void onRemoteSelected(Remote remote);
     }
 
     /**
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java
index 2c2596ad0..681578da9 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/remote/RemoteViewImpl.java
@@ -10,16 +10,10 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.git.client.remote;
 
-import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant;
-import org.eclipse.che.api.git.shared.Remote;
-
-import org.eclipse.che.ide.ext.git.client.GitResources;
-import org.eclipse.che.ide.ui.dialogs.ConfirmCallback;
-import org.eclipse.che.ide.ui.dialogs.DialogFactory;
-import org.eclipse.che.ide.ui.window.Window;
 import com.google.gwt.cell.client.Cell;
 import com.google.gwt.cell.client.TextCell;
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
@@ -35,6 +29,13 @@
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
+import org.eclipse.che.api.git.shared.Remote;
+import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant;
+import org.eclipse.che.ide.ext.git.client.GitResources;
+import org.eclipse.che.ide.ui.dialogs.ConfirmCallback;
+import org.eclipse.che.ide.ui.dialogs.DialogFactory;
+import org.eclipse.che.ide.ui.window.Window;
+
 import javax.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.List;
@@ -57,7 +58,8 @@ interface RemoteViewImplUiBinder extends UiBinder {
     @UiField(provided = true)
     CellTable repositories;
 
-    private Remote                  selectedObject;
+    SingleSelectionModel repoSelectionModel;
+
     @UiField(provided = true)
     final   GitResources            res;
     @UiField(provided = true)
@@ -83,7 +85,6 @@ protected RemoteViewImpl(GitResources resources,
         this.setWidget(widget);
 
         btnClose = createButton(locale.buttonClose(), "git-remotes-remotes-close", new ClickHandler() {
-
             @Override
             public void onClick(ClickEvent event) {
                 delegate.onCloseClicked();
@@ -92,7 +93,6 @@ public void onClick(ClickEvent event) {
         getFooter().add(btnClose);
 
         btnAdd = createButton(locale.buttonAdd(), "git-remotes-remotes-add", new ClickHandler() {
-
             @Override
             public void onClick(ClickEvent event) {
                 delegate.onAddClicked();
@@ -101,11 +101,10 @@ public void onClick(ClickEvent event) {
         getFooter().add(btnAdd);
 
         btnDelete = createButton(locale.buttonRemove(), "git-remotes-remotes-remove", new ClickHandler() {
-
             @Override
             public void onClick(ClickEvent event) {
                 dialogFactory.createConfirmDialog(locale.deleteRemoteRepositoryTitle(),
-                                                  locale.deleteRemoteRepositoryQuestion(selectedObject.getName()),
+                                                  locale.deleteRemoteRepositoryQuestion(repoSelectionModel.getSelectedObject().getName()),
                                                   new ConfirmCallback() {
                                                       @Override
                                                       public void accepted() {
@@ -150,15 +149,14 @@ public String getValue(Remote remote) {
         repositories.addColumn(urlColumn, locale.remoteGridLocationField());
         repositories.setColumnWidth(urlColumn, "80%");
 
-        final SingleSelectionModel selectionModel = new SingleSelectionModel();
-        selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
+        repoSelectionModel = new SingleSelectionModel<>();
+        repoSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
             @Override
             public void onSelectionChange(SelectionChangeEvent event) {
-                selectedObject = selectionModel.getSelectedObject();
-                delegate.onRemoteSelected(selectedObject);
+                delegate.onRemoteSelected(repoSelectionModel.getSelectedObject());
             }
         });
-        repositories.setSelectionModel(selectionModel);
+        repositories.setSelectionModel(repoSelectionModel);
     }
 
     /** {@inheritDoc} */
@@ -170,6 +168,13 @@ public void setRemotes(@Nonnull List remotes) {
             list.add(remote);
         }
         repositories.setRowData(list);
+
+        Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
+            @Override
+            public void execute() {
+                checkSelectionActuality();
+            }
+        });
     }
 
     /** {@inheritDoc} */
@@ -209,4 +214,23 @@ public void setDelegate(ActionDelegate delegate) {
     protected void onClose() {
         this.isShown = false;
     }
+
+    private void checkSelectionActuality() {
+        final Remote selectedRemote = repoSelectionModel.getSelectedObject();
+        if (selectedRemote == null) {
+            return;
+        }
+
+        boolean existSelectedRemote = false;
+        for (Remote remote : repositories.getVisibleItems()) {
+            if (remote.getName().equals(selectedRemote.getName())) {
+                existSelectedRemote = true;
+                break;
+            }
+        }
+
+        if (!existSelectedRemote) {
+            repoSelectionModel.clear();
+        }
+    }
 }
\ No newline at end of file

From ab40b9b814130fb64d979ab7a18eb50acf030239 Mon Sep 17 00:00:00 2001
From: Vladyslav Zhukovskii 
Date: Fri, 11 Sep 2015 12:13:10 +0300
Subject: [PATCH 024/164] IDEX-2971: Add tree reload after git reset operation

---
 .../reset/commit/ResetToCommitPresenter.java  | 33 +++++++++----------
 .../commit/ResetToCommitPresenterTest.java    | 16 ++++-----
 2 files changed, 22 insertions(+), 27 deletions(-)

diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java
index 11e9913f5..72521c019 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenter.java
@@ -19,15 +19,14 @@
 import org.eclipse.che.ide.api.app.AppContext;
 import org.eclipse.che.ide.api.editor.EditorAgent;
 import org.eclipse.che.ide.api.editor.EditorPartPresenter;
-import org.eclipse.che.ide.api.event.OpenProjectEvent;
 import org.eclipse.che.ide.api.notification.Notification;
 import org.eclipse.che.ide.api.notification.NotificationManager;
+import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter;
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.rest.DtoUnmarshallerFactory;
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.google.web.bindery.event.shared.EventBus;
 
 import javax.annotation.Nonnull;
 import java.util.ArrayList;
@@ -39,20 +38,20 @@
 /**
  * Presenter for resetting head to commit.
  *
- * @author Ann Zhuleva
+ * @author Ann Zhuleva
  */
 @Singleton
 public class ResetToCommitPresenter implements ResetToCommitView.ActionDelegate {
-    private final DtoUnmarshallerFactory    dtoUnmarshallerFactory;
-    private       ResetToCommitView         view;
-    private       GitServiceClient          service;
-    private       Revision                  selectedRevision;
-    private       AppContext                appContext;
-    private       GitLocalizationConstant   constant;
-    private       NotificationManager       notificationManager;
-    private       EditorAgent               editorAgent;
-    private       EventBus                  eventBus;
-    private       List openedEditors;
+    private final DtoUnmarshallerFactory      dtoUnmarshallerFactory;
+    private       ResetToCommitView           view;
+    private final NewProjectExplorerPresenter projectExplorer;
+    private       GitServiceClient            service;
+    private       Revision                    selectedRevision;
+    private       AppContext                  appContext;
+    private       GitLocalizationConstant     constant;
+    private       NotificationManager         notificationManager;
+    private       EditorAgent                 editorAgent;
+    private       List   openedEditors;
 
     /**
      * Create presenter.
@@ -61,16 +60,16 @@ public class ResetToCommitPresenter implements ResetToCommitView.ActionDelegate
     public ResetToCommitPresenter(ResetToCommitView view,
                                   GitServiceClient service,
                                   GitLocalizationConstant constant,
-                                  EventBus eventBus,
                                   EditorAgent editorAgent,
                                   AppContext appContext,
                                   NotificationManager notificationManager,
-                                  DtoUnmarshallerFactory dtoUnmarshallerFactory) {
+                                  DtoUnmarshallerFactory dtoUnmarshallerFactory,
+                                  NewProjectExplorerPresenter projectExplorer) {
         this.view = view;
+        this.projectExplorer = projectExplorer;
         this.view.setDelegate(this);
         this.service = service;
         this.constant = constant;
-        this.eventBus = eventBus;
         this.editorAgent = editorAgent;
         this.appContext = appContext;
         this.notificationManager = notificationManager;
@@ -153,7 +152,7 @@ protected void onSuccess(Void result) {
                                   // must change the workdir
                                   //In this case we can have unconfigured state of the project,
                                   //so we must repeat the logic which is performed when we open a project
-                                  eventBus.fireEvent(new OpenProjectEvent(project.getPath()));
+                                  projectExplorer.reloadChildren();
                               }
                               Notification notification = new Notification(constant.resetSuccessfully(), INFO);
                               notificationManager.showNotification(notification);
diff --git a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenterTest.java b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenterTest.java
index 4cb297e9d..df8d15708 100644
--- a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenterTest.java
+++ b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/reset/commit/ResetToCommitPresenterTest.java
@@ -10,6 +10,9 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.git.client.reset.commit;
 
+import com.google.web.bindery.event.shared.Event;
+import com.googlecode.gwt.test.utils.GwtReflectionUtils;
+
 import org.eclipse.che.api.git.shared.LogResponse;
 import org.eclipse.che.api.git.shared.ResetRequest;
 import org.eclipse.che.api.git.shared.Revision;
@@ -17,17 +20,12 @@
 import org.eclipse.che.ide.api.editor.EditorAgent;
 import org.eclipse.che.ide.api.editor.EditorInput;
 import org.eclipse.che.ide.api.editor.EditorPartPresenter;
-import org.eclipse.che.ide.api.event.OpenProjectEvent;
 import org.eclipse.che.ide.api.notification.Notification;
 import org.eclipse.che.ide.api.project.tree.generic.FileNode;
 import org.eclipse.che.ide.ext.git.client.BaseTest;
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
-import com.google.web.bindery.event.shared.Event;
-import com.googlecode.gwt.test.utils.GwtReflectionUtils;
-
 import org.junit.Test;
 import org.mockito.InjectMocks;
-import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
@@ -53,7 +51,7 @@
 /**
  * Testing {@link ResetToCommitPresenter} functionality.
  *
- * @author Andrey Plotnikov
+ * @author Andrey Plotnikov
  */
 public class ResetToCommitPresenterTest extends BaseTest {
     public static final boolean IS_TEXT_FORMATTED = true;
@@ -82,11 +80,11 @@ public void disarm() {
         presenter = new ResetToCommitPresenter(view,
                                                service,
                                                constant,
-                                               eventBus,
                                                editorAgent,
                                                appContext,
                                                notificationManager,
-                                               dtoUnmarshallerFactory);
+                                               dtoUnmarshallerFactory,
+                                               projectExplorer);
 
         NavigableMap partPresenterMap = new TreeMap<>();
         partPresenterMap.put("partPresenter", partPresenter);
@@ -174,7 +172,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
         verify(appContext).getCurrentProject();
         verify(service).reset((ProjectDescriptor)anyObject(), eq(PROJECT_PATH), eq(HARD), (List)anyObject(),
                               (AsyncRequestCallback)anyObject());
-        verify(eventBus).fireEvent(Matchers.>anyObject());
         verify(notificationManager).showNotification((Notification)anyObject());
     }
 
@@ -207,7 +204,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
         verify(appContext).getCurrentProject();
         verify(service).reset((ProjectDescriptor)anyObject(), eq(PROJECT_PATH), eq(HARD), (List)anyObject(),
                               (AsyncRequestCallback)anyObject());
-        verify(eventBus).fireEvent(Matchers.>anyObject());
         verify(notificationManager).showNotification((Notification)anyObject());
     }
 

From 10dbdd4d2c92a1acb9caca20a1866850bb5b20e0 Mon Sep 17 00:00:00 2001
From: Vitaly Parfonov 
Date: Fri, 11 Sep 2015 12:54:54 +0300
Subject: [PATCH 025/164] Revert "IDEX-2234 Removed autogenerating of ssh keys"

This reverts commit bc3b2bac5585a58018629fa9739e6f63999e0d8c.
---
 .../nativegit/ssh/SshKeyProviderImpl.java     | 34 +++++++++++++------
 1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java b/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java
index ed0f18217..926455c8e 100644
--- a/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java
+++ b/plugin-ssh/che-plugin-ssh-git-native/src/main/java/org/eclipse/che/git/impl/nativegit/ssh/SshKeyProviderImpl.java
@@ -16,6 +16,7 @@
 import org.eclipse.che.api.git.GitException;
 import org.eclipse.che.git.impl.nativegit.GitUrl;
 import org.eclipse.che.ide.ext.ssh.server.SshKey;
+import org.eclipse.che.ide.ext.ssh.server.SshKeyPair;
 import org.eclipse.che.ide.ext.ssh.server.SshKeyStore;
 import org.eclipse.che.ide.ext.ssh.server.SshKeyStoreException;
 import org.eclipse.che.ide.ext.ssh.server.SshKeyUploader;
@@ -23,7 +24,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
-import java.util.Optional;
+import java.util.Iterator;
 import java.util.Set;
 
 /**
@@ -32,8 +33,8 @@
  * @author Anton Korneta
  */
 public class SshKeyProviderImpl implements SshKeyProvider {
-    private static final Logger LOG = LoggerFactory.getLogger(SshKeyProviderImpl.class);
 
+    private static final Logger LOG = LoggerFactory.getLogger(SshKeyProviderImpl.class);
     private final SshKeyStore         sshKeyStore;
     private final Set sshKeyUploaders;
 
@@ -44,7 +45,7 @@ public SshKeyProviderImpl(SshKeyStore sshKeyStore, Set sshKeyUpl
     }
 
     /**
-     * Get private ssh key and upload public ssh key to repository hosting service.
+     * Get private ssh key and upload public ssh key to epository hosting service.
      *
      * @param url
      *         url to git repository
@@ -58,22 +59,35 @@ public byte[] getPrivateKey(String url) throws GitException {
         SshKey publicKey;
         SshKey privateKey;
 
-        // check keys existence
+        // check keys existence and generate if need
         try {
             if ((privateKey = sshKeyStore.getPrivateKey(host)) != null) {
                 publicKey = sshKeyStore.getPublicKey(host);
+                if (publicKey == null) {
+                    sshKeyStore.removeKeys(host);
+                    SshKeyPair sshKeyPair = sshKeyStore.genKeyPair(host, null, null);
+                    publicKey = sshKeyPair.getPublicKey();
+                    privateKey = sshKeyPair.getPrivateKey();
+                }
             } else {
-                throw new GitException("Unable get private ssh key");
+                SshKeyPair sshKeyPair = sshKeyStore.genKeyPair(host, null, null);
+                publicKey = sshKeyPair.getPublicKey();
+                privateKey = sshKeyPair.getPrivateKey();
             }
         } catch (SshKeyStoreException e) {
             throw new GitException(e.getMessage(), e);
         }
 
-        final Optional optionalKeyUploader = sshKeyUploaders.stream()
-                                                                            .filter(keyUploader -> keyUploader.match(url))
-                                                                            .findFirst();
-        if (optionalKeyUploader.isPresent()) {
-            final SshKeyUploader uploader = optionalKeyUploader.get();
+        SshKeyUploader uploader = null;
+
+        for (Iterator itr = sshKeyUploaders.iterator(); uploader == null && itr.hasNext(); ) {
+            SshKeyUploader next = itr.next();
+            if (next.match(url)) {
+                uploader = next;
+            }
+        }
+
+        if (uploader != null) {
             // upload public key
             try {
                 uploader.uploadKey(publicKey);

From 777c4b380c8639adee0b5aa375579c253698dcfc Mon Sep 17 00:00:00 2001
From: Sergii Kabashniuk 
Date: Fri, 11 Sep 2015 14:16:55 +0300
Subject: [PATCH 026/164] Mark plugins as clean for findbugs

Signed-off-by: Sergii Kabashniuk 
---
 .../che-plugin-bower-ext-client/pom.xml       | 18 ----
 .../bower/client/builder/BuilderAgent.java    | 91 ++++++++++++-------
 plugin-bower/pom.xml                          | 22 +----
 .../che-plugin-grunt-ext-client/pom.xml       | 18 ----
 plugin-grunt/pom.xml                          | 22 +----
 plugin-gulp/pom.xml                           | 22 +----
 plugin-npm/che-plugin-npm-ext-client/pom.xml  | 18 ----
 .../npm/client/builder/BuilderAgent.java      | 73 +++++++++------
 plugin-npm/pom.xml                            | 21 -----
 .../che-plugin-yeoman-ext-client/pom.xml      | 18 ----
 .../plugin/yeoman/client/YeomanExtension.java | 65 +++++++------
 .../yeoman/client/builder/BuilderAgent.java   | 83 +++++++++++------
 .../client/panel/YeomanPartPresenter.java     |  3 +-
 plugin-yeoman/pom.xml                         | 22 +----
 14 files changed, 199 insertions(+), 297 deletions(-)

diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml
index b5536d0bd..518b7f404 100644
--- a/plugin-bower/che-plugin-bower-ext-client/pom.xml
+++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml
@@ -109,23 +109,5 @@
                 src/test/resources
             
         
-        
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Default
-                    true
-                
-            
-        
     
 
diff --git a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/builder/BuilderAgent.java b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/builder/BuilderAgent.java
index 44ba2ade5..90c07f565 100644
--- a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/builder/BuilderAgent.java
+++ b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/builder/BuilderAgent.java
@@ -99,7 +99,8 @@ protected void buildSuccessful(Notification notification, String successMessage,
      * @param prefixConsole the prefix to show in the console
      * @param buildFinishedCallback an optional callback to call when the build has finished
      */
-    public void build(final BuildOptions buildOptions, final String waitMessage, final String successMessage, final String errorMessage, final String prefixConsole,
+    public void build(final BuildOptions buildOptions, final String waitMessage, final String successMessage, final String errorMessage,
+                      final String prefixConsole,
                       final BuildFinishedCallback buildFinishedCallback) {
 
         // Start a build so print a new notification message
@@ -155,10 +156,10 @@ protected void onFailure(Throwable exception) {
      * @param buildFinishedCallback
      */
     protected void startChecking(final Notification notification, final BuildTaskDescriptor buildTaskDescriptor,
-                                     final String successMessage, final String errorMessage, final String prefixConsole,
-                                     final BuildFinishedCallback buildFinishedCallback) {
+                                 final String successMessage, final String errorMessage, final String prefixConsole,
+                                 final BuildFinishedCallback buildFinishedCallback) {
 
-        final SubscriptionHandler  buildOutputHandler = new SubscriptionHandler(new LineUnmarshaller()) {
+        final SubscriptionHandler buildOutputHandler = new SubscriptionHandler(new LineUnmarshaller()) {
             @Override
             protected void onMessageReceived(String result) {
                 console.print(prefixConsole + "::" + result);
@@ -178,7 +179,8 @@ protected void onErrorReceived(Throwable throwable) {
         final SubscriptionHandler buildStatusHandler = new SubscriptionHandler(new StringUnmarshallerWS()) {
             @Override
             protected void onMessageReceived(String result) {
-                updateBuildStatus(notification, dtoFactory.createDtoFromJson(result, BuildTaskDescriptor.class), this, buildOutputHandler, successMessage,
+                updateBuildStatus(notification, dtoFactory.createDtoFromJson(result, BuildTaskDescriptor.class), this, buildOutputHandler,
+                                  successMessage,
                                   errorMessage, prefixConsole, buildFinishedCallback);
             }
 
@@ -213,7 +215,6 @@ protected void onErrorReceived(Throwable exception) {
     }
 
 
-
     /**
      * Check for status and display necessary messages.
      *
@@ -221,14 +222,16 @@ protected void onErrorReceived(Throwable exception) {
      *         status of build
      */
     protected void updateBuildStatus(Notification notification, BuildTaskDescriptor descriptor,
-                                   SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler, final String successMessage, final String errorMessage, final String prefixConsole,
-                                   final BuildFinishedCallback buildFinishedCallback) {
+                                     SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler,
+                                     final String successMessage, final String errorMessage, final String prefixConsole,
+                                     final BuildFinishedCallback buildFinishedCallback) {
         BuildStatus status = descriptor.getStatus();
         if (status == BuildStatus.IN_PROGRESS || status == BuildStatus.IN_QUEUE) {
             return;
         }
         if (status == BuildStatus.CANCELLED || status == BuildStatus.FAILED || status == BuildStatus.SUCCESSFUL) {
-            afterBuildFinished(notification, descriptor, buildStatusHandler, buildOutputHandler, successMessage, errorMessage, prefixConsole, buildFinishedCallback);
+            afterBuildFinished(notification, descriptor, buildStatusHandler, buildOutputHandler, successMessage, errorMessage,
+                               prefixConsole, buildFinishedCallback);
         }
     }
 
@@ -239,8 +242,9 @@ protected void updateBuildStatus(Notification notification, BuildTaskDescriptor
      *         status of build job
      */
     protected void afterBuildFinished(Notification notification, BuildTaskDescriptor descriptor,
-                                    SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler, final String successMessage, final String errorMessage, final String prefixConsole,
-                                    BuildFinishedCallback buildFinishedCallback) {
+                                      SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler,
+                                      final String successMessage, final String errorMessage, final String prefixConsole,
+                                      BuildFinishedCallback buildFinishedCallback) {
         try {
             messageBus.unsubscribe(BuilderExtension.BUILD_STATUS_CHANNEL + descriptor.getTaskId(), buildStatusHandler);
         } catch (Exception e) {
@@ -274,7 +278,8 @@ protected void afterBuildFinished(Notification notification, BuildTaskDescriptor
      * @param descriptor the build descriptor
      * @param buildFinishedCallback the callback to call
      */
-    protected void importZipResult(final BuildTaskDescriptor descriptor, final BuildFinishedCallback buildFinishedCallback, final Notification notification, final String errorMessage) {
+    protected void importZipResult(final BuildTaskDescriptor descriptor, final BuildFinishedCallback buildFinishedCallback,
+                                   final Notification notification, final String errorMessage) {
         Link downloadLink = null;
         List links = descriptor.getLinks();
         for (Link link : links) {
@@ -285,29 +290,13 @@ protected void importZipResult(final BuildTaskDescriptor descriptor, final Build
 
         if (downloadLink != null) {
 
-            ImportProject importProject = dtoFactory.createDto(ImportProject.class).withSource(dtoFactory.createDto(Source.class).withProject(
-                    dtoFactory.createDto(ImportSourceDescriptor.class).withLocation(downloadLink.getHref()).withType("zip")));
-
-            projectServiceClient.importProject(appContext.getCurrentProject().getProjectDescription().getPath(), true,  importProject,
-                                               new AsyncRequestCallback() {
-                @Override
-                protected void onSuccess(ImportResponse projectDescriptor) {
-                    // notify callback
-                    if (buildFinishedCallback != null) {
-                        buildFinishedCallback.onFinished(descriptor.getStatus());
-                    }
-                }
+            ImportProject importProject =
+                    dtoFactory.createDto(ImportProject.class).withSource(dtoFactory.createDto(Source.class).withProject(
+                            dtoFactory.createDto(ImportSourceDescriptor.class).withLocation(downloadLink.getHref()).withType("zip")));
 
-                @Override
-                protected void onFailure(Throwable throwable) {
-                    notification.setMessage(errorMessage + ":" + throwable.getMessage());
-                    notification.setStatus(FINISHED);
-                    notification.setType(ERROR);
-                    if (buildFinishedCallback != null) {
-                        buildFinishedCallback.onFinished(descriptor.getStatus());
-                    }
-                }
-            });
+            projectServiceClient.importProject(appContext.getCurrentProject().getProjectDescription().getPath(), true, importProject,
+                                               new ImportResponseAsyncRequestCallback(buildFinishedCallback, descriptor, notification,
+                                                                                      errorMessage));
         } else {
             // notify callback
             if (buildFinishedCallback != null) {
@@ -336,4 +325,38 @@ public String getPayload() {
             return line;
         }
     }
+
+    private static class ImportResponseAsyncRequestCallback extends AsyncRequestCallback {
+        private final BuildFinishedCallback buildFinishedCallback;
+        private final BuildTaskDescriptor   descriptor;
+        private final Notification          notification;
+        private final String                errorMessage;
+
+        public ImportResponseAsyncRequestCallback(BuildFinishedCallback buildFinishedCallback, BuildTaskDescriptor descriptor,
+                                                  Notification notification,
+                                                  String errorMessage) {
+            this.buildFinishedCallback = buildFinishedCallback;
+            this.descriptor = descriptor;
+            this.notification = notification;
+            this.errorMessage = errorMessage;
+        }
+
+        @Override
+        protected void onSuccess(ImportResponse projectDescriptor) {
+            // notify callback
+            if (buildFinishedCallback != null) {
+                buildFinishedCallback.onFinished(descriptor.getStatus());
+            }
+        }
+
+        @Override
+        protected void onFailure(Throwable throwable) {
+            notification.setMessage(errorMessage + ":" + throwable.getMessage());
+            notification.setStatus(FINISHED);
+            notification.setType(ERROR);
+            if (buildFinishedCallback != null) {
+                buildFinishedCallback.onFinished(descriptor.getStatus());
+            }
+        }
+    }
 }
diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml
index 6a0cb4799..e5d760ae8 100644
--- a/plugin-bower/pom.xml
+++ b/plugin-bower/pom.xml
@@ -27,27 +27,7 @@
         che-plugin-bower-ext-client
     
     
+        true
         2014
     
-    
-        
-            
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Low
-                    true
-                
-            
-        
-    
 
diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
index 49888e7db..9e65cdfb8 100644
--- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
+++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
@@ -120,23 +120,5 @@
                 src/test/resources
             
         
-        
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Default
-                    true
-                
-            
-        
     
 
diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml
index 156763737..620dc5fa1 100644
--- a/plugin-grunt/pom.xml
+++ b/plugin-grunt/pom.xml
@@ -28,27 +28,7 @@
         che-plugin-grunt-runner
     
     
+        true
         2014
     
-    
-        
-            
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Low
-                    true
-                
-            
-        
-    
 
diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml
index 95fa92b44..c96ae1e94 100644
--- a/plugin-gulp/pom.xml
+++ b/plugin-gulp/pom.xml
@@ -26,27 +26,7 @@
         che-plugin-gulp-runner
     
     
+        true
         2014
     
-    
-        
-            
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Low
-                    true
-                
-            
-        
-    
 
diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml
index 62d54dc03..cafc252bc 100644
--- a/plugin-npm/che-plugin-npm-ext-client/pom.xml
+++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml
@@ -109,23 +109,5 @@
                 src/test/resources
             
         
-        
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Default
-                    true
-                
-            
-        
     
 
diff --git a/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/builder/BuilderAgent.java b/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/builder/BuilderAgent.java
index 4c017313a..362beb98a 100644
--- a/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/builder/BuilderAgent.java
+++ b/plugin-npm/che-plugin-npm-ext-client/src/main/java/org/eclipse/che/plugin/npm/client/builder/BuilderAgent.java
@@ -99,7 +99,8 @@ protected void buildSuccessful(Notification notification, String successMessage,
      * @param prefixConsole the prefix to show in the console
      * @param buildFinishedCallback an optional callback to call when the build has finished
      */
-    public void build(final BuildOptions buildOptions, final String waitMessage, final String successMessage, final String errorMessage, final String prefixConsole,
+    public void build(final BuildOptions buildOptions, final String waitMessage, final String successMessage, final String errorMessage,
+                      final String prefixConsole,
                       final BuildFinishedCallback buildFinishedCallback) {
 
         // Start a build so print a new notification message
@@ -154,10 +155,10 @@ protected void onFailure(Throwable exception) {
      * @param buildFinishedCallback
      */
     protected void startChecking(final Notification notification, final BuildTaskDescriptor buildTaskDescriptor,
-                                     final String successMessage, final String errorMessage, final String prefixConsole,
-                                     final BuildFinishedCallback buildFinishedCallback) {
+                                 final String successMessage, final String errorMessage, final String prefixConsole,
+                                 final BuildFinishedCallback buildFinishedCallback) {
 
-        final SubscriptionHandler  buildOutputHandler = new SubscriptionHandler(new LineUnmarshaller()) {
+        final SubscriptionHandler buildOutputHandler = new SubscriptionHandler(new LineUnmarshaller()) {
             @Override
             protected void onMessageReceived(String result) {
                 console.print(prefixConsole + "::" + result);
@@ -177,7 +178,8 @@ protected void onErrorReceived(Throwable throwable) {
         final SubscriptionHandler buildStatusHandler = new SubscriptionHandler(new StringUnmarshallerWS()) {
             @Override
             protected void onMessageReceived(String result) {
-                updateBuildStatus(notification, dtoFactory.createDtoFromJson(result, BuildTaskDescriptor.class), this, buildOutputHandler, successMessage,
+                updateBuildStatus(notification, dtoFactory.createDtoFromJson(result, BuildTaskDescriptor.class), this, buildOutputHandler,
+                                  successMessage,
                                   errorMessage, prefixConsole, buildFinishedCallback);
             }
 
@@ -212,7 +214,6 @@ protected void onErrorReceived(Throwable exception) {
     }
 
 
-
     /**
      * Check for status and display necessary messages.
      *
@@ -220,14 +221,16 @@ protected void onErrorReceived(Throwable exception) {
      *         status of build
      */
     protected void updateBuildStatus(Notification notification, BuildTaskDescriptor descriptor,
-                                   SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler, final String successMessage, final String errorMessage, final String prefixConsole,
-                                   final BuildFinishedCallback buildFinishedCallback) {
+                                     SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler,
+                                     final String successMessage, final String errorMessage, final String prefixConsole,
+                                     final BuildFinishedCallback buildFinishedCallback) {
         BuildStatus status = descriptor.getStatus();
         if (status == BuildStatus.IN_PROGRESS || status == BuildStatus.IN_QUEUE) {
             return;
         }
         if (status == BuildStatus.CANCELLED || status == BuildStatus.FAILED || status == BuildStatus.SUCCESSFUL) {
-            afterBuildFinished(notification, descriptor, buildStatusHandler, buildOutputHandler, successMessage, errorMessage, prefixConsole, buildFinishedCallback);
+            afterBuildFinished(notification, descriptor, buildStatusHandler, buildOutputHandler, successMessage, errorMessage,
+                               prefixConsole, buildFinishedCallback);
         }
     }
 
@@ -238,8 +241,9 @@ protected void updateBuildStatus(Notification notification, BuildTaskDescriptor
      *         status of build job
      */
     protected void afterBuildFinished(Notification notification, BuildTaskDescriptor descriptor,
-                                    SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler, final String successMessage, final String errorMessage, final String prefixConsole,
-                                    BuildFinishedCallback buildFinishedCallback) {
+                                      SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler,
+                                      final String successMessage, final String errorMessage, final String prefixConsole,
+                                      BuildFinishedCallback buildFinishedCallback) {
         try {
             messageBus.unsubscribe(BuilderExtension.BUILD_STATUS_CHANNEL + descriptor.getTaskId(), buildStatusHandler);
         } catch (Exception e) {
@@ -284,26 +288,12 @@ protected void importZipResult(final BuildTaskDescriptor descriptor, final Build
 
         if (downloadLink != null) {
 
-            ImportProject importProject = dtoFactory.createDto(ImportProject.class).withSource(dtoFactory.createDto(Source.class).withProject(
-                    dtoFactory.createDto(ImportSourceDescriptor.class).withLocation(downloadLink.getHref()).withType("zip")));
+            ImportProject importProject =
+                    dtoFactory.createDto(ImportProject.class).withSource(dtoFactory.createDto(Source.class).withProject(
+                            dtoFactory.createDto(ImportSourceDescriptor.class).withLocation(downloadLink.getHref()).withType("zip")));
 
             projectServiceClient.importProject(appContext.getCurrentProject().getRootProject().getPath(), true, importProject,
-                                               new AsyncRequestCallback() {
-                @Override
-                protected void onSuccess(ImportResponse projectDescriptor) {
-                    // notify callback
-                    if (buildFinishedCallback != null) {
-                        buildFinishedCallback.onFinished(descriptor.getStatus());
-                    }
-                }
-
-                @Override
-                protected void onFailure(Throwable throwable) {
-                    if (buildFinishedCallback != null) {
-                        buildFinishedCallback.onFinished(descriptor.getStatus());
-                    }
-                }
-            });
+                                               new ImportResponseAsyncRequestCallback(buildFinishedCallback, descriptor));
         } else {
             // notify callback
             if (buildFinishedCallback != null) {
@@ -332,4 +322,29 @@ public String getPayload() {
             return line;
         }
     }
+
+    private static class ImportResponseAsyncRequestCallback extends AsyncRequestCallback {
+        private final BuildFinishedCallback buildFinishedCallback;
+        private final BuildTaskDescriptor   descriptor;
+
+        public ImportResponseAsyncRequestCallback(BuildFinishedCallback buildFinishedCallback, BuildTaskDescriptor descriptor) {
+            this.buildFinishedCallback = buildFinishedCallback;
+            this.descriptor = descriptor;
+        }
+
+        @Override
+        protected void onSuccess(ImportResponse projectDescriptor) {
+            // notify callback
+            if (buildFinishedCallback != null) {
+                buildFinishedCallback.onFinished(descriptor.getStatus());
+            }
+        }
+
+        @Override
+        protected void onFailure(Throwable throwable) {
+            if (buildFinishedCallback != null) {
+                buildFinishedCallback.onFinished(descriptor.getStatus());
+            }
+        }
+    }
 }
diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml
index b4c2a3c1b..02c32f132 100644
--- a/plugin-npm/pom.xml
+++ b/plugin-npm/pom.xml
@@ -29,25 +29,4 @@
     
         2014
     
-    
-        
-            
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Low
-                    true
-                
-            
-        
-    
 
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
index 1dc68a52a..9c6deef5a 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
@@ -109,23 +109,5 @@
                 src/test/resources
             
         
-        
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Default
-                    true
-                
-            
-        
     
 
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java
index febc4e74e..162a279cb 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java
@@ -17,6 +17,7 @@
 import org.eclipse.che.ide.api.parts.PartStackType;
 import org.eclipse.che.ide.api.parts.WorkspaceAgent;
 import org.eclipse.che.plugin.yeoman.client.panel.YeomanPartPresenter;
+
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 import com.google.web.bindery.event.shared.EventBus;
@@ -39,39 +40,49 @@ public YeomanExtension(final YeomanResources resources,
         resources.uiCss().ensureInjected();
 
         // Display Yeoman Panel with this extension
-        eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
-            @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+        eventBus.addHandler(ProjectActionEvent.TYPE, new YeomanProjectActionHandler(workspaceAgent, yeomanPartPresenter));
 
-                ProjectDescriptor project = event.getProject();
-                final String projectTypeId = project.getType();
-                boolean isJSProject = projectTypeId.endsWith("JS");
-                if (isJSProject) {
-                    // add Yeoman panel
-                    workspaceAgent.openPart(yeomanPartPresenter, PartStackType.TOOLING);
-                    workspaceAgent.hidePart(yeomanPartPresenter);
-                }
-            }
+    }
+
+    private static class YeomanProjectActionHandler implements ProjectActionHandler {
+        private final WorkspaceAgent      workspaceAgent;
+        private final YeomanPartPresenter yeomanPartPresenter;
+
+        public YeomanProjectActionHandler(WorkspaceAgent workspaceAgent, YeomanPartPresenter yeomanPartPresenter) {
+            this.workspaceAgent = workspaceAgent;
+            this.yeomanPartPresenter = yeomanPartPresenter;
+        }
+
+        @Override
+        public void onProjectOpened(ProjectActionEvent event) {
 
-            @Override
-            public void onProjectClosing(ProjectActionEvent event) {
+            ProjectDescriptor project = event.getProject();
+            final String projectTypeId = project.getType();
+            boolean isJSProject = projectTypeId.endsWith("JS");
+            if (isJSProject) {
+                // add Yeoman panel
+                workspaceAgent.openPart(yeomanPartPresenter, PartStackType.TOOLING);
+                workspaceAgent.hidePart(yeomanPartPresenter);
             }
+        }
 
-            /**
-             * Remove Yeoman panel when closing the project if this panel is displayed.
-             * @param event the project event
-             */
-            @Override
-            public void onProjectClosed(ProjectActionEvent event) {
-                ProjectDescriptor project = event.getProject();
-                final String projectTypeId = project.getType();
-                boolean isJSProject = projectTypeId.endsWith("JS");
-                if (isJSProject) {
-                    workspaceAgent.removePart(yeomanPartPresenter);
-                }
+        @Override
+        public void onProjectClosing(ProjectActionEvent event) {
+        }
 
+        /**
+         * Remove Yeoman panel when closing the project if this panel is displayed.
+         * @param event the project event
+         */
+        @Override
+        public void onProjectClosed(ProjectActionEvent event) {
+            ProjectDescriptor project = event.getProject();
+            final String projectTypeId = project.getType();
+            boolean isJSProject = projectTypeId.endsWith("JS");
+            if (isJSProject) {
+                workspaceAgent.removePart(yeomanPartPresenter);
             }
-        });
 
+        }
     }
 }
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/builder/BuilderAgent.java b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/builder/BuilderAgent.java
index b45082796..9dab69a37 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/builder/BuilderAgent.java
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/builder/BuilderAgent.java
@@ -99,7 +99,8 @@ protected void buildSuccessful(Notification notification, String successMessage,
      * @param prefixConsole the prefix to show in the console
      * @param buildFinishedCallback an optional callback to call when the build has finished
      */
-    public void build(final BuildOptions buildOptions, final String waitMessage, final String successMessage, final String errorMessage, final String prefixConsole,
+    public void build(final BuildOptions buildOptions, final String waitMessage, final String successMessage, final String errorMessage,
+                      final String prefixConsole,
                       final BuildFinishedCallback buildFinishedCallback) {
 
         // Start a build so print a new notification message
@@ -157,7 +158,7 @@ protected void startChecking(final Notification notification, final BuildTaskDes
                                  final String successMessage, final String errorMessage, final String prefixConsole,
                                  final BuildFinishedCallback buildFinishedCallback) {
 
-        final SubscriptionHandler  buildOutputHandler = new SubscriptionHandler(new LineUnmarshaller()) {
+        final SubscriptionHandler buildOutputHandler = new SubscriptionHandler(new LineUnmarshaller()) {
             @Override
             protected void onMessageReceived(String result) {
                 console.print(prefixConsole + "::" + result);
@@ -177,7 +178,8 @@ protected void onErrorReceived(Throwable throwable) {
         final SubscriptionHandler buildStatusHandler = new SubscriptionHandler(new StringUnmarshallerWS()) {
             @Override
             protected void onMessageReceived(String result) {
-                updateBuildStatus(notification, dtoFactory.createDtoFromJson(result, BuildTaskDescriptor.class), this, buildOutputHandler, successMessage,
+                updateBuildStatus(notification, dtoFactory.createDtoFromJson(result, BuildTaskDescriptor.class), this, buildOutputHandler,
+                                  successMessage,
                                   errorMessage, prefixConsole, buildFinishedCallback);
             }
 
@@ -212,7 +214,6 @@ protected void onErrorReceived(Throwable exception) {
     }
 
 
-
     /**
      * Check for status and display necessary messages.
      *
@@ -220,14 +221,16 @@ protected void onErrorReceived(Throwable exception) {
      *         status of build
      */
     protected void updateBuildStatus(Notification notification, BuildTaskDescriptor descriptor,
-                                     SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler, final String successMessage, final String errorMessage, final String prefixConsole,
+                                     SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler,
+                                     final String successMessage, final String errorMessage, final String prefixConsole,
                                      final BuildFinishedCallback buildFinishedCallback) {
         BuildStatus status = descriptor.getStatus();
         if (status == BuildStatus.IN_PROGRESS || status == BuildStatus.IN_QUEUE) {
             return;
         }
         if (status == BuildStatus.CANCELLED || status == BuildStatus.FAILED || status == BuildStatus.SUCCESSFUL) {
-            afterBuildFinished(notification, descriptor, buildStatusHandler, buildOutputHandler, successMessage, errorMessage, prefixConsole, buildFinishedCallback);
+            afterBuildFinished(notification, descriptor, buildStatusHandler, buildOutputHandler, successMessage, errorMessage,
+                               prefixConsole, buildFinishedCallback);
         }
     }
 
@@ -238,7 +241,8 @@ protected void updateBuildStatus(Notification notification, BuildTaskDescriptor
      *         status of build job
      */
     protected void afterBuildFinished(Notification notification, BuildTaskDescriptor descriptor,
-                                      SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler, final String successMessage, final String errorMessage, final String prefixConsole,
+                                      SubscriptionHandler buildStatusHandler, SubscriptionHandler buildOutputHandler,
+                                      final String successMessage, final String errorMessage, final String prefixConsole,
                                       BuildFinishedCallback buildFinishedCallback) {
         try {
             messageBus.unsubscribe(BuilderExtension.BUILD_STATUS_CHANNEL + descriptor.getTaskId(), buildStatusHandler);
@@ -273,7 +277,8 @@ protected void afterBuildFinished(Notification notification, BuildTaskDescriptor
      * @param descriptor the build descriptor
      * @param buildFinishedCallback the callback to call
      */
-    protected void importZipResult(final BuildTaskDescriptor descriptor, final BuildFinishedCallback buildFinishedCallback, final Notification notification, final String errorMessage) {
+    protected void importZipResult(final BuildTaskDescriptor descriptor, final BuildFinishedCallback buildFinishedCallback,
+                                   final Notification notification, final String errorMessage) {
         Link downloadLink = null;
         List links = descriptor.getLinks();
         for (Link link : links) {
@@ -284,29 +289,15 @@ protected void importZipResult(final BuildTaskDescriptor descriptor, final Build
 
         if (downloadLink != null) {
 
-            ImportProject importProject = dtoFactory.createDto(ImportProject.class).withSource(dtoFactory.createDto(Source.class).withProject(
-                    dtoFactory.createDto(ImportSourceDescriptor.class).withLocation(downloadLink.getHref()).withType("zip")));
+            ImportProject importProject =
+                    dtoFactory.createDto(ImportProject.class).withSource(dtoFactory.createDto(Source.class).withProject(
+                            dtoFactory.createDto(ImportSourceDescriptor.class).withLocation(downloadLink.getHref()).withType("zip")));
 
             projectServiceClient.importProject(appContext.getCurrentProject().getProjectDescription().getPath(), true, importProject,
-                                               new AsyncRequestCallback() {
-                @Override
-                protected void onSuccess(ImportResponse projectDescriptor) {
-                    // notify callback
-                    if (buildFinishedCallback != null) {
-                        buildFinishedCallback.onFinished(descriptor.getStatus());
-                    }
-                }
-
-                @Override
-                protected void onFailure(Throwable throwable) {
-                    notification.setMessage(errorMessage + ":" + throwable.getMessage());
-                    notification.setStatus(FINISHED);
-                    notification.setType(ERROR);
-                    if (buildFinishedCallback != null) {
-                        buildFinishedCallback.onFinished(descriptor.getStatus());
-                    }
-                }
-            });
+                                               new ImportResponseAsyncRequestCallback(buildFinishedCallback,
+                                                                                      descriptor,
+                                                                                      notification,
+                                                                                      errorMessage));
         } else {
             // notify callback
             if (buildFinishedCallback != null) {
@@ -335,4 +326,38 @@ public String getPayload() {
             return line;
         }
     }
+
+    private static class ImportResponseAsyncRequestCallback extends AsyncRequestCallback {
+        private final BuildFinishedCallback buildFinishedCallback;
+        private final BuildTaskDescriptor   descriptor;
+        private final Notification          notification;
+        private final String                errorMessage;
+
+        public ImportResponseAsyncRequestCallback(BuildFinishedCallback buildFinishedCallback, BuildTaskDescriptor descriptor,
+                                                  Notification notification,
+                                                  String errorMessage) {
+            this.buildFinishedCallback = buildFinishedCallback;
+            this.descriptor = descriptor;
+            this.notification = notification;
+            this.errorMessage = errorMessage;
+        }
+
+        @Override
+        protected void onSuccess(ImportResponse projectDescriptor) {
+            // notify callback
+            if (buildFinishedCallback != null) {
+                buildFinishedCallback.onFinished(descriptor.getStatus());
+            }
+        }
+
+        @Override
+        protected void onFailure(Throwable throwable) {
+            notification.setMessage(errorMessage + ":" + throwable.getMessage());
+            notification.setStatus(FINISHED);
+            notification.setType(ERROR);
+            if (buildFinishedCallback != null) {
+                buildFinishedCallback.onFinished(descriptor.getStatus());
+            }
+        }
+    }
 }
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java
index 7f966f3bb..794304516 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/panel/YeomanPartPresenter.java
@@ -26,6 +26,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
 
@@ -177,7 +178,7 @@ public void generate() {
             YeomanGeneratorType type = entry.getKey();
             List names = entry.getValue();
             for (String name : names) {
-                targets.add("angular:".concat(type.getName().toLowerCase()));
+                targets.add("angular:".concat(type.getName().toLowerCase(Locale.ENGLISH)));
                 targets.add(name);
             }
         }
diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml
index ceba0c601..2a93ed2a0 100644
--- a/plugin-yeoman/pom.xml
+++ b/plugin-yeoman/pom.xml
@@ -27,27 +27,7 @@
         che-plugin-yeoman-ext-client
     
     
+        true
         2014
     
-    
-        
-            
-            
-                org.codehaus.mojo
-                findbugs-maven-plugin
-                
-                    
-                        
-                            check
-                        
-                    
-                
-                
-                    Max
-                    Low
-                    true
-                
-            
-        
-    
 

From 2ee017ddf2c23effbe2f1486db69dfc440649550 Mon Sep 17 00:00:00 2001
From: Evgen Vidolob 
Date: Fri, 11 Sep 2015 16:08:54 +0300
Subject: [PATCH 027/164] IDEX-2989 fix creating java class

---
 .../NewJavaSourceFilePresenter.java            | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
index 8685480d8..8392f40d6 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
@@ -197,10 +197,10 @@ private String getPackageQualifier(FolderReferenceNode parent, String packageFra
     private void createSourceFile(final String nameWithoutExtension, final FolderReferenceNode parent, String packageFragment,
                                   final String content) {
         final String parentPath = parent.getStorablePath() + (packageFragment.isEmpty() ? "" : '/' + packageFragment.replace('.', '/'));
-        ensureFolderExists(parentPath, new AsyncCallback() {
+        ensureFolderExists(parentPath, new AsyncCallback() {
             @Override
-            public void onSuccess(Void result) {
-                createAndOpenFile(nameWithoutExtension, parent, content);
+            public void onSuccess(ItemReference result) {
+                createAndOpenFile(nameWithoutExtension, result, parent,  content);
             }
 
             @Override
@@ -211,11 +211,11 @@ public void onFailure(Throwable caught) {
     }
 
     /** Creates folder by the specified path if it doesn't exists. */
-    private void ensureFolderExists(String path, final AsyncCallback callback) {
-        projectServiceClient.createFolder(path, new AsyncRequestCallback() {
+    private void ensureFolderExists(String path, final AsyncCallback callback) {
+        projectServiceClient.createFolder(path, new AsyncRequestCallback(dtoUnmarshallerFactory.newUnmarshaller(ItemReference.class)) {
             @Override
             protected void onSuccess(ItemReference result) {
-                callback.onSuccess(null);
+                callback.onSuccess(result);
             }
 
             @Override
@@ -229,7 +229,7 @@ protected void onFailure(Throwable exception) {
         });
     }
 
-    private void createAndOpenFile(String nameWithoutExtension, FolderReferenceNode parent, String content) {
+    private void createAndOpenFile(String nameWithoutExtension, ItemReference parent, FolderReferenceNode node, String content) {
         final CurrentProject currentProject = appContext.getCurrentProject();
         if (currentProject == null) {
             throw new IllegalStateException("No opened project.");
@@ -237,11 +237,11 @@ private void createAndOpenFile(String nameWithoutExtension, FolderReferenceNode
 
         final String fileName = nameWithoutExtension + ".java";
 
-        projectServiceClient.createFile(parent.getStorablePath(),
+        projectServiceClient.createFile(parent.getPath(),
                                         fileName,
                                         content,
                                         null,
-                                        createCallback(parent));
+                                        createCallback(node));
     }
 
     protected AsyncRequestCallback createCallback(final ResourceBasedNode parent) {

From 12425446d2b76cdda6ce96b9e2fe1a514f9cd12d Mon Sep 17 00:00:00 2001
From: Max Shaposhnik 
Date: Fri, 11 Sep 2015 16:13:36 +0300
Subject: [PATCH 028/164] IDEX-3038; chande namings from codenvy to che;

---
 ... => CheAccessTokenCredentialProvider.java} | 22 ++++++++++---------
 ...odenvyGitModule.java => CheGitModule.java} |  4 ++--
 2 files changed, 14 insertions(+), 12 deletions(-)
 rename plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/{CodenvyAccessTokenCredentialProvider.java => CheAccessTokenCredentialProvider.java} (79%)
 rename plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/{CodenvyGitModule.java => CheGitModule.java} (89%)

diff --git a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyAccessTokenCredentialProvider.java b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
similarity index 79%
rename from plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyAccessTokenCredentialProvider.java
rename to plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
index 3ed890c9e..08799a7bc 100644
--- a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyAccessTokenCredentialProvider.java
+++ b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
@@ -30,28 +30,30 @@
 import static org.eclipse.che.dto.server.DtoFactory.newDto;
 
 /**
- * Credentials provider for Codenvy
+ * Credentials provider for Che
  *
  * @author Alexander Garagatyi
  * @author Valeriy Svydenko
  */
 @Singleton
-public class CodenvyAccessTokenCredentialProvider implements CredentialsProvider {
-    private final String        codenvyHost;
+public class CheAccessTokenCredentialProvider implements CredentialsProvider {
+    private final String        cheHostName;
     private       PreferenceDao preferenceDao;
 
     @Inject
-    public CodenvyAccessTokenCredentialProvider(@Named("api.endpoint") String apiEndPoint,
-                                                PreferenceDao preferenceDao) throws URISyntaxException {
+    public CheAccessTokenCredentialProvider(@Named("api.endpoint") String apiEndPoint,
+                                            PreferenceDao preferenceDao) throws URISyntaxException {
         this.preferenceDao = preferenceDao;
-        this.codenvyHost = new URI(apiEndPoint).getHost();
+        this.cheHostName = new URI(apiEndPoint).getHost();
     }
 
     @Override
     public UserCredential getUserCredential() throws GitException {
-        String token = EnvironmentContext.getCurrent().getUser().getToken();
+        String token = EnvironmentContext.getCurrent()
+                                         .getUser()
+                                         .getToken();
         if (token != null) {
-            return new UserCredential(token, "x-codenvy", "codenvy");
+            return new UserCredential(token, "x-che", "che_password");
         }
         return null;
     }
@@ -84,12 +86,12 @@ public GitUser getUser() throws GitException {
 
     @Override
     public String getId() {
-        return "codenvy";
+        return "che";
     }
 
     @Override
     public boolean canProvideCredentials(String url) {
-        return url.contains(codenvyHost);
+        return url.contains(cheHostName);
     }
 
 }
\ No newline at end of file
diff --git a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyGitModule.java b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheGitModule.java
similarity index 89%
rename from plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyGitModule.java
rename to plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheGitModule.java
index 498b8f666..a16223ca6 100644
--- a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CodenvyGitModule.java
+++ b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheGitModule.java
@@ -21,12 +21,12 @@
  * @author Alexander Garagatyi
  */
 @DynaModule
-public class CodenvyGitModule extends AbstractModule {
+public class CheGitModule extends AbstractModule {
 
     /** {@inheritDoc} */
     @Override
     protected void configure() {
-        Multibinder.newSetBinder(binder(), CredentialsProvider.class).addBinding().to(CodenvyAccessTokenCredentialProvider.class);
+        Multibinder.newSetBinder(binder(), CredentialsProvider.class).addBinding().to(CheAccessTokenCredentialProvider.class);
     }
 }
 

From 95a7de962677869c0f752d2604db68698d49054c Mon Sep 17 00:00:00 2001
From: Max Shaposhnik 
Date: Fri, 11 Sep 2015 16:22:27 +0300
Subject: [PATCH 029/164] IDEX-3038; chande namings from codenvy to che;

---
 .../git/server/nativegit/CheAccessTokenCredentialProvider.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
index 08799a7bc..469b866a7 100644
--- a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
+++ b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
@@ -53,7 +53,7 @@ public UserCredential getUserCredential() throws GitException {
                                          .getUser()
                                          .getToken();
         if (token != null) {
-            return new UserCredential(token, "x-che", "che_password");
+            return new UserCredential(token, "x-che", "che");
         }
         return null;
     }

From 73b28f59ff9d729f39be6e2f1e1b0adc41aea65d Mon Sep 17 00:00:00 2001
From: Max Shaposhnik 
Date: Fri, 11 Sep 2015 16:24:07 +0300
Subject: [PATCH 030/164] IDEX-3038; chande namings from codenvy to che;

---
 .../server/nativegit/CheAccessTokenCredentialProvider.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
index 469b866a7..57f109df2 100644
--- a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
+++ b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
@@ -39,6 +39,7 @@
 public class CheAccessTokenCredentialProvider implements CredentialsProvider {
     private final String        cheHostName;
     private       PreferenceDao preferenceDao;
+    private static String OAUTH_PROVIDER_NAME = "che";
 
     @Inject
     public CheAccessTokenCredentialProvider(@Named("api.endpoint") String apiEndPoint,
@@ -53,7 +54,7 @@ public UserCredential getUserCredential() throws GitException {
                                          .getUser()
                                          .getToken();
         if (token != null) {
-            return new UserCredential(token, "x-che", "che");
+            return new UserCredential(token, "x-che", OAUTH_PROVIDER_NAME);
         }
         return null;
     }
@@ -86,7 +87,7 @@ public GitUser getUser() throws GitException {
 
     @Override
     public String getId() {
-        return "che";
+        return OAUTH_PROVIDER_NAME;
     }
 
     @Override

From 504235193c38e4123065f9d5789350308cb50907 Mon Sep 17 00:00:00 2001
From: Max Shaposhnik 
Date: Fri, 11 Sep 2015 16:25:36 +0300
Subject: [PATCH 031/164] IDEX-3038; chande namings from codenvy to che;

---
 .../git/server/nativegit/CheAccessTokenCredentialProvider.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
index 57f109df2..eee36bcc6 100644
--- a/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
+++ b/plugin-git/che-plugin-git-provider-che/src/main/java/org/eclipse/che/ide/ext/git/server/nativegit/CheAccessTokenCredentialProvider.java
@@ -37,9 +37,10 @@
  */
 @Singleton
 public class CheAccessTokenCredentialProvider implements CredentialsProvider {
+
+    private static String OAUTH_PROVIDER_NAME = "che";
     private final String        cheHostName;
     private       PreferenceDao preferenceDao;
-    private static String OAUTH_PROVIDER_NAME = "che";
 
     @Inject
     public CheAccessTokenCredentialProvider(@Named("api.endpoint") String apiEndPoint,

From 272585cfd616d1c1e4e0e22325af68b82bbc3f11 Mon Sep 17 00:00:00 2001
From: Mihail Kuznetsov 
Date: Fri, 11 Sep 2015 18:51:16 +0300
Subject: [PATCH 032/164] Small fix

---
 .../client/newsourcefile/NewJavaSourceFilePresenter.java    | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
index 8392f40d6..e38123be7 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
@@ -28,7 +28,7 @@
 import org.eclipse.che.ide.rest.DtoUnmarshallerFactory;
 import org.eclipse.che.ide.ui.dialogs.DialogFactory;
 
-import javax.annotation.Nonnull;
+import javax.validation.constraints.NotNull;
 import java.util.Arrays;
 import java.util.List;
 
@@ -250,14 +250,14 @@ protected AsyncRequestCallback createCallback(final ResourceBased
             protected void onSuccess(final ItemReference itemReference) {
 
                 HasDataObject dataObject = new HasDataObject() {
-                    @Nonnull
+                    @NotNull
                     @Override
                     public Object getData() {
                         return itemReference;
                     }
 
                     @Override
-                    public void setData(@Nonnull Object data) {
+                    public void setData(@NotNull Object data) {
 
                     }
                 };

From ec2bd7c7103518149d3de1984d9643034da535da Mon Sep 17 00:00:00 2001
From: Mihail Kuznetsov 
Date: Sat, 12 Sep 2015 12:13:14 +0300
Subject: [PATCH 033/164] excluded jsr350 from dependencies

---
 plugin-git/che-plugin-git-ext-git/pom.xml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml
index 51b0d5484..77469337d 100644
--- a/plugin-git/che-plugin-git-ext-git/pom.xml
+++ b/plugin-git/che-plugin-git-ext-git/pom.xml
@@ -34,6 +34,12 @@
             com.google.guava
             guava-gwt
             ${com.google.guava.version}
+            
+                
+                    jsr305
+                    com.google.code.findbugs
+                
+            
         
         
             com.google.inject.extensions

From cfa6792c7ac5fbbc0118b42c45b609765b5a48cc Mon Sep 17 00:00:00 2001
From: Vitaly Parfonov 
Date: Sat, 12 Sep 2015 16:13:37 +0300
Subject: [PATCH 034/164] Addopt according changes in ProjectStateHandler. See
 https://github.com/codenvy/che-core/commit/11bff2552a261f78c9a94a72b0f003f44e16d3ef

---
 .../eclipse/che/plugin/bower/client/BowerExtension.java   | 7 ++++++-
 .../extension/builder/client/build/BuildController.java   | 7 ++++++-
 .../che/ide/ext/git/client/history/HistoryPresenter.java  | 7 ++++++-
 .../ide/ext/git/client/status/StatusCommandPresenter.java | 7 ++++++-
 .../che/ide/extension/ant/client/AntExtension.java        | 7 ++++++-
 .../ide/ext/java/jdi/client/debug/DebuggerPresenter.java  | 7 ++++++-
 .../ide/ext/java/client/editor/JavaParserWorkerImpl.java  | 7 ++++++-
 .../che/ide/ext/java/client/format/FormatController.java  | 7 ++++++-
 .../ide/ext/java/client/core/CreateJavaClassPresenter.txt | 4 ++--
 .../che/ide/extension/maven/client/MavenExtension.java    | 7 ++++++-
 .../ext/runner/client/manager/RunnerManagerPresenter.java | 7 ++++++-
 .../runner/client/manager/RunnerManagerPresenterTest.java | 8 ++++----
 .../che/ide/ext/tutorials/client/GuidePageController.java | 7 ++++++-
 .../che/ide/ext/svn/client/action/ResolveAction.java      | 7 ++++++-
 .../ext/svn/client/common/SubversionActionPresenter.java  | 7 ++++++-
 .../org/eclipse/che/plugin/tour/client/TourExtension.java | 7 ++++++-
 .../eclipse/che/plugin/yeoman/client/YeomanExtension.java | 7 ++++++-
 17 files changed, 96 insertions(+), 21 deletions(-)

diff --git a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java
index 3e62553c7..015b98b99 100644
--- a/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java
+++ b/plugin-bower/che-plugin-bower-ext-client/src/main/java/org/eclipse/che/plugin/bower/client/BowerExtension.java
@@ -71,7 +71,7 @@ public BowerExtension(ActionManager actionManager,
         // Install Bower dependencies when projects is being opened and that there is no app/bower_components
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
 
                 final ProjectDescriptor project = event.getProject();
                 boolean isBowerJsProject = isBowerJsProject(project);
@@ -144,6 +144,11 @@ public void onProjectClosed(ProjectActionEvent event) {
 
             }
 
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
+
         });
 
     }
diff --git a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java
index 1738e3563..44c26350a 100644
--- a/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java
+++ b/plugin-builder/che-plugin-builder-ext-builder/src/main/java/org/eclipse/che/ide/extension/builder/client/build/BuildController.java
@@ -129,7 +129,7 @@ protected BuildController(@RestContext String restContext,
 
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
             }
 
             @Override
@@ -143,6 +143,11 @@ public void onProjectClosed(ProjectActionEvent event) {
                 activeProject = null;
                 lastBuildTaskDescriptor = null;
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
 
         ffTimer = new Timer() {
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java
index a8ffa84a5..0b63ddf26 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/history/HistoryPresenter.java
@@ -101,7 +101,7 @@ public HistoryPresenter(final HistoryView view,
         this.selectionAgent = selectionAgent;
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
 
             }
 
@@ -116,6 +116,11 @@ public void onProjectClosed(ProjectActionEvent event) {
                 workspaceAgent.hidePart(HistoryPresenter.this);
                 view.clear();
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
     }
 
diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/status/StatusCommandPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/status/StatusCommandPresenter.java
index a4375b79d..4d748310a 100644
--- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/status/StatusCommandPresenter.java
+++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/status/StatusCommandPresenter.java
@@ -74,7 +74,7 @@ public StatusCommandPresenter(final WorkspaceAgent workspaceAgent,
 
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
 
             }
 
@@ -89,6 +89,11 @@ public void onProjectClosed(ProjectActionEvent event) {
                 console.clear();
                 workspaceAgent.hidePart(console);
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
     }
 
diff --git a/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/AntExtension.java b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/AntExtension.java
index 182a619b8..7cc7e000b 100644
--- a/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/AntExtension.java
+++ b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/AntExtension.java
@@ -42,7 +42,7 @@ public AntExtension(final EventBus eventBus,
         // Handle project opened event to fire update dependencies.
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
                 ProjectDescriptor project = event.getProject();
                 if (AntAttributes.ANT_ID.equals(project.getType())
                     && project.getAttributes().containsKey(Constants.LANGUAGE)
@@ -58,6 +58,11 @@ public void onProjectClosing(ProjectActionEvent event) {
             @Override
             public void onProjectClosed(ProjectActionEvent event) {
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
 
         // Handle build.xml file save operation and if ant configuration has been changed reload project tree.
diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java
index 532d0cd5d..1f6146e9a 100644
--- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java
+++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java
@@ -242,7 +242,7 @@ protected void onErrorReceived(Throwable exception) {
 
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
                 CurrentProject currentProject = appContext.getCurrentProject();
 
                 if (currentProject == null) {
@@ -275,6 +275,11 @@ public void onProjectClosed(ProjectActionEvent event) {
                     closeView();
                 }
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
 
         configureStatusRunEventHandler();
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/JavaParserWorkerImpl.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/JavaParserWorkerImpl.java
index 75912f692..ef9dfa929 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/JavaParserWorkerImpl.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/JavaParserWorkerImpl.java
@@ -386,7 +386,7 @@ public void computeQAProposals(String content, int offset, int selectionLength,
     }
 
     @Override
-    public void onProjectOpened(ProjectActionEvent event) {
+    public void onProjectReady(ProjectActionEvent event) {
         if (worker != null) {
             worker.terminate();
         }
@@ -433,6 +433,11 @@ public void onProjectClosed(ProjectActionEvent event) {
         }
     }
 
+    @Override
+    public void onProjectOpened(ProjectActionEvent event) {
+
+    }
+
     @Override
     @SuppressWarnings("unchecked")
     public void onMessageReceived(ProblemsMessage message) {
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/format/FormatController.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/format/FormatController.java
index aaa12deaf..f35b557cc 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/format/FormatController.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/format/FormatController.java
@@ -34,7 +34,7 @@ public FormatController(JavaParserWorker worker, FormatClientService formatClien
         this.worker = worker;
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
                 getFormattingCodenvySettings();
             }
 
@@ -47,6 +47,11 @@ public void onProjectClosing(ProjectActionEvent event) {
             public void onProjectClosed(ProjectActionEvent event) {
 
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
     }
 
diff --git a/plugin-java/che-plugin-java-ext-java/src/test/resources/org/eclipse/che/ide/ext/java/client/core/CreateJavaClassPresenter.txt b/plugin-java/che-plugin-java-ext-java/src/test/resources/org/eclipse/che/ide/ext/java/client/core/CreateJavaClassPresenter.txt
index fa45aebf5..896a284cb 100644
--- a/plugin-java/che-plugin-java-ext-java/src/test/resources/org/eclipse/che/ide/ext/java/client/core/CreateJavaClassPresenter.txt
+++ b/plugin-java/che-plugin-java-ext-java/src/test/resources/org/eclipse/che/ide/ext/java/client/core/CreateJavaClassPresenter.txt
@@ -817,10 +817,10 @@ public class CreateJavaClassPresenter implements CreateJavaClassHandler, ViewClo
    }
 
    /**
-    * @see org.eclipse.che.ide.client.framework.project.ProjectOpenedHandler#onProjectOpened(org.eclipse.che.ide.client.framework.project.ProjectOpenedEvent)
+    * @see org.eclipse.che.ide.client.framework.project.ProjectOpenedHandler#onProjectReady(org.eclipse.che.ide.client.framework.project.ProjectOpenedEvent)
     */
    @Override
-   public void onProjectOpened(ProjectOpenedEvent event)
+   public void onProjectReady(ProjectOpenedEvent event)
    {
       currentProject = event.getProject();
    }
diff --git a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java
index 7b3a92989..97f8507c2 100644
--- a/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java
+++ b/plugin-java/che-plugin-java-ext-maven/src/main/java/org/eclipse/che/ide/extension/maven/client/MavenExtension.java
@@ -76,7 +76,7 @@ private void bindEvents(final EventBus eventBus,
 
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
                 ProjectDescriptor project = event.getProject();
                 if (isValidForResolveDependencies(project)) {
                     dependenciesUpdater.updateDependencies(project, false);
@@ -90,6 +90,11 @@ public void onProjectClosing(ProjectActionEvent event) {
             @Override
             public void onProjectClosed(ProjectActionEvent event) {
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
     }
 
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java
index f1a3bea1f..adb150016 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/main/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenter.java
@@ -666,7 +666,7 @@ public String getTitleToolTip() {
 
     /** {@inheritDoc} */
     @Override
-    public void onProjectOpened(@Nonnull ProjectActionEvent projectActionEvent) {
+    public void onProjectReady(@Nonnull ProjectActionEvent projectActionEvent) {
         view.setEnableReRunButton(false);
         view.setEnableStopButton(false);
         view.setEnableLogsButton(false);
@@ -724,6 +724,11 @@ public void onProjectClosed(@Nonnull ProjectActionEvent projectActionEvent) {
         propertiesContainer.show((Runner)null);
     }
 
+    @Override
+    public void onProjectOpened(ProjectActionEvent event) {
+
+    }
+
     /**
      * Adds already running runner.
      *
diff --git a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenterTest.java b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenterTest.java
index 97fa7472b..c61e99b5f 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenterTest.java
+++ b/plugin-runner/che-plugin-runner-ext-runner/src/test/java/org/eclipse/che/ide/ext/runner/client/manager/RunnerManagerPresenterTest.java
@@ -818,7 +818,7 @@ public void shouldNotShowDebugPort() {
     public void shouldHideDebugPortAfterCloseProject() {
         presenter.addRunner(processDescriptor);
         presenter.onRunButtonClicked();
-        presenter.onProjectOpened(projectActionEvent);
+        presenter.onProjectReady(projectActionEvent);
         presenter.setPartStack(partStack);
 
         presenter.onProjectClosed(projectActionEvent);
@@ -1265,7 +1265,7 @@ public void selectionShouldBeChangedWhenSelectionIsEnvironment() {
     public void openProjectActionsShouldBePerformedWhenCurrentProjectIsNotNull() {
         when(descriptor.getPermissions()).thenReturn(Arrays.asList("run"));
 
-        presenter.onProjectOpened(projectActionEvent);
+        presenter.onProjectReady(projectActionEvent);
 
         verify(view).setEnableRunButton(true);
         verify(templates).setVisible(true);
@@ -1290,7 +1290,7 @@ public void openProjectActionsShouldBePerformedWhenCurrentProjectIsNotNull() {
     public void runningProcessActionShouldNotBePerformedWhenRunPermissionIsDenied() {
         when(runnerUtil.hasRunPermission()).thenReturn(false);
 
-        presenter.onProjectOpened(projectActionEvent);
+        presenter.onProjectReady(projectActionEvent);
 
         verify(templates).setVisible(true);
 
@@ -1309,7 +1309,7 @@ public void projectShouldBeClosed() {
         presenter.addRunner(processDescriptor);
         presenter.onRunButtonClicked();
         presenter.setPartStack(partStack);
-        presenter.onProjectOpened(projectActionEvent);
+        presenter.onProjectReady(projectActionEvent);
 
         reset(view);
 
diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePageController.java b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePageController.java
index ced0d1cb3..00ae22a03 100644
--- a/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePageController.java
+++ b/plugin-sdk/che-plugin-sdk-ext-plugins/src/main/java/org/eclipse/che/ide/ext/tutorials/client/GuidePageController.java
@@ -37,7 +37,7 @@ public GuidePageController(EventBus eventBus, WorkspaceAgent workspaceAgent, Gui
 
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
                 if (event.getProject().getType().equals(Constants.TUTORIAL_ID)) {
 //                    openTutorialGuide();
                 }
@@ -53,6 +53,11 @@ public void onProjectClosed(ProjectActionEvent event) {
 //                    closeTutorialGuide();
                 }
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
     }
 
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java
index bbfbb44d6..64e6955a8 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/action/ResolveAction.java
@@ -115,7 +115,7 @@ private HasStorablePath getStorableNodeFromSelection(Selection selection) {
 
     /** {@inheritDoc} */
     @Override
-    public void onProjectOpened(ProjectActionEvent event) {
+    public void onProjectReady(ProjectActionEvent event) {
         fetchConflicts();
     }
 
@@ -131,6 +131,11 @@ public void onProjectClosed(ProjectActionEvent event) {
         conflictsList = null;
     }
 
+    @Override
+    public void onProjectOpened(ProjectActionEvent event) {
+
+    }
+
     @Override
     public void onProjectUpdated(SubversionProjectUpdatedEvent event) {
         fetchConflicts();
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java
index 4119d32f8..84b8ae49c 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java
+++ b/plugin-svn/che-plugin-svn-ext-subversion/src/main/java/org/eclipse/che/ide/ext/svn/client/common/SubversionActionPresenter.java
@@ -84,7 +84,7 @@ protected SubversionActionPresenter(final AppContext appContext,
 
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(final ProjectActionEvent event) {
+            public void onProjectReady(final ProjectActionEvent event) {
             }
 
             @Override
@@ -98,6 +98,11 @@ public void onProjectClosed(final ProjectActionEvent event) {
                 workspaceAgent.hidePart(console);
             }
 
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
+
         });
     }
 
diff --git a/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/TourExtension.java b/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/TourExtension.java
index 98641bbb9..d09a5ed8a 100644
--- a/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/TourExtension.java
+++ b/plugin-tour/che-plugin-tour-ext-client/src/main/java/org/eclipse/che/plugin/tour/client/TourExtension.java
@@ -98,7 +98,7 @@ public TourExtension(EventBus eventBus) {
         // Initialize the tour when project is opened
         eventBus.addHandler(ProjectActionEvent.TYPE, new ProjectActionHandler() {
             @Override
-            public void onProjectOpened(ProjectActionEvent event) {
+            public void onProjectReady(ProjectActionEvent event) {
                 initTour(event);
             }
 
@@ -111,6 +111,11 @@ public void onProjectClosing(ProjectActionEvent event) {
             public void onProjectClosed(ProjectActionEvent projectActionEvent) {
 
             }
+
+            @Override
+            public void onProjectOpened(ProjectActionEvent event) {
+
+            }
         });
 
 
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java
index 162a279cb..dd2bfbcb5 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/src/main/java/org/eclipse/che/plugin/yeoman/client/YeomanExtension.java
@@ -54,7 +54,7 @@ public YeomanProjectActionHandler(WorkspaceAgent workspaceAgent, YeomanPartPrese
         }
 
         @Override
-        public void onProjectOpened(ProjectActionEvent event) {
+        public void onProjectReady(ProjectActionEvent event) {
 
             ProjectDescriptor project = event.getProject();
             final String projectTypeId = project.getType();
@@ -84,5 +84,10 @@ public void onProjectClosed(ProjectActionEvent event) {
             }
 
         }
+
+        @Override
+        public void onProjectOpened(ProjectActionEvent event) {
+
+        }
     }
 }

From d2c981f6eb171473af2649f8da36849e3a872a6a Mon Sep 17 00:00:00 2001
From: Florent BENOIT 
Date: Mon, 14 Sep 2015 15:32:11 +0200
Subject: [PATCH 035/164] IDEX-2964 Allow to add server side extension only
 (without client side extension)

---
 .../org/eclipse/che/runner/sdk/SDKRunner.java |  5 +++-
 .../org/eclipse/che/runner/sdk/Utils.java     | 23 +++++++++++--------
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java
index ac9450401..5c548ddd3 100644
--- a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java
+++ b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/SDKRunner.java
@@ -237,7 +237,10 @@ private ZipFile buildCodenvyWebAppWithExtension(Utils.ExtensionDescriptor extens
                                      extension.version));
             model.writeTo(pom);
 
-            GwtXmlUtils.inheritGwtModule(IoUtil.findFile(IDE_GWT_XML_FILE_NAME, workDirPath.toFile()).toPath(), extension.gwtModuleName);
+            // Add GWT module if there is one
+            if (extension.gwtModuleName != null) {
+                GwtXmlUtils.inheritGwtModule(IoUtil.findFile(IDE_GWT_XML_FILE_NAME, workDirPath.toFile()).toPath(), extension.gwtModuleName);
+            }
 
             warPath = Utils.buildProjectFromSources(workDirPath, "*.war");
         } catch (Exception e) {
diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java
index 641e12428..a3d6d1162 100644
--- a/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java
+++ b/plugin-sdk/che-plugin-sdk-runner/src/main/java/org/eclipse/che/runner/sdk/Utils.java
@@ -159,22 +159,27 @@ static ExtensionDescriptor getExtensionFromJarFile(ZipFile zipFile) throws IOExc
             }
 
             // TODO: consider Codenvy extensions validator
-            if (gwtXmlEntry == null || pomEntry == null) {
+            if (pomEntry == null) {
                 throw new IllegalArgumentException(String.format("%s is not a valid Codenvy Extension", zipFile.getName()));
             }
 
-            String gwtModuleName = gwtXmlEntry.getName();
-            gwtModuleName = gwtModuleName.substring(0, gwtModuleName.length() - GwtXmlUtils.GWT_MODULE_XML_SUFFIX.length());
+            String gwtModuleName = null;
             Model pom = Model.readFrom(zipFile.getInputStream(pomEntry));
             List sourceDirectories = MavenUtils.getSourceDirectories(pom);
             sourceDirectories.addAll(MavenUtils.getResourceDirectories(pom));
-            for (String src : sourceDirectories) {
-                if (gwtModuleName.startsWith(src))
-                    gwtModuleName = gwtModuleName.replace(src,"");
+            if (gwtXmlEntry != null) {
+                gwtModuleName = gwtXmlEntry.getName();
+                gwtModuleName = gwtModuleName.substring(0, gwtModuleName.length() - GwtXmlUtils.GWT_MODULE_XML_SUFFIX.length());
+                for (String src : sourceDirectories) {
+                    if (gwtModuleName.startsWith(src))
+                        gwtModuleName = gwtModuleName.replace(src,"");
+                }
+
+                gwtModuleName = gwtModuleName.replace(java.io.File.separatorChar, '.');
+                if (gwtModuleName.startsWith(".")) {
+                    gwtModuleName = gwtModuleName.substring(1);
+                }
             }
-            gwtModuleName = gwtModuleName.replace(java.io.File.separatorChar, '.');
-            if (gwtModuleName.startsWith("."))
-                gwtModuleName = gwtModuleName.substring(1);
             return new ExtensionDescriptor(gwtModuleName, MavenUtils.getGroupId(pom), pom.getArtifactId(), MavenUtils.getVersion(pom));
         } finally {
             zipFile.close();

From 9b73b2e6d2d8c81c0dcab51f656d84ab6dc7a050 Mon Sep 17 00:00:00 2001
From: Florent BENOIT 
Date: Mon, 14 Sep 2015 15:33:33 +0200
Subject: [PATCH 036/164] IDEX-3046 On Windows, env should also be in the
 format /my/runner and not /my\runner

---
 .../docker/runner/EmbeddedDockerRunnerRegistryPlugin.java       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java
index 56a28a2ce..037066f6a 100644
--- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java
+++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java
@@ -103,7 +103,7 @@ public EmbeddedDockerRunnerRegistryPlugin(RunnerRegistry registry,
                 final Path relEnvPath = dockerFilesDirPath.relativize(environmentDir.toPath());
                 try {
                     final int nameCount = relEnvPath.getNameCount();
-                    final String runner = relEnvPath.subpath(0, nameCount - 1).toString();
+                    final String runner = relEnvPath.subpath(0, nameCount - 1).toString().replace('\\', '/');
                     final String environment = relEnvPath.subpath(nameCount - 1, nameCount).toString();
                     EmbeddedDockerRunner dockerRunner = runnersMap.get(runner);
                     if (dockerRunner == null) {

From a8e0c6ff87f7c6c9e42194337be08c703241b172 Mon Sep 17 00:00:00 2001
From: Vladyslav Zhukovskii 
Date: Tue, 15 Sep 2015 09:10:39 +0300
Subject: [PATCH 037/164] Added Java Content root node interceptor for Ant
 project type

---
 .../ant/client/inject/AntGinModule.java       |  4 ++
 .../project/AntContentRootInterceptor.java    | 46 +++++++++++++++++++
 2 files changed, 50 insertions(+)
 create mode 100644 plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/project/AntContentRootInterceptor.java

diff --git a/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/inject/AntGinModule.java b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/inject/AntGinModule.java
index c49fdf79d..18da088e1 100644
--- a/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/inject/AntGinModule.java
+++ b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/inject/AntGinModule.java
@@ -15,7 +15,9 @@
 import com.google.inject.Singleton;
 
 import org.eclipse.che.ide.api.extension.ExtensionGinModule;
+import org.eclipse.che.ide.api.project.node.interceptor.NodeInterceptor;
 import org.eclipse.che.ide.api.project.type.wizard.ProjectWizardRegistrar;
+import org.eclipse.che.ide.extension.ant.client.project.AntContentRootInterceptor;
 import org.eclipse.che.ide.extension.ant.client.wizard.AntPageView;
 import org.eclipse.che.ide.extension.ant.client.wizard.AntPageViewImpl;
 import org.eclipse.che.ide.extension.ant.client.wizard.AntProjectWizardRegistrar;
@@ -29,5 +31,7 @@ protected void configure() {
         bind(AntPageView.class).to(AntPageViewImpl.class).in(Singleton.class);
 
         GinMultibinder.newSetBinder(binder(), ProjectWizardRegistrar.class).addBinding().to(AntProjectWizardRegistrar.class);
+
+        GinMultibinder.newSetBinder(binder(), NodeInterceptor.class).addBinding().to(AntContentRootInterceptor.class);
     }
 }
diff --git a/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/project/AntContentRootInterceptor.java b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/project/AntContentRootInterceptor.java
new file mode 100644
index 000000000..feb3a55ab
--- /dev/null
+++ b/plugin-java/che-plugin-java-ext-ant/src/main/java/org/eclipse/che/ide/extension/ant/client/project/AntContentRootInterceptor.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2012-2015 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.extension.ant.client.project;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+import org.eclipse.che.ide.ext.java.client.project.interceptor.AbstractJavaContentRootInterceptor;
+import org.eclipse.che.ide.ext.java.client.project.node.JavaNodeManager;
+import org.eclipse.che.ide.extension.ant.shared.AntAttributes;
+
+
+/**
+ * @author Vlad Zhukovskiy
+ */
+@Singleton
+public class AntContentRootInterceptor extends AbstractJavaContentRootInterceptor {
+
+    @Inject
+    public AntContentRootInterceptor(JavaNodeManager javaResourceNodeManager) {
+        super(javaResourceNodeManager);
+    }
+
+    @Override
+    public String getSrcFolderAttribute() {
+        return AntAttributes.SOURCE_FOLDER;
+    }
+
+    @Override
+    public String getTestSrcFolderAttribute() {
+        return AntAttributes.TEST_SOURCE_FOLDER;
+    }
+
+    @Override
+    public String getResourceFolderAttribute() {
+        return "";
+    }
+}

From fe7647f65f16e4e690f6c368bde0aa003616f3c3 Mon Sep 17 00:00:00 2001
From: Vladyslav Zhukovskii 
Date: Wed, 16 Sep 2015 16:57:45 +0300
Subject: [PATCH 038/164] IDEX-2989, IDEX-3010: Wrong behaviours with render
 package nodes and fix related with open file action

---
 .../jdi/client/debug/DebuggerPresenter.java   |  16 +-
 .../action/NewJavaSourceFileAction.java       |  20 +--
 .../java/client/action/NewPackageAction.java  |  59 ++-----
 .../client/editor/OpenDeclarationFinder.java  |  47 +++--
 .../ext/java/client/inject/JavaGinModule.java |   3 -
 .../NewJavaSourceFilePresenter.java           | 162 +++++++++++-------
 .../AbstractJavaContentRootInterceptor.java   |  45 ++---
 .../interceptor/PackageNodeInterceptor.java   | 136 ---------------
 .../client/project/node/FQNComparator.java    |  29 ++++
 .../client/project/node/JavaNodeFactory.java  |   6 +
 .../client/project/node/JavaNodeManager.java  | 108 +++++++++++-
 .../java/client/project/node/PackageNode.java |  94 +---------
 .../client/project/node/SourceFolderNode.java |  78 +++++++++
 13 files changed, 387 insertions(+), 416 deletions(-)
 delete mode 100644 plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/PackageNodeInterceptor.java
 create mode 100644 plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/FQNComparator.java
 create mode 100644 plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/SourceFolderNode.java

diff --git a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java
index 86cf3e44a..5f094a147 100644
--- a/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java
+++ b/plugin-java/che-plugin-java-ext-debugger-java/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java
@@ -23,7 +23,6 @@
 import org.eclipse.che.api.project.shared.dto.ProjectDescriptor;
 import org.eclipse.che.api.promises.client.Operation;
 import org.eclipse.che.api.promises.client.OperationException;
-import org.eclipse.che.api.promises.client.Promise;
 import org.eclipse.che.api.runner.dto.ApplicationProcessDescriptor;
 import org.eclipse.che.api.runner.dto.RunOptions;
 import org.eclipse.che.ide.api.app.AppContext;
@@ -423,23 +422,11 @@ private void openFile(@NotNull Location location, @Nullable VirtualFile activeFi
             return;
         }
 
-        HasStorablePath path = new HasStorablePath() {
-            @NotNull
-            @Override
-            public String getStorablePath() {
-                return filePath;
-            }
-        };
-
-        Promise fileNode = projectExplorer.navigate(path, true);
-
-
-        fileNode.then(new Operation() {
+        projectExplorer.getNodeByPath(new HasStorablePath.StorablePath(filePath)).then(new Operation() {
             public HandlerRegistration handlerRegistration;
 
             @Override
             public void apply(final Node node) throws OperationException {
-
                 if (!(node instanceof FileReferenceNode)) {
                     return;
                 }
@@ -463,7 +450,6 @@ public void run() {
                     }
                 });
                 eventBus.fireEvent(new FileEvent((VirtualFile)node, OPEN));
-
             }
         });
     }
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewJavaSourceFileAction.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewJavaSourceFileAction.java
index e15ef5724..f9e6469d4 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewJavaSourceFileAction.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewJavaSourceFileAction.java
@@ -10,6 +10,9 @@
  *******************************************************************************/
 package org.eclipse.che.ide.ext.java.client.action;
 
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
 import org.eclipse.che.api.analytics.client.logger.AnalyticsEventLogger;
 import org.eclipse.che.ide.api.action.ActionEvent;
 import org.eclipse.che.ide.api.action.ProjectAction;
@@ -18,14 +21,10 @@
 import org.eclipse.che.ide.ext.java.client.JavaResources;
 import org.eclipse.che.ide.ext.java.client.newsourcefile.NewJavaSourceFilePresenter;
 import org.eclipse.che.ide.ext.java.client.project.node.PackageNode;
+import org.eclipse.che.ide.ext.java.client.project.node.SourceFolderNode;
 import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter;
-import org.eclipse.che.ide.project.node.FolderReferenceNode;
-
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * Action to create new Java source file.
@@ -74,15 +73,6 @@ public void updateProjectAction(ActionEvent e) {
 
         Object o = elements.get(0);
 
-        e.getPresentation().setEnabledAndVisible(isSourceFolder(o) || o instanceof PackageNode);
-    }
-
-    private boolean isSourceFolder(Object o) {
-        if (!(o instanceof FolderReferenceNode)) {
-            return false;
-        }
-
-        Map> attributes = ((FolderReferenceNode)o).getAttributes();
-        return attributes.containsKey("javaContentRoot");
+        e.getPresentation().setEnabledAndVisible(o instanceof SourceFolderNode || o instanceof PackageNode);
     }
 }
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java
index 35d8a9a68..9b58269cf 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/action/NewPackageAction.java
@@ -14,29 +14,24 @@
 import com.google.inject.Singleton;
 
 import org.eclipse.che.api.project.shared.dto.ItemReference;
-import org.eclipse.che.api.promises.client.Operation;
-import org.eclipse.che.api.promises.client.OperationException;
+import org.eclipse.che.commons.annotation.Nullable;
 import org.eclipse.che.ide.api.action.ActionEvent;
-import org.eclipse.che.ide.api.project.node.HasDataObject;
-import org.eclipse.che.ide.api.project.node.Node;
+import org.eclipse.che.ide.api.project.node.HasStorablePath;
 import org.eclipse.che.ide.api.selection.Selection;
 import org.eclipse.che.ide.ext.java.client.JavaLocalizationConstant;
 import org.eclipse.che.ide.ext.java.client.JavaResources;
 import org.eclipse.che.ide.ext.java.client.JavaUtils;
 import org.eclipse.che.ide.ext.java.client.project.node.PackageNode;
+import org.eclipse.che.ide.ext.java.client.project.node.SourceFolderNode;
 import org.eclipse.che.ide.json.JsonHelper;
 import org.eclipse.che.ide.newresource.AbstractNewResourceAction;
 import org.eclipse.che.ide.project.node.FolderReferenceNode;
-import org.eclipse.che.ide.project.node.ResourceBasedNode;
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.ui.dialogs.InputCallback;
 import org.eclipse.che.ide.ui.dialogs.input.InputDialog;
 import org.eclipse.che.ide.ui.dialogs.input.InputValidator;
 
-import javax.validation.constraints.NotNull;
-import org.eclipse.che.commons.annotation.Nullable;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Action to create new Java package.
@@ -75,45 +70,22 @@ private void onAccepted(String value) {
 
         final String path = parent.getStorablePath() + '/' + value.replace('.', '/');
 
-        projectServiceClient.createFolder(path, createCallback(parent));
+        projectServiceClient.createFolder(path, createCallback());
     }
 
-    @Override
-    protected AsyncRequestCallback createCallback(final ResourceBasedNode parent) {
+    protected AsyncRequestCallback createCallback() {
         return new AsyncRequestCallback(dtoUnmarshallerFactory.newUnmarshaller(ItemReference.class)) {
             @Override
             protected void onSuccess(final ItemReference itemReference) {
-                parent.getChildren(false).then(new Operation>() {
-                    @Override
-                    public void apply(List cachedChildren) throws OperationException {
-                        HasDataObject dataObject = new HasDataObject() {
-                            @NotNull
-                            @Override
-                            public Object getData() {
-                                return itemReference;
-                            }
-
-                            @Override
-                            public void setData(@NotNull Object data) {
-
-                            }
-                        };
-
-
-                        if (cachedChildren.size() == 1 && cachedChildren.get(0) instanceof PackageNode) {
-                            projectExplorer.reloadChildren(parent.getParent(), dataObject, false, false);
-                        } else {
-                            projectExplorer.reloadChildren(parent, dataObject, false, false);
-                        }
-                    }
-                });
-
-
+                projectExplorer.getNodeByPath(new HasStorablePath.StorablePath(itemReference.getPath()), true).then(selectNode());
             }
 
             @Override
             protected void onFailure(Throwable exception) {
-                dialogFactory.createMessageDialog("", JsonHelper.parseJsonMessage(exception.getMessage()), null).show();
+                String message = JsonHelper.parseJsonMessage(exception.getMessage());
+                dialogFactory.createMessageDialog("New package",
+                                                  message.contains("already exists") ? "Package already exists." : message,
+                                                  null).show();
             }
         };
     }
@@ -136,16 +108,7 @@ public void updateProjectAction(ActionEvent e) {
 
         Object o = elements.get(0);
 
-        e.getPresentation().setEnabledAndVisible(isSourceFolder(o) || o instanceof PackageNode);
-    }
-
-    private boolean isSourceFolder(Object o) {
-        if (!(o instanceof FolderReferenceNode)) {
-            return false;
-        }
-
-        Map> attributes = ((FolderReferenceNode)o).getAttributes();
-        return attributes.containsKey("javaContentRoot");
+        e.getPresentation().setEnabledAndVisible(o instanceof SourceFolderNode || o instanceof PackageNode);
     }
 
     private class NameValidator implements InputValidator {
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java
index f84e2e87a..15c629d86 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/editor/OpenDeclarationFinder.java
@@ -13,6 +13,8 @@
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
+import org.eclipse.che.api.promises.client.Function;
+import org.eclipse.che.api.promises.client.FunctionException;
 import org.eclipse.che.api.promises.client.Operation;
 import org.eclipse.che.api.promises.client.OperationException;
 import org.eclipse.che.ide.api.app.AppContext;
@@ -29,12 +31,12 @@
 import org.eclipse.che.ide.jseditor.client.text.LinearRange;
 import org.eclipse.che.ide.jseditor.client.texteditor.EmbeddedTextEditorPresenter;
 import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter;
+import org.eclipse.che.ide.project.node.FileReferenceNode;
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.rest.DtoUnmarshallerFactory;
 import org.eclipse.che.ide.rest.Unmarshallable;
 import org.eclipse.che.ide.util.loging.Log;
 
-import javax.validation.constraints.NotNull;
 import java.util.Map;
 
 /**
@@ -141,25 +143,36 @@ public void apply(Node node) throws OperationException {
                                }
                            });
         } else {
-            HasStorablePath path = new HasStorablePath() {
-                @NotNull
-                @Override
-                public String getStorablePath() {
-                    return descriptor.getPath();
-                }
-            };
-
-            projectExplorer.navigate(path, true).then(new Operation() {
-                @Override
-                public void apply(Node node) throws OperationException {
-                    if (node instanceof VirtualFile) {
-                        openFile((VirtualFile)node, descriptor);
-                    }
-                }
-            });
+            projectExplorer.getNodeByPath(new HasStorablePath.StorablePath(descriptor.getPath()))
+                           .then(selectNode())
+                           .then(openNode(descriptor));
         }
     }
 
+    protected Function selectNode() {
+        return new Function() {
+            @Override
+            public Node apply(Node node) throws FunctionException {
+                projectExplorer.select(node, false);
+
+                return node;
+            }
+        };
+    }
+
+    protected Function openNode(final OpenDeclarationDescriptor descriptor) {
+        return new Function() {
+            @Override
+            public Node apply(Node node) throws FunctionException {
+                if (node instanceof FileReferenceNode) {
+                    openFile((VirtualFile)node, descriptor);
+                }
+
+                return node;
+            }
+        };
+    }
+
     private void openFile(VirtualFile result, final OpenDeclarationDescriptor descriptor) {
         editorAgent.openEditor(result, new EditorAgent.OpenEditorCallback() {
             @Override
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java
index 888585bf9..3943e44b6 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java
@@ -36,9 +36,7 @@
 import org.eclipse.che.ide.ext.java.client.navigation.JavaNavigationServiceImpl;
 import org.eclipse.che.ide.ext.java.client.newsourcefile.NewJavaSourceFileView;
 import org.eclipse.che.ide.ext.java.client.newsourcefile.NewJavaSourceFileViewImpl;
-import org.eclipse.che.ide.ext.java.client.project.interceptor.AbstractExternalLibrariesNodeInterceptor;
 import org.eclipse.che.ide.ext.java.client.project.interceptor.JavaClassInterceptor;
-import org.eclipse.che.ide.ext.java.client.project.interceptor.PackageNodeInterceptor;
 import org.eclipse.che.ide.ext.java.client.project.node.JavaNodeFactory;
 import org.eclipse.che.ide.ext.java.client.project.node.JavaNodeManager;
 import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettingsProvider;
@@ -66,7 +64,6 @@ protected void configure() {
                 GinMapBinder.newMapBinder(binder(), String.class, SettingsProvider.class);
         mapBinder.addBinding("java").to(JavaNodeSettingsProvider.class);
 
-        GinMultibinder.newSetBinder(binder(), NodeInterceptor.class).addBinding().to(PackageNodeInterceptor.class);
         GinMultibinder.newSetBinder(binder(), NodeInterceptor.class).addBinding().to(JavaClassInterceptor.class);
 
         install(new GinFactoryModuleBuilder().build(JavaNodeFactory.class));
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
index e38123be7..1921fba10 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java
@@ -16,17 +16,21 @@
 
 import org.eclipse.che.api.project.gwt.client.ProjectServiceClient;
 import org.eclipse.che.api.project.shared.dto.ItemReference;
-import org.eclipse.che.ide.api.app.AppContext;
-import org.eclipse.che.ide.api.app.CurrentProject;
-import org.eclipse.che.ide.api.project.node.HasDataObject;
+import org.eclipse.che.api.promises.client.Function;
+import org.eclipse.che.api.promises.client.FunctionException;
+import org.eclipse.che.api.promises.client.Promise;
+import org.eclipse.che.api.promises.client.PromiseError;
+import org.eclipse.che.api.promises.client.callback.AsyncPromiseHelper;
+import org.eclipse.che.ide.api.project.node.HasStorablePath;
+import org.eclipse.che.ide.api.project.node.HasStorablePath.StorablePath;
+import org.eclipse.che.ide.api.project.node.Node;
 import org.eclipse.che.ide.ext.java.client.project.node.PackageNode;
-import org.eclipse.che.ide.json.JsonHelper;
 import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter;
+import org.eclipse.che.ide.project.node.FileReferenceNode;
 import org.eclipse.che.ide.project.node.FolderReferenceNode;
-import org.eclipse.che.ide.project.node.ResourceBasedNode;
 import org.eclipse.che.ide.rest.AsyncRequestCallback;
 import org.eclipse.che.ide.rest.DtoUnmarshallerFactory;
-import org.eclipse.che.ide.ui.dialogs.DialogFactory;
+import org.eclipse.che.ide.rest.Unmarshallable;
 
 import javax.validation.constraints.NotNull;
 import java.util.Arrays;
@@ -53,25 +57,19 @@ public class NewJavaSourceFilePresenter implements NewJavaSourceFileView.ActionD
     private final NewProjectExplorerPresenter projectExplorer;
     private final NewJavaSourceFileView       view;
     private final ProjectServiceClient        projectServiceClient;
-    private final DtoUnmarshallerFactory      dtoUnmarshallerFactory;
-    private final DialogFactory               dialogFactory;
+    private final DtoUnmarshallerFactory      dtoUnmarshaller;
     private final List    sourceFileTypes;
-    private final AppContext                  appContext;
 
     @Inject
     public NewJavaSourceFilePresenter(NewJavaSourceFileView view,
                                       NewProjectExplorerPresenter projectExplorer,
                                       ProjectServiceClient projectServiceClient,
-                                      DtoUnmarshallerFactory dtoUnmarshallerFactory,
-                                      DialogFactory dialogFactory,
-                                      AppContext appContext) {
-        this.appContext = appContext;
+                                      DtoUnmarshallerFactory dtoUnmarshaller) {
         sourceFileTypes = Arrays.asList(CLASS, INTERFACE, ENUM, ANNOTATION);
         this.view = view;
         this.projectExplorer = projectExplorer;
         this.projectServiceClient = projectServiceClient;
-        this.dtoUnmarshallerFactory = dtoUnmarshallerFactory;
-        this.dialogFactory = dialogFactory;
+        this.dtoUnmarshaller = dtoUnmarshaller;
         this.view.setDelegate(this);
     }
 
@@ -196,78 +194,118 @@ private String getPackageQualifier(FolderReferenceNode parent, String packageFra
 
     private void createSourceFile(final String nameWithoutExtension, final FolderReferenceNode parent, String packageFragment,
                                   final String content) {
-        final String parentPath = parent.getStorablePath() + (packageFragment.isEmpty() ? "" : '/' + packageFragment.replace('.', '/'));
-        ensureFolderExists(parentPath, new AsyncCallback() {
+        final String path = parent.getStorablePath() + (packageFragment.isEmpty() ? "" : '/' + packageFragment.replace('.', '/'));
+
+        getOrCreateFolder(path).thenPromise(createFile(nameWithoutExtension, content))
+                               .thenPromise(navigateToNode())
+                               .then(selectNode())
+                               .then(openNode());
+    }
+
+    private Function> navigateToNode() {
+        return new Function>() {
             @Override
-            public void onSuccess(ItemReference result) {
-                createAndOpenFile(nameWithoutExtension, result, parent,  content);
+            public Promise apply(ItemReference createdItem) throws FunctionException {
+                final HasStorablePath path = new StorablePath(createdItem.getPath());
+
+                return projectExplorer.getNodeByPath(path, true);
             }
+        };
+    }
 
+    private Function> createFile(final String nameWithoutExtension, final String content) {
+        return new Function>() {
             @Override
-            public void onFailure(Throwable caught) {
-                dialogFactory.createMessageDialog("", caught.getMessage(), null).show();
+            public Promise apply(ItemReference folder) throws FunctionException {
+                return AsyncPromiseHelper.createFromAsyncRequest(createFileRC(folder, nameWithoutExtension, content));
             }
-        });
+        };
     }
 
-    /** Creates folder by the specified path if it doesn't exists. */
-    private void ensureFolderExists(String path, final AsyncCallback callback) {
-        projectServiceClient.createFolder(path, new AsyncRequestCallback(dtoUnmarshallerFactory.newUnmarshaller(ItemReference.class)) {
+    private AsyncPromiseHelper.RequestCall createFileRC(final ItemReference folder, final String nameWithoutExtension, final String content) {
+        return new AsyncPromiseHelper.RequestCall() {
             @Override
-            protected void onSuccess(ItemReference result) {
-                callback.onSuccess(result);
+            public void makeCall(AsyncCallback callback) {
+                projectServiceClient.createFile(folder.getPath(),
+                                                nameWithoutExtension + ".java",
+                                                content,
+                                                null,
+                                                _callback(callback, dtoUnmarshaller.newUnmarshaller(ItemReference.class)));
             }
+        };
+    }
+
+    private Promise getOrCreateFolder(String path) {
+        return AsyncPromiseHelper.createFromAsyncRequest(getFolderRC(path))
+                                 .catchErrorPromise(catchAndCreateFolder(path));
+    }
 
+    private AsyncPromiseHelper.RequestCall getFolderRC(final String path) {
+        return new AsyncPromiseHelper.RequestCall() {
             @Override
-            protected void onFailure(Throwable exception) {
-                if (exception.getMessage().contains("already exists")) {
-                    callback.onSuccess(null);
-                } else {
-                    callback.onFailure(exception);
-                }
+            public void makeCall(AsyncCallback callback) {
+                projectServiceClient.getItem(path, _callback(callback, dtoUnmarshaller.newUnmarshaller(ItemReference.class)));
             }
-        });
+        };
     }
 
-    private void createAndOpenFile(String nameWithoutExtension, ItemReference parent, FolderReferenceNode node, String content) {
-        final CurrentProject currentProject = appContext.getCurrentProject();
-        if (currentProject == null) {
-            throw new IllegalStateException("No opened project.");
-        }
-
-        final String fileName = nameWithoutExtension + ".java";
+    @NotNull
+    protected  AsyncRequestCallback _callback(@NotNull final AsyncCallback callback, @NotNull Unmarshallable u) {
+        return new AsyncRequestCallback(u) {
+            @Override
+            protected void onSuccess(T result) {
+                callback.onSuccess(result);
+            }
 
-        projectServiceClient.createFile(parent.getPath(),
-                                        fileName,
-                                        content,
-                                        null,
-                                        createCallback(node));
+            @Override
+            protected void onFailure(Throwable e) {
+                callback.onFailure(e);
+            }
+        };
     }
 
-    protected AsyncRequestCallback createCallback(final ResourceBasedNode parent) {
-        return new AsyncRequestCallback(dtoUnmarshallerFactory.newUnmarshaller(ItemReference.class)) {
+    private Function> catchAndCreateFolder(final String path) {
+        return new Function>() {
             @Override
-            protected void onSuccess(final ItemReference itemReference) {
+            public Promise apply(PromiseError arg) throws FunctionException {
+                return createFolder(path);
+            }
+        };
+    }
 
-                HasDataObject dataObject = new HasDataObject() {
-                    @NotNull
-                    @Override
-                    public Object getData() {
-                        return itemReference;
-                    }
+    private Promise createFolder(String path) {
+        return AsyncPromiseHelper.createFromAsyncRequest(createFolderRC(path));
+    }
 
-                    @Override
-                    public void setData(@NotNull Object data) {
+    private AsyncPromiseHelper.RequestCall createFolderRC(final String path) {
+        return new AsyncPromiseHelper.RequestCall() {
+            @Override
+            public void makeCall(AsyncCallback callback) {
+                projectServiceClient.createFolder(path, _callback(callback, dtoUnmarshaller.newUnmarshaller(ItemReference.class)));
+            }
+        };
+    }
 
-                    }
-                };
+    protected Function selectNode() {
+        return new Function() {
+            @Override
+            public Node apply(Node node) throws FunctionException {
+                projectExplorer.select(node, false);
 
-                projectExplorer.reloadChildren(parent, dataObject, true, false);
+                return node;
             }
+        };
+    }
 
+    protected Function openNode() {
+        return new Function() {
             @Override
-            protected void onFailure(Throwable exception) {
-                dialogFactory.createMessageDialog("", JsonHelper.parseJsonMessage(exception.getMessage()), null).show();
+            public Node apply(Node node) throws FunctionException {
+                if (node instanceof FileReferenceNode) {
+                    ((FileReferenceNode)node).actionPerformed();
+                }
+
+                return node;
             }
         };
     }
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java
index ca0bcb23a..527658b61 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/AbstractJavaContentRootInterceptor.java
@@ -13,14 +13,15 @@
 import org.eclipse.che.api.project.shared.dto.ProjectDescriptor;
 import org.eclipse.che.api.promises.client.Promise;
 import org.eclipse.che.api.promises.client.js.Promises;
+import org.eclipse.che.commons.annotation.Nullable;
 import org.eclipse.che.ide.api.project.node.Node;
 import org.eclipse.che.ide.api.project.node.interceptor.NodeInterceptor;
 import org.eclipse.che.ide.ext.java.client.project.node.JavaNodeManager;
+import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettings;
 import org.eclipse.che.ide.ext.java.shared.ContentRoot;
 import org.eclipse.che.ide.project.node.FolderReferenceNode;
 
-import org.eclipse.che.commons.annotation.Nullable;
-import java.util.Collections;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,26 +29,35 @@
  */
 public abstract class AbstractJavaContentRootInterceptor implements NodeInterceptor {
 
-    private JavaNodeManager javaResourceNodeManager;
+    private JavaNodeManager nodeManager;
 
-    public AbstractJavaContentRootInterceptor(JavaNodeManager javaResourceNodeManager) {
-        this.javaResourceNodeManager = javaResourceNodeManager;
+    public AbstractJavaContentRootInterceptor(JavaNodeManager nodeManager) {
+        this.nodeManager = nodeManager;
     }
 
     @Override
     public Promise> intercept(Node parent, List children) {
+        List nodes = new ArrayList<>();
+
         for (Node child : children) {
             ContentRoot contentRoot = getSourceType(child);
 
             if (contentRoot == null) {
+                nodes.add(child);
                 continue;
             }
 
-            setupIcon((FolderReferenceNode)child, contentRoot);
-            setupAttribute((FolderReferenceNode)child, "javaContentRoot");
+            FolderReferenceNode oldNode = (FolderReferenceNode)child;
+
+            JavaNodeSettings settings = (JavaNodeSettings)nodeManager.getJavaSettingsProvider().getSettings();
+
+            nodes.add(nodeManager.getJavaNodeFactory().newSourceFolderNode(oldNode.getData(),
+                                                                           oldNode.getProjectDescriptor(),
+                                                                           settings,
+                                                                           contentRoot));
         }
 
-        return Promises.resolve(children);
+        return Promises.resolve(nodes);
     }
 
     @Nullable
@@ -96,25 +106,6 @@ private String _getSourceFolder(ProjectDescriptor descriptor, String srcAttribut
 
     public abstract String getResourceFolderAttribute();
 
-    private void setupIcon(FolderReferenceNode srcFolder, ContentRoot srcType) {
-        switch (srcType) {
-            case SOURCE:
-                srcFolder.getPresentation(true).setPresentableIcon(javaResourceNodeManager.getJavaNodesResources().srcFolder());
-                break;
-            case TEST_SOURCE:
-                srcFolder.getPresentation(true).setPresentableIcon(javaResourceNodeManager.getJavaNodesResources().testSrcFolder());
-                break;
-//            case RESOURCE:
-//                srcFolder.getPresentation(true).setPresentableIcon(javaResourceNodeManager.getJavaNodesResources().resourceFolder());
-            default:
-                throw new IllegalArgumentException("Wrong source type");
-        }
-    }
-
-    private void setupAttribute(FolderReferenceNode node, String attributeName) {
-        node.getAttributes().put(attributeName, Collections.singletonList("true"));
-    }
-
     @Override
     public Integer weightOrder() {
         return 1;
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/PackageNodeInterceptor.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/PackageNodeInterceptor.java
deleted file mode 100644
index b2ee1a403..000000000
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/interceptor/PackageNodeInterceptor.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012-2015 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.ext.java.client.project.interceptor;
-
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-
-import org.eclipse.che.api.project.shared.dto.ItemReference;
-import org.eclipse.che.api.promises.client.Function;
-import org.eclipse.che.api.promises.client.FunctionException;
-import org.eclipse.che.api.promises.client.Promise;
-import org.eclipse.che.api.promises.client.callback.AsyncPromiseHelper;
-import org.eclipse.che.api.promises.client.js.Promises;
-import org.eclipse.che.ide.api.project.node.Node;
-import org.eclipse.che.ide.api.project.node.interceptor.NodeInterceptor;
-import org.eclipse.che.ide.ext.java.client.project.node.JavaNodeManager;
-import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettingsProvider;
-import org.eclipse.che.ide.project.node.FolderReferenceNode;
-import org.eclipse.che.ide.project.node.ItemReferenceChainFilter;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @author Vlad Zhukovskiy
- */
-@Singleton
-public class PackageNodeInterceptor implements NodeInterceptor {
-
-    private       JavaNodeManager nodeManager;
-
-    @Inject
-    public PackageNodeInterceptor(JavaNodeManager nodeManager) {
-        this.nodeManager = nodeManager;
-    }
-
-    @Override
-    public Promise> intercept(final Node parent, final List children) {
-
-        if (parent instanceof FolderReferenceNode && ((FolderReferenceNode)parent).getAttributes().containsKey("javaContentRoot")) {
-            //we catch source folder node
-            final FolderReferenceNode sourceFolder = (FolderReferenceNode)parent;
-
-            final JavaNodeSettingsProvider settingsProvider = nodeManager.getJavaSettingsProvider();
-
-            return nodeManager.getChildren(sourceFolder.getData(),
-                                           sourceFolder.getProjectDescriptor(),
-                                           settingsProvider.getSettings(),
-                                           emptyMiddlePackageFilter()).thenPromise(new Function, Promise>>() {
-                @Override
-                public Promise> apply(List arg) throws FunctionException {
-
-                    for (Node pkg : arg) {
-                        pkg.setParent(parent);
-                        if (pkg instanceof FolderReferenceNode) {
-                            String parentPath = sourceFolder.getStorablePath();
-                            String pkgPath = ((FolderReferenceNode)pkg).getStorablePath();
-
-                            String fqnPath = pkgPath.replaceFirst(parentPath, "");
-                            if (fqnPath.startsWith("/")) {
-                                fqnPath = fqnPath.substring(1);
-                            }
-
-                            fqnPath = fqnPath.replaceAll("/", ".");
-
-                            ((FolderReferenceNode)pkg).getPresentation(false).setPresentableText(fqnPath);
-                        }
-                    }
-
-                    return Promises.resolve(arg);
-                }
-            });
-        }
-
-        return Promises.resolve(children);
-    }
-
-    private ItemReferenceChainFilter emptyMiddlePackageFilter() {
-        return new ItemReferenceChainFilter() {
-            @Override
-            public Promise> process(List referenceList) {
-
-                if (referenceList.isEmpty() || referenceList.size() > 1) {
-                    //if children in directory more than one
-                    return Promises.resolve(referenceList);
-                }
-
-                //else we have one child. check if it file
-
-                if ("file".equals(referenceList.get(0).getType())) {
-                    return Promises.resolve(referenceList);
-                }
-
-                //so start check if we have single folder, just seek all children to find non empty directory
-
-                return foundFirstNonEmpty(referenceList.get(0));
-            }
-        };
-    }
-
-    private Promise> foundFirstNonEmpty(ItemReference parent) {
-        return AsyncPromiseHelper.createFromAsyncRequest(nodeManager.getItemReferenceRC(parent.getPath()))
-                                 .thenPromise(checkForEmptiness(parent));
-    }
-
-    private Function, Promise>> checkForEmptiness(final ItemReference parent) {
-        return new Function, Promise>>() {
-            @Override
-            public Promise> apply(List children) throws FunctionException {
-                if (children.isEmpty() || children.size() > 1) {
-                    return Promises.resolve(Collections.singletonList(parent));
-                }
-
-                if ("file".equals(children.get(0).getType())) {
-                    return Promises.resolve(Collections.singletonList(parent));
-                } else {
-                    return foundFirstNonEmpty(children.get(0));
-                }
-
-            }
-        };
-    }
-
-    @Override
-    public Integer weightOrder() {
-        return 51;
-    }
-}
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/FQNComparator.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/FQNComparator.java
new file mode 100644
index 000000000..8ef402a6f
--- /dev/null
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/FQNComparator.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2012-2015 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.ext.java.client.project.node;
+
+import org.eclipse.che.ide.api.project.node.Node;
+import org.eclipse.che.ide.part.explorer.project.FoldersOnTopFilter;
+
+/**
+ * @author Vlad Zhukovskiy
+ */
+public class FQNComparator extends FoldersOnTopFilter {
+
+    @Override
+    public int compare(Node o1, Node o2) {
+        if (o1 instanceof PackageNode && o2 instanceof PackageNode) {
+            return ((PackageNode)o1).getDisplayFqn().compareTo(((PackageNode)o2).getDisplayFqn());
+        }
+
+        return super.compare(o1, o2);
+    }
+}
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java
index 3a6991139..e3d4482e6 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeFactory.java
@@ -18,6 +18,7 @@
 import org.eclipse.che.ide.ext.java.client.project.node.jar.JarFileNode;
 import org.eclipse.che.ide.ext.java.client.project.node.jar.JarFolderNode;
 import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettings;
+import org.eclipse.che.ide.ext.java.shared.ContentRoot;
 import org.eclipse.che.ide.ext.java.shared.Jar;
 import org.eclipse.che.ide.ext.java.shared.JarEntry;
 
@@ -51,4 +52,9 @@ PackageNode newPackageNode(@NotNull ItemReference itemReference,
     JavaFileNode newJavaFileNode(@NotNull ItemReference itemReference,
                                  @NotNull ProjectDescriptor projectDescriptor,
                                  @NotNull JavaNodeSettings nodeSettings);
+
+    SourceFolderNode newSourceFolderNode(@NotNull ItemReference itemReference,
+                                         @NotNull ProjectDescriptor projectDescriptor,
+                                         @NotNull JavaNodeSettings nodeSettings,
+                                         @NotNull ContentRoot contentRootType);
 }
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java
index 6576bca4e..ec59e044d 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/JavaNodeManager.java
@@ -24,6 +24,7 @@
 import org.eclipse.che.api.promises.client.Promise;
 import org.eclipse.che.api.promises.client.callback.AsyncPromiseHelper;
 import org.eclipse.che.api.promises.client.callback.AsyncPromiseHelper.RequestCall;
+import org.eclipse.che.api.promises.client.js.Promises;
 import org.eclipse.che.ide.api.project.node.HasProjectDescriptor;
 import org.eclipse.che.ide.api.project.node.Node;
 import org.eclipse.che.ide.api.project.node.settings.NodeSettings;
@@ -46,7 +47,9 @@
 
 import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
+import java.util.ListIterator;
 import java.util.Map;
 
 /**
@@ -61,7 +64,7 @@ public class JavaNodeManager extends NodeManager {
     private JavaNodeSettingsProvider settingsProvider;
 
     public static final String JAVA_MIME_TYPE = "text/x-java-source";
-    public static final String JAVA_EXT = ".java";
+    public static final String JAVA_EXT       = ".java";
 
     @Inject
     public JavaNodeManager(NodeFactory nodeFactory,
@@ -89,7 +92,7 @@ public JavaNodeManager(NodeFactory nodeFactory,
         this.settingsProvider = (JavaNodeSettingsProvider)settingsProviderMap.get("java");
     }
 
-    /** **************** External Libraries operations ********************* */
+    /** ************** External Libraries operations ********************* */
 
     @NotNull
     public Promise> getExternalLibraries(@NotNull ProjectDescriptor descriptor) {
@@ -109,7 +112,7 @@ public void makeCall(AsyncCallback> callback) {
 
     @NotNull
     private Function, List> createJarNodes(@NotNull final ProjectDescriptor descriptor,
-                                                            @NotNull final NodeSettings nodeSettings) {
+                                                           @NotNull final NodeSettings nodeSettings) {
         return new Function, List>() {
             @Override
             public List apply(List jars) throws FunctionException {
@@ -125,7 +128,7 @@ public List apply(List jars) throws FunctionException {
         };
     }
 
-    /** **************** Jar Library Children operations ********************* */
+    /** ************** Jar Library Children operations ********************* */
 
     @NotNull
     public Promise> getJarLibraryChildren(@NotNull ProjectDescriptor descriptor, int libId, @NotNull NodeSettings nodeSettings) {
@@ -145,7 +148,8 @@ public void makeCall(AsyncCallback> callback) {
     }
 
     @NotNull
-    public Promise> getJarChildren(@NotNull ProjectDescriptor descriptor, int libId, @NotNull String path, @NotNull NodeSettings nodeSettings) {
+    public Promise> getJarChildren(@NotNull ProjectDescriptor descriptor, int libId, @NotNull String path,
+                                              @NotNull NodeSettings nodeSettings) {
         return AsyncPromiseHelper.createFromAsyncRequest(getChildrenRC(descriptor.getPath(), libId, path))
                                  .then(createJarEntryNodes(libId, descriptor, nodeSettings));
     }
@@ -163,7 +167,7 @@ public void makeCall(AsyncCallback> callback) {
 
     @NotNull
     private Function, List> createJarEntryNodes(final int libId, @NotNull final ProjectDescriptor descriptor,
-                                                                      @NotNull final NodeSettings nodeSettings) {
+                                                                     @NotNull final NodeSettings nodeSettings) {
         return new Function, List>() {
             @Override
             public List apply(List entries) throws FunctionException {
@@ -193,7 +197,7 @@ private Node createNode(JarEntry entry, int id, ProjectDescriptor descriptor, No
         return null;
     }
 
-    /** **************** Common methods ********************* */
+    /** ************** Common methods ********************* */
 
     public static boolean isJavaProject(Node node) {
         if (!(node instanceof HasProjectDescriptor)) {
@@ -277,4 +281,94 @@ protected void onFailure(Throwable exception) {
             }
         });
     }
+
+    @Override
+    public Function, Promise>> filterItemReference() {
+        return new Function, Promise>>() {
+            @Override
+            public Promise> apply(List referenceList) throws FunctionException {
+
+                final List collector = new ArrayList<>();
+
+                Promise promise = Promises.resolve(null);
+
+                return getNonEmptyChildren(promise, referenceList.listIterator(), collector)
+                        .thenPromise(new Function>>() {
+                            @Override
+                            public Promise> apply(Void arg) throws FunctionException {
+                                return Promises.resolve(collector);
+                            }
+                        });
+            }
+        };
+    }
+
+    private Promise getNonEmptyChildren(Promise promise,
+                                              ListIterator iterator,
+                                              final List collector) {
+        if (!iterator.hasNext()) {
+            return promise;
+        }
+
+        final ItemReference itemReference = iterator.next();
+
+        if (itemReference.getType().equals("file")) {
+            collector.add(itemReference);
+            return getNonEmptyChildren(promise, iterator, collector);
+        }
+
+        final Promise derivedPromise = promise.thenPromise(new Function>() {
+            @Override
+            public Promise apply(Void arg) throws FunctionException {
+                return foundFirstNonEmpty(itemReference).thenPromise(new Function, Promise>() {
+                    @Override
+                    public Promise apply(List arg) throws FunctionException {
+                        collector.addAll(arg);
+
+                        return Promises.resolve(null);
+                    }
+                });
+            }
+        });
+
+        return getNonEmptyChildren(derivedPromise, iterator, collector);
+    }
+
+    @Override
+    protected Function, Promise>> sortNodes() {
+        return new Function, Promise>>() {
+            @Override
+            public Promise> apply(List nodes) throws FunctionException {
+                Collections.sort(nodes, new FQNComparator());
+                return Promises.resolve(nodes);
+            }
+        };
+    }
+
+    private Promise> foundFirstNonEmpty(ItemReference parent) {
+        return AsyncPromiseHelper.createFromAsyncRequest(getItemReferenceRC(parent.getPath()))
+                                 .thenPromise(checkForEmptiness(parent));
+    }
+
+    private Function, Promise>> checkForEmptiness(final ItemReference parent) {
+        return new Function, Promise>>() {
+            @Override
+            public Promise> apply(List children) throws FunctionException {
+                if (children.isEmpty() || children.size() > 1) {
+                    List list = new ArrayList<>();
+                    list.add(parent);
+                    return Promises.resolve(list);
+                }
+
+                if ("file".equals(children.get(0).getType())) {
+                    List list = new ArrayList<>();
+                    list.add(parent);
+                    return Promises.resolve(list);
+                } else {
+                    return foundFirstNonEmpty(children.get(0));
+                }
+
+            }
+        };
+    }
 }
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java
index 4f938bbcd..f2c12cfa7 100644
--- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/PackageNode.java
@@ -16,23 +16,15 @@
 
 import org.eclipse.che.api.project.shared.dto.ItemReference;
 import org.eclipse.che.api.project.shared.dto.ProjectDescriptor;
-import org.eclipse.che.api.promises.client.Function;
-import org.eclipse.che.api.promises.client.FunctionException;
 import org.eclipse.che.api.promises.client.Promise;
-import org.eclipse.che.api.promises.client.callback.AsyncPromiseHelper;
-import org.eclipse.che.api.promises.client.js.Promises;
 import org.eclipse.che.ide.api.project.node.HasStorablePath;
 import org.eclipse.che.ide.api.project.node.Node;
 import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettings;
 import org.eclipse.che.ide.project.node.FolderReferenceNode;
-import org.eclipse.che.ide.project.node.ItemReferenceChainFilter;
 import org.eclipse.che.ide.project.node.resource.ItemReferenceProcessor;
 import org.eclipse.che.ide.ui.smartTree.presentation.NodePresentation;
-import org.eclipse.che.ide.util.loging.Log;
 
 import javax.validation.constraints.NotNull;
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 /**
@@ -58,82 +50,7 @@ public PackageNode(@Assisted ItemReference itemReference,
     protected Promise> getChildrenImpl() {
         return nodeManager.getChildren(getData(),
                                        getProjectDescriptor(),
-                                       getSettings(),
-                                       emptyMiddlePackageFilter());
-    }
-
-    private ItemReferenceChainFilter emptyMiddlePackageFilter() {
-        return new ItemReferenceChainFilter() {
-            @Override
-            public Promise> process(List referenceList) {
-
-                if (referenceList.isEmpty() || referenceList.size() > 1) {
-                    //if children in directory more than one
-
-                    final List files = new ArrayList<>();
-                    List otherNodes = new ArrayList<>();
-                    //filter folders to proceed deep child
-                    for (ItemReference itemReference : referenceList) {
-                        if ("file".equals(itemReference.getType())) {
-                            files.add(itemReference);
-                        } else {
-                            otherNodes.add(itemReference);
-                        }
-                    }
-
-                    if (!otherNodes.isEmpty()) {
-                        if (otherNodes.size() == 1) {
-                            return foundFirstNonEmpty(otherNodes.get(0)).thenPromise(new Function, Promise>>() {
-                                @Override
-                                public Promise> apply(List arg) throws FunctionException {
-                                    arg.addAll(files);
-                                    return Promises.resolve(arg);
-                                }
-                            });
-                        }
-                    }
-
-                    return Promises.resolve(referenceList);
-                }
-
-                //else we have one child. check if it file
-
-                if ("file".equals(referenceList.get(0).getType())) {
-                    return Promises.resolve(referenceList);
-                }
-
-                //so start check if we have single folder, just seek all children to find non empty directory
-
-                return foundFirstNonEmpty(referenceList.get(0));
-            }
-        };
-    }
-
-    private Promise> foundFirstNonEmpty(ItemReference parent) {
-        return AsyncPromiseHelper.createFromAsyncRequest(nodeManager.getItemReferenceRC(parent.getPath()))
-                                 .thenPromise(checkForEmptiness(parent));
-    }
-
-    private Function, Promise>> checkForEmptiness(final ItemReference parent) {
-        return new Function, Promise>>() {
-            @Override
-            public Promise> apply(List children) throws FunctionException {
-                if (children.isEmpty() || children.size() > 1) {
-                    List list = new ArrayList<>();
-                    list.add(parent);
-                    return Promises.resolve(list);
-                }
-
-                if ("file".equals(children.get(0).getType())) {
-                    List list = new ArrayList<>();
-                    list.add(parent);
-                    return Promises.resolve(list);
-                } else {
-                    return foundFirstNonEmpty(children.get(0));
-                }
-
-            }
-        };
+                                       getSettings());
     }
 
     @Override
@@ -142,7 +59,12 @@ public void updatePresentation(@NotNull NodePresentation presentation) {
         presentation.setPresentableIcon(nodeManager.getJavaNodesResources().packageFolder());
     }
 
-    private String getDisplayFqn() {
+    @Override
+    public String getName() {
+        return getDisplayFqn();
+    }
+
+    public String getDisplayFqn() {
         Node parent = getParent();
 
         if (parent != null && parent instanceof HasStorablePath) {
@@ -167,7 +89,7 @@ public String getQualifiedName() {
         Node parent = getParent();
 
         while (parent != null) {
-            if (parent instanceof FolderReferenceNode && ((FolderReferenceNode)parent).getAttributes().containsKey("javaContentRoot")) {
+            if (parent instanceof SourceFolderNode) {
                 String parentStorablePath = ((FolderReferenceNode)parent).getStorablePath();
                 String currentStorablePath = getStorablePath();
 
diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/SourceFolderNode.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/SourceFolderNode.java
new file mode 100644
index 000000000..d3e3dd345
--- /dev/null
+++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/project/node/SourceFolderNode.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2012-2015 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.ext.java.client.project.node;
+
+import com.google.inject.Inject;
+import com.google.inject.assistedinject.Assisted;
+import com.google.web.bindery.event.shared.EventBus;
+
+import org.eclipse.che.api.project.shared.dto.ItemReference;
+import org.eclipse.che.api.project.shared.dto.ProjectDescriptor;
+import org.eclipse.che.api.promises.client.Promise;
+import org.eclipse.che.ide.api.project.node.Node;
+import org.eclipse.che.ide.ext.java.client.project.settings.JavaNodeSettings;
+import org.eclipse.che.ide.ext.java.shared.ContentRoot;
+import org.eclipse.che.ide.project.node.FolderReferenceNode;
+import org.eclipse.che.ide.project.node.resource.ItemReferenceProcessor;
+import org.eclipse.che.ide.ui.smartTree.presentation.NodePresentation;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * Node that represent a java source folder.
+ * It may be source, test source, resource and test resource folder type.
+ *
+ * @author Vlad Zhukovskiy
+ */
+public class SourceFolderNode extends FolderReferenceNode {
+    private final ContentRoot     contentRootType;
+    private final JavaNodeManager nodeManager;
+
+    @Inject
+    public SourceFolderNode(@Assisted ItemReference itemReference,
+                            @Assisted ProjectDescriptor projectDescriptor,
+                            @Assisted JavaNodeSettings nodeSettings,
+                            @Assisted ContentRoot contentRootType,
+                            @NotNull EventBus eventBus,
+                            @NotNull JavaNodeManager nodeManager,
+                            @NotNull ItemReferenceProcessor resourceProcessor) {
+        super(itemReference, projectDescriptor, nodeSettings, eventBus, nodeManager, resourceProcessor);
+        this.contentRootType = contentRootType;
+        this.nodeManager = nodeManager;
+    }
+
+    public ContentRoot getContentRootType() {
+        return contentRootType;
+    }
+
+    @Override
+    protected Promise> getChildrenImpl() {
+        return nodeManager.getChildren(getData(), getProjectDescriptor(), getSettings());
+    }
+
+    @Override
+    public void updatePresentation(@NotNull NodePresentation presentation) {
+        switch (contentRootType) {
+            case SOURCE:
+                presentation.setPresentableIcon(nodeManager.getJavaNodesResources().srcFolder());
+                break;
+            case TEST_SOURCE:
+                presentation.setPresentableIcon(nodeManager.getJavaNodesResources().testSrcFolder());
+                break;
+            case RESOURCE:
+            case TEST_RESOURCE:
+                presentation.setPresentableIcon(nodeManager.getJavaNodesResources().resourceFolder());
+        }
+
+        presentation.setPresentableText(getData().getName());
+    }
+}

From 173900a08f0a1cc606b4d97f22e6063e6c86b416 Mon Sep 17 00:00:00 2001
From: Roman Iuvshin 
Date: Wed, 16 Sep 2015 18:09:50 +0000
Subject: [PATCH 039/164] RELEASE:Set tag of parent pom

---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index a8a27d144..c3ff72726 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
     
         maven-depmgt-pom
         org.eclipse.che.depmgt
-        3.12.3-SNAPSHOT
+        3.12.3
     
     org.eclipse.che.plugin
     che-plugin-parent

From 41f03a52ddaca798ddd8dddd6d7b066cc5a4090a Mon Sep 17 00:00:00 2001
From: Roman Iuvshin 
Date: Wed, 16 Sep 2015 18:27:36 +0000
Subject: [PATCH 040/164] [maven-release-plugin] prepare release 3.12.3

---
 plugin-angularjs/api/client/pom.xml                          | 2 +-
 plugin-angularjs/api/pom.xml                                 | 2 +-
 plugin-angularjs/api/server/pom.xml                          | 2 +-
 plugin-angularjs/completion/dto-gen/pom.xml                  | 2 +-
 plugin-angularjs/completion/dto/pom.xml                      | 2 +-
 plugin-angularjs/completion/parser/pom.xml                   | 2 +-
 plugin-angularjs/completion/pom.xml                          | 2 +-
 plugin-angularjs/core/client/pom.xml                         | 2 +-
 plugin-angularjs/core/pom.xml                                | 2 +-
 plugin-angularjs/core/server/pom.xml                         | 2 +-
 plugin-angularjs/pom.xml                                     | 2 +-
 plugin-angularjs/templates/angular-seed/pom.xml              | 2 +-
 plugin-angularjs/templates/gulp-angularjs-starter/pom.xml    | 2 +-
 plugin-angularjs/templates/pom.xml                           | 2 +-
 plugin-angularjs/templates/yeoman/pom.xml                    | 2 +-
 plugin-bower/che-plugin-bower-builder/pom.xml                | 2 +-
 plugin-bower/che-plugin-bower-ext-client/pom.xml             | 2 +-
 plugin-bower/pom.xml                                         | 2 +-
 plugin-builder/che-plugin-builder-ext-builder/pom.xml        | 2 +-
 plugin-builder/pom.xml                                       | 2 +-
 plugin-codemirror/che-plugin-codemirror-base-init/pom.xml    | 2 +-
 plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +-
 plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml  | 2 +-
 plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml    | 2 +-
 plugin-codemirror/che-plugin-codemirror-jso/pom.xml          | 2 +-
 plugin-codemirror/pom.xml                                    | 2 +-
 plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml                    | 2 +-
 plugin-cpp/pom.xml                                           | 2 +-
 plugin-docker/che-plugin-docker-client/pom.xml               | 2 +-
 plugin-docker/che-plugin-docker-ext-client/pom.xml           | 2 +-
 plugin-docker/che-plugin-docker-recipes/pom.xml              | 2 +-
 plugin-docker/che-plugin-docker-runner/pom.xml               | 2 +-
 plugin-docker/pom.xml                                        | 2 +-
 plugin-git/che-plugin-git-ext-git/pom.xml                    | 2 +-
 plugin-git/che-plugin-git-provider-che/pom.xml               | 2 +-
 plugin-git/pom.xml                                           | 2 +-
 plugin-github/che-plugin-github-ext-github/pom.xml           | 2 +-
 plugin-github/che-plugin-github-oauth2/pom.xml               | 2 +-
 plugin-github/che-plugin-github-provider-github/pom.xml      | 2 +-
 plugin-github/pom.xml                                        | 2 +-
 plugin-go/che-plugin-go-ext-go/pom.xml                       | 2 +-
 plugin-go/pom.xml                                            | 2 +-
 plugin-grunt/che-plugin-grunt-builder/pom.xml                | 2 +-
 plugin-grunt/che-plugin-grunt-ext-client/pom.xml             | 2 +-
 plugin-grunt/che-plugin-grunt-runner/pom.xml                 | 2 +-
 plugin-grunt/pom.xml                                         | 2 +-
 plugin-gulp/che-plugin-gulp-runner/pom.xml                   | 2 +-
 plugin-gulp/pom.xml                                          | 2 +-
 plugin-help/che-plugin-help-ext-client/pom.xml               | 2 +-
 plugin-help/pom.xml                                          | 2 +-
 plugin-java/che-plugin-java-ant-tools/pom.xml                | 2 +-
 plugin-java/che-plugin-java-builder-ant/pom.xml              | 2 +-
 plugin-java/che-plugin-java-builder-maven/pom.xml            | 2 +-
 plugin-java/che-plugin-java-ext-ant/pom.xml                  | 2 +-
 plugin-java/che-plugin-java-ext-debugger-java/pom.xml        | 2 +-
 plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml   | 2 +-
 plugin-java/che-plugin-java-ext-java/pom.xml                 | 2 +-
 plugin-java/che-plugin-java-ext-maven/pom.xml                | 2 +-
 plugin-java/che-plugin-java-generator-archetype/pom.xml      | 2 +-
 plugin-java/che-plugin-java-jdt-core-repack/pom.xml          | 2 +-
 plugin-java/che-plugin-java-jseditor/pom.xml                 | 2 +-
 plugin-java/che-plugin-java-maven-tools/pom.xml              | 2 +-
 plugin-java/che-plugin-java-runner-webapps/pom.xml           | 2 +-
 plugin-java/pom.xml                                          | 2 +-
 plugin-npm/che-plugin-npm-builder/pom.xml                    | 2 +-
 plugin-npm/che-plugin-npm-ext-client/pom.xml                 | 2 +-
 plugin-npm/pom.xml                                           | 2 +-
 plugin-orion/che-plugin-orion-editor/pom.xml                 | 2 +-
 plugin-orion/pom.xml                                         | 2 +-
 plugin-php/che-plugin-php-ext-php/pom.xml                    | 2 +-
 plugin-php/pom.xml                                           | 2 +-
 plugin-python/che-plugin-python-ext-python/pom.xml           | 2 +-
 plugin-python/pom.xml                                        | 2 +-
 plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml                 | 2 +-
 plugin-ruby/pom.xml                                          | 2 +-
 plugin-runner/che-plugin-runner-ext-runner/pom.xml           | 2 +-
 plugin-runner/pom.xml                                        | 2 +-
 plugin-sdk/che-plugin-sdk-env-local/pom.xml                  | 2 +-
 plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml                | 2 +-
 plugin-sdk/che-plugin-sdk-runner/pom.xml                     | 2 +-
 plugin-sdk/che-plugin-sdk-tools/pom.xml                      | 2 +-
 plugin-sdk/pom.xml                                           | 2 +-
 plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml                 | 2 +-
 plugin-ssh/che-plugin-ssh-git-native/pom.xml                 | 2 +-
 plugin-ssh/pom.xml                                           | 2 +-
 plugin-svn/che-plugin-svn-ext-subversion/pom.xml             | 2 +-
 plugin-svn/pom.xml                                           | 2 +-
 plugin-tour/che-plugin-tour-dto-gen/pom.xml                  | 2 +-
 plugin-tour/che-plugin-tour-dto/pom.xml                      | 2 +-
 plugin-tour/che-plugin-tour-ext-client/pom.xml               | 2 +-
 plugin-tour/che-plugin-tour-hopscotch/pom.xml                | 2 +-
 plugin-tour/che-plugin-tour-server/pom.xml                   | 2 +-
 plugin-tour/pom.xml                                          | 2 +-
 plugin-web/che-plugin-web-ext-web/pom.xml                    | 2 +-
 plugin-web/pom.xml                                           | 2 +-
 plugin-yeoman/che-plugin-yeoman-builder/pom.xml              | 2 +-
 plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml           | 2 +-
 plugin-yeoman/pom.xml                                        | 2 +-
 pom.xml                                                      | 4 ++--
 99 files changed, 100 insertions(+), 100 deletions(-)

diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml
index e6ddc0a58..d7a04cbf6 100644
--- a/plugin-angularjs/api/client/pom.xml
+++ b/plugin-angularjs/api/client/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-api
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-api-client
     jar
diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml
index d88be7035..bcc9dae1b 100644
--- a/plugin-angularjs/api/pom.xml
+++ b/plugin-angularjs/api/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-api
     pom
diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml
index 4caee53e6..dc2f5eaef 100644
--- a/plugin-angularjs/api/server/pom.xml
+++ b/plugin-angularjs/api/server/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-api
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-api-server
     jar
diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml
index 5417624a7..2be4e8ea4 100644
--- a/plugin-angularjs/completion/dto-gen/pom.xml
+++ b/plugin-angularjs/completion/dto-gen/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-completion
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-completion-dto-gen
     jar
diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml
index f6085af51..52781f2fb 100644
--- a/plugin-angularjs/completion/dto/pom.xml
+++ b/plugin-angularjs/completion/dto/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-completion
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-completion-dto
     jar
diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml
index f8b70af31..eeaba5dfc 100644
--- a/plugin-angularjs/completion/parser/pom.xml
+++ b/plugin-angularjs/completion/parser/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-completion
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-completion-parser
     jar
diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml
index dd5fbb1d8..ddb70502a 100644
--- a/plugin-angularjs/completion/pom.xml
+++ b/plugin-angularjs/completion/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-completion
     pom
diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml
index f46e5585a..25229c7af 100644
--- a/plugin-angularjs/core/client/pom.xml
+++ b/plugin-angularjs/core/client/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-core
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-core-client
     jar
diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml
index c5927bc2c..669f018b6 100644
--- a/plugin-angularjs/core/pom.xml
+++ b/plugin-angularjs/core/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-core
     pom
diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml
index 41dc4c265..46ff1c815 100644
--- a/plugin-angularjs/core/server/pom.xml
+++ b/plugin-angularjs/core/server/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-core
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-core-server
     jar
diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml
index 54c9b61a8..7163d55cd 100644
--- a/plugin-angularjs/pom.xml
+++ b/plugin-angularjs/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     angularjs-parent
diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml
index aa7f0914a..3fa2150bc 100644
--- a/plugin-angularjs/templates/angular-seed/pom.xml
+++ b/plugin-angularjs/templates/angular-seed/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-templates
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-template-angular-seed
     jar
diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml
index 5fc766f30..e9dbef47e 100644
--- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml
+++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-templates
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-template-gulp-angularjs-starter
     jar
diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml
index ca5713b3b..ab410d9fd 100644
--- a/plugin-angularjs/templates/pom.xml
+++ b/plugin-angularjs/templates/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-templates
     pom
diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml
index e615f37d0..2a834ea29 100644
--- a/plugin-angularjs/templates/yeoman/pom.xml
+++ b/plugin-angularjs/templates/yeoman/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-templates
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     angularjs-template-yeoman
     jar
diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml
index a655c872c..4f5a1c0b5 100644
--- a/plugin-bower/che-plugin-bower-builder/pom.xml
+++ b/plugin-bower/che-plugin-bower-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-bower-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-bower-builder
     jar
diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml
index 518b7f404..96f4cc2b1 100644
--- a/plugin-bower/che-plugin-bower-ext-client/pom.xml
+++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-bower-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-bower-ext-client
     jar
diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml
index e5d760ae8..f4cad49f9 100644
--- a/plugin-bower/pom.xml
+++ b/plugin-bower/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-bower-parent
diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml
index 07355edc8..1fb1edc33 100644
--- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml
+++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-builder-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-builder-ext-builder
     jar
diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml
index f2780076a..53edbcead 100644
--- a/plugin-builder/pom.xml
+++ b/plugin-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-builder-parent
diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml
index 0d454d30f..bf387705e 100644
--- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-codemirror-base-init
     jar
diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml
index 2b7f77edb..128490de4 100644
--- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-codemirror-editorwidget
     jar
diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml
index 50685095e..4bc43cb8d 100644
--- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-codemirror-highlighter
     Che Plugin :: CodeMirror :: Highlighter
diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml
index 935683f97..e3e974885 100644
--- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-codemirror-ide-style
     jar
diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml
index 6f5812e33..764eaa476 100644
--- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-codemirror-jso
     jar
diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml
index e8bb0571a..dfb8d1108 100644
--- a/plugin-codemirror/pom.xml
+++ b/plugin-codemirror/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-codemirror-parent
diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml
index 3fa750fb0..9b05d28ed 100644
--- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml
+++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-cpp-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-cpp-ext-cpp
     jar
diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml
index 9014bf2c0..9df334641 100644
--- a/plugin-cpp/pom.xml
+++ b/plugin-cpp/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-cpp-parent
diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml
index 468c4b960..98953a9c7 100644
--- a/plugin-docker/che-plugin-docker-client/pom.xml
+++ b/plugin-docker/che-plugin-docker-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-docker-client
     jar
diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml
index bdb2572bc..f2a728efc 100644
--- a/plugin-docker/che-plugin-docker-ext-client/pom.xml
+++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-docker-ext-client
     jar
diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml
index 9752dc7d1..c63d73614 100644
--- a/plugin-docker/che-plugin-docker-recipes/pom.xml
+++ b/plugin-docker/che-plugin-docker-recipes/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-docker-recipes
     jar
diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml
index 31e826438..5957fc397 100644
--- a/plugin-docker/che-plugin-docker-runner/pom.xml
+++ b/plugin-docker/che-plugin-docker-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-docker-runner
     jar
diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml
index d337ee129..08e06c53e 100644
--- a/plugin-docker/pom.xml
+++ b/plugin-docker/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-docker-parent
diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml
index 77469337d..d9af8cd4d 100644
--- a/plugin-git/che-plugin-git-ext-git/pom.xml
+++ b/plugin-git/che-plugin-git-ext-git/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-git-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-git-ext-git
     jar
diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml
index fb00e71a2..4bc0a3669 100644
--- a/plugin-git/che-plugin-git-provider-che/pom.xml
+++ b/plugin-git/che-plugin-git-provider-che/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-git-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-git-provider-che
     Che Plugin :: Git :: Che credential provider
diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml
index 9fd5305c0..4abce1e18 100644
--- a/plugin-git/pom.xml
+++ b/plugin-git/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-git-parent
diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml
index 649fc91a9..a31791581 100644
--- a/plugin-github/che-plugin-github-ext-github/pom.xml
+++ b/plugin-github/che-plugin-github-ext-github/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-github-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-github-ext-github
     jar
diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml
index 47b5bfe9c..c81eef3bc 100644
--- a/plugin-github/che-plugin-github-oauth2/pom.xml
+++ b/plugin-github/che-plugin-github-oauth2/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-github-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-github-oauth2
     jar
diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml
index 274a61c38..6ddfe93e5 100644
--- a/plugin-github/che-plugin-github-provider-github/pom.xml
+++ b/plugin-github/che-plugin-github-provider-github/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-github-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-github-provider-github
     Che Plugin :: Github :: Credential provider
diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml
index 88e0238d7..f88bc2126 100644
--- a/plugin-github/pom.xml
+++ b/plugin-github/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-github-parent
diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml
index fcd56de68..0f680a39b 100644
--- a/plugin-go/che-plugin-go-ext-go/pom.xml
+++ b/plugin-go/che-plugin-go-ext-go/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-go-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-go-ext-go
     jar
diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml
index 88f09756e..3e93c3f90 100644
--- a/plugin-go/pom.xml
+++ b/plugin-go/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-go-parent
diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml
index e5fbea5ff..cbb8c47ed 100644
--- a/plugin-grunt/che-plugin-grunt-builder/pom.xml
+++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-grunt-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-grunt-builder
     jar
diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
index 9e65cdfb8..6a11acca9 100644
--- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
+++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-grunt-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-grunt-ext-client
     jar
diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml
index 76a7914b0..407b51047 100644
--- a/plugin-grunt/che-plugin-grunt-runner/pom.xml
+++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-grunt-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-grunt-runner
     jar
diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml
index 620dc5fa1..0005eccac 100644
--- a/plugin-grunt/pom.xml
+++ b/plugin-grunt/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-grunt-parent
diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml
index 6fb06ac4a..4192119ad 100644
--- a/plugin-gulp/che-plugin-gulp-runner/pom.xml
+++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-gulp-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-gulp-runner
     jar
diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml
index c96ae1e94..4a6a5060f 100644
--- a/plugin-gulp/pom.xml
+++ b/plugin-gulp/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-gulp-parent
diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml
index 9091db60c..7151b1877 100644
--- a/plugin-help/che-plugin-help-ext-client/pom.xml
+++ b/plugin-help/che-plugin-help-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-help-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-help-ext-client
     jar
diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml
index 1a3e05b5d..bba09bcde 100644
--- a/plugin-help/pom.xml
+++ b/plugin-help/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-help-parent
diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml
index ae0bbe48c..26f7f5b5b 100644
--- a/plugin-java/che-plugin-java-ant-tools/pom.xml
+++ b/plugin-java/che-plugin-java-ant-tools/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-ant-tools
     jar
diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml
index 046adb5eb..de30fadb0 100644
--- a/plugin-java/che-plugin-java-builder-ant/pom.xml
+++ b/plugin-java/che-plugin-java-builder-ant/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-builder-ant
     jar
diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml
index be09cb9fa..fd3315bc1 100644
--- a/plugin-java/che-plugin-java-builder-maven/pom.xml
+++ b/plugin-java/che-plugin-java-builder-maven/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-builder-maven
     jar
diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml
index 6197e9fad..c93cc5b0b 100644
--- a/plugin-java/che-plugin-java-ext-ant/pom.xml
+++ b/plugin-java/che-plugin-java-ext-ant/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-ext-ant
     jar
diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml
index e8ffd7095..1b03028aa 100644
--- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml
+++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-ext-debugger-java
     jar
diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml
index 1b6db1d67..fba50379d 100644
--- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml
+++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-ext-java-codeassistant
     jar
diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml
index 8d515af3d..94fc37055 100644
--- a/plugin-java/che-plugin-java-ext-java/pom.xml
+++ b/plugin-java/che-plugin-java-ext-java/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-ext-java
     jar
diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml
index 296aaa4ac..7aeb5d05f 100644
--- a/plugin-java/che-plugin-java-ext-maven/pom.xml
+++ b/plugin-java/che-plugin-java-ext-maven/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-ext-maven
     jar
diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml
index 66fd09415..1922a9426 100644
--- a/plugin-java/che-plugin-java-generator-archetype/pom.xml
+++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-generator-archetype
     jar
diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml
index c1b9ea0a2..b86c01137 100644
--- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml
+++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-jdt-core-repack
     jar
diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml
index d93a44f63..5247a8307 100644
--- a/plugin-java/che-plugin-java-jseditor/pom.xml
+++ b/plugin-java/che-plugin-java-jseditor/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-jseditor
     Che Plugin :: Java :: JsEditor
diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml
index eb9730004..13ade2cbe 100644
--- a/plugin-java/che-plugin-java-maven-tools/pom.xml
+++ b/plugin-java/che-plugin-java-maven-tools/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-maven-tools
     jar
diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml
index 6cb724474..016f0232a 100644
--- a/plugin-java/che-plugin-java-runner-webapps/pom.xml
+++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-java-runner-webapps
     jar
diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml
index 6eacbd4f2..170f58f0e 100644
--- a/plugin-java/pom.xml
+++ b/plugin-java/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-java-parent
diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml
index 1d54db32a..aaf7d1318 100644
--- a/plugin-npm/che-plugin-npm-builder/pom.xml
+++ b/plugin-npm/che-plugin-npm-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-npm-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-npm-builder
     jar
diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml
index cafc252bc..06f39819d 100644
--- a/plugin-npm/che-plugin-npm-ext-client/pom.xml
+++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-npm-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-npm-ext-client
     jar
diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml
index 02c32f132..aa841675f 100644
--- a/plugin-npm/pom.xml
+++ b/plugin-npm/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-npm-parent
diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml
index c220a7c2e..ddd5106cd 100644
--- a/plugin-orion/che-plugin-orion-editor/pom.xml
+++ b/plugin-orion/che-plugin-orion-editor/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-orion-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-orion-editor
diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml
index bd489bed9..96392e413 100644
--- a/plugin-orion/pom.xml
+++ b/plugin-orion/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-orion-parent
diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml
index 618a42bee..2327dd9ed 100644
--- a/plugin-php/che-plugin-php-ext-php/pom.xml
+++ b/plugin-php/che-plugin-php-ext-php/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-php-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-php-ext-php
     jar
diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml
index 3010702c9..8b60127f3 100644
--- a/plugin-php/pom.xml
+++ b/plugin-php/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-php-parent
diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml
index 640b43e77..5e913f82d 100644
--- a/plugin-python/che-plugin-python-ext-python/pom.xml
+++ b/plugin-python/che-plugin-python-ext-python/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-python-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-python-ext-python
     jar
diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml
index f0c7594f6..fa092ca92 100644
--- a/plugin-python/pom.xml
+++ b/plugin-python/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-python-parent
diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml
index 03f31f4ec..2d416f84c 100644
--- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml
+++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-ruby-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-ruby-ext-ruby
     jar
diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml
index 6882479a4..2e6415250 100644
--- a/plugin-ruby/pom.xml
+++ b/plugin-ruby/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-ruby-parent
diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml
index 93f92c8e0..5a2436713 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml
+++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-runner-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-runner-ext-runner
     jar
diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml
index 2cb0abad7..1189d6de0 100644
--- a/plugin-runner/pom.xml
+++ b/plugin-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-runner-parent
diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml
index d8c5232ff..58ab4d2f6 100644
--- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-sdk-env-local
     jar
diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml
index ee07af390..dafe4df9d 100644
--- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-sdk-ext-plugins
     jar
diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml
index 2ab3f5d6c..7311337fc 100644
--- a/plugin-sdk/che-plugin-sdk-runner/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-sdk-runner
     jar
diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml
index 9a406bec6..ed32ea30e 100644
--- a/plugin-sdk/che-plugin-sdk-tools/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-sdk-tools
     jar
diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml
index 86e5e79b9..8b2a0389b 100644
--- a/plugin-sdk/pom.xml
+++ b/plugin-sdk/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-sdk-parent
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml
index 89976b0bb..bc0df72b6 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-ssh-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-ssh-ext-sshkey
     jar
diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml
index f49ff7f8d..8cb7baf19 100644
--- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml
+++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-ssh-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-ssh-git-native
     jar
diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml
index 3f7a36977..8baf2488d 100644
--- a/plugin-ssh/pom.xml
+++ b/plugin-ssh/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-ssh-parent
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
index 3b18aafc9..c7d9c9390 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
+++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-svn-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-svn-ext-subversion
     jar
diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml
index 42e19eb4f..f59d3ee9d 100644
--- a/plugin-svn/pom.xml
+++ b/plugin-svn/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-svn-parent
diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml
index bd784c321..4f979c60e 100644
--- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml
+++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-tour-dto-gen
     Che Plugin :: Tour :: DTO Generation
diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml
index 90a8d40cc..b52005863 100644
--- a/plugin-tour/che-plugin-tour-dto/pom.xml
+++ b/plugin-tour/che-plugin-tour-dto/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-tour-dto
     Che Plugin :: Tour :: DTO
diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml
index a82e0a464..728691182 100644
--- a/plugin-tour/che-plugin-tour-ext-client/pom.xml
+++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-tour-ext-client
     Che Plugin :: Tour :: Client
diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml
index 1f8fbc438..8bb2393fb 100644
--- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml
+++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-tour-hopscotch
     Che Plugin :: Tour :: Hopscotch
diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml
index 33494ca97..5100594d0 100644
--- a/plugin-tour/che-plugin-tour-server/pom.xml
+++ b/plugin-tour/che-plugin-tour-server/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-tour-server
     Che Plugin :: Tour :: Server
diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml
index 14f64e9ff..7a28383bf 100644
--- a/plugin-tour/pom.xml
+++ b/plugin-tour/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-tour-parent
diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml
index 403c28bc7..ba9594c2b 100644
--- a/plugin-web/che-plugin-web-ext-web/pom.xml
+++ b/plugin-web/che-plugin-web-ext-web/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-web-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-web-ext-web
     jar
diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml
index ef9a13dac..f8d23fa33 100644
--- a/plugin-web/pom.xml
+++ b/plugin-web/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-web-parent
diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml
index 0882e4322..248cb6629 100644
--- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml
+++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-yeoman-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-yeoman-builder
     jar
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
index 9c6deef5a..18f89aa30 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-yeoman-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
     
     che-plugin-yeoman-ext-client
     jar
diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml
index 2a93ed2a0..267e521cc 100644
--- a/plugin-yeoman/pom.xml
+++ b/plugin-yeoman/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3-SNAPSHOT
+        3.12.3
         ../pom.xml
     
     che-plugin-yeoman-parent
diff --git a/pom.xml b/pom.xml
index c3ff72726..9477f2a7b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
     
     org.eclipse.che.plugin
     che-plugin-parent
-    3.12.3-SNAPSHOT
+    3.12.3
     pom
     Che Plugin :: Parent
     
@@ -53,7 +53,7 @@
     
         scm:git:git@github.com:codenvy/che-plugins.git
         scm:git:git@github.com:codenvy/che-plugins.git
-        3.9.0
+        3.12.3
         https://github.com/codenvy/che-plugins
     
     

From 19a9c5af719057a3734c1d2ecbe3e9a36a4a73bb Mon Sep 17 00:00:00 2001
From: Roman Iuvshin 
Date: Wed, 16 Sep 2015 18:27:38 +0000
Subject: [PATCH 041/164] [maven-release-plugin] prepare for next development
 iteration

---
 plugin-angularjs/api/client/pom.xml                          | 2 +-
 plugin-angularjs/api/pom.xml                                 | 2 +-
 plugin-angularjs/api/server/pom.xml                          | 2 +-
 plugin-angularjs/completion/dto-gen/pom.xml                  | 2 +-
 plugin-angularjs/completion/dto/pom.xml                      | 2 +-
 plugin-angularjs/completion/parser/pom.xml                   | 2 +-
 plugin-angularjs/completion/pom.xml                          | 2 +-
 plugin-angularjs/core/client/pom.xml                         | 2 +-
 plugin-angularjs/core/pom.xml                                | 2 +-
 plugin-angularjs/core/server/pom.xml                         | 2 +-
 plugin-angularjs/pom.xml                                     | 2 +-
 plugin-angularjs/templates/angular-seed/pom.xml              | 2 +-
 plugin-angularjs/templates/gulp-angularjs-starter/pom.xml    | 2 +-
 plugin-angularjs/templates/pom.xml                           | 2 +-
 plugin-angularjs/templates/yeoman/pom.xml                    | 2 +-
 plugin-bower/che-plugin-bower-builder/pom.xml                | 2 +-
 plugin-bower/che-plugin-bower-ext-client/pom.xml             | 2 +-
 plugin-bower/pom.xml                                         | 2 +-
 plugin-builder/che-plugin-builder-ext-builder/pom.xml        | 2 +-
 plugin-builder/pom.xml                                       | 2 +-
 plugin-codemirror/che-plugin-codemirror-base-init/pom.xml    | 2 +-
 plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +-
 plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml  | 2 +-
 plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml    | 2 +-
 plugin-codemirror/che-plugin-codemirror-jso/pom.xml          | 2 +-
 plugin-codemirror/pom.xml                                    | 2 +-
 plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml                    | 2 +-
 plugin-cpp/pom.xml                                           | 2 +-
 plugin-docker/che-plugin-docker-client/pom.xml               | 2 +-
 plugin-docker/che-plugin-docker-ext-client/pom.xml           | 2 +-
 plugin-docker/che-plugin-docker-recipes/pom.xml              | 2 +-
 plugin-docker/che-plugin-docker-runner/pom.xml               | 2 +-
 plugin-docker/pom.xml                                        | 2 +-
 plugin-git/che-plugin-git-ext-git/pom.xml                    | 2 +-
 plugin-git/che-plugin-git-provider-che/pom.xml               | 2 +-
 plugin-git/pom.xml                                           | 2 +-
 plugin-github/che-plugin-github-ext-github/pom.xml           | 2 +-
 plugin-github/che-plugin-github-oauth2/pom.xml               | 2 +-
 plugin-github/che-plugin-github-provider-github/pom.xml      | 2 +-
 plugin-github/pom.xml                                        | 2 +-
 plugin-go/che-plugin-go-ext-go/pom.xml                       | 2 +-
 plugin-go/pom.xml                                            | 2 +-
 plugin-grunt/che-plugin-grunt-builder/pom.xml                | 2 +-
 plugin-grunt/che-plugin-grunt-ext-client/pom.xml             | 2 +-
 plugin-grunt/che-plugin-grunt-runner/pom.xml                 | 2 +-
 plugin-grunt/pom.xml                                         | 2 +-
 plugin-gulp/che-plugin-gulp-runner/pom.xml                   | 2 +-
 plugin-gulp/pom.xml                                          | 2 +-
 plugin-help/che-plugin-help-ext-client/pom.xml               | 2 +-
 plugin-help/pom.xml                                          | 2 +-
 plugin-java/che-plugin-java-ant-tools/pom.xml                | 2 +-
 plugin-java/che-plugin-java-builder-ant/pom.xml              | 2 +-
 plugin-java/che-plugin-java-builder-maven/pom.xml            | 2 +-
 plugin-java/che-plugin-java-ext-ant/pom.xml                  | 2 +-
 plugin-java/che-plugin-java-ext-debugger-java/pom.xml        | 2 +-
 plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml   | 2 +-
 plugin-java/che-plugin-java-ext-java/pom.xml                 | 2 +-
 plugin-java/che-plugin-java-ext-maven/pom.xml                | 2 +-
 plugin-java/che-plugin-java-generator-archetype/pom.xml      | 2 +-
 plugin-java/che-plugin-java-jdt-core-repack/pom.xml          | 2 +-
 plugin-java/che-plugin-java-jseditor/pom.xml                 | 2 +-
 plugin-java/che-plugin-java-maven-tools/pom.xml              | 2 +-
 plugin-java/che-plugin-java-runner-webapps/pom.xml           | 2 +-
 plugin-java/pom.xml                                          | 2 +-
 plugin-npm/che-plugin-npm-builder/pom.xml                    | 2 +-
 plugin-npm/che-plugin-npm-ext-client/pom.xml                 | 2 +-
 plugin-npm/pom.xml                                           | 2 +-
 plugin-orion/che-plugin-orion-editor/pom.xml                 | 2 +-
 plugin-orion/pom.xml                                         | 2 +-
 plugin-php/che-plugin-php-ext-php/pom.xml                    | 2 +-
 plugin-php/pom.xml                                           | 2 +-
 plugin-python/che-plugin-python-ext-python/pom.xml           | 2 +-
 plugin-python/pom.xml                                        | 2 +-
 plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml                 | 2 +-
 plugin-ruby/pom.xml                                          | 2 +-
 plugin-runner/che-plugin-runner-ext-runner/pom.xml           | 2 +-
 plugin-runner/pom.xml                                        | 2 +-
 plugin-sdk/che-plugin-sdk-env-local/pom.xml                  | 2 +-
 plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml                | 2 +-
 plugin-sdk/che-plugin-sdk-runner/pom.xml                     | 2 +-
 plugin-sdk/che-plugin-sdk-tools/pom.xml                      | 2 +-
 plugin-sdk/pom.xml                                           | 2 +-
 plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml                 | 2 +-
 plugin-ssh/che-plugin-ssh-git-native/pom.xml                 | 2 +-
 plugin-ssh/pom.xml                                           | 2 +-
 plugin-svn/che-plugin-svn-ext-subversion/pom.xml             | 2 +-
 plugin-svn/pom.xml                                           | 2 +-
 plugin-tour/che-plugin-tour-dto-gen/pom.xml                  | 2 +-
 plugin-tour/che-plugin-tour-dto/pom.xml                      | 2 +-
 plugin-tour/che-plugin-tour-ext-client/pom.xml               | 2 +-
 plugin-tour/che-plugin-tour-hopscotch/pom.xml                | 2 +-
 plugin-tour/che-plugin-tour-server/pom.xml                   | 2 +-
 plugin-tour/pom.xml                                          | 2 +-
 plugin-web/che-plugin-web-ext-web/pom.xml                    | 2 +-
 plugin-web/pom.xml                                           | 2 +-
 plugin-yeoman/che-plugin-yeoman-builder/pom.xml              | 2 +-
 plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml           | 2 +-
 plugin-yeoman/pom.xml                                        | 2 +-
 pom.xml                                                      | 4 ++--
 99 files changed, 100 insertions(+), 100 deletions(-)

diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml
index d7a04cbf6..d91f241f3 100644
--- a/plugin-angularjs/api/client/pom.xml
+++ b/plugin-angularjs/api/client/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-api
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-api-client
     jar
diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml
index bcc9dae1b..0252ac14f 100644
--- a/plugin-angularjs/api/pom.xml
+++ b/plugin-angularjs/api/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-api
     pom
diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml
index dc2f5eaef..5bb3dad2e 100644
--- a/plugin-angularjs/api/server/pom.xml
+++ b/plugin-angularjs/api/server/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-api
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-api-server
     jar
diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml
index 2be4e8ea4..a860f97a9 100644
--- a/plugin-angularjs/completion/dto-gen/pom.xml
+++ b/plugin-angularjs/completion/dto-gen/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-completion
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-completion-dto-gen
     jar
diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml
index 52781f2fb..7fba5d61c 100644
--- a/plugin-angularjs/completion/dto/pom.xml
+++ b/plugin-angularjs/completion/dto/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-completion
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-completion-dto
     jar
diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml
index eeaba5dfc..c613d9158 100644
--- a/plugin-angularjs/completion/parser/pom.xml
+++ b/plugin-angularjs/completion/parser/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-completion
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-completion-parser
     jar
diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml
index ddb70502a..9a49978ff 100644
--- a/plugin-angularjs/completion/pom.xml
+++ b/plugin-angularjs/completion/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-completion
     pom
diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml
index 25229c7af..43a7a2cb4 100644
--- a/plugin-angularjs/core/client/pom.xml
+++ b/plugin-angularjs/core/client/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-core
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-core-client
     jar
diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml
index 669f018b6..c4ee079b5 100644
--- a/plugin-angularjs/core/pom.xml
+++ b/plugin-angularjs/core/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-core
     pom
diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml
index 46ff1c815..592d1143a 100644
--- a/plugin-angularjs/core/server/pom.xml
+++ b/plugin-angularjs/core/server/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-core
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-core-server
     jar
diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml
index 7163d55cd..e7c5bf6bb 100644
--- a/plugin-angularjs/pom.xml
+++ b/plugin-angularjs/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     angularjs-parent
diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml
index 3fa2150bc..8507633b4 100644
--- a/plugin-angularjs/templates/angular-seed/pom.xml
+++ b/plugin-angularjs/templates/angular-seed/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-templates
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-template-angular-seed
     jar
diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml
index e9dbef47e..f029a97af 100644
--- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml
+++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-templates
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-template-gulp-angularjs-starter
     jar
diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml
index ab410d9fd..45b3035b1 100644
--- a/plugin-angularjs/templates/pom.xml
+++ b/plugin-angularjs/templates/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-templates
     pom
diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml
index 2a834ea29..db04b8ed6 100644
--- a/plugin-angularjs/templates/yeoman/pom.xml
+++ b/plugin-angularjs/templates/yeoman/pom.xml
@@ -16,7 +16,7 @@
     
         angularjs-templates
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     angularjs-template-yeoman
     jar
diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml
index 4f5a1c0b5..0342b8af2 100644
--- a/plugin-bower/che-plugin-bower-builder/pom.xml
+++ b/plugin-bower/che-plugin-bower-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-bower-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-bower-builder
     jar
diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml
index 96f4cc2b1..9d6332413 100644
--- a/plugin-bower/che-plugin-bower-ext-client/pom.xml
+++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-bower-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-bower-ext-client
     jar
diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml
index f4cad49f9..a740a26fe 100644
--- a/plugin-bower/pom.xml
+++ b/plugin-bower/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-bower-parent
diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml
index 1fb1edc33..9a836b36d 100644
--- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml
+++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-builder-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-builder-ext-builder
     jar
diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml
index 53edbcead..efe66e753 100644
--- a/plugin-builder/pom.xml
+++ b/plugin-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-builder-parent
diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml
index bf387705e..69f21b18a 100644
--- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-codemirror-base-init
     jar
diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml
index 128490de4..19b73c32e 100644
--- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-codemirror-editorwidget
     jar
diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml
index 4bc43cb8d..00d93a7c8 100644
--- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-codemirror-highlighter
     Che Plugin :: CodeMirror :: Highlighter
diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml
index e3e974885..944177ca1 100644
--- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-codemirror-ide-style
     jar
diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml
index 764eaa476..81f650a28 100644
--- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml
+++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-codemirror-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-codemirror-jso
     jar
diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml
index dfb8d1108..9f6a802c7 100644
--- a/plugin-codemirror/pom.xml
+++ b/plugin-codemirror/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-codemirror-parent
diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml
index 9b05d28ed..2e5dbd5b5 100644
--- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml
+++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-cpp-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-cpp-ext-cpp
     jar
diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml
index 9df334641..5234b1703 100644
--- a/plugin-cpp/pom.xml
+++ b/plugin-cpp/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-cpp-parent
diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml
index 98953a9c7..3e1158caf 100644
--- a/plugin-docker/che-plugin-docker-client/pom.xml
+++ b/plugin-docker/che-plugin-docker-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-docker-client
     jar
diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml
index f2a728efc..3a87cae53 100644
--- a/plugin-docker/che-plugin-docker-ext-client/pom.xml
+++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-docker-ext-client
     jar
diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml
index c63d73614..654bad7ff 100644
--- a/plugin-docker/che-plugin-docker-recipes/pom.xml
+++ b/plugin-docker/che-plugin-docker-recipes/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-docker-recipes
     jar
diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml
index 5957fc397..6c34bc7f9 100644
--- a/plugin-docker/che-plugin-docker-runner/pom.xml
+++ b/plugin-docker/che-plugin-docker-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-docker-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-docker-runner
     jar
diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml
index 08e06c53e..2dd582305 100644
--- a/plugin-docker/pom.xml
+++ b/plugin-docker/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-docker-parent
diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml
index d9af8cd4d..a16f53d2b 100644
--- a/plugin-git/che-plugin-git-ext-git/pom.xml
+++ b/plugin-git/che-plugin-git-ext-git/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-git-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-git-ext-git
     jar
diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml
index 4bc0a3669..230d70ef2 100644
--- a/plugin-git/che-plugin-git-provider-che/pom.xml
+++ b/plugin-git/che-plugin-git-provider-che/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-git-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-git-provider-che
     Che Plugin :: Git :: Che credential provider
diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml
index 4abce1e18..4b18a9890 100644
--- a/plugin-git/pom.xml
+++ b/plugin-git/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-git-parent
diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml
index a31791581..0f59711cb 100644
--- a/plugin-github/che-plugin-github-ext-github/pom.xml
+++ b/plugin-github/che-plugin-github-ext-github/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-github-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-github-ext-github
     jar
diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml
index c81eef3bc..0c7ba76b1 100644
--- a/plugin-github/che-plugin-github-oauth2/pom.xml
+++ b/plugin-github/che-plugin-github-oauth2/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-github-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-github-oauth2
     jar
diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml
index 6ddfe93e5..a687266f1 100644
--- a/plugin-github/che-plugin-github-provider-github/pom.xml
+++ b/plugin-github/che-plugin-github-provider-github/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-github-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-github-provider-github
     Che Plugin :: Github :: Credential provider
diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml
index f88bc2126..2396f0d8e 100644
--- a/plugin-github/pom.xml
+++ b/plugin-github/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-github-parent
diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml
index 0f680a39b..84499819c 100644
--- a/plugin-go/che-plugin-go-ext-go/pom.xml
+++ b/plugin-go/che-plugin-go-ext-go/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-go-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-go-ext-go
     jar
diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml
index 3e93c3f90..99e10ad1a 100644
--- a/plugin-go/pom.xml
+++ b/plugin-go/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-go-parent
diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml
index cbb8c47ed..9f07ba3ba 100644
--- a/plugin-grunt/che-plugin-grunt-builder/pom.xml
+++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-grunt-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-grunt-builder
     jar
diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
index 6a11acca9..d1cbd1e1b 100644
--- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
+++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-grunt-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-grunt-ext-client
     jar
diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml
index 407b51047..4ddc2c315 100644
--- a/plugin-grunt/che-plugin-grunt-runner/pom.xml
+++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-grunt-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-grunt-runner
     jar
diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml
index 0005eccac..4605b4f0c 100644
--- a/plugin-grunt/pom.xml
+++ b/plugin-grunt/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-grunt-parent
diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml
index 4192119ad..7834c89f2 100644
--- a/plugin-gulp/che-plugin-gulp-runner/pom.xml
+++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-gulp-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-gulp-runner
     jar
diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml
index 4a6a5060f..89989d33a 100644
--- a/plugin-gulp/pom.xml
+++ b/plugin-gulp/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-gulp-parent
diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml
index 7151b1877..2460a5b6f 100644
--- a/plugin-help/che-plugin-help-ext-client/pom.xml
+++ b/plugin-help/che-plugin-help-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-help-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-help-ext-client
     jar
diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml
index bba09bcde..7c091f805 100644
--- a/plugin-help/pom.xml
+++ b/plugin-help/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-help-parent
diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml
index 26f7f5b5b..b14a3a9f8 100644
--- a/plugin-java/che-plugin-java-ant-tools/pom.xml
+++ b/plugin-java/che-plugin-java-ant-tools/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-ant-tools
     jar
diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml
index de30fadb0..1ea1edee5 100644
--- a/plugin-java/che-plugin-java-builder-ant/pom.xml
+++ b/plugin-java/che-plugin-java-builder-ant/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-builder-ant
     jar
diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml
index fd3315bc1..90835c088 100644
--- a/plugin-java/che-plugin-java-builder-maven/pom.xml
+++ b/plugin-java/che-plugin-java-builder-maven/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-builder-maven
     jar
diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml
index c93cc5b0b..112f54710 100644
--- a/plugin-java/che-plugin-java-ext-ant/pom.xml
+++ b/plugin-java/che-plugin-java-ext-ant/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-ext-ant
     jar
diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml
index 1b03028aa..64d6177f6 100644
--- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml
+++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-ext-debugger-java
     jar
diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml
index fba50379d..c27817881 100644
--- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml
+++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-ext-java-codeassistant
     jar
diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml
index 94fc37055..db7fe6943 100644
--- a/plugin-java/che-plugin-java-ext-java/pom.xml
+++ b/plugin-java/che-plugin-java-ext-java/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-ext-java
     jar
diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml
index 7aeb5d05f..084cf9a64 100644
--- a/plugin-java/che-plugin-java-ext-maven/pom.xml
+++ b/plugin-java/che-plugin-java-ext-maven/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-ext-maven
     jar
diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml
index 1922a9426..cb6ed7f78 100644
--- a/plugin-java/che-plugin-java-generator-archetype/pom.xml
+++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-generator-archetype
     jar
diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml
index b86c01137..0f3c78cb7 100644
--- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml
+++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-jdt-core-repack
     jar
diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml
index 5247a8307..192408620 100644
--- a/plugin-java/che-plugin-java-jseditor/pom.xml
+++ b/plugin-java/che-plugin-java-jseditor/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-jseditor
     Che Plugin :: Java :: JsEditor
diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml
index 13ade2cbe..5169f56a8 100644
--- a/plugin-java/che-plugin-java-maven-tools/pom.xml
+++ b/plugin-java/che-plugin-java-maven-tools/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-maven-tools
     jar
diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml
index 016f0232a..e70c059ed 100644
--- a/plugin-java/che-plugin-java-runner-webapps/pom.xml
+++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-java-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-java-runner-webapps
     jar
diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml
index 170f58f0e..eff646d97 100644
--- a/plugin-java/pom.xml
+++ b/plugin-java/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-java-parent
diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml
index aaf7d1318..26868efab 100644
--- a/plugin-npm/che-plugin-npm-builder/pom.xml
+++ b/plugin-npm/che-plugin-npm-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-npm-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-npm-builder
     jar
diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml
index 06f39819d..e56a3efa7 100644
--- a/plugin-npm/che-plugin-npm-ext-client/pom.xml
+++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-npm-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-npm-ext-client
     jar
diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml
index aa841675f..69254b9a9 100644
--- a/plugin-npm/pom.xml
+++ b/plugin-npm/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-npm-parent
diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml
index ddd5106cd..29c69b478 100644
--- a/plugin-orion/che-plugin-orion-editor/pom.xml
+++ b/plugin-orion/che-plugin-orion-editor/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-orion-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-orion-editor
diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml
index 96392e413..2a1bcb534 100644
--- a/plugin-orion/pom.xml
+++ b/plugin-orion/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-orion-parent
diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml
index 2327dd9ed..6ba96cfca 100644
--- a/plugin-php/che-plugin-php-ext-php/pom.xml
+++ b/plugin-php/che-plugin-php-ext-php/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-php-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-php-ext-php
     jar
diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml
index 8b60127f3..2ec14882d 100644
--- a/plugin-php/pom.xml
+++ b/plugin-php/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-php-parent
diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml
index 5e913f82d..700b981cf 100644
--- a/plugin-python/che-plugin-python-ext-python/pom.xml
+++ b/plugin-python/che-plugin-python-ext-python/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-python-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-python-ext-python
     jar
diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml
index fa092ca92..afedf6304 100644
--- a/plugin-python/pom.xml
+++ b/plugin-python/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-python-parent
diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml
index 2d416f84c..3bdb44bb4 100644
--- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml
+++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-ruby-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-ruby-ext-ruby
     jar
diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml
index 2e6415250..dacb1975c 100644
--- a/plugin-ruby/pom.xml
+++ b/plugin-ruby/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-ruby-parent
diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml
index 5a2436713..324307568 100644
--- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml
+++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-runner-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-runner-ext-runner
     jar
diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml
index 1189d6de0..4f2d0cee8 100644
--- a/plugin-runner/pom.xml
+++ b/plugin-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-runner-parent
diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml
index 58ab4d2f6..5d14cc095 100644
--- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-sdk-env-local
     jar
diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml
index dafe4df9d..3e50265d7 100644
--- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-sdk-ext-plugins
     jar
diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml
index 7311337fc..c19fdecd7 100644
--- a/plugin-sdk/che-plugin-sdk-runner/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-sdk-runner
     jar
diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml
index ed32ea30e..3d6c1261f 100644
--- a/plugin-sdk/che-plugin-sdk-tools/pom.xml
+++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-sdk-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-sdk-tools
     jar
diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml
index 8b2a0389b..e146ebe36 100644
--- a/plugin-sdk/pom.xml
+++ b/plugin-sdk/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-sdk-parent
diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml
index bc0df72b6..ea58b51a8 100644
--- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml
+++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-ssh-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-ssh-ext-sshkey
     jar
diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml
index 8cb7baf19..fcb68a7d5 100644
--- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml
+++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-ssh-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-ssh-git-native
     jar
diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml
index 8baf2488d..99c575f2b 100644
--- a/plugin-ssh/pom.xml
+++ b/plugin-ssh/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-ssh-parent
diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
index c7d9c9390..4007c0d9c 100644
--- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
+++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-svn-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-svn-ext-subversion
     jar
diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml
index f59d3ee9d..1ff941920 100644
--- a/plugin-svn/pom.xml
+++ b/plugin-svn/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-svn-parent
diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml
index 4f979c60e..18da2a661 100644
--- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml
+++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-tour-dto-gen
     Che Plugin :: Tour :: DTO Generation
diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml
index b52005863..90b8ae27f 100644
--- a/plugin-tour/che-plugin-tour-dto/pom.xml
+++ b/plugin-tour/che-plugin-tour-dto/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-tour-dto
     Che Plugin :: Tour :: DTO
diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml
index 728691182..05f60dbe9 100644
--- a/plugin-tour/che-plugin-tour-ext-client/pom.xml
+++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-tour-ext-client
     Che Plugin :: Tour :: Client
diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml
index 8bb2393fb..53fa90260 100644
--- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml
+++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-tour-hopscotch
     Che Plugin :: Tour :: Hopscotch
diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml
index 5100594d0..35c893727 100644
--- a/plugin-tour/che-plugin-tour-server/pom.xml
+++ b/plugin-tour/che-plugin-tour-server/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-tour-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-tour-server
     Che Plugin :: Tour :: Server
diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml
index 7a28383bf..be188ffa3 100644
--- a/plugin-tour/pom.xml
+++ b/plugin-tour/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-tour-parent
diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml
index ba9594c2b..ee39d3b25 100644
--- a/plugin-web/che-plugin-web-ext-web/pom.xml
+++ b/plugin-web/che-plugin-web-ext-web/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-web-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-web-ext-web
     jar
diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml
index f8d23fa33..63bef6539 100644
--- a/plugin-web/pom.xml
+++ b/plugin-web/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-web-parent
diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml
index 248cb6629..7e6b105c2 100644
--- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml
+++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-yeoman-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-yeoman-builder
     jar
diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
index 18f89aa30..538b25201 100644
--- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
+++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-yeoman-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
     
     che-plugin-yeoman-ext-client
     jar
diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml
index 267e521cc..5e5690dab 100644
--- a/plugin-yeoman/pom.xml
+++ b/plugin-yeoman/pom.xml
@@ -16,7 +16,7 @@
     
         che-plugin-parent
         org.eclipse.che.plugin
-        3.12.3
+        3.12.4-SNAPSHOT
         ../pom.xml
     
     che-plugin-yeoman-parent
diff --git a/pom.xml b/pom.xml
index 9477f2a7b..1d3639ea8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
     
     org.eclipse.che.plugin
     che-plugin-parent
-    3.12.3
+    3.12.4-SNAPSHOT
     pom
     Che Plugin :: Parent
     
@@ -53,7 +53,7 @@
     
         scm:git:git@github.com:codenvy/che-plugins.git
         scm:git:git@github.com:codenvy/che-plugins.git
-        3.12.3
+        3.9.0
         https://github.com/codenvy/che-plugins
     
     

From b4aaa95ac92bbb184facae0c71d66303607a83df Mon Sep 17 00:00:00 2001
From: Roman Iuvshin 
Date: Wed, 16 Sep 2015 18:45:04 +0000
Subject: [PATCH 042/164] RELEASE:Set next development version of parent pom

---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1d3639ea8..73d8595ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
     
         maven-depmgt-pom
         org.eclipse.che.depmgt
-        3.12.3
+        3.12.4-SNAPSHOT
     
     org.eclipse.che.plugin
     che-plugin-parent

From ad56fdf0fc61304c0f9dfee098aa4c60dac1a604 Mon Sep 17 00:00:00 2001
From: Florent BENOIT 
Date: Thu, 17 Sep 2015 10:00:32 +0200
Subject: [PATCH 043/164] IDEX-3067 Update localhost links by Boot2docker
 remote ip address

---
 .../CustomPortApplicationLinksGenerator.java     | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/CustomPortApplicationLinksGenerator.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/CustomPortApplicationLinksGenerator.java
index 675326cf9..777159b5b 100644
--- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/CustomPortApplicationLinksGenerator.java
+++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/CustomPortApplicationLinksGenerator.java
@@ -10,10 +10,15 @@
  *******************************************************************************/
 package org.eclipse.che.plugin.docker.runner;
 
+import org.eclipse.che.plugin.docker.client.DockerConnectorConfiguration;
+
 import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
+import static org.eclipse.che.api.core.util.SystemInfo.isMacOS;
+import static org.eclipse.che.api.core.util.SystemInfo.isWindows;
+
 /**
  * Link generator that uses predefined URL template that allows to customize application port.
  * 

@@ -29,8 +34,19 @@ public class CustomPortApplicationLinksGenerator implements ApplicationLinksGene @Inject public CustomPortApplicationLinksGenerator(@Named("runner.docker.application_link_template") String applicationLinkTemplate, @Named("runner.docker.web_shell_link_template") String webShellLinkTemplate) { + + // update localhost links to docker machine IP on Windows and MacOS + if (isWindows() || isMacOS()) { + if (applicationLinkTemplate.contains("localhost")) { + applicationLinkTemplate = applicationLinkTemplate.replace("localhost", DockerConnectorConfiguration.getExpectedLocalHost()); + } + if (webShellLinkTemplate.contains("localhost")) { + webShellLinkTemplate = webShellLinkTemplate.replace("localhost", DockerConnectorConfiguration.getExpectedLocalHost()); + } + } this.applicationLinkTemplate = applicationLinkTemplate; this.webShellLinkTemplate = webShellLinkTemplate; + } @Override From 5b9708b14b3bab87fa3df2064b3b2182f150d2bf Mon Sep 17 00:00:00 2001 From: Vladyslav Zhukovskii Date: Thu, 17 Sep 2015 15:14:13 +0300 Subject: [PATCH 044/164] IDEX-3050: update editors content after some git operation and refactor mechanism of processing actions after accepting factory --- .../git/client/branch/BranchPresenter.java | 24 +++++-- .../checkout/CheckoutReferencePresenter.java | 25 +++++++- .../client/branch/BranchPresenterTest.java | 17 ++++- .../checkout/CheckoutReferenceTest.java | 64 +++++++++++++------ .../NewJavaSourceFilePresenter.java | 23 ++++++- 5 files changed, 121 insertions(+), 32 deletions(-) diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java index d90d172fa..834d8567e 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenter.java @@ -14,6 +14,7 @@ import com.google.gwt.json.client.JSONParser; import com.google.inject.Inject; import com.google.inject.Singleton; +import com.google.web.bindery.event.shared.EventBus; import org.eclipse.che.api.core.rest.shared.dto.ServiceError; import org.eclipse.che.api.git.gwt.client.GitServiceClient; @@ -23,9 +24,11 @@ import org.eclipse.che.ide.api.app.CurrentProject; import org.eclipse.che.ide.api.editor.EditorAgent; import org.eclipse.che.ide.api.editor.EditorPartPresenter; +import org.eclipse.che.ide.api.event.FileContentUpdateEvent; import org.eclipse.che.ide.api.notification.NotificationManager; import org.eclipse.che.ide.api.parts.PartStackType; import org.eclipse.che.ide.api.parts.WorkspaceAgent; +import org.eclipse.che.ide.api.project.tree.VirtualFile; import org.eclipse.che.ide.dto.DtoFactory; import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant; import org.eclipse.che.ide.ext.git.client.GitOutputPartPresenter; @@ -37,7 +40,6 @@ import org.eclipse.che.ide.ui.dialogs.InputCallback; import javax.validation.constraints.NotNull; -import java.util.ArrayList; import java.util.List; import static org.eclipse.che.api.git.shared.BranchListRequest.LIST_ALL; @@ -56,6 +58,7 @@ public class BranchPresenter implements BranchView.ActionDelegate { private WorkspaceAgent workspaceAgent; private DialogFactory dialogFactory; private final NewProjectExplorerPresenter projectExplorer; + private final EventBus eventBus; private CurrentProject project; private GitServiceClient service; private GitLocalizationConstant constant; @@ -77,13 +80,15 @@ public BranchPresenter(BranchView view, GitOutputPartPresenter gitConsole, WorkspaceAgent workspaceAgent, DialogFactory dialogFactory, - NewProjectExplorerPresenter projectExplorer) { + NewProjectExplorerPresenter projectExplorer, + EventBus eventBus) { this.view = view; this.dtoFactory = dtoFactory; this.gitConsole = gitConsole; this.workspaceAgent = workspaceAgent; this.dialogFactory = dialogFactory; this.projectExplorer = projectExplorer; + this.eventBus = eventBus; this.view.setDelegate(this); this.editorAgent = editorAgent; this.service = service; @@ -189,11 +194,6 @@ protected void onFailure(Throwable exception) { /** {@inheritDoc} */ @Override public void onCheckoutClicked() { - final List openedEditors = new ArrayList<>(); - for (EditorPartPresenter partPresenter : editorAgent.getOpenedEditors().values()) { - openedEditors.add(partPresenter); - } - String name = selectedBranch.getDisplayName(); if (name == null) { @@ -214,6 +214,8 @@ protected void onSuccess(String result) { //In this case we can have unconfigured state of the project, //so we must repeat the logic which is performed when we open a project projectExplorer.reloadChildren(); + + updateOpenedFiles(); } @Override @@ -223,6 +225,14 @@ protected void onFailure(Throwable exception) { }); } + private void updateOpenedFiles() { + for (EditorPartPresenter editorPartPresenter : editorAgent.getOpenedEditors().values()) { + VirtualFile file = editorPartPresenter.getEditorInput().getFile(); + + eventBus.fireEvent(new FileContentUpdateEvent(file.getPath())); + } + } + private void printGitMessage(String messageText) { if (messageText == null || messageText.isEmpty()) { return; diff --git a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java index aecf0389e..3d479a9f4 100644 --- a/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java +++ b/plugin-git/che-plugin-git-ext-git/src/main/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferencePresenter.java @@ -12,12 +12,17 @@ import com.google.inject.Inject; import com.google.inject.Singleton; +import com.google.web.bindery.event.shared.EventBus; import org.eclipse.che.api.git.gwt.client.GitServiceClient; import org.eclipse.che.api.git.shared.BranchCheckoutRequest; import org.eclipse.che.api.project.shared.dto.ProjectDescriptor; import org.eclipse.che.ide.api.app.AppContext; +import org.eclipse.che.ide.api.editor.EditorAgent; +import org.eclipse.che.ide.api.editor.EditorPartPresenter; +import org.eclipse.che.ide.api.event.FileContentUpdateEvent; import org.eclipse.che.ide.api.notification.NotificationManager; +import org.eclipse.che.ide.api.project.tree.VirtualFile; import org.eclipse.che.ide.dto.DtoFactory; import org.eclipse.che.ide.ext.git.client.GitLocalizationConstant; import org.eclipse.che.ide.part.explorer.project.NewProjectExplorerPresenter; @@ -36,7 +41,9 @@ public class CheckoutReferencePresenter implements CheckoutReferenceView.ActionD private GitLocalizationConstant constant; private CheckoutReferenceView view; private final NewProjectExplorerPresenter projectExplorer; - private final DtoFactory dtoFactory; + private final DtoFactory dtoFactory; + private final EditorAgent editorAgent; + private final EventBus eventBus; @Inject public CheckoutReferencePresenter(CheckoutReferenceView view, @@ -45,10 +52,14 @@ public CheckoutReferencePresenter(CheckoutReferenceView view, GitLocalizationConstant constant, NotificationManager notificationManager, NewProjectExplorerPresenter projectExplorer, - DtoFactory dtoFactory) { + DtoFactory dtoFactory, + EditorAgent editorAgent, + EventBus eventBus) { this.view = view; this.projectExplorer = projectExplorer; this.dtoFactory = dtoFactory; + this.editorAgent = editorAgent; + this.eventBus = eventBus; this.view.setDelegate(this); this.service = service; this.appContext = appContext; @@ -81,6 +92,8 @@ protected void onSuccess(String result) { //In this case we can have unconfigured state of the project, //so we must repeat the logic which is performed when we open a project projectExplorer.reloadChildren(); + + updateOpenedFiles(); } @Override @@ -94,6 +107,14 @@ protected void onFailure(Throwable exception) { ); } + private void updateOpenedFiles() { + for (EditorPartPresenter editorPartPresenter : editorAgent.getOpenedEditors().values()) { + VirtualFile file = editorPartPresenter.getEditorInput().getFile(); + + eventBus.fireEvent(new FileContentUpdateEvent(file.getPath())); + } + } + @Override public void referenceValueChanged(String reference) { view.setCheckoutButEnableState(isInputCorrect(reference)); diff --git a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java index da2a927d4..7fa6283a6 100644 --- a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java +++ b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/branch/BranchPresenterTest.java @@ -15,7 +15,9 @@ import org.eclipse.che.ide.api.editor.EditorAgent; import org.eclipse.che.ide.api.editor.EditorInput; import org.eclipse.che.ide.api.editor.EditorPartPresenter; +import org.eclipse.che.ide.api.event.FileContentUpdateEvent; import org.eclipse.che.ide.api.parts.WorkspaceAgent; +import org.eclipse.che.ide.api.project.tree.VirtualFile; import org.eclipse.che.ide.dto.DtoFactory; import org.eclipse.che.ide.ext.git.client.BaseTest; import org.eclipse.che.ide.ext.git.client.GitOutputPartPresenter; @@ -31,6 +33,7 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; +import org.mockito.Matchers; import org.mockito.Mock; import java.util.ArrayList; @@ -107,7 +110,7 @@ public void disarm() { super.disarm(); presenter = new BranchPresenter(view, dtoFactory, editorAgent, service, constant, appContext, notificationManager, - dtoUnmarshallerFactory, gitConsole, workspaceAgent, dialogFactory, projectExplorer); + dtoUnmarshallerFactory, gitConsole, workspaceAgent, dialogFactory, projectExplorer, eventBus); NavigableMap partPresenterMap = new TreeMap<>(); partPresenterMap.put("partPresenter", partPresenter); @@ -324,6 +327,11 @@ public void testOnCheckoutClickedWhenSelectedRemoteBranch() throws Exception { public void testOnCheckoutClickedWhenBranchCheckoutRequestAndRefreshProjectIsSuccessful() throws Exception { when(dtoFactory.createDto(BranchCheckoutRequest.class)).thenReturn(branchCheckoutRequest); + VirtualFile virtualFile = mock(VirtualFile.class); + + when(editorInput.getFile()).thenReturn(virtualFile); + when(virtualFile.getPath()).thenReturn("/foo"); + selectBranch(); presenter.onCheckoutClicked(); @@ -345,6 +353,7 @@ public void testOnCheckoutClickedWhenBranchCheckoutRequestAndRefreshProjectIsSuc verify(service, times(2)).branchList(eq(rootProjectDescriptor), eq(LIST_ALL), anyObject()); verify(appContext).getCurrentProject(); verify(notificationManager, never()).showError(anyString()); + verify(eventBus).fireEvent(Matchers.anyObject()); verify(constant, never()).branchCheckoutFailed(); } @@ -353,6 +362,11 @@ public void testOnCheckoutClickedWhenBranchCheckoutRequestAndRefreshProjectIsSuc throws Exception { when(dtoFactory.createDto(BranchCheckoutRequest.class)).thenReturn(branchCheckoutRequest); + VirtualFile virtualFile = mock(VirtualFile.class); + + when(editorInput.getFile()).thenReturn(virtualFile); + when(virtualFile.getPath()).thenReturn("/foo"); + selectBranch(); presenter.onCheckoutClicked(); @@ -368,6 +382,7 @@ public void testOnCheckoutClickedWhenBranchCheckoutRequestAndRefreshProjectIsSuc verify(selectedBranch, times(2)).getDisplayName(); verify(selectedBranch).isRemote(); verify(service, times(2)).branchList(eq(rootProjectDescriptor), eq(LIST_ALL), anyObject()); + verify(eventBus).fireEvent(Matchers.anyObject()); verify(appContext).getCurrentProject(); } diff --git a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferenceTest.java b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferenceTest.java index ea4955523..b2774bfff 100644 --- a/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferenceTest.java +++ b/plugin-git/che-plugin-git-ext-git/src/test/java/org/eclipse/che/ide/ext/git/client/checkout/CheckoutReferenceTest.java @@ -11,7 +11,12 @@ package org.eclipse.che.ide.ext.git.client.checkout; import org.eclipse.che.api.git.shared.BranchCheckoutRequest; +import org.eclipse.che.ide.api.editor.EditorAgent; +import org.eclipse.che.ide.api.editor.EditorInput; +import org.eclipse.che.ide.api.editor.EditorPartPresenter; +import org.eclipse.che.ide.api.event.FileContentUpdateEvent; import org.eclipse.che.ide.api.event.OpenProjectEvent; +import org.eclipse.che.ide.api.project.tree.VirtualFile; import org.eclipse.che.ide.ext.git.client.BaseTest; import org.eclipse.che.ide.rest.AsyncRequestCallback; import org.eclipse.che.test.GwtReflectionUtils; @@ -22,6 +27,9 @@ import org.mockito.Matchers; import org.mockito.Mock; +import java.util.NavigableMap; +import java.util.TreeMap; + import static org.mockito.Matchers.anyBoolean; import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.anyString; @@ -49,6 +57,14 @@ public class CheckoutReferenceTest extends BaseTest { private CheckoutReferenceView view; @Mock private BranchCheckoutRequest branchCheckoutRequest; + + @Mock + private EditorPartPresenter partPresenter; + @Mock + private EditorInput editorInput; + @Mock + private EditorAgent editorAgent; + @InjectMocks private CheckoutReferencePresenter presenter; @@ -120,25 +136,35 @@ public void onEnterClickedWhenValueIsCorrect() throws Exception { @Test public void testOnCheckoutClickedWhenCheckoutIsSuccessful() throws Exception { -// when(dtoFactory.createDto(BranchCheckoutRequest.class)).thenReturn(branchCheckoutRequest); -// when(branchCheckoutRequest.withName(anyString())).thenReturn(branchCheckoutRequest); -// when(branchCheckoutRequest.withCreateNew(anyBoolean())).thenReturn(branchCheckoutRequest); -// reset(service); -// when(view.getReference()).thenReturn(CORRECT_REFERENCE); -// when(rootProjectDescriptor.getPath()).thenReturn(PROJECT_PATH); -// -// presenter.onEnterClicked(); -// -// verify(service).branchCheckout(anyObject(), anyObject(), asyncCallbackCaptor.capture()); -// AsyncRequestCallback callback = asyncCallbackCaptor.getValue(); -// GwtReflectionUtils.callOnSuccess(callback, ""); -// -// verify(branchCheckoutRequest).withName(CORRECT_REFERENCE); -// verify(branchCheckoutRequest).withCreateNew(false); -// verifyNoMoreInteractions(branchCheckoutRequest); -// verify(view).close(); -// verify(rootProjectDescriptor).getPath(); -// verify(eventBus).fireEvent(Matchers.anyObject()); + VirtualFile virtualFile = mock(VirtualFile.class); + + NavigableMap partPresenterMap = new TreeMap<>(); + partPresenterMap.put("partPresenter", partPresenter); + + when(editorAgent.getOpenedEditors()).thenReturn(partPresenterMap); + when(partPresenter.getEditorInput()).thenReturn(editorInput); + + when(editorInput.getFile()).thenReturn(virtualFile); + when(virtualFile.getPath()).thenReturn("/foo"); + + when(dtoFactory.createDto(BranchCheckoutRequest.class)).thenReturn(branchCheckoutRequest); + when(branchCheckoutRequest.withName(anyString())).thenReturn(branchCheckoutRequest); + when(branchCheckoutRequest.withCreateNew(anyBoolean())).thenReturn(branchCheckoutRequest); + reset(service); + when(view.getReference()).thenReturn(CORRECT_REFERENCE); + when(rootProjectDescriptor.getPath()).thenReturn(PROJECT_PATH); + + presenter.onEnterClicked(); + + verify(service).branchCheckout(anyObject(), anyObject(), asyncCallbackCaptor.capture()); + AsyncRequestCallback callback = asyncCallbackCaptor.getValue(); + GwtReflectionUtils.callOnSuccess(callback, ""); + + verify(branchCheckoutRequest).withName(CORRECT_REFERENCE); + verify(branchCheckoutRequest).withCreateNew(false); + verifyNoMoreInteractions(branchCheckoutRequest); + verify(view).close(); + verify(eventBus).fireEvent(Matchers.anyObject()); } @Test diff --git a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java index 1921fba10..190a7c848 100644 --- a/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java +++ b/plugin-java/che-plugin-java-ext-java/src/main/java/org/eclipse/che/ide/ext/java/client/newsourcefile/NewJavaSourceFilePresenter.java @@ -18,6 +18,8 @@ import org.eclipse.che.api.project.shared.dto.ItemReference; import org.eclipse.che.api.promises.client.Function; import org.eclipse.che.api.promises.client.FunctionException; +import org.eclipse.che.api.promises.client.Operation; +import org.eclipse.che.api.promises.client.OperationException; import org.eclipse.che.api.promises.client.Promise; import org.eclipse.che.api.promises.client.PromiseError; import org.eclipse.che.api.promises.client.callback.AsyncPromiseHelper; @@ -31,6 +33,7 @@ import org.eclipse.che.ide.rest.AsyncRequestCallback; import org.eclipse.che.ide.rest.DtoUnmarshallerFactory; import org.eclipse.che.ide.rest.Unmarshallable; +import org.eclipse.che.ide.ui.dialogs.DialogFactory; import javax.validation.constraints.NotNull; import java.util.Arrays; @@ -59,12 +62,15 @@ public class NewJavaSourceFilePresenter implements NewJavaSourceFileView.ActionD private final ProjectServiceClient projectServiceClient; private final DtoUnmarshallerFactory dtoUnmarshaller; private final List sourceFileTypes; + private final DialogFactory dialogFactory; @Inject public NewJavaSourceFilePresenter(NewJavaSourceFileView view, NewProjectExplorerPresenter projectExplorer, ProjectServiceClient projectServiceClient, - DtoUnmarshallerFactory dtoUnmarshaller) { + DtoUnmarshallerFactory dtoUnmarshaller, + DialogFactory dialogFactory) { + this.dialogFactory = dialogFactory; sourceFileTypes = Arrays.asList(CLASS, INTERFACE, ENUM, ANNOTATION); this.view = view; this.projectExplorer = projectExplorer; @@ -199,7 +205,17 @@ private void createSourceFile(final String nameWithoutExtension, final FolderRef getOrCreateFolder(path).thenPromise(createFile(nameWithoutExtension, content)) .thenPromise(navigateToNode()) .then(selectNode()) - .then(openNode()); + .then(openNode()) + .catchError(onFailedFileCreation()); + } + + private Operation onFailedFileCreation() { + return new Operation() { + @Override + public void apply(PromiseError arg) throws OperationException { + dialogFactory.createMessageDialog("Cannot create java file", arg.getMessage(), null).show(); + } + }; } private Function> navigateToNode() { @@ -222,7 +238,8 @@ public Promise apply(ItemReference folder) throws FunctionExcepti }; } - private AsyncPromiseHelper.RequestCall createFileRC(final ItemReference folder, final String nameWithoutExtension, final String content) { + private AsyncPromiseHelper.RequestCall createFileRC(final ItemReference folder, final String nameWithoutExtension, + final String content) { return new AsyncPromiseHelper.RequestCall() { @Override public void makeCall(AsyncCallback callback) { From 3de2a11b17594f539b37d13934e3ac4e5c3cae4a Mon Sep 17 00:00:00 2001 From: Florent BENOIT Date: Thu, 17 Sep 2015 09:58:52 +0200 Subject: [PATCH 045/164] IDEX-3066 use correct bind volume dir on Windows --- .../che/plugin/docker/runner/BaseDockerRunner.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java index 8bfdff4ab..13c8a4d57 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java @@ -319,7 +319,19 @@ protected ApplicationProcess newApplicationProcess(DeploymentSources toDeploy, R unpackedApplication = unpackArchive(application, workDir, applicationFilename + "_unpack"); } } - hostConfig.setBinds(new String[]{String.format("%s:%s", unpackedApplication.getAbsolutePath(), applicationBindDir)}); + + // On Windows binding directory needs to follow URL convention with first / and no colon : + // instead of C:\\Users\\user it needs to be /c/Users/user (note as well the lowercase c at first) + // Details on https://github.com/boot2docker/boot2docker/blob/master/README.md#virtualbox-guest-additions + String bindingDir; + if (org.eclipse.che.api.core.util.SystemInfo.isWindows()) { + bindingDir = unpackedApplication.getAbsolutePath().replace(":", "").replace('\\', '/'); + bindingDir = "/" + Character.toLowerCase(bindingDir.charAt(0)) + bindingDir.substring(1); + } else { + bindingDir = unpackedApplication.getAbsolutePath(); + } + + hostConfig.setBinds(new String[]{String.format("%s:%s", bindingDir, applicationBindDir)}); if (watchUpdateProjectTypes.contains(projectDescriptor.getType())) { updaterHolder.set(new ApplicationUpdater(unpackedApplication, projectDescriptor.getPath(), projectDescriptor.getBaseUrl(), request.getUserToken(), getExecutor())); From 55e939bf000862e232810a79e2be9fbc56efe0e1 Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Thu, 17 Sep 2015 09:52:18 +0300 Subject: [PATCH 046/164] IDEX-2376: refactor docker API client; add method to get docker events --- .../docker/client/CgroupOOMDetector.java | 278 ++++ .../plugin/docker/client/DockerConnector.java | 1255 ++++++++--------- .../docker/client/DockerOOMDetector.java | 54 + .../docker/client/JsonMessageReader.java | 81 ++ .../docker/client/LogMessageFormatter.java | 7 +- .../docker/client/LogMessagePumper.java | 10 +- ...neFormatter.java => MessageFormatter.java} | 9 +- ...geProcessor.java => MessageProcessor.java} | 10 +- .../plugin/docker/client/MessagePumper.java | 35 + .../client/ProgressLineFormatterImpl.java | 4 +- .../plugin/docker/client/ProgressMonitor.java | 3 + .../docker/client/ProgressStatusReader.java | 54 - .../client/connection/DockerConnection.java | 38 +- .../client/connection/TcpConnection.java | 8 +- .../connection/UnixSocketConnection.java | 16 +- .../che/plugin/docker/client/json/Event.java | 69 + .../plugin/docker/client/json/Filters.java | 51 + ...erTest.java => JsonMessageReaderTest.java} | 8 +- .../src/test/resources/logback-test.xml | 35 + 19 files changed, 1252 insertions(+), 773 deletions(-) create mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/CgroupOOMDetector.java create mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerOOMDetector.java create mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/JsonMessageReader.java rename plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/{ProgressLineFormatter.java => MessageFormatter.java} (71%) rename plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/{LogMessageProcessor.java => MessageProcessor.java} (73%) create mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessagePumper.java delete mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressStatusReader.java create mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Event.java create mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Filters.java rename plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/{ProgressStatusReaderTest.java => JsonMessageReaderTest.java} (77%) create mode 100644 plugin-docker/che-plugin-docker-machine/src/test/resources/logback-test.xml diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/CgroupOOMDetector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/CgroupOOMDetector.java new file mode 100644 index 000000000..fcec8d4db --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/CgroupOOMDetector.java @@ -0,0 +1,278 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.sun.jna.ptr.LongByReference; + +import org.eclipse.che.api.core.util.SystemInfo; +import org.eclipse.che.commons.lang.Size; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.inject.Inject; +import java.io.BufferedReader; +import java.io.IOException; +import java.net.URI; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import static org.eclipse.che.plugin.docker.client.CLibraryFactory.getCLibrary; + +/** + * Docker container OOM detector based on cgroup usage + * + * @author Alexander Garagatyi + */ +public class CgroupOOMDetector implements DockerOOMDetector { + private static final Logger LOG = LoggerFactory.getLogger(CgroupOOMDetector.class); + + private final Map oomDetectors; + private final URI dockerDaemonUri; + private final DockerConnector dockerConnector; + private final ExecutorService executor; + + @Inject + public CgroupOOMDetector(DockerConnectorConfiguration connectorConfiguration, DockerConnector dockerConnector) { + this(connectorConfiguration.getDockerDaemonUri(), dockerConnector); + } + + public CgroupOOMDetector(URI dockerDaemonUri, DockerConnector dockerConnector) { + this.dockerDaemonUri = dockerDaemonUri; + this.dockerConnector = dockerConnector; + this.oomDetectors = new ConcurrentHashMap<>(); + this.executor = Executors.newCachedThreadPool(new ThreadFactoryBuilder().setNameFormat("CgroupOOMDetector-%d") + .setDaemon(true) + .build()); + } + + @Override + public void stopDetection(String container) { + final OOMDetector oomDetector = oomDetectors.remove(container); + if (oomDetector != null) { + oomDetector.stop(); + } + } + + @Override + public void startDetection(String container, MessageProcessor containerLogProcessor) { + if (needStartOOMDetector(container)) { + if (cgroupMount == null) { + LOG.warn("System doesn't support OOM events"); + return; + } + try { + final long memory = dockerConnector.inspectContainer(container).getConfig().getMemory(); + OOMDetector oomDetector = new OOMDetector(container, containerLogProcessor, memory); + oomDetectors.putIfAbsent(container, oomDetector); + oomDetector = oomDetectors.get(container); + oomDetector.start(); + } catch (IOException e) { + LOG.error(e.getLocalizedMessage(), e); + } + } + } + + private boolean needStartOOMDetector(String container) { + if (! oomDetectors.containsKey(container)) { + if (DockerConnector.isUnixSocketUri(dockerDaemonUri)) { + return true; + } + if (SystemInfo.isLinux()) { + final String dockerDaemonHost = dockerDaemonUri.getHost(); + if ("localhost".equals(dockerDaemonHost) || "127.0.0.1".equals(dockerDaemonHost)) { + return true; + } + } + } + return false; + } + + /* + * Need detect OOM errors and notify users about them. Without such notification if application is killed by oom-killer client often can + * see message "Killed" and there is no any why to see why. Unfortunately for now docker doesn't provide clear mechanism how to control + * OOM errors, with docker event mechanism can get something like that: + * {"status":"die","id":"dfdf82bd3881","from":"base:latest","time":1374067970} + * That is not enough. + * Found two ways how to control OOM errors. + * + * 1. With parsing output of 'dmesg' command + * ---- + * andrew@andrey:~> dmesg | grep oom-killer + * [41313.629018] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0 + * [41631.391818] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0 + * ... + * ----- + * Problem here is in timestamp format. Unfortunately dmesg doesn't provide real time correctly with -T option. Here is a piece of man + * page: + * ----- + * -T, --ctime + * Print human readable timestamps. The timestamp could be inaccurate! + * + * The time source used for the logs is not updated after system SUSPEND/RESUME. + * ----- + * So it's complicated to detect time when oom-killer was activated and link its activity with failed docker container. + * + * 2. Usage of cgroup notification mechanism. + * Good article about this: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-Using_the_Notification_API.html + */ + private static String cgroupMount; + private static boolean systemd; + + static { + if (SystemInfo.isLinux()) { + final String mounts = "/proc/mounts"; + try (BufferedReader reader = Files.newBufferedReader(Paths.get(mounts), Charset.forName("UTF-8"))) { + String line; + while ((line = reader.readLine()) != null) { + String[] a = line.split("\\s+"); + // line has format: "DEVICE PATH FILESYSTEM FLAGS_DELIMITED_BY_COMMAS ??? ???" + String filesystem = a[2]; + if ("cgroup".equals(filesystem)) { + String path = a[1]; + if (path.endsWith("cpu") + || path.endsWith("cpuacct") + || path.endsWith("cpuset") + || path.endsWith("memory") + || path.endsWith("devices") + || path.endsWith("freezer")) { + cgroupMount = Paths.get(path).getParent().toString(); + } else if (path.endsWith("systemd")) { + systemd = true; + } + } + } + } catch (IOException e) { + LOG.error(e.getMessage(), e); + } + } + } + + /** + * Detects OOM with cgroup notification mechanism. + *

+ * https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-Using_the_Notification_API.html + */ + private class OOMDetector implements Runnable { + private final String container; + private final MessageProcessor containerLogProcessor; + private final long memory; + private final CLibrary cLib; + private final String containerCgroup; + + private volatile boolean stopped = false; + private boolean started = false; + + OOMDetector(String container, MessageProcessor containerLogProcessor, long memory) { + this.container = container; + this.containerLogProcessor = containerLogProcessor; + this.memory = memory; + cLib = getCLibrary(); + + if (systemd) { + containerCgroup = cgroupMount + "/memory/system.slice/docker-" + container + ".scope/"; + } else { + containerCgroup = cgroupMount + "/memory/docker/" + container + "/"; + } + } + + @Override + public void run() { + final String cf = containerCgroup + "cgroup.event_control"; + final String oomf = containerCgroup + "memory.oom_control"; + int efd = -1; + int oomfd = -1; + try { + if ((efd = cLib.eventfd(0, 1)) == -1) { + LOG.error("Unable create a file descriptor for event notification"); + return; + } + int cfd; + if ((cfd = cLib.open(cf, CLibrary.O_WRONLY)) == -1) { + LOG.error("Unable open event control file '{}' for write", cf); + return; + } + if ((oomfd = cLib.open(oomf, CLibrary.O_RDONLY)) == -1) { + LOG.error("Unable open OOM event file '{}' for read", oomf); + return; + } + final byte[] data = String.format("%d %d", efd, oomfd).getBytes(); + if (cLib.write(cfd, data, data.length) != data.length) { + LOG.error("Unable write event control data to file '{}'", cf); + return; + } + if (cLib.close(cfd) == -1) { + LOG.error("Error closing of event control file '{}'", cf); + return; + } + final LongByReference eventHolder = new LongByReference(); + if (cLib.eventfd_read(efd, eventHolder) == 0) { + if (stopped) { + return; + } + LOG.warn("OOM event received for container '{}'", container); + if (readCgroupValue("memory.failcnt") > 0) { + try { + containerLogProcessor.process(new LogMessage(LogMessage.Type.DOCKER, + "[ERROR] The processes in this machine need more RAM. This machine started with " + + Size.toHumanSize(memory))); + containerLogProcessor.process(new LogMessage(LogMessage.Type.DOCKER, + "[ERROR] Create a new machine configuration that allocates additional RAM or increase" + + " the workspace RAM limit in the user dashboard.")); + } catch (/*IOException*/ Exception e) { + LOG.warn(e.getMessage(), e); + } + } + } + } finally { + if (!stopped) { + stopDetection(container); + } + close(oomfd); + close(efd); + } + } + + private void close(int fd) { + if (fd != -1) { + cLib.close(fd); + } + } + + long readCgroupValue(String cgroupFile) { + final String failCntf = containerCgroup + cgroupFile; + try (BufferedReader reader = Files.newBufferedReader(Paths.get(failCntf), Charset.forName("UTF-8"))) { + return Long.parseLong(reader.readLine().trim()); + } catch (IOException e) { + LOG.warn("Unable read content of file '{}'", failCntf); + } catch (NumberFormatException e) { + LOG.error("Unable parse content of file '{}'", failCntf); + } + return 0; + } + + synchronized void start() { + if (!started) { + started = true; + executor.execute(this); + } + } + + void stop() { + stopped = true; + } + } +} diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java index b20e46300..578298b02 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java @@ -12,18 +12,19 @@ import com.google.common.io.CharStreams; import com.google.common.util.concurrent.ThreadFactoryBuilder; -import com.sun.jna.ptr.LongByReference; import org.apache.commons.codec.binary.Base64; import org.eclipse.che.api.core.util.FileCleaner; -import org.eclipse.che.api.core.util.SystemInfo; import org.eclipse.che.api.core.util.ValueHolder; import org.eclipse.che.commons.json.JsonHelper; import org.eclipse.che.commons.json.JsonNameConvention; import org.eclipse.che.commons.json.JsonParseException; import org.eclipse.che.commons.lang.Pair; -import org.eclipse.che.commons.lang.Size; + + import org.eclipse.che.commons.lang.TarUtils; +import org.eclipse.che.commons.lang.ws.rs.ExtMediaType; +import org.eclipse.che.plugin.docker.client.connection.CloseConnectionInputStream; import org.eclipse.che.plugin.docker.client.connection.DockerConnection; import org.eclipse.che.plugin.docker.client.connection.DockerResponse; import org.eclipse.che.plugin.docker.client.connection.TcpConnection; @@ -36,20 +37,21 @@ import org.eclipse.che.plugin.docker.client.json.ContainerInfo; import org.eclipse.che.plugin.docker.client.json.ContainerProcesses; import org.eclipse.che.plugin.docker.client.json.ContainerResource; +import org.eclipse.che.plugin.docker.client.json.Event; import org.eclipse.che.plugin.docker.client.json.ExecConfig; import org.eclipse.che.plugin.docker.client.json.ExecCreated; import org.eclipse.che.plugin.docker.client.json.ExecInfo; import org.eclipse.che.plugin.docker.client.json.ExecStart; +import org.eclipse.che.plugin.docker.client.json.Filters; import org.eclipse.che.plugin.docker.client.json.HostConfig; import org.eclipse.che.plugin.docker.client.json.Image; import org.eclipse.che.plugin.docker.client.json.ImageInfo; import org.eclipse.che.plugin.docker.client.json.ProgressStatus; import org.eclipse.che.plugin.docker.client.json.Version; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Singleton; +import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -58,32 +60,29 @@ import java.io.InputStreamReader; import java.net.URI; import java.net.URLEncoder; -import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper; import static java.io.File.separatorChar; -import static org.eclipse.che.plugin.docker.client.CLibraryFactory.getCLibrary; +import static javax.ws.rs.core.Response.Status.OK; /** - * Connects to the docker daemon. + * Client for docker API. * * @author andrew00x * @author Alexander Garagatyi + * @author Anton Korneta */ @Singleton public class DockerConnector { - private static final Logger LOG = LoggerFactory.getLogger(DockerConnector.class); - public static final String UNIX_SOCKET_SCHEME = "unix"; public static final String UNIX_SOCKET_PATH = "/var/run/docker.sock"; public static final URI UNIX_SOCKET_URI = URI.create(UNIX_SOCKET_SCHEME + "://" + UNIX_SOCKET_PATH); @@ -117,22 +116,31 @@ public class DockerConnector { + separatorChar + "machines" + separatorChar + "default"; - private final URI dockerDaemonUri; + private final URI dockerDaemonUri; private final DockerCertificates dockerCertificates; private final InitialAuthConfig initialAuthConfig; private final ExecutorService executor; private final Map oomDetectors; + private final URI dockerDaemonUri; + private final DockerCertificates dockerCertificates; + private final InitialAuthConfig initialAuthConfig; + private final ExecutorService executor; + public DockerConnector(InitialAuthConfig initialAuthConfig) { this(new DockerConnectorConfiguration(initialAuthConfig)); } - public DockerConnector(URI dockerDaemonUri, DockerCertificates dockerCertificates, InitialAuthConfig initialAuthConfig) { + public DockerConnector(URI dockerDaemonUri, + DockerCertificates dockerCertificates, + InitialAuthConfig initialAuthConfig) { this.dockerDaemonUri = dockerDaemonUri; this.dockerCertificates = dockerCertificates; this.initialAuthConfig = initialAuthConfig; - executor = Executors.newCachedThreadPool(new ThreadFactoryBuilder().setNameFormat("DockerApiConnector-%d").setDaemon(true).build()); - oomDetectors = new ConcurrentHashMap<>(); + executor = Executors.newCachedThreadPool(new ThreadFactoryBuilder() + .setNameFormat("DockerApiConnector-%d") + .setDaemon(true) + .build()); } @Inject @@ -149,19 +157,19 @@ private DockerConnector(DockerConnectorConfiguration connectorConfiguration) { * @throws IOException */ public org.eclipse.che.plugin.docker.client.json.SystemInfo getSystemInfo() throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = connection.method("GET").path("/info").request(); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/info")) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), org.eclipse.che.plugin.docker.client.json.SystemInfo.class, null, FIRST_LETTER_LOWERCASE); + return JsonHelper.fromJson(response.getInputStream(), + org.eclipse.che.plugin.docker.client.json.SystemInfo.class, + null, + FIRST_LETTER_LOWERCASE); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } @@ -172,20 +180,16 @@ public org.eclipse.che.plugin.docker.client.json.SystemInfo getSystemInfo() thro * @throws IOException */ public Version getVersion() throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = connection.method("GET").path("/version").request(); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/version")) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), Version.class, null, - FIRST_LETTER_LOWERCASE); + return JsonHelper.fromJson(response.getInputStream(), Version.class, null, FIRST_LETTER_LOWERCASE); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } @@ -196,19 +200,16 @@ public Version getVersion() throws IOException { * @throws IOException */ public Image[] listImages() throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = connection.method("GET").path("/images/json").request(); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/images/json")) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), Image[].class, null, FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), Image[].class); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } @@ -264,20 +265,6 @@ protected String buildImage(String repository, return doBuildImage(repository, tar, progressMonitor, dockerDaemonUri, authConfigs); } - - private String getBuildImageId(ProgressStatus progressStatus) { - final String stream = progressStatus.getStream(); - if (stream != null && stream.startsWith("Successfully built ")) { - int endSize = 19; - while (endSize < stream.length() && Character.digit(stream.charAt(endSize), 16) != -1) { - endSize++; - } - return stream.substring(19, endSize); - } - return null; - } - - /** * Gets detailed information about docker image. * @@ -291,19 +278,16 @@ public ImageInfo inspectImage(String image) throws IOException { } protected ImageInfo doInspectImage(String image, URI dockerDaemonUri) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = connection.method("GET").path(String.format("/images/%s/json", image)).request(); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/images/" + image + "/json")) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), ImageInfo.class, null, FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), ImageInfo.class); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } @@ -322,7 +306,6 @@ public void push(String repository, doPush(repository, tag, registry, progressMonitor, dockerDaemonUri); } - /** * See Docker remote API # Create an * image. @@ -342,8 +325,8 @@ public ContainerCreated createContainer(ContainerConfig containerConfig, String return doCreateContainer(containerConfig, containerName, dockerDaemonUri); } - public void startContainer(String container, HostConfig hostConfig, LogMessageProcessor startContainerLogProcessor) throws IOException { - doStartContainer(container, hostConfig, startContainerLogProcessor, dockerDaemonUri); + public void startContainer(String container, HostConfig hostConfig) throws IOException { + doStartContainer(container, hostConfig, dockerDaemonUri); } /** @@ -358,22 +341,18 @@ public void startContainer(String container, HostConfig hostConfig, LogMessagePr * @throws IOException */ public void stopContainer(String container, long timeout, TimeUnit timeunit) throws IOException { - stopOOMDetector(container); - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - final DockerResponse response = - connection.method("POST").path(String.format("/containers/%s/stop?t=%d", container, timeunit.toSeconds(timeout))) - .headers(headers).request(); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/containers/" + container + "/stop") + .query("t", timeunit.toSeconds(timeout)) + .headers(headers)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (!(204 == status || 304 == status)) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (!(NO_CONTENT.getStatusCode() == status || NOT_MODIFIED.getStatusCode() == status)) { + throw new DockerException(getDockerExceptionMessage(response), status); } - } finally { - connection.close(); } } @@ -387,22 +366,19 @@ public void stopContainer(String container, long timeout, TimeUnit timeunit) thr * @throws IOException */ public void killContainer(String container, int signal) throws IOException { - stopOOMDetector(container); - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - final DockerResponse response = connection.method("POST") - .path(String.format("/containers/%s/kill?signal=%d", container, signal)) - .headers(headers).request(); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/containers/" + container + "/kill") + .query("signal", signal) + .headers(headers)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (204 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (NO_CONTENT.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - } finally { - connection.close(); } } @@ -417,7 +393,6 @@ public void killContainer(String container) throws IOException { killContainer(container, 9); } - /** * Removes container. * @@ -430,19 +405,15 @@ public void killContainer(String container) throws IOException { * @throws IOException */ public void removeContainer(String container, boolean force, boolean removeVolumes) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = - connection.method("DELETE") - .path(String.format("/containers/%s?force=%d&v=%d", container, force ? 1 : 0, removeVolumes ? 1 : 0)) - .request(); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("DELETE") + .path("/containers/" + container) + .query("force", force ? 1 : 0) + .query("v", removeVolumes ? 1 : 0)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (204 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (NO_CONTENT.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - } finally { - connection.close(); } } @@ -455,23 +426,21 @@ public void removeContainer(String container, boolean force, boolean removeVolum * @throws IOException */ public int waitContainer(String container) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - final DockerResponse response = - connection.method("POST").path(String.format("/containers/%s/wait", container)).headers(headers).request(); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/containers/" + container + "/wait") + .headers(headers)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), ContainerExitStatus.class, null, FIRST_LETTER_LOWERCASE).getStatusCode(); + return parseResponseStreamAndClose(response.getInputStream(), ContainerExitStatus.class).getStatusCode(); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } @@ -489,23 +458,19 @@ public ContainerInfo inspectContainer(String container) throws IOException { } protected ContainerInfo doInspectContainer(String container, URI dockerDaemonUri) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = connection.method("GET").path(String.format("/containers/%s/json", container)).request(); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/containers/" + container + "/json")) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), ContainerInfo.class, null, FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), ContainerInfo.class); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } - /** * Attaches to the container with specified id. * @@ -518,27 +483,29 @@ protected ContainerInfo doInspectContainer(String container, URI dockerDaemonUri * stream} is {@code true} since this method blocks until container is running. * @throws java.io.IOException */ - public void attachContainer(String container, LogMessageProcessor containerLogsProcessor, boolean stream) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - final String path = String.format("/containers/%s/attach?stream=%d&logs=%d&stdout=%d&stderr=%d", container, (stream ? 1 : 0), - (stream ? 0 : 1), 1, 1); - final DockerResponse response = connection.method("POST").path(path).headers(headers).request(); + public void attachContainer(String container, MessageProcessor containerLogsProcessor, boolean stream) throws IOException { + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/containers/" + container + "/attach") + .query("stream", (stream ? 1 : 0)) + .query("logs", (stream ? 0 : 1)) + .query("stdout", 1) + .query("stderr", 1) + .headers(headers)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); + } + try (InputStream responseStream = response.getInputStream()) { + new LogMessagePumper(responseStream, containerLogsProcessor).start(); } - new LogMessagePumper(response.getInputStream(), containerLogsProcessor).start(); - } finally { - connection.close(); } } - public String commit(String container, String repository, String tag, String comment, String author) throws IOException { // todo: pause container return doCommit(container, repository, tag, comment, author, dockerDaemonUri); @@ -554,92 +521,89 @@ public String commit(String container, String repository, String tag, String com * @param hostPath * path to the directory on host filesystem * @throws IOException + * @deprecated since 1.20 docker api in favor of the {@link #getResource(String, String)} + * and {@link #putResource(String, String, InputStream, boolean) putResource} */ + @Deprecated public void copy(String container, String path, File hostPath) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "application/json")); - final String entity = JsonHelper.toJson(new ContainerResource().withResource(path), FIRST_LETTER_LOWERCASE); - headers.add(Pair.of("Content-Length", entity.getBytes().length)); - final DockerResponse response = connection.method("POST").path(String.format("/containers/%s/copy", container)) - .headers(headers).entity(entity).request(); + final String entity = JsonHelper.toJson(new ContainerResource().withResource(path), FIRST_LETTER_LOWERCASE); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); + headers.add(Pair.of("Content-Length", entity.getBytes().length)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path(String.format("/containers/%s/copy", container)) + .headers(headers) + .entity(entity)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } // TarUtils uses apache commons compress library for working with tar archive and it fails // (e.g. doesn't unpack all files from archive in case of coping directory) when we try to use stream from docker remote API. // Docker sends tar contents as sequence of chunks and seems that causes problems for apache compress library. // The simplest solution is spool content to temporary file and then unpack it to destination folder. final Path spoolFilePath = Files.createTempFile("docker-copy-spool-", ".tar"); - try { - Files.copy(response.getInputStream(), spoolFilePath, StandardCopyOption.REPLACE_EXISTING); + try (InputStream is = response.getInputStream()) { + Files.copy(is, spoolFilePath, StandardCopyOption.REPLACE_EXISTING); try (InputStream tarStream = Files.newInputStream(spoolFilePath)) { TarUtils.untar(tarStream, hostPath); } } finally { FileCleaner.addFile(spoolFilePath.toFile()); } - } finally { - connection.close(); } } - public Exec createExec(String container, boolean detach, String... cmd) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "application/json")); - final ExecConfig execConfig = new ExecConfig().withCmd(cmd); - if (!detach) { - execConfig.withAttachStderr(true).withAttachStdout(true); - } - final String entity = JsonHelper.toJson(execConfig, FIRST_LETTER_LOWERCASE); - headers.add(Pair.of("Content-Length", entity.getBytes().length)); - final DockerResponse response = connection.method("POST").path(String.format("/containers/%s/exec", container)) - .headers(headers).entity(entity).request(); + final ExecConfig execConfig = new ExecConfig().withCmd(cmd); + if (!detach) { + execConfig.withAttachStderr(true).withAttachStdout(true); + } + final List> headers = new ArrayList<>(2); + final String entity = JsonHelper.toJson(execConfig, FIRST_LETTER_LOWERCASE); + headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); + headers.add(Pair.of("Content-Length", entity.getBytes().length)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/containers/" + container + "/exec") + .headers(headers) + .entity(entity)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); if (status / 100 != 2) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + throw new DockerException(getDockerExceptionMessage(response), status); } - String execId = JsonHelper.fromJson(response.getInputStream(), ExecCreated.class, null, FIRST_LETTER_LOWERCASE).getId(); - return new Exec(cmd, execId); + return new Exec(cmd, parseResponseStreamAndClose(response.getInputStream(), ExecCreated.class).getId()); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } - public void startExec(String execId, LogMessageProcessor execOutputProcessor) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "application/json")); - final ExecStart execStart = new ExecStart().withDetach(execOutputProcessor == null); - final String entity = JsonHelper.toJson(execStart, FIRST_LETTER_LOWERCASE); - headers.add(Pair.of("Content-Length", entity.getBytes().length)); - final DockerResponse response = connection.method("POST") - .path(String.format("/exec/%s/start", execId)) - .headers(headers) - .entity(entity) - .request(); + public void startExec(String execId, MessageProcessor execOutputProcessor) throws IOException { + final ExecStart execStart = new ExecStart().withDetach(execOutputProcessor == null); + final String entity = JsonHelper.toJson(execStart, FIRST_LETTER_LOWERCASE); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); + headers.add(Pair.of("Content-Length", entity.getBytes().length)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/exec/" + execId + "/start") + .headers(headers) + .entity(entity)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); // According to last doc (https://docs.docker.com/reference/api/docker_remote_api_v1.15/#exec-start) status must be 201 but // in fact docker API returns 200 or 204 status. if (status / 100 != 2) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + throw new DockerException(getDockerExceptionMessage(response), status); } - if (status != 204 && execOutputProcessor != null) { - new LogMessagePumper(response.getInputStream(), execOutputProcessor).start(); + if (status != NO_CONTENT.getStatusCode() && execOutputProcessor != null) { + try (InputStream responseStream = response.getInputStream()) { + new LogMessagePumper(responseStream, execOutputProcessor).start(); + } } - } finally { - connection.close(); } } @@ -650,58 +614,173 @@ public void startExec(String execId, LogMessageProcessor execOutputProcessor) th * @throws IOException */ public ExecInfo getExecInfo(String execId) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = connection.method("GET").path(String.format("/exec/%s/json", execId)).request(); - + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/exec/" + execId + "/json")) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), ExecInfo.class, null, FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), ExecInfo.class); } catch (Exception e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } - public ContainerProcesses top(String container, String... psArgs) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - final String path; - if (psArgs == null || psArgs.length == 0) { - path = String.format("/containers/%s/top", container); - } else { - final StringBuilder pathBuilder = new StringBuilder(); - pathBuilder.append("/containers/").append(container).append("/top?ps_args="); - for (int i = 0, l = psArgs.length; i < l; i++) { - if (i > 0) { - pathBuilder.append('+'); - } - pathBuilder.append(URLEncoder.encode(psArgs[i], "UTF-8")); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + final DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/containers/" + container + "/top") + .headers(headers); + if (psArgs != null && psArgs.length != 0) { + StringBuilder psArgsQueryBuilder = new StringBuilder(); + for (int i = 0, l = psArgs.length; i < l; i++) { + if (i > 0) { + psArgsQueryBuilder.append('+'); } - path = pathBuilder.toString(); + psArgsQueryBuilder.append(URLEncoder.encode(psArgs[i], "UTF-8")); } - final DockerResponse response = connection.method("GET").path(path).headers(headers).request(); + connection.query("ps_args", psArgsQueryBuilder.toString()); + } + + try { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), ContainerProcesses.class, null, FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), ContainerProcesses.class); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); + throw new IOException(e.getLocalizedMessage(), e); } finally { connection.close(); } } + /** + * Gets files from the specified container. + * + * @param container + * container id + * @param sourcePath + * path to file or directory inside specified container + * @return stream of resources from the specified container filesystem, with retention connection + * @throws IOException + * when problems occurs with docker api calls + * @apiNote this method implements 1.20 docker API and requires docker not less than 1.8.* version + */ + public InputStream getResource(String container, String sourcePath) throws IOException { + DockerConnection connection = openConnection(dockerDaemonUri); + final DockerResponse response = connection.method("GET") + .path(String.format("/containers/%s/archive?path=%s", container, sourcePath)) + .request(); + final int status = response.getStatus(); + if (status != OK.getStatusCode()) { + final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); + throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + } + + return new CloseConnectionInputStream(response.getInputStream(), connection); + } + + /** + * Puts files into specified container. + * + * @param container + * container id + * @param targetPath + * path to file or directory inside specified container + * @param sourceStream + * stream of files from source container + * @param overwrite + * If "false" then it will be an error if unpacking the given content would cause + * an existing directory to be replaced with a non-directory or other resource and vice versa. + * @throws IOException + * when problems occurs with docker api calls, or during file system operations + * @apiNote this method implements 1.20 docker API and requires docker not less than 1.8 version + */ + public void putResource(String container, String targetPath, InputStream sourceStream, boolean overwrite) throws IOException { + File tarFile; + long length; + try (InputStream sourceData = sourceStream) { + Path tarFilePath = Files.createTempFile("compressed-resources", ".tar"); + tarFile = tarFilePath.toFile(); + length = Files.copy(sourceData, tarFilePath, StandardCopyOption.REPLACE_EXISTING); + } + + List> headers = Arrays.asList(Pair.of("Content-Type", ExtMediaType.APPLICATION_X_TAR), + Pair.of("Content-Length", length)); + DockerConnection connection = null; + try (InputStream tarStream = new BufferedInputStream(new FileInputStream(tarFile))) { + connection = openConnection(dockerDaemonUri).method("PUT") + .path(String.format("/containers/%s/archive?path=%s&noOverwriteDirNonDir=%d", + container, targetPath, overwrite ? 0 : 1)) + .headers(headers) + .entity(tarStream); + final DockerResponse response = connection.request(); + final int status = response.getStatus(); + if (status != OK.getStatusCode()) { + final String m = CharStreams.toString(new InputStreamReader(response.getInputStream())); + throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, m), status); + } + } finally { + if (connection != null) { + connection.close(); + } + FileCleaner.addFile(tarFile); + } + } + + /** + * Get docker events. + * Parameter {@code untilSecond} does nothing if {@code sinceSecond} is 0.
+ * If {@code untilSecond} and {@code sinceSecond} are 0 method gets new events only (streaming mode).
+ * If {@code untilSecond} and {@code sinceSecond} are not 0 (but less that current date) + * methods get events that were generated between specified dates.
+ * If {@code untilSecond} is 0 but {@code sinceSecond} is not method gets old events and streams new ones.
+ * If {@code sinceSecond} is 0 no old events will be got.
+ * With some connection implementations method can fail due to connection timeout in streaming mode. + * + * @param sinceSecond + * UNIX date in seconds. allow omit events created before specified date. + * @param untilSecond + * UNIX date in seconds. allow omit events created after specified date. + * @param filters + * filter of needed events. Available filters: {@code event=} + * {@code image=} {@code container=} + * @param messageProcessor + * processor of all found events that satisfy specified parameters + * @throws IOException + */ + public void getEvents(long sinceSecond, + long untilSecond, + Filters filters, + MessageProcessor messageProcessor) throws IOException { + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/events")) { + if (sinceSecond != 0) { + connection.query("since", sinceSecond); + } + if (untilSecond != 0) { + connection.query("until", untilSecond); + } + if (filters != null) { + connection.query("filters", urlPathSegmentEscaper().escape(JsonHelper.toJson(filters.getFilters()))); + } + final DockerResponse response = connection.request(); + final int status = response.getStatus(); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); + } + + try (InputStream responseStream = response.getInputStream()) { + new MessagePumper<>(new JsonMessageReader<>(responseStream, Event.class), messageProcessor).start(); + } + } + } + /** * Builds new docker image from specified tar archive that must contain Dockerfile. * @@ -729,165 +808,161 @@ protected String doBuildImage(String repository, if (authConfigs == null) { authConfigs = initialAuthConfig.getAuthConfigs(); } - DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(3); - headers.add(Pair.of("Content-Type", "application/x-compressed-tar")); - headers.add(Pair.of("Content-Length", tar.length())); - headers.add(Pair.of("X-Registry-Config", Base64.encodeBase64String(JsonHelper.toJson(authConfigs).getBytes()))); - final DockerResponse response; - try (InputStream tarInput = new FileInputStream(tar)) { - response = connection.method("POST").path(String.format("/build?t=%s&rm=%d&pull=%d", repository, 1, 1)).headers(headers) - .entity(tarInput).request(); + final List> headers = new ArrayList<>(3); + headers.add(Pair.of("Content-Type", "application/x-compressed-tar")); + headers.add(Pair.of("Content-Length", tar.length())); + headers.add(Pair.of("X-Registry-Config", Base64.encodeBase64String(JsonHelper.toJson(authConfigs).getBytes()))); + + try (InputStream tarInput = new FileInputStream(tar); + DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/build") + .query("rm", 1) + .query("pull", 1) + .headers(headers) + .entity(tarInput)) { + if (repository != null) { + connection.query("t", repository); } + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - final ValueHolder errorHolder = new ValueHolder<>(); - final ValueHolder imageIdHolder = new ValueHolder<>(); - final ProgressStatusReader progressReader = new ProgressStatusReader(response.getInputStream()); - final Runnable runnable = new Runnable() { - @Override - public void run() { - try { - ProgressStatus progressStatus; - while ((progressStatus = progressReader.next()) != null) { - final String buildImageId = getBuildImageId(progressStatus); - if (buildImageId != null) { - imageIdHolder.set(buildImageId); + try (InputStream responseStream = response.getInputStream()) { + JsonMessageReader progressReader = new JsonMessageReader<>(responseStream, ProgressStatus.class); + + final ValueHolder errorHolder = new ValueHolder<>(); + final ValueHolder imageIdHolder = new ValueHolder<>(); + // Here do some trick to be able interrupt build process. Basically for now it is not possible interrupt docker daemon while + // it's building images but here we need just be able to close connection to the unix socket. Thread is blocking while read + // from the socket stream so need one more thread that is able to close socket. In this way we can release thread that is + // blocking on i/o. + final Runnable runnable = new Runnable() { + @Override + public void run() { + try { + ProgressStatus progressStatus; + while ((progressStatus = progressReader.next()) != null) { + final String buildImageId = getBuildImageId(progressStatus); + if (buildImageId != null) { + imageIdHolder.set(buildImageId); + } + progressMonitor.updateProgress(progressStatus); } - progressMonitor.updateProgress(progressStatus); + } catch (IOException e) { + errorHolder.set(e); + } + synchronized (this) { + notify(); } - } catch (IOException e) { - errorHolder.set(e); - } - synchronized (this) { - notify(); } + }; + executor.execute(runnable); + // noinspection SynchronizationOnLocalVariableOrMethodParameter + synchronized (runnable) { + runnable.wait(); } - }; - executor.execute(runnable); - // noinspection SynchronizationOnLocalVariableOrMethodParameter - synchronized (runnable) { - runnable.wait(); - } - final IOException ioe = errorHolder.get(); - if (ioe != null) { - throw ioe; - } - if (imageIdHolder.get() == null) { - throw new IOException("Docker image build failed"); + final IOException ioe = errorHolder.get(); + if (ioe != null) { + throw ioe; + } + if (imageIdHolder.get() == null) { + throw new IOException("Docker image build failed"); + } + return imageIdHolder.get(); } - return imageIdHolder.get(); - } finally { - connection.close(); } } protected void doRemoveImage(String image, boolean force, URI dockerDaemonUri) throws IOException { - DockerConnection connection = openConnection(dockerDaemonUri); - try { - final DockerResponse response = - connection.method("DELETE").path(String.format("/images/%s?force=%d", image, force ? 1 : 0)).request(); + try (DockerConnection connection = openConnection(dockerDaemonUri).method("DELETE") + .path("/images/" + image) + .query("force", force ? 1 : 0)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - String output = CharStreams.toString(new InputStreamReader(response.getInputStream())); - LOG.debug("remove image: {}", output); - } finally { - connection.close(); } } protected void doTag(String image, String repository, String tag, URI dockerDaemonUri) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(3); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - final StringBuilder pathBuilder = new StringBuilder("/images/"); - pathBuilder.append(image); - pathBuilder.append("/tag"); - pathBuilder.append("?repo="); - pathBuilder.append(repository); - pathBuilder.append("&force="); - pathBuilder.append(0); + final List> headers = new ArrayList<>(3); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/images/" + image + "/tag") + .query("repo", repository) + .query("force", 0) + .headers(headers)) { if (tag != null) { - pathBuilder.append("&tag="); - pathBuilder.append(tag); + connection.query("tag", tag); } - final DockerResponse response = connection.method("POST").path(pathBuilder.toString()).headers(headers).request(); + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (201 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (CREATED.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - } finally { - connection.close(); } } - protected void doPush(String repository, - String tag, - String registry, + protected void doPush(final String repository, + final String tag, + final String registry, final ProgressMonitor progressMonitor, - URI dockerDaemonUri) throws IOException, InterruptedException { - DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(3); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - headers.add(Pair.of("X-Registry-Auth", initialAuthConfig.getAuthConfigHeader())); - final StringBuilder pathBuilder = new StringBuilder("/images/"); - if (registry != null) { - pathBuilder.append(registry).append("/").append(repository); - } else { - pathBuilder.append(repository); - } - pathBuilder.append("/push"); + final URI dockerDaemonUri) throws IOException, InterruptedException { + final List> headers = new ArrayList<>(3); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + headers.add(Pair.of("X-Registry-Auth", initialAuthConfig.getAuthConfigHeader())); + final String fullRepo = registry != null ? registry + "/" + repository : repository; + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/images/" + fullRepo + "/push") + .headers(headers)) { if (tag != null) { - pathBuilder.append("?tag="); - pathBuilder.append(tag); + connection.query("tag", tag); } - final DockerResponse response = connection.method("POST").path(pathBuilder.toString()).headers(headers).request(); + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - final ValueHolder errorHolder = new ValueHolder<>(); - final ProgressStatusReader progressReader = new ProgressStatusReader(response.getInputStream()); - final Runnable runnable = new Runnable() { - @Override - public void run() { - try { - ProgressStatus progressStatus; - while ((progressStatus = progressReader.next()) != null) { - progressMonitor.updateProgress(progressStatus); + try (InputStream responseStream = response.getInputStream()) { + JsonMessageReader progressReader = new JsonMessageReader<>(responseStream, ProgressStatus.class); + + final ValueHolder errorHolder = new ValueHolder<>(); + // Here do some trick to be able interrupt push process. Basically for now it is not possible interrupt docker daemon while + // it's pushing images but here we need just be able to close connection to the unix socket. Thread is blocking while read + // from the socket stream so need one more thread that is able to close socket. In this way we can release thread that is + // blocking on i/o. + final Runnable runnable = new Runnable() { + @Override + public void run() { + try { + ProgressStatus progressStatus; + while ((progressStatus = progressReader.next()) != null) { + progressMonitor.updateProgress(progressStatus); + } + } catch (IOException e) { + errorHolder.set(e); + } + synchronized (this) { + notify(); } - } catch (IOException e) { - errorHolder.set(e); - } - synchronized (this) { - notify(); } + }; + executor.execute(runnable); + // noinspection SynchronizationOnLocalVariableOrMethodParameter + synchronized (runnable) { + runnable.wait(); + } + final IOException ioe = errorHolder.get(); + if (ioe != null) { + throw ioe; } - }; - executor.execute(runnable); - // noinspection SynchronizationOnLocalVariableOrMethodParameter - synchronized (runnable) { - runnable.wait(); - } - final IOException ioe = errorHolder.get(); - if (ioe != null) { - throw ioe; } - } finally { - connection.close(); } } @@ -897,40 +972,35 @@ protected String doCommit(String container, String comment, String author, URI dockerDaemonUri) throws IOException { - DockerConnection connection = openConnection(dockerDaemonUri); - try { - final StringBuilder pathBuilder = new StringBuilder("/commit?container="); - pathBuilder.append(container); - pathBuilder.append("&repo="); - pathBuilder.append(repository); + + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); + final String entity = "{}"; + headers.add(Pair.of("Content-Length", entity.getBytes().length)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/commit") + .query("container", container) + .query("repo", repository) + .headers(headers) + .entity(entity)) { if (tag != null) { - pathBuilder.append("&tag="); - pathBuilder.append(tag); + connection.query("tag", tag); } if (comment != null) { - pathBuilder.append("&comment="); - pathBuilder.append(URLEncoder.encode(comment, "UTF-8")); + connection.query("comment", URLEncoder.encode(comment, "UTF-8")); } - if (author != null) { - pathBuilder.append("&author="); - pathBuilder.append(URLEncoder.encode(author, "UTF-8")); + if (comment != null) { + connection.query("author", URLEncoder.encode(author, "UTF-8")); } - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "application/json")); - final String entity = "{}"; - headers.add(Pair.of("Content-Length", entity.getBytes().length)); - final DockerResponse response = - connection.method("POST").path(pathBuilder.toString()).headers(headers).entity(entity).request(); + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (201 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (CREATED.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), ContainerCommited.class, null, FIRST_LETTER_LOWERCASE).getId(); + return parseResponseStreamAndClose(response.getInputStream(), ContainerCommited.class).getId(); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } @@ -939,116 +1009,141 @@ protected void doPull(String image, String registry, final ProgressMonitor progressMonitor, URI dockerDaemonUri) throws IOException, InterruptedException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(3); - headers.add(Pair.of("Content-Type", "text/plain")); - headers.add(Pair.of("Content-Length", 0)); - headers.add(Pair.of("X-Registry-Auth", initialAuthConfig.getAuthConfigHeader())); - final StringBuilder pathBuilder = new StringBuilder("/images/create?fromImage="); - if (registry != null) { - pathBuilder.append(registry).append("/"); - } - pathBuilder.append(image); + final List> headers = new ArrayList<>(3); + headers.add(Pair.of("Content-Type", MediaType.TEXT_PLAIN)); + headers.add(Pair.of("Content-Length", 0)); + headers.add(Pair.of("X-Registry-Auth", initialAuthConfig.getAuthConfigHeader())); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/images/create") + .query("fromImage", + registry != null ? registry + "/" + image : image) + .headers(headers)) { if (tag != null) { - pathBuilder.append("&tag="); - pathBuilder.append(tag); + connection.query("tag", tag); } - final DockerResponse response = connection.method("POST").path(pathBuilder.toString()).headers(headers).request(); + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (200 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (OK.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - final ValueHolder errorHolder = new ValueHolder<>(); - final ProgressStatusReader progressReader = new ProgressStatusReader(response.getInputStream()); - final Runnable runnable = new Runnable() { - @Override - public void run() { - try { - ProgressStatus progressStatus; - while ((progressStatus = progressReader.next()) != null) { - progressMonitor.updateProgress(progressStatus); + try (InputStream responseStream = response.getInputStream()) { + JsonMessageReader progressReader = new JsonMessageReader<>(responseStream, ProgressStatus.class); + + final ValueHolder errorHolder = new ValueHolder<>(); + // Here do some trick to be able interrupt pull process. Basically for now it is not possible interrupt docker daemon while + // it's pulling images but here we need just be able to close connection to the unix socket. Thread is blocking while read + // from the socket stream so need one more thread that is able to close socket. In this way we can release thread that is + // blocking on i/o. + final Runnable runnable = new Runnable() { + @Override + public void run() { + try { + ProgressStatus progressStatus; + while ((progressStatus = progressReader.next()) != null) { + progressMonitor.updateProgress(progressStatus); + } + } catch (IOException e) { + errorHolder.set(e); + } + synchronized (this) { + notify(); } - } catch (IOException e) { - errorHolder.set(e); - } - synchronized (this) { - notify(); } + }; + executor.execute(runnable); + // noinspection SynchronizationOnLocalVariableOrMethodParameter + synchronized (runnable) { + runnable.wait(); + } + final IOException ioe = errorHolder.get(); + if (ioe != null) { + throw ioe; } - }; - executor.execute(runnable); - // noinspection SynchronizationOnLocalVariableOrMethodParameter - synchronized (runnable) { - runnable.wait(); - } - final IOException ioe = errorHolder.get(); - if (ioe != null) { - throw ioe; } - } finally { - connection.close(); } } protected ContainerCreated doCreateContainer(ContainerConfig containerConfig, String containerName, URI dockerDaemonUri) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "application/json")); - final String entity = JsonHelper.toJson(containerConfig, FIRST_LETTER_LOWERCASE); - headers.add(Pair.of("Content-Length", entity.getBytes().length)); - final StringBuilder pathBuilder = new StringBuilder("/containers/create"); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); + final String entity = JsonHelper.toJson(containerConfig, FIRST_LETTER_LOWERCASE); + headers.add(Pair.of("Content-Length", entity.getBytes().length)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/containers/create") + .headers(headers) + .entity(entity)) { if (containerName != null) { - pathBuilder.append("?name="); - pathBuilder.append(containerName); + connection.query("name", containerName); } - final DockerResponse response = - connection.method("POST").path(pathBuilder.toString()).headers(headers).entity(entity).request(); + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (201 != status) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); + if (CREATED.getStatusCode() != status) { + throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), ContainerCreated.class, null, FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), ContainerCreated.class); } catch (JsonParseException e) { - throw new IOException(e.getMessage(), e); - } finally { - connection.close(); + throw new IOException(e.getLocalizedMessage(), e); } } protected void doStartContainer(String container, HostConfig hostConfig, - LogMessageProcessor startContainerLogProcessor, URI dockerDaemonUri) throws IOException { - final DockerConnection connection = openConnection(dockerDaemonUri); - try { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", "application/json")); - final String entity = hostConfig == null ? "{}" : JsonHelper.toJson(hostConfig, FIRST_LETTER_LOWERCASE); - headers.add(Pair.of("Content-Length", entity.getBytes().length)); - final DockerResponse response = connection.method("POST").path(String.format("/containers/%s/start", container)) - .headers(headers).entity(entity).request(); + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); + final String entity = hostConfig == null ? "{}" : JsonHelper.toJson(hostConfig, FIRST_LETTER_LOWERCASE); + headers.add(Pair.of("Content-Length", entity.getBytes().length)); + + try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") + .path("/containers/" + container + "/start") + .headers(headers) + .entity(entity)) { + final DockerResponse response = connection.request(); final int status = response.getStatus(); - if (!(204 == status || 304 == status)) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - if (200 == status) { + if (!(NO_CONTENT.getStatusCode() == status || NOT_MODIFIED.getStatusCode() == status)) { + + final String errorMessage = getDockerExceptionMessage(response); + if (OK.getStatusCode() == status) { // docker API 1.20 returns 200 with warning message about usage of loopback docker backend - LOG.warn(msg); + LOG.warn(errorMessage); } else { - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), - status); + throw new DockerException(errorMessage, status); } } - if ((204 == status) || (200 == status)) { - startOOMDetector(container, startContainerLogProcessor); + } + } + + private String getBuildImageId(ProgressStatus progressStatus) { + final String stream = progressStatus.getStream(); + if (stream != null && stream.startsWith("Successfully built ")) { + int endSize = 19; + while (endSize < stream.length() && Character.digit(stream.charAt(endSize), 16) != -1) { + endSize++; } - } finally { - connection.close(); + return stream.substring(19, endSize); + } + return null; + } + + private T parseResponseStreamAndClose(InputStream inputStream, Class clazz) throws IOException, JsonParseException { + try (InputStream responseStream = inputStream) { + return JsonHelper.fromJson(responseStream, + clazz, + null, + FIRST_LETTER_LOWERCASE); + } + } + + private String getDockerExceptionMessage(DockerResponse response) throws IOException { + try (InputStream is = response.getInputStream()) { + return "Error response from docker API, status: " + + response.getStatus() + + ", message: " + + CharStreams.toString(new InputStreamReader(is)); } } @@ -1066,7 +1161,6 @@ public String toJavaName(String jsonName) { } }; - protected DockerConnection openConnection(URI dockerDaemonUri) { if (isUnixSocketUri(dockerDaemonUri)) { return new UnixSocketConnection(dockerDaemonUri.getPath()); @@ -1075,218 +1169,11 @@ protected DockerConnection openConnection(URI dockerDaemonUri) { } } - - private boolean isUnixSocketUri(URI uri) { + static boolean isUnixSocketUri(URI uri) { return UNIX_SOCKET_SCHEME.equals(uri.getScheme()); } - private void createTarArchive(File tar, File... files) throws IOException { TarUtils.tarFiles(tar, 0, files); } - - // OOM detect - - private void startOOMDetector(String container, LogMessageProcessor containerLogProcessor) { - if (needStartOOMDetector()) { - if (cgroupMount == null) { - LOG.warn("System doesn't support OOM events"); - return; - } - final OOMDetector oomDetector = new OOMDetector(container, containerLogProcessor); - oomDetectors.put(container, oomDetector); - oomDetector.start(); - } - } - - private boolean needStartOOMDetector() { - if (isUnixSocketUri(dockerDaemonUri)) { - return true; - } - if (SystemInfo.isLinux()) { - final String dockerDaemonHost = dockerDaemonUri.getHost(); - if ("localhost".equals(dockerDaemonHost) || "127.0.0.1".equals(dockerDaemonHost)) { - return true; - } - } - return false; - } - - private void stopOOMDetector(String container) { - final OOMDetector oomDetector = oomDetectors.remove(container); - if (oomDetector != null) { - oomDetector.stop(); - } - } - - - /* - * Need detect OOM errors and notify users about them. Without such notification if application is killed by oom-killer client often can - * see message "Killed" and there is no any why to see why. Unfortunately for now docker doesn't provide clear mechanism how to control - * OOM errors, with docker event mechanism can get something like that: - * {"status":"die","id":"dfdf82bd3881","from":"base:latest","time":1374067970} - * That is not enough. - * Found two ways how to control OOM errors. - * - * 1. With parsing output of 'dmesg' command - * ---- - * andrew@andrey:~> dmesg | grep oom-killer - * [41313.629018] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0 - * [41631.391818] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0 - * ... - * ----- - * Problem here is in timestamp format. Unfortunately dmesg doesn't provide real time correctly with -T option. Here is a piece of man - * page: - * ----- - * -T, --ctime - * Print human readable timestamps. The timestamp could be inaccurate! - * - * The time source used for the logs is not updated after system SUSPEND/RESUME. - * ----- - * So it's complicated to detect time when oom-killer was activated and link its activity with failed docker container. - * - * 2. Usage of cgroup notification mechanism. - * Good article about this: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-Using_the_Notification_API.html - */ - private static String cgroupMount; - private static boolean systemd; - - static { - if (SystemInfo.isLinux()) { - final String mounts = "/proc/mounts"; - try (BufferedReader reader = Files.newBufferedReader(Paths.get(mounts), Charset.forName("UTF-8"))) { - String line; - while ((line = reader.readLine()) != null) { - String[] a = line.split("\\s+"); - // line has format: "DEVICE PATH FILESYSTEM FLAGS_DELIMITED_BY_COMMAS ??? ???" - String filesystem = a[2]; - if ("cgroup".equals(filesystem)) { - String path = a[1]; - if (path.endsWith("cpu") - || path.endsWith("cpuacct") - || path.endsWith("cpuset") - || path.endsWith("memory") - || path.endsWith("devices") - || path.endsWith("freezer")) { - cgroupMount = Paths.get(path).getParent().toString(); - } else if (path.endsWith("systemd")) { - systemd = true; - } - } - } - } catch (IOException e) { - LOG.error(e.getMessage(), e); - } - } - } - - /** - * Detects OOM with cgroup notification mechanism. - *

- * https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-Using_the_Notification_API.html - */ - private class OOMDetector implements Runnable { - private final String container; - private final LogMessageProcessor containerLogProcessor; - private final CLibrary cLib; - private final String containerCgroup; - - private volatile boolean stopped = false; - - OOMDetector(String container, LogMessageProcessor containerLogProcessor) { - this.container = container; - this.containerLogProcessor = containerLogProcessor; - cLib = getCLibrary(); - - if (systemd) { - containerCgroup = cgroupMount + "/memory/system.slice/docker-" + container + ".scope/"; - } else { - containerCgroup = cgroupMount + "/memory/docker/" + container + "/"; - } - } - - @Override - public void run() { - final String cf = containerCgroup + "cgroup.event_control"; - final String oomf = containerCgroup + "memory.oom_control"; - int efd = -1; - int oomfd = -1; - try { - if ((efd = cLib.eventfd(0, 1)) == -1) { - LOG.error("Unable create a file descriptor for event notification"); - return; - } - int cfd; - if ((cfd = cLib.open(cf, CLibrary.O_WRONLY)) == -1) { - LOG.error("Unable open event control file '{}' for write", cf); - return; - } - if ((oomfd = cLib.open(oomf, CLibrary.O_RDONLY)) == -1) { - LOG.error("Unable open OOM event file '{}' for read", oomf); - return; - } - final byte[] data = String.format("%d %d", efd, oomfd).getBytes(); - if (cLib.write(cfd, data, data.length) != data.length) { - LOG.error("Unable write event control data to file '{}'", cf); - return; - } - if (cLib.close(cfd) == -1) { - LOG.error("Error closing of event control file '{}'", cf); - return; - } - final LongByReference eventHolder = new LongByReference(); - if (cLib.eventfd_read(efd, eventHolder) == 0) { - if (stopped) { - return; - } - LOG.warn("OOM event received for container '{}'", container); - if (readCgroupValue("memory.failcnt") > 0) { - try { - containerLogProcessor.process(new LogMessage(LogMessage.Type.DOCKER, - "[ERROR] The processes in this machine need more RAM. This machine started with " + - Size.toHumanSize( - inspectContainer(container).getConfig().getMemory()))); - containerLogProcessor.process(new LogMessage(LogMessage.Type.DOCKER, - "[ERROR] Create a new machine configuration that allocates additional RAM or increase" + - " the workspace RAM limit in the user dashboard.")); - } catch (/*IOException*/ Exception e) { - LOG.warn(e.getMessage(), e); - } - } - } - } finally { - if (!stopped) { - stopOOMDetector(container); - } - close(oomfd); - close(efd); - } - } - - private void close(int fd) { - if (fd != -1) { - cLib.close(fd); - } - } - - long readCgroupValue(String cgroupFile) { - final String failCntf = containerCgroup + cgroupFile; - try (BufferedReader reader = Files.newBufferedReader(Paths.get(failCntf), Charset.forName("UTF-8"))) { - return Long.parseLong(reader.readLine().trim()); - } catch (IOException e) { - LOG.warn("Unable read content of file '{}'", failCntf); - } catch (NumberFormatException e) { - LOG.error("Unable parse content of file '{}'", failCntf); - } - return 0; - } - - void start() { - executor.execute(this); - } - - void stop() { - stopped = true; - } - } } diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerOOMDetector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerOOMDetector.java new file mode 100644 index 000000000..736357863 --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerOOMDetector.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client; + +import com.google.inject.ImplementedBy; + +/** + * Detects container OOM and put message about it to log processor of container. + * + * @author Alexander Garagatyi + */ +@ImplementedBy(DockerOOMDetector.NoOpDockerOOMDetector.class) +public interface DockerOOMDetector { + + /** + * Stops detection of OOM for specified container. + * + * @param container + * container id to stop OOM detection for + */ + void stopDetection(String container); + + /** + * Starts detection of OOM for specified container. + * Does nothing if container is under OOM detection already. + * Also puts message about OOM to processor of container logs. + * + * @param container + * container id to stop OOM detection for + * @param startContainerLogProcessor + * processor of container logs to put message about OOM detection + */ + void startDetection(String container, MessageProcessor startContainerLogProcessor); + + DockerOOMDetector NOOP_DETECTOR = new NoOpDockerOOMDetector(); + + class NoOpDockerOOMDetector implements DockerOOMDetector { + @Override + public void stopDetection(String container) { + } + + @Override + public void startDetection(String container, MessageProcessor startContainerLogProcessor) { + } + } +} diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/JsonMessageReader.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/JsonMessageReader.java new file mode 100644 index 000000000..b24666f97 --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/JsonMessageReader.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client; + +import com.google.gson.Gson; +import com.google.gson.JsonIOException; +import com.google.gson.JsonParseException; +import com.google.gson.JsonStreamParser; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PushbackReader; + +/** + * Docker daemon sends chunked data in response. One chunk isn't always one JSON object so need to read full chunk at once to be able + * restore JSON object. This reader merges (if needs) few chunks until get full JSON object that we can parse. + * Parameter of this class is class where JSON message should be parsed. + * + * @author Alexander Garagatyi + */ +public class JsonMessageReader { + private static final Gson GSON = new Gson(); + + private final JsonStreamParser streamParser; + private final Class messageClass; + private final PushbackReader reader; + + private boolean firstRead = true; + + /** + * @param source source of messages in JSON format + * @param messageClass class of the message object where JSON messages should be parsed. + * Because of erasure of generic information in runtime in some cases + * we can't get parameter class of current class. + */ + public JsonMessageReader(InputStream source, Class messageClass) { + // we need to push back only 1 char, read more further + this.reader = new PushbackReader(new InputStreamReader(source), 1); + this.streamParser = new JsonStreamParser(reader); + this.messageClass = messageClass; + } + + /** + * Returns message parsed from JSON stream. + * + * @return object of class passed as parameter of constructor or null if stream is empty + * @throws IOException if error occurs on reading stream + */ + public T next() throws IOException { + // on first read we check if this stream is empty with reading of the first byte of stream + // if so we do not call JsonStreamParser.hasNext() because it will throw exception + // if not we return read byte to stream using PushbackInputStream + if (firstRead) { + int firstChar = reader.read(); + if (firstChar == -1) { + return null; + } else { + reader.unread(firstChar); + firstRead = false; + } + } + if (streamParser.hasNext()) { + try { + return GSON.fromJson(streamParser.next(), messageClass); + } catch (JsonIOException e) { + throw new IOException(e); + } catch (JsonParseException ignore) { + } + } + return null; + } +} diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessageFormatter.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessageFormatter.java index c525742cd..1302547f2 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessageFormatter.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessageFormatter.java @@ -11,9 +11,12 @@ package org.eclipse.che.plugin.docker.client; /** + * Format/beautify string representation of log messages returned by docker. + * * @author andrew00x + * @author Alexander Garagatyi */ -public interface LogMessageFormatter { +public interface LogMessageFormatter extends MessageFormatter { String format(LogMessage logMessage); LogMessageFormatter DEFAULT = new LogMessageFormatter() { @@ -38,8 +41,6 @@ public String format(LogMessage logMessage) { sb.append(content); } return sb.toString(); - } }; - } diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessagePumper.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessagePumper.java index f494f0ce2..d7c2b57cc 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessagePumper.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessagePumper.java @@ -21,20 +21,22 @@ /** * @author andrew00x */ -class LogMessagePumper { +class LogMessagePumper extends MessagePumper { private static final Logger LOG = LoggerFactory.getLogger(LogMessagePumper.class); private static final int STREAM_HEADER_LENGTH = 8; private static final int MAX_LINE_LENGTH = 1024; - private final InputStream source; - private final LogMessageProcessor target; + private final InputStream source; + private final MessageProcessor target; - LogMessagePumper(InputStream source, LogMessageProcessor target) { + LogMessagePumper(InputStream source, MessageProcessor target) { + super(null, null); this.source = source; this.target = target; } + @Override void start() throws IOException { final byte[] buf = new byte[MAX_LINE_LENGTH]; StringBuilder lineBuf = null; diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressLineFormatter.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessageFormatter.java similarity index 71% rename from plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressLineFormatter.java rename to plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessageFormatter.java index ecde7d1fe..e4c0d349b 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressLineFormatter.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessageFormatter.java @@ -10,14 +10,11 @@ *******************************************************************************/ package org.eclipse.che.plugin.docker.client; -import org.eclipse.che.plugin.docker.client.json.ProgressStatus; - /** - * Format/beautify string representation of docker build statuses + * Format/beautify string representation of docker messages * - * @author andrew00x * @author Alexander Garagatyi */ -public interface ProgressLineFormatter { - String format(ProgressStatus progressStatus); +public interface MessageFormatter { + String format(T message); } diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessageProcessor.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessageProcessor.java similarity index 73% rename from plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessageProcessor.java rename to plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessageProcessor.java index 3590773a0..a5cb8ce18 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/LogMessageProcessor.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessageProcessor.java @@ -11,14 +11,14 @@ package org.eclipse.che.plugin.docker.client; /** - * @author andrew00x + * @author Alexander Garagatyi */ -public interface LogMessageProcessor { - void process(LogMessage logMessage); +public interface MessageProcessor { + void process(T message); - LogMessageProcessor DEV_NULL = new LogMessageProcessor() { + MessageProcessor DEV_NULL = new MessageProcessor() { @Override - public void process(LogMessage logMessage) { + public void process(Object Message) { } }; diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessagePumper.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessagePumper.java new file mode 100644 index 000000000..fcb11c956 --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/MessagePumper.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client; + +import java.io.IOException; + +/** + * Pumps messages from {@code JsonMessageReader} to {@code MessageProcessor}. + * + * @author Alexander Garagatyi + */ +class MessagePumper { + private final JsonMessageReader messageReader; + private final MessageProcessor messageProcessor; + + MessagePumper(JsonMessageReader messageReader, MessageProcessor messageProcessor) { + this.messageReader = messageReader; + this.messageProcessor = messageProcessor; + } + + void start() throws IOException { + T message; + for (;(message = messageReader.next()) != null;) { + messageProcessor.process(message); + } + } +} diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressLineFormatterImpl.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressLineFormatterImpl.java index 2c9764cda..82bc8d0b4 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressLineFormatterImpl.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressLineFormatterImpl.java @@ -13,11 +13,11 @@ import org.eclipse.che.plugin.docker.client.json.ProgressStatus; /** - * Default implementation of {@link ProgressLineFormatter} + * Beatify {@link ProgressStatus} messages. * * @author Alexander Garagatyi */ -public class ProgressLineFormatterImpl implements ProgressLineFormatter { +public class ProgressLineFormatterImpl implements MessageFormatter { @Override public String format(ProgressStatus progressStatus) { final StringBuilder sb = new StringBuilder(); diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressMonitor.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressMonitor.java index 31f07d116..12c280a64 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressMonitor.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressMonitor.java @@ -13,7 +13,10 @@ import org.eclipse.che.plugin.docker.client.json.ProgressStatus; /** + * Receives updated progress statuses to be able to show user beatified progress info. + * * @author andrew00x + * @author Alexander Garagatyi */ public interface ProgressMonitor { void updateProgress(ProgressStatus currentProgressStatus); diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressStatusReader.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressStatusReader.java deleted file mode 100644 index 134c1bc51..000000000 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/ProgressStatusReader.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012-2015 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.docker.client; - -import org.eclipse.che.plugin.docker.client.json.ProgressStatus; -import com.google.gson.Gson; -import com.google.gson.JsonIOException; -import com.google.gson.JsonParseException; -import com.google.gson.JsonStreamParser; - - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; - -/** - * TODO docker 1.4 has changed output format -> write doc for new format parsing process - * Docker daemon sends chunked data in response. One chunk isn't always one JSON object so need to read full chunk at once to be able - * restore JSON object. This ProgressStatusReader merges (if needs) few chunks until get full JSON object that can we parsed to {@code - * ProgressStatus} instance. - * - * @author andrew00x - * @author Eugene Voevodin - */ -class ProgressStatusReader { - - private static final Gson GSON = new Gson(); - - private final JsonStreamParser streamParser; - - ProgressStatusReader(InputStream source) { - streamParser = new JsonStreamParser(new InputStreamReader(source)); - } - - ProgressStatus next() throws IOException { - if (streamParser.hasNext()) { - try { - return GSON.fromJson(streamParser.next(), ProgressStatus.class); - } catch (JsonIOException ioEx) { - throw new IOException(ioEx); - } catch (JsonParseException ignored) { - } - } - return null; - } -} diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/DockerConnection.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/DockerConnection.java index 0bc693c6f..e3a01d04d 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/DockerConnection.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/DockerConnection.java @@ -14,6 +14,7 @@ import org.eclipse.che.commons.lang.Pair; +import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -22,12 +23,14 @@ /** * @author andrew00x + * @author Alexander Garagatyi */ -public abstract class DockerConnection { - private String method; - private String path; - private List> headers = Collections.emptyList(); +public abstract class DockerConnection implements Closeable { + private String method; + private String path; private Entity entity; + private StringBuilder query = new StringBuilder(); + private List> headers = Collections.emptyList(); public DockerConnection method(String method) { this.method = method; @@ -39,6 +42,25 @@ public DockerConnection path(String path) { return this; } + public DockerConnection query(String name, Object... values) { + if (name == null) { + throw new NullPointerException("Name is null"); + } + if (values == null) { + throw new NullPointerException("Values are null"); + } + for (Object value : values) { + if (value == null) { + throw new NullPointerException("Value is null"); + } + if (query.length() > 0) { + query.append('&'); + } + query.append(name).append('=').append(value.toString()); + } + return this; + } + public DockerConnection headers(List> headers) { this.headers = headers; return this; @@ -60,10 +82,14 @@ public DockerConnection entity(byte[] entity) { } public DockerResponse request() throws IOException { - return request(method, path, headers, entity); + return request(method, path, query.toString(), headers, entity); } - protected abstract DockerResponse request(String method, String path, List> headers, Entity entity) throws IOException; + protected abstract DockerResponse request(String method, + String path, + String query, + List> headers, + Entity entity) throws IOException; public abstract void close(); diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java index ae638bcf7..cc86cc43f 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.che.plugin.docker.client.connection; +import com.google.common.base.Strings; + import org.eclipse.che.commons.lang.Pair; import org.eclipse.che.plugin.docker.client.DockerCertificates; @@ -69,8 +71,10 @@ public TcpConnection(@Named("docker.connection.tcp.base_uri") URI baseUri, } @Override - protected DockerResponse request(String method, String path, List> headers, Entity entity) throws IOException { - final URL url = baseUri.resolve(path).toURL(); + protected DockerResponse request(String method, String path, String query, List> headers, Entity entity) + throws IOException { + final String requestUri = path + (Strings.isNullOrEmpty(query) ? "" : "?" + query); + final URL url = baseUri.resolve(requestUri).toURL(); final String protocol = url.getProtocol(); connection = (HttpURLConnection)url.openConnection(); connection.setConnectTimeout(connectionTimeout); diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java index e5c32bebb..a429b7b68 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java @@ -10,9 +10,10 @@ *******************************************************************************/ package org.eclipse.che.plugin.docker.client.connection; -import org.eclipse.che.plugin.docker.client.CLibrary; +import com.google.common.base.Strings; import org.eclipse.che.commons.lang.Pair; +import org.eclipse.che.plugin.docker.client.CLibrary; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -31,6 +32,7 @@ /** * @author andrew00x + * @author Alexander Garagatyi */ public class UnixSocketConnection extends DockerConnection { private final String dockerSocketPath; @@ -42,10 +44,11 @@ public UnixSocketConnection(String dockerSocketPath) { } @Override - protected DockerResponse request(String method, String path, List> headers, Entity entity) throws IOException { + protected DockerResponse request(String method, String path, String query, List> headers, Entity entity) + throws IOException { fd = connect(); final OutputStream output = new BufferedOutputStream(openOutputStream(fd)); - writeHttpHeaders(output, method, path, headers); + writeHttpHeaders(output, method, path, query, headers); if (entity != null) { entity.writeTo(output); } @@ -74,11 +77,16 @@ private int connect() throws IOException { return fd; } - private void writeHttpHeaders(OutputStream output, String method, String path, List> headers) throws IOException { + private void writeHttpHeaders(OutputStream output, String method, String path, String query, List> headers) + throws IOException { final Writer writer = new OutputStreamWriter(output); writer.write(method); writer.write(' '); writer.write(path); + if (!Strings.isNullOrEmpty(query)) { + writer.write("?"); + writer.write(query); + } writer.write(" HTTP/1.1\r\n"); for (Pair header : headers) { writer.write(header.first); diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Event.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Event.java new file mode 100644 index 000000000..5f77615a4 --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Event.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client.json; + +/** + * Docker event. + * + * @author Alexander Garagatyi + */ +public class Event { + private String status; + private String id; + private String from; + private long time; + + public long getTime() { + return time; + } + + public String getFrom() { + return from; + } + + public String getId() { + return id; + } + + public String getStatus() { + return status; + } + + public Event withFrom(String from) { + this.from = from; + return this; + } + + public Event withId(String id) { + this.id = id; + return this; + } + + public Event withStatus(String status) { + this.status = status; + return this; + } + + public Event withTime(long time) { + this.time = time; + return this; + } + + @Override + public String toString() { + return "Event{" + + "status='" + status + '\'' + + ", id='" + id + '\'' + + ", from='" + from + '\'' + + ", time=" + time + + '}'; + } +} diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Filters.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Filters.java new file mode 100644 index 000000000..a58203e2b --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/Filters.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client.json; + +import com.google.common.collect.Maps; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Representation of docker filters. + * + * @author Alexander Garagatyi + */ +public class Filters { + private final Map> filters = new HashMap<>(); + + public Map> getFilters() { + final HashMap> filtersCopy = Maps.newHashMapWithExpectedSize(filters.size()); + filters.forEach((s, strings) -> filtersCopy.put(s, Collections.unmodifiableList(strings))); + + return Collections.unmodifiableMap(filtersCopy); + } + + public List getFilter(String key) { + return Collections.unmodifiableList(filters.get(key)); + } + + public Filters withFilter(String key, String... values) { + filters.put(key, Arrays.asList(values)); + return this; + } + + @Override + public String toString() { + return "Filters{" + + "filters=" + filters + + '}'; + } +} diff --git a/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/ProgressStatusReaderTest.java b/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/JsonMessageReaderTest.java similarity index 77% rename from plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/ProgressStatusReaderTest.java rename to plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/JsonMessageReaderTest.java index 5b5f07884..38edfa446 100644 --- a/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/ProgressStatusReaderTest.java +++ b/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/JsonMessageReaderTest.java @@ -23,14 +23,15 @@ /** * @author Eugene Voevodin */ -public class ProgressStatusReaderTest { +public class JsonMessageReaderTest { @Test public void shouldParseSequenceOfProcessStatusObjects() throws IOException { final String src = "{\"stream\":\"Step 0 : FROM busybox\\n\"}\n" + "{\"status\":\"The image you are pulling has been verified\",\"id\":\"busybox:latest\"}\n"; - final ProgressStatusReader reader = new ProgressStatusReader(new ByteArrayInputStream(src.getBytes())); + final JsonMessageReader reader = new JsonMessageReader<>(new ByteArrayInputStream(src.getBytes()), + ProgressStatus.class); final ProgressStatus status1 = reader.next(); final ProgressStatus status2 = reader.next(); @@ -45,7 +46,8 @@ public void shouldParseSequenceOfProcessStatusObjects() throws IOException { public void shouldReturnNullIfJsonIsIncorrect() throws IOException { final String src = "not json"; - final ProgressStatusReader reader = new ProgressStatusReader(new ByteArrayInputStream(src.getBytes())); + final JsonMessageReader reader = new JsonMessageReader<>(new ByteArrayInputStream(src.getBytes()), + ProgressStatus.class); assertNull(reader.next()); } diff --git a/plugin-docker/che-plugin-docker-machine/src/test/resources/logback-test.xml b/plugin-docker/che-plugin-docker-machine/src/test/resources/logback-test.xml new file mode 100644 index 000000000..ff3287eee --- /dev/null +++ b/plugin-docker/che-plugin-docker-machine/src/test/resources/logback-test.xml @@ -0,0 +1,35 @@ + + + + + + + %-41(%date[%.15thread]) %-45([%-5level] [%.30logger{30} %L]) - %msg%n + + + + + target/log/log.log + + %-41(%date[%.15thread]) %-45([%-5level] [%.30logger{30} %L]) - %msg%n + + + + + + + + + + From f81e3243e6d9857bec0b86f6b2f143f2348d9464 Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Thu, 17 Sep 2015 10:23:29 +0300 Subject: [PATCH 047/164] synchronize docker client in master and 4.0 --- .../plugin/docker/client/DockerConnector.java | 72 ++++++------- .../CloseConnectionInputStream.java | 64 +++++++++++ .../docker/client/json/ContainerCreated.java | 8 ++ .../docker/client/DockerConnectorTest.java | 101 ++++++++++++++++++ 4 files changed, 206 insertions(+), 39 deletions(-) create mode 100644 plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/CloseConnectionInputStream.java create mode 100644 plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java index 578298b02..c23f649c6 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java @@ -20,8 +20,6 @@ import org.eclipse.che.commons.json.JsonNameConvention; import org.eclipse.che.commons.json.JsonParseException; import org.eclipse.che.commons.lang.Pair; - - import org.eclipse.che.commons.lang.TarUtils; import org.eclipse.che.commons.lang.ws.rs.ExtMediaType; import org.eclipse.che.plugin.docker.client.connection.CloseConnectionInputStream; @@ -48,11 +46,13 @@ import org.eclipse.che.plugin.docker.client.json.ImageInfo; import org.eclipse.che.plugin.docker.client.json.ProgressStatus; import org.eclipse.che.plugin.docker.client.json.Version; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Singleton; +import javax.ws.rs.core.MediaType; import java.io.BufferedInputStream; -import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -72,6 +72,9 @@ import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper; import static java.io.File.separatorChar; +import static javax.ws.rs.core.Response.Status.CREATED; +import static javax.ws.rs.core.Response.Status.NOT_MODIFIED; +import static javax.ws.rs.core.Response.Status.NO_CONTENT; import static javax.ws.rs.core.Response.Status.OK; /** @@ -116,11 +119,7 @@ public class DockerConnector { + separatorChar + "machines" + separatorChar + "default"; - private final URI dockerDaemonUri; - private final DockerCertificates dockerCertificates; - private final InitialAuthConfig initialAuthConfig; - private final ExecutorService executor; - private final Map oomDetectors; + private static final Logger LOG = LoggerFactory.getLogger(DockerConnector.class); private final URI dockerDaemonUri; private final DockerCertificates dockerCertificates; @@ -164,10 +163,7 @@ public org.eclipse.che.plugin.docker.client.json.SystemInfo getSystemInfo() thro if (OK.getStatusCode() != status) { throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), - org.eclipse.che.plugin.docker.client.json.SystemInfo.class, - null, - FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), org.eclipse.che.plugin.docker.client.json.SystemInfo.class); } catch (JsonParseException e) { throw new IOException(e.getLocalizedMessage(), e); } @@ -187,7 +183,7 @@ public Version getVersion() throws IOException { if (OK.getStatusCode() != status) { throw new DockerException(getDockerExceptionMessage(response), status); } - return JsonHelper.fromJson(response.getInputStream(), Version.class, null, FIRST_LETTER_LOWERCASE); + return parseResponseStreamAndClose(response.getInputStream(), Version.class); } catch (JsonParseException e) { throw new IOException(e.getLocalizedMessage(), e); } @@ -444,7 +440,6 @@ public int waitContainer(String container) throws IOException { } } - /** * Gets detailed information about docker container. * @@ -669,20 +664,20 @@ public ContainerProcesses top(String container, String... psArgs) throws IOExcep * @return stream of resources from the specified container filesystem, with retention connection * @throws IOException * when problems occurs with docker api calls - * @apiNote this method implements 1.20 docker API and requires docker not less than 1.8.* version + * @apiNote this method implements 1.20 docker API and requires docker not less than 1.8.0 version */ public InputStream getResource(String container, String sourcePath) throws IOException { - DockerConnection connection = openConnection(dockerDaemonUri); - final DockerResponse response = connection.method("GET") - .path(String.format("/containers/%s/archive?path=%s", container, sourcePath)) - .request(); - final int status = response.getStatus(); - if (status != OK.getStatusCode()) { - final String msg = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, msg), status); - } + try (DockerConnection connection = openConnection(dockerDaemonUri).method("GET") + .path("/containers/" + container + "/archive") + .query("path", sourcePath)) { + final DockerResponse response = connection.request(); + final int status = response.getStatus(); + if (status != OK.getStatusCode()) { + throw new DockerException(getDockerExceptionMessage(response), status); + } - return new CloseConnectionInputStream(response.getInputStream(), connection); + return new CloseConnectionInputStream(response.getInputStream(), connection); + } } /** @@ -694,14 +689,17 @@ public InputStream getResource(String container, String sourcePath) throws IOExc * path to file or directory inside specified container * @param sourceStream * stream of files from source container - * @param overwrite + * @param noOverwriteDirNonDir * If "false" then it will be an error if unpacking the given content would cause * an existing directory to be replaced with a non-directory or other resource and vice versa. * @throws IOException * when problems occurs with docker api calls, or during file system operations * @apiNote this method implements 1.20 docker API and requires docker not less than 1.8 version */ - public void putResource(String container, String targetPath, InputStream sourceStream, boolean overwrite) throws IOException { + public void putResource(String container, + String targetPath, + InputStream sourceStream, + boolean noOverwriteDirNonDir) throws IOException { File tarFile; long length; try (InputStream sourceData = sourceStream) { @@ -712,23 +710,19 @@ public void putResource(String container, String targetPath, InputStream sourceS List> headers = Arrays.asList(Pair.of("Content-Type", ExtMediaType.APPLICATION_X_TAR), Pair.of("Content-Length", length)); - DockerConnection connection = null; - try (InputStream tarStream = new BufferedInputStream(new FileInputStream(tarFile))) { - connection = openConnection(dockerDaemonUri).method("PUT") - .path(String.format("/containers/%s/archive?path=%s&noOverwriteDirNonDir=%d", - container, targetPath, overwrite ? 0 : 1)) - .headers(headers) - .entity(tarStream); + try (InputStream tarStream = new BufferedInputStream(new FileInputStream(tarFile)); + DockerConnection connection = openConnection(dockerDaemonUri).method("PUT") + .path("/containers/" + container + "/archive") + .query("path", targetPath) + .query("noOverwriteDirNonDir", noOverwriteDirNonDir ? 0 : 1) + .headers(headers) + .entity(tarStream)) { final DockerResponse response = connection.request(); final int status = response.getStatus(); if (status != OK.getStatusCode()) { - final String m = CharStreams.toString(new InputStreamReader(response.getInputStream())); - throw new DockerException(String.format("Error response from docker API, status: %d, message: %s", status, m), status); + throw new DockerException(getDockerExceptionMessage(response), status); } } finally { - if (connection != null) { - connection.close(); - } FileCleaner.addFile(tarFile); } } diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/CloseConnectionInputStream.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/CloseConnectionInputStream.java new file mode 100644 index 000000000..d8614ad40 --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/CloseConnectionInputStream.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client.connection; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Keeps docker connection open until stream operation is finished. + * + * @author Anton Korneta + */ +public class CloseConnectionInputStream extends InputStream { + private final InputStream is; + private final DockerConnection connection; + + public CloseConnectionInputStream(InputStream is, DockerConnection connection) throws IOException { + if (is == null) { + if (connection != null) { + connection.close(); + } + throw new IOException("InputStream required"); + } + if (connection == null) { + is.close(); + throw new IOException("DockerConnection required"); + } + + this.is = is; + this.connection = connection; + } + + @Override + public int read() throws IOException { + return is.read(); + } + + @Override + public int read(byte[] b) throws IOException { + return is.read(b); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + return is.read(b, off, len); + } + + @Override + public void close() throws IOException { + try { + is.close(); + } finally { + connection.close(); + } + } +} diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/ContainerCreated.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/ContainerCreated.java index b2bcf490e..572dc325b 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/ContainerCreated.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/ContainerCreated.java @@ -17,6 +17,14 @@ public class ContainerCreated { private String id; private String[] warnings; + public ContainerCreated() { + } + + public ContainerCreated(String id, String[] warnings) { + this.id = id; + this.warnings = warnings; + } + public String getId() { return id; } diff --git a/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java b/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java new file mode 100644 index 000000000..9324a3e13 --- /dev/null +++ b/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java @@ -0,0 +1,101 @@ +/******************************************************************************* + * Copyright (c) 2012-2015 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.docker.client; + +import com.google.common.io.CharStreams; + +import org.eclipse.che.plugin.docker.client.connection.CloseConnectionInputStream; +import org.eclipse.che.plugin.docker.client.connection.DockerConnection; +import org.eclipse.che.plugin.docker.client.connection.DockerResponse; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.testng.MockitoTestNGListener; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Listeners; +import org.testng.annotations.Test; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URI; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.when; + +/** + * @author Anton Korneta + */ +@Listeners(MockitoTestNGListener.class) +public class DockerConnectorTest { + + @Spy + private DockerConnector dockerConnector = new DockerConnector(null); + @Mock + private DockerConnection dockerConnection; + @Mock + private DockerResponse dockerResponse; + + @BeforeMethod + public void setup() throws IOException { + doReturn(dockerConnection).when(dockerConnector).openConnection(any(URI.class)); + when(dockerConnection.method(any())).thenReturn(dockerConnection); + when(dockerConnection.entity(any(InputStream.class))).thenReturn(dockerConnection); + when(dockerConnection.headers(any())).thenReturn(dockerConnection); + when(dockerConnection.path(anyString())).thenReturn(dockerConnection); + when(dockerConnection.request()).thenReturn(dockerResponse); + } + + @Test + public void shouldGetResourcesFromContainer() throws IOException { + String resource = "stream data"; + when(dockerResponse.getStatus()).thenReturn(200); + when(dockerResponse.getInputStream()) + .thenReturn(new CloseConnectionInputStream(new ByteArrayInputStream(resource.getBytes()), dockerConnection)); + + String response = CharStreams.toString(new InputStreamReader(dockerConnector.getResource("id", "path"))); + + Assert.assertEquals(response, resource); + } + + @Test(expectedExceptions = IOException.class, expectedExceptionsMessageRegExp = "Error response from docker API, status: 500, message: Error") + public void shouldProduceAnErrorWhenGetsResourcesFromContainer() throws IOException { + String msg = "Error"; + when(dockerResponse.getStatus()).thenReturn(500); + when(dockerResponse.getInputStream()) + .thenReturn(new CloseConnectionInputStream(new ByteArrayInputStream(msg.getBytes()), dockerConnection)); + + dockerConnector.getResource("id", "path"); + } + + @Test + public void shouldPutResourcesIntoContainer() throws IOException { + String file = "stream data"; + when(dockerResponse.getStatus()).thenReturn(200); + InputStream source = new CloseConnectionInputStream(new ByteArrayInputStream(file.getBytes()), dockerConnection); + + dockerConnector.putResource("id", "path", source, false); + } + + @Test(expectedExceptions = IOException.class, expectedExceptionsMessageRegExp = "Error response from docker API, status: 500, message: Error") + public void shouldProduceAnErrorWhenPutsResourcesIntoContainer() throws IOException { + String msg = "Error"; + when(dockerResponse.getStatus()).thenReturn(500); + when(dockerResponse.getInputStream()) + .thenReturn(new ByteArrayInputStream(msg.getBytes())); + InputStream source = new CloseConnectionInputStream(new ByteArrayInputStream(msg.getBytes()), dockerConnection); + + dockerConnector.putResource("id", "path", source, false); + } +} From 0732280b622eb34ea750891fe117fa1d3923b57f Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Thu, 17 Sep 2015 12:53:01 +0300 Subject: [PATCH 048/164] fix tests --- .../eclipse/che/plugin/docker/client/DockerConnectorTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java b/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java index 9324a3e13..3c9782ee6 100644 --- a/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java +++ b/plugin-docker/che-plugin-docker-client/src/test/java/org/eclipse/che/plugin/docker/client/DockerConnectorTest.java @@ -31,6 +31,7 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.anyVararg; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.when; @@ -53,6 +54,7 @@ public void setup() throws IOException { when(dockerConnection.method(any())).thenReturn(dockerConnection); when(dockerConnection.entity(any(InputStream.class))).thenReturn(dockerConnection); when(dockerConnection.headers(any())).thenReturn(dockerConnection); + when(dockerConnection.query(any(), anyVararg())).thenReturn(dockerConnection); when(dockerConnection.path(anyString())).thenReturn(dockerConnection); when(dockerConnection.request()).thenReturn(dockerResponse); } From 29a79458054813934002e34a6a2f40dc0042db54 Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Thu, 17 Sep 2015 12:53:50 +0300 Subject: [PATCH 049/164] IDEX-3060: adopt code to changes in docker client --- .../che/plugin/docker/runner/BaseDockerRunner.java | 10 ++++++++-- .../eclipse/che/plugin/docker/runner/DockerRunner.java | 7 +++++-- .../che/plugin/docker/runner/DockerRunnerModule.java | 3 +++ .../che/plugin/docker/runner/EmbeddedDockerRunner.java | 7 +++++-- .../runner/EmbeddedDockerRunnerRegistryPlugin.java | 7 +++++-- .../che/plugin/docker/runner/LogMessagePrinter.java | 4 ++-- .../che/plugin/docker/runner/DockerRunnerTest.java | 4 +++- 7 files changed, 31 insertions(+), 11 deletions(-) diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java index 13c8a4d57..2e3527e09 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java @@ -46,6 +46,7 @@ import org.eclipse.che.plugin.docker.client.DockerException; import org.eclipse.che.plugin.docker.client.DockerFileException; import org.eclipse.che.plugin.docker.client.DockerImage; +import org.eclipse.che.plugin.docker.client.DockerOOMDetector; import org.eclipse.che.plugin.docker.client.Dockerfile; import org.eclipse.che.plugin.docker.client.ProgressLineFormatterImpl; import org.eclipse.che.plugin.docker.client.ProgressMonitor; @@ -152,6 +153,7 @@ public abstract class BaseDockerRunner extends Runner { private final Set watchUpdateProjectTypes; private final ProjectEventService projectEventService; private final DockerConnector dockerConnector; + private final DockerOOMDetector oomDetector; /** * Allow to hash with sha-1 @@ -166,13 +168,15 @@ protected BaseDockerRunner(java.io.File deployDirectoryRoot, CustomPortService portService, DockerConnector dockerConnector, EventService eventService, - ApplicationLinksGenerator applicationLinksGenerator) { + ApplicationLinksGenerator applicationLinksGenerator, + DockerOOMDetector oomDetector) { super(deployDirectoryRoot, cleanupDelay, allocators, eventService); this.hostName = hostName; this.watchUpdateProjectTypes = watchUpdateProjectTypes; this.portService = portService; this.applicationLinksGenerator = applicationLinksGenerator; this.dockerConnector = dockerConnector; + this.oomDetector = oomDetector; projectEventService = new ProjectEventService(eventService); } @@ -890,7 +894,8 @@ public void start() throws RunnerException { if (started.compareAndSet(false, true)) { try { final ContainerCreated response = dockerConnector.createContainer(containerCfg, null); - dockerConnector.startContainer(response.getId(), hostCfg, new LogMessagePrinter(logsPublisher)); + dockerConnector.startContainer(response.getId(), hostCfg); + oomDetector.startDetection(response.getId(), new LogMessagePrinter(logsPublisher)); container = response.getId(); LOG.info("EVENT#configure-docker-started# WS#{}# USER#{}# ID#{}#", request.getWorkspace(), request.getUserId(), container); @@ -925,6 +930,7 @@ public void run() { public void stop() throws RunnerException { if (started.get()) { try { + oomDetector.stopDetection(container); dockerConnector.stopContainer(container, 3, TimeUnit.SECONDS); LOG.info("EVENT#configure-docker-finished# WS#{}# USER#{}# ID#{}#", request.getWorkspace(), request.getUserId(), container); diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java index a5962784d..70b8c8e29 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunner.java @@ -31,6 +31,7 @@ import org.eclipse.che.commons.lang.Pair; import org.eclipse.che.dto.server.DtoFactory; import org.eclipse.che.plugin.docker.client.DockerConnector; +import org.eclipse.che.plugin.docker.client.DockerOOMDetector; import org.eclipse.che.plugin.docker.client.InitialAuthConfig; import org.eclipse.che.plugin.docker.client.dto.AuthConfig; import org.eclipse.che.plugin.docker.client.dto.AuthConfigs; @@ -68,7 +69,8 @@ public DockerRunner(@Named(Constants.DEPLOY_DIRECTORY) File deployDirectoryRoot, InitialAuthConfig initialAuthConfig, DockerConnector dockerConnector, EventService eventService, - ApplicationLinksGenerator applicationLinksGenerator) { + ApplicationLinksGenerator applicationLinksGenerator, + DockerOOMDetector oomDetector) { super(deployDirectoryRoot, cleanupTime, hostName, @@ -77,7 +79,8 @@ public DockerRunner(@Named(Constants.DEPLOY_DIRECTORY) File deployDirectoryRoot, portService, dockerConnector, eventService, - applicationLinksGenerator); + applicationLinksGenerator, + oomDetector); this.apiEndPoint = apiEndpoint; this.initialAuthConfig = initialAuthConfig; } diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunnerModule.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunnerModule.java index fb22724a0..d56ae1b30 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunnerModule.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/DockerRunnerModule.java @@ -14,6 +14,8 @@ import com.google.inject.multibindings.Multibinder; import org.eclipse.che.api.runner.internal.Runner; +import org.eclipse.che.plugin.docker.client.CgroupOOMDetector; +import org.eclipse.che.plugin.docker.client.DockerOOMDetector; /** * Docker runner deployer. @@ -26,5 +28,6 @@ protected void configure() { Multibinder.newSetBinder(binder(), Runner.class).addBinding().to(DockerRunner.class); bind(EmbeddedDockerRunnerRegistryPlugin.class).asEagerSingleton(); bind(ApplicationLinksGenerator.class).to(CustomPortApplicationLinksGenerator.class); + bind(DockerOOMDetector.class).to(CgroupOOMDetector.class); } } diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunner.java index 1c1478508..681eb9a65 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunner.java @@ -18,6 +18,7 @@ import org.eclipse.che.api.runner.internal.ResourceAllocators; import org.eclipse.che.dto.server.DtoFactory; import org.eclipse.che.plugin.docker.client.DockerConnector; +import org.eclipse.che.plugin.docker.client.DockerOOMDetector; import org.eclipse.che.plugin.docker.client.dto.AuthConfigs; import java.io.IOException; @@ -47,7 +48,8 @@ public class EmbeddedDockerRunner extends BaseDockerRunner { DockerConnector dockerConnector, EventService eventService, ApplicationLinksGenerator applicationLinksGenerator, - String name) { + String name, + DockerOOMDetector oomDetector) { super(deployDirectoryRoot, cleanupTime, hostName, @@ -56,7 +58,8 @@ public class EmbeddedDockerRunner extends BaseDockerRunner { portService, dockerConnector, eventService, - applicationLinksGenerator); + applicationLinksGenerator, + oomDetector); this.name = name; this.dockerEnvironments = new HashMap<>(); } diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java index 037066f6a..ae10b1ea7 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/EmbeddedDockerRunnerRegistryPlugin.java @@ -16,6 +16,7 @@ import org.eclipse.che.api.runner.internal.ResourceAllocators; import org.eclipse.che.api.runner.internal.RunnerRegistry; import org.eclipse.che.plugin.docker.client.DockerConnector; +import org.eclipse.che.plugin.docker.client.DockerOOMDetector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -79,7 +80,8 @@ public EmbeddedDockerRunnerRegistryPlugin(RunnerRegistry registry, DockerConnector dockerConnector, EventService eventService, ApplicationLinksGenerator applicationLinksGenerator, - @Nullable @Named(DOCKERFILES_REPO) String dockerfilesRepository) { + @Nullable @Named(DOCKERFILES_REPO) String dockerfilesRepository, + DockerOOMDetector oomDetector) { this.registry = registry; this.myRunners = new LinkedList<>(); File dockerFilesDir = null; @@ -116,7 +118,8 @@ public EmbeddedDockerRunnerRegistryPlugin(RunnerRegistry registry, dockerConnector, eventService, applicationLinksGenerator, - runner)); + runner, + oomDetector)); } dockerRunner.registerEnvironment(new EmbeddedDockerEnvironment(environment, environmentDir)); } catch (RuntimeException e) { diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/LogMessagePrinter.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/LogMessagePrinter.java index 858315643..53966d199 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/LogMessagePrinter.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/LogMessagePrinter.java @@ -13,7 +13,7 @@ import org.eclipse.che.api.core.util.LineConsumer; import org.eclipse.che.plugin.docker.client.LogMessage; import org.eclipse.che.plugin.docker.client.LogMessageFormatter; -import org.eclipse.che.plugin.docker.client.LogMessageProcessor; +import org.eclipse.che.plugin.docker.client.MessageProcessor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,7 +22,7 @@ /** * @author andrew00x */ -public class LogMessagePrinter implements LogMessageProcessor { +public class LogMessagePrinter implements MessageProcessor { private static final Logger LOG = LoggerFactory.getLogger(LogMessagePrinter.class); private final LineConsumer output; diff --git a/plugin-docker/che-plugin-docker-runner/src/test/java/org/eclipse/che/plugin/docker/runner/DockerRunnerTest.java b/plugin-docker/che-plugin-docker-runner/src/test/java/org/eclipse/che/plugin/docker/runner/DockerRunnerTest.java index 7560b1a06..795a5257f 100644 --- a/plugin-docker/che-plugin-docker-runner/src/test/java/org/eclipse/che/plugin/docker/runner/DockerRunnerTest.java +++ b/plugin-docker/che-plugin-docker-runner/src/test/java/org/eclipse/che/plugin/docker/runner/DockerRunnerTest.java @@ -16,6 +16,7 @@ import org.eclipse.che.api.runner.dto.RunRequest; import org.eclipse.che.api.runner.internal.ResourceAllocators; import org.eclipse.che.plugin.docker.client.DockerConnector; +import org.eclipse.che.plugin.docker.client.DockerOOMDetector; import org.eclipse.che.plugin.docker.client.InitialAuthConfig; import org.junit.Assert; import org.junit.Before; @@ -84,7 +85,8 @@ public void beforeTest() { this.dockerRunner = new DockerRunner(deployDirectoryRoot, 5, HOSTNAME, "localhost:8080/api", new String[]{}, allocators, portService, initialAuthConfig, dockerConnector, eventService, - applicationLinksGenerator); + applicationLinksGenerator, + DockerOOMDetector.NOOP_DETECTOR); this.env = new ArrayList<>(); doReturn(HOSTNAME).when(dockerRunnerConfiguration).getHost(); From c6e5ac4cdaa8f85ed01765069a0c6e75bca00db6 Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Thu, 17 Sep 2015 18:19:58 +0300 Subject: [PATCH 050/164] IDEX-3096: add with methods to HostConfig in docker API client --- .../plugin/docker/client/json/HostConfig.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java index e61c85927..e7dc66f32 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java @@ -247,6 +247,11 @@ public void setContainerIDFile(String containerIDFile) { this.containerIDFile = containerIDFile; } + public HostConfig withContainerIDFile(String containerIDFile) { + this.containerIDFile = containerIDFile; + return this; + } + public String getMemory() { return memory; } @@ -255,6 +260,11 @@ public void setMemory(String memory) { this.memory = memory; } + public HostConfig withMemory(String memory) { + this.memory = memory; + return this; + } + public int getMemorySwap() { return memorySwap; } @@ -263,6 +273,11 @@ public void setMemorySwap(int memorySwap) { this.memorySwap = memorySwap; } + public HostConfig withMemorySwap(int memorySwap) { + this.memorySwap = memorySwap; + return this; + } + public LogConfig getLogConfig() { return logConfig; } @@ -271,6 +286,11 @@ public void setLogConfig(LogConfig logConfig) { this.logConfig = logConfig; } + public HostConfig withLogConfig(LogConfig logConfig) { + this.logConfig = logConfig; + return this; + } + public String getIpcMode() { return ipcMode; } @@ -279,6 +299,11 @@ public void setIpcMode(String ipcMode) { this.ipcMode = ipcMode; } + public HostConfig withIpcMode(String ipcMode) { + this.ipcMode = ipcMode; + return this; + } + public String getCgroupParent() { return cgroupParent; } @@ -287,6 +312,11 @@ public void setCgroupParent(String cgroupParent) { this.cgroupParent = cgroupParent; } + public HostConfig withCgroupParent(String cgroupParent) { + this.cgroupParent = cgroupParent; + return this; + } + public int getCpuShares() { return cpuShares; } @@ -295,6 +325,11 @@ public void setCpuShares(int cpuShares) { this.cpuShares = cpuShares; } + public HostConfig withCpuShares(int cpuShares) { + this.cpuShares = cpuShares; + return this; + } + public String getCpusetCpus() { return cpusetCpus; } @@ -303,6 +338,11 @@ public void setCpusetCpus(String cpusetCpus) { this.cpusetCpus = cpusetCpus; } + public HostConfig withCpusetCpus(String cpusetCpus) { + this.cpusetCpus = cpusetCpus; + return this; + } + public String getPidMode() { return pidMode; } @@ -311,6 +351,11 @@ public void setPidMode(String pidMode) { this.pidMode = pidMode; } + public HostConfig withPidMode(String pidMode) { + this.pidMode = pidMode; + return this; + } + public boolean isReadonlyRootfs() { return readonlyRootfs; } @@ -319,6 +364,11 @@ public void setReadonlyRootfs(boolean readonlyRootfs) { this.readonlyRootfs = readonlyRootfs; } + public HostConfig withReadonlyRootfs(boolean readonlyRootfs) { + this.readonlyRootfs = readonlyRootfs; + return this; + } + public Ulimit[] getUlimits() { return ulimits; } @@ -327,6 +377,11 @@ public void setUlimits(Ulimit[] ulimits) { this.ulimits = ulimits; } + public HostConfig withUlimits(Ulimit[] ulimits) { + this.ulimits = ulimits; + return this; + } + @Override public String toString() { return "HostConfig{" + From ac19da25bebca686243561381670d774d43b06ad Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Thu, 17 Sep 2015 18:20:44 +0300 Subject: [PATCH 051/164] IDEX-3096: fix docker client memory limit usage --- .../eclipse/che/plugin/docker/runner/BaseDockerRunner.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java index 2e3527e09..03e020647 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java @@ -342,8 +342,11 @@ protected ApplicationProcess newApplicationProcess(DeploymentSources toDeploy, R } } final ContainerConfig containerConfig = new ContainerConfig().withImage(imageIdentifier.id) - .withMemory((long)runnerCfg.getMemory() * 1024 * 1024) - .withCpuShares(1) + .withHostConfig(new HostConfig() + .withMemory(Long.toString( + (long)runnerCfg.getMemory() * + 1024 * 1024)) + .withCpuShares(1)) .withEnv(env.toArray(new String[env.size()])); // Listens start and stop. final ApplicationProcess.Callback callback = new ApplicationProcess.Callback() { From 1dec18f427a4051262c531678f7aad46ab09c5e8 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Thu, 17 Sep 2015 17:21:14 +0000 Subject: [PATCH 052/164] RELEASE:Set tag of parent pom --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 73d8595ed..06ef597bb 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ maven-depmgt-pom org.eclipse.che.depmgt - 3.12.4-SNAPSHOT + 3.12.4 org.eclipse.che.plugin che-plugin-parent From a3d48c78ce98171afc6ce0eb168a2b1b311b58e5 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Thu, 17 Sep 2015 17:38:41 +0000 Subject: [PATCH 053/164] [maven-release-plugin] prepare release 3.12.4 --- plugin-angularjs/api/client/pom.xml | 2 +- plugin-angularjs/api/pom.xml | 2 +- plugin-angularjs/api/server/pom.xml | 2 +- plugin-angularjs/completion/dto-gen/pom.xml | 2 +- plugin-angularjs/completion/dto/pom.xml | 2 +- plugin-angularjs/completion/parser/pom.xml | 2 +- plugin-angularjs/completion/pom.xml | 2 +- plugin-angularjs/core/client/pom.xml | 2 +- plugin-angularjs/core/pom.xml | 2 +- plugin-angularjs/core/server/pom.xml | 2 +- plugin-angularjs/pom.xml | 2 +- plugin-angularjs/templates/angular-seed/pom.xml | 2 +- plugin-angularjs/templates/gulp-angularjs-starter/pom.xml | 2 +- plugin-angularjs/templates/pom.xml | 2 +- plugin-angularjs/templates/yeoman/pom.xml | 2 +- plugin-bower/che-plugin-bower-builder/pom.xml | 2 +- plugin-bower/che-plugin-bower-ext-client/pom.xml | 2 +- plugin-bower/pom.xml | 2 +- plugin-builder/che-plugin-builder-ext-builder/pom.xml | 2 +- plugin-builder/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-base-init/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-jso/pom.xml | 2 +- plugin-codemirror/pom.xml | 2 +- plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml | 2 +- plugin-cpp/pom.xml | 2 +- plugin-docker/che-plugin-docker-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-ext-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-recipes/pom.xml | 2 +- plugin-docker/che-plugin-docker-runner/pom.xml | 2 +- plugin-docker/pom.xml | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 2 +- plugin-git/che-plugin-git-provider-che/pom.xml | 2 +- plugin-git/pom.xml | 2 +- plugin-github/che-plugin-github-ext-github/pom.xml | 2 +- plugin-github/che-plugin-github-oauth2/pom.xml | 2 +- plugin-github/che-plugin-github-provider-github/pom.xml | 2 +- plugin-github/pom.xml | 2 +- plugin-go/che-plugin-go-ext-go/pom.xml | 2 +- plugin-go/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-builder/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-ext-client/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-runner/pom.xml | 2 +- plugin-grunt/pom.xml | 2 +- plugin-gulp/che-plugin-gulp-runner/pom.xml | 2 +- plugin-gulp/pom.xml | 2 +- plugin-help/che-plugin-help-ext-client/pom.xml | 2 +- plugin-help/pom.xml | 2 +- plugin-java/che-plugin-java-ant-tools/pom.xml | 2 +- plugin-java/che-plugin-java-builder-ant/pom.xml | 2 +- plugin-java/che-plugin-java-builder-maven/pom.xml | 2 +- plugin-java/che-plugin-java-ext-ant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-maven/pom.xml | 2 +- plugin-java/che-plugin-java-generator-archetype/pom.xml | 2 +- plugin-java/che-plugin-java-jdt-core-repack/pom.xml | 2 +- plugin-java/che-plugin-java-jseditor/pom.xml | 2 +- plugin-java/che-plugin-java-maven-tools/pom.xml | 2 +- plugin-java/che-plugin-java-runner-webapps/pom.xml | 2 +- plugin-java/pom.xml | 2 +- plugin-npm/che-plugin-npm-builder/pom.xml | 2 +- plugin-npm/che-plugin-npm-ext-client/pom.xml | 2 +- plugin-npm/pom.xml | 2 +- plugin-orion/che-plugin-orion-editor/pom.xml | 2 +- plugin-orion/pom.xml | 2 +- plugin-php/che-plugin-php-ext-php/pom.xml | 2 +- plugin-php/pom.xml | 2 +- plugin-python/che-plugin-python-ext-python/pom.xml | 2 +- plugin-python/pom.xml | 2 +- plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml | 2 +- plugin-ruby/pom.xml | 2 +- plugin-runner/che-plugin-runner-ext-runner/pom.xml | 2 +- plugin-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-env-local/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-tools/pom.xml | 2 +- plugin-sdk/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-git-native/pom.xml | 2 +- plugin-ssh/pom.xml | 2 +- plugin-svn/che-plugin-svn-ext-subversion/pom.xml | 2 +- plugin-svn/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto-gen/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto/pom.xml | 2 +- plugin-tour/che-plugin-tour-ext-client/pom.xml | 2 +- plugin-tour/che-plugin-tour-hopscotch/pom.xml | 2 +- plugin-tour/che-plugin-tour-server/pom.xml | 2 +- plugin-tour/pom.xml | 2 +- plugin-web/che-plugin-web-ext-web/pom.xml | 2 +- plugin-web/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-builder/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml | 2 +- plugin-yeoman/pom.xml | 2 +- pom.xml | 4 ++-- 99 files changed, 100 insertions(+), 100 deletions(-) diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml index d91f241f3..7b4d14d33 100644 --- a/plugin-angularjs/api/client/pom.xml +++ b/plugin-angularjs/api/client/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-api-client jar diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml index 0252ac14f..2a886614a 100644 --- a/plugin-angularjs/api/pom.xml +++ b/plugin-angularjs/api/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-api pom diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml index 5bb3dad2e..4961200e6 100644 --- a/plugin-angularjs/api/server/pom.xml +++ b/plugin-angularjs/api/server/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-api-server jar diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml index a860f97a9..f650ec12b 100644 --- a/plugin-angularjs/completion/dto-gen/pom.xml +++ b/plugin-angularjs/completion/dto-gen/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-completion-dto-gen jar diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml index 7fba5d61c..1fdecdb07 100644 --- a/plugin-angularjs/completion/dto/pom.xml +++ b/plugin-angularjs/completion/dto/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-completion-dto jar diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml index c613d9158..600b02600 100644 --- a/plugin-angularjs/completion/parser/pom.xml +++ b/plugin-angularjs/completion/parser/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-completion-parser jar diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml index 9a49978ff..47b9ec8ef 100644 --- a/plugin-angularjs/completion/pom.xml +++ b/plugin-angularjs/completion/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-completion pom diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml index 43a7a2cb4..f3ce10c3d 100644 --- a/plugin-angularjs/core/client/pom.xml +++ b/plugin-angularjs/core/client/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-core-client jar diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml index c4ee079b5..5c087e172 100644 --- a/plugin-angularjs/core/pom.xml +++ b/plugin-angularjs/core/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-core pom diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml index 592d1143a..413b913fa 100644 --- a/plugin-angularjs/core/server/pom.xml +++ b/plugin-angularjs/core/server/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-core-server jar diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml index e7c5bf6bb..435263d47 100644 --- a/plugin-angularjs/pom.xml +++ b/plugin-angularjs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml angularjs-parent diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml index 8507633b4..d6405aa16 100644 --- a/plugin-angularjs/templates/angular-seed/pom.xml +++ b/plugin-angularjs/templates/angular-seed/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-template-angular-seed jar diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml index f029a97af..d1041256b 100644 --- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml +++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-template-gulp-angularjs-starter jar diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml index 45b3035b1..39f83bf15 100644 --- a/plugin-angularjs/templates/pom.xml +++ b/plugin-angularjs/templates/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-templates pom diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml index db04b8ed6..df87505b1 100644 --- a/plugin-angularjs/templates/yeoman/pom.xml +++ b/plugin-angularjs/templates/yeoman/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 angularjs-template-yeoman jar diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml index 0342b8af2..afb04ba22 100644 --- a/plugin-bower/che-plugin-bower-builder/pom.xml +++ b/plugin-bower/che-plugin-bower-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-bower-builder jar diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml index 9d6332413..60a57e96a 100644 --- a/plugin-bower/che-plugin-bower-ext-client/pom.xml +++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-bower-ext-client jar diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml index a740a26fe..63f4fd001 100644 --- a/plugin-bower/pom.xml +++ b/plugin-bower/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-bower-parent diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml index 9a836b36d..c97c7804d 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml +++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-builder-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-builder-ext-builder jar diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml index efe66e753..357bf9b87 100644 --- a/plugin-builder/pom.xml +++ b/plugin-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-builder-parent diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml index 69f21b18a..d5d071c40 100644 --- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-codemirror-base-init jar diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml index 19b73c32e..08c27f062 100644 --- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-codemirror-editorwidget jar diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml index 00d93a7c8..7ea037e27 100644 --- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-codemirror-highlighter Che Plugin :: CodeMirror :: Highlighter diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml index 944177ca1..0624758b1 100644 --- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-codemirror-ide-style jar diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index 81f650a28..01b5aed2a 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-codemirror-jso jar diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml index 9f6a802c7..81eb966e8 100644 --- a/plugin-codemirror/pom.xml +++ b/plugin-codemirror/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-codemirror-parent diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml index 2e5dbd5b5..536ddaf04 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-cpp-ext-cpp jar diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml index 5234b1703..7c3f14ea0 100644 --- a/plugin-cpp/pom.xml +++ b/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-cpp-parent diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml index 3e1158caf..1096e8fa8 100644 --- a/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-docker-client jar diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml index 3a87cae53..4a5f77ad6 100644 --- a/plugin-docker/che-plugin-docker-ext-client/pom.xml +++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-docker-ext-client jar diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml index 654bad7ff..4662ad91c 100644 --- a/plugin-docker/che-plugin-docker-recipes/pom.xml +++ b/plugin-docker/che-plugin-docker-recipes/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-docker-recipes jar diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml index 6c34bc7f9..ca7e4343f 100644 --- a/plugin-docker/che-plugin-docker-runner/pom.xml +++ b/plugin-docker/che-plugin-docker-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-docker-runner jar diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index 2dd582305..f1cb12b79 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-docker-parent diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index a16f53d2b..802b2cab5 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-git-ext-git jar diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml index 230d70ef2..bf27b61ef 100644 --- a/plugin-git/che-plugin-git-provider-che/pom.xml +++ b/plugin-git/che-plugin-git-provider-che/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-git-provider-che Che Plugin :: Git :: Che credential provider diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml index 4b18a9890..b6eb08241 100644 --- a/plugin-git/pom.xml +++ b/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-git-parent diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index 0f59711cb..4ddd2d955 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-github-ext-github jar diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml index 0c7ba76b1..3aedfa2c4 100644 --- a/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-github-oauth2 jar diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml index a687266f1..93d733ed9 100644 --- a/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml index 2396f0d8e..cd5f089aa 100644 --- a/plugin-github/pom.xml +++ b/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-github-parent diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml index 84499819c..a5cbd189e 100644 --- a/plugin-go/che-plugin-go-ext-go/pom.xml +++ b/plugin-go/che-plugin-go-ext-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-go-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-go-ext-go jar diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml index 99e10ad1a..9c6b3843d 100644 --- a/plugin-go/pom.xml +++ b/plugin-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-go-parent diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml index 9f07ba3ba..caed4b7d5 100644 --- a/plugin-grunt/che-plugin-grunt-builder/pom.xml +++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-grunt-builder jar diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml index d1cbd1e1b..ec9147773 100644 --- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml +++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-grunt-ext-client jar diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml index 4ddc2c315..c15231f1e 100644 --- a/plugin-grunt/che-plugin-grunt-runner/pom.xml +++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-grunt-runner jar diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml index 4605b4f0c..f7906d4fa 100644 --- a/plugin-grunt/pom.xml +++ b/plugin-grunt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-grunt-parent diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml index 7834c89f2..839ae344f 100644 --- a/plugin-gulp/che-plugin-gulp-runner/pom.xml +++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-gulp-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-gulp-runner jar diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml index 89989d33a..c386ac743 100644 --- a/plugin-gulp/pom.xml +++ b/plugin-gulp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-gulp-parent diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml index 2460a5b6f..d57149e88 100644 --- a/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-help-ext-client jar diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml index 7c091f805..bf12ec274 100644 --- a/plugin-help/pom.xml +++ b/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-help-parent diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml index b14a3a9f8..86718b2af 100644 --- a/plugin-java/che-plugin-java-ant-tools/pom.xml +++ b/plugin-java/che-plugin-java-ant-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-ant-tools jar diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml index 1ea1edee5..668e070bf 100644 --- a/plugin-java/che-plugin-java-builder-ant/pom.xml +++ b/plugin-java/che-plugin-java-builder-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-builder-ant jar diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml index 90835c088..2d0b55f1b 100644 --- a/plugin-java/che-plugin-java-builder-maven/pom.xml +++ b/plugin-java/che-plugin-java-builder-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-builder-maven jar diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml index 112f54710..5bcde2d6c 100644 --- a/plugin-java/che-plugin-java-ext-ant/pom.xml +++ b/plugin-java/che-plugin-java-ext-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-ext-ant jar diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index 64d6177f6..11ade0760 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-ext-debugger-java jar diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml index c27817881..64c11c929 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-ext-java-codeassistant jar diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml index db7fe6943..530260f34 100644 --- a/plugin-java/che-plugin-java-ext-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-ext-java jar diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml index 084cf9a64..1175d102c 100644 --- a/plugin-java/che-plugin-java-ext-maven/pom.xml +++ b/plugin-java/che-plugin-java-ext-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-ext-maven jar diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml index cb6ed7f78..47ca8c872 100644 --- a/plugin-java/che-plugin-java-generator-archetype/pom.xml +++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-generator-archetype jar diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml index 0f3c78cb7..fe50f493e 100644 --- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml +++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-jdt-core-repack jar diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml index 192408620..fbcb29e8e 100644 --- a/plugin-java/che-plugin-java-jseditor/pom.xml +++ b/plugin-java/che-plugin-java-jseditor/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-jseditor Che Plugin :: Java :: JsEditor diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index 5169f56a8..d3c595199 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-maven-tools jar diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml index e70c059ed..47b8b31ce 100644 --- a/plugin-java/che-plugin-java-runner-webapps/pom.xml +++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-java-runner-webapps jar diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml index eff646d97..9c054d3b7 100644 --- a/plugin-java/pom.xml +++ b/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-java-parent diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml index 26868efab..94739023a 100644 --- a/plugin-npm/che-plugin-npm-builder/pom.xml +++ b/plugin-npm/che-plugin-npm-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-npm-builder jar diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml index e56a3efa7..765364afe 100644 --- a/plugin-npm/che-plugin-npm-ext-client/pom.xml +++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-npm-ext-client jar diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml index 69254b9a9..4416ba09e 100644 --- a/plugin-npm/pom.xml +++ b/plugin-npm/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-npm-parent diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml index 29c69b478..7014d9240 100644 --- a/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-orion-editor diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml index 2a1bcb534..c7b0ada56 100644 --- a/plugin-orion/pom.xml +++ b/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-orion-parent diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml index 6ba96cfca..836024e3b 100644 --- a/plugin-php/che-plugin-php-ext-php/pom.xml +++ b/plugin-php/che-plugin-php-ext-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-php-ext-php jar diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml index 2ec14882d..24e0e6b5b 100644 --- a/plugin-php/pom.xml +++ b/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-php-parent diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml index 700b981cf..32827aec3 100644 --- a/plugin-python/che-plugin-python-ext-python/pom.xml +++ b/plugin-python/che-plugin-python-ext-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-python-ext-python jar diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml index afedf6304..5eaabb1c2 100644 --- a/plugin-python/pom.xml +++ b/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-python-parent diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml index 3bdb44bb4..bad9c7e1a 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-ruby-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-ruby-ext-ruby jar diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml index dacb1975c..68b7db911 100644 --- a/plugin-ruby/pom.xml +++ b/plugin-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-ruby-parent diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml index 324307568..031154a5f 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml +++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-runner-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-runner-ext-runner jar diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml index 4f2d0cee8..30b4b2589 100644 --- a/plugin-runner/pom.xml +++ b/plugin-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-runner-parent diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml index 5d14cc095..458ddaf4c 100644 --- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml +++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-sdk-env-local jar diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index 3e50265d7..487896f04 100644 --- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-sdk-ext-plugins jar diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index c19fdecd7..84b64700b 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-sdk-runner jar diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml index 3d6c1261f..6e1ea385e 100644 --- a/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-sdk-tools jar diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml index e146ebe36..54b9c37ff 100644 --- a/plugin-sdk/pom.xml +++ b/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-sdk-parent diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml index ea58b51a8..980b6dea0 100644 --- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml +++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-ssh-ext-sshkey jar diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml index fcb68a7d5..562b5d009 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml +++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-ssh-git-native jar diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml index 99c575f2b..ffadb9d2a 100644 --- a/plugin-ssh/pom.xml +++ b/plugin-ssh/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-ssh-parent diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml index 4007c0d9c..a50512701 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml +++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-svn-ext-subversion jar diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml index 1ff941920..54b923d12 100644 --- a/plugin-svn/pom.xml +++ b/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-svn-parent diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml index 18da2a661..47d7cf034 100644 --- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml +++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-tour-dto-gen Che Plugin :: Tour :: DTO Generation diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml index 90b8ae27f..2e82188db 100644 --- a/plugin-tour/che-plugin-tour-dto/pom.xml +++ b/plugin-tour/che-plugin-tour-dto/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-tour-dto Che Plugin :: Tour :: DTO diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml index 05f60dbe9..8a5af1f41 100644 --- a/plugin-tour/che-plugin-tour-ext-client/pom.xml +++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-tour-ext-client Che Plugin :: Tour :: Client diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml index 53fa90260..b10aaf784 100644 --- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml +++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-tour-hopscotch Che Plugin :: Tour :: Hopscotch diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml index 35c893727..f48edb158 100644 --- a/plugin-tour/che-plugin-tour-server/pom.xml +++ b/plugin-tour/che-plugin-tour-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-tour-server Che Plugin :: Tour :: Server diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml index be188ffa3..3326a446f 100644 --- a/plugin-tour/pom.xml +++ b/plugin-tour/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-tour-parent diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml index ee39d3b25..9254f1427 100644 --- a/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-web-ext-web jar diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml index 63bef6539..8180e66ac 100644 --- a/plugin-web/pom.xml +++ b/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-web-parent diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml index 7e6b105c2..86b229d9c 100644 --- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-yeoman-builder jar diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml index 538b25201..42ef8433f 100644 --- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 che-plugin-yeoman-ext-client jar diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml index 5e5690dab..ee7e6a01b 100644 --- a/plugin-yeoman/pom.xml +++ b/plugin-yeoman/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4-SNAPSHOT + 3.12.4 ../pom.xml che-plugin-yeoman-parent diff --git a/pom.xml b/pom.xml index 06ef597bb..273a952d1 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.eclipse.che.plugin che-plugin-parent - 3.12.4-SNAPSHOT + 3.12.4 pom Che Plugin :: Parent @@ -53,7 +53,7 @@ scm:git:git@github.com:codenvy/che-plugins.git scm:git:git@github.com:codenvy/che-plugins.git - 3.9.0 + 3.12.4 https://github.com/codenvy/che-plugins From 28c74e0eedb7c371f5a1454c119e6b689ccbca97 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Thu, 17 Sep 2015 17:38:42 +0000 Subject: [PATCH 054/164] [maven-release-plugin] prepare for next development iteration --- plugin-angularjs/api/client/pom.xml | 2 +- plugin-angularjs/api/pom.xml | 2 +- plugin-angularjs/api/server/pom.xml | 2 +- plugin-angularjs/completion/dto-gen/pom.xml | 2 +- plugin-angularjs/completion/dto/pom.xml | 2 +- plugin-angularjs/completion/parser/pom.xml | 2 +- plugin-angularjs/completion/pom.xml | 2 +- plugin-angularjs/core/client/pom.xml | 2 +- plugin-angularjs/core/pom.xml | 2 +- plugin-angularjs/core/server/pom.xml | 2 +- plugin-angularjs/pom.xml | 2 +- plugin-angularjs/templates/angular-seed/pom.xml | 2 +- plugin-angularjs/templates/gulp-angularjs-starter/pom.xml | 2 +- plugin-angularjs/templates/pom.xml | 2 +- plugin-angularjs/templates/yeoman/pom.xml | 2 +- plugin-bower/che-plugin-bower-builder/pom.xml | 2 +- plugin-bower/che-plugin-bower-ext-client/pom.xml | 2 +- plugin-bower/pom.xml | 2 +- plugin-builder/che-plugin-builder-ext-builder/pom.xml | 2 +- plugin-builder/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-base-init/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-jso/pom.xml | 2 +- plugin-codemirror/pom.xml | 2 +- plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml | 2 +- plugin-cpp/pom.xml | 2 +- plugin-docker/che-plugin-docker-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-ext-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-recipes/pom.xml | 2 +- plugin-docker/che-plugin-docker-runner/pom.xml | 2 +- plugin-docker/pom.xml | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 2 +- plugin-git/che-plugin-git-provider-che/pom.xml | 2 +- plugin-git/pom.xml | 2 +- plugin-github/che-plugin-github-ext-github/pom.xml | 2 +- plugin-github/che-plugin-github-oauth2/pom.xml | 2 +- plugin-github/che-plugin-github-provider-github/pom.xml | 2 +- plugin-github/pom.xml | 2 +- plugin-go/che-plugin-go-ext-go/pom.xml | 2 +- plugin-go/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-builder/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-ext-client/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-runner/pom.xml | 2 +- plugin-grunt/pom.xml | 2 +- plugin-gulp/che-plugin-gulp-runner/pom.xml | 2 +- plugin-gulp/pom.xml | 2 +- plugin-help/che-plugin-help-ext-client/pom.xml | 2 +- plugin-help/pom.xml | 2 +- plugin-java/che-plugin-java-ant-tools/pom.xml | 2 +- plugin-java/che-plugin-java-builder-ant/pom.xml | 2 +- plugin-java/che-plugin-java-builder-maven/pom.xml | 2 +- plugin-java/che-plugin-java-ext-ant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-maven/pom.xml | 2 +- plugin-java/che-plugin-java-generator-archetype/pom.xml | 2 +- plugin-java/che-plugin-java-jdt-core-repack/pom.xml | 2 +- plugin-java/che-plugin-java-jseditor/pom.xml | 2 +- plugin-java/che-plugin-java-maven-tools/pom.xml | 2 +- plugin-java/che-plugin-java-runner-webapps/pom.xml | 2 +- plugin-java/pom.xml | 2 +- plugin-npm/che-plugin-npm-builder/pom.xml | 2 +- plugin-npm/che-plugin-npm-ext-client/pom.xml | 2 +- plugin-npm/pom.xml | 2 +- plugin-orion/che-plugin-orion-editor/pom.xml | 2 +- plugin-orion/pom.xml | 2 +- plugin-php/che-plugin-php-ext-php/pom.xml | 2 +- plugin-php/pom.xml | 2 +- plugin-python/che-plugin-python-ext-python/pom.xml | 2 +- plugin-python/pom.xml | 2 +- plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml | 2 +- plugin-ruby/pom.xml | 2 +- plugin-runner/che-plugin-runner-ext-runner/pom.xml | 2 +- plugin-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-env-local/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-tools/pom.xml | 2 +- plugin-sdk/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-git-native/pom.xml | 2 +- plugin-ssh/pom.xml | 2 +- plugin-svn/che-plugin-svn-ext-subversion/pom.xml | 2 +- plugin-svn/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto-gen/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto/pom.xml | 2 +- plugin-tour/che-plugin-tour-ext-client/pom.xml | 2 +- plugin-tour/che-plugin-tour-hopscotch/pom.xml | 2 +- plugin-tour/che-plugin-tour-server/pom.xml | 2 +- plugin-tour/pom.xml | 2 +- plugin-web/che-plugin-web-ext-web/pom.xml | 2 +- plugin-web/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-builder/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml | 2 +- plugin-yeoman/pom.xml | 2 +- pom.xml | 4 ++-- 99 files changed, 100 insertions(+), 100 deletions(-) diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml index 7b4d14d33..193cdf4a6 100644 --- a/plugin-angularjs/api/client/pom.xml +++ b/plugin-angularjs/api/client/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-api-client jar diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml index 2a886614a..6f9d64da6 100644 --- a/plugin-angularjs/api/pom.xml +++ b/plugin-angularjs/api/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-api pom diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml index 4961200e6..110ebdf0c 100644 --- a/plugin-angularjs/api/server/pom.xml +++ b/plugin-angularjs/api/server/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-api-server jar diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml index f650ec12b..72e88e10f 100644 --- a/plugin-angularjs/completion/dto-gen/pom.xml +++ b/plugin-angularjs/completion/dto-gen/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-completion-dto-gen jar diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml index 1fdecdb07..a25dbfb9e 100644 --- a/plugin-angularjs/completion/dto/pom.xml +++ b/plugin-angularjs/completion/dto/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-completion-dto jar diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml index 600b02600..50d6f7185 100644 --- a/plugin-angularjs/completion/parser/pom.xml +++ b/plugin-angularjs/completion/parser/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-completion-parser jar diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml index 47b9ec8ef..3ead7a9b7 100644 --- a/plugin-angularjs/completion/pom.xml +++ b/plugin-angularjs/completion/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-completion pom diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml index f3ce10c3d..41aeffdfb 100644 --- a/plugin-angularjs/core/client/pom.xml +++ b/plugin-angularjs/core/client/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-core-client jar diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml index 5c087e172..7e66561ad 100644 --- a/plugin-angularjs/core/pom.xml +++ b/plugin-angularjs/core/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-core pom diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml index 413b913fa..c94452eaf 100644 --- a/plugin-angularjs/core/server/pom.xml +++ b/plugin-angularjs/core/server/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-core-server jar diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml index 435263d47..8f27f36e1 100644 --- a/plugin-angularjs/pom.xml +++ b/plugin-angularjs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml angularjs-parent diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml index d6405aa16..02b4c1302 100644 --- a/plugin-angularjs/templates/angular-seed/pom.xml +++ b/plugin-angularjs/templates/angular-seed/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-template-angular-seed jar diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml index d1041256b..6582b6846 100644 --- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml +++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-template-gulp-angularjs-starter jar diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml index 39f83bf15..60b5bbc33 100644 --- a/plugin-angularjs/templates/pom.xml +++ b/plugin-angularjs/templates/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-templates pom diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml index df87505b1..53a126c84 100644 --- a/plugin-angularjs/templates/yeoman/pom.xml +++ b/plugin-angularjs/templates/yeoman/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT angularjs-template-yeoman jar diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml index afb04ba22..73d915335 100644 --- a/plugin-bower/che-plugin-bower-builder/pom.xml +++ b/plugin-bower/che-plugin-bower-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-bower-builder jar diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml index 60a57e96a..cabb50e07 100644 --- a/plugin-bower/che-plugin-bower-ext-client/pom.xml +++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-bower-ext-client jar diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml index 63f4fd001..e6147629d 100644 --- a/plugin-bower/pom.xml +++ b/plugin-bower/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-bower-parent diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml index c97c7804d..5229a2df0 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml +++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-builder-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-builder-ext-builder jar diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml index 357bf9b87..27536b864 100644 --- a/plugin-builder/pom.xml +++ b/plugin-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-builder-parent diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml index d5d071c40..2b2996030 100644 --- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-codemirror-base-init jar diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml index 08c27f062..ae16423ee 100644 --- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-codemirror-editorwidget jar diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml index 7ea037e27..618587007 100644 --- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-codemirror-highlighter Che Plugin :: CodeMirror :: Highlighter diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml index 0624758b1..6318e4262 100644 --- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-codemirror-ide-style jar diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index 01b5aed2a..d3915283a 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-codemirror-jso jar diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml index 81eb966e8..532b93fa8 100644 --- a/plugin-codemirror/pom.xml +++ b/plugin-codemirror/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-codemirror-parent diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml index 536ddaf04..af0987e16 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-cpp-ext-cpp jar diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml index 7c3f14ea0..7a235ae0a 100644 --- a/plugin-cpp/pom.xml +++ b/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-cpp-parent diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml index 1096e8fa8..95ab194bf 100644 --- a/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-docker-client jar diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml index 4a5f77ad6..d47ed2ff6 100644 --- a/plugin-docker/che-plugin-docker-ext-client/pom.xml +++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-docker-ext-client jar diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml index 4662ad91c..ac1965898 100644 --- a/plugin-docker/che-plugin-docker-recipes/pom.xml +++ b/plugin-docker/che-plugin-docker-recipes/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-docker-recipes jar diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml index ca7e4343f..6b7207ab5 100644 --- a/plugin-docker/che-plugin-docker-runner/pom.xml +++ b/plugin-docker/che-plugin-docker-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-docker-runner jar diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index f1cb12b79..e2afc04c6 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-docker-parent diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index 802b2cab5..b899d12d4 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-git-ext-git jar diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml index bf27b61ef..39a094bc2 100644 --- a/plugin-git/che-plugin-git-provider-che/pom.xml +++ b/plugin-git/che-plugin-git-provider-che/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-git-provider-che Che Plugin :: Git :: Che credential provider diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml index b6eb08241..7160972c9 100644 --- a/plugin-git/pom.xml +++ b/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-git-parent diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index 4ddd2d955..cbc1fb01a 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-github-ext-github jar diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml index 3aedfa2c4..d15f9601f 100644 --- a/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-github-oauth2 jar diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml index 93d733ed9..e6fd715f0 100644 --- a/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml index cd5f089aa..012d6aa3c 100644 --- a/plugin-github/pom.xml +++ b/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-github-parent diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml index a5cbd189e..873b92e30 100644 --- a/plugin-go/che-plugin-go-ext-go/pom.xml +++ b/plugin-go/che-plugin-go-ext-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-go-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-go-ext-go jar diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml index 9c6b3843d..a998757c8 100644 --- a/plugin-go/pom.xml +++ b/plugin-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-go-parent diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml index caed4b7d5..0f170cde2 100644 --- a/plugin-grunt/che-plugin-grunt-builder/pom.xml +++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-grunt-builder jar diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml index ec9147773..a37604b4c 100644 --- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml +++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-grunt-ext-client jar diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml index c15231f1e..0ed4f3a6c 100644 --- a/plugin-grunt/che-plugin-grunt-runner/pom.xml +++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-grunt-runner jar diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml index f7906d4fa..65408d6ec 100644 --- a/plugin-grunt/pom.xml +++ b/plugin-grunt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-grunt-parent diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml index 839ae344f..ea2da20c8 100644 --- a/plugin-gulp/che-plugin-gulp-runner/pom.xml +++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-gulp-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-gulp-runner jar diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml index c386ac743..38a902570 100644 --- a/plugin-gulp/pom.xml +++ b/plugin-gulp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-gulp-parent diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml index d57149e88..6ab156337 100644 --- a/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-help-ext-client jar diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml index bf12ec274..451757430 100644 --- a/plugin-help/pom.xml +++ b/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-help-parent diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml index 86718b2af..1d3c37b67 100644 --- a/plugin-java/che-plugin-java-ant-tools/pom.xml +++ b/plugin-java/che-plugin-java-ant-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-ant-tools jar diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml index 668e070bf..507f2bc35 100644 --- a/plugin-java/che-plugin-java-builder-ant/pom.xml +++ b/plugin-java/che-plugin-java-builder-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-builder-ant jar diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml index 2d0b55f1b..b0b89b663 100644 --- a/plugin-java/che-plugin-java-builder-maven/pom.xml +++ b/plugin-java/che-plugin-java-builder-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-builder-maven jar diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml index 5bcde2d6c..0223d2812 100644 --- a/plugin-java/che-plugin-java-ext-ant/pom.xml +++ b/plugin-java/che-plugin-java-ext-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-ext-ant jar diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index 11ade0760..5d701af41 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-ext-debugger-java jar diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml index 64c11c929..6ec9441b3 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-ext-java-codeassistant jar diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml index 530260f34..bd2a91f9f 100644 --- a/plugin-java/che-plugin-java-ext-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-ext-java jar diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml index 1175d102c..cd00f27a1 100644 --- a/plugin-java/che-plugin-java-ext-maven/pom.xml +++ b/plugin-java/che-plugin-java-ext-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-ext-maven jar diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml index 47ca8c872..0d132421b 100644 --- a/plugin-java/che-plugin-java-generator-archetype/pom.xml +++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-generator-archetype jar diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml index fe50f493e..b87a0c906 100644 --- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml +++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-jdt-core-repack jar diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml index fbcb29e8e..44bb91168 100644 --- a/plugin-java/che-plugin-java-jseditor/pom.xml +++ b/plugin-java/che-plugin-java-jseditor/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-jseditor Che Plugin :: Java :: JsEditor diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index d3c595199..3068997fc 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-maven-tools jar diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml index 47b8b31ce..84bf50dbd 100644 --- a/plugin-java/che-plugin-java-runner-webapps/pom.xml +++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-java-runner-webapps jar diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml index 9c054d3b7..3926d41ce 100644 --- a/plugin-java/pom.xml +++ b/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-java-parent diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml index 94739023a..07a1151f4 100644 --- a/plugin-npm/che-plugin-npm-builder/pom.xml +++ b/plugin-npm/che-plugin-npm-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-npm-builder jar diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml index 765364afe..a2ea9ff0e 100644 --- a/plugin-npm/che-plugin-npm-ext-client/pom.xml +++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-npm-ext-client jar diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml index 4416ba09e..2e0d15d52 100644 --- a/plugin-npm/pom.xml +++ b/plugin-npm/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-npm-parent diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml index 7014d9240..d503b5cf6 100644 --- a/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-orion-editor diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml index c7b0ada56..a9b898084 100644 --- a/plugin-orion/pom.xml +++ b/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-orion-parent diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml index 836024e3b..a427f61df 100644 --- a/plugin-php/che-plugin-php-ext-php/pom.xml +++ b/plugin-php/che-plugin-php-ext-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-php-ext-php jar diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml index 24e0e6b5b..562499820 100644 --- a/plugin-php/pom.xml +++ b/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-php-parent diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml index 32827aec3..f7f0551be 100644 --- a/plugin-python/che-plugin-python-ext-python/pom.xml +++ b/plugin-python/che-plugin-python-ext-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-python-ext-python jar diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml index 5eaabb1c2..86d13814b 100644 --- a/plugin-python/pom.xml +++ b/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-python-parent diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml index bad9c7e1a..a42d8a742 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-ruby-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-ruby-ext-ruby jar diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml index 68b7db911..971269325 100644 --- a/plugin-ruby/pom.xml +++ b/plugin-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-ruby-parent diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml index 031154a5f..0870fe4d5 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml +++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-runner-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-runner-ext-runner jar diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml index 30b4b2589..ebeefa4ae 100644 --- a/plugin-runner/pom.xml +++ b/plugin-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-runner-parent diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml index 458ddaf4c..33c460802 100644 --- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml +++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-sdk-env-local jar diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index 487896f04..b2cfd8cd9 100644 --- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-sdk-ext-plugins jar diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index 84b64700b..f376eb4dc 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-sdk-runner jar diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml index 6e1ea385e..b9c0a1327 100644 --- a/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-sdk-tools jar diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml index 54b9c37ff..75051f8e7 100644 --- a/plugin-sdk/pom.xml +++ b/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-sdk-parent diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml index 980b6dea0..52470958f 100644 --- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml +++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-ssh-ext-sshkey jar diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml index 562b5d009..5671d9deb 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml +++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-ssh-git-native jar diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml index ffadb9d2a..c71662f7a 100644 --- a/plugin-ssh/pom.xml +++ b/plugin-ssh/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-ssh-parent diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml index a50512701..0a9f85536 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml +++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-svn-ext-subversion jar diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml index 54b923d12..d782ecd09 100644 --- a/plugin-svn/pom.xml +++ b/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-svn-parent diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml index 47d7cf034..b2dc2bb89 100644 --- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml +++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-tour-dto-gen Che Plugin :: Tour :: DTO Generation diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml index 2e82188db..0f94a861c 100644 --- a/plugin-tour/che-plugin-tour-dto/pom.xml +++ b/plugin-tour/che-plugin-tour-dto/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-tour-dto Che Plugin :: Tour :: DTO diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml index 8a5af1f41..5bdc29883 100644 --- a/plugin-tour/che-plugin-tour-ext-client/pom.xml +++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-tour-ext-client Che Plugin :: Tour :: Client diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml index b10aaf784..98fd426d8 100644 --- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml +++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-tour-hopscotch Che Plugin :: Tour :: Hopscotch diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml index f48edb158..84dc4c81f 100644 --- a/plugin-tour/che-plugin-tour-server/pom.xml +++ b/plugin-tour/che-plugin-tour-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-tour-server Che Plugin :: Tour :: Server diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml index 3326a446f..7fdfc1e78 100644 --- a/plugin-tour/pom.xml +++ b/plugin-tour/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-tour-parent diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml index 9254f1427..0eea54f1f 100644 --- a/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-web-ext-web jar diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml index 8180e66ac..50b49cfe6 100644 --- a/plugin-web/pom.xml +++ b/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-web-parent diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml index 86b229d9c..6f388683f 100644 --- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-yeoman-builder jar diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml index 42ef8433f..480705597 100644 --- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT che-plugin-yeoman-ext-client jar diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml index ee7e6a01b..b46179a43 100644 --- a/plugin-yeoman/pom.xml +++ b/plugin-yeoman/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.4 + 3.12.5-SNAPSHOT ../pom.xml che-plugin-yeoman-parent diff --git a/pom.xml b/pom.xml index 273a952d1..9bc340ace 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.eclipse.che.plugin che-plugin-parent - 3.12.4 + 3.12.5-SNAPSHOT pom Che Plugin :: Parent @@ -53,7 +53,7 @@ scm:git:git@github.com:codenvy/che-plugins.git scm:git:git@github.com:codenvy/che-plugins.git - 3.12.4 + 3.9.0 https://github.com/codenvy/che-plugins From c1f9f25195854be1259c8fa51ba4abc25d9709b8 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Thu, 17 Sep 2015 17:56:12 +0000 Subject: [PATCH 055/164] RELEASE:Set next development version of parent pom --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9bc340ace..fe5b173b8 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ maven-depmgt-pom org.eclipse.che.depmgt - 3.12.4 + 3.12.5-SNAPSHOT org.eclipse.che.plugin che-plugin-parent From 7de1a6dae6c5972e724101e6959ddb5bedbe4ddf Mon Sep 17 00:00:00 2001 From: Florent BENOIT Date: Fri, 18 Sep 2015 10:44:10 +0200 Subject: [PATCH 056/164] IDEX-3099 Memory is not a string but long in hostconfig From https://docs.docker.com/reference/api/docker_remote_api_v1.20/ to https://docs.docker.com/reference/api/docker_remote_api_v1.14/ at least --- .../eclipse/che/plugin/docker/client/json/HostConfig.java | 8 ++++---- .../che/plugin/docker/runner/BaseDockerRunner.java | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java index e7dc66f32..2510534b4 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/json/HostConfig.java @@ -31,7 +31,7 @@ public class HostConfig { private String networkMode; private String[] devices; private String containerIDFile; - private String memory; + private long memory; private int memorySwap; private LogConfig logConfig; private String ipcMode; @@ -252,15 +252,15 @@ public HostConfig withContainerIDFile(String containerIDFile) { return this; } - public String getMemory() { + public long getMemory() { return memory; } - public void setMemory(String memory) { + public void setMemory(long memory) { this.memory = memory; } - public HostConfig withMemory(String memory) { + public HostConfig withMemory(long memory) { this.memory = memory; return this; } diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java index 03e020647..17ed6cfc6 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java @@ -343,9 +343,9 @@ protected ApplicationProcess newApplicationProcess(DeploymentSources toDeploy, R } final ContainerConfig containerConfig = new ContainerConfig().withImage(imageIdentifier.id) .withHostConfig(new HostConfig() - .withMemory(Long.toString( + .withMemory( (long)runnerCfg.getMemory() * - 1024 * 1024)) + 1024 * 1024) .withCpuShares(1)) .withEnv(env.toArray(new String[env.size()])); // Listens start and stop. From 9288ad78e4c9cfad2a71f69f599afb38735a3ac2 Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Fri, 18 Sep 2015 17:17:39 +0300 Subject: [PATCH 057/164] IDEX-3096: avoid usage of deprecated docker API --- .../che/plugin/docker/client/DockerConnector.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java index c23f649c6..7a85bb9f1 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java @@ -321,8 +321,8 @@ public ContainerCreated createContainer(ContainerConfig containerConfig, String return doCreateContainer(containerConfig, containerName, dockerDaemonUri); } - public void startContainer(String container, HostConfig hostConfig) throws IOException { - doStartContainer(container, hostConfig, dockerDaemonUri); + public void startContainer(String container) throws IOException { + doStartContainer(container, dockerDaemonUri); } /** @@ -1085,17 +1085,10 @@ protected ContainerCreated doCreateContainer(ContainerConfig containerConfig, } protected void doStartContainer(String container, - HostConfig hostConfig, URI dockerDaemonUri) throws IOException { - final List> headers = new ArrayList<>(2); - headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); - final String entity = hostConfig == null ? "{}" : JsonHelper.toJson(hostConfig, FIRST_LETTER_LOWERCASE); - headers.add(Pair.of("Content-Length", entity.getBytes().length)); try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") - .path("/containers/" + container + "/start") - .headers(headers) - .entity(entity)) { + .path("/containers/" + container + "/start")) { final DockerResponse response = connection.request(); final int status = response.getStatus(); if (!(NO_CONTENT.getStatusCode() == status || NOT_MODIFIED.getStatusCode() == status)) { From 7c5efc54c8f6c5df7b93fe0488e385f0391e33df Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Fri, 18 Sep 2015 17:19:33 +0300 Subject: [PATCH 058/164] IDEX-3096: use modern docker api of container creation and start --- .../docker/runner/BaseDockerRunner.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java index 17ed6cfc6..5ca4e2786 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java @@ -342,12 +342,11 @@ protected ApplicationProcess newApplicationProcess(DeploymentSources toDeploy, R } } final ContainerConfig containerConfig = new ContainerConfig().withImage(imageIdentifier.id) - .withHostConfig(new HostConfig() - .withMemory( - (long)runnerCfg.getMemory() * - 1024 * 1024) - .withCpuShares(1)) + .withMemory((long)runnerCfg.getMemory() * 1024 * 1024) + .withCpuShares(1) + .withHostConfig(hostConfig) .withEnv(env.toArray(new String[env.size()])); + // Listens start and stop. final ApplicationProcess.Callback callback = new ApplicationProcess.Callback() { @Override @@ -377,8 +376,12 @@ public void stopped() { } } }; - final DockerProcess docker = - new DockerProcess(request, containerConfig, hostConfig, logsPublisher, imageIdentifier, initImageTime, callback); + final DockerProcess docker = new DockerProcess(request, + containerConfig, + logsPublisher, + imageIdentifier, + initImageTime, + callback); registerDisposer(docker, new Disposer() { @Override public void dispose() { @@ -866,7 +869,6 @@ private static class ImageIdentifier { private class DockerProcess extends ApplicationProcess { final RunRequest request; final ContainerConfig containerCfg; - final HostConfig hostCfg; final ApplicationLogsPublisher logsPublisher; final ImageIdentifier imageIdentifier; final Callback callback; @@ -877,14 +879,12 @@ private class DockerProcess extends ApplicationProcess { DockerProcess(RunRequest request, ContainerConfig containerCfg, - HostConfig hostCfg, ApplicationLogsPublisher logsPublisher, ImageIdentifier imageIdentifier, long imageInitDuration, Callback callback) { this.request = request; this.containerCfg = containerCfg; - this.hostCfg = hostCfg; this.logsPublisher = logsPublisher; this.imageIdentifier = imageIdentifier; this.callback = callback; @@ -897,7 +897,7 @@ public void start() throws RunnerException { if (started.compareAndSet(false, true)) { try { final ContainerCreated response = dockerConnector.createContainer(containerCfg, null); - dockerConnector.startContainer(response.getId(), hostCfg); + dockerConnector.startContainer(response.getId()); oomDetector.startDetection(response.getId(), new LogMessagePrinter(logsPublisher)); container = response.getId(); LOG.info("EVENT#configure-docker-started# WS#{}# USER#{}# ID#{}#", request.getWorkspace(), request.getUserId(), From 70b9463ae4458be8f8cfec9c3e1095e18b938588 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Fri, 18 Sep 2015 17:41:28 +0000 Subject: [PATCH 059/164] RELEASE:Set tag of parent pom --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fe5b173b8..ef2515e19 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ maven-depmgt-pom org.eclipse.che.depmgt - 3.12.5-SNAPSHOT + 3.12.5 org.eclipse.che.plugin che-plugin-parent From e6837900d6620661d94143312bcd1c5de20f1637 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Fri, 18 Sep 2015 17:58:56 +0000 Subject: [PATCH 060/164] [maven-release-plugin] prepare release 3.12.5 --- plugin-angularjs/api/client/pom.xml | 2 +- plugin-angularjs/api/pom.xml | 2 +- plugin-angularjs/api/server/pom.xml | 2 +- plugin-angularjs/completion/dto-gen/pom.xml | 2 +- plugin-angularjs/completion/dto/pom.xml | 2 +- plugin-angularjs/completion/parser/pom.xml | 2 +- plugin-angularjs/completion/pom.xml | 2 +- plugin-angularjs/core/client/pom.xml | 2 +- plugin-angularjs/core/pom.xml | 2 +- plugin-angularjs/core/server/pom.xml | 2 +- plugin-angularjs/pom.xml | 2 +- plugin-angularjs/templates/angular-seed/pom.xml | 2 +- plugin-angularjs/templates/gulp-angularjs-starter/pom.xml | 2 +- plugin-angularjs/templates/pom.xml | 2 +- plugin-angularjs/templates/yeoman/pom.xml | 2 +- plugin-bower/che-plugin-bower-builder/pom.xml | 2 +- plugin-bower/che-plugin-bower-ext-client/pom.xml | 2 +- plugin-bower/pom.xml | 2 +- plugin-builder/che-plugin-builder-ext-builder/pom.xml | 2 +- plugin-builder/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-base-init/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-jso/pom.xml | 2 +- plugin-codemirror/pom.xml | 2 +- plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml | 2 +- plugin-cpp/pom.xml | 2 +- plugin-docker/che-plugin-docker-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-ext-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-recipes/pom.xml | 2 +- plugin-docker/che-plugin-docker-runner/pom.xml | 2 +- plugin-docker/pom.xml | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 2 +- plugin-git/che-plugin-git-provider-che/pom.xml | 2 +- plugin-git/pom.xml | 2 +- plugin-github/che-plugin-github-ext-github/pom.xml | 2 +- plugin-github/che-plugin-github-oauth2/pom.xml | 2 +- plugin-github/che-plugin-github-provider-github/pom.xml | 2 +- plugin-github/pom.xml | 2 +- plugin-go/che-plugin-go-ext-go/pom.xml | 2 +- plugin-go/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-builder/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-ext-client/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-runner/pom.xml | 2 +- plugin-grunt/pom.xml | 2 +- plugin-gulp/che-plugin-gulp-runner/pom.xml | 2 +- plugin-gulp/pom.xml | 2 +- plugin-help/che-plugin-help-ext-client/pom.xml | 2 +- plugin-help/pom.xml | 2 +- plugin-java/che-plugin-java-ant-tools/pom.xml | 2 +- plugin-java/che-plugin-java-builder-ant/pom.xml | 2 +- plugin-java/che-plugin-java-builder-maven/pom.xml | 2 +- plugin-java/che-plugin-java-ext-ant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-maven/pom.xml | 2 +- plugin-java/che-plugin-java-generator-archetype/pom.xml | 2 +- plugin-java/che-plugin-java-jdt-core-repack/pom.xml | 2 +- plugin-java/che-plugin-java-jseditor/pom.xml | 2 +- plugin-java/che-plugin-java-maven-tools/pom.xml | 2 +- plugin-java/che-plugin-java-runner-webapps/pom.xml | 2 +- plugin-java/pom.xml | 2 +- plugin-npm/che-plugin-npm-builder/pom.xml | 2 +- plugin-npm/che-plugin-npm-ext-client/pom.xml | 2 +- plugin-npm/pom.xml | 2 +- plugin-orion/che-plugin-orion-editor/pom.xml | 2 +- plugin-orion/pom.xml | 2 +- plugin-php/che-plugin-php-ext-php/pom.xml | 2 +- plugin-php/pom.xml | 2 +- plugin-python/che-plugin-python-ext-python/pom.xml | 2 +- plugin-python/pom.xml | 2 +- plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml | 2 +- plugin-ruby/pom.xml | 2 +- plugin-runner/che-plugin-runner-ext-runner/pom.xml | 2 +- plugin-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-env-local/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-tools/pom.xml | 2 +- plugin-sdk/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-git-native/pom.xml | 2 +- plugin-ssh/pom.xml | 2 +- plugin-svn/che-plugin-svn-ext-subversion/pom.xml | 2 +- plugin-svn/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto-gen/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto/pom.xml | 2 +- plugin-tour/che-plugin-tour-ext-client/pom.xml | 2 +- plugin-tour/che-plugin-tour-hopscotch/pom.xml | 2 +- plugin-tour/che-plugin-tour-server/pom.xml | 2 +- plugin-tour/pom.xml | 2 +- plugin-web/che-plugin-web-ext-web/pom.xml | 2 +- plugin-web/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-builder/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml | 2 +- plugin-yeoman/pom.xml | 2 +- pom.xml | 4 ++-- 99 files changed, 100 insertions(+), 100 deletions(-) diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml index 193cdf4a6..d1b900754 100644 --- a/plugin-angularjs/api/client/pom.xml +++ b/plugin-angularjs/api/client/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-api-client jar diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml index 6f9d64da6..230035cca 100644 --- a/plugin-angularjs/api/pom.xml +++ b/plugin-angularjs/api/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-api pom diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml index 110ebdf0c..445324ff3 100644 --- a/plugin-angularjs/api/server/pom.xml +++ b/plugin-angularjs/api/server/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-api-server jar diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml index 72e88e10f..5ca866ba1 100644 --- a/plugin-angularjs/completion/dto-gen/pom.xml +++ b/plugin-angularjs/completion/dto-gen/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-completion-dto-gen jar diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml index a25dbfb9e..cc32b5188 100644 --- a/plugin-angularjs/completion/dto/pom.xml +++ b/plugin-angularjs/completion/dto/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-completion-dto jar diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml index 50d6f7185..768e0217a 100644 --- a/plugin-angularjs/completion/parser/pom.xml +++ b/plugin-angularjs/completion/parser/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-completion-parser jar diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml index 3ead7a9b7..dff3b4b90 100644 --- a/plugin-angularjs/completion/pom.xml +++ b/plugin-angularjs/completion/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-completion pom diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml index 41aeffdfb..0d7d0de63 100644 --- a/plugin-angularjs/core/client/pom.xml +++ b/plugin-angularjs/core/client/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-core-client jar diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml index 7e66561ad..5e9f01977 100644 --- a/plugin-angularjs/core/pom.xml +++ b/plugin-angularjs/core/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-core pom diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml index c94452eaf..8af59d5e6 100644 --- a/plugin-angularjs/core/server/pom.xml +++ b/plugin-angularjs/core/server/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-core-server jar diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml index 8f27f36e1..b3a15fd85 100644 --- a/plugin-angularjs/pom.xml +++ b/plugin-angularjs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml angularjs-parent diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml index 02b4c1302..4d19b1464 100644 --- a/plugin-angularjs/templates/angular-seed/pom.xml +++ b/plugin-angularjs/templates/angular-seed/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-template-angular-seed jar diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml index 6582b6846..9b163068a 100644 --- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml +++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-template-gulp-angularjs-starter jar diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml index 60b5bbc33..ebed2b9a1 100644 --- a/plugin-angularjs/templates/pom.xml +++ b/plugin-angularjs/templates/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-templates pom diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml index 53a126c84..01c46bd7a 100644 --- a/plugin-angularjs/templates/yeoman/pom.xml +++ b/plugin-angularjs/templates/yeoman/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 angularjs-template-yeoman jar diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml index 73d915335..e86ad8017 100644 --- a/plugin-bower/che-plugin-bower-builder/pom.xml +++ b/plugin-bower/che-plugin-bower-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-bower-builder jar diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml index cabb50e07..0933f927d 100644 --- a/plugin-bower/che-plugin-bower-ext-client/pom.xml +++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-bower-ext-client jar diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml index e6147629d..4fe861e76 100644 --- a/plugin-bower/pom.xml +++ b/plugin-bower/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-bower-parent diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml index 5229a2df0..f9b349c7b 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml +++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-builder-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-builder-ext-builder jar diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml index 27536b864..8054438cf 100644 --- a/plugin-builder/pom.xml +++ b/plugin-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-builder-parent diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml index 2b2996030..b58bba1b8 100644 --- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-codemirror-base-init jar diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml index ae16423ee..71a7c8e64 100644 --- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-codemirror-editorwidget jar diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml index 618587007..1397027a8 100644 --- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-codemirror-highlighter Che Plugin :: CodeMirror :: Highlighter diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml index 6318e4262..8f75bfa5e 100644 --- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-codemirror-ide-style jar diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index d3915283a..633a2b3de 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-codemirror-jso jar diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml index 532b93fa8..5f701578a 100644 --- a/plugin-codemirror/pom.xml +++ b/plugin-codemirror/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-codemirror-parent diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml index af0987e16..227e63b69 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-cpp-ext-cpp jar diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml index 7a235ae0a..4cf7565fc 100644 --- a/plugin-cpp/pom.xml +++ b/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-cpp-parent diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml index 95ab194bf..7564c1def 100644 --- a/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-docker-client jar diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml index d47ed2ff6..4a1918ca3 100644 --- a/plugin-docker/che-plugin-docker-ext-client/pom.xml +++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-docker-ext-client jar diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml index ac1965898..791bd27a1 100644 --- a/plugin-docker/che-plugin-docker-recipes/pom.xml +++ b/plugin-docker/che-plugin-docker-recipes/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-docker-recipes jar diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml index 6b7207ab5..d69b19127 100644 --- a/plugin-docker/che-plugin-docker-runner/pom.xml +++ b/plugin-docker/che-plugin-docker-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-docker-runner jar diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index e2afc04c6..f769d75d7 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-docker-parent diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index b899d12d4..26f4f2681 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-git-ext-git jar diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml index 39a094bc2..2909337b2 100644 --- a/plugin-git/che-plugin-git-provider-che/pom.xml +++ b/plugin-git/che-plugin-git-provider-che/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-git-provider-che Che Plugin :: Git :: Che credential provider diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml index 7160972c9..6a070fca2 100644 --- a/plugin-git/pom.xml +++ b/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-git-parent diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index cbc1fb01a..0eb5e1f05 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-github-ext-github jar diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml index d15f9601f..369c9fe79 100644 --- a/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-github-oauth2 jar diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml index e6fd715f0..994497bb3 100644 --- a/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml index 012d6aa3c..0ae1d7a1d 100644 --- a/plugin-github/pom.xml +++ b/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-github-parent diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml index 873b92e30..27fe5eb61 100644 --- a/plugin-go/che-plugin-go-ext-go/pom.xml +++ b/plugin-go/che-plugin-go-ext-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-go-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-go-ext-go jar diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml index a998757c8..50fc7d4e7 100644 --- a/plugin-go/pom.xml +++ b/plugin-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-go-parent diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml index 0f170cde2..a1742f8f6 100644 --- a/plugin-grunt/che-plugin-grunt-builder/pom.xml +++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-grunt-builder jar diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml index a37604b4c..1fbb6c840 100644 --- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml +++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-grunt-ext-client jar diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml index 0ed4f3a6c..24034f35f 100644 --- a/plugin-grunt/che-plugin-grunt-runner/pom.xml +++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-grunt-runner jar diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml index 65408d6ec..b800b0ff7 100644 --- a/plugin-grunt/pom.xml +++ b/plugin-grunt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-grunt-parent diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml index ea2da20c8..37a828aeb 100644 --- a/plugin-gulp/che-plugin-gulp-runner/pom.xml +++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-gulp-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-gulp-runner jar diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml index 38a902570..862e04d7b 100644 --- a/plugin-gulp/pom.xml +++ b/plugin-gulp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-gulp-parent diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml index 6ab156337..caeff5c1f 100644 --- a/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-help-ext-client jar diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml index 451757430..9d8ce77c1 100644 --- a/plugin-help/pom.xml +++ b/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-help-parent diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml index 1d3c37b67..f6a1e82da 100644 --- a/plugin-java/che-plugin-java-ant-tools/pom.xml +++ b/plugin-java/che-plugin-java-ant-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-ant-tools jar diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml index 507f2bc35..baedfce91 100644 --- a/plugin-java/che-plugin-java-builder-ant/pom.xml +++ b/plugin-java/che-plugin-java-builder-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-builder-ant jar diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml index b0b89b663..c064b196e 100644 --- a/plugin-java/che-plugin-java-builder-maven/pom.xml +++ b/plugin-java/che-plugin-java-builder-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-builder-maven jar diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml index 0223d2812..8f91e1508 100644 --- a/plugin-java/che-plugin-java-ext-ant/pom.xml +++ b/plugin-java/che-plugin-java-ext-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-ext-ant jar diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index 5d701af41..390c1bbd5 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-ext-debugger-java jar diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml index 6ec9441b3..57b2a1a9f 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-ext-java-codeassistant jar diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml index bd2a91f9f..f5a23f838 100644 --- a/plugin-java/che-plugin-java-ext-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-ext-java jar diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml index cd00f27a1..686313494 100644 --- a/plugin-java/che-plugin-java-ext-maven/pom.xml +++ b/plugin-java/che-plugin-java-ext-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-ext-maven jar diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml index 0d132421b..99877bb22 100644 --- a/plugin-java/che-plugin-java-generator-archetype/pom.xml +++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-generator-archetype jar diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml index b87a0c906..9a948e409 100644 --- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml +++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-jdt-core-repack jar diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml index 44bb91168..1d28792d9 100644 --- a/plugin-java/che-plugin-java-jseditor/pom.xml +++ b/plugin-java/che-plugin-java-jseditor/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-jseditor Che Plugin :: Java :: JsEditor diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index 3068997fc..208799a84 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-maven-tools jar diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml index 84bf50dbd..7df9131df 100644 --- a/plugin-java/che-plugin-java-runner-webapps/pom.xml +++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-java-runner-webapps jar diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml index 3926d41ce..d450e89f4 100644 --- a/plugin-java/pom.xml +++ b/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-java-parent diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml index 07a1151f4..ce86a2b81 100644 --- a/plugin-npm/che-plugin-npm-builder/pom.xml +++ b/plugin-npm/che-plugin-npm-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-npm-builder jar diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml index a2ea9ff0e..cea60b966 100644 --- a/plugin-npm/che-plugin-npm-ext-client/pom.xml +++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-npm-ext-client jar diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml index 2e0d15d52..4c3bf48e3 100644 --- a/plugin-npm/pom.xml +++ b/plugin-npm/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-npm-parent diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml index d503b5cf6..8bfe41f33 100644 --- a/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-orion-editor diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml index a9b898084..b5b0ecc7c 100644 --- a/plugin-orion/pom.xml +++ b/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-orion-parent diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml index a427f61df..15430705e 100644 --- a/plugin-php/che-plugin-php-ext-php/pom.xml +++ b/plugin-php/che-plugin-php-ext-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-php-ext-php jar diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml index 562499820..4a8ad5d67 100644 --- a/plugin-php/pom.xml +++ b/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-php-parent diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml index f7f0551be..7947997e5 100644 --- a/plugin-python/che-plugin-python-ext-python/pom.xml +++ b/plugin-python/che-plugin-python-ext-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-python-ext-python jar diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml index 86d13814b..8897f4fd7 100644 --- a/plugin-python/pom.xml +++ b/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-python-parent diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml index a42d8a742..7b8eda732 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-ruby-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-ruby-ext-ruby jar diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml index 971269325..e940b1a4c 100644 --- a/plugin-ruby/pom.xml +++ b/plugin-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-ruby-parent diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml index 0870fe4d5..598100981 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml +++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-runner-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-runner-ext-runner jar diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml index ebeefa4ae..fc4b737be 100644 --- a/plugin-runner/pom.xml +++ b/plugin-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-runner-parent diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml index 33c460802..0430674f7 100644 --- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml +++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-sdk-env-local jar diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index b2cfd8cd9..62dbc637f 100644 --- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-sdk-ext-plugins jar diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index f376eb4dc..c04fe5e0d 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-sdk-runner jar diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml index b9c0a1327..d5ca2c3da 100644 --- a/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-sdk-tools jar diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml index 75051f8e7..352edc0d9 100644 --- a/plugin-sdk/pom.xml +++ b/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-sdk-parent diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml index 52470958f..afab8ce9b 100644 --- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml +++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-ssh-ext-sshkey jar diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml index 5671d9deb..2995f68da 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml +++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-ssh-git-native jar diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml index c71662f7a..a96ee5401 100644 --- a/plugin-ssh/pom.xml +++ b/plugin-ssh/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-ssh-parent diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml index 0a9f85536..dc7fe8fe1 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml +++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-svn-ext-subversion jar diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml index d782ecd09..ed18216e8 100644 --- a/plugin-svn/pom.xml +++ b/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-svn-parent diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml index b2dc2bb89..17f67d90d 100644 --- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml +++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-tour-dto-gen Che Plugin :: Tour :: DTO Generation diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml index 0f94a861c..1845136c2 100644 --- a/plugin-tour/che-plugin-tour-dto/pom.xml +++ b/plugin-tour/che-plugin-tour-dto/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-tour-dto Che Plugin :: Tour :: DTO diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml index 5bdc29883..75f9520cb 100644 --- a/plugin-tour/che-plugin-tour-ext-client/pom.xml +++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-tour-ext-client Che Plugin :: Tour :: Client diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml index 98fd426d8..e55f972e7 100644 --- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml +++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-tour-hopscotch Che Plugin :: Tour :: Hopscotch diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml index 84dc4c81f..df1248ad7 100644 --- a/plugin-tour/che-plugin-tour-server/pom.xml +++ b/plugin-tour/che-plugin-tour-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-tour-server Che Plugin :: Tour :: Server diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml index 7fdfc1e78..cb74f8449 100644 --- a/plugin-tour/pom.xml +++ b/plugin-tour/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-tour-parent diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml index 0eea54f1f..6c16c582f 100644 --- a/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-web-ext-web jar diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml index 50b49cfe6..975bd20cf 100644 --- a/plugin-web/pom.xml +++ b/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-web-parent diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml index 6f388683f..d38aef41d 100644 --- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-yeoman-builder jar diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml index 480705597..274961061 100644 --- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 che-plugin-yeoman-ext-client jar diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml index b46179a43..030ccc72a 100644 --- a/plugin-yeoman/pom.xml +++ b/plugin-yeoman/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5-SNAPSHOT + 3.12.5 ../pom.xml che-plugin-yeoman-parent diff --git a/pom.xml b/pom.xml index ef2515e19..f5910b2dd 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.eclipse.che.plugin che-plugin-parent - 3.12.5-SNAPSHOT + 3.12.5 pom Che Plugin :: Parent @@ -53,7 +53,7 @@ scm:git:git@github.com:codenvy/che-plugins.git scm:git:git@github.com:codenvy/che-plugins.git - 3.9.0 + 3.12.5 https://github.com/codenvy/che-plugins From 6ac453b4d4f9470224e7f4b667284e93455969fb Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Fri, 18 Sep 2015 17:58:58 +0000 Subject: [PATCH 061/164] [maven-release-plugin] prepare for next development iteration --- plugin-angularjs/api/client/pom.xml | 2 +- plugin-angularjs/api/pom.xml | 2 +- plugin-angularjs/api/server/pom.xml | 2 +- plugin-angularjs/completion/dto-gen/pom.xml | 2 +- plugin-angularjs/completion/dto/pom.xml | 2 +- plugin-angularjs/completion/parser/pom.xml | 2 +- plugin-angularjs/completion/pom.xml | 2 +- plugin-angularjs/core/client/pom.xml | 2 +- plugin-angularjs/core/pom.xml | 2 +- plugin-angularjs/core/server/pom.xml | 2 +- plugin-angularjs/pom.xml | 2 +- plugin-angularjs/templates/angular-seed/pom.xml | 2 +- plugin-angularjs/templates/gulp-angularjs-starter/pom.xml | 2 +- plugin-angularjs/templates/pom.xml | 2 +- plugin-angularjs/templates/yeoman/pom.xml | 2 +- plugin-bower/che-plugin-bower-builder/pom.xml | 2 +- plugin-bower/che-plugin-bower-ext-client/pom.xml | 2 +- plugin-bower/pom.xml | 2 +- plugin-builder/che-plugin-builder-ext-builder/pom.xml | 2 +- plugin-builder/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-base-init/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-jso/pom.xml | 2 +- plugin-codemirror/pom.xml | 2 +- plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml | 2 +- plugin-cpp/pom.xml | 2 +- plugin-docker/che-plugin-docker-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-ext-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-recipes/pom.xml | 2 +- plugin-docker/che-plugin-docker-runner/pom.xml | 2 +- plugin-docker/pom.xml | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 2 +- plugin-git/che-plugin-git-provider-che/pom.xml | 2 +- plugin-git/pom.xml | 2 +- plugin-github/che-plugin-github-ext-github/pom.xml | 2 +- plugin-github/che-plugin-github-oauth2/pom.xml | 2 +- plugin-github/che-plugin-github-provider-github/pom.xml | 2 +- plugin-github/pom.xml | 2 +- plugin-go/che-plugin-go-ext-go/pom.xml | 2 +- plugin-go/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-builder/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-ext-client/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-runner/pom.xml | 2 +- plugin-grunt/pom.xml | 2 +- plugin-gulp/che-plugin-gulp-runner/pom.xml | 2 +- plugin-gulp/pom.xml | 2 +- plugin-help/che-plugin-help-ext-client/pom.xml | 2 +- plugin-help/pom.xml | 2 +- plugin-java/che-plugin-java-ant-tools/pom.xml | 2 +- plugin-java/che-plugin-java-builder-ant/pom.xml | 2 +- plugin-java/che-plugin-java-builder-maven/pom.xml | 2 +- plugin-java/che-plugin-java-ext-ant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-maven/pom.xml | 2 +- plugin-java/che-plugin-java-generator-archetype/pom.xml | 2 +- plugin-java/che-plugin-java-jdt-core-repack/pom.xml | 2 +- plugin-java/che-plugin-java-jseditor/pom.xml | 2 +- plugin-java/che-plugin-java-maven-tools/pom.xml | 2 +- plugin-java/che-plugin-java-runner-webapps/pom.xml | 2 +- plugin-java/pom.xml | 2 +- plugin-npm/che-plugin-npm-builder/pom.xml | 2 +- plugin-npm/che-plugin-npm-ext-client/pom.xml | 2 +- plugin-npm/pom.xml | 2 +- plugin-orion/che-plugin-orion-editor/pom.xml | 2 +- plugin-orion/pom.xml | 2 +- plugin-php/che-plugin-php-ext-php/pom.xml | 2 +- plugin-php/pom.xml | 2 +- plugin-python/che-plugin-python-ext-python/pom.xml | 2 +- plugin-python/pom.xml | 2 +- plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml | 2 +- plugin-ruby/pom.xml | 2 +- plugin-runner/che-plugin-runner-ext-runner/pom.xml | 2 +- plugin-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-env-local/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-tools/pom.xml | 2 +- plugin-sdk/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-git-native/pom.xml | 2 +- plugin-ssh/pom.xml | 2 +- plugin-svn/che-plugin-svn-ext-subversion/pom.xml | 2 +- plugin-svn/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto-gen/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto/pom.xml | 2 +- plugin-tour/che-plugin-tour-ext-client/pom.xml | 2 +- plugin-tour/che-plugin-tour-hopscotch/pom.xml | 2 +- plugin-tour/che-plugin-tour-server/pom.xml | 2 +- plugin-tour/pom.xml | 2 +- plugin-web/che-plugin-web-ext-web/pom.xml | 2 +- plugin-web/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-builder/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml | 2 +- plugin-yeoman/pom.xml | 2 +- pom.xml | 4 ++-- 99 files changed, 100 insertions(+), 100 deletions(-) diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml index d1b900754..112cb884d 100644 --- a/plugin-angularjs/api/client/pom.xml +++ b/plugin-angularjs/api/client/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-api-client jar diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml index 230035cca..fe6ff79f3 100644 --- a/plugin-angularjs/api/pom.xml +++ b/plugin-angularjs/api/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-api pom diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml index 445324ff3..00dbead54 100644 --- a/plugin-angularjs/api/server/pom.xml +++ b/plugin-angularjs/api/server/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-api-server jar diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml index 5ca866ba1..184dad2d1 100644 --- a/plugin-angularjs/completion/dto-gen/pom.xml +++ b/plugin-angularjs/completion/dto-gen/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-completion-dto-gen jar diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml index cc32b5188..51e2881e2 100644 --- a/plugin-angularjs/completion/dto/pom.xml +++ b/plugin-angularjs/completion/dto/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-completion-dto jar diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml index 768e0217a..5acfbf1a5 100644 --- a/plugin-angularjs/completion/parser/pom.xml +++ b/plugin-angularjs/completion/parser/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-completion-parser jar diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml index dff3b4b90..cdfc73eac 100644 --- a/plugin-angularjs/completion/pom.xml +++ b/plugin-angularjs/completion/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-completion pom diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml index 0d7d0de63..dd4c84ff9 100644 --- a/plugin-angularjs/core/client/pom.xml +++ b/plugin-angularjs/core/client/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-core-client jar diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml index 5e9f01977..10ac030f0 100644 --- a/plugin-angularjs/core/pom.xml +++ b/plugin-angularjs/core/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-core pom diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml index 8af59d5e6..c5572ae80 100644 --- a/plugin-angularjs/core/server/pom.xml +++ b/plugin-angularjs/core/server/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-core-server jar diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml index b3a15fd85..3fc303925 100644 --- a/plugin-angularjs/pom.xml +++ b/plugin-angularjs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml angularjs-parent diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml index 4d19b1464..1864ea043 100644 --- a/plugin-angularjs/templates/angular-seed/pom.xml +++ b/plugin-angularjs/templates/angular-seed/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-template-angular-seed jar diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml index 9b163068a..54b51f124 100644 --- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml +++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-template-gulp-angularjs-starter jar diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml index ebed2b9a1..408e2a372 100644 --- a/plugin-angularjs/templates/pom.xml +++ b/plugin-angularjs/templates/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-templates pom diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml index 01c46bd7a..7da58e66b 100644 --- a/plugin-angularjs/templates/yeoman/pom.xml +++ b/plugin-angularjs/templates/yeoman/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT angularjs-template-yeoman jar diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml index e86ad8017..8aac75cda 100644 --- a/plugin-bower/che-plugin-bower-builder/pom.xml +++ b/plugin-bower/che-plugin-bower-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-bower-builder jar diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml index 0933f927d..3f505ff50 100644 --- a/plugin-bower/che-plugin-bower-ext-client/pom.xml +++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-bower-ext-client jar diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml index 4fe861e76..34d145bb4 100644 --- a/plugin-bower/pom.xml +++ b/plugin-bower/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-bower-parent diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml index f9b349c7b..468f152b2 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml +++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-builder-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-builder-ext-builder jar diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml index 8054438cf..7eb91e48e 100644 --- a/plugin-builder/pom.xml +++ b/plugin-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-builder-parent diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml index b58bba1b8..13aeb95d0 100644 --- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-codemirror-base-init jar diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml index 71a7c8e64..01cb93fa5 100644 --- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-codemirror-editorwidget jar diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml index 1397027a8..20667b3fd 100644 --- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-codemirror-highlighter Che Plugin :: CodeMirror :: Highlighter diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml index 8f75bfa5e..ff81426b5 100644 --- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-codemirror-ide-style jar diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index 633a2b3de..c95324ac2 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-codemirror-jso jar diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml index 5f701578a..5e595cb05 100644 --- a/plugin-codemirror/pom.xml +++ b/plugin-codemirror/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-codemirror-parent diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml index 227e63b69..e4958da7c 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-cpp-ext-cpp jar diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml index 4cf7565fc..d608dc1ff 100644 --- a/plugin-cpp/pom.xml +++ b/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-cpp-parent diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml index 7564c1def..065e2f881 100644 --- a/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-docker-client jar diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml index 4a1918ca3..3fb487b63 100644 --- a/plugin-docker/che-plugin-docker-ext-client/pom.xml +++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-docker-ext-client jar diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml index 791bd27a1..6b3a0ab91 100644 --- a/plugin-docker/che-plugin-docker-recipes/pom.xml +++ b/plugin-docker/che-plugin-docker-recipes/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-docker-recipes jar diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml index d69b19127..c6fb1df11 100644 --- a/plugin-docker/che-plugin-docker-runner/pom.xml +++ b/plugin-docker/che-plugin-docker-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-docker-runner jar diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index f769d75d7..0a5972cc2 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-docker-parent diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index 26f4f2681..ed538e746 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-git-ext-git jar diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml index 2909337b2..89fb76638 100644 --- a/plugin-git/che-plugin-git-provider-che/pom.xml +++ b/plugin-git/che-plugin-git-provider-che/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-git-provider-che Che Plugin :: Git :: Che credential provider diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml index 6a070fca2..c314eab17 100644 --- a/plugin-git/pom.xml +++ b/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-git-parent diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index 0eb5e1f05..8168060ec 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-github-ext-github jar diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml index 369c9fe79..514eb8993 100644 --- a/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-github-oauth2 jar diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml index 994497bb3..79e26df16 100644 --- a/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml index 0ae1d7a1d..950388e5b 100644 --- a/plugin-github/pom.xml +++ b/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-github-parent diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml index 27fe5eb61..dae7c0130 100644 --- a/plugin-go/che-plugin-go-ext-go/pom.xml +++ b/plugin-go/che-plugin-go-ext-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-go-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-go-ext-go jar diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml index 50fc7d4e7..e40b9d620 100644 --- a/plugin-go/pom.xml +++ b/plugin-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-go-parent diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml index a1742f8f6..d77a72090 100644 --- a/plugin-grunt/che-plugin-grunt-builder/pom.xml +++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-grunt-builder jar diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml index 1fbb6c840..81a5c7cdb 100644 --- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml +++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-grunt-ext-client jar diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml index 24034f35f..724889021 100644 --- a/plugin-grunt/che-plugin-grunt-runner/pom.xml +++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-grunt-runner jar diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml index b800b0ff7..7d1184134 100644 --- a/plugin-grunt/pom.xml +++ b/plugin-grunt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-grunt-parent diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml index 37a828aeb..3b3d46837 100644 --- a/plugin-gulp/che-plugin-gulp-runner/pom.xml +++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-gulp-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-gulp-runner jar diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml index 862e04d7b..b4099829e 100644 --- a/plugin-gulp/pom.xml +++ b/plugin-gulp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-gulp-parent diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml index caeff5c1f..298742119 100644 --- a/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-help-ext-client jar diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml index 9d8ce77c1..8379c8fe3 100644 --- a/plugin-help/pom.xml +++ b/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-help-parent diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml index f6a1e82da..974db38b4 100644 --- a/plugin-java/che-plugin-java-ant-tools/pom.xml +++ b/plugin-java/che-plugin-java-ant-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-ant-tools jar diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml index baedfce91..4d6eab085 100644 --- a/plugin-java/che-plugin-java-builder-ant/pom.xml +++ b/plugin-java/che-plugin-java-builder-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-builder-ant jar diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml index c064b196e..5a6ebeacb 100644 --- a/plugin-java/che-plugin-java-builder-maven/pom.xml +++ b/plugin-java/che-plugin-java-builder-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-builder-maven jar diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml index 8f91e1508..37c9d9850 100644 --- a/plugin-java/che-plugin-java-ext-ant/pom.xml +++ b/plugin-java/che-plugin-java-ext-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-ext-ant jar diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index 390c1bbd5..dce21d194 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-ext-debugger-java jar diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml index 57b2a1a9f..ed2c077d1 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-ext-java-codeassistant jar diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml index f5a23f838..81ad645fc 100644 --- a/plugin-java/che-plugin-java-ext-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-ext-java jar diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml index 686313494..24266ac8e 100644 --- a/plugin-java/che-plugin-java-ext-maven/pom.xml +++ b/plugin-java/che-plugin-java-ext-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-ext-maven jar diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml index 99877bb22..6314ea6ed 100644 --- a/plugin-java/che-plugin-java-generator-archetype/pom.xml +++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-generator-archetype jar diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml index 9a948e409..3e64bf379 100644 --- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml +++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-jdt-core-repack jar diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml index 1d28792d9..cad59b973 100644 --- a/plugin-java/che-plugin-java-jseditor/pom.xml +++ b/plugin-java/che-plugin-java-jseditor/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-jseditor Che Plugin :: Java :: JsEditor diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index 208799a84..44fa344a0 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-maven-tools jar diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml index 7df9131df..b247d407c 100644 --- a/plugin-java/che-plugin-java-runner-webapps/pom.xml +++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-java-runner-webapps jar diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml index d450e89f4..3b66749cf 100644 --- a/plugin-java/pom.xml +++ b/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-java-parent diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml index ce86a2b81..e2c3ce9f0 100644 --- a/plugin-npm/che-plugin-npm-builder/pom.xml +++ b/plugin-npm/che-plugin-npm-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-npm-builder jar diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml index cea60b966..1338275b6 100644 --- a/plugin-npm/che-plugin-npm-ext-client/pom.xml +++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-npm-ext-client jar diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml index 4c3bf48e3..9bb433389 100644 --- a/plugin-npm/pom.xml +++ b/plugin-npm/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-npm-parent diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml index 8bfe41f33..8ad947f02 100644 --- a/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-orion-editor diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml index b5b0ecc7c..019f54a6d 100644 --- a/plugin-orion/pom.xml +++ b/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-orion-parent diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml index 15430705e..f6017def0 100644 --- a/plugin-php/che-plugin-php-ext-php/pom.xml +++ b/plugin-php/che-plugin-php-ext-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-php-ext-php jar diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml index 4a8ad5d67..2b567e92d 100644 --- a/plugin-php/pom.xml +++ b/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-php-parent diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml index 7947997e5..3d873e3b7 100644 --- a/plugin-python/che-plugin-python-ext-python/pom.xml +++ b/plugin-python/che-plugin-python-ext-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-python-ext-python jar diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml index 8897f4fd7..1c0c96d4e 100644 --- a/plugin-python/pom.xml +++ b/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-python-parent diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml index 7b8eda732..1ac2d2307 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-ruby-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-ruby-ext-ruby jar diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml index e940b1a4c..fa4e9167e 100644 --- a/plugin-ruby/pom.xml +++ b/plugin-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-ruby-parent diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml index 598100981..a8cdf2e6a 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml +++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-runner-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-runner-ext-runner jar diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml index fc4b737be..12874190f 100644 --- a/plugin-runner/pom.xml +++ b/plugin-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-runner-parent diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml index 0430674f7..926c46ffd 100644 --- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml +++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-sdk-env-local jar diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index 62dbc637f..e95dbf5bb 100644 --- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-sdk-ext-plugins jar diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index c04fe5e0d..e053b7b08 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-sdk-runner jar diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml index d5ca2c3da..297a1a0c7 100644 --- a/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-sdk-tools jar diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml index 352edc0d9..e21bf2eef 100644 --- a/plugin-sdk/pom.xml +++ b/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-sdk-parent diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml index afab8ce9b..498eefc5b 100644 --- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml +++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-ssh-ext-sshkey jar diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml index 2995f68da..94e5cd58d 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml +++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-ssh-git-native jar diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml index a96ee5401..c675538b8 100644 --- a/plugin-ssh/pom.xml +++ b/plugin-ssh/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-ssh-parent diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml index dc7fe8fe1..37b82717f 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml +++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-svn-ext-subversion jar diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml index ed18216e8..9854106f9 100644 --- a/plugin-svn/pom.xml +++ b/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-svn-parent diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml index 17f67d90d..70c5d2ca5 100644 --- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml +++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-tour-dto-gen Che Plugin :: Tour :: DTO Generation diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml index 1845136c2..482fbb9be 100644 --- a/plugin-tour/che-plugin-tour-dto/pom.xml +++ b/plugin-tour/che-plugin-tour-dto/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-tour-dto Che Plugin :: Tour :: DTO diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml index 75f9520cb..c872cbf9b 100644 --- a/plugin-tour/che-plugin-tour-ext-client/pom.xml +++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-tour-ext-client Che Plugin :: Tour :: Client diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml index e55f972e7..8f9025ef5 100644 --- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml +++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-tour-hopscotch Che Plugin :: Tour :: Hopscotch diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml index df1248ad7..632dbcf57 100644 --- a/plugin-tour/che-plugin-tour-server/pom.xml +++ b/plugin-tour/che-plugin-tour-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-tour-server Che Plugin :: Tour :: Server diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml index cb74f8449..ef3d936f9 100644 --- a/plugin-tour/pom.xml +++ b/plugin-tour/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-tour-parent diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml index 6c16c582f..7bcc691d8 100644 --- a/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-web-ext-web jar diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml index 975bd20cf..fa6f0e595 100644 --- a/plugin-web/pom.xml +++ b/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-web-parent diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml index d38aef41d..2237ff3bb 100644 --- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-yeoman-builder jar diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml index 274961061..fe630e963 100644 --- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT che-plugin-yeoman-ext-client jar diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml index 030ccc72a..b27f899b0 100644 --- a/plugin-yeoman/pom.xml +++ b/plugin-yeoman/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.5 + 3.12.6-SNAPSHOT ../pom.xml che-plugin-yeoman-parent diff --git a/pom.xml b/pom.xml index f5910b2dd..b8a7aa54b 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.eclipse.che.plugin che-plugin-parent - 3.12.5 + 3.12.6-SNAPSHOT pom Che Plugin :: Parent @@ -53,7 +53,7 @@ scm:git:git@github.com:codenvy/che-plugins.git scm:git:git@github.com:codenvy/che-plugins.git - 3.12.5 + 3.9.0 https://github.com/codenvy/che-plugins From f46e124b32fe985b9b5cf1692634ec615321e242 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Fri, 18 Sep 2015 18:16:28 +0000 Subject: [PATCH 062/164] RELEASE:Set next development version of parent pom --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b8a7aa54b..eb29f5fee 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ maven-depmgt-pom org.eclipse.che.depmgt - 3.12.5 + 3.12.6-SNAPSHOT org.eclipse.che.plugin che-plugin-parent From adefc102f043ebda7d356d6d0c94e955c037eabe Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Sat, 19 Sep 2015 11:45:23 +0300 Subject: [PATCH 063/164] Revert "IDEX-3096: avoid usage of deprecated docker API" This reverts commit 9288ad78e4c9cfad2a71f69f599afb38735a3ac2. --- .../che/plugin/docker/client/DockerConnector.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java index 7a85bb9f1..c23f649c6 100644 --- a/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java +++ b/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java @@ -321,8 +321,8 @@ public ContainerCreated createContainer(ContainerConfig containerConfig, String return doCreateContainer(containerConfig, containerName, dockerDaemonUri); } - public void startContainer(String container) throws IOException { - doStartContainer(container, dockerDaemonUri); + public void startContainer(String container, HostConfig hostConfig) throws IOException { + doStartContainer(container, hostConfig, dockerDaemonUri); } /** @@ -1085,10 +1085,17 @@ protected ContainerCreated doCreateContainer(ContainerConfig containerConfig, } protected void doStartContainer(String container, + HostConfig hostConfig, URI dockerDaemonUri) throws IOException { + final List> headers = new ArrayList<>(2); + headers.add(Pair.of("Content-Type", MediaType.APPLICATION_JSON)); + final String entity = hostConfig == null ? "{}" : JsonHelper.toJson(hostConfig, FIRST_LETTER_LOWERCASE); + headers.add(Pair.of("Content-Length", entity.getBytes().length)); try (DockerConnection connection = openConnection(dockerDaemonUri).method("POST") - .path("/containers/" + container + "/start")) { + .path("/containers/" + container + "/start") + .headers(headers) + .entity(entity)) { final DockerResponse response = connection.request(); final int status = response.getStatus(); if (!(NO_CONTENT.getStatusCode() == status || NOT_MODIFIED.getStatusCode() == status)) { From 1ea21ca66a83ba9956779443ab04a874a3879a1c Mon Sep 17 00:00:00 2001 From: Alexander Garagatyi Date: Sat, 19 Sep 2015 11:47:10 +0300 Subject: [PATCH 064/164] IDEX-3096: fix docker client usage --- .../org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java index 5ca4e2786..ea56ba4f4 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java @@ -897,7 +897,7 @@ public void start() throws RunnerException { if (started.compareAndSet(false, true)) { try { final ContainerCreated response = dockerConnector.createContainer(containerCfg, null); - dockerConnector.startContainer(response.getId()); + dockerConnector.startContainer(response.getId(), null); oomDetector.startDetection(response.getId(), new LogMessagePrinter(logsPublisher)); container = response.getId(); LOG.info("EVENT#configure-docker-started# WS#{}# USER#{}# ID#{}#", request.getWorkspace(), request.getUserId(), From 226f0b04fc3bb98c980050479062599ba6d8cb89 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Sat, 19 Sep 2015 17:50:42 +0000 Subject: [PATCH 065/164] Set Next Major version --- plugin-angularjs/api/client/pom.xml | 2 +- plugin-angularjs/api/pom.xml | 2 +- plugin-angularjs/api/server/pom.xml | 2 +- plugin-angularjs/completion/dto-gen/pom.xml | 2 +- plugin-angularjs/completion/dto/pom.xml | 2 +- plugin-angularjs/completion/parser/pom.xml | 2 +- plugin-angularjs/completion/pom.xml | 2 +- plugin-angularjs/core/client/pom.xml | 2 +- plugin-angularjs/core/pom.xml | 2 +- plugin-angularjs/core/server/pom.xml | 2 +- plugin-angularjs/pom.xml | 2 +- plugin-angularjs/templates/angular-seed/pom.xml | 2 +- plugin-angularjs/templates/gulp-angularjs-starter/pom.xml | 2 +- plugin-angularjs/templates/pom.xml | 2 +- plugin-angularjs/templates/yeoman/pom.xml | 2 +- plugin-bower/che-plugin-bower-builder/pom.xml | 2 +- plugin-bower/che-plugin-bower-ext-client/pom.xml | 2 +- plugin-bower/pom.xml | 2 +- plugin-builder/che-plugin-builder-ext-builder/pom.xml | 2 +- plugin-builder/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-base-init/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml | 2 +- plugin-codemirror/che-plugin-codemirror-jso/pom.xml | 2 +- plugin-codemirror/pom.xml | 2 +- plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml | 2 +- plugin-cpp/pom.xml | 2 +- plugin-docker/che-plugin-docker-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-ext-client/pom.xml | 2 +- plugin-docker/che-plugin-docker-recipes/pom.xml | 2 +- plugin-docker/che-plugin-docker-runner/pom.xml | 2 +- plugin-docker/pom.xml | 2 +- plugin-git/che-plugin-git-ext-git/pom.xml | 2 +- plugin-git/che-plugin-git-provider-che/pom.xml | 2 +- plugin-git/pom.xml | 2 +- plugin-github/che-plugin-github-ext-github/pom.xml | 2 +- plugin-github/che-plugin-github-oauth2/pom.xml | 2 +- plugin-github/che-plugin-github-provider-github/pom.xml | 2 +- plugin-github/pom.xml | 2 +- plugin-go/che-plugin-go-ext-go/pom.xml | 2 +- plugin-go/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-builder/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-ext-client/pom.xml | 2 +- plugin-grunt/che-plugin-grunt-runner/pom.xml | 2 +- plugin-grunt/pom.xml | 2 +- plugin-gulp/che-plugin-gulp-runner/pom.xml | 2 +- plugin-gulp/pom.xml | 2 +- plugin-help/che-plugin-help-ext-client/pom.xml | 2 +- plugin-help/pom.xml | 2 +- plugin-java/che-plugin-java-ant-tools/pom.xml | 2 +- plugin-java/che-plugin-java-builder-ant/pom.xml | 2 +- plugin-java/che-plugin-java-builder-maven/pom.xml | 2 +- plugin-java/che-plugin-java-ext-ant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-debugger-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml | 2 +- plugin-java/che-plugin-java-ext-java/pom.xml | 2 +- plugin-java/che-plugin-java-ext-maven/pom.xml | 2 +- plugin-java/che-plugin-java-generator-archetype/pom.xml | 2 +- plugin-java/che-plugin-java-jdt-core-repack/pom.xml | 2 +- plugin-java/che-plugin-java-jseditor/pom.xml | 2 +- plugin-java/che-plugin-java-maven-tools/pom.xml | 2 +- plugin-java/che-plugin-java-runner-webapps/pom.xml | 2 +- plugin-java/pom.xml | 2 +- plugin-npm/che-plugin-npm-builder/pom.xml | 2 +- plugin-npm/che-plugin-npm-ext-client/pom.xml | 2 +- plugin-npm/pom.xml | 2 +- plugin-orion/che-plugin-orion-editor/pom.xml | 2 +- plugin-orion/pom.xml | 2 +- plugin-php/che-plugin-php-ext-php/pom.xml | 2 +- plugin-php/pom.xml | 2 +- plugin-python/che-plugin-python-ext-python/pom.xml | 2 +- plugin-python/pom.xml | 2 +- plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml | 2 +- plugin-ruby/pom.xml | 2 +- plugin-runner/che-plugin-runner-ext-runner/pom.xml | 2 +- plugin-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-env-local/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-runner/pom.xml | 2 +- plugin-sdk/che-plugin-sdk-tools/pom.xml | 2 +- plugin-sdk/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml | 2 +- plugin-ssh/che-plugin-ssh-git-native/pom.xml | 2 +- plugin-ssh/pom.xml | 2 +- plugin-svn/che-plugin-svn-ext-subversion/pom.xml | 2 +- plugin-svn/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto-gen/pom.xml | 2 +- plugin-tour/che-plugin-tour-dto/pom.xml | 2 +- plugin-tour/che-plugin-tour-ext-client/pom.xml | 2 +- plugin-tour/che-plugin-tour-hopscotch/pom.xml | 2 +- plugin-tour/che-plugin-tour-server/pom.xml | 2 +- plugin-tour/pom.xml | 2 +- plugin-web/che-plugin-web-ext-web/pom.xml | 2 +- plugin-web/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-builder/pom.xml | 2 +- plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml | 2 +- plugin-yeoman/pom.xml | 2 +- pom.xml | 4 ++-- 99 files changed, 100 insertions(+), 100 deletions(-) diff --git a/plugin-angularjs/api/client/pom.xml b/plugin-angularjs/api/client/pom.xml index 112cb884d..a45db3235 100644 --- a/plugin-angularjs/api/client/pom.xml +++ b/plugin-angularjs/api/client/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-api-client jar diff --git a/plugin-angularjs/api/pom.xml b/plugin-angularjs/api/pom.xml index fe6ff79f3..d4fb6dd27 100644 --- a/plugin-angularjs/api/pom.xml +++ b/plugin-angularjs/api/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-api pom diff --git a/plugin-angularjs/api/server/pom.xml b/plugin-angularjs/api/server/pom.xml index 00dbead54..711408dc2 100644 --- a/plugin-angularjs/api/server/pom.xml +++ b/plugin-angularjs/api/server/pom.xml @@ -16,7 +16,7 @@ angularjs-api org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-api-server jar diff --git a/plugin-angularjs/completion/dto-gen/pom.xml b/plugin-angularjs/completion/dto-gen/pom.xml index 184dad2d1..7e197a3b7 100644 --- a/plugin-angularjs/completion/dto-gen/pom.xml +++ b/plugin-angularjs/completion/dto-gen/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-completion-dto-gen jar diff --git a/plugin-angularjs/completion/dto/pom.xml b/plugin-angularjs/completion/dto/pom.xml index 51e2881e2..0119b7a15 100644 --- a/plugin-angularjs/completion/dto/pom.xml +++ b/plugin-angularjs/completion/dto/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-completion-dto jar diff --git a/plugin-angularjs/completion/parser/pom.xml b/plugin-angularjs/completion/parser/pom.xml index 5acfbf1a5..0cca6ca25 100644 --- a/plugin-angularjs/completion/parser/pom.xml +++ b/plugin-angularjs/completion/parser/pom.xml @@ -16,7 +16,7 @@ angularjs-completion org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-completion-parser jar diff --git a/plugin-angularjs/completion/pom.xml b/plugin-angularjs/completion/pom.xml index cdfc73eac..3f5ad70c6 100644 --- a/plugin-angularjs/completion/pom.xml +++ b/plugin-angularjs/completion/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-completion pom diff --git a/plugin-angularjs/core/client/pom.xml b/plugin-angularjs/core/client/pom.xml index dd4c84ff9..4158d59a2 100644 --- a/plugin-angularjs/core/client/pom.xml +++ b/plugin-angularjs/core/client/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-core-client jar diff --git a/plugin-angularjs/core/pom.xml b/plugin-angularjs/core/pom.xml index 10ac030f0..7e66346a5 100644 --- a/plugin-angularjs/core/pom.xml +++ b/plugin-angularjs/core/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-core pom diff --git a/plugin-angularjs/core/server/pom.xml b/plugin-angularjs/core/server/pom.xml index c5572ae80..84f7598a2 100644 --- a/plugin-angularjs/core/server/pom.xml +++ b/plugin-angularjs/core/server/pom.xml @@ -16,7 +16,7 @@ angularjs-core org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-core-server jar diff --git a/plugin-angularjs/pom.xml b/plugin-angularjs/pom.xml index 3fc303925..3c0a1750f 100644 --- a/plugin-angularjs/pom.xml +++ b/plugin-angularjs/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml angularjs-parent diff --git a/plugin-angularjs/templates/angular-seed/pom.xml b/plugin-angularjs/templates/angular-seed/pom.xml index 1864ea043..eee8096bc 100644 --- a/plugin-angularjs/templates/angular-seed/pom.xml +++ b/plugin-angularjs/templates/angular-seed/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-template-angular-seed jar diff --git a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml index 54b51f124..afdbddd5d 100644 --- a/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml +++ b/plugin-angularjs/templates/gulp-angularjs-starter/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-template-gulp-angularjs-starter jar diff --git a/plugin-angularjs/templates/pom.xml b/plugin-angularjs/templates/pom.xml index 408e2a372..8a66a05a6 100644 --- a/plugin-angularjs/templates/pom.xml +++ b/plugin-angularjs/templates/pom.xml @@ -16,7 +16,7 @@ angularjs-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-templates pom diff --git a/plugin-angularjs/templates/yeoman/pom.xml b/plugin-angularjs/templates/yeoman/pom.xml index 7da58e66b..a71664568 100644 --- a/plugin-angularjs/templates/yeoman/pom.xml +++ b/plugin-angularjs/templates/yeoman/pom.xml @@ -16,7 +16,7 @@ angularjs-templates org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT angularjs-template-yeoman jar diff --git a/plugin-bower/che-plugin-bower-builder/pom.xml b/plugin-bower/che-plugin-bower-builder/pom.xml index 8aac75cda..3aaa669e6 100644 --- a/plugin-bower/che-plugin-bower-builder/pom.xml +++ b/plugin-bower/che-plugin-bower-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-bower-builder jar diff --git a/plugin-bower/che-plugin-bower-ext-client/pom.xml b/plugin-bower/che-plugin-bower-ext-client/pom.xml index 3f505ff50..24c6e947d 100644 --- a/plugin-bower/che-plugin-bower-ext-client/pom.xml +++ b/plugin-bower/che-plugin-bower-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-bower-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-bower-ext-client jar diff --git a/plugin-bower/pom.xml b/plugin-bower/pom.xml index 34d145bb4..7cab6bbee 100644 --- a/plugin-bower/pom.xml +++ b/plugin-bower/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-bower-parent diff --git a/plugin-builder/che-plugin-builder-ext-builder/pom.xml b/plugin-builder/che-plugin-builder-ext-builder/pom.xml index 468f152b2..be3055609 100644 --- a/plugin-builder/che-plugin-builder-ext-builder/pom.xml +++ b/plugin-builder/che-plugin-builder-ext-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-builder-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-builder-ext-builder jar diff --git a/plugin-builder/pom.xml b/plugin-builder/pom.xml index 7eb91e48e..ebc9cf439 100644 --- a/plugin-builder/pom.xml +++ b/plugin-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-builder-parent diff --git a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml index 13aeb95d0..bca6ee840 100644 --- a/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-base-init/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-codemirror-base-init jar diff --git a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml index 01cb93fa5..9cd9321d2 100644 --- a/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-editorwidget/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-codemirror-editorwidget jar diff --git a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml index 20667b3fd..3c1f34be6 100644 --- a/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-highlighter/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-codemirror-highlighter Che Plugin :: CodeMirror :: Highlighter diff --git a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml index ff81426b5..01d43f734 100644 --- a/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-ide-style/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-codemirror-ide-style jar diff --git a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml index c95324ac2..0e3e4a074 100644 --- a/plugin-codemirror/che-plugin-codemirror-jso/pom.xml +++ b/plugin-codemirror/che-plugin-codemirror-jso/pom.xml @@ -16,7 +16,7 @@ che-plugin-codemirror-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-codemirror-jso jar diff --git a/plugin-codemirror/pom.xml b/plugin-codemirror/pom.xml index 5e595cb05..46bfc9894 100644 --- a/plugin-codemirror/pom.xml +++ b/plugin-codemirror/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-codemirror-parent diff --git a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml index e4958da7c..8dd844395 100644 --- a/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml +++ b/plugin-cpp/che-plugin-cpp-ext-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-cpp-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-cpp-ext-cpp jar diff --git a/plugin-cpp/pom.xml b/plugin-cpp/pom.xml index d608dc1ff..dca4dbed9 100644 --- a/plugin-cpp/pom.xml +++ b/plugin-cpp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-cpp-parent diff --git a/plugin-docker/che-plugin-docker-client/pom.xml b/plugin-docker/che-plugin-docker-client/pom.xml index 065e2f881..06d9834e6 100644 --- a/plugin-docker/che-plugin-docker-client/pom.xml +++ b/plugin-docker/che-plugin-docker-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-docker-client jar diff --git a/plugin-docker/che-plugin-docker-ext-client/pom.xml b/plugin-docker/che-plugin-docker-ext-client/pom.xml index 3fb487b63..2da3dc7c8 100644 --- a/plugin-docker/che-plugin-docker-ext-client/pom.xml +++ b/plugin-docker/che-plugin-docker-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-docker-ext-client jar diff --git a/plugin-docker/che-plugin-docker-recipes/pom.xml b/plugin-docker/che-plugin-docker-recipes/pom.xml index 6b3a0ab91..3a8ea7e46 100644 --- a/plugin-docker/che-plugin-docker-recipes/pom.xml +++ b/plugin-docker/che-plugin-docker-recipes/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-docker-recipes jar diff --git a/plugin-docker/che-plugin-docker-runner/pom.xml b/plugin-docker/che-plugin-docker-runner/pom.xml index c6fb1df11..93d42262a 100644 --- a/plugin-docker/che-plugin-docker-runner/pom.xml +++ b/plugin-docker/che-plugin-docker-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-docker-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-docker-runner jar diff --git a/plugin-docker/pom.xml b/plugin-docker/pom.xml index 0a5972cc2..a72fd1932 100644 --- a/plugin-docker/pom.xml +++ b/plugin-docker/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-docker-parent diff --git a/plugin-git/che-plugin-git-ext-git/pom.xml b/plugin-git/che-plugin-git-ext-git/pom.xml index ed538e746..b79da68c3 100644 --- a/plugin-git/che-plugin-git-ext-git/pom.xml +++ b/plugin-git/che-plugin-git-ext-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-git-ext-git jar diff --git a/plugin-git/che-plugin-git-provider-che/pom.xml b/plugin-git/che-plugin-git-provider-che/pom.xml index 89fb76638..745e384c1 100644 --- a/plugin-git/che-plugin-git-provider-che/pom.xml +++ b/plugin-git/che-plugin-git-provider-che/pom.xml @@ -16,7 +16,7 @@ che-plugin-git-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-git-provider-che Che Plugin :: Git :: Che credential provider diff --git a/plugin-git/pom.xml b/plugin-git/pom.xml index c314eab17..8118e8f7f 100644 --- a/plugin-git/pom.xml +++ b/plugin-git/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-git-parent diff --git a/plugin-github/che-plugin-github-ext-github/pom.xml b/plugin-github/che-plugin-github-ext-github/pom.xml index 8168060ec..8c7d3bede 100644 --- a/plugin-github/che-plugin-github-ext-github/pom.xml +++ b/plugin-github/che-plugin-github-ext-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-github-ext-github jar diff --git a/plugin-github/che-plugin-github-oauth2/pom.xml b/plugin-github/che-plugin-github-oauth2/pom.xml index 514eb8993..75c33d383 100644 --- a/plugin-github/che-plugin-github-oauth2/pom.xml +++ b/plugin-github/che-plugin-github-oauth2/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-github-oauth2 jar diff --git a/plugin-github/che-plugin-github-provider-github/pom.xml b/plugin-github/che-plugin-github-provider-github/pom.xml index 79e26df16..cf369b64c 100644 --- a/plugin-github/che-plugin-github-provider-github/pom.xml +++ b/plugin-github/che-plugin-github-provider-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-github-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-github-provider-github Che Plugin :: Github :: Credential provider diff --git a/plugin-github/pom.xml b/plugin-github/pom.xml index 950388e5b..7335b06e0 100644 --- a/plugin-github/pom.xml +++ b/plugin-github/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-github-parent diff --git a/plugin-go/che-plugin-go-ext-go/pom.xml b/plugin-go/che-plugin-go-ext-go/pom.xml index dae7c0130..09f5f350b 100644 --- a/plugin-go/che-plugin-go-ext-go/pom.xml +++ b/plugin-go/che-plugin-go-ext-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-go-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-go-ext-go jar diff --git a/plugin-go/pom.xml b/plugin-go/pom.xml index e40b9d620..52776fb21 100644 --- a/plugin-go/pom.xml +++ b/plugin-go/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-go-parent diff --git a/plugin-grunt/che-plugin-grunt-builder/pom.xml b/plugin-grunt/che-plugin-grunt-builder/pom.xml index d77a72090..68ebb9f24 100644 --- a/plugin-grunt/che-plugin-grunt-builder/pom.xml +++ b/plugin-grunt/che-plugin-grunt-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-grunt-builder jar diff --git a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml index 81a5c7cdb..6148a0152 100644 --- a/plugin-grunt/che-plugin-grunt-ext-client/pom.xml +++ b/plugin-grunt/che-plugin-grunt-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-grunt-ext-client jar diff --git a/plugin-grunt/che-plugin-grunt-runner/pom.xml b/plugin-grunt/che-plugin-grunt-runner/pom.xml index 724889021..4cb3efe6a 100644 --- a/plugin-grunt/che-plugin-grunt-runner/pom.xml +++ b/plugin-grunt/che-plugin-grunt-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-grunt-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-grunt-runner jar diff --git a/plugin-grunt/pom.xml b/plugin-grunt/pom.xml index 7d1184134..fbc5e6e39 100644 --- a/plugin-grunt/pom.xml +++ b/plugin-grunt/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-grunt-parent diff --git a/plugin-gulp/che-plugin-gulp-runner/pom.xml b/plugin-gulp/che-plugin-gulp-runner/pom.xml index 3b3d46837..94d86d2cd 100644 --- a/plugin-gulp/che-plugin-gulp-runner/pom.xml +++ b/plugin-gulp/che-plugin-gulp-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-gulp-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-gulp-runner jar diff --git a/plugin-gulp/pom.xml b/plugin-gulp/pom.xml index b4099829e..477771a94 100644 --- a/plugin-gulp/pom.xml +++ b/plugin-gulp/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-gulp-parent diff --git a/plugin-help/che-plugin-help-ext-client/pom.xml b/plugin-help/che-plugin-help-ext-client/pom.xml index 298742119..add7ab9d1 100644 --- a/plugin-help/che-plugin-help-ext-client/pom.xml +++ b/plugin-help/che-plugin-help-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-help-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-help-ext-client jar diff --git a/plugin-help/pom.xml b/plugin-help/pom.xml index 8379c8fe3..423c0f088 100644 --- a/plugin-help/pom.xml +++ b/plugin-help/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-help-parent diff --git a/plugin-java/che-plugin-java-ant-tools/pom.xml b/plugin-java/che-plugin-java-ant-tools/pom.xml index 974db38b4..a39ab7a99 100644 --- a/plugin-java/che-plugin-java-ant-tools/pom.xml +++ b/plugin-java/che-plugin-java-ant-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-ant-tools jar diff --git a/plugin-java/che-plugin-java-builder-ant/pom.xml b/plugin-java/che-plugin-java-builder-ant/pom.xml index 4d6eab085..164f61b82 100644 --- a/plugin-java/che-plugin-java-builder-ant/pom.xml +++ b/plugin-java/che-plugin-java-builder-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-builder-ant jar diff --git a/plugin-java/che-plugin-java-builder-maven/pom.xml b/plugin-java/che-plugin-java-builder-maven/pom.xml index 5a6ebeacb..f24c33422 100644 --- a/plugin-java/che-plugin-java-builder-maven/pom.xml +++ b/plugin-java/che-plugin-java-builder-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-builder-maven jar diff --git a/plugin-java/che-plugin-java-ext-ant/pom.xml b/plugin-java/che-plugin-java-ext-ant/pom.xml index 37c9d9850..ad0e887ca 100644 --- a/plugin-java/che-plugin-java-ext-ant/pom.xml +++ b/plugin-java/che-plugin-java-ext-ant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-ext-ant jar diff --git a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml index dce21d194..81dc15ae3 100644 --- a/plugin-java/che-plugin-java-ext-debugger-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-debugger-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-ext-debugger-java jar diff --git a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml index ed2c077d1..cbc55639e 100644 --- a/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml +++ b/plugin-java/che-plugin-java-ext-java-codeassistant/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-ext-java-codeassistant jar diff --git a/plugin-java/che-plugin-java-ext-java/pom.xml b/plugin-java/che-plugin-java-ext-java/pom.xml index 81ad645fc..070cfb355 100644 --- a/plugin-java/che-plugin-java-ext-java/pom.xml +++ b/plugin-java/che-plugin-java-ext-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-ext-java jar diff --git a/plugin-java/che-plugin-java-ext-maven/pom.xml b/plugin-java/che-plugin-java-ext-maven/pom.xml index 24266ac8e..875a1f82f 100644 --- a/plugin-java/che-plugin-java-ext-maven/pom.xml +++ b/plugin-java/che-plugin-java-ext-maven/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-ext-maven jar diff --git a/plugin-java/che-plugin-java-generator-archetype/pom.xml b/plugin-java/che-plugin-java-generator-archetype/pom.xml index 6314ea6ed..c2793777b 100644 --- a/plugin-java/che-plugin-java-generator-archetype/pom.xml +++ b/plugin-java/che-plugin-java-generator-archetype/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-generator-archetype jar diff --git a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml index 3e64bf379..e1b24cba6 100644 --- a/plugin-java/che-plugin-java-jdt-core-repack/pom.xml +++ b/plugin-java/che-plugin-java-jdt-core-repack/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-jdt-core-repack jar diff --git a/plugin-java/che-plugin-java-jseditor/pom.xml b/plugin-java/che-plugin-java-jseditor/pom.xml index cad59b973..11ec1a1bb 100644 --- a/plugin-java/che-plugin-java-jseditor/pom.xml +++ b/plugin-java/che-plugin-java-jseditor/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-jseditor Che Plugin :: Java :: JsEditor diff --git a/plugin-java/che-plugin-java-maven-tools/pom.xml b/plugin-java/che-plugin-java-maven-tools/pom.xml index 44fa344a0..2d01ccb0a 100644 --- a/plugin-java/che-plugin-java-maven-tools/pom.xml +++ b/plugin-java/che-plugin-java-maven-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-maven-tools jar diff --git a/plugin-java/che-plugin-java-runner-webapps/pom.xml b/plugin-java/che-plugin-java-runner-webapps/pom.xml index b247d407c..563090466 100644 --- a/plugin-java/che-plugin-java-runner-webapps/pom.xml +++ b/plugin-java/che-plugin-java-runner-webapps/pom.xml @@ -16,7 +16,7 @@ che-plugin-java-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-java-runner-webapps jar diff --git a/plugin-java/pom.xml b/plugin-java/pom.xml index 3b66749cf..c3741543f 100644 --- a/plugin-java/pom.xml +++ b/plugin-java/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-java-parent diff --git a/plugin-npm/che-plugin-npm-builder/pom.xml b/plugin-npm/che-plugin-npm-builder/pom.xml index e2c3ce9f0..45183fefa 100644 --- a/plugin-npm/che-plugin-npm-builder/pom.xml +++ b/plugin-npm/che-plugin-npm-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-npm-builder jar diff --git a/plugin-npm/che-plugin-npm-ext-client/pom.xml b/plugin-npm/che-plugin-npm-ext-client/pom.xml index 1338275b6..b00f7af76 100644 --- a/plugin-npm/che-plugin-npm-ext-client/pom.xml +++ b/plugin-npm/che-plugin-npm-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-npm-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-npm-ext-client jar diff --git a/plugin-npm/pom.xml b/plugin-npm/pom.xml index 9bb433389..fb4513f28 100644 --- a/plugin-npm/pom.xml +++ b/plugin-npm/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-npm-parent diff --git a/plugin-orion/che-plugin-orion-editor/pom.xml b/plugin-orion/che-plugin-orion-editor/pom.xml index 8ad947f02..4b1536c73 100644 --- a/plugin-orion/che-plugin-orion-editor/pom.xml +++ b/plugin-orion/che-plugin-orion-editor/pom.xml @@ -16,7 +16,7 @@ che-plugin-orion-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-orion-editor diff --git a/plugin-orion/pom.xml b/plugin-orion/pom.xml index 019f54a6d..e4c36d462 100644 --- a/plugin-orion/pom.xml +++ b/plugin-orion/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-orion-parent diff --git a/plugin-php/che-plugin-php-ext-php/pom.xml b/plugin-php/che-plugin-php-ext-php/pom.xml index f6017def0..ea3c3baa2 100644 --- a/plugin-php/che-plugin-php-ext-php/pom.xml +++ b/plugin-php/che-plugin-php-ext-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-php-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-php-ext-php jar diff --git a/plugin-php/pom.xml b/plugin-php/pom.xml index 2b567e92d..634899a66 100644 --- a/plugin-php/pom.xml +++ b/plugin-php/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-php-parent diff --git a/plugin-python/che-plugin-python-ext-python/pom.xml b/plugin-python/che-plugin-python-ext-python/pom.xml index 3d873e3b7..224f31ad7 100644 --- a/plugin-python/che-plugin-python-ext-python/pom.xml +++ b/plugin-python/che-plugin-python-ext-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-python-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-python-ext-python jar diff --git a/plugin-python/pom.xml b/plugin-python/pom.xml index 1c0c96d4e..56ffa4110 100644 --- a/plugin-python/pom.xml +++ b/plugin-python/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-python-parent diff --git a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml index 1ac2d2307..0ff46d36b 100644 --- a/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml +++ b/plugin-ruby/che-plugin-ruby-ext-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-ruby-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-ruby-ext-ruby jar diff --git a/plugin-ruby/pom.xml b/plugin-ruby/pom.xml index fa4e9167e..0cdcf3726 100644 --- a/plugin-ruby/pom.xml +++ b/plugin-ruby/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-ruby-parent diff --git a/plugin-runner/che-plugin-runner-ext-runner/pom.xml b/plugin-runner/che-plugin-runner-ext-runner/pom.xml index a8cdf2e6a..0fd5bd635 100644 --- a/plugin-runner/che-plugin-runner-ext-runner/pom.xml +++ b/plugin-runner/che-plugin-runner-ext-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-runner-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-runner-ext-runner jar diff --git a/plugin-runner/pom.xml b/plugin-runner/pom.xml index 12874190f..6968a24d3 100644 --- a/plugin-runner/pom.xml +++ b/plugin-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-runner-parent diff --git a/plugin-sdk/che-plugin-sdk-env-local/pom.xml b/plugin-sdk/che-plugin-sdk-env-local/pom.xml index 926c46ffd..96f4d082e 100644 --- a/plugin-sdk/che-plugin-sdk-env-local/pom.xml +++ b/plugin-sdk/che-plugin-sdk-env-local/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-sdk-env-local jar diff --git a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml index e95dbf5bb..914a387f9 100644 --- a/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml +++ b/plugin-sdk/che-plugin-sdk-ext-plugins/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-sdk-ext-plugins jar diff --git a/plugin-sdk/che-plugin-sdk-runner/pom.xml b/plugin-sdk/che-plugin-sdk-runner/pom.xml index e053b7b08..12778f19a 100644 --- a/plugin-sdk/che-plugin-sdk-runner/pom.xml +++ b/plugin-sdk/che-plugin-sdk-runner/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-sdk-runner jar diff --git a/plugin-sdk/che-plugin-sdk-tools/pom.xml b/plugin-sdk/che-plugin-sdk-tools/pom.xml index 297a1a0c7..6902825ee 100644 --- a/plugin-sdk/che-plugin-sdk-tools/pom.xml +++ b/plugin-sdk/che-plugin-sdk-tools/pom.xml @@ -16,7 +16,7 @@ che-plugin-sdk-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-sdk-tools jar diff --git a/plugin-sdk/pom.xml b/plugin-sdk/pom.xml index e21bf2eef..87c002ad6 100644 --- a/plugin-sdk/pom.xml +++ b/plugin-sdk/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-sdk-parent diff --git a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml index 498eefc5b..a918a4f3a 100644 --- a/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml +++ b/plugin-ssh/che-plugin-ssh-ext-sshkey/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-ssh-ext-sshkey jar diff --git a/plugin-ssh/che-plugin-ssh-git-native/pom.xml b/plugin-ssh/che-plugin-ssh-git-native/pom.xml index 94e5cd58d..fb06bd6db 100644 --- a/plugin-ssh/che-plugin-ssh-git-native/pom.xml +++ b/plugin-ssh/che-plugin-ssh-git-native/pom.xml @@ -16,7 +16,7 @@ che-plugin-ssh-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-ssh-git-native jar diff --git a/plugin-ssh/pom.xml b/plugin-ssh/pom.xml index c675538b8..5d72a088d 100644 --- a/plugin-ssh/pom.xml +++ b/plugin-ssh/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-ssh-parent diff --git a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml index 37b82717f..3693d1956 100644 --- a/plugin-svn/che-plugin-svn-ext-subversion/pom.xml +++ b/plugin-svn/che-plugin-svn-ext-subversion/pom.xml @@ -16,7 +16,7 @@ che-plugin-svn-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-svn-ext-subversion jar diff --git a/plugin-svn/pom.xml b/plugin-svn/pom.xml index 9854106f9..635f8c502 100644 --- a/plugin-svn/pom.xml +++ b/plugin-svn/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-svn-parent diff --git a/plugin-tour/che-plugin-tour-dto-gen/pom.xml b/plugin-tour/che-plugin-tour-dto-gen/pom.xml index 70c5d2ca5..09bc5c34b 100644 --- a/plugin-tour/che-plugin-tour-dto-gen/pom.xml +++ b/plugin-tour/che-plugin-tour-dto-gen/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-tour-dto-gen Che Plugin :: Tour :: DTO Generation diff --git a/plugin-tour/che-plugin-tour-dto/pom.xml b/plugin-tour/che-plugin-tour-dto/pom.xml index 482fbb9be..0c07b82b1 100644 --- a/plugin-tour/che-plugin-tour-dto/pom.xml +++ b/plugin-tour/che-plugin-tour-dto/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-tour-dto Che Plugin :: Tour :: DTO diff --git a/plugin-tour/che-plugin-tour-ext-client/pom.xml b/plugin-tour/che-plugin-tour-ext-client/pom.xml index c872cbf9b..392f3f6b4 100644 --- a/plugin-tour/che-plugin-tour-ext-client/pom.xml +++ b/plugin-tour/che-plugin-tour-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-tour-ext-client Che Plugin :: Tour :: Client diff --git a/plugin-tour/che-plugin-tour-hopscotch/pom.xml b/plugin-tour/che-plugin-tour-hopscotch/pom.xml index 8f9025ef5..9bb54b055 100644 --- a/plugin-tour/che-plugin-tour-hopscotch/pom.xml +++ b/plugin-tour/che-plugin-tour-hopscotch/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-tour-hopscotch Che Plugin :: Tour :: Hopscotch diff --git a/plugin-tour/che-plugin-tour-server/pom.xml b/plugin-tour/che-plugin-tour-server/pom.xml index 632dbcf57..5806411b7 100644 --- a/plugin-tour/che-plugin-tour-server/pom.xml +++ b/plugin-tour/che-plugin-tour-server/pom.xml @@ -16,7 +16,7 @@ che-plugin-tour-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-tour-server Che Plugin :: Tour :: Server diff --git a/plugin-tour/pom.xml b/plugin-tour/pom.xml index ef3d936f9..811f2a927 100644 --- a/plugin-tour/pom.xml +++ b/plugin-tour/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-tour-parent diff --git a/plugin-web/che-plugin-web-ext-web/pom.xml b/plugin-web/che-plugin-web-ext-web/pom.xml index 7bcc691d8..9c05b172e 100644 --- a/plugin-web/che-plugin-web-ext-web/pom.xml +++ b/plugin-web/che-plugin-web-ext-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-web-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-web-ext-web jar diff --git a/plugin-web/pom.xml b/plugin-web/pom.xml index fa6f0e595..84ef93d4a 100644 --- a/plugin-web/pom.xml +++ b/plugin-web/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-web-parent diff --git a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml index 2237ff3bb..8af079100 100644 --- a/plugin-yeoman/che-plugin-yeoman-builder/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-builder/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-yeoman-builder jar diff --git a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml index fe630e963..4b35b4bfc 100644 --- a/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml +++ b/plugin-yeoman/che-plugin-yeoman-ext-client/pom.xml @@ -16,7 +16,7 @@ che-plugin-yeoman-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT che-plugin-yeoman-ext-client jar diff --git a/plugin-yeoman/pom.xml b/plugin-yeoman/pom.xml index b27f899b0..3b58d9cc3 100644 --- a/plugin-yeoman/pom.xml +++ b/plugin-yeoman/pom.xml @@ -16,7 +16,7 @@ che-plugin-parent org.eclipse.che.plugin - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT ../pom.xml che-plugin-yeoman-parent diff --git a/pom.xml b/pom.xml index eb29f5fee..f5970e58b 100644 --- a/pom.xml +++ b/pom.xml @@ -16,11 +16,11 @@ maven-depmgt-pom org.eclipse.che.depmgt - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT org.eclipse.che.plugin che-plugin-parent - 3.12.6-SNAPSHOT + 3.13.0-SNAPSHOT pom Che Plugin :: Parent From d6bd2f6342b4915f78bc048ba137f9b4bea14be4 Mon Sep 17 00:00:00 2001 From: Roman Iuvshin Date: Mon, 21 Sep 2015 15:49:10 +0300 Subject: [PATCH 066/164] set cpuShares to "2" as it is minimum allowed starting from docker 1.7 and above More information is here: https://github.com/docker/docker/pull/13722 --- .../org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java index ea56ba4f4..9e4104247 100644 --- a/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java +++ b/plugin-docker/che-plugin-docker-runner/src/main/java/org/eclipse/che/plugin/docker/runner/BaseDockerRunner.java @@ -343,7 +343,7 @@ protected ApplicationProcess newApplicationProcess(DeploymentSources toDeploy, R } final ContainerConfig containerConfig = new ContainerConfig().withImage(imageIdentifier.id) .withMemory((long)runnerCfg.getMemory() * 1024 * 1024) - .withCpuShares(1) + .withCpuShares(2) .withHostConfig(hostConfig) .withEnv(env.toArray(new String[env.size()])); From 8cbac6baa48083ab18716724fd89bdcf5f7f09ad Mon Sep 17 00:00:00 2001 From: Tyler Jewell Date: Mon, 21 Sep 2015 07:16:08 -0700 Subject: [PATCH 067/164] Fix text to say Eclipse Che --- .../src/main/resources/codenvyPlatform/src/main/webapp/IDE.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/webapp/IDE.jsp b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/webapp/IDE.jsp index fab1c7ff2..7853ecb45 100644 --- a/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/webapp/IDE.jsp +++ b/plugin-sdk/che-plugin-sdk-runner/src/main/resources/codenvyPlatform/src/main/webapp/IDE.jsp @@ -14,7 +14,7 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> - <title>Codenvy Developer Environment + Eclipse Che + + + +

This plugin provides loading JavaScript content assist proposals over HTTP

+ + diff --git a/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/che/plugins/jsContentAssistPlugin.js b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/che/plugins/jsContentAssistPlugin.js new file mode 100644 index 000000000..0557ac3f4 --- /dev/null +++ b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/che/plugins/jsContentAssistPlugin.js @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2014-2015 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 + */ +window.onload = function () { + var proposalsURL = window.document.location.search.replace('?proposals=', ''); + window.keywords = httpGet(proposalsURL); + + /** + * Plug-in headers + */ + var headers = { + name: "External JavaScript proposals support for Orion", + version: "1.0", + description: "This plugin provides loading JavaScript content-assist proposals over HTTP." + }; + var provider = new orion.PluginProvider(headers); + + var contentAssistServiceProvider = { + computeProposals: function (buffer, offset, context) { + var newLineDelimiterRegExp = new RegExp(context.delimiter, 'g'); + var proposals = []; + var keywords = JSON.parse(window.keywords); + for (var i = 0; i < keywords.length; i++) { + var keyword = keywords[i]; + //if (keyword.proposal.indexOf(context.prefix) === 0) { + var proposal = { + proposal: keyword.proposal, + description: keyword.description, + overwrite: keyword.overwrite, + doc: keyword.doc + }; + if (keyword.group == true) { + proposal.unselectable = true; + proposal.style = "noemphasis_title"; + } + // indent multiline block + if (keyword.proposal !== undefined && keyword.proposal.indexOf(context.delimiter) > -1) { + proposal.proposal = keyword.proposal.replace(newLineDelimiterRegExp, context.delimiter + context.indentation) + } + if (keyword.escapePosition > 0) { + proposal.escapePosition = keyword.escapePosition + offset + context.indentation.length; + } + if (keyword.positions !== undefined) { + for (var j = 0; j < keyword.positions.length; j++) { + var pos = keyword.positions[j]; + pos.offset = pos.offset + offset; + } + proposal.positions = keyword.positions; + } + proposals.push(proposal); + //} + } + return proposals; + } + }; + + var hoverServiceProvider = { + computeHoverInfo: function (editorContext, context) { + if (context.proposal !== undefined && context.proposal.doc !== undefined) { + return { + type: "markdown", + content: context.proposal.doc + }; + } else { + return null; + } + } + }; + + var serviceProviderProps = { + name: "External proposals for JavaScript content assist", + contentType: ["application/javascript"] + }; + + provider.registerServiceProvider("orion.edit.contentAssist", contentAssistServiceProvider, serviceProviderProps); + provider.registerServiceProvider("orion.edit.hover", hoverServiceProvider, serviceProviderProps); + provider.connect(); +}; + +function httpGet(theUrl) { + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open("GET", theUrl, false); // false for synchronous request + xmlHttp.send(null); + return xmlHttp.responseText; +} diff --git a/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/code_edit/built-codeEdit-amd.min.js b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/code_edit/built-codeEdit-amd.min.js new file mode 100644 index 000000000..2ada18259 --- /dev/null +++ b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/code_edit/built-codeEdit-amd.min.js @@ -0,0 +1,19 @@ +!function(e,t){"function"==typeof define&&define.amd?define("orion/Deferred",t):"object"==typeof exports?module.exports=t():(e.orion=e.orion||{},e.orion.Deferred=t())}(this,function(){function e(){for(var e;e=o.shift();)e();s=!1}function t(e){o.push(e),s||(s=!0,a())}function n(e){return function(t){e(t)}}function i(e,t,i){try{var r=e(t),o=r&&("object"==typeof r||"function"==typeof r)&&r.then;if("function"==typeof o)if(r===i.promise)i.reject(new TypeError);else{var s=r.cancel;"function"==typeof s?i._parentCancel=s.bind(r):delete i._parentCancel,o.call(r,n(i.resolve),n(i.reject),n(i.progress))}else i.resolve(r)}catch(a){i.reject(a)}}function r(){function e(){for(var e;e=d.shift();){var t=e.deferred,n="fulfilled"===l?"resolve":"reject",r=e[n];"function"==typeof r?i(r,a,t):t[n](a)}}function n(n){delete h._parentCancel,l="rejected",a=n,d.length&&t(e)}function o(i){function s(e){return function(t){l&&"assumed"!==l||e(t)}}delete h._parentCancel;try{var c=i&&("object"==typeof i||"function"==typeof i)&&i.then;if("function"==typeof c)if(i===h)n(new TypeError);else{l="assumed";var u=i&&i.cancel;if("function"!=typeof u){var f=new r;i=f.promise;try{c(f.resolve,f.reject,f.progress)}catch(p){f.reject(p)}u=i.cancel,c=i.then}a=i,c.call(i,s(o),s(n)),h._parentCancel=u.bind(i)}else l="fulfilled",a=i,d.length&&t(e)}catch(g){s(n)(g)}}function s(){var e=h._parentCancel;if(e)delete h._parentCancel,e();else if(!l){var t=new Error("Cancel");t.name="Cancel",n(t)}}var a,l,d=[],h=this;this.resolve=function(e){return l||o(e),h},this.reject=function(e){return l||n(e),h},this.progress=function(e){return l||d.forEach(function(t){if(t.progress)try{t.progress(e)}catch(n){}}),h.promise},this.cancel=function(){return h._parentCancel?setTimeout(s,0):s(),h},this.then=function(n,i,o){var s=new r;return s._parentCancel=h.promise.cancel,d.push({resolve:n,reject:i,progress:o,deferred:s}),("fulfilled"===l||"rejected"===l)&&t(e),s.promise},this.promise={then:h.then,cancel:h.cancel}}var o=[],s=!1,a=function(){if("undefined"!=typeof process&&"function"==typeof process.nextTick){var t=process.nextTick;return function(){t(e)}}if("function"==typeof MutationObserver){var n=document.createElement("div"),i=new MutationObserver(e);return i.observe(n,{attributes:!0}),function(){n.setAttribute("class","_tick")}}return function(){setTimeout(e,0)}}();return r.all=function(e,t){function n(e,t){a||(s[e]=t,0===--o&&l.resolve(s))}function i(e,i){if(!a){if(t)try{return void n(e,t(i))}catch(r){i=r}l.reject(i)}}var o=e.length,s=[],a=!1,l=new r;return l.then(void 0,function(){a=!0,e.forEach(function(e){e.cancel&&e.cancel()})}),0===o?l.resolve(s):e.forEach(function(e,t){e.then(n.bind(void 0,t),i.bind(void 0,t))}),l.promise},r.when=function(e,t,n,i){var o,s;return e&&"function"==typeof e.then?o=e:(s=new r,s.resolve(e),o=s.promise),o.then(t,n,i)},r}),function(e){function t(){Error.apply(this,arguments)}function n(e,t,n){return e>=t&&n>=e}function i(e,t){var n=e||"utf-8";if("utf-8"!==n&&"utf8"!==n&&"unicode-1-1-utf-8"!==n)throw new TypeError("only utf-8 supported");Object.defineProperties(this,{encoding:{value:n,enumerable:!0},_fatal:{value:t&&t.fatal},_saved:{value:[],writable:!0},_checkBOM:{value:!0,writable:!0}})}function r(e){var t=e||"utf-8";if("utf-8"!==t&&"utf8"!==t&&"unicode-1-1-utf-8"!==t)throw new TypeError("only utf-8 supported");Object.defineProperties(this,{encoding:{value:t,enumerable:!0},_saved:{value:null,writable:!0}})}t.prototype=new Error,t.prototype.constructor=t,t.prototype.name="EncodingError",i.prototype.decode=function(e,i){function r(){if(this._fatal)throw this._saved.length=c=0,p=f,this._checkBOM=this._checkBOM||!h,new t;g[v++]=65533}e=e instanceof Uint8Array?e:new Uint8Array(e);var o,s,a,l,d,h=i&&i.stream,c=this._saved.length,u=e.length,f=0,p=0,g=new Uint16Array(u+c),v=0;if(this._checkBOM&&u)if(c+u>2){for(var m=c;3>m;m++)this._saved.push(e[f++]);239!==this._saved[0]||187!==this._saved[1]||191!==this._saved[2]?(f=0,this._saved.length=c):c=this._saved.length-=3,this._checkBOM=!1}else if(h)for(;u>f;)this._saved.push(e[f++]);for(;u>f;){if(o=c>0?this._saved[0]:e[f++],128>o)g[v++]=o;else if(n(o,194,223)){if(f===u)break;if(s=c>1?this._saved[1]:e[f++],!n(s,128,191)){r();continue}g[v++]=(31&o)<<6|63&s}else if(n(o,224,239)){if(f===u)break;if(s=c>1?this._saved[1]:e[f++],224===o&&!n(s,160,191)||237===o&&!n(s,128,159)||!n(s,128,191)){r();continue}if(f===u)break;if(a=c>2?this._saved[2]:e[f++],!n(a,128,191)){r();continue}g[v++]=(15&o)<<12|(63&s)<<6|63&a}else if(n(o,240,244)){if(f===u)break;if(s=c>1?this._saved[1]:e[f++],240===o&&!n(s,144,191)||244===o&&!n(s,128,143)||!n(s,128,191)){r();continue}if(f===u)break;if(a=c>2?this._saved[2]:e[f++],!n(a,128,191)){r();continue}if(f===u)break;if(l=e[f++],!n(l,128,191)){r();continue}d=65535&((7&o)<<18|(63&s)<<12|(63&a)<<6|63&l),g[v++]=d>>10|55296,g[v++]=1023&d|56320}else r();p=f,c&&(this._saved.length=c=0)}for(;p!==f;)this._saved.push(e[p++]);if(this._checkBOM=this._checkBOM||!h,!h&&0!==this._saved.length)throw new t;for(var _=[],y=0;v>y;y+=65536)_.push(String.fromCharCode.apply(null,g.subarray(y,Math.min(v,y+65536))));return _.join("")},r.prototype.encode=function(e,i){e=String(void 0!==e?e:"");for(var r,o,s,a=i&&i.stream,l=e.length,d=0,h=new Uint8Array(3*(l+(null===this._saved?0:1))),c=0;l>d;)if(null===this._saved?r=e.charCodeAt(d++):(r=this._saved,this._saved=null),128>r)h[c++]=r;else if(2048>r)h[c++]=192|r>>6,h[c++]=128|63&r;else if(55296>r||r>56319)h[c++]=224|r>>12,h[c++]=128|r>>6&63,h[c++]=128|63&r;else{if(!(l>d)){if(a){this._saved=r;break}throw new t}if(o=e.charCodeAt(d++),!n(o,56320,57343))throw new t;s=65536|(1023&r)<<10|1023&o,h[c++]=240|s>>18,h[c++]=128|s>>12&63,h[c++]=128|s>>6&63,h[c++]=128|63&s}if(!a&&null!==this._saved)throw new t;return h.buffer.slice?new Uint8Array(h.buffer.slice(0,c)):h.subarray(0,c)},e.TextDecoder=e.TextDecoder||i,e.TextEncoder=e.TextEncoder||r}("undefined"==typeof global?this||self:global),define("orion/encoding-shim",function(){}),function(){function e(e){if("string"!=typeof e)throw new TypeError}function t(e){return e?e.split("&"):[]}function n(e){return 0===e.length?"":e.join("&")}function i(e){var t=/([^=]*)(?:=?)(.*)/.exec(e),n=t[1]?decodeURIComponent(t[1]):"",i=t[2]?decodeURIComponent(t[2]):"";return[n,i]}function r(e){var t=encodeURIComponent(e[0]);return e[1]&&(t+="="+encodeURIComponent(e[1])),t}function o(e,n){var r="",o=[],s=0;return{next:function(){if(r!==e.query&&(r=e.query,o=t(r)),s1&&t.pop():"."!==e&&t.push(e)}),t.join("/")}function c(e){e.scheme&&(e.scheme=l(e.scheme)),e.port&&(e.port=d(e.port)),e.host&&e.path&&(e.path=h(e.path))}function u(e){return e.replace(/\s/g,function(e){return"%"+e.charCodeAt(0).toString(16)})}function f(e,t){if("string"!=typeof e)throw new TypeError;e=u(e);var n=_.exec(e);if(!n)return null;var i={};if(i.scheme=n[1]||"",i.scheme&&!w.test(i.scheme))return null;var r=n[2];if(r){var o=y.exec(r);if(i.userinfo=o[1],i.host=o[2],i.port=o[3],i.port&&!x.test(i.port))return null}return i.path=n[3],i.query=n[4],i.fragment=n[5],a(i,t),c(i),i}function p(e){var t=e.scheme?e.scheme+":":"";return e.host&&(t+="//",e.userinfo&&(t+=e.userinfo+"@"),t+=e.host,e.port&&(t+=":"+e.port)),t+=e.path,e.query&&(t+="?"+e.query),e.fragment&&(t+="#"+e.fragment),t}function g(e,t){var n;if(t){if(t=t.href||t,n=f(t),!n||!n.scheme)throw new SyntaxError;Object.defineProperty(this,"_baseURL",{value:n})}var i=f(e,n);if(!i)throw new SyntaxError;Object.defineProperty(this,"_input",{value:e,writable:!0}),Object.defineProperty(this,"_url",{value:i,writable:!0});var r=new s(this);Object.defineProperty(this,"query",{get:function(){return this._url?r:null},enumerable:!0})}try{var v;if("function"==typeof self.URL&&0!==self.URL.length&&"http:"===(v=new self.URL("http://www.w3.org?q")).protocol&&v.query)return}catch(m){}var _=/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/,y=/^(?:(.*)@)?(\[[^\]]*\]|[^:]*)(?::(.*))?$/,C=/^\S*$/,w=/^([a-zA-Z](?:[a-zA-Z0-9+-.])*)$/,x=/^\d*$/,S=/^(\[[^\]\/?#\s]*\]|[^:\/?#\s]*)$/,b=/^(\[[^\]\/?#\s]*\]|[^:\/?#\s]*)(?::(\d*))?$/,T=/^([^?#\s]*)$/,E=/^([^\s]*)$/,L=C,k=/([^:]*):?(.*)/,A="undefined"!=typeof StopIteration?StopIteration:new Error("Stop Iteration"),M={"ftp:":"21","gopher:":"70","http:":"80","https:":"443","ws:":"80","wss:":"443"};Object.defineProperties(s.prototype,{get:{value:function(n){e(n);var r,o=t(this._url.query);return o.some(function(e){var t=i(e);return t[0]===n?(r=t[1],!0):void 0}),r},enumerable:!0},set:{value:function(o,s){e(o),e(s);var a=t(this._url.query),l=a.some(function(e,t){var n=i(e);return n[0]===o?(n[1]=s,a[t]=r(n),!0):void 0});l||a.push(r([o,s])),this._url.query=n(a)},enumerable:!0},has:{value:function(n){e(n);var r=t(this._url.query);return r.some(function(e){var t=i(e);return t[0]===n?!0:void 0})},enumerable:!0},"delete":{value:function(r){e(r);var o=t(this._url.query),s=o.filter(function(e){var t=i(e);return t[0]!==r});return s.length!==o.length?(this._url.query=n(s),!0):!1},enumerable:!0},clear:{value:function(){this._url.query=""},enumerable:!0},forEach:{value:function(e,t){if("function"!=typeof e)throw new TypeError;var n=o(this._url,"keys+values");try{for(;;){var i=n.next();e.call(t,i[1],i[0],this)}}catch(r){if(r!==A)throw r}},enumerable:!0},keys:{value:function(){return o(this._url,"keys")},enumerable:!0},values:{value:function(){return o(this._url,"values")},enumerable:!0},items:{value:function(){return o(this._url,"keys+values")}},size:{get:function(){return t(this._url.query).length},enumerable:!0},getAll:{value:function(n){e(n);var r=[],o=t(this._url.query);return o.forEach(function(e){var t=i(e);t[0]===n&&r.push(t[1])}),r},enumerable:!0},append:{value:function(i,o){e(i),e(o);var s=t(this._url.query);s.push(r([i,o])),this._url.query=n(s)},enumerable:!0}}),Object.defineProperties(g.prototype,{toString:{value:function(){return this.href}},href:{get:function(){return this._url?p(this._url):this._input},set:function(t){e(t),this._input=t,this._url=f(this._input,this._baseURL)},enumerable:!0},origin:{get:function(){return this._url&&this._url.host?this.protocol+"//"+this.host:""},enumerable:!0},protocol:{get:function(){return this._url?this._url.scheme+":":":"},set:function(t){if(e(t),this._url){var n=":"===t.slice(-1)?t.substring(0,t.length-1):t;(""===n||w.test(n))&&(this._url.scheme=l(n))}},enumerable:!0},_userinfo:{get:function(){return this._url?this._url.userinfo:""},set:function(t){e(t),this._url&&(this._url.userinfo=t)}},username:{get:function(){if(!this._url)return"";var e=k.exec(this._userinfo),t=decodeURIComponent(e[1]||"");return t},set:function(t){if(e(t),this._url){var n=k.exec(this._userinfo),i=[encodeURIComponent(t||"")];n[2]&&i.push(n[2]),this._userinfo=i.join(":")}},enumerable:!0},password:{get:function(){if(!this._url)return"";var e=k.exec(this._userinfo),t=decodeURIComponent(e[2]||"");return t},set:function(t){if(e(t),this._url){var n=k.exec(this._userinfo),i=[n[1]||""];t&&i.push(encodeURIComponent(t)),this._userinfo=i.join(":")}},enumerable:!0},host:{get:function(){var e="";return this._url&&this._url.host&&(e+=this._url.host,this._url.port&&(e+=":"+this._url.port)),e},set:function(t){if(e(t),this._url){var n=b.exec(t);n&&(this._url.host=n[1],this._url.port=d(n[2]))}},enumerable:!0},hostname:{get:function(){return this._url?this._url.host:""},set:function(t){if(e(t),this._url){var n=S.exec(t);n&&(this._url.host=t)}},enumerable:!0},port:{get:function(){var e=this._url?this._url.port||"":"";return e&&e===M[this.protocol]&&(e=""),e},set:function(t){if(e(t),this._url){var n=x.exec(t);n&&(this._url.port=d(t))}},enumerable:!0},pathname:{get:function(){return this._url?this._url.path:""},set:function(t){if(e(t),this._url){var n=T.exec(t);n&&(this._url.host&&t&&"/"!==t[0]&&(t="/"+t),this._url.path=t?h(t):"")}},enumerable:!0},search:{get:function(){return this._url&&this._url.query?"?"+this._url.query:""},set:function(t){if(e(t),this._url){t&&"?"===t[0]&&(t=t.substring(1));var n=E.exec(t);n&&(this._url.query=t)}},enumerable:!0},hash:{get:function(){return this._url&&this._url.fragment?"#"+this._url.fragment:""},set:function(t){if(e(t),this._url){t&&"#"===t[0]&&(t=t.substring(1));var n=L.exec(t);n&&(this._url.fragment=t)}},enumerable:!0}});var D=self.URL||self.webkitURL;D&&D.createObjectURL&&(Object.defineProperty(g,"createObjectURL",{value:D.createObjectURL.bind(D),enumerable:!1}),Object.defineProperty(g,"revokeObjectURL",{value:D.revokeObjectURL.bind(D),enumerable:!1})),self.URL=g}(),define("orion/URL-shim",function(){}),define("embeddedEditor/helper/embeddedFileImpl",["orion/Deferred","orion/encoding-shim","orion/URL-shim"],function(e){function t(e){this.fileBase=e,this.fileRoot={}}return t.prototype={fetchChildren:function(){return(new e).resolve([])},loadWorkspaces:function(){return(new e).resolve([])},loadWorkspace:function(){return(new e).resolve([])},createProject:function(){throw new Error("Not supported")},createFolder:function(){throw new Error("Not supported")},createFile:function(){throw new Error("Not supported")},moveFile:function(){throw new Error("Not supported")},copyFile:function(){throw new Error("Not supported")},remoteImport:function(){throw new Error("Not supported")},remoteExport:function(){throw new Error("Not supported")},writeBlob:function(){throw new Error("Not supported")},_getFile:function(e,t){var n=new URL(e),i=n.pathname;return!this.fileRoot[i]&&t&&(this.fileRoot[i]={Name:n.pathname.split("/").pop(),Location:i,LocalTimeStamp:Date.now(),ETag:0}),this.fileRoot[i]},read:function(t,n){var i=this._getFile(t);if(!i)return(new e).reject();if(n){var r={Length:i.length,Directory:!!i.Directory,LocalTimeStamp:i.LocalTimeStamp,ETag:i.ETag,Location:i.Location,Name:i.Name,Parents:[]};return(new e).resolve(r)}return(new e).resolve(i.contents)},write:function(t,n){var i=this._getFile(t,!0);return"string"==typeof n&&(i.ETag++,i.LocalTimeStamp=Date.now(),i.contents=n),(new e).resolve(n)},deleteFile:function(t){var n=new URL(t),i=n.pathname;return delete this.fileRoot[i],(new e).resolve()}},t.prototype.constructor=t,t}),define("orion/EventTarget",[],function(){function e(){this._namedListeners={}}return e.prototype={dispatchEvent:function(e){if(!e.type)throw new Error("unspecified type");var t=this._namedListeners[e.type];return t&&t.forEach(function(t){try{"function"==typeof t?t(e):t.handleEvent(e)}catch(n){"undefined"!=typeof console&&console.log(n)}}),!e.defaultPrevented},addEventListener:function(e,t){("function"==typeof t||t.handleEvent)&&(this._namedListeners[e]=this._namedListeners[e]||[],this._namedListeners[e].push(t))},removeEventListener:function(e,t){var n=this._namedListeners[e];if(n)for(var i=0;ir;r++){var s=n[r];if(s!==i[r])return!1;var a=e[s],l=t[s];if(a!==l&&JSON.stringify(a)!==JSON.stringify(l))return!1}return!0}function i(e){for(var t=Object.prototype.hasOwnProperty,n=1,i=arguments.length;i>n;n++){var r=arguments[n];for(var o in r)t.call(r,o)&&(e[o]=r[o])}return e}function r(e){if(-1===e.indexOf("://"))try{return new URL(e,location.href).href}catch(t){}return e}function o(e){function t(){return n=n||Object.keys(e)}var n=null,i={key:function(e){return t()[e]},getItem:function(t){return e[t]},setItem:function(t,i){e[t]=i,n=null},removeItem:function(t){delete e[t],n=null},clear:function(){t().forEach(function(t){delete e[t]}.bind(this)),n=null}};return Object.defineProperty(i,"length",{get:function(){return t().length}}),i}function s(e,t){if(t&&t instanceof XMLHttpRequest){var n,i;try{n=t.status,i=t.statusText}catch(r){n=0,i=""}return{status:n||0,statusText:i}}return t}function a(e){var t=e?JSON.parse(JSON.stringify(e,s)):e;return e instanceof Error&&(t.__isError=!0,t.message=t.message||e.message,t.name=t.name||e.name),t}function l(e,t){this.type=e,this.plugin=t}function d(e,t){this.__objectId=e,this.__methods=t}function h(i,r,o){function s(e){w&&o.postMessage(e,w)}function h(t){if(!w)return(new e).reject(new Error("plugin not connected"));t.id=String(D++);var n=new e;I[t.id]=n,n.then(null,function(e){"active"===A&&e instanceof Error&&"Cancel"===e.name&&s({requestId:t.id,method:"cancel",params:e.message?[e.message]:[]})});var i=Object.prototype.toString;return t.params.forEach(function(e,r){if("[object Object]"===i.call(e)&&!(e instanceof d)){var o,s;for(o in e)"[object Function]"===i.call(e[o])&&(s=s||[],s.push(o));if(s){var a=O++;R[a]=e;var l=function(){delete R[a]};n.then(l,l),t.params[r]=new d(a,s)}}}),o.postMessage(t,w),n.promise}function c(e,t){e||0===e?s({id:e,result:null,error:t}):console.log(t)}function u(e,t,n,i){i.forEach(function(e,t){if(e&&"undefined"!=typeof e.__objectId){var n={};e.__methods.forEach(function(t){n[t]=function(){return h({objectId:e.__objectId,method:t,params:Array.prototype.slice.call(arguments)})}}),i[t]=n}});var r="undefined"==typeof e?null:{id:e,result:null,error:null};try{var o=n.apply(t,i);if(!r)return;o&&"function"==typeof o.then?(N[e]=o,o.then(function(t){delete N[e],r.result=t,s(r)},function(t){N[e]&&(delete N[e],r.error=a(t),s(r))},function(){s({responseId:e,method:"progress",params:Array.prototype.slice.call(arguments)})})):(r.result=o,s(r))}catch(l){r&&(r.error=a(l),s(r))}}function f(e){try{if(e.method){var t=e.method,n=e.params||[];if("serviceId"in e){var i=B[e.serviceId];i?t in i?u(e.id,i,i[t],n):c(e.id,"method not found"):c(e.id,"service not found")}else if("objectId"in e){var r=R[e.objectId];r?t in r?u(e.id,r,r[t],n):c(e.id,"method not found"):c(e.id,"object not found")}else if("requestId"in e){var s=N[e.requestId];s&&"cancel"===t&&s.cancel&&s.cancel.apply(s,n)}else if("responseId"in e){var a=I[e.responseId];a&&"progress"===t&&a.progress&&a.progress.apply(a,n)}else if("loading"===e.method)w.loading();else if("plugin"===e.method){w.connected();var l=e.params[0];S({headers:l.headers,services:l.services}).then(function(){C&&C.resolve(_)})}else{if("timeout"!==e.method&&"error"!==e.method)throw new Error("Bad method: "+e.method);C&&C.reject(e.error)}}else if(e.id){var d=I[String(e.id)];if(d)if(delete I[String(e.id)],e.error){var h=o.handleServiceError(_,e.error);d.reject(h)}else d.resolve(e.result)}}catch(f){console.log("Plugin._messageHandler "+f)}}function p(e){var n={};if(e.methods&&(e.methods.forEach(function(t){n[t]=function(){var n={serviceId:e.serviceId,method:t,params:Array.prototype.slice.call(arguments)};return"active"===A?h(n):_.start({"transient":!0}).then(function(){return h(n)})}}),n.addEventListener&&n.removeEventListener)){var i=new t,r=O++;R[r]={handleEvent:i.dispatchEvent.bind(i)};var o=new d(r,["handleEvent"]),s=n.addEventListener;n.addEventListener=function(e,t){i._namedListeners[e]||s(e,o),i.addEventListener(e,t)};var a=n.removeEventListener;n.removeEventListener=function(e,t){i.removeEventListener(e,t),i._namedListeners[e]||a(e,o)}}return n}function g(e){var t=JSON.parse(JSON.stringify(e.properties));t.__plugin__=i;var n=e.names||e.type||[];return Array.isArray(n)||(n=[n]),t.objectClass=n,t}function v(e){var t=p(e),n=g(e),i=o.registerService(e.names||e.type,t,n);M[e.serviceId]={registration:i,proxy:t}}function m(){o.persist(i,{created:b,headers:T,services:E,autostart:L,lastModified:k})}var _=this;r=r||{};var y,C,w,x,S,b=r.created||(new Date).getTime(),T=r.headers||{},E=r.services||[],L=r.autostart,k=r.lastModified||0,A="installed",M={},D=0,O=0,N={},I={},R={},B={};this._default=!1,this._persist=m,this._resolve=function(){A="resolved",o.dispatchEvent(new l("resolved",_))},this._getAutostart=function(){return L},this._getCreated=function(){return b},this.getLocation=function(){return i},this.getHeaders=function(){return JSON.parse(JSON.stringify(T))},this.getName=function(){var e=this.getHeaders();return e?e.name||"":null},this.getVersion=function(){var e=this.getHeaders();return e?e.version||"0.0.0":null},this.getLastModified=function(){return k},this.getServiceReferences=function(){var e=[];return Object.keys(M).forEach(function(t){e.push(M[t].registration.getReference())}),e},this.setParent=function(t){return x!==t?(x=t,_.stop({"transient":!0}).then(function(){return"started"===L?_.start({"transient":!0}):"lazy"===L?_.start({lazy:!0,"transient":!0}):void 0})):(new e).resolve()},this.getState=function(){return A},this.getProblemLoading=function(){return _._problemLoading?!0:!1},this.start=function(t){if("uninstalled"===A)return(new e).reject(new Error("Plugin is uninstalled"));if(y)return y.promise.then(this.start.bind(this,t));if("active"===A)return(new e).resolve();if(!t||!t["transient"]){var n=t&&t.lazy?"lazy":"started";n!==L&&(L=n,m())}var r=o.getState();if("starting"!==r&&"active"!==r)return t["transient"]?(new e).reject(new Error("start transient error")):(new e).resolve();if("installed"===A)try{this._resolve()}catch(s){return(new e).reject(s)}if("resolved"===A&&E.forEach(function(e){v(e)}),t&&t.lazy){"starting"!==A&&(A="starting",o.dispatchEvent(new l("lazy activation",_)));var a=(new Date).getTime();return!this.getLastModified()||a>this.getLastModified()+864e5?this.update():(new e).resolve()}var d=new e;return y=d,A="starting",_._problemLoading=null,o.dispatchEvent(new l("starting",_)),C=new e,w=o.connect(i,f,x),C.then(function(){C=null,A="active",o.dispatchEvent(new l("started",_)),y=null,d.resolve()},function(e){C=null,A="stopping",o.dispatchEvent(new l("stopping",_)),Object.keys(M).forEach(function(e){M[e].registration.unregister(),delete M[e]}),o.disconnect(w),w=null,A="resolved",y=null,o.dispatchEvent(new l("stopped",_)),_._problemLoading=!0,d.reject(new Error("Failed to load plugin: "+i+(e&&e.message?"\n Reason: "+e.message:""))),_._default&&(k=0,m())}),d.promise},this.stop=function(t){if("uninstalled"===A)return(new e).reject(new Error("Plugin is uninstalled"));if(y)return y.promise.then(this.stop.bind(this,t));if(t&&t["transient"]||"stopped"!==L&&(L="stopped",m()),"active"!==A&&"starting"!==A)return(new e).resolve();var n=new e;return y=n,A="stopping",o.dispatchEvent(new l("stopping",_)),Object.keys(M).forEach(function(e){M[e].registration.unregister(),delete M[e]}),w&&(o.disconnect(w),w=null),A="resolved",y=null,o.dispatchEvent(new l("stopped",_)),n.resolve(),n.promise},S=function(t){if(_.problemLoading=null,"uninstalled"===A)return(new e).reject(new Error("Plugin is uninstalled"));if(!t)return 0===k&&(k=(new Date).getTime(),m()),o.loadManifest(i).then(S,function(){_._problemLoading=!0,_._default&&(k=0,m()),console.log("Failed to load plugin: "+i)});var r=T,s=E,a=L;if(T=t.headers||{},E=t.services||[],L=t.autostart||L,t.lastModified?k=t.lastModified:(k=(new Date).getTime(),m()),n(T,r)&&n(E,s)&&L===a)return(new e).resolve();if("active"===A||"starting"===A){var d=[];Object.keys(E).forEach(function(e){var t=E[e];d.push(e);var i=M[e];if(i){if(n(t.methods,Object.keys(i.proxy))){var r=g(t),o=i.registration.getReference(),s={};return o.getPropertyKeys().forEach(function(e){s[e]=o.getProperty(e)}),void(n(r,s)||i.registration.setProperties(r))}i.registration.unregister(),delete M[e]}v(t)}),Object.keys(M).forEach(function(e){-1===d.indexOf(e)&&(M[e].registration.unregister(),delete M[e])})}return"active"===A&&(o.disconnect(w),C=new e,w=o.connect(i,f,x),C.then(function(){C=null},function(){C=null,A="stopping",o.dispatchEvent(new l("stopping"),_),Object.keys(M).forEach(function(e){M[e].registration.unregister(),delete M[e]}),o.disconnect(w),w=null,A="resolved",o.dispatchEvent(new l("stopped",_))})),(new e).resolve()},this.update=function(e){return S(e).then(function(){o.dispatchEvent(new l("updated",_))})},this.uninstall=function(){return"uninstalled"===A?(new e).reject(new Error("Plugin is uninstalled")):"active"===A||"starting"===A||"stopping"===A?this.stop().then(this.uninstall.bind(this),this.uninstall.bind(this)):(o.removePlugin(this),A="uninstalled",o.dispatchEvent(new l("uninstalled",_)),(new e).resolve())}}function c(n,s){function a(e,t){try{var n;if("undefined"==typeof e.useStructuredClone){var i="string"!=typeof t.data;n=i?t.data:JSON.parse(t.data),e.useStructuredClone=i}else n=e.useStructuredClone?t.data:JSON.parse(t.data);e.handler(n)}catch(r){}}function d(e){var t=e.source;w.some(function(n){return t===n.target?(a(n,e),!0):void 0})}s=s||{};var c=s.storage||localStorage;c.getItem||(c=o(c));var m,_=parseInt(c.getItem("pluginregistry.default.timeout"),10)||void 0,y="installed",C=[],w=[],x=new t,S={},b={registerService:n.registerService.bind(n),connect:function(e,t,n,i){function r(t){localStorage.pluginLogging&&console.log(t+"("+((new Date).getTime()-s._startTime)+"ms)="+e)}function o(e){r("timeout");var n=new Error(e);n.name="timeout",t({method:"timeout",error:n})}var s={handler:t,url:e};i=i||_,s._updateTimeout=function(){var t,n;if(!this._connected&&!this._closed)if(this._handshake){var r=0;w.forEach(function(e){e._connected||e._closed||(r+=1e3)}),t="Plugin handshake timeout for: "+e,n=this._loading?5e3:(i||6e4)+r}else t="Plugin load timeout for: "+e,n=i||15e3;this._loadTimeout&&clearTimeout(this._loadTimeout),this._loadTimeout=0,n&&(this._loadTimeout=setTimeout(o.bind(null,t),n))};var l=!(!e.match(f)||"undefined"==typeof Worker),d=!(!e.match(p)||"undefined"==typeof SharedWorker);if(localStorage.useSharedWorkers&&d||!e.match(p)||(e=e.replace(p,v),d=!1),localStorage.useWorkers&&l||!e.match(f)||(e=e.replace(f,g),l=d=!1),s.url=e,s._updateTimeout(),s._startTime=(new Date).getTime(),l){var h;d?(h=new SharedWorker(e),s.target=h.port,h.port.start(),s._close=function(){h.port.close()}):(h=new Worker(e),s.target=h,s._close=function(){h.terminate()}),s.postMessage=function(e){this.target.postMessage(this.useStructuredClone?e:JSON.stringify(e),[])},s.target.addEventListener("message",function(e){a(s,e)})}else{var c=document.createElement("iframe");c.name=e+"_"+s._startTime,c.src=e,c.onload=function(){r("handshake"),s._handshake=!0,s._updateTimeout()},c.sandbox="allow-scripts allow-same-origin allow-forms allow-popups",c.style.width=c.style.height="100%",c.frameBorder=0,(n||m).appendChild(c),s.target=c.contentWindow,s.postMessage=function(e){this.target.postMessage(this.useStructuredClone?e:JSON.stringify(e),this.url)},s._close=function(){if(c){var e=c.parentNode;e&&e.removeChild(c),c=null}}}return s.connected=function(){r("connected"),this._connected=!0,this._updateTimeout()},s.loading=function(){r("loading"),this._loading=!0,this._updateTimeout()},s.close=function(){r("closed"),this._closed=!0,this._updateTimeout(),this._close()},w.push(s),s},disconnect:function(e){for(var t=0;t0){for(var j=0;2>j;j++){for(var i=0;i<_all_script.length;i++)if(0===j){if("orion.codeEdit"===_all_script[i].id){_code_edit_script_source=_all_script[i].src;break}}else{var regex=/.*built-codeEdit.*.js/;if(_all_script[i].src&®ex.exec(_all_script[i].src)){_code_edit_script_source=_all_script[i].src;break}}if(_code_edit_script_source)break}_code_edit_script_source||(_code_edit_script_source=_all_script[_all_script.length-1].src)}define("embeddedEditor/helper/bootstrap",["embeddedEditor/helper/embeddedFileImpl","orion/serviceregistry","orion/pluginregistry","orion/Deferred","orion/URL-shim"],function(e,t,n,i){function r(r){if(o)return o;var l=document.createElement("div");l.id="_orion_hidden_actions",document.body.appendChild(l),l.style.display="none";var d=r&&r._defaultPlugins?r._defaultPlugins:a;o=new i;var h=new t.ServiceRegistry,c=new e(s);h.registerService("orion.core.file",c,{Name:"Embedded File System",top:s,pattern:s});var u={};d.forEach(function(e){var t=new URL(e,_code_edit_script_source);u[t.href]={autostart:"lazy"}}),d=r&&r.userPlugins?r.userPlugins:[],d.forEach(function(e){u[e]={autostart:"lazy"}});var f=new n.PluginRegistry(h,{storage:{},plugins:u});return f.start().then(function(){var e={serviceRegistry:h,pluginRegistry:f};return o.resolve(e),e})}var o,s="/__embed/",a=["../javascript/plugins/javascriptPlugin.html","../webtools/plugins/webToolsPlugin.html","../plugins/embeddedToolingPlugin.html"];return{startup:r}}),define("orion/editor/eventTarget",[],function(){function e(){}return e.addMixin=function(t){var n=e.prototype;for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i])},e.prototype={addEventListener:function(e,t,n){this._eventTypes||(this._eventTypes={});var i=this._eventTypes[e];i||(i=this._eventTypes[e]={level:0,listeners:[]});var r=i.listeners;r.push({listener:t,useCapture:n})},dispatchEvent:function(e){var t=e.type;this._dispatchEvent("pre"+t,e),this._dispatchEvent(t,e),this._dispatchEvent("post"+t,e)},_dispatchEvent:function(e,t){var n=this._eventTypes?this._eventTypes[e]:null;if(n){var i=n.listeners;try{if(n.level++,i)for(var r=0,o=i.length;o>r;r++)if(i[r]){var s=i[r].listener;"function"==typeof s?s.call(this,t):s.handleEvent&&"function"==typeof s.handleEvent&&s.handleEvent(t)}}finally{if(n.level--,n.compact&&0===n.level){for(var a=i.length-1;a>=0;a--)i[a]||i.splice(a,1);0===i.length&&delete this._eventTypes[e],n.compact=!1}}}},isListening:function(e){return this._eventTypes?void 0!==this._eventTypes[e]:!1},removeEventListener:function(e,t,n){if(this._eventTypes){var i=this._eventTypes[e];if(i){for(var r=i.listeners,o=0,s=r.length;s>o;o++){var a=r[o];if(a&&a.listener===t&&a.useCapture===n){0!==i.level?(r[o]=null,i.compact=!0):r.splice(o,1);break}}0===r.length&&delete this._eventTypes[e]}}}},{EventTarget:e}}),define("orion/regex",[],function(){function e(e){return e.replace(/([\\$\^*\/+?\.\(\)|{}\[\]])/g,"\\$&")}function t(e){var t=/^\s*\/(.+)\/([gim]{0,3})\s*$/.exec(e);return t?{pattern:t[1],flags:t[2]}:null}return{escape:e,parse:t}}),define("orion/util",[],function(){function e(e){var t=arguments;return e.replace(/\$\{([^\}]+)\}/g,function(e,n){return t[(n<<0)+1]})}function t(e,t){return e.createElementNS?e.createElementNS(_,t):e.createElement(t)}var n=navigator.userAgent,i=-1!==n.indexOf("MSIE")||-1!==n.indexOf("Trident")?document.documentMode:void 0,r=parseFloat(n.split("Firefox/")[1]||n.split("Minefield/")[1])||void 0,o=-1!==n.indexOf("Opera")?parseFloat(n.split("Version/")[1]):void 0,s=parseFloat(n.split("Chrome/")[1])||void 0,a=-1!==n.indexOf("Safari")&&!s,l=parseFloat(n.split("WebKit/")[1])||void 0,d=-1!==n.indexOf("Android"),h=-1!==n.indexOf("iPad"),c=-1!==n.indexOf("iPhone"),u=h||c,f=-1!==navigator.platform.indexOf("Mac"),p=-1!==navigator.platform.indexOf("Win"),g=-1!==navigator.platform.indexOf("Linux"),v="undefined"!=typeof document&&"ontouchstart"in document.createElement("input"),m=p?"\r\n":"\n",_="http://www.w3.org/1999/xhtml";return{formatMessage:e,createElement:t,isIE:i,isFirefox:r,isOpera:o,isChrome:s,isSafari:a,isWebkit:l,isAndroid:d,isIPad:h,isIPhone:c,isIOS:u,isMac:f,isWindows:p,isLinux:g,isTouch:v,platformDelimiter:m}}),define("orion/editor/textModel",["orion/editor/eventTarget","orion/regex","orion/util"],function(e,t,n){function i(e,t){this._lastLineIndex=-1,this._text=[""],this._lineOffsets=[0],this.setText(e),this.setLineDelimiter(t)}return i.prototype={destroy:function(){},find:function(e){this._text.length>1&&(this._text=[this._text.join("")]);var n=e.string,i=e.regex,r=n,o="",s=e.caseInsensitive;if(r)if(i){var a=t.parse(r);a&&(r=a.pattern,o=a.flags)}else r=n.replace(/([\\$\^*\/+?\.\(\)|{}\[\]])/g,"\\$&"),s&&(r=r.replace(/[iI\u0130\u0131]/g,"[Iiİı]"));var l,d=null;if(r){var h=e.reverse,c=e.wrap,u=e.wholeWord,f=e.start||0,p=e.end,g=null!==p&&void 0!==p;-1===o.indexOf("g")&&(o+="g"),-1===o.indexOf("m")&&(o+="m"),s&&-1===o.indexOf("i")&&(o+="i"),u&&(r="\\b"+r+"\\b");var v,m,_=this._text[0],y=0;if(g){var C=p>f?f:p,w=p>f?p:f;_=_.substring(C,w),y=C}var x=new RegExp(r,o);h?l=function(){var e=null;for(x.lastIndex=0;;){if(m=x.lastIndex,v=x.exec(_),m===x.lastIndex)return null;if(!v)break;if(v.index+y=0&&n>e))return null;var i=this._lineOffsets[e];if(n>e+1){var r=this.getText(i,this._lineOffsets[e+1]);if(t)return r;for(var o,s=r.length;10===(o=r.charCodeAt(s-1))||13===o;)s--;return r.substring(0,s)}return this.getText(i)},getLineAtOffset:function(e){var t=this.getCharCount();if(!(e>=0&&t>=e))return-1;var n=this.getLineCount();if(e===t)return n-1;var i,r,o=this._lastLineIndex;if(o>=0&&n>o&&(i=this._lineOffsets[o],r=n>o+1?this._lineOffsets[o+1]:t,e>=i&&r>e))return o;for(var s=n,a=-1;s-a>1;)if(o=Math.floor((s+a)/2),i=this._lineOffsets[o],r=n>o+1?this._lineOffsets[o+1]:t,i>=e)s=o;else{if(r>e){s=o;break}a=o}return this._lastLineIndex=s,s},getLineCount:function(){return this._lineOffsets.length},getLineDelimiter:function(){return this._lineDelimiter},getLineEnd:function(e,t){var n=this.getLineCount();if(!(e>=0&&n>e))return-1;if(n>e+1){var i=this._lineOffsets[e+1];if(t)return i;for(var r,o=this.getText(Math.max(this._lineOffsets[e],i-2),i),s=o.length;10===(r=o.charCodeAt(s-1))||13===r;)s--;return i-(o.length-s)}return this.getCharCount()},getLineStart:function(e){return e>=0&&e=e));)i+=n,r++;for(var o=i,s=r;r=t));)i+=n,r++;var a=i,l=r;if(s===l)return this._text[s].substring(e-o,t-a);var d=this._text[s].substring(e-o),h=this._text[l].substring(0,t-a);return d+this._text.slice(s+1,l).join("")+h},onChanging:function(e){return this.dispatchEvent(e)},onChanged:function(e){return this.dispatchEvent(e)},setLineDelimiter:function(e,t){if("auto"===e&&(e=void 0,this.getLineCount()>1&&(e=this.getText(this.getLineEnd(0),this.getLineEnd(0,!0)))),this._lineDelimiter=e?e:n.platformDelimiter,t){var i=this.getLineCount();if(i>1){for(var r=new Array(i),o=0;i>o;o++)r[o]=this.getLine(o);this.setText(r.join(this._lineDelimiter))}}},setText:function(e,t,n){if(void 0===e&&(e=""),void 0===t&&(t=0),void 0===n&&(n=this.getCharCount()),t!==n||""!==e){for(var i=this.getLineAtOffset(t),r=this.getLineAtOffset(n),o=t,s=n-t,a=r-i,l=e.length,d=0,h=this.getLineCount(),c=0,u=0,f=0,p=[];;){if(-1!==c&&f>=c&&(c=e.indexOf("\r",f)),-1!==u&&f>=u&&(u=e.indexOf("\n",f)),-1===u&&-1===c)break;f=-1!==c&&-1!==u?c+1===u?u+1:(u>c?c:u)+1:-1!==c?c+1:u+1,p.push(t+f),d++}var g={type:"Changing",text:e,start:o,removedCharCount:s,addedCharCount:l,removedLineCount:a,addedLineCount:d};if(this.onChanging(g),0===p.length){var v,m=this.getLineStart(i);v=h>r+1?this.getLineStart(r+1):this.getCharCount(),t!==m&&(e=this.getText(m,t)+e,t=m),n!==v&&(e+=this.getText(n,v),n=v)}for(var _=l-s,y=i+a+1;h>y;y++)this._lineOffsets[y]+=_;var C,w=5e4,x=w;if(p.length=t));)T+=b,E++;for(var L=T,k=E;E=n));)T+=b,E++;var A=T,M=E,D=this._text[k],O=this._text[M],N=D.substring(0,t-L),I=O.substring(n-A),R=[k,M-k+1];N&&R.push(N),e&&R.push(e),I&&R.push(I),Array.prototype.splice.apply(this._text,R),0===this._text.length&&(this._text=[""]);var B={type:"Changed",start:o,removedCharCount:s,addedCharCount:l,removedLineCount:a,addedLineCount:d};this.onChanged(B)}}},e.EventTarget.addMixin(i.prototype),{TextModel:i}}),define("orion/editor/undoStack",[],function(){function e(e,t,n,i,r){this.model=e,this.offset=t,this.text=n,this.previousText=i,this.type=r}function t(e){this.owner=e,this.changes=[]}function n(e,t){this.size=void 0!==t?t:100,this.reset();var n=this;if(this._listener={onChanging:function(e){n._onChanging(e)},onDestroy:function(e){n._onDestroy(e)}},e.getModel){var i=e.getModel();i.getBaseModel&&(i=i.getBaseModel()),this.model=i,this.setView(e)}else this.shared=!0,this.model=e;this.model.addEventListener("Changing",this._listener.onChanging)}return e.prototype={getRedoChanges:function(){return[{start:this.offset,end:this.offset+this.previousText.length,text:this.text}]},getUndoChanges:function(){return[{start:this.offset,end:this.offset+this.text.length,text:this.previousText}]},undo:function(e,t){return this._doUndoRedo(this.offset,this.previousText,this.text,e,t),!0},redo:function(e,t){return this._doUndoRedo(this.offset,this.text,this.previousText,e,t),!0},merge:function(e,t,n,i,r){if(i===this.type){if(1===i&&e===this.offset+this.text.length)return this.text+=t,!0;if(-1===i&&r===this.offset)return this.offset=e,this.previousText=n+this.previousText,!0;if(-1===i&&e===this.offset)return this.previousText=this.previousText+n,!0}return!1},_doUndoRedo:function(e,t,n,i,r){if(this.model.setText(t,e,e+n.length),r&&i){var o=i.getModel();o!==this.model&&(e=o.mapOffset(e,!0)),i.setSelection(e,e+t.length)}}},t.prototype={getRedoChanges:function(){for(var e=[],t=0;t=0;t--)e=e.concat(this.changes[t].getUndoChanges());return e},add:function(e){this.changes.push(e)},end:function(e){e&&(this.endSelection=e.getSelections());var t=this.owner;t&&t.end&&t.end()},undo:function(e,t){this.changes.length>1&&e&&e.setRedraw(!1);for(var n=this.changes.length-1;n>=0;n--)this.changes[n].undo(e,!1);t&&e&&e.setSelections(this.startSelection),this.changes.length>1&&e&&e.setRedraw(!0);var i=this.owner;return i&&i.undo&&i.undo(),this.changes.length>0},redo:function(e,t){this.changes.length>1&&e&&e.setRedraw(!1);for(var n=0;n1,e&&e.setRedraw(!0);var i=this.owner;return i&&i.redo&&i.redo(),this.changes.length>0},merge:function(e,t,n,i,r,o){var s=this.changes.length;return s>0&&this===o?this.changes[s-1].merge(e,t,n,i,r):!1},start:function(e){e&&(this.startSelection=e.getSelections());var t=this.owner;t&&t.start&&t.start()}},n.prototype={destroy:function(){this._onDestroy()},add:function(e){if(this.compoundChange)this.compoundChange.add(e);else{var t=this.stack.length;this.stack.splice(this.index,t-this.index,e),this.index++,this.stack.length>this.size&&(this.stack.shift(),this.index--)}},markClean:function(){this._commitUndo(),this.cleanChange=this.stack[this.index-1],this.cleanChange&&(this.cleanChange.type=2)},isClean:function(){return this.cleanChange===this.stack[this.index-1]},canUndo:function(){return this.index>0},canRedo:function(){return this.stack.length-this.index>0},endCompoundChange:function(){this.compoundChange&&this.compoundChange.end(this.view),this.compoundChange=void 0},getSize:function(){return{undo:this.index,redo:this.stack.length-this.index}},getRedoChanges:function(){this._commitUndo();for(var e=[],t=this.index;t=0;t--)e=e.concat(this.stack[t].getUndoChanges());return e},undo:function(){this._commitUndo();var e,t=!1;this._ignoreUndo=!0;do{if(this.index<=0)break;e=this.stack[--this.index]}while(!(t=e.undo(this.view,!0)));return this._ignoreUndo=!1,t},redo:function(){this._commitUndo();var e,t=!1;this._ignoreUndo=!0;do{if(this.index>=this.stack.length)break;e=this.stack[this.index++]}while(!(t=e.redo(this.view,!0)));return this._ignoreUndo=!1,t},reset:function(){this.index=0,this.cleanChange=void 0,this.stack=[],this._ignoreUndo=!1,this._compoundChange=void 0},setView:function(e){this.view!==e&&(this.view&&e.removeEventListener("Destroy",this._listener.onDestroy),this.view=e,this.view&&e.addEventListener("Destroy",this._listener.onDestroy))},startCompoundChange:function(e){this._commitUndo();var n=new t(e);return this.add(n),this.compoundChange=n,this.compoundChange.start(this.view),this.compoundChange},_commitUndo:function(){this.endCompoundChange()},_onDestroy:function(e){e&&this.shared||this.model.removeEventListener("Changing",this._listener.onChanging),this.view&&(this.view.removeEventListener("Destroy",this._listener.onDestroy),this.view=null)},_trackUnsavedChanges:function(e){if(this._unsavedChanges){var t=this._unsavedChanges.length,n=e.addedCharCount,i=e.removedCharCount,r=e.start,o=e.start+i,s=0;if(0===n?s=-1:0===i&&(s=1),t>0&&s===this._previousChangeType){var a=this._unsavedChanges[t-1];if(0===i&&r===a.end+a.text.length)return void(a.text+=e.text);if(0===e.addedCharCount&&o===a.start)return void(a.start=r)}this._previousChangeType=s,this._unsavedChanges.push({start:r,end:o,text:e.text})}},_onChanging:function(t){if(this._trackUnsavedChanges(t),!this._ignoreUndo){var n=t.text,i=t.start,r=t.addedCharCount,o=t.removedCharCount,s=i+o,a=0;0===r&&1===o?a=-1:1===r&&0===o&&(a=1);var l=this.stack.length,d=this.model.getText(i,s);if(l>0&&this.index===l){var h=this.stack[l-1];if(h.merge(i,n,d,a,s,this.compoundChange))return}this.add(new e(this.model,i,n,d,a))}}},{UndoStack:n}}),define("orion/webui/littlelib",["orion/util"],function(e){function t(e,t){return t||(t=document),t.querySelector(e)}function n(e,t){return t||(t=document),t.querySelectorAll(e)}function i(e,t){return Array.prototype.slice.call(n(e,t))}function r(e){var t=e;return"string"==typeof e&&(t=document.getElementById(e)),t}function o(e,t){if(!e||!t)return!1;if(e===t)return!0;var n=e.compareDocumentPosition(t);return Boolean(16&n)}function s(e){var t=e.getBoundingClientRect(),n=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),i=Math.max(document.documentElement.scrollTop,document.body.scrollTop);return{left:t.left+n,top:t.top+i,width:t.width,height:t.height}}function a(e){for(;e.hasChildNodes();){var t=e.firstChild;e.removeChild(t)}}function l(t){var n=t.tabIndex;if(0===n&&e.isIE){var i={a:!0,body:!0,button:!0,frame:!0,iframe:!0,img:!0,input:!0,isindex:!0,object:!0,select:!0,textarea:!0};i[t.nodeName.toLowerCase()]||t.attributes.tabIndex||(n=-1)}return n}function d(e){if(l(e)>=0)return e;if(e.hasChildNodes())for(var t=0;t=0)return e;if(e.hasChildNodes())for(var t=e.childNodes.length-1;t>=0;t--){var n=h(e.childNodes[t]);if(n)return n}return null}function c(e,t){if(3===e.nodeType){var n=x.exec(e.nodeValue);n&&n.length>1&&t(e,n)}if(e.hasChildNodes())for(var i=0;i2&&-1!==o.indexOf("px",o.length-2)){o=o.slice(0,-2);var s=parseInt(o,10);return s!==s?0:s}}return 0}function f(e,t){c(e,function(e,n){var i=t[n[1]]||n[1];e.parentNode.replaceChild(document.createTextNode(i),e)})}function p(e,t){c(e,function(e,n){var i=t[n[1]];if(i){var r=document.createRange(),o=n.index;r.setStart(e,o),r.setEnd(e,o+n[0].length),r.deleteContents(),r.insertNode(i)}})}function g(t,n){function i(e){S.forEach(function(t){var n=!1,i=t.excludeNodes.some(function(t){return document.body.contains(t)?(n=!0,t.contains(e.target)):!1});if(n&&!i)try{t.dismiss(e)}catch(r){"undefined"!=typeof console&&console&&console.error(r&&r.message)}}),S=S.filter(function(e){return e.excludeNodes.some(function(e){return document.body.contains(e)})})}null===S&&(S=[],document.addEventListener("click",i,!0),e.isIOS&&document.addEventListener("touchend",function(e){function t(){e.target.removeEventListener("click",t)}0===e.touches.length&&e.target.addEventListener("click",t)},!1)),S.push({excludeNodes:t,dismiss:n})}function v(e){S=S.filter(function(t){return e!==t.dismiss})}function m(e){for(var t=e.parentNode,n=document.documentElement;t&&t!==n;){var i=window.getComputedStyle(t,null);if(!i)break;var r=i.getPropertyValue("overflow-y");if("auto"===r||"scroll"===r)break;t=t.parentNode}return t}function _(e){window.document.all&&(e.keyCode=0),e.preventDefault&&(e.preventDefault(),e.stopPropagation())}function y(e){for(var t=document.getElementsByTagName("iframe"),n=0;n1?n.children:n.firstChild}var x=/\$\{([^\}]+)\}/,S=null,b={BKSPC:8,TAB:9,ENTER:13,SHIFT:16,CONTROL:17,ALT:18,ESCAPE:27,SPACE:32,PAGEUP:33,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,INSERT:45,DEL:46,COMMAND:991},T=Object.create(null);return Object.keys(b).forEach(function(e){T[b[e]]=e}),{$:t,$$:n,$$array:i,node:r,contains:o,bounds:s,empty:a,firstTabbable:d,lastTabbable:h,pixelValueOf:u,stop:_,processTextNodes:f,processDOMNodes:p,addAutoDismiss:g,setFramesEnabled:y,getOffsetParent:m,removeAutoDismiss:v,keyName:C,KEY:b,createNodes:w}}),define("orion/commandsProxy",["orion/util","orion/webui/littlelib"],function(e,t){function n(t,n){function i(t){if(e.isMac){if(t.metaKey&&!t.altKey)return t.shiftKey||t.ctrlKey||65!==t.keyCode&&67!==t.keyCode&&86!==t.keyCode&&88!==t.keyCode&&90!==t.keyCode?!1:!0;if(t.ctrlKey)return!1}else{if(t.ctrlKey&&!t.altKey)return t.shiftKey||65!==t.keyCode&&67!==t.keyCode&&86!==t.keyCode&&88!==t.keyCode&&90!==t.keyCode?!1:!0;if(t.altKey&&!t.ctrlKey)return!1;if(t.ctrlKey&&t.altKey)return!1}if(t["char"])return t["char"].length>0;if(t.charCode||t.keyCode){var n=t.charCode||t.keyCode;switch(n){case 8:case 9:case 13:case 46:return!0;default:return n>=32&&112>n||n>123}}return!1}if(t=t||window.event,i(t)){if("true"===t.target.contentEditable)return;var r=t.target.nodeName.toLowerCase();if("input"===r){var o=t.target.type.toLowerCase();switch(o){case"text":case"password":case"search":case"color":case"date":case"datetime":case"datetime-local":case"email":case"month":case"number":case"range":case"tel":case"time":case"url":case"week":return}}else if("textarea"===r)return}n(t)}function i(){this._init()}return i.prototype={destroy:function(){this._listener&&(document.removeEventListener("keydown",this._listener),this._listener=null)},setProxy:function(e){this.proxy=e},setKeyBindings:function(e){this.bindings=e},_init:function(){var e=this;document.addEventListener("keydown",this._listener=function(i){return n(i,function(n){var i=e.proxy,r=e.bindings;if(r&&i)for(var o=0;o0){this._boundAutoDismiss&&e.removeAutoDismiss(this._boundAutoDismiss),this._boundAutoDismiss=this._autoDismiss.bind(this);var r=e.$$array(".dropdownSubMenu",this._dropdownNode);e.addAutoDismiss([this._triggerNode].concat(r),this._boundAutoDismiss),this._triggerNode.classList.add("dropdownTriggerOpen"),this._selectionClass&&this._triggerNode.classList.add(this._selectionClass),this._dropdownNode.classList.add("dropdownMenuOpen"),this._isVisible=!0,this._positionDropdown(t),this._focusDropdownNode(),n=!0,this._parentDropdown&&this._parentDropdown.submenuOpen(this)}}return n},_focusDropdownNode:function(){this._dropdownNode.focus()},_autoDismiss:function(e){if(this.close(!1)&&this._dropdownNode.contains(e.target))for(var t=this._parentDropdown;t;)t.close(!1),t=t._parentDropdown},_positionDropdown:function(){if(this._dropdownNode.style.left="",this._dropdownNode.style.top="",this._positioningNode)return void(this._dropdownNode.style.left=this._positioningNode.offsetLeft+"px");var t=e.bounds(this._dropdownNode),n=e.bounds(document.body);if(t.left+t.width>n.left+n.width)if(this._triggerNode.classList.contains("dropdownMenuItem"))this._dropdownNode.style.left=-t.width+"px";else{var i=e.bounds(this._boundingNode(this._triggerNode)),r=e.bounds(this._triggerNode);this._dropdownNode.style.left=r.left-i.left-t.width+r.width+"px"}var o=t.top+t.height-(n.top+n.height);o>0&&(this._dropdownNode.style.top=Math.floor(this._dropdownNode.style.top-o)+"px")},_boundingNode:function(e){var t=window.getComputedStyle(e,null);if(null===t)return e;var n=t.getPropertyValue("position");return"absolute"!==n&&e.parentNode&&e!==document.body?this._boundingNode(e.parentNode):e},close:function(t){var n=!1;return this.isVisible()&&(this._triggerNode.classList.remove("dropdownTriggerOpen"),this._selectionClass&&this._triggerNode.classList.remove(this._selectionClass),this._dropdownNode.classList.remove("dropdownMenuOpen"),e.setFramesEnabled(!0),t&&this._triggerNode.focus(),this._isVisible=!1,this._selectedItem&&(this._selectedItem.classList.remove("dropdownMenuItemSelected"),this._selectedItem=null),this._boundAutoDismiss&&(e.removeAutoDismiss(this._boundAutoDismiss),this._boundAutoDismiss=null),n=!0),n},getItems:function(){var t=e.$$array("li:not(.dropdownSeparator) > .dropdownMenuItem",this._dropdownNode,!0),n=[],i=this;return t.forEach(function(e){e.parentNode.parentNode===i._dropdownNode&&n.push(e)}),n.forEach(function(t){t._hasDropdownMouseover||(t.addEventListener("mouseover",function(n){t.dropdown?t.dropdown.open(n):(i._closeSelectedSubmenu(),e.stop(n)),i._selectItem(t)}),t._hasDropdownMouseover=!0)}),n},empty:function(){var t=e.$$array("li",this._dropdownNode),n=this;t.forEach(function(e){e.parentNode===n._dropdownNode&&e.parentNode.removeChild(e)})},_dropdownKeyDown:function(t){if(t.keyCode===e.KEY.UP||t.keyCode===e.KEY.DOWN||t.keyCode===e.KEY.RIGHT||t.keyCode===e.KEY.ENTER||t.keyCode===e.KEY.LEFT){var n=this.getItems();if(n.length&&n.length>0){if(this._selectedItem){var i=n.indexOf(this._selectedItem);0>i&&(i=n.indexOf(this._selectedItem.parentNode)),i>=0&&(t.keyCode===e.KEY.UP&&i>0?(i--,this._selectItem(n[i])):t.keyCode===e.KEY.DOWN&&i/im,l=/]*>\s*([\s\S]+)\s*<\/body>/im,d="undefined"!=typeof location&&location.href,h=d&&location.protocol&&location.protocol.replace(/\:/,""),c=d&&location.hostname,u=d&&(location.port||void 0),f={},p=e.config&&e.config()||{};return t={version:"2.0.12",strip:function(e){if(e){e=e.replace(a,"");var t=e.match(l);t&&(e=t[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:p.createXhr||function(){var e,t,n;if("undefined"!=typeof XMLHttpRequest)return new XMLHttpRequest;if("undefined"!=typeof ActiveXObject)for(t=0;3>t;t+=1){n=s[t];try{e=new ActiveXObject(n)}catch(i){}if(e){s=[n];break}}return e},parseName:function(e){var t,n,i,r=!1,o=e.indexOf("."),s=0===e.indexOf("./")||0===e.indexOf("../");return-1!==o&&(!s||o>1)?(t=e.substring(0,o),n=e.substring(o+1,e.length)):t=e,i=n||t,o=i.indexOf("!"),-1!==o&&(r="strip"===i.substring(o+1),i=i.substring(0,o),n?n=i:t=i),{moduleName:t,ext:n,strip:r} +},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,n,i,r){var o,s,a,l=t.xdRegExp.exec(e);return l?(o=l[2],s=l[3],s=s.split(":"),a=s[1],s=s[0],!(o&&o!==n||s&&s.toLowerCase()!==i.toLowerCase()||(a||s)&&a!==r)):!0},finishLoad:function(e,n,i,r){i=n?t.strip(i):i,p.isBuild&&(f[e]=i),r(i)},load:function(e,n,i,r){if(r&&r.isBuild&&!r.inlineText)return void i();p.isBuild=r&&r.isBuild;var o=t.parseName(e),s=o.moduleName+(o.ext?"."+o.ext:""),a=n.toUrl(s),l=p.useXhr||t.useXhr;return 0===a.indexOf("empty:")?void i():void(!d||l(a,h,c,u)?t.get(a,function(n){t.finishLoad(e,o.strip,n,i)},function(e){i.error&&i.error(e)}):n([s],function(e){t.finishLoad(o.moduleName+"."+o.ext,o.strip,e,i)}))},write:function(e,n,i){if(f.hasOwnProperty(n)){var r=t.jsEscape(f[n]);i.asModule(e+"!"+n,"define(function () { return '"+r+"';});\n")}},writeFile:function(e,n,i,r,o){var s=t.parseName(n),a=s.ext?"."+s.ext:"",l=s.moduleName+a,d=i.toUrl(s.moduleName+a)+".js";t.load(l,i,function(){var n=function(e){return r(d,e)};n.asModule=function(e,t){return r.asModule(e,d,t)},t.write(e,l,n,o)},o)}},"node"===p.env||!p.env&&"undefined"!=typeof process&&process.versions&&process.versions.node&&!process.versions["node-webkit"]?(n=require.nodeRequire("fs"),t.get=function(e,t,i){try{var r=n.readFileSync(e,"utf8");0===r.indexOf("")&&(r=r.substring(1)),t(r)}catch(o){i&&i(o)}}):"xhr"===p.env||!p.env&&t.createXhr()?t.get=function(e,n,i,r){var o,s=t.createXhr();if(s.open("GET",e,!0),r)for(o in r)r.hasOwnProperty(o)&&s.setRequestHeader(o.toLowerCase(),r[o]);p.onXhr&&p.onXhr(s,e),s.onreadystatechange=function(){var t,r;4===s.readyState&&(t=s.status||0,t>399&&600>t?(r=new Error(e+" HTTP status: "+t),r.xhr=s,i&&i(r)):n(s.responseText),p.onXhrComplete&&p.onXhrComplete(s,e))},s.send(null)}:"rhino"===p.env||!p.env&&"undefined"!=typeof Packages&&"undefined"!=typeof java?t.get=function(e,t){var n,i,r="utf-8",o=new java.io.File(e),s=java.lang.System.getProperty("line.separator"),a=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(o),r)),l="";try{for(n=new java.lang.StringBuffer,i=a.readLine(),i&&i.length()&&65279===i.charAt(0)&&(i=i.substring(1)),null!==i&&n.append(i);null!==(i=a.readLine());)n.append(s),n.append(i);l=String(n.toString())}finally{a.close()}t(l)}:("xpconnect"===p.env||!p.env&&"undefined"!=typeof Components&&Components.classes&&Components.interfaces)&&(i=Components.classes,r=Components.interfaces,Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),o="@mozilla.org/windows-registry-key;1"in i,t.get=function(e,t){var n,s,a,l={};o&&(e=e.replace(/\//g,"\\")),a=new FileUtils.File(e);try{n=i["@mozilla.org/network/file-input-stream;1"].createInstance(r.nsIFileInputStream),n.init(a,1,0,!1),s=i["@mozilla.org/intl/converter-input-stream;1"].createInstance(r.nsIConverterInputStream),s.init(n,"utf-8",n.available(),r.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),s.readString(n.available(),l),s.close(),n.close(),t(l.value)}catch(d){throw new Error((a&&a.path||"")+": "+d)}}),t}),define("text!orion/webui/dropdowntriggerbutton.html",[],function(){return''}),define("text!orion/webui/dropdowntriggerbuttonwitharrow.html",[],function(){return''}),define("text!orion/webui/checkedmenuitem.html",[],function(){return'
  • '}),define("orion/webui/tooltip",["orion/webui/littlelib"],function(e){function t(e){this._init(e)}return t.prototype={_init:function(t){if(this._node=e.node(t.node),!this._node)throw"no dom node for tooltip found";this._position=t.position||["right","above","below","left"],this._text=t.text,this._hideDelay=void 0===t.hideDelay?200:t.hideDelay,this._tailSize=t.tailSize||10,this._trigger=t.trigger||"mouseover",this._afterShowing=t.afterShowing,this._afterHiding=t.afterHiding;var n=this;if("click"===this._trigger)this._showDelay=0,this._node.addEventListener("click",this._clickHandler=function(t){t.target===n._node&&(n.show(),e.stop(t))},!1);else if("mouseover"===this._trigger){this._showDelay=void 0===t.showDelay?500:t.showDelay;var i=["mouseout","click"];this._node.addEventListener("mouseover",this._mouseoverHandler=function(t){e.contains(n._node,t.target)&&(n.show(),e.stop(t))},!1),this._leaveHandler=function(t){e.contains(n._node,t.target)&&n.hide()};for(var r=0;rf){if(!n)return!1;o=f-a.height-1}if(s+a.width>u){if(!n)return!1;s=u-a.width-1}if(h>s){if(!n)return!1;s=h+4}if(c>o){if(!n)return!1;o=c+4}return this._tail&&this._tail.previousPosition!==t&&(this._tip.removeChild(this._tail),this._tail=null),this._tail||(this._tail=document.createElement("span"),this._tail.classList.add("tooltipTailFrom"+t),"above"===t||"left"===t?this._tip.appendChild(this._tail):this._tip.insertBefore(this._tail,this._tipInner),this._tail.previousPosition=t),this._tip.style.top=o+"px",this._tip.style.left=s+"px",!0},contentContainer:function(){return this._makeTipNode(),this._tipInner},isShowing:function(){return this._tip&&this._tip.classList.contains("tooltipShowing")},show:function(){this.isShowing()||(this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),this._showDelay?this._timeout=window.setTimeout(this._showImmediately.bind(this),this._showDelay):this._showImmediately())},_showImmediately:function(){for(var e=!1,t=0;!e&&t"+i.name),i.callback.call(i,n)}.bind(this),!1),s.addEventListener("keydown",function(t){(t.keyCode===e.KEY.ENTER||t.keyCode===e.KEY.SPACE)&&(a.logEvent("command","invoke",this.id+">"+i.name),i.callback.call(i,n))}.bind(this),!1)}else o._generateMenuSeparator(t)}.bind(this))},getChoices:function(e,t,n){return this.choiceCallback?this.choiceCallback.call(t,e,n):null},makeChoiceCallback:function(e,t){return function(n){e.callback&&e.callback.call(e,t,n)}},hasImage:function(){return this.imageClass||this.image!==C}},y.prototype.constructor=y,{Command:y,CommandInvocation:_,createDropdownMenu:p,createCheckedMenuItem:g,createCommandItem:v,createCommandMenuItem:m,executeBinding:d,setKeyBindingProvider:l,localKeyBindings:x,getKeyBindings:c,processKey:u,NO_IMAGE:C,_testMethodProcessKey:h}}),define("orion/keyBinding",["orion/util"],function(e){function t(e,t,n,i,r,o){this.type=o||"keydown",this.keyCode="string"==typeof e&&"keydown"===this.type?e.toUpperCase().charCodeAt(0):e,this.mod1=void 0!==t&&null!==t?t:!1,this.mod2=void 0!==n&&null!==n?n:!1,this.mod3=void 0!==i&&null!==i?i:!1,this.mod4=void 0!==r&&null!==r?r:!1}function n(e){this.keys=e}return t.prototype={getKeys:function(){return[this]},match:function(t,n){if(void 0!==n){if(0!==n)return!1}else if(t instanceof Array){if(t.length>1)return!1;t=t[0]}if(t.type!==this.type)return!1;if(this.keyCode===t.keyCode||this.keyCode===String.fromCharCode(e.isOpera?t.which:void 0!==t.charCode?t.charCode:t.keyCode)){var i=e.isMac?t.metaKey:t.ctrlKey;return this.mod1!==i?!1:"keydown"===this.type&&this.mod2!==t.shiftKey?!1:this.mod3!==t.altKey?!1:e.isMac&&this.mod4!==t.ctrlKey?!1:!0}return!1},equals:function(e){return e?this.keyCode!==e.keyCode?!1:this.mod1!==e.mod1?!1:this.mod2!==e.mod2?!1:this.mod3!==e.mod3?!1:this.mod4!==e.mod4?!1:this.type!==e.type?!1:!0:!1}},n.prototype={getKeys:function(){return this.keys.slice(0)},match:function(e,t){var n=this.keys;if(void 0!==t)return t>n.length?!1:n[t].match(e)?t===n.length-1?!0:t+1:!1;if(e instanceof Array||(e=[e]),e.length>n.length)return!1;var i;for(i=0;i-1&&r[e];e--)o=r[e],i=t[o],(i===!0||1===i)&&(i=s(f+o+"/"+g)),n(_,i);a(_)})})}}})}(),define("orion/nls/messages",{root:!0}),define("orion/nls/root/messages",{Navigator:"Navigator",Sites:"Sites",Shell:"Shell",ShellLinkWorkspace:"Shell","Get Plugins":"Get Plug-ins",Global:"Global",Editor:"Editor",EditorRelatedLink:"Show Current Folder",EditorRelatedLinkParent:"Show Enclosing Folder",EditorLinkWorkspace:"Edit",EditorRelatedLinkProj:"Show Project",navigationBar:"Navigation Bar","Filter bindings":"Filter bindings",BindingPrompt:"Enter the new binding",NoBinding:"---",orionClientLabel:"Orion client repository","Orion Editor":"Orion Editor","Orion Image Viewer":"Orion Image Viewer","Orion Markdown Editor":"Orion Markdown Editor","Orion Markdown Viewer":"Orion Markdown Viewer","Orion JSON Editor":"Orion JSON Editor","View on Site":"View on Site","View this file or folder on a web site hosted by Orion":"View this file or folder on a web site hosted by Orion.",ShowAllKeyBindings:"Show a list of all the keybindings on this page","Show Keys":"Show Keys",HideShowBannerFooter:"Hide or show the page banner","Toggle banner and footer":"Toggle banner",ChooseFileOpenEditor:"Choose a file by name and open an editor on it",FindFile:"Open File...","System Configuration Details":"System Configuration Details","System Config Tooltip":"Go to the System Configuration Details page","Background Operations":"Background Operations","Background Operations Tooltip":"Go to the Background Operations page","Operation status is unknown":"Operation status is unknown","Unknown item":"Unknown item",NoSearchAvailableErr:"Can't search: no search service is available",Related:"Related",Options:"Options","LOG: ":"LOG: ",View:"View",SplashTitle:"Setting up Workspace",SplashTitleSettings:"Loading Settings",SplashTitleGit:"Loading Git Repositories",LoadingPage:"Loading Page",LoadingPlugins:"Loading Plugins",LoadingResources:"Loading Resources",plugin_started:'"${0}" started',"plugin_lazy activation":'"${0}" lazily activated',plugin_starting:'"${0}" starting',"no parent":"no parent","no tree model":"no tree model","no renderer":"no renderer","could not find table row ":"could not find table row ",Operations:"Operations","Operations running":"Operations running",SomeOpWarning:"Some operations finished with warning",SomeOpErr:"Some operations finished with error","no service registry":"no service registry",Tasks:"Tasks",Close:"Close","Expand all":"Expand all","Collapse all":"Collapse all",Search:"Search","Advanced search":"Advanced search",Submit:"Submit",More:"More","Recent searches":"Recent searches","Regular expression":"Regular expression","Search options":"Search options","Global search":"Global search","Orion Home":"Orion Home","Close notification":"Close notification",OpPressSpaceMsg:"Operations - Press spacebar to show current operations","Toggle side panel":"Toggle side panel","Open or close the side panel":"Open or close the side panel",Projects:"Projects","Toggle Sidebar":"Toggle Sidebar","Sample HTML5 Site":"Sample HTML5 Site","Generate an HTML5 'Hello World' website, including JavaScript, HTML, and CSS files.":"Generate an HTML5 'Hello World' website, including JavaScript, HTML, and CSS files.","Sample Orion Plugin":"Sample Orion Plug-in","Generate a sample plugin for integrating with Orion.":"Generate a sample plug-in for integrating with Orion.",Browser:"Web Browser",OutlineProgress:"Getting outline for ${0} from ${1}",outlineTimeout:"Outline service timed out. Try reloading the page and opening the outline again.",UnknownError:"An unknown error occurred.",Filter:"Filter (* = any string, ? = any character)",TemplateExplorerLabel:"Templates",OpenTemplateExplorer:"Open Template Explorer",Edit:"Edit",CentralNavTooltip:"Toggle Navigation Menu","Wrote: ${0}":"Wrote: ${0}",GenerateHTML:"Generate HTML file",GenerateHTMLTooltip:"Write an HTML file generated from the current Markdown editor content","alt text":"alt text",blockquote:"blockquote",code:"code","code (block)":"code (block)","code (span)":"code (span)",emphasis:"emphasis","fenced code (${0})":"fenced code (${0})","header (${0})":"header (${0})","horizontal rule":"horizontal rule",label:"label","link (auto)":"link (auto)","link (image)":"link (image)","link (inline)":"link (inline)","link label":"link label","link label (optional)":"link label (optional)","link (ref)":"link (ref)","list item (bullet)":"list item (bullet)","list item (numbered)":"list item (numbered)","strikethrough (${0})":"strikethrough (${0})",strong:"strong","table (${0})":"table (${0})",text:"text","title (optional)":"title (optional)",url:"url",TogglePaneOrientationTooltip:"Toggle split pane orientation",WarningDuplicateLinkId:"Duplicate link ID: ${0} (link IDs are not case-sensitive)",WarningHeaderTooDeep:"Header level cannot exceed 6",WarningLinkHasNoText:"Link has no text",WarningLinkHasNoURL:"Link has no URL",WarningOrderedListItem:"Ordered list item within unordered list",WarningOrderedListShouldStartAt1:"The first item in an ordered list should have index 1",WarningUndefinedLinkId:"Undefined link ID: ${0}",WarningUnorderedListItem:"Unordered list item within ordered list",PageTitleFormat:"${0} - ${1}",KeyCTRL:"Ctrl",KeySHIFT:"Shift",KeyALT:"Alt",KeyBKSPC:"Backspace",KeyDEL:"Del",KeyEND:"End",KeyENTER:"Enter",KeyESCAPE:"Esc",KeyHOME:"Home",KeyINSERT:"Ins",KeyPAGEDOWN:"Page Down",KeyPAGEUP:"Page Up",KeySPACE:"Space",KeyTAB:"Tab","a year":"a year",years:"${0} years","a month":"a month",months:"${0} months","a day":"a day",days:"${0} days","an hour":"an hour",hours:"${0} hours","a minute":"a minute",minutes:"${0} minutes",timeAgo:"${0} ago",justNow:"just now"}),define("orion/i18nUtil",[],function(){function e(e){var t=/\$\{([^\}]+)\}/g,n=arguments;return 2===n.length&&n[1]&&"object"==typeof n[1]?e.replace(t,function(e,t){return n[1][t]}):e.replace(t,function(e,t){return n[(t<<0)+1]})}return{formatMessage:e}}),define("orion/uiUtils",["i18n!orion/nls/messages","orion/webui/littlelib","orion/i18nUtil"],function(e,t,n){function i(n){var i="";if(v)n.mod4&&(i+="⌃"),n.mod3&&(i+="⌄"),n.mod2&&(i+="⇧"),n.mod1&&(i+="⌘");else{var r="+";n.mod1&&(i+=e.KeyCTRL+r),n.mod2&&(i+=e.KeySHIFT+r),n.mod3&&(i+=e.KeyALT+r)}if(n.alphaKey)return i+n.alphaKey;if("keypress"===n.type)return i+n.keyCode;var o=n.keyCode,s=m[o];if(s)return i+s;var a=t.keyName(o);if(a)return a=e["Key"+a]||a,i+a;var l;switch(n.keyCode){case 59:l=n.mod2?":":";";break;case 61:l=n.mod2?"+":"=";break;case 188:l=n.mod2?"<":",";break;case 190:l=n.mod2?">":".";break;case 191:l=n.mod2?"?":"/";break;case 192:l=n.mod2?"~":"`";break;case 219:l=n.mod2?"{":"[";break;case 220:l=n.mod2?"|":"\\";break;case 221:l=n.mod2?"}":"]";break;case 222:l=n.mod2?'"':"'"}return l?i+l:n.keyCode>=112&&n.keyCode<=123?i+"F"+(n.keyCode-111):i+String.fromCharCode(n.keyCode)}function r(e){for(var t="",n=e.getKeys(),r=0;r0)if(e.createTextRange){var r=e.createTextRange();r.collapse(!0),r.moveStart("character",0),r.moveEnd("character",i),r.select()}else e.setSelectionRange?e.setSelectionRange(0,i):void 0!==e.selectionStart&&(e.selectionStart=0,e.selectionEnd=i);else e.select()}},0)}function s(e){var t=-1!==window.navigator.platform.indexOf("Mac");return t&&e.metaKey||!t&&e.ctrlKey}function a(e,t){t&&s(t)?window.open(e):window.location=e}function l(e,n){var i=document.createElement("button");return i.className="orionButton commandButton commandMargins",i.addEventListener("click",function(e){n(),t.stop(e)},!1),e&&i.appendChild(document.createTextNode(e)),i}function d(){}function h(e,t){if(!e||!e.tagName)return!1;switch(e.tagName.toLowerCase()){case"button":case"fieldset":case"form":case"input":case"keygen":case"label":case"legend":case"meter":case"optgroup":case"output":case"progress":case"select":case"textarea":return!0}return e.parentNode===t?!1:e.parentNode&&h(e.parentNode,t)}function c(e,t,n){var i=n?0:1;return e.substring(0,e.length-encodeURIComponent(t).length-i)}function u(e){var t=new Date,n=new Date(e),i=t.getTime()-n.getTime(),r=Math.floor(i/1e3/60/60/24/365);i-=1e3*r*60*60*24*365;var o=Math.floor(i/1e3/60/60/24/30);i-=1e3*o*60*60*24*30;var s=Math.floor(i/1e3/60/60/24);i-=1e3*s*60*60*24;var a=Math.floor(i/1e3/60/60); +i-=1e3*a*60*60;var l=Math.floor(i/1e3/60);i-=1e3*l*60;var d=Math.floor(i/1e3);return{year:r,month:o,day:s,hour:a,minute:l,second:d}}function f(t,i,r){return t>0?1===t?e[i]:n.formatMessage(e[r],t):""}function p(e){var t=u(e),n=f(t.year,"a year","years"),i=f(t.month,"a month","months"),r=f(t.day,"a day","days"),o=f(t.hour,"an hour","hours"),s=f(t.minute,"a minute","minutes"),a="";return n?a=t.year>0?n:n+i:i?a=t.month>0?i:i+r:r?a=t.day>0?r:r+o:o?a=t.hour>0?o:o+s:s&&(a=s),a}function g(t){var i=p(t);return i?n.formatMessage(e.timeAgo,i):e.justNow}var v=-1!==navigator.platform.indexOf("Mac"),m=Object.create(null);return m[t.KEY.DOWN]="↓",m[t.KEY.UP]="↑",m[t.KEY.RIGHT]="→",m[t.KEY.LEFT]="←",v&&(m[t.KEY.BKSPC]="⌫",m[t.KEY.DEL]="⌦",m[t.KEY.END]="⇲",m[t.KEY.ENTER]="āŽ",m[t.KEY.ESCAPE]="āŽ‹",m[t.KEY.HOME]="⇱",m[t.KEY.PAGEDOWN]="ā‡Ÿ",m[t.KEY.PAGEUP]="ā‡ž",m[t.KEY.SPACE]="␣",m[t.KEY.TAB]="⇄"),{getUserKeyString:r,getUserText:o,openInNewWindow:s,followLink:a,createButton:l,createDropdownButton:d,isFormElement:h,path2FolderName:c,timeElapsed:p,displayableTimeElapsed:g}}),define("text!orion/webui/submenutriggerbutton.html",[],function(){return''}),define("orion/commandRegistry",["orion/commands","orion/keyBinding","orion/explorers/navigationUtils","orion/PageUtil","orion/uiUtils","orion/webui/littlelib","orion/webui/dropdown","orion/webui/tooltip","text!orion/webui/submenutriggerbutton.html","orion/metrics","orion/Deferred","orion/EventTarget"],function(e,t,n,i,r,o,s,a,l,d,h,c){function u(e){this._commandList={},this._contributionsByScopeId={},this._activeBindings={},this._urlBindings={},this._pendingBindings={},this._parameterCollector=null,this._init(e||{})}function f(e,t){this.token=e,this.parameterName=t}function p(e,t,n){this.event=e,this.handler=t,this.capture=n||!1}function g(e,t,n,i,r,o,s){this.name=e,this.type=t,this.label=n,this.value=i,this.lines=r||1,this.validator=s,this.eventListeners=Array.isArray(o)?o:o?[o]:[]}function v(e,t,n){this._storeParameters(e),this._hasOptionalParameters=t&&t.hasOptionalParameters,this._options=t,this.optionsRequested=!1,this.getParameters=n,this.clientCollect=t&&t.clientCollect,this.getParameterElement=t&&t.getParameterElement,this.getSubmitName=t&&t.getSubmitName,this.getCancelName=t&&t.getCancelName,this.message=t&&t.message}return u.prototype={_init:function(t){this._selectionService=t.selection;var n=this;e.setKeyBindingProvider(function(){return n._activeBindings}),c.attach(u.prototype),this.addEventListener("bindingChanged",function(e){this._handleBindingChanges(e)}.bind(this)),this.addEventListener=function(e,t){this._bindingOverrides&&"bindingChanged"===e&&this._updateBindingOverrides(t),u.prototype.addEventListener.call(this,e,t)}},processURL:function(e){for(var t in this._urlBindings)if(this._urlBindings[t]&&this._urlBindings[t].urlBinding&&this._urlBindings[t].command){var n=this._urlBindings[t].urlBinding.match(e);if(n){var i=this._urlBindings[t],r=i.command,o=i.invocation;if(o&&o.parameters&&r.callback){o.parameters.setValue(n.parameterName,n.parameterValue);var s=this;return void window.setTimeout(function(){s._invoke(o)},0)}}}},findCommand:function(e){return this._commandList[e]},runCommand:function(t,n,i,r,o,s){var a=this;if(n){var l=this._commandList[t],d=l&&(l.visibleWhen?l.visibleWhen(n):!0);if(d&&l.callback){var h=new e.CommandInvocation(i,n,o,l,a);return h.domParent=s,a._invoke(h,r)}}else{var c=this._urlBindings[t];if(c&&c.command&&c.command.callback)return a._invoke(c.invocation,r)}},getSelectionService:function(){return this._selectionService},setParameterCollector:function(e){this._parameterCollector=e},openParameterCollector:function(e,t,n){this._parameterCollector&&(this._parameterCollector.close(),this._parameterCollector.open(e,t,n))},confirm:function(e,t,n,i,r,o){var s=!1;if(!this._parameterCollector||r)s=window.confirm(t),o(s);else{var l=this,d=function(){o(s)},h=function(){l._parameterCollector.close()},c=function(e,r){var o=document.createElement("span");o.classList.add("parameterPrompt"),o.textContent=t,e.appendChild(o);var a=document.createElement("button");a.addEventListener("click",function(){s=!0,d(),h()},!1),r.appendChild(a),a.appendChild(document.createTextNode(n)),a.className="dismissButton";var l=document.createElement("button");return l.addEventListener("click",function(){s=!1,h()},!1),r.appendChild(l),l.appendChild(document.createTextNode(i)),l.className="dismissButton",a};this._parameterCollector.close();var u=this._parameterCollector.open(e,c,function(){});if(!u){var f=new a.Tooltip({node:e,afterHiding:function(){this.destroy()},trigger:"click",position:["below","right","above","left"]}),p=f.contentContainer();p.classList.add("parameterPopup");var g=window.document.activeElement;h=function(){g&&g.focus(),f.destroy()};var v=document.createElement("div");v.classList.add("parameterMessage"),p.appendChild(v);var m=document.createElement("div");p.appendChild(m),m.classList.add("layoutRight"),m.classList.add("parametersDismiss");var _=c(v,m);f.show(),_&&window.setTimeout(function(){_.focus(),_.select&&_.select()},0)}}},closeParameterCollector:function(){this._parameterCollector&&this._parameterCollector.close()},collectsParameters:function(){return this._parameterCollector},_invoke:function(e,t){return this._collectAndInvoke(e.makeCopy(t),!1)},_collectAndInvoke:function(e,t,n){if(e){if(!(this._parameterCollector&&e.parameters&&e.parameters.hasParameters()&&(t||e.parameters.shouldCollectParameters())))return d.logEvent("command","invoke",e.command.id),e.command.callback.call(e.handler||window,e);var i=!1;if(e.parameters.updateParameters(e),e.parameters.shouldCollectParameters()&&(i=this._parameterCollector.collectParameters(e,n),!i)){var r=new a.Tooltip({node:e.domNode||e.domParent,afterHiding:function(){this.destroy()},trigger:"click",position:["below","right","above","left"]}),o=r.contentContainer();o.classList.add("parameterPopup");var s=window.document.activeElement,l=this._parameterCollector.getFillFunction(e,function(){s&&s.focus(),r.destroy()},n)(o);r.show(),l&&window.setTimeout(function(){l.focus(),l.select&&l.select()},0),i=!0}if(!i)return d.logEvent("command","invoke",e.command.id),e.command.callback.call(e.handler||window,e)}else window.console.log("Client attempted to invoke command without an available (rendered) command invocation")},collectParameters:function(e,t){this._collectAndInvoke(e,!0,t)},showKeyBindings:function(t){function n(t){return function(){e.executeBinding(t)}}var i,r={},o=[];for(var s in this._activeBindings)i=this._activeBindings[s],i&&i.keyBinding&&i.command&&(i.command.name||i.command.tooltip)&&o.push(i);o.sort(function(e,t){var n=e.command.name||e.command.tooltip,i=t.command.name||t.command.tooltip;return n.localeCompare(i)});for(var a=0;a0&&(t.createHeader(l),r[l].forEach(function(e){t.createItem(e.keyBinding,e.command.name||e.command.tooltip,e.command.id,n(e))}))},_handleBindingChanges:function(t){var n=this.findCommand(t.id);if(n){var i=this._activeBindings[t.id];i?i.keyBinding=t.newBinding:this._addBinding(n,"key",t.newBinding)}if(this._renderedCommands&&this._renderedCommands[t.id])for(var o=this._renderedCommands[t.id],s=Object.keys(o),a=0;a=0;t--){var n=this._bindingOverrides[t];if(n.id===e)return n.newBinding}return null},addCommand:function(e){this._commandList[e.id]=e;var t=this._pendingBindings[e.id];if(t){var n=this;t.forEach(function(t){n._addBinding(e,t.type,t.binding,t.bindingOnly)}),delete this._pendingBindings[e.id]}},addCommandGroup:function(e,t,n,i,r,o,s,a,l,d,h){this._contributionsByScopeId[e]||(this._contributionsByScopeId[e]={});var c=this._contributionsByScopeId[e];r&&(c=this._createEntryForPath(c,r)),c[t]?(i&&(c[t].title=i),n&&(c[t].position=n),s&&(c[t].imageClass=s),a&&(c[t].tooltip=a),l&&(c[t].selectionClass=l),h&&(c[t].extraClass=h),d===!0?c[t].pretendDefaultActionId=!0:c[t].defaultActionId=d,c[t].emptyGroupMessage=o):(c[t]={title:i,position:n,emptyGroupMessage:o,imageClass:s,tooltip:a,selectionClass:l,defaultActionId:d===!0?null:d,pretendDefaultActionId:d===!0,children:{},extraClasses:h},c.sortedContributions=null)},_createEntryForPath:function(e,t){if(t){var n=t.split("/");n.forEach(function(t){t.length>1&&(e[t]||(e[t]={position:0,children:{}},e.sortedContributions=null),e=e[t].children)})}return e},registerSelectionService:function(e,t){this._contributionsByScopeId[e]||(this._contributionsByScopeId[e]={}),this._contributionsByScopeId[e].localSelectionService=t},setServiceRegistry:function(e){if(this._serviceRegistry=e,this._prefService=e.getService("orion.core.preference"),this._prefService){this._getBindingOverrides().then(function(e){this._bindingOverrides=e,this._updateBindingOverrides()}.bind(this));var t;this._prefService.listenForChangedSettings("/KeyBindings",function(e){e.key===t&&this._getBindingOverrides().then(function(e){if(e.length>this._bindingOverrides.length)for(var t=this._bindingOverrides.length;t1){if(!i[e])return;i=i[e].children}})}delete i[t],i.sortedContributions=null}},_addBinding:function(e,t,n,i){if(!e.id)throw new Error("No command id: "+e);"key"===t?this._activeBindings[e.id]={command:e,keyBinding:n,bindingOnly:i}:"url"===t&&(this._urlBindings[e.id]={command:e,urlBinding:n,bindingOnly:i})},_addPendingBinding:function(e,t,n,i){this._pendingBindings[e]=this._pendingBindings[e]||[],this._pendingBindings[e].push({type:t,binding:n,bindingOnly:i})},_checkForTrailingSeparator:function(e,t,n){var i;if(("tool"===t||"button"===t)&&(i=e.childNodes.length>0?e.childNodes[e.childNodes.length-1]:null,i&&i.classList.contains("commandSeparator")))return n?(e.removeChild(i),!1):!0;if("menu"===t){var r=o.$$array("li > *",e);if(r.length>0&&r[r.length-1].classList.contains("dropdownSeparator"))return i=r[r.length-1],n?(i.parentNode.parentNode.removeChild(i.parentNode),!1):!0}return!1},renderCommands:function(e,t,n,i,r,s,a){if("string"!=typeof e)throw"a scope id for rendering must be specified";if(t=o.node(t),!t)throw"no parent";var l=this._contributionsByScopeId[e];if(!n&&l){var d=l.localSelectionService||this._selectionService,h=this;return void(d&&d.getSelections(function(n){h.renderCommands(e,t,n,i,r,s)}))}l&&(this._render(e,l,t,n,i,r||"button",s,a),this._checkForTrailingSeparator(t,r,!0))},destroy:function(e){if(e=o.node(e),!e)throw"no parent";for(;e.hasChildNodes();){var t=e.firstChild;t.commandTooltip&&t.commandTooltip.destroy(),t.emptyGroupTooltip&&t.emptyGroupTooltip.destroy(),this.destroy(t),e.removeChild(t)}},_render:function(t,i,o,s,l,d,h,c){var u=i.sortedContributions;if(!u){u=[];var f=!1;for(var p in i)if(Object.prototype.hasOwnProperty.call(i,p)){var g=i[p];g&&"number"==typeof g.position&&(g.id=p,u.push(g),f=!0)}f&&(u.sort(function(e,t){return e.position-t.position}),i.sortedContributions=u)}var v=0,m=this;u.forEach(function(i){function u(e){e&&e.parentNode&&e.parentNode.removeChild(e)}var f,p;if(i.imageClass||(i.imageClass=null),i.children&&Object.getOwnPropertyNames(i.children).length>0){var g,_=i.children;if("tool"===d||"button"===d)if(i.title){var y;if(i.defaultActionId){i.pretendDefaultActionId=i.defaultActionId===!0;var C=m._commandList[i.defaultActionId];C&&(C.visibleWhen?C.visibleWhen(s):!0)?(y=new e.CommandInvocation(l,s,h,C,m),y.domParent=o):i.pretendDefaultActionId=!0}g=m._createDropdownMenu(o,i.title,null,null,i.imageClass,i.tooltip,i.selectionClass,null,y,i.pretendDefaultActionId,i.extraClasses),c&&n.generateNavGrid(c,g.menuButton),g&&(m._render(t,i.children,g.menu,s,l,"menu",h,c),m._checkForTrailingSeparator(g.menu,"menu",!0),0===g.menu.childNodes.length?i.emptyGroupMessage?g.menuButton.emptyGroupTooltip||(g.menuButton.emptyGroupTooltip=new a.Tooltip({node:g.menuButton,text:i.emptyGroupMessage,trigger:"click",position:["below","right","above","left"]})):(c&&n.removeNavGrid(c,g.menuButton),u(g.menu),u(g.menuButton),u(g.destroyButton)):g.menuButton.style.visibility="visible")}else{var w;if(o.childNodes.length>0&&!m._checkForTrailingSeparator(o,d)&&(w=m.generateSeparatorImage(o)),m._render(t,_,o,s,l,d,h,c),o.childNodes.length>0){var x=o.childNodes[o.childNodes.length-1];x!==w&&(w=m.generateSeparatorImage(o))}}else if(i.title){var S=m._createDropdownMenu(o,i.title,!0,null,null,i.imageClass);S&&(m._render(t,_,S.menu,s,l,"menu",h,c),m._checkForTrailingSeparator(S.menu,"menu",!0),0===S.menu.childNodes.length&&S.destroyButton&&o.removeChild(S.destroyButton))}else o.childNodes.length>0&&m._generateMenuSeparator(o),m._render(t,_,o,s,l,d,h,c),o.childNodes.length>0&&m._generateMenuSeparator(o)}else{var b=m._commandList[i.id],T=b?!0:!1,E=null,L=null;if(b){p=new e.CommandInvocation(i.handler||l,s,h,b,m),p.domParent=o;var k=!1;try{k=T&&(b.visibleWhen?b.visibleWhen(s,p):!0)}catch(A){throw console.log(A),A}m._activeBindings[b.id]&&m._activeBindings[b.id].keyBinding&&(E=m._activeBindings[b.id],E.invocation=k?p:null,E.bindingOnly&&(T=!1)),m._urlBindings[b.id]&&m._urlBindings[b.id].urlBinding&&(L=m._urlBindings[b.id],L.invocation=k?p:null,L.bindingOnly&&(T=!1)),T=T&&k}if(T)if(b.choiceCallback){var M,D;"tool"===d||"button"===d?(M=o,D=!1,"ul"===o.nodeName.toLowerCase()&&(M=document.createElement("li"),o.appendChild(M))):(M=o,D=!0);var O=function(e){b.populateChoicesMenu(e,s,l,h,m)};m._createDropdownMenu(M,b.name,D,O.bind(b),b.imageClass,b.tooltip||b.title,b.selectionClass,b.positioningNode)}else{p.handler=p.handler||this,p.domParent=o;var N,I=function(){m._invoke(p)};if("menu"===d){var R=null;E&&E.keyBinding&&(R=r.getUserKeyString(E.keyBinding)),N=e.createCommandMenuItem(o,b,p,null,I,R),p.onClick=I,m._registerRenderedCommand(b.id,t,p)}else if("quickfix"===d){f=d+b.id+v;var B=document.createElement("div");o.appendChild(B),N=e.createCommandItem(B,b,p,f,null,"button"===d,I)}else f=d+b.id+v,N=e.createCommandItem(o,b,p,f,null,"tool"===d,I);n.generateNavGrid(c,N),p.domNode=N,v++}}})},_createDropdownMenu:function(t,n,i,r,d,h,c,u,f,p,g){if(t=o.node(t),!t||!o.contains(document.body,t))return null;var v,m,_,y,C=t;if(i){var w=document.createRange();w.selectNode(t);var x=w.createContextualFragment(l);o.processTextNodes(x,{ButtonText:n}),t.appendChild(x),y=t.lastChild,m=y.lastChild,v=m.previousSibling,v.dropdown=new s.Dropdown({dropdown:m,populate:r,parentDropdown:t.dropdown}),m.dropdown=v.dropdown}else{"ul"===t.nodeName.toLowerCase()&&(C=document.createElement("li"),t.appendChild(C),y=C);var S=null;d&&(S="dropdownButtonWithIcon",h=h||n),h=d?h||n:h;var b=e.createDropdownMenu(C,n,r,S,d,!1,c,u,f||p,g);if(_=b.dropdownArrow,v=b.menuButton,_){f&&(f.domNode=b.menuButton);var T=this;v.onclick=function(e){var t=o.bounds(_);(e.clientX>=t.left||p===!0)&&b.dropdown?b.dropdown.toggle(e):T._invoke(f)},b.dropdown&&(v.onkeydown=function(e){o.KEY.DOWN===e.keyCode&&(b.dropdown.toggle(e),o.stop(e))})}m=b.menu;var E,L=f&&f.command&&(f.command.tooltip||f.command.name);E=L?f.command.tooltip||f.command.name:h,E&&(v.commandTooltip=new a.Tooltip({node:v,text:E,position:["above","below","right","left"]}))}return{menuButton:v,menu:m,dropdown:v.dropdown,destroyButton:y,dropdownArrow:_}},_generateMenuSeparator:function(e){if(!this._checkForTrailingSeparator(e,"menu")){var t=document.createElement("li");t.classList.add("dropdownSeparator");var n=document.createElement("span");n.classList.add("dropdownSeparator"),t.appendChild(n),e.appendChild(t)}},generateSeparatorImage:function(e){var t;return"ul"===e.nodeName.toLowerCase()?(t=document.createElement("li"),e.appendChild(t)):(t=document.createElement("span"),e.appendChild(t)),t.classList.add("core-sprite-sep"),t.classList.add("imageSprite"),t.classList.add("commandSeparator"),t}},u.prototype.constructor=u,f.prototype={match:function(e){var t=i.matchResourceParameters(e);return"undefined"!=typeof t[this.token]?(this.parameterValue=t[this.token],this):null}},f.prototype.constructor=f,p.prototype.constructor=p,g.prototype={optionsRequested:function(){return this.optionsRequested}},g.prototype.constructor=g,v.prototype={_storeParameters:function(e){if(this.parameterTable=null,e){var t=this.parameterTable={};e.forEach(function(e){t[e.name]=e})}},updateParameters:function(e){"function"==typeof this.getParameters&&this._storeParameters(this.getParameters(e))},hasParameters:function(){return null!==this.parameterTable},shouldCollectParameters:function(){return!this.clientCollect&&this.hasParameters()},parameterNamed:function(e){return this.parameterTable[e]},valueFor:function(e){var t=this.parameterTable[e];return t?t.value:null},setValue:function(e,t){var n=this.parameterTable[e];n&&(n.value=t)},forEach:function(e){for(var t in this.parameterTable)this.parameterTable[t].type&&this.parameterTable[t].name&&e(this.parameterTable[t])},validate:function(e,t){var n=this.parameterTable[e];return n&&n.validator?n.validator(t):!0},makeCopy:function(){var e=[];this.forEach(function(t){var n=new g(t.name,t.type,t.label,t.value,t.lines,t.eventListeners,t.validator);e.push(n)});var t=new v(e,this._options,this.getParameters);return t.clientCollect=this.clientCollect,t.message=this.message,t},hasOptionalParameters:function(){return this._hasOptionalParameters}},v.prototype.constructor=v,{CommandRegistry:u,URLBinding:f,ParametersDescription:v,CommandParameter:g,CommandEventListener:p}}),define("orion/edit/nls/messages",{root:!0}),define("orion/edit/nls/root/messages",{Editor:"Editor",switchEditor:"Switch Editor",Fetching:"Fetching: ${0}",confirmUnsavedChanges:"There are unsaved changes. Do you still want to navigate away?",searchFilesCommand:"Quick Search...",searchFiles:"Quick Search in ${0}",searchTerm:"Enter search term:",unsavedChanges:"There are unsaved changes.",unsavedAutoSaveChanges:"Please stay on the page until Auto Save is complete.",Save:"Save",Saved:"Saved",Blame:"Blame",BlameTooltip:"Show blame annotations",Diff:"Diff",DiffTooltip:"Show diff annotations",saveOutOfSync:"Resource is out of sync with the server. Do you want to save it anyway?",loadOutOfSync:"Resource is out of sync with the server. Do you want to load it anyway? This will overwrite your local changes.",ReadingMetadata:"Reading metadata of ${0}",ReadingMetadataError:"Cannot get metadata of ${0}",Reading:"Reading ${0}",readonly:"Read Only.",saveFile:"Save this file",toggleZoomRuler:"Toggle Zoom Ruler",gotoLine:"Go to Line...",gotoLineTooltip:"Go to specified line number",gotoLinePrompt:"Go to line:",Undo:"Undo",Redo:"Redo",Cut:"Cut",Copy:"Copy",Paste:"Paste",Find:"Find...",noResponse:"No response from server. Check your internet connection and try again.",savingFile:"Saving file ${0}",running:"Running ${0}","Saving...":"Saving...",View:"View",SplitSinglePage:"Single Page",SplitVertical:"Split Vertical",SplitHorizontal:"Split Horizontal",SplitPipInPip:"Picture in Picture",SplitModeTooltip:"Change split editor mode",SidePanel:"Side Panel",SidePanelTooltip:"Choose what to show in the side panel.",Slideout:"Slideout",Actions:"Actions",Navigator:"Navigator",FolderNavigator:"Folder Navigator",Project:"Project",New:"New",File:"File",Edit:"Edit",Tools:"Tools",Add:"Add",noActions:"There are no actions for the current selection.",NoFile:"Use the ${0} to create new files and folders. Click a file to start coding.",LocalEditorSettings:"Local Editor Settings",NoProject:"${0} is not a project. To convert it to a project use ${1}.",NoProjects:"There are no projects in your workspace. Use the ${0} menu to create projects.",Disconnected:"${0} (disconnected)",ChooseFS:"Choose Filesystem",ChooseFSTooltip:"Choose the filesystem you want to view.",FSTitle:"${0} (${1})",Deploy:"Deploy","Deploy As":"Deploy As",Import:"Import",Export:"Export",OpenWith:"Open With",OpenRelated:"Open Related",Dependency:"Dependency",UnnamedCommand:"Unnamed",searchInFolder:"Folder Search...","Global Search":"Global Search...",ClickEditLabel:"Click to edit",ProjectInfo:"Project Information",Name:"Name",Description:"Description",Site:"Site",projectsSectionTitle:"Projects",listingProjects:"Listing projects...",gettingWorkspaceInfo:"Getting workspace information...",showProblems:"Show Problems...",showTooltip:"Show Tooltip",showTooltipTooltip:"Shows the tooltip immediately based on the caret position",emptyDeploymentInfoMessage:"Use the Launch Configurations dropdown to deploy this project"}),define("orion/explorers/navigatorRenderer",[],function(){return{getClickedItem:function(){return null}}}),define("orion/objects",[],function(){function e(e){for(var t=Object.prototype.hasOwnProperty,n=1,i=arguments.length;i>n;n++){var r=arguments[n];for(var o in r)t.call(r,o)&&(e[o]=r[o])}return e}return{clone:function(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var n=Object.create(Object.getPrototypeOf(t));return e(n,t),n},mixin:e,toArray:function(e){return Array.isArray(e)?e:[e]}}}),define("orion/inputManager",["i18n!orion/edit/nls/messages","orion/explorers/navigatorRenderer","orion/i18nUtil","orion/Deferred","orion/EventTarget","orion/objects","orion/PageUtil","orion/metrics"],function(e,t,n,i,r,o,s,a){function l(e){this._document=e.document||document,this._timeout=e.timeout;for(var t=["mousedown","keypress","keydown","keyup"],n=function(){this._resetTimer()}.bind(this),i=0;i0){var t=e.substring(0,e.lastIndexOf("/",e.length-("/"===e[e.length-1]?2:1))+1);return this._lastMetadata.Parents[0].Location===t}return!1},load:function(){var t=this.getInput();if(t){var r=this.fileClient,s=this._parsedLocation.resource,a=this.progressService,l=function(e,t,i){return a?a.progress(e,n.formatMessage(t,i)):e},d=this.getEditor();if(this._fileMetadata)this._fileMetadata._saving||this._fileMetadata.Directory||this.getReadOnly()||l(r.read(s,!0),e.ReadingMetadata,t).then(function(n){this._fileMetadata&&!this._fileMetadata._saving&&this._fileMetadata.Location===n.Location&&this._fileMetadata.ETag!==n.ETag&&(this._fileMetadata=o.mixin(this._fileMetadata,n),(!d.isDirty()||window.confirm(e.loadOutOfSync))&&l(r.read(s),e.Reading,t).then(function(e){d.setInput(t,null,e),this._clearUnsavedChanges()}.bind(this)))}.bind(this));else{var f=window.setTimeout(function(){f=null,this.reportStatus(n.formatMessage(e.Fetching,t))}.bind(this),800),p=function(){this.reportStatus(""),f&&window.clearTimeout(f)}.bind(this),g=function(e){p();var t=null;this.serviceRegistry?t=this.serviceRegistry.getService("orion.page.message"):this.statusService&&(t=this.statusService),h(t,e),this._setNoInput()}.bind(this);this._acceptPatch=null;var v=s;if(!this._isSameParent(v)){var m=new URL(v);m.query.set("tree",localStorage.useCompressedTree?"compressed":"decorated"),v=m.href}l(this._read(v,!0),e.ReadingMetadata,s).then(function(o){if(o)if(o.Directory)i.when(o.Children||l(r.fetchChildren(o.ChildrenLocation),e.Reading,t),function(e){p(),o.Children=e,this._setInputContents(this._parsedLocation,t,e,o)}.bind(this),g);else{var a=this._charset,d=this._isText(o);u(a)&&d?l(r.read(s,!1,!0),e.Reading,t).then(function(e){p(),"string"!=typeof e&&(this._acceptPatch=e.acceptPatch,e=e.result),this._setInputContents(this._parsedLocation,t,e,o)}.bind(this),g):l(r._getService(s).readBlob(s),e.Reading,t).then(function(e){return p(),d?void c(e,a,function(e){this._setInputContents(this._parsedLocation,t,e,o)}.bind(this),g):void this._setInputContents(this._parsedLocation,t,e,o)}.bind(this),g)}else g({responseText:n.formatMessage(e.ReadingMetadataError,s)})}.bind(this),g)}}},processParameters:function(e){var t=this.getEditor();return t&&t.processParameters?t.processParameters(e):!1},getAutoLoadEnabled:function(){return this._autoLoadEnabled},getAutoSaveEnabled:function(){return this._autoSaveEnabled},getEditor:function(){return this.editor},getEncodingCharset:function(){return this._charset||p},getInput:function(){return this._input},getLocation:function(){return this._location},getTitle:function(){return this._title},getFileMetadata:function(){return this._fileMetadata},isSaveEnabled:function(){return!this.getReadOnly()},getReadOnly:function(){var e=this._fileMetadata;return this._readonly||!e||e.Attributes&&e.Attributes.ReadOnly},getContentType:function(){return this._contentType},onFocus:function(){return this._autoSaveEnabled&&this._errorSaving?void this.save():void(this._autoLoadEnabled&&this._fileMetadata&&this.load())},reportStatus:function(e){this.statusReporter?this.statusReporter(e):this.editor&&this.editor.reportStatus(e)},save:function(t){function r(e){var t=l._savingDeferred;return t.resolve(e),l._savingDeferred=null,l._saving=!1,t}function o(n){return f===d.getInput()&&(l.ETag=n.ETag,c.setInput(f,null,p,!0)),d.reportStatus(""),u&&b&&b.setProgressResult({Message:e.Saved,Severity:"Normal"}),d.postSave&&d.postSave(t),r(n)}function s(e){d.reportStatus("");var t=h(b,e);return a.logEvent("status","exception",(d._autoSaveActive?"Auto-save: ":"Save: ")+t.Message),d._errorSaving=!0,r()}var l=this.getFileMetadata();if(!l)return(new i).reject();if(l._saving)return l._savingDeferred;var d=this;l._savingDeferred=new i,l._saving=!0;var c=this.getEditor();if(!c||!c.isDirty()||this.getReadOnly())return r();var u=this._errorSaving,f=this.getInput();this.reportStatus(e["Saving..."]),this._saveEventLogged||(this._logMetrics("save"),this._saveEventLogged=!0),this.dispatchEvent({type:"Saving",inputManager:this}),c.markClean();var p=c.getText(),g=p;if(this._getSaveDiffsEnabled()&&!this._errorSaving){var v=this._getUnsavedChanges();if(v){for(var m=0,_=0;_m&&(g={diff:v})}}this._clearUnsavedChanges(),this._errorSaving=!1;var y=l.ETag,C={ETag:y},w=this._parsedLocation.resource,x=this.fileClient.write(w,g,C),S=this.progressService,b=null;return this.serviceRegistry&&(b=this.serviceRegistry.getService("orion.page.message")),S&&(x=S.progress(x,n.formatMessage(e.savingFile,f))),x.then(o,function(t){if(412===t.status){var i=window.confirm(e.saveOutOfSync);if(!i)return r();var a=d.fileClient.write(w,p);S&&(a=S.progress(a,n.formatMessage(e.savingFile,f))),a.then(o,s)}else s(t)}),l._savingDeferred},setAutoLoadEnabled:function(e){this._autoLoadEnabled=e},setAutoSaveTimeout:function(e){if(this._autoSaveEnabled=-1!==e,this._autoSaveActive=!1,this._idle)this._idle.setTimeout(e);else{var t={document:document,timeout:e};this._idle=new l(t),this._idle.addEventListener("Idle",function(){this._errorSaving||(this._autoSaveActive=!0,this.save().then(function(){this._autoSaveActive=!1}))}.bind(this))}},setContentType:function(e){this._contentType=e},setEncodingCharset:function(e){this._charset=e},setInput:function(t){function n(){c.session&&c.session.save()}if(!this._ignoreInput&&(t||(t=s.hash()),"string"==typeof t)){var i=this.getEditor();t&&"#"!==t[0]&&(t="#"+t);var r=s.matchResourceParameters(t),o=this._parsedLocation||{};if(i&&i.isDirty()){var a=this._location,l=o.resource,d=r.resource;if(l!==d)if(this._autoSaveEnabled)this.save();else if(!window.confirm(e.confirmUnsavedChanges))return void(window.location.hash=a) +}var h=i&&o.editor!==r.editor;this._location=t,this._parsedLocation=r,this._ignoreInput=!0,this.selection&&this.selection.setSelections(t),this._ignoreInput=!1;var c={type:"InputChanging",input:r};this.dispatchEvent(c);var u=r.resource;if(c.metadata){n(),this.reportStatus(""),this._input=u;var f=c.metadata;return void this._setInputContents(r,u,null,f)}u?u===this._input?h?(this.reportStatus(""),this._setInputContents(r,u,null,this._fileMetadata,this._isText(this._fileMetadata))):this.processParameters(r)||c.session&&c.session.apply(!0):(n(),this._input=u,this._readonly=!1,this._lastMetadata=this._fileMetadata,this._fileMetadata=null,this.load()):(n(),this._setNoInput(!0))}},setTitle:function(e){var t=e.lastIndexOf("/"),n=e;-1!==t&&(n=n.substring(t+1)),this._title=n},setSaveDiffsEnabled:function(e){this._saveDiffsEnabled=e;var t=this.editor;t&&!t.isDirty()&&this._clearUnsavedChanges()},_getSaveDiffsEnabled:function(){return this._saveDiffsEnabled&&this._acceptPatch&&-1!==this._acceptPatch.indexOf("application/json-patch")},_logMetrics:function(e){var t="(none)",n=this.getContentType(),i=this.getFileMetadata();if(n)t=n.id;else if(i){var r=i.Name,o=r.lastIndexOf(".");if(o>=0)t="unregistered: "+r.substring(o);else switch(r){case"AUTHORS":case"config":case"LICENSE":case"make":case"Makefile":t="unregistered: "+r}}a.logEvent("editor",e,t)},_unknownContentTypeAsText:function(){return!0},_isText:function(e){var t=this.contentTypeRegistry.getFileContentType(e);if(!t)return this._unknownContentTypeAsText();var n=this.contentTypeRegistry.getContentType("text/plain");return this.contentTypeRegistry.isExtensionOf(t,n)},_setNoInput:function(e){return e?void this.fileClient.loadWorkspace("").then(function(e){this._input=e.ChildrenLocation,this._setInputContents(e.ChildrenLocation,null,e,e)}.bind(this)):(this._input=this._title=this._fileMetadata=null,this.setContentType(null),void this.dispatchEvent({type:"InputChanged",input:null}))},_setInputContents:function(e,t,n,i,r){var o,s=!1;i?(this._fileMetadata=i,this.setTitle(i.Location||String(i)),this.setContentType(this.contentTypeRegistry.getFileContentType(i)),o=i.Name,s=i.Directory):(this._fileMetadata=null,this.setTitle(t),this.setContentType(this.contentTypeRegistry.getFilenameContentType(this.getTitle())),o=this.getTitle());var l=this.getEditor();this._focusListener&&(l&&l.getTextView&&l.getTextView()&&l.getTextView().removeEventListener("Focus",this._focusListener),this._focusListener=null);var d={type:"InputChanged",input:e,name:o,title:t,contentType:this.getContentType(),metadata:i,location:window.location,contents:n};if(this._logMetrics("open"),this.dispatchEvent(d),this.editor=l=d.editor,!s){if(r||l.setInput(t,null,n),l&&l.getTextView&&l.getTextView()){var h=l.getTextView();h.addEventListener("Focus",this._focusListener=this.onFocus.bind(this))}this._clearUnsavedChanges(),this.processParameters(e)||d.session&&d.session.apply()}this._saveEventLogged=!1,a.logPageLoadTiming("interactive",window.location.pathname)},_getUnsavedChanges:function(){var e=this.editor;return e&&e.getUndoStack&&e.getUndoStack()?e.getUndoStack()._unsavedChanges:null},_clearUnsavedChanges:function(){var e=this.editor;e&&e.getUndoStack&&e.getUndoStack()&&(e.getUndoStack()._unsavedChanges=this._getSaveDiffsEnabled()?[]:null)}}),{handleError:h,InputManager:f}}),define("orion/navigate/nls/messages",{root:!0}),define("orion/navigate/nls/root/messages",{Navigator:"Navigator","Strings Xtrnalizr":"Strings Xtrnalizr","Externalize strings":"Externalize strings from JavaScript files in this folder.",NotSupportFileSystem:"${0} is not supported in this file system",SrcNotSupportBinRead:"Source file service does not support binary read",TargetNotSupportBinWrite:"Target file service does not support binary write",NoFileSrv:"No matching file service for location: ${0}","Choose a Folder":"Choose a Folder","Copy of ${0}":"Copy of ${0}",EnterName:"Enter a new name for '${0}'",ChooseFolder:"Choose folder...",Rename:"Rename",RenameFilesFolders:"Rename the selected files or folders",CompareEach:"Compare with each other","Compare 2 files":"Compare the selected 2 files with each other","Compare with...":"Compare With...",CompareFolders:"Compare the selected folder with a specified folder",Delete:"Delete","Unknown item":"Unknown item","delete item msg":"Are you sure you want to delete these ${0} items?",DeleteTrg:"Are you sure you want to delete '${0}'?",Zip:"Zip",ZipDL:"Create a zip file of the folder contents and download it","New File":"File","Create a new file":"Create a new file",FailedToCreateProject:"Failed to create project: ${0}",FailedToCreateFile:"Failed to create file: ${0}",CopyFailed:"Copy operation failed",MoveFailed:"Move operation failed","Name:":"Name:","New Folder":"Folder","Folder name:":"Folder name:","Create a new folder":"Create a new folder","Creating folder":"Creating folder",Folder:"Folder","Create an empty folder":"Create an empty folder",CreateEmptyMsg:"Create an empty folder on the Orion server. You can import, upload, or create content in the editor.","Sample HTML5 Site":"Sample HTML5 Site","Generate a sample":"Generate a sample",'Generate an HTML5 "Hello World" website, including JavaScript, HTML, and CSS files.':'Generate an HTML5 "Hello World" website, including JavaScript, HTML, and CSS files.',"Creating a folder for ${0}":"Creating a folder for ${0}","SFTP Import":"SFTP Import","Import content from SFTP":"Import content from SFTP","Imported Content":"Imported Content","Upload a Zip":"Upload a Zip","Upload content from a local zip file":"Upload content from a local zip file","Uploaded Content":"Uploaded Content","Clone Git Repository":"Clone Git Repository","Clone a git repository":"Clone a git repository","Link to Server":"Link to Server",LinkContent:"Link to existing content on the server",CreateLinkedFolder:"Create a folder that links to an existing folder on the server.","Server path:":"Server path:",NameLocationNotClear:"The name and server location were not specified.","Go Up":"Go Up",GoUpToParent:"Move up to the parent folder","Go Into":"Go Into",GoSelectedFolder:"Move into the selected folder","File or zip archive":"File or Zip Archive",ImportLcFile:"Import a file or zip archive from your local file system","SFTP from...":"SFTP",CpyFrmSftp:"Copy files and folders from a specified SFTP connection","Importing from ${0}":"Importing from ${0}","SFTP to...":"SFTP",CpyToSftp:"Copy files and folders to a specified SFTP location",Exporting:"Exporting to ${0}","Pasting ${0}":"Pasting ${0}","Copy to":"Copy to","Move to":"Move to","Copying ${0}":"Copying ${0}","Moving ${0}":"Moving ${0}","Renaming ${0}":"Renaming ${0}","Deleting ${0}":"Deleting ${0}","Creating ${0}":"Creating ${0}","Linking to ${0}":"Linking to ${0}",MvToLocation:"Move files and folders to a new location",Cut:"Cut",Copy:"Copy","Fetching children of ":"Fetching children of ",Paste:"Paste","Open With":"Open With","Loading ":"Loading ",New:"New",File:"File",Actions:"Actions","Orion Content":"Orion Content","Create new content":"Create new content","Import from HTTP...":"HTTP","File URL:":"File URL:",ImportURL:"Import a file from a URL and optionally unzip it","Unzip *.zip files:":"Unzip *.zip files:","Extracted from:":"Extracted from:",FolderDropNotSupported:"Did not drop ${0}. Folder drop is not supported in this browser.",CreateFolderErr:"You cannot copy files directly into the workspace. Create a folder first.","Unzip ${0}?":"Unzip ${0}?","Upload progress: ":"Upload progress: ","Uploading ":"Uploading ","Cancel upload":"Cancel upload",UploadingFileErr:"Uploading the following file failed: ","Enter project name:":"Enter project name:","Create new project":"Create new project","Creating project ${0}":"Creating project ${0}",NoFile:"Use the ${0} menu to create new files and folders. Click a file to start coding.",Download:"Download",Download_tooltips:"Download the file contents as the displayed name","Downloading...":"Reading file contents...","Download not supported":"Contents download is not supported in this browser.",gettingContentFrom:"Getting content from ",confirmLaunchDelete:'Delete Launch Configuration "${0}" ?',deletingLaunchConfiguration:"Deleting launch configuration...",deployTo:"Deploy to ",deploy:"Deploy ",connect:"Connect",fetchContent:"Fetch content",fetchContentOf:"Fetch content of ",disconnectFromProject:"Disconnect from project",doNotTreatThisFolder:"Do not treat this folder as a part of the project",checkStatus:"Check status",checkApplicationStatus:"Check application status",checkApplicationState:"Check application state",stop:"Stop",start:"Start",stopApplication:"Stop the App",startApplication:"Start the application",manage:"Manage",manageThisApplicationOnRemote:"Manage this application on remote server",deleteLaunchConfiguration:"Delete this launch configuration",editLaunchConfiguration:"Edit this launch configuration",deployThisApplication:"Deploy the App from the Workspace",associatedFolder:"Associated Folder",associateAFolderFromThe:"Associate a folder from the workspace with this project.",convertToProject:"Convert to project",convertThisFolderIntoA:"Convert this folder into a project",thisFolderIsAProject:"This folder is a project already.",basic:"Basic","createAnEmptyProject.":"Create an empty project.",sFTP:"SFTP",createAProjectFromAn:"Create a project from an SFTP site.",readMeCommandName:"Readme File",readMeCommandTooltip:"Create a README.md file in this project",zipArchiveCommandName:"Zip Archive",zipArchiveCommandTooltip:"Create a project from a local zip archive.","Url:":"Url:",notZip:"The following files are not zip files: ${0}. Would you like to continue the import?",notZipMultiple:"There are multiple non-zip files being uploaded. Would you like to continue the import?",Cancel:"Cancel",Ok:"Ok",missingCredentials:"Enter the ${0} authentication credentials associated with ${1} to check its status.",deploying:"deploying",starting:"restarting",stopping:"stopping",checkingStateShortMessage:"checking status"}),define("orion/fileClient",["i18n!orion/navigate/nls/messages","orion/Deferred","orion/i18nUtil"],function(e,t,n){function i(t,i,r){if(!t[i])throw new Error(n.formatMessage(e.NotSupportFileSystem,i));return t[i].apply(t,r)}function r(n,o,s,a){if(!n.readBlob)throw new Error(e.SrcNotSupportBinRead);if(!s.writeBlob)throw new Error(e.TargetNotSupportBinWrite);if("/"!==o[o.length-1])return i(n,"readBlob",[o]).then(function(e){return i(s,"writeBlob",[a,e])});var l=a.substring(0,a.length-1),d=decodeURIComponent(l.substring(l.lastIndexOf("/")+1)),h=l.substring(0,l.lastIndexOf("/")+1);return i(s,"createFolder",[h,d]).then(function(){},function(){}).then(function(){return i(n,"fetchChildren",[o]).then(function(e){for(var i=[],o=0;o=0){r=i;break}t(i.extension,s)&&(r=i)}if(!r)for(o=s.indexOf(".");!r&&o>=0;){for(o++,s=s.substring(o),a=0;ai){var c=r(i);t=s+c*l,o(t)}else o(a),h.stop()}var t,n="number"==typeof this.options.duration?this.options.duration:350,i="number"==typeof this.options.rate?this.options.rate:20,r=this.options.easing||this.defaultEasing,o=this.options.onAnimate||function(){},s=this.options.curve[0],a=this.options.curve[1],l=a-s,d=-1,h=this;this.interval=this.options.window.setInterval(e,i)},e.prototype.stop=function(){this.options.window.clearInterval(this.interval);var e=this.options.onEnd||function(){};e()},e.prototype.defaultEasing=function(e){return Math.sin(e*(Math.PI/2))},e}();return{contains:n,getNodeStyle:i,addEventListener:e,removeEventListener:t,Animation:r}}),define("orion/editor/textView",["i18n!orion/editor/nls/messages","orion/editor/textModel","orion/editor/keyModes","orion/editor/eventTarget","orion/editor/textTheme","orion/editor/util","orion/util","orion/metrics"],function(e,t,n,i,r,o,s,a){function l(e){return e.defaultView||e.parentWindow}function d(e){return new Array(e)}function h(e,t,n){if(n){t.className="";for(var i=t.attributes,r=i.length;r-->0;)(!s.isIE||s.isIE>=9||s.isIE<9&&i[r].specified)&&t.removeAttribute(i[r].name)}if(e){e.styleClass&&(t.className=e.styleClass);var o=e.style;if(o)for(var a in o)o.hasOwnProperty(a)&&(t.style[a]=o[a]);var l=e.attributes;if(l)for(var d in l)l.hasOwnProperty(d)&&t.setAttribute(d,l[d])}}function c(e){return e instanceof Array?e.slice(0):e}function u(e,t){if(!e)return t;if(!t)return e;for(var n in t)t.hasOwnProperty(n)&&(e.hasOwnProperty(n)||(e[n]=t[n]));return e}function f(e,t){if(e===t)return!0;if(e&&!t||!e&&t)return!1;if(e&&e.constructor===String||t&&t.constructor===String)return!1;if(e instanceof Array||t instanceof Array){if(!(e instanceof Array&&t instanceof Array))return!1;if(e.length!==t.length)return!1;for(var n=0;no;){-1!==i&&o>=i&&(i=e.indexOf("\r",o)),-1!==r&&o>=r&&(r=e.indexOf("\n",o));var a,l=o;if(-1===r&&-1===i){t(e.substring(o));break}-1!==i&&-1!==r?i+1===r?(a=i,o=r+1):(a=r>i?i:r,o=(r>i?i:r)+1):-1!==i?(a=i,o=i+1):(a=r,o=r+1),t(e.substring(l,a)),n?n():o===s&&t("")}}function g(e){var t,n,i,r,o=l(e.ownerDocument);if(o.getComputedStyle){var s=o.getComputedStyle(e,null);t=s.getPropertyValue("border-left-width"),n=s.getPropertyValue("border-top-width"),i=s.getPropertyValue("border-right-width"),r=s.getPropertyValue("border-bottom-width")}else e.currentStyle&&(t=e.currentStyle.borderLeftWidth,n=e.currentStyle.borderTopWidth,i=e.currentStyle.borderRightWidth,r=e.currentStyle.borderBottomWidth);return{left:parseInt(t,10)||0,top:parseInt(n,10)||0,right:parseInt(i,10)||0,bottom:parseInt(r,10)||0}}function v(e){var t,n,i,r,o=l(e.ownerDocument);if(o.getComputedStyle){var s=o.getComputedStyle(e,null);t=s.getPropertyValue("padding-left"),n=s.getPropertyValue("padding-top"),i=s.getPropertyValue("padding-right"),r=s.getPropertyValue("padding-bottom")}else e.currentStyle&&(t=e.currentStyle.paddingLeft,n=e.currentStyle.paddingTop,i=e.currentStyle.paddingRight,r=e.currentStyle.paddingBottom);return{left:parseInt(t,10)||0,top:parseInt(n,10)||0,right:parseInt(i,10)||0,bottom:parseInt(r,10)||0}}function m(e){var t=e._trim;if(!t){t=v(e);var n=g(e);t.left+=n.left,t.top+=n.top,t.right+=n.right,t.bottom+=n.bottom,e._trim=t}return t}function _(e,t,n,i){function r(t){if(t.animationName===a){var n=t.target;"function"==typeof n.__DOMReady&&l(e).setTimeout(function(){n.__DOMReady()},0)}}function o(e,t){for(var n=["","-webkit-","-moz-","-ms-","-o-"],i="",r="body ."+e+" {\n",o=0;on;n++){var i=e._createSelectionDiv();t.appendChild(i),this._divs.push(i)}}function w(e){this.left=e.left,this.top=e.top,this.right=e.right,this.bottom=e.bottom}function x(e,t,n){this.view=e,this.lineIndex=t,this._lineDiv=n}function S(e){this._init(e||{})}var b=o.addEventListener,T=o.removeEventListener,E=o.Animation;return y.compare=function(e,t){if(e.length!==t.length)return!1;for(var n=0;n=0;n--)if(e[n]._editing)return e[n];return e[e.length-1]}for(n=0;n=n.end||n._editing||e[i]._editing?(t.push(n),n=e[i]):n.end=Math.max(n.end,e[i].end);return t.push(n),t},y.prototype={clone:function(){var e=new y(this.start,this.end,this.caret);return e._columnX=this._columnX,e._editing=this._editing,e._docX=this._docX,e},contains:function(e){return this.start<=e&&ethis.end){var t=this.start;this.start=this.end,this.end=t,this.caret=!this.caret}},setCaret:function(e){this.start=e,this.end=e,this.caret=!1},getCaret:function(){return this.caret?this.start:this.end},getAnchor:function(){return this.caret?this.end:this.start},getOrientedSelection:function(){return{start:this.getAnchor(),end:this.getCaret()}},toString:function(){return"start="+this.start+" end="+this.end+(this.caret?" caret is at start":" caret is at end")},isEmpty:function(){return this.start===this.end},equals:function(e){return this.caret===e.caret&&this.start===e.start&&this.end===e.end&&this._editing===e._editing}},C.prototype={destroy:function(){this._divs&&(this._divs.forEach(function(e){e.parentNode.removeChild(e)}),this._divs=null)},setPrimary:function(e){this.primary=e},update:function(){var e,t=this._view,n=this.primary,i=t._hasFocus,r=t._cursorVisible,o=!this.primary&&this._selection&&this._selection.isEmpty();e=o?"textviewSelectionCaret":i?"textviewSelection":"textviewSelectionUnfocused",this._divs[0].style.visibility=o&&r&&i||!o?"visible":"hidden",this._divs[0].style.zIndex=r&&o?"2":"0",this._divs.forEach(function(t){t.className=e,s.isWebkit&&n&&(t.style.background=i?"transparent":"")})},setSelection:function(e){this._selection=e,this.update();var t=this._view,n=t._model,i=n.getLineAtOffset(e.start),r=n.getLineAtOffset(e.end),o=t._getLineNext();if(o){var s,a,l,d,h=t._getLinePrevious();ih.lineIndex?(s=h,l=n.getLineStart(h.lineIndex)):(s=t._getLineNode(i),l=e.start),rh.lineIndex?(a=h,d=n.getLineStart(h.lineIndex)):(a=t._getLineNode(r),d=e.end),this._setDOMSelection(s,l,a,d,e.caret)}},_setDOMSelection:function(e,t,n,i,r){if(this._setDOMFullSelection(e,t,n,i),this.primary){var o=this._view,a=e._line.getNodeOffset(t),l=n._line.getNodeOffset(i);if(a.node&&l.node){var d,h=o._getWindow(),c=o._parent.ownerDocument;if(h.getSelection){var u=h.getSelection();if(d=c.createRange(),d.setStart(a.node,a.offset),d.setEnd(l.node,l.offset),!o._hasFocus||u.anchorNode===a.node&&u.anchorOffset===a.offset&&u.focusNode===l.node&&u.focusOffset===l.offset&&u.anchorNode===l.node&&u.anchorOffset===l.offset&&u.focusNode===a.node&&u.focusOffset===a.offset||(o._anchorNode=a.node,o._anchorOffset=a.offset,o._focusNode=l.node,o._focusOffset=l.offset,o._ignoreSelect=!1,u.rangeCount>0&&u.removeAllRanges(),u.addRange(d),o._ignoreSelect=!0),o._cursorDiv){d=c.createRange(),r?(d.setStart(a.node,a.offset),d.setEnd(a.node,a.offset)):(d.setStart(l.node,l.offset),d.setEnd(l.node,l.offset));var f=d.getClientRects()[0],p=o._cursorDiv.parentNode,g=p.getBoundingClientRect();f&&g&&(o._cursorDiv.style.top=f.top-g.top+p.scrollTop+"px",o._cursorDiv.style.left=f.left-g.left+p.scrollLeft+"px")}}else if(c.selection){if(!o._hasFocus)return;var v=c.body,m=s.createElement(c,"div");v.appendChild(m),v.removeChild(m),d=v.createTextRange(),d.moveToElementText(a.node.parentNode),d.moveStart("character",a.offset);var _=v.createTextRange();_.moveToElementText(l.node.parentNode),_.moveStart("character",l.offset),d.setEndPoint("EndToStart",_),o._ignoreSelect=!1,d.select(),o._ignoreSelect=!0}}}},_setDOMFullSelection:function(e,t,n,i){this._divs.forEach(function(e){e.style.width=e.style.height="0px"});var r=this._view;if(r._fullSelection&&!(s.isIOS||e===n&&t===i&&this.primary)){var o=r._getViewPadding(),a=r._clientDiv.getBoundingClientRect(),l=r._viewDiv.getBoundingClientRect(),d=l.left+o.left,h=a.right,c=l.top+o.top,u=a.bottom,f=0,p=0;if(r._clipDiv){var g=r._clipDiv.getBoundingClientRect();f=g.left-r._clipDiv.scrollLeft,p=g.top}else{var v=r._rootDiv.getBoundingClientRect();f=v.left,p=v.top}r._ignoreDOMSelection=!0;var m,_,y=new x(r,e.lineIndex,e),C=y.getBoundingClientRect(t,!1),w=C.left;e===n&&t===i?(m=y,_=C):(m=new x(r,n.lineIndex,n),_=m.getBoundingClientRect(i,!1));var S=_.left;r._ignoreDOMSelection=!1;var b=this._divs[0],T=Math.min(h,Math.max(d,w)),E=Math.min(u,Math.max(c,C.top)),L=h,k=Math.min(u,Math.max(c,C.bottom));if(b.style.left=T-f+"px",b.style.top=E-p+"px",b.style.width=Math.max(0,L-T)+"px",b.style.height=Math.max(0,k-E)+"px",e.lineIndex===n.lineIndex)L=Math.min(S,h),b.style.width=Math.max(this.primary?0:1,L-T)+"px";else{var A=d,M=Math.min(u,Math.max(c,_.top)),D=Math.min(h,Math.max(d,S)),O=Math.min(u,Math.max(c,_.bottom)),N=this._divs[2];if(N.style.left=A-f+"px",N.style.top=M-p+"px",N.style.width=Math.max(0,D-A)+"px",N.style.height=Math.max(0,O-M)+"px",Math.abs(e.lineIndex-n.lineIndex)>1){var I=this._divs[1];I.style.left=d-f+"px",I.style.top=k-p+"px",I.style.width=Math.max(0,h-d)+"px",I.style.height=Math.max(0,M-k)+"px"}}}}},w.prototype={toString:function(){return"{l="+this.left+", t="+this.top+", r="+this.right+", b="+this.bottom+"}"}},x.prototype={create:function(e,t){if(!this._lineDiv){var n=this._lineDiv=this._createLine(e,t,this.lineIndex);return n._line=this,n}},_createLine:function(e,t,n){var i=this.view,r=i._model,o=r.getLine(n),a=r.getLineStart(n),l={type:"LineStyle",textView:i,lineIndex:n,lineText:o,lineStart:a};i.onLineStyle(l);var d=e.ownerDocument,c=t||s.createElement(d,"div");if(t&&f(t.viewStyle,l.style)||(h(l.style,c,t),t&&(t._trim=null),c.viewStyle=l.style,c.setAttribute("role","presentation")),c.lineIndex=n,t&&c.viewLineText===o&&f(l.ranges,c.viewRanges))return c;c.viewRanges=l.ranges,c.viewLineText=o;var u=[],p={tabOffset:0,ranges:u};this._createRanges(l.ranges,o,0,o.length,a,p);var g=" ";!i._fullSelection&&s.isIE<9&&(g="");var v={text:g,style:i._metrics.largestFontStyle,ignoreChars:1};0!==u.length&&u[u.length-1].style&&"div"===u[u.length-1].style.tagName?u.splice(u.length-1,0,v):u.push(v);var m,_,y,C,w,x,S,b,T=0,E=0;if(s.isFirefox&&o.length>2e3){t&&(c.innerHTML="",t.lineWidth=void 0);var L=d.createDocumentFragment();for(b=0;b=A&&(D-=k);var O=y.firstChild.data,N=O?O.length:0;if(E+N>D)break;E+=N}S=y.nextSibling,c.removeChild(y),y=S}}m=this._createSpan(c,w,_,v.ignoreChars),y?c.insertBefore(m,y):c.appendChild(m),t&&(t.lineWidth=void 0)}if(t)for(var I=m?m.nextSibling:null;I;)S=I.nextSibling,t.removeChild(I),I=S}return c.parentNode||e.appendChild(c),c},_createRanges:function(e,t,n,i,r,o){if(!(n>i)){if(e)for(var s=0;si)break;var d=Math.min(r+i,a.end)-r;if(d>=l){if(l=Math.max(n,l),d=Math.min(i,d),l>n&&this._createRange(t,n,l,null,o),!a.style||!a.style.unmergeable)for(;s+1n&&this._createRange(t,n,i,null,o)}},_createRange:function(e,t,n,i,r){if(!(t>n)){var o,s=this.view._customTabSize;if(s&&8!==s)for(var a=e.indexOf(" ",t);-1!==a&&n>a;){a>t&&(o={text:e.substring(t,a),style:i},r.ranges.push(o),r.tabOffset+=o.text.length);var l=s-r.tabOffset%s;if(l>0){for(var d="Ā ",h=1;l>h;h++)d+=" ";o={text:d,style:i,ignoreChars:l-1},r.ranges.push(o),r.tabOffset+=o.text.length}if(t=a+1,t===n)return;a=e.indexOf(" ",t)}n>=t&&(o={text:e.substring(t,n),style:i},r.ranges.push(o),r.tabOffset+=o.text.length)}},_createSpan:function(e,t,n,i){var r=this.view,o="span";n&&n.tagName&&(o=n.tagName.toLowerCase());var a="a"===o;a&&(this.hasLink=!0),a&&!r._linksVisible&&(o="span");var l=e.ownerDocument,d=s.createElement(e.ownerDocument,o);if(d.appendChild(l.createTextNode(n&&n.text?n.text:t)),n&&n.html?(d.innerHTML=n.html,d.ignore=!0):n&&n.node&&(d.appendChild(n.node),d.ignore=!0),h(n,d),"a"===o){var c=r._getWindow();b(d,"click",function(e){return r._handleLinkClick(e?e:c.event)},!1)}return d.viewStyle=n,i&&(d.ignoreChars=i),d},_ensureCreated:function(){return this._lineDiv?this._lineDiv:this._createdDiv=this.create(this.view._clientDiv,null)},getBoundingClientRect:function(e,t){var n=this._ensureCreated(),i=this.view;if(void 0===e)return this._getLineBoundingClientRect(n,!0);var r=i._model,o=n.ownerDocument,a=this.lineIndex,d=null;if(ee){var c,u=e-h;if(1===r.length)d=new w(t.getBoundingClientRect());else if(i._isRangeRects)c=o.createRange(),c.setStart(r,u),c.setEnd(r,u+1),d=new w(c.getBoundingClientRect());else if(s.isIE){c=o.body.createTextRange(),c.moveToElementText(t),c.collapse();var f=0===u&&8===s.isIE;f&&(u=1),c.moveEnd("character",u+1),c.moveStart("character",u),d=new w(c.getBoundingClientRect()),f&&(d.left=t.getClientRects()[0].left)}else{var p=r.data;t.removeChild(r),t.appendChild(o.createTextNode(p.substring(0,u)));var g=s.createElement(o,"span");if(g.appendChild(o.createTextNode(p.substring(u,u+1))),t.appendChild(g),t.appendChild(o.createTextNode(p.substring(u+1))),d=new w(g.getBoundingClientRect()),t.innerHTML="",t.appendChild(r),!this._createdDiv){var v=i._getSelections()[0];(h<=v.start&&v.starts.right&&(s.right=a.right),a.bottom>s.bottom&&(s.bottom=a.bottom))}}return!0}),void 0!==e?n[e]:n},_getLineBoundingClientRect:function(e,t){var n=new w(e.getBoundingClientRect());if(this.view._wrapMode);else{n.right=n.left;for(var i=e.lastChild;i&&i.ignoreChars===i.firstChild.length;)i=i.previousSibling;if(i){var r=i.getBoundingClientRect();n.right=r.right+m(e).right}}if(t){var o=m(e);n.left=n.left+o.left,n.right=n.right-o.right}return n},getLineCount:function(){return this.view._wrapMode?this.getClientRects().length:1},getLineIndex:function(e){if(!this.view._wrapMode)return 0;for(var t=this.getClientRects(),n=this.getBoundingClientRect(e),i=n.top+(n.bottom-n.top)/2,r=0;rs||i+o>=a?(t=r,n=s-i,e.ignoreChars&&o>0&&n===o&&(n+=e.ignoreChars),!1):(i+=o,!0)}),{node:t,offset:n}},getText:function(e){var t="",n=0;return this.forEach(function(i){var r;if(i.ignoreChars){r=i.lastChild;for(var o=0,s=[],a=-1;r;){var l=r.data;if(l)for(var d=l.length-1;d>=0;d--){var h=l.substring(d,d+1);o1;){var O=Math.floor((M+D)/2);y=D+1,C=O===b-1&&n.ignoreChars?S.length:O+1,w=0===y&&8===s.isIE,r._isRangeRects?(_.setStart(S,y),_.setEnd(S,C)):(w&&(y=1),_.moveToElementText(n),_.move("character",y),_.moveEnd("character",C-y)),x=_.getClientRects();for(var N=!1,I=0;I=c&&v>e&&(!r._wrapMode||t>=u&&m>=t)){N=!0;break}N?M=O:D=O}i+=M,y=M,C=M===b-1&&n.ignoreChars?S.length:Math.min(M+1,S.length),r._isRangeRects?(_.setStart(S,y),_.setEnd(S,C)):(_.moveToElementText(n),_.move("character",y),_.moveEnd("character",C-y)),x=_.getClientRects();var R=!1;x.length>0&&(h=x[0],c=(w?A:h.left)*L-p.left,v=h.right*L-p.left,R=e>c+(v-c)/2);var B=i-d,P=o.getLine(a),F=P.charCodeAt(B);F>=55296&&56319>=F&&R?B=56320&&57343>=F&&(i+=1)):F>=56320&&57343>=F&&!R&&B>0&&(F=P.charCodeAt(B-1),F>=55296&&56319>=F&&(i-=1)),R&&i++}else{for(var V=[],U=0;b>U;U++)V.push(""),V.push(U===b-1?S.data.substring(U):S.data.substring(U,U+1)),V.push("");n.innerHTML=V.join("");for(var K=n.firstChild;K;){if(h=K.getBoundingClientRect(),c=h.left-p.left,v=h.right-p.left,e>=c&&v>e){e>c+(v-c)/2&&i++;break}i++,K=K.nextSibling}if(!g._createdDiv){n.innerHTML="",n.appendChild(S);var W=r._getSelections()[0];(i<=W.start&&W.startu.right&&(e=u.right-1)}else 0>e&&(e=0),e>p.right-p.left&&(e=p.right-p.left);var m,_;if(this._lastHitChild&&this._lastHitChild.parentNode){if(m=this._lastHitOffset,_=this._lastHitChild,u=i(_),!u)for(var y=m,C=m+this._nodeLength(_),w=_.previousSibling,x=_.nextSibling;w||x;){if(w){if(y-=this._nodeLength(w),u=i(w)){_=w,m=y;break}w=w.previousSibling}if(x){if(u=i(x)){_=x,m=C;break}C+=this._nodeLength(x),x=x.nextSibling}}}else m=d,this.forEach(function(e){return _=e,(u=i(_))?!1:(m+=this._nodeLength(_),!0)});return _&&u&&(this._lastHitChild=_,this._lastHitOffset=m,m=n(_,m,u)),Math.min(h,Math.max(d,m))},getNextOffset:function(e,t){if("line"===t.unit){var n=this.view,i=n._model,r=i.getLineAtOffset(e);return t.count>0?(t.count--,i.getLineEnd(r)):(t.count++,i.getLineStart(r))}return"wordend"===t.unit||"wordWS"===t.unit||"wordendWS"===t.unit?this._getNextOffset_W3C(e,t):s.isIE?this._getNextOffset_IE(e,t):this._getNextOffset_W3C(e,t)},_getNextOffset_W3C:function(e,t){function n(e){return e>=33&&47>=e||e>=58&&64>=e||e>=91&&94>=e||96===e||e>=123&&126>=e}function i(e){return 32===e||9===e}var r,o=this.view,s=o._model,a=s.getLineAtOffset(e),l=s.getLine(a),d=s.getLineStart(a),h=s.getLineEnd(a),c=l.length,u=e-d,f=t.count<0?-1:1;if("word"===t.unit||"wordend"===t.unit||"wordWS"===t.unit||"wordendWS"===t.unit)for(var p,g,v,m;0!==t.count;){if(t.count>0){if(u===c)return h;for(r=l.charCodeAt(u),p=n(r),g=!p&&!i(r),u++;c>u;){if(r=l.charCodeAt(u),"wordWS"!==t.unit&&"wordendWS"!==t.unit){if(v=n(r),"wordend"===t.unit){if(!v&&p)break}else if(v&&!p)break;m=!v&&!i(r)}else m=!i(r);if("wordend"===t.unit||"wordendWS"===t.unit){if(!m&&g)break}else if(m&&!g)break;g=m,p=v,u++}}else{if(0===u)return d;for(u--,r=l.charCodeAt(u),p=n(r),g=!p&&!i(r);u>0;){if(r=l.charCodeAt(u-1),"wordWS"!==t.unit&&"wordendWS"!==t.unit){if(v=n(r),"wordend"===t.unit){if(v&&!p)break}else if(!v&&p)break;m=!v&&!i(r)}else m=!i(r);if("wordend"===t.unit||"wordendWS"===t.unit){if(m&&!g)break}else if(!m&&g)break;g=m,p=v,u--}}t.count-=f}else for(;0!==t.count&&u+f>=0&&c>=u+f;)u+=f,r=l.charCodeAt(u),r>=56320&&57343>=r&&u>0&&(r=l.charCodeAt(u-1),r>=55296&&56319>=r&&(u+=f)),t.count-=f;return d+u},_getNextOffset_IE:function(e,t){var n,i,r,o=this._ensureCreated(),s=this.view,a=s._model,l=this.lineIndex,d=0,h=a.getLineStart(l),c=a.getLine(l),u=a.getLineStart(l),f=o.ownerDocument,p=t.count<0?-1:1;if(e===a.getLineEnd(l)){for(r=o.lastChild;r&&r.ignoreChars===r.firstChild.length;)r=r.previousSibling;if(!r)return h;n=f.body.createTextRange(),n.moveToElementText(r),i=n.text.length,n.moveEnd(t.unit,p),d=e+n.text.length-i}else if(e===h&&t.count<0)d=h;else for(r=o.firstChild;r;){var g=this._nodeLength(r);if(h+g>e){if(n=f.body.createTextRange(),e===h&&t.count<0){for(var v=r.previousSibling;v&&(!v.firstChild||!v.firstChild.length);)v=v.previousSibling;n.moveToElementText(v?v:r.previousSibling)}else n.moveToElementText(r),n.collapse(),n.moveEnd("character",e-h);i=n.text.length,n.moveEnd(t.unit,p),d=e+n.text.length-i;break}h=g+h,r=r.nextSibling}var m=d-u,_=c.charCodeAt(m);return _>=56320&&57343>=_&&m>0&&(_=c.charCodeAt(m-1),_>=55296&&56319>=_&&(m+=p)),d=m+u,t.count-=p,d},updateLinks:function(){var e=this._ensureCreated();if(this.hasLink){var t=this;this.forEach(function(n){var i=n.viewStyle;return i&&i.tagName&&"a"===i.tagName.toLowerCase()&&e.replaceChild(t._createSpan(e,n.firstChild.data,i),n),!0})}},destroy:function(){var e=this._createdDiv;e&&(e.parentNode.removeChild(e),this._createdDiv=null)}},S.prototype={addKeyMode:function(e,t){var n=this._keyModes;void 0!==t?n.splice(t,0,e):n.push(e),e._modeAdded&&e._modeAdded()},addRuler:function(e,t){var n=this._rulers;if(void 0!==t){var i,r;for(i=0,r=0;ir;i++)e.getLocation()===n[i].getLocation()&&r++;n.splice(r,0,e),t=r}else n.push(e);this._createRuler(e,t),e.setView(this),this._update()},computeSize:function(){var e=0,t=0,n=this._model,i=this._clientDiv;if(!i)return{width:e,height:t};var r=i.style.width;s.isWebkit&&(i.style.width="0x7fffffffpx");for(var o=n.getLineCount(),a=0;o>a;a++){var l=this._getLine(a),d=l.getBoundingClientRect();e=Math.max(e,d.right-d.left),t+=d.bottom-d.top,l.destroy()}s.isWebkit&&(i.style.width=r);var h=this._getViewPadding();return e+=h.right+h.left+this._metrics.scrollWidth,t+=h.bottom+h.top+this._metrics.scrollWidth,{width:e,height:t}},convert:function(e,t,n){if(!this._clientDiv)return e;var i=this._getScroll(),r=this._getViewPadding(),o=this._viewDiv.getBoundingClientRect();return"document"===t&&(void 0!==e.x&&(e.x+=-i.x+o.left+r.left),void 0!==e.y&&(e.y+=-i.y+o.top+r.top)),"document"===n&&(void 0!==e.x&&(e.x+=i.x-o.left-r.left),void 0!==e.y&&(e.y+=i.y-o.top-r.top)),e},copy:function(){return this._clientDiv?this._doCopy():!1},cut:function(){return this._clientDiv?this._doCut():!1},destroy:function(){for(var e=0;en)return!1; +var i=this._getLine(n),r=this.getOffsetAtLocation(e,t),o=i.getBoundingClientRect(r);return i.destroy(),e>o.right?!1:!0},getLinePixel:function(e){return this._clientDiv?this._getLinePixel(e):0},getLocationAtOffset:function(e){if(!this._clientDiv)return{x:0,y:0};var t=this._model;e=Math.min(Math.max(0,e),t.getCharCount());var n=t.getLineAtOffset(e),i=this._getLine(n),r=i.getBoundingClientRect(e);i.destroy();var o=r.left,s=this._getLinePixel(n)+r.top;return{x:o,y:s}},getNextOffset:function(e,t){var n=new y(e,e,!1);return this._doMove(t,n),n.getCaret()},getOptions:function(){var e;if(0===arguments.length)e=this._defaultOptions();else if(1===arguments.length){var t=arguments[0];if("string"==typeof t)return c(this["_"+t]);e=t}else{e={};for(var n in arguments)arguments.hasOwnProperty(n)&&(e[arguments[n]]=void 0)}for(var i in e)e.hasOwnProperty(i)&&(e[i]=c(this["_"+i]));return e},getModel:function(){return this._model},getOffsetAtLocation:function(e,t){if(!this._clientDiv)return 0;var n=this._getLineIndex(t),i=this._getLine(n),r=i.getOffset(e,t-this._getLinePixel(n));return i.destroy(),r},getLineAtOffset:function(e){return this.getModel().getLineAtOffset(e)},getLineStart:function(e){return this.getModel().getLineStart(e)},getRulers:function(){return this._rulers.slice(0)},getSelection:function(){return this._getSelection()},getSelections:function(){return this._getSelections()},getSelectionText:function(e){var t=[],n=this,i=this._getSelections();return i.forEach(function(e){e.isEmpty()||t.push(n._getBaseText(e.start,e.end))}),t.join(void 0!==e?e:this._model.getLineDelimiter())},getText:function(e,t){var n=this._model;return n.getText(e,t)},getTopIndex:function(e){return this._clientDiv?this._getTopIndex(e):0},getTopPixel:function(){return this._clientDiv?this._getScroll().y:0},invokeAction:function(e,t,n){if(this._clientDiv){var i=this._actions[e];if(i){if(i.actionDescription&&i.actionDescription.id&&a.logEvent("editor","action",i.actionDescription.id),!t&&i.handler&&i.handler(n))return!0;if(i.defaultHandler)return"boolean"==typeof i.defaultHandler(n)}return!1}},isDestroyed:function(){return!this._clientDiv},onContextMenu:function(e){return this.dispatchEvent(e)},onDragStart:function(e){return this.dispatchEvent(e)},onDrag:function(e){return this.dispatchEvent(e)},onDragEnd:function(e){return this.dispatchEvent(e)},onDragEnter:function(e){return this.dispatchEvent(e)},onDragOver:function(e){return this.dispatchEvent(e)},onDragLeave:function(e){return this.dispatchEvent(e)},onDrop:function(e){return this.dispatchEvent(e)},onDestroy:function(e){return this.dispatchEvent(e)},onSaving:function(e){return this.dispatchEvent(e)},onInputChanged:function(e){return this.dispatchEvent(e)},onLineStyle:function(e){return this.dispatchEvent(e)},onKeyDown:function(e){return this.dispatchEvent(e)},onKeyPress:function(e){return this.dispatchEvent(e)},onKeyUp:function(e){return this.dispatchEvent(e)},onModelChanged:function(e){return this.dispatchEvent(e)},onModelChanging:function(e){return this.dispatchEvent(e)},onModify:function(e){return this.dispatchEvent(e)},onMouseDown:function(e){return this.dispatchEvent(e)},onMouseUp:function(e){return this.dispatchEvent(e)},onMouseMove:function(e){return this.dispatchEvent(e)},onMouseOver:function(e){return this.dispatchEvent(e)},onMouseOut:function(e){return this.dispatchEvent(e)},onTouchStart:function(e){return this.dispatchEvent(e)},onTouchMove:function(e){return this.dispatchEvent(e)},onTouchEnd:function(e){return this.dispatchEvent(e)},onOptions:function(e){return this.dispatchEvent(e)},onSelection:function(e){return this.dispatchEvent(e)},onScroll:function(e){return this.dispatchEvent(e)},onVerify:function(e){return this.dispatchEvent(e)},onFocus:function(e){return this.dispatchEvent(e)},onBlur:function(e){return this.dispatchEvent(e)},paste:function(){return this._clientDiv?this._doPaste():!1},redraw:function(){if(!(this._redrawCount>0)){var e=this._model.getLineCount();this.redrawRulers(0,e),this.redrawLines(0,e)}},redrawRulers:function(e,t){if(!(this._redrawCount>0))for(var n=this.getRulers(),i=0;i0)&&(void 0===e&&(e=0),void 0===t&&(t=this._model.getLineCount()),e!==t)){var i=this._clientDiv;if(i){if(n){var r=this._getRulerParent(n);for(i=r.firstChild;i&&i._ruler!==n;)i=i.nextSibling}n?i.rulerChanged=!0:this._lineHeight&&this._resetLineHeight(e,t);var o=-1;if(n||-1===this._imeOffset||(o=this._model.getLineAtOffset(this._imeOffset)),!n||"page"===n.getOverview())for(var s=i.firstChild;s;){var a=s.lineIndex;a>=e&&t>a&&a!==o&&(s.lineChanged=!0),s=s.nextSibling}n||this._wrapMode||e<=this._maxLineIndex&&this._maxLineIndex0)){var n=this._model;void 0===e&&(e=0),void 0===t&&(t=n.getCharCount());var i=n.getLineAtOffset(e),r=n.getLineAtOffset(Math.max(e,t-1))+1;this.redrawLines(i,r)}},removeKeyMode:function(e){for(var t=this._keyModes,n=0;nt;if(r){var o=e;e=t,t=o}var s=this._model.getCharCount();e=Math.max(0,Math.min(e,s)),t=Math.max(0,Math.min(t,s));var a=new y(e,t,r);this._setSelection(a,void 0===n||n,!0,i)},setSelections:function(e,t,n){var i=this._rangesToSelections(e);this._setSelection(i,void 0===t||t,!0,n)},setText:function(e,t,n,i,r){var o,a="string"==typeof e,l=void 0===t&&void 0===n&&a;a?(void 0===t&&(t=0),void 0===n&&(n=this._model.getCharCount()),o={text:e,selection:[new y(t,n,!1)]}):(o=e,o.selection=this._rangesToSelections(o.selection)),o._code=!0,l&&(this._variableLineHeight=!1),this._modifyContent(o,!l,void 0===i||i,r),l&&s.isFirefox<13&&this._fixCaret()},setTopIndex:function(e,t){this._clientDiv&&this._scrollViewAnimated(0,this._getLinePixel(Math.max(0,e))-this._getScroll().y,t)},setTopPixel:function(e,t){this._clientDiv&&this._scrollViewAnimated(0,Math.max(0,e)-this._getScroll().y,t)},showSelection:function(e,t){return this._showCaret(e?!1:!0,t,e)},update:function(e,t){this._clientDiv&&((e||this._metrics.invalid)&&this._updateStyle(),void 0===t||t?this._update():this._queueUpdate())},_handleRootMouseDown:function(e){if(this._cancelCheckSelection(),!this._ignoreEvent(e)){s.isFirefox<13&&1===e.which&&(this._clientDiv.contentEditable=!1,(this._overlayDiv||this._clientDiv).draggable=!0,this._ignoreBlur=!0);var t=this._overlayDiv||this._clientDiv;s.isIE<9&&(t=this._viewDiv);for(var n=e.target?e.target:e.srcElement;n;){if(t===n)return;if(n.className&&-1!==n.className.indexOf("textViewFind"))return;n=n.parentNode}if(e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!this._isW3CEvents){var i=this,r=this._getWindow();r.setTimeout(function(){i._clientDiv.focus()},0)}}},_handleRootMouseUp:function(e){this._ignoreEvent(e)||(s.isFirefox<13&&1===e.which&&(this._clientDiv.contentEditable=!0,(this._overlayDiv||this._clientDiv).draggable=!1),s.isFirefox&&1===e.which&&(this._fixCaret(),this._ignoreBlur=!1))},_handleBlur:function(){if(this._cancelCheckSelection(),!this._ignoreBlur){if(this._commitIME(),this._hasFocus=!1,s.isIE<9&&!this._getSelections()[0].isEmpty()){var e=this._rootDiv,t=s.createElement(e.ownerDocument,"div");e.appendChild(t),e.removeChild(t)}if(this._cursorDiv&&(this._cursorDiv.style.display="none"),this._domSelection){this._domSelection.forEach(function(e){e.update()});var n,i=this._getWindow(),r=this._parent.ownerDocument;if(i.getSelection){var o=i.getSelection();for(n=o.anchorNode;n;){if(n===this._clientDiv){o.rangeCount>0&&o.removeAllRanges();break}n=n.parentNode}}else if(r.selection){for(this._ignoreSelect=!1,n=r.selection.createRange().parentElement();n;){if(n===this._clientDiv){r.selection.empty();break}n=n.parentNode}this._ignoreSelect=!0}}this._ignoreFocus||this.onBlur({type:"Blur"})}},_handleCompositionStart:function(e){if(!this._ignoreEvent(e)){if(this._imeTimeout){var t=this._getWindow();t.clearTimeout(this._imeTimeout),this._imeTimeout=null}this._imeText&&(this._commitIME(this._imeText),this._imeText=null),this._startIME(),this._mutationObserver&&(this._mutationObserver.disconnect(),this._mutationObserver=null)}},_handleCompositionUpdate:function(e){this._ignoreEvent(e)||(this._imeText=e.data)},_handleCompositionEnd:function(e){if(!this._ignoreEvent(e)){this._imeText=e.data;var t=this._getWindow();this._imeTimeout=t.setTimeout(function(){this._commitIME(this._imeText),this._imeText=this._imeTimeout=null}.bind(this),0)}},_handleContextMenu:function(e){if(!this._ignoreEvent(e)){s.isIE&&3===this._lastMouseButton&&this._updateDOMSelection();var t=!1;if(this.isListening("ContextMenu")){var n=this._createMouseEvent("ContextMenu",e);n.screenX=e.screenX,n.screenY=e.screenY,this.onContextMenu(n),t=n.defaultPrevented}else s.isMac&&s.isFirefox&&0===e.button&&(t=!0);return t?(e.preventDefault&&e.preventDefault(),!1):(this._contextMenuOpen=!0,void(s.isFirefox&&(this._checkSelectionChange=!0,this._pollSelectionChange(!0))))}},_handleCopy:function(e){return this._cancelCheckSelection(),this._ignoreEvent(e)||this._ignoreCopy?void 0:this._doCopy(e)?(e.preventDefault&&e.preventDefault(),!1):void 0},_handleCut:function(e){return this._cancelCheckSelection(),this._ignoreEvent(e)?void 0:this._doCut(e)?(e.preventDefault&&e.preventDefault(),!1):void 0},_handleDataModified:function(e){this._ignoreEvent(e)||this._startIME()},_handleDblclick:function(e){if(!this._ignoreEvent(e)){var t=e.timeStamp?e.timeStamp:(new Date).getTime();this._lastMouseTime=t,2!==this._clickCount&&(this._clickCount=2,this._handleMouse(e))}},_handleDragStart:function(e){if(!this._ignoreEvent(e)){if(s.isFirefox<13){var t=this,n=this._getWindow();n.setTimeout(function(){t._clientDiv.contentEditable=!0,t._clientDiv.draggable=!1,t._ignoreBlur=!1},0)}return this.isListening("DragStart")&&-1!==this._dragOffset?(this._isMouseDown=!1,this.onDragStart(this._createMouseEvent("DragStart",e)),this._dragOffset=-1,void 0):(e.preventDefault&&e.preventDefault(),!1)}},_handleDrag:function(e){this._ignoreEvent(e)||this.isListening("Drag")&&this.onDrag(this._createMouseEvent("Drag",e))},_handleDragEnd:function(e){this._ignoreEvent(e)||(this._dropTarget=!1,this._dragOffset=-1,this.isListening("DragEnd")&&this.onDragEnd(this._createMouseEvent("DragEnd",e)),s.isFirefox<13&&(this._fixCaret(),"none"!==e.dataTransfer.dropEffect||e.dataTransfer.mozUserCancelled||this._fixCaret()))},_handleDragEnter:function(e){if(!this._ignoreEvent(e)){var t=!0;return this._dropTarget=!0,this.isListening("DragEnter")&&(t=!1,this.onDragEnter(this._createMouseEvent("DragEnter",e))),s.isWebkit||t?(e.preventDefault&&e.preventDefault(),!1):void 0}},_handleDragOver:function(e){if(!this._ignoreEvent(e)){var t=!0;return this.isListening("DragOver")&&(t=!1,this.onDragOver(this._createMouseEvent("DragOver",e))),s.isWebkit||t?(t&&(e.dataTransfer.dropEffect="none"),e.preventDefault&&e.preventDefault(),!1):void 0}},_handleDragLeave:function(e){this._ignoreEvent(e)||(this._dropTarget=!1,this.isListening("DragLeave")&&this.onDragLeave(this._createMouseEvent("DragLeave",e)))},_handleDrop:function(e){return this._ignoreEvent(e)?void 0:(this._dropTarget=!1,this.isListening("Drop")&&this.onDrop(this._createMouseEvent("Drop",e)),e.preventDefault&&e.preventDefault(),!1)},_handleFocus:function(){this._hasFocus=!0,s.isIOS&&void 0!==this._lastTouchOffset?(this.setCaretOffset(this._lastTouchOffset,!0),this._lastTouchOffset=void 0):this._updateDOMSelection(),this._cursorDiv&&(this._cursorDiv.style.display="block"),this._domSelection&&this._domSelection.forEach(function(e){e.update()}),this._ignoreFocus||this.onFocus({type:"Focus"})},_handleKeyDown:function(e){if(this._cancelCheckSelection(),!this._ignoreEvent(e)){if(this.isListening("KeyDown")){var t=this._createKeyEvent("KeyDown",e);if(this.onKeyDown(t),t.defaultPrevented)return s.isFirefox&&(this._keyDownPrevented=!0),void e.preventDefault()}var n=!1;switch(e.keyCode){case 16:case 17:case 18:case 91:n=!0;break;default:this._setLinksVisible(!1)}if(229===e.keyCode){if(this._readonly)return e.preventDefault&&e.preventDefault(),!1;var i=!0;s.isSafari&&s.isMac&&e.ctrlKey&&(i=!1,e.keyCode=129),i&&this._startIME()}else n||this._commitIME();return(s.isMac||s.isLinux)&&s.isFirefox<4||s.isOpera<12.16?(this._keyDownEvent=e,!0):this._doAction(e)?(e.preventDefault?(e.preventDefault(),e.stopPropagation()):(e.cancelBubble=!0,e.returnValue=!1,e.keyCode=0),!1):void 0}},_handleKeyPress:function(e){if(!this._ignoreEvent(e)){if(this._keyDownPrevented)return e.preventDefault&&(e.preventDefault(),e.stopPropagation()),void(this._keyDownPrevented=void 0);if(s.isMac&&s.isWebkit&&(63232<=e.keyCode&&e.keyCode<=63487||13===e.keyCode||8===e.keyCode))return e.preventDefault&&e.preventDefault(),!1;if(((s.isMac||s.isLinux)&&s.isFirefox<4||s.isOpera<12.16)&&this._doAction(this._keyDownEvent))return e.preventDefault&&e.preventDefault(),!1;var t=s.isMac?e.metaKey:e.ctrlKey;if(void 0!==e.charCode&&t)switch(e.charCode){case 99:case 118:case 120:return!0}if(this.isListening("KeyPress")){var n=this._createKeyEvent("KeyPress",e);if(this.onKeyPress(n),n.defaultPrevented)return void e.preventDefault()}if(this._doAction(e))return e.preventDefault?(e.preventDefault(),e.stopPropagation()):(e.cancelBubble=!0,e.returnValue=!1,e.keyCode=0),!1;var i=!1;if(s.isMac?(e.ctrlKey||e.metaKey)&&(i=!0):s.isFirefox?(e.ctrlKey||e.altKey)&&(i=!0):e.ctrlKey^e.altKey&&(i=!0),!i){var r=s.isOpera?e.which:void 0!==e.charCode?e.charCode:e.keyCode;if(r>31)return this._doContent(String.fromCharCode(r)),e.preventDefault&&e.preventDefault(),!1}}},_handleDocKeyUp:function(e){var t=s.isMac?e.metaKey:e.ctrlKey;t||this._setLinksVisible(!1)},_handleKeyUp:function(e){if(!this._ignoreEvent(e)){if(this.isListening("KeyUp")){var t=this._createKeyEvent("KeyUp",e);if(this.onKeyUp(t),t.defaultPrevented)return void e.preventDefault()}this._handleDocKeyUp(e),13===e.keyCode&&this._commitIME()}},_handleLinkClick:function(e){var t=s.isMac?e.metaKey:e.ctrlKey;return t?void 0:(e.preventDefault&&e.preventDefault(),!1)},_handleMouse:function(e){var t=this._getWindow(),n=!0,i=t;if((s.isIE||s.isFirefox&&!this._overlayDiv)&&(i=this._clientDiv),this._overlayDiv){this._hasFocus&&(this._ignoreFocus=!0);var r=this;t.setTimeout(function(){r.focus(),r._ignoreFocus=!1},0)}var o=e.shiftKey,a=e.altKey,l=s.isMac?e.metaKey:e.ctrlKey;if(this._blockSelection=this._doubleClickSelection=null,1===this._clickCount){var d=(!s.isOpera||s.isOpera>=12.16)&&this._hasFocus&&this.isListening("DragStart");n=this._setSelectionTo(e.clientX,e.clientY,!0,o,l,d),n&&this._setGrab(i)}else this._isW3CEvents&&this._setGrab(i),this._setSelectionTo(e.clientX,e.clientY,!0,o,l,!1),this._doubleClickSelection=y.editing(this._getSelections());return a&&(this._blockSelection=y.editing(this._getSelections())),n},_handleMouseDown:function(e){if(!this._ignoreEvent(e)){if(this._linksVisible){var t=e.target||e.srcElement;if("A"===t.tagName)return;this._setLinksVisible(!1)}this._commitIME();var n=e.which;n||(4===e.button&&(n=2),2===e.button&&(n=3),1===e.button&&(n=1));var i=2!==n&&e.timeStamp?e.timeStamp:(new Date).getTime(),r=i-this._lastMouseTime,o=Math.abs(this._lastMouseX-e.clientX),a=Math.abs(this._lastMouseY-e.clientY),l=this._lastMouseButton===n;if(this._lastMouseX=e.clientX,this._lastMouseY=e.clientY,this._lastMouseTime=i,this._lastMouseButton=n,1===n&&(this._isMouseDown=!0,l&&r<=this._clickTime&&o<=this._clickDist&&a<=this._clickDist?this._clickCount++:this._clickCount=1),this.isListening("MouseDown")){var d=this._createMouseEvent("MouseDown",e);if(this.onMouseDown(d),d.defaultPrevented)return void e.preventDefault()}1===n&&this._handleMouse(e)&&(s.isIE>=9||s.isOpera||s.isChrome||s.isSafari||s.isFirefox&&!this._overlayDiv)&&(this._hasFocus||this.focus(),e.preventDefault()),s.isFirefox&&3===this._lastMouseButton&&this._updateDOMSelection()}},_handleMouseOver:function(e){this._ignoreEvent(e)||this._animation||this.isListening("MouseOver")&&this.onMouseOver(this._createMouseEvent("MouseOver",e))},_handleMouseOut:function(e){this._ignoreEvent(e)||this._animation||this.isListening("MouseOut")&&this.onMouseOut(this._createMouseEvent("MouseOut",e))},_handleMouseMove:function(e){if(!this._animation){var t=this._isClientDiv(e);if(this.isListening("MouseMove")&&(t||this._isMouseDown)){var n=this._createMouseEvent("MouseMove",e);if(this.onMouseMove(n),n.defaultPrevented)return void e.preventDefault()}if(!this._dropTarget){var i=this._linksVisible||this._lastMouseMoveX!==e.clientX||this._lastMouseMoveY!==e.clientY;if(this._lastMouseMoveX=e.clientX,this._lastMouseMoveY=e.clientY,this._setLinksVisible(i&&!this._isMouseDown&&e.altKey&&(s.isMac?e.metaKey:e.ctrlKey)),this._checkOverlayScroll(),!this._isW3CEvents){if(0===e.button)return this._setGrab(null),!0;if(!this._isMouseDown&&1===e.button&&0!==(1&this._clickCount)&&t)return this._clickCount=2,this._handleMouse(e,this._clickCount)}if(this._isMouseDown&&-1===this._dragOffset){var r=e.clientX,o=e.clientY,a=this._getViewPadding(),l=this._viewDiv.getBoundingClientRect(),d=this._getClientWidth(),h=this._getClientHeight(),c=l.left+a.left,u=l.top+a.top,f=l.left+a.left+d,p=l.top+a.top+h;u>o?this._doAutoScroll("up",r,o-u):o>p?this._doAutoScroll("down",r,o-p):c>r&&!this._wrapMode?this._doAutoScroll("left",r-c,o):r>f&&!this._wrapMode?this._doAutoScroll("right",r-f,o):(this._endAutoScroll(),this._setSelectionTo(r,o,!1,!0))}}}},_isClientDiv:function(e){for(var t=this._overlayDiv||this._clientDiv,n=e.target?e.target:e.srcElement;n;){if(t===n)return!0;n=n.parentNode}return!1},_createKeyEvent:function(e,t){return{type:e,event:t,preventDefault:function(){this.defaultPrevented=!0}}},_createMouseEvent:function(e,t){var n=this.convert({x:t.clientX,y:t.clientY},"page","document");return{type:e,event:t,clickCount:this._clickCount,x:n.x,y:n.y,preventDefault:function(){this.defaultPrevented=!0}}},_createTouchEvent:function(e,t){var n=t.touches.length?this.convert({x:t.touches[0].clientX,y:t.touches[0].clientY},"page","document"):{};return{type:e,event:t,touchCount:t.touches.length,x:n.x,y:n.y,preventDefault:function(){this.defaultPrevented=!0}}},_handleMouseUp:function(e){var t=e.which?0===e.button:1===e.button;if(this.isListening("MouseUp")&&(this._isClientDiv(e)||t&&this._isMouseDown)){var n=this._createMouseEvent("MouseUp",e);if(this.onMouseUp(n),n.defaultPrevented)return e.preventDefault(),void(this._isMouseDown=!1)}if(!this._linksVisible){if(t&&this._isMouseDown){var i=this._getSelections(),r=y.editing(i);i.forEach(function(e){e._editing=!1}),-1!==this._dragOffset&&(r.extend(this._dragOffset),r.collapse(),i=r,this._dragOffset=-1),this._setSelection(i,!1),this._isMouseDown=!1,this._endAutoScroll(),this._isW3CEvents&&this._setGrab(null)}t&&this._isMouseDown&&s.isFirefox&&(this._updateDOMSelection(),e.preventDefault())}},_handleMouseWheel:function(e){if(!this._noScroll){var t=this._getLineHeight(),n=0,i=0;if(s.isIE||s.isOpera)i=-e.wheelDelta/40*t;else if(s.isFirefox){var r=256;if("wheel"===e.type)e.deltaMode?(n=Math.max(-r,Math.min(r,e.deltaX))*t,i=Math.max(-r,Math.min(r,e.deltaY))*t):(n=e.deltaX,i=e.deltaY);else{var o;o=s.isMac?3*e.detail:Math.max(-r,Math.min(r,e.detail))*t,e.axis===e.HORIZONTAL_AXIS?n=o:i=o}}else if(s.isMac){var a,l,d=e.timeStamp-this._wheelTimeStamp;this._wheelTimeStamp=e.timeStamp,a=e.wheelDeltaX%120!==0?1:40>d?40/(40-d):40,l=e.wheelDeltaY%120!==0?1:40>d?40/(40-d):40,n=Math.ceil(-e.wheelDeltaX/a),n>-1&&0>n&&(n=-1),n>0&&1>n&&(n=1),i=Math.ceil(-e.wheelDeltaY/l),i>-1&&0>i&&(i=-1),i>0&&1>i&&(i=1)}else{n=-e.wheelDeltaX;var h=8;i=-e.wheelDeltaY/120*h*t}if(s.isSafari||s.isChrome&&s.isMac){for(var c=e.target;c&&void 0===c.lineIndex;)c=c.parentNode;this._mouseWheelLine=c}var u=this._getScroll();this._scrollView(n,i);var f=this._getScroll();return u.x!==f.x||u.y!==f.y?(e.preventDefault&&e.preventDefault(),!1):void 0}},_handlePaste:function(e){if(this._cancelCheckSelection(),!this._ignoreEvent(e)&&!this._ignorePaste&&this._doPaste(e)){if(s.isIE){var t=this;this._ignoreFocus=!0;var n=this._getWindow();n.setTimeout(function(){t._updateDOMSelection(),t._ignoreFocus=!1},0)}return e.preventDefault&&e.preventDefault(),!1}},_handleResize:function(){var e=this._rootDiv.clientWidth,t=this._rootDiv.clientHeight;if(this._rootWidth!==e||this._rootHeight!==t){this._rootWidth!==e&&this._wrapMode&&this._resetLineHeight(),this._rootWidth=e,this._rootHeight=t;var n=s.isIE<9,i=this._calculateMetrics();f(i,this._metrics)||(this._metrics.invalid&&!i.invalid?this._updateStyle(!1,i):(this._variableLineHeight&&(this._variableLineHeight=!1,this._resetLineHeight()),this._metrics=i),n=!0),n?this._queueUpdate():this._update(),this.dispatchEvent({type:"Resize"})}},_handleRulerEvent:function(e){for(var t=e.target?e.target:e.srcElement,n=t.lineIndex,i=t;i&&!i._ruler;)void 0===n&&void 0!==i.lineIndex&&(n=i.lineIndex),i=i.parentNode;var r=i?i._ruler:null;if(void 0===n&&r&&"document"===r.getOverview()){var o,s,a=this._getClientHeight(),l=this._model.getLineCount(),d=this._getViewPadding(),h=this._viewDiv.getBoundingClientRect(),c=this._getLineHeight(),u=c*l,f=a+d.top+d.bottom-2*this._metrics.scrollWidth;f>u?(o=c,s=d.top):(o=f/l,s=this._metrics.scrollWidth),n=Math.floor((e.clientY-h.top-s)/o),n>=0&&l>n||(n=void 0)}if(r)switch(e.type){case"click":r.onClick&&r.onClick(n,e);break;case"dblclick":r.onDblClick&&r.onDblClick(n,e);break;case"mousemove":r.onMouseMove&&r.onMouseMove(n,e);break;case"mouseover":r.onMouseOver&&r.onMouseOver(n,e);break;case"mouseout":if(r.onMouseOut){for(var p=e.relatedTarget;p&&p!==this._rootDiv;){if(p===i)return;p=p.parentNode}r.onMouseOut(n,e)}}},_handleScroll:function(){this._lastScrollTime=(new Date).getTime();var e=this._getScroll(!1),t=this._hScroll,n=this._vScroll;if(t!==e.x||n!==e.y){this._hScroll=e.x,this._vScroll=e.y,this._commitIME(),this._update(n===e.y);var i={type:"Scroll",oldValue:{x:t,y:n},newValue:e};this.onScroll(i)}},_handleSelectStart:function(e){var t=this._contextMenuOpen;return this._contextMenuOpen=!1,t?void(this._checkSelectionChange=!0):this._ignoreSelect?(e&&e.preventDefault&&e.preventDefault(),!1):void 0},_getModelOffset:function(e,t){if(e){var n;return n="DIV"===e.tagName?e:e.parentNode.parentNode,n._line?n._line.getModelOffset(e,t):0}},_updateSelectionFromDOM:function(){if(!(s.isIOS||s.isAndroid||this._checkSelectionChange))return!1;var e=this._getWindow(),t=e.getSelection(),n=this._getModelOffset(t.anchorNode,t.anchorOffset),i=this._getModelOffset(t.focusNode,t.focusOffset),r=this._getSelections()[0];if(void 0===n||void 0===i||r.start===n&&r.end===i)return!1;if(this._checkSelectionChange){var o=this._getLineNext(),a=this._getLinePrevious();if(t.anchorNode===o.firstChild.firstChild&&0===t.anchorOffset&&t.focusNode===a.firstChild.firstChild&&0===t.focusOffset)return!1;(t.anchorNode===o.firstChild.firstChild&&0===t.anchorOffset&&t.focusNode===a.lastChild.firstChild||t.anchorNode===this._clientDiv&&t.focusNode===this._clientDiv)&&(n=0,i=this.getModel().getCharCount())}return this._setSelection(new y(n,i),!1,!1),this._checkSelectionChange=!1,!0},_cancelCheckSelection:function(){this._checkSelectionChange&&(this._checkSelectionChange=!1,this._cancelPollSelectionChange())},_cancelPollSelectionChange:function(){if(this._selPollTimer){var e=this._getWindow();e.clearTimeout(this._selPollTimer),this._selPollTimer=null}},_pollSelectionChange:function(e){var t=this,n=this._getWindow();this._cancelPollSelectionChange(),this._selPollTimer=n.setTimeout(function(){if(t._selPollTimer=null,t._clientDiv){var n=t._updateSelectionFromDOM();!n&&e&&t._pollSelectionChange(e)}},100)},_handleSelectionChange:function(){-1===this._imeOffset&&(s.isAndroid?this._pollSelectionChange():this._updateSelectionFromDOM())},_handleTextInput:function(e){if(!this._ignoreEvent(e)&&-1===this._imeOffset){var t=this._getWindow().getSelection();if(t.anchorNode!==this._anchorNode||t.focusNode!==this._focusNode||t.anchorOffset!==this._anchorOffset||t.focusOffset!==this._focusOffset){for(var n=t.anchorNode;n&&void 0===n.lineIndex;)n=n.parentNode;if(n){var i=this._model,r=n.lineIndex,o=i.getLine(r),s=o,a=0,l=i.getLineStart(r);if(t.rangeCount>0){t.getRangeAt(0).deleteContents();var d=n.ownerDocument.createTextNode(e.data);t.getRangeAt(0).insertNode(d);var h=this._getDOMText(n,d);s=h.text,a=h.offset,d.parentNode.removeChild(d)}n.lineRemoved=!0;for(var c=0;o.charCodeAt(c)===s.charCodeAt(c)&&a>c;)c++;for(var u=o.length-1,f=s.length-o.length;o.charCodeAt(u)===s.charCodeAt(u+f)&&u+f>=a+e.data.length;)u--;u++;var p=s.substring(c,u+f);c+=l,u+=l;var g=this._getSelections(),v=g[0].start-c,m=g[0].end-u;g[0].start=c,g[0].end=u;for(var _=1;_=0;n--)if(t=i[n],"function"==typeof t.match){var r=t.match(e);if(void 0!==r)return this.invokeAction(r)}return!1},_doMove:function(e,t){var n=this._model,i=t.getCaret(),r=n.getLineAtOffset(i);for(e.count||(e.count=1);0!==e.count;){var o=n.getLineStart(r);if(e.count<0&&i===o){if(!(r>0))break;"character"===e.unit&&e.count++,r--,t.extend(n.getLineEnd(r))}else if(e.count>0&&i===n.getLineEnd(r)){if(!(r+10&&(o=Math.min(o+e.count-1,t.getLineCount()-1)),r=t.getLineEnd(o); +i.extend(r)}e.select||i.collapse()}),this._setSelection(i,!0,!0,e.ctrl?function(){}:null),!0},_doEnter:function(e){if(this._singleMode)return!0;var t=this._model,n=this._getSelections();return this._doContent(t.getLineDelimiter()),e&&e.noCursor&&(n.forEach(function(e){e.end=e.start}),this._setSelection(n,!0)),!0},_doEscape:function(){var e=this._getSelections();return e.length>1&&this._setSelection(e[0],!0),!0},_doHome:function(e){var t=this._model,n=this,i=this._getSelections();return i.forEach(function(i){if(e.ctrl)i.extend(0);else{var r=i.getCaret(),o=t.getLineAtOffset(r);if(n._wrapMode){var s=n._getLine(o),a=s.getLineIndex(r);r=s.getLineStart(a),s.destroy()}else r=t.getLineStart(o);i.extend(r)}e.select||i.collapse()}),this._setSelection(i,!0,!0,e.ctrl?function(){}:null),!0},_doLineDown:function(e){var t=this._model,n=this,i=this._getSelections();return i.forEach(function(i){var r,o=i.getCaret(),a=t.getLineAtOffset(o),l=n._getLine(a),d=i._columnX,h=1,c=!1;if(-1===d||e.wholeLine||e.select&&s.isIE){var u=e.wholeLine?t.getLineEnd(a+1):o;d=i._columnX=l.getBoundingClientRect(u).left}if((r=l.getLineIndex(o))0?a=Math.min(a+e.count,f):a++}var p=!1;c?(e.select||s.isMac||s.isLinux)&&(i.extend(t.getCharCount()),p=!0):(l.lineIndex!==a&&(l.destroy(),l=n._getLine(a)),i.extend(l.getOffset(d,h)),p=!0),p&&(e.select||i.collapse()),l.destroy()}),n._setSelection(i,!0,!0,null,0,!1,!0),!0},_doLineUp:function(e){var t=this._model,n=this,i=this._getSelections();return i.forEach(function(i){var r,o,a=i.getCaret(),l=t.getLineAtOffset(a),d=n._getLine(l),h=i._columnX,c=!1;if(-1===h||e.wholeLine||e.select&&s.isIE){var u=e.wholeLine?t.getLineStart(l-1):a;h=i._columnX=d.getBoundingClientRect(u).left}(r=d.getLineIndex(a))>0?o=d.getClientRects(r-1).top+1:(c=0===l,c||(e.count&&e.count>0?l=Math.max(l-e.count,0):l--,o=n._getLineHeight(l)-1));var f=!1;c?(e.select||s.isMac||s.isLinux)&&(i.extend(0),f=!0):(d.lineIndex!==l&&(d.destroy(),d=n._getLine(l)),i.extend(d.getOffset(h,o)),f=!0),f&&(e.select||i.collapse()),d.destroy()}),n._setSelection(i,!0,!0,null,0,!1,!0),!0},_doNoop:function(){return!0},_doPageDown:function(e){var t,n,i,r=this,o=this._model,a=this._getSelections(),l=o.getLineCount(),d=this._getScroll(),h=this._getClientHeight(),c=this._getLineHeight(),u=Math.floor(h/c);return a.forEach(function(a){var f=a.getCaret(),p=o.getLineAtOffset(f);if(r._lineHeight){t=a._columnX;var g=r._getBoundsAtOffset(f);(-1===t||e.select&&s.isIE)&&(t=a._columnX=g.left);var v=r._getLineIndex(g.top+h);n=r._getLine(v);var m=r._getLinePixel(v),_=g.top+h-m;f=n.getOffset(t,_);var y=n.getBoundingClientRect(f);n.destroy(),a.extend(f),e.select||a.collapse(),i=void 0!==i?Math.min(i,y.top+m-g.top):y.top+m-g.top}else if(l-1>p){var C=Math.min(l-p-1,u);C=Math.max(1,C),t=a._columnX,(-1===t||e.select&&s.isIE)&&(n=r._getLine(p),t=a._columnX=n.getBoundingClientRect(f).left,n.destroy()),n=r._getLine(p+C),a.extend(n.getOffset(t,0)),n.destroy(),e.select||a.collapse();var w=l*c,x=d.y+C*c;x+h>w&&(x=w-h),i=void 0!==i?Math.min(i,x-d.y):x-d.y}}),this._setSelection(a,!0,!0,function(){},i,!1,!0),!0},_doPageUp:function(e){var t,n,i,r=this,o=this._model,a=this._getSelections(),l=this._getScroll(),d=this._getClientHeight(),h=this._getLineHeight(),c=Math.floor(d/h);return a.forEach(function(a){var u=a.getCaret(),f=o.getLineAtOffset(u);if(r._lineHeight){t=a._columnX;var p=r._getBoundsAtOffset(u);(-1===t||e.select&&s.isIE)&&(t=a._columnX=p.left);var g=r._getLineIndex(p.bottom-d);n=r._getLine(g);var v=r._getLinePixel(g),m=p.bottom-d-v;u=n.getOffset(t,m);var _=n.getBoundingClientRect(u);n.destroy(),a.extend(u),e.select||a.collapse(),i=void 0!==i?Math.max(i,_.top+v-p.top):_.top+v-p.top}else if(f>0){var y=Math.max(1,Math.min(f,c));t=a._columnX,(-1===t||e.select&&s.isIE)&&(n=r._getLine(f),t=a._columnX=n.getBoundingClientRect(u).left,n.destroy()),n=r._getLine(f-y),a.extend(n.getOffset(t,r._getLineHeight(f-y)-1)),n.destroy(),e.select||a.collapse();var C=Math.max(0,l.y-y*h);i=void 0!==i?Math.max(i,C-l.y):C-l.y}}),this._setSelection(a,!0,!0,function(){},i,!1,!0),!0},_doPaste:function(e){var t=this,n=this._getClipboardText(e,function(e){if(e.length){if(s.isLinux&&2===t._lastMouseButton){var n=(new Date).getTime()-t._lastMouseTime;n<=t._clickTime&&t._setSelectionTo(t._lastMouseX,t._lastMouseY,!0)}var i=t._getSelections(),r=t._singleMode?"":t._model.getLineDelimiter();t._doContent(i.length>1&&i.length===e.length?e:e.join(r))}});return null!==n},_doScroll:function(e){var t,n=e.type,i=this._model,r=i.getLineCount(),o=this._getClientHeight(),s=this._getLineHeight(),a=this._lineHeight?this._scrollHeight:r*s,l=this._getScroll().y;switch(n){case"textStart":t=0;break;case"textEnd":t=a-o;break;case"pageDown":t=l+o;break;case"pageUp":t=l-o;break;case"lineDown":t=l+s;break;case"lineUp":t=l-s;break;case"centerLine":var d=this._getSelections()[0],h=i.getLineAtOffset(d.start),c=i.getLineAtOffset(d.end),u=(c-h+1)*s;t=h*s-o/2+u/2}return void 0!==t&&(t=Math.min(Math.max(0,t),a-o),this._scrollViewAnimated(0,t-l,function(){})),!0},_doSelectAll:function(){var e=this._model;return this._setSelection(new y(0,e.getCharCount()),!1),!0},_doTab:function(){if(this._tabMode&&!this._readonly){var e=" ",t=this._getSelections();if(this._expandTab){e=[];var n=this._model,i=this._tabSize;t.forEach(function(t){var r=t.getCaret(),o=n.getLineAtOffset(r),s=n.getLineStart(o),a=i-(r-s)%i;e.push(d(a+1).join(" "))})}return this._modifyContent({text:e,selection:t,_ignoreDOMSelection:!0},!0)}},_doShiftTab:function(){return this._tabMode&&!this._readonly?!0:void 0},_doOverwriteMode:function(){return this._readonly?void 0:(this.setOptions({overwriteMode:!this.getOptions("overwriteMode")}),!0)},_doTabMode:function(){return this._tabMode=!this._tabMode,!0},_doWrapMode:function(){return this.setOptions({wrapMode:!this.getOptions("wrapMode")}),!0},_autoScroll:function(){var e,t,n=this._model,i=this._getSelections(),r=y.editing(i,"down"===this._autoScrollDir),o=this.convert({x:this._autoScrollX,y:this._autoScrollY},"page","document"),a=r.getCaret(),l=n.getLineCount(),d=n.getLineAtOffset(a);if("up"===this._autoScrollDir||"down"===this._autoScrollDir){var h=this._autoScrollY/this._getLineHeight();h=0>h?Math.floor(h):Math.ceil(h),e=d,e=Math.max(0,Math.min(l-1,e+h))}else("left"===this._autoScrollDir||"right"===this._autoScrollDir)&&(e=this._getLineIndex(o.y),t=this._getLine(d),o.x+=t.getBoundingClientRect(a,!1).left,t.destroy());this._blockSelection?i=this._getBlockSelections(i,e,o):0===e&&(s.isMac||s.isLinux)?r.extend(0):e===l-1&&(s.isMac||s.isLinux)?r.extend(n.getCharCount()):(t=this._getLine(e),r.extend(t.getOffset(o.x,o.y-this._getLinePixel(e))),t.destroy()),this._setSelection(i,!0)},_autoScrollTimer:function(){this._autoScroll();var e=this,t=this._getWindow();this._autoScrollTimerID=t.setTimeout(function(){e._autoScrollTimer()},this._AUTO_SCROLL_RATE)},_calculateLineHeightTimer:function(e){if(this._lineHeight&&!this._calculateLHTimer){var t=this._model.getLineCount(),n=0;if(e){for(var i=0,r=100,o=(new Date).getTime(),s=0;t>n&&(this._lineHeight[n]||(i++,s||(s=n),this._lineHeight[n]=this._calculateLineHeight(n)),n++,!((new Date).getTime()-o>r)););this.redrawRulers(0,t),this._queueUpdate()}var a=this._getWindow();if(n!==t){var l=this;return void(this._calculateLHTimer=a.setTimeout(function(){l._calculateLHTimer=null,l._calculateLineHeightTimer(!0)},0))}this._calculateLHTimer&&(a.clearTimeout(this._calculateLHTimer),this._calculateLHTimer=void 0)}},_calculateLineHeight:function(e){var t=this._getLine(e),n=t.getBoundingClientRect();return t.destroy(),Math.max(1,n.bottom-n.top)},_calculateMetrics:function(){var e=this._clientDiv,t=e.ownerDocument,n=" ",i=s.createElement(t,"div");i.style.lineHeight="normal";var r=this._model,o=r.getLine(0),a={type:"LineStyle",textView:this,0:0,lineText:o,lineStart:0};this.onLineStyle(a),h(a.style,i),i.style.position="fixed",i.style.left="-1000px";var l=s.createElement(t,"span");l.appendChild(t.createTextNode(n)),i.appendChild(l);var c=s.createElement(t,"span");c.style.fontStyle="italic",c.appendChild(t.createTextNode(n)),i.appendChild(c);var u=s.createElement(t,"span");u.style.fontWeight="bold",u.appendChild(t.createTextNode(n)),i.appendChild(u);var f=s.createElement(t,"span");f.style.fontWeight="bold",f.style.fontStyle="italic",f.appendChild(t.createTextNode(n)),i.appendChild(f),e.appendChild(i);var p=i.getBoundingClientRect(),g=l.getBoundingClientRect(),_=c.getBoundingClientRect(),y=u.getBoundingClientRect(),C=f.getBoundingClientRect(),w=g.bottom-g.top,x=_.bottom-_.top,S=y.bottom-y.top,b=C.bottom-C.top,T=0,E=p.bottom-p.top<=0,L=Math.max(1,p.bottom-p.top);x>w&&(T=1),S>x&&(T=2),b>S&&(T=3);var k;0!==T&&(k={style:{}},0!==(1&T)&&(k.style.fontStyle="italic"),0!==(2&T)&&(k.style.fontWeight="bold"));var A=m(i);e.removeChild(i);var M=v(this._viewDiv),D=s.createElement(t,"div");D.style.position="fixed",D.style.left="-1000px",D.style.paddingLeft=M.left+"px",D.style.paddingTop=M.top+"px",D.style.paddingRight=M.right+"px",D.style.paddingBottom=M.bottom+"px",D.style.width="100px",D.style.height="100px";var O=s.createElement(t,"div");O.style.width="100%",O.style.height="100%",D.appendChild(O),e.appendChild(D);var N=D.getBoundingClientRect(),I=O.getBoundingClientRect(),R=0;if(!this._singleMode&&!this._noScroll){D.style.overflow="hidden",O.style.height="200px";var B=D.clientWidth;D.style.overflow="scroll";var P=D.clientWidth;R=B-P}e.removeChild(D),M={left:I.left-N.left,top:I.top-N.top,right:N.right-I.right,bottom:N.bottom-I.bottom};var F=0,V=0,U=0;return E||(D=s.createElement(t,"div"),D.style.position="fixed",D.style.left="-1000px",e.appendChild(D),D.innerHTML=d(2).join("a"),N=D.getBoundingClientRect(),U=Math.ceil(N.right-N.left),(this._wrapOffset||this._marginOffset)&&(D.innerHTML=d(this._wrapOffset+1+(s.isWebkit?0:1)).join(" "),N=D.getBoundingClientRect(),F=Math.ceil(N.right-N.left),D.innerHTML=d(this._marginOffset+1).join(" "),I=D.getBoundingClientRect(),V=Math.ceil(I.right-I.left)),e.removeChild(D)),{lineHeight:L,largestFontStyle:k,lineTrim:A,viewPadding:M,scrollWidth:R,wrapWidth:F,marginWidth:V,charWidth:U,invalid:E}},_cancelAnimation:function(){this._animation&&(this._animation.stop(),this._animation=null)},_clearSelection:function(e){var t=this._getSelections();return t.forEach(function(t){"next"===e?t.start=t.end:t.end=t.start}),this._setSelection(t,!0),!0},_commitIME:function(e){if(-1!==this._imeOffset){var t=this._model,n=t.getLineAtOffset(this._imeOffset),i=t.getLineStart(n),r=this._getLineNode(n);if(!e){this._scrollDiv.focus(),this._clientDiv.focus();var o=this._getDOMText(r).text,a=t.getLine(n),l=this._imeOffset-i,d=l+o.length-a.length;l!==d&&(e=o.substring(l,d))}this._imeOffset=-1,e&&(this._doContent(e)||s.isWebkit||(r.lineRemoved=!0,this._queueUpdate()))}},_createActions:function(){this.addKeyMode(new n.DefaultKeyMode(this));var t=this;this._actions={noop:{defaultHandler:function(){return t._doNoop()}},lineUp:{defaultHandler:function(e){return t._doLineUp(u(e,{select:!1}))},actionDescription:{name:e.lineUp}},lineDown:{defaultHandler:function(e){return t._doLineDown(u(e,{select:!1}))},actionDescription:{name:e.lineDown}},lineStart:{defaultHandler:function(e){return t._doHome(u(e,{select:!1,ctrl:!1}))},actionDescription:{name:e.lineStart}},lineEnd:{defaultHandler:function(e){return t._doEnd(u(e,{select:!1,ctrl:!1}))},actionDescription:{name:e.lineEnd}},charPrevious:{defaultHandler:function(e){return t._doCursorPrevious(u(e,{select:!1,unit:"character"}))},actionDescription:{name:e.charPrevious}},charNext:{defaultHandler:function(e){return t._doCursorNext(u(e,{select:!1,unit:"character"}))},actionDescription:{name:e.charNext}},pageUp:{defaultHandler:function(e){return t._doPageUp(u(e,{select:!1}))},actionDescription:{name:e.pageUp}},pageDown:{defaultHandler:function(e){return t._doPageDown(u(e,{select:!1}))},actionDescription:{name:e.pageDown}},scrollPageUp:{defaultHandler:function(e){return t._doScroll(u(e,{type:"pageUp"}))},actionDescription:{name:e.scrollPageUp}},scrollPageDown:{defaultHandler:function(e){return t._doScroll(u(e,{type:"pageDown"}))},actionDescription:{name:e.scrollPageDown}},scrollLineUp:{defaultHandler:function(e){return t._doScroll(u(e,{type:"lineUp"}))},actionDescription:{name:e.scrollLineUp}},scrollLineDown:{defaultHandler:function(e){return t._doScroll(u(e,{type:"lineDown"}))},actionDescription:{name:e.scrollLineDown}},wordPrevious:{defaultHandler:function(e){return t._doCursorPrevious(u(e,{select:!1,unit:"word"}))},actionDescription:{name:e.wordPrevious}},wordNext:{defaultHandler:function(e){return t._doCursorNext(u(e,{select:!1,unit:"word"}))},actionDescription:{name:e.wordNext}},textStart:{defaultHandler:function(e){return t._doHome(u(e,{select:!1,ctrl:!0}))},actionDescription:{name:e.textStart}},textEnd:{defaultHandler:function(e){return t._doEnd(u(e,{select:!1,ctrl:!0}))},actionDescription:{name:e.textEnd}},scrollTextStart:{defaultHandler:function(e){return t._doScroll(u(e,{type:"textStart"}))},actionDescription:{name:e.scrollTextStart}},scrollTextEnd:{defaultHandler:function(e){return t._doScroll(u(e,{type:"textEnd"}))},actionDescription:{name:e.scrollTextEnd}},centerLine:{defaultHandler:function(e){return t._doScroll(u(e,{type:"centerLine"}))},actionDescription:{name:e.centerLine}},selectLineUp:{defaultHandler:function(e){return t._doLineUp(u(e,{select:!0}))},actionDescription:{name:e.selectLineUp}},selectLineDown:{defaultHandler:function(e){return t._doLineDown(u(e,{select:!0}))},actionDescription:{name:e.selectLineDown}},selectWholeLineUp:{defaultHandler:function(e){return t._doLineUp(u(e,{select:!0,wholeLine:!0}))},actionDescription:{name:e.selectWholeLineUp}},selectWholeLineDown:{defaultHandler:function(e){return t._doLineDown(u(e,{select:!0,wholeLine:!0}))},actionDescription:{name:e.selectWholeLineDown}},selectLineStart:{defaultHandler:function(e){return t._doHome(u(e,{select:!0,ctrl:!1}))},actionDescription:{name:e.selectLineStart}},selectLineEnd:{defaultHandler:function(e){return t._doEnd(u(e,{select:!0,ctrl:!1}))},actionDescription:{name:e.selectLineEnd}},selectCharPrevious:{defaultHandler:function(e){return t._doCursorPrevious(u(e,{select:!0,unit:"character"}))},actionDescription:{name:e.selectCharPrevious}},selectCharNext:{defaultHandler:function(e){return t._doCursorNext(u(e,{select:!0,unit:"character"}))},actionDescription:{name:e.selectCharNext}},selectPageUp:{defaultHandler:function(e){return t._doPageUp(u(e,{select:!0}))},actionDescription:{name:e.selectPageUp}},selectPageDown:{defaultHandler:function(e){return t._doPageDown(u(e,{select:!0}))},actionDescription:{name:e.selectPageDown}},selectWordPrevious:{defaultHandler:function(e){return t._doCursorPrevious(u(e,{select:!0,unit:"word"}))},actionDescription:{name:e.selectWordPrevious}},selectWordNext:{defaultHandler:function(e){return t._doCursorNext(u(e,{select:!0,unit:"word"}))},actionDescription:{name:e.selectWordNext}},selectTextStart:{defaultHandler:function(e){return t._doHome(u(e,{select:!0,ctrl:!0}))},actionDescription:{name:e.selectTextStart}},selectTextEnd:{defaultHandler:function(e){return t._doEnd(u(e,{select:!0,ctrl:!0}))},actionDescription:{name:e.selectTextEnd}},deletePrevious:{defaultHandler:function(e){return t._doBackspace(u(e,{unit:"character"}))},actionDescription:{name:e.deletePrevious}},deleteNext:{defaultHandler:function(e){return t._doDelete(u(e,{unit:"character"}))},actionDescription:{name:e.deleteNext}},deleteWordPrevious:{defaultHandler:function(e){return t._doBackspace(u(e,{unit:"word"}))},actionDescription:{name:e.deleteWordPrevious}},deleteWordNext:{defaultHandler:function(e){return t._doDelete(u(e,{unit:"word"}))},actionDescription:{name:e.deleteWordNext}},deleteLineStart:{defaultHandler:function(e){return t._doBackspace(u(e,{unit:"line"}))},actionDescription:{name:e.deleteLineStart}},deleteLineEnd:{defaultHandler:function(e){return t._doDelete(u(e,{unit:"line"}))},actionDescription:{name:e.deleteLineEnd}},tab:{defaultHandler:function(e){return t._doTab(u(e,{}))},actionDescription:{name:e.tab}},shiftTab:{defaultHandler:function(e){return t._doShiftTab(u(e,{}))},actionDescription:{name:e.shiftTab}},enter:{defaultHandler:function(e){return t._doEnter(u(e,{}))},actionDescription:{name:e.enter}},enterNoCursor:{defaultHandler:function(e){return t._doEnter(u(e,{noCursor:!0}))},actionDescription:{name:e.enterNoCursor}},escape:{defaultHandler:function(e){return t._doEscape(u(e,{}))},actionDescription:{name:e.escape}},selectAll:{defaultHandler:function(e){return t._doSelectAll(u(e,{}))},actionDescription:{name:e.selectAll}},copy:{defaultHandler:function(e){return t._doCopy(u(e,{}))},actionDescription:{name:e.copy}},cut:{defaultHandler:function(e){return t._doCut(u(e,{}))},actionDescription:{name:e.cut}},paste:{defaultHandler:function(e){return t._doPaste(u(e,{}))},actionDescription:{name:e.paste}},uppercase:{defaultHandler:function(e){return t._doCase(u(e,{type:"upper"}))},actionDescription:{name:e.uppercase}},lowercase:{defaultHandler:function(e){return t._doCase(u(e,{type:"lower"}))},actionDescription:{name:e.lowercase}},capitalize:{defaultHandler:function(e){return t._doCase(u(e,{unit:"word",type:"capitalize"}))},actionDescription:{name:e.capitalize}},reversecase:{defaultHandler:function(e){return t._doCase(u(e,{type:"reverse"}))},actionDescription:{name:e.reversecase}},toggleOverwriteMode:{defaultHandler:function(e){return t._doOverwriteMode(u(e,{}))},actionDescription:{name:e.toggleOverwriteMode}},toggleTabMode:{defaultHandler:function(e){return t._doTabMode(u(e,{}))},actionDescription:{name:e.toggleTabMode}},toggleWrapMode:{defaultHandler:function(e){return t._doWrapMode(u(e,{}))},actionDescription:{name:e.toggleWrapMode}}}},_createRulerParent:function(e,t){var n=s.createElement(e,"div");return n.className=t,n.tabIndex=-1,n.style.overflow="hidden",n.style.MozUserSelect="none",n.style.WebkitUserSelect="none",n.style.position="absolute",n.style.top="0px",n.style.bottom="0px",n.style.cursor="default",n.style.display="none",n.setAttribute("aria-hidden","true"),this._rootDiv.appendChild(n),n},_createRuler:function(e,t){if(this._clientDiv){var n=this._getRulerParent(e);if(n){(n!==this._marginDiv||this._marginOffset)&&(n.style.display="block"),n.rulerWidth=void 0;var i=s.createElement(n.ownerDocument,"div");if(i._ruler=e,e.node=i,i.rulerChanged=!0,i.style.position="relative",i.style.cssFloat="left",i.style.styleFloat="left",i.style.outline="none",void 0===t||0>t||t>=n.children.length)n.appendChild(i);else{for(var r=n.firstChild;r&&t-->0;)r=r.nextSibling;n.insertBefore(i,r)}}}},_createSelectionDiv:function(){var e=s.createElement(this._parent.ownerDocument,"div");return e.className="textviewSelection",e.style.position="absolute",e.style.borderWidth="0px",e.style.margin="0px",e.style.padding="0px",e.style.outline="none",e.style.width="0px",e.style.height="0px",e.style.zIndex="0",e},_createView:function(){function e(){C._rootDiv&&(C.update(!0),C._metrics.invalid&&C._getWindow().setTimeout(function(){e()},100))}if(!this._clientDiv){for(var t=this._parent;t.hasChildNodes();)t.removeChild(t.lastChild);var n=t.ownerDocument,i=s.createElement(n,"div");this._rootDiv=i,i.tabIndex=-1,i.style.position="relative",i.style.overflow="hidden",i.style.width="100%",i.style.height="100%",i.style.overflow="hidden",i.style.WebkitTextSizeAdjust="100%",i.setAttribute("role","application"),t.appendChild(i);var r=this._createRulerParent(n,"textviewLeftRuler");this._leftDiv=r;var o=s.createElement(n,"div");o.className="textviewScroll",this._viewDiv=o,o.tabIndex=-1,o.style.position="absolute",o.style.top="0px",o.style.bottom="0px",o.style.borderWidth="0px",o.style.margin="0px",o.style.outline="none",o.style.background="transparent",i.appendChild(o);var a=this._createRulerParent(n,"textviewRightRuler");this._rightDiv=a,"rtl"==document.dir?a.style.left="0px":a.style.right="0px";var l=this._createRulerParent(n,"textviewInnerRightRuler");this._innerRightDiv=l,l.style.zIndex="1";var d=s.createElement(n,"div");this._scrollDiv=d,d.style.margin="0px",d.style.borderWidth="0px",d.style.padding="0px",o.appendChild(d);var h=this._marginDiv=this._createRulerParent(n,"textviewMarginRuler");if(h.style.zIndex="4",!s.isIE&&!s.isIOS){var c=s.createElement(n,"div");this._clipDiv=c,c.style.position="absolute",c.style.overflow="hidden",c.style.margin="0px",c.style.borderWidth="0px",c.style.padding="0px",c.style.background="transparent",i.appendChild(c);var u=s.createElement(n,"div");this._clipScrollDiv=u,u.style.position="absolute",u.style.height="1px",u.style.top="-1000px",u.style.background="transparent",c.appendChild(u)}var f=s.createElement(n,"div");if(f.className="textviewContent",this._clientDiv=f,f.tabIndex=0,f.style.position="absolute",f.style.borderWidth="0px",f.style.margin="0px",f.style.padding="0px",f.style.outline="none",f.style.zIndex="1",f.style.WebkitUserSelect="text",f.setAttribute("spellcheck","false"),(s.isIOS||s.isAndroid)&&(f.style.WebkitTapHighlightColor="transparent"),(this._clipDiv||i).appendChild(f),this._setFullSelection(this._fullSelection,!0),s.isIOS||s.isAndroid){var p=s.createElement(n,"div");this._vScrollDiv=p,p.style.position="absolute",p.style.borderWidth="1px",p.style.borderColor="white",p.style.borderStyle="solid",p.style.borderRadius="4px",p.style.backgroundColor="black",p.style.opacity="0.5",p.style.margin="0px",p.style.padding="0px",p.style.outline="none",p.style.zIndex="3",p.style.width="8px",p.style.display="none",i.appendChild(p);var g=s.createElement(n,"div");this._hScrollDiv=g,g.style.position="absolute",g.style.borderWidth="1px",g.style.borderColor="white",g.style.borderStyle="solid",g.style.borderRadius="4px",g.style.backgroundColor="black",g.style.opacity="0.5",g.style.margin="0px",g.style.padding="0px",g.style.outline="none",g.style.zIndex="3",g.style.height="8px",g.style.display="none",i.appendChild(g)}if(s.isFirefox&&!f.setCapture){var v=s.createElement(n,"div");this._overlayDiv=v,v.style.position=f.style.position,v.style.borderWidth=f.style.borderWidth,v.style.margin=f.style.margin,v.style.padding=f.style.padding,v.style.cursor="text",v.style.zIndex="2",(this._clipDiv||i).appendChild(v)}f.contentEditable="true",f.setAttribute("role","textbox"),f.setAttribute("aria-multiline","true"),this._setWrapMode(this._wrapMode,!0),this._setReadOnly(this._readonly),this._setThemeClass(this._themeClass,!0),this._setTabSize(this._tabSize,!0),this._setMarginOffset(this._marginOffset,!0),this._hookEvents();for(var m=this._rulers,y=0;ythis._getLineHeight()){var n=t.getBoundingClientRect(),i=this._clientDiv.getBoundingClientRect();n.bottom>i.bottom&&(t=this._getLinePrevious(t)||t)}return t.lineIndex},_getBlockSelections:function(e,t,n){var i=this._model;e=e.filter(function(e){return!e._editing});var r,o=i.getLineAtOffset(this._blockSelection.getAnchor());t>o?r=t:(r=o,o=t);for(var s=o;r>=s;s++){var a=this._getLine(s),l=a.getOffset(n.x,1),d=a.getOffset(this._blockSelection._docX,1);if(a.destroy(),l!==d||l!==i.getLineEnd(s)){var h=d>l,c=new y(h?l:d,h?d:l,h);c._editing=!0,e.push(c)}}return e},_getBoundsAtOffset:function(e){var t=this._model,n=this._getLine(t.getLineAtOffset(e)),i=n.getBoundingClientRect(e),r=this._getLinePixel(n.lineIndex);return i.top+=r,i.bottom+=r,n.destroy(),i},_getClientHeight:function(){var e=this._getViewPadding();return Math.max(0,this._viewDiv.clientHeight-e.top-e.bottom)},_getInnerRightWidth:function(){var e=this._innerRightDiv.rulerWidth;if(void 0===e){var t=this._innerRightDiv.getBoundingClientRect();this._innerRightDiv.rulerWidth=e=t.right-t.left}return e},_getClientWidth:function(){var e=this._getViewPadding(),t=this._getInnerRightWidth();return Math.max(0,this._viewDiv.clientWidth-e.left-e.right-t)},_getClipboardText:function(e,t){function n(e){var n=[];return p(e,function(e){n.push(e)},null),t&&t(n),n}var i=this._getWindow(),r=i.clipboardData;if(!r&&e&&(r=e.clipboardData),r)return n(r.getData(s.isIE?"Text":"text/plain"));if(s.isFirefox){this._ignoreFocus=!0;var o=this._clipboardDiv,a=this._rootDiv.ownerDocument;o||(o=s.createElement(a,"div"),this._clipboardDiv=o,o.style.position="fixed",o.style.whiteSpace="pre",o.style.left="-1000px",this._rootDiv.appendChild(o)),o.innerHTML="
    ",o.firstChild.focus();var l=this,d=function(){var e=l._getTextFromElement(o);return o.innerHTML="",n(e)},h=!1;if(this._ignorePaste=!0,!s.isLinux||2!==this._lastMouseButton)try{h=a.execCommand("paste",!1,null)}catch(c){h=o.childNodes.length>1||o.firstChild&&o.firstChild.childNodes.length>0}return this._ignorePaste=!1,h?(this.focus(),this._ignoreFocus=!1,d()):e?(i.setTimeout(function(){l.focus(),d(),l._ignoreFocus=!1},0),null):(this.focus(),this._ignoreFocus=!1,"")}return""},_getDOMText:function(e,t){return e._line.getText(t)},_getTextFromElement:function(e){var t=e.ownerDocument,n=t.defaultView;if(!n.getSelection)return e.innerText||e.textContent;var i=t.createRange();i.selectNode(e);var r,o=n.getSelection(),s=[];for(r=0;rn)for(t=n;e>t;t++)i+=this._getLineHeight(t);else for(t=n-1;t>=e;t--)i-=this._getLineHeight(t);return i}var r=this._getLineHeight();return r*e},_getLineIndex:function(e,t){var n,i=0,r=this._model.getLineCount();if(this._lineHeight){i=this._getTopIndex();var o=-this._topIndexY+this._getScroll().y;if(e!==o)if(o>e)for(;o>e&&i>0;)e+=this._getLineHeight(--i);else for(n=this._getLineHeight(i);e-n>=o&&r-1>i;)e-=n,n=this._getLineHeight(++i)}else n=this._getLineHeight(),i=Math.floor(e/n);return t&&(0===r||0>i||i>r-1)?-1:Math.max(0,Math.min(r-1,i))},_getRulerParent:function(e){switch(e.getLocation()){case"left":return this._leftDiv;case"right":return this._rightDiv;case"innerRight":return this._innerRightDiv;case"margin":return this._marginDiv}return null},_getScroll:function(e){(void 0===e||e)&&this._cancelAnimation();var t=this._viewDiv;return{x:t.scrollLeft,y:t.scrollTop}},_getSelection:function(){return(Array.isArray(this._selection)?this._selection[0]:this._selection).clone()},_getSelections:function(){return(Array.isArray(this._selection)?this._selection:[this._selection]).map(function(e){return e.clone()})},_getTopIndex:function(e){var t=this._topChild;if(e&&this._getClientHeight()>this._getLineHeight()){var n=t.getBoundingClientRect(),i=this._getViewPadding(),r=this._viewDiv.getBoundingClientRect();n.top26?"wheel":s.isFirefox?"DOMMouseScroll":"mousewheel",handler:function(t){return e._handleMouseWheel(t?t:l.event)}}),this._clipDiv&&t.push({target:this._clipDiv,type:s.isFirefox>26?"wheel":s.isFirefox?"DOMMouseScroll":"mousewheel",handler:function(t){return e._handleMouseWheel(t?t:l.event)}}),s.isFirefox&&(!s.isWindows||s.isFirefox>=15)){var h=l.MutationObserver||l.MozMutationObserver;h?(this._mutationObserver=new h(function(t){e._handleDataModified(t)}),this._mutationObserver.observe(n,{subtree:!0,characterData:!0})):t.push({target:this._clientDiv,type:"DOMCharacterDataModified",handler:function(t){return e._handleDataModified(t?t:l.event)}})}(s.isFirefox&&(!s.isWindows||s.isFirefox>=15)||s.isIE||s.isWebkit)&&(t.push({target:this._clientDiv,type:"compositionstart",handler:function(t){return e._handleCompositionStart(t?t:l.event)}}),t.push({target:this._clientDiv,type:"compositionend",handler:function(t){return e._handleCompositionEnd(t?t:l.event)}}),t.push({target:this._clientDiv,type:"compositionupdate",handler:function(t){return e._handleCompositionUpdate(t?t:l.event)}})),this._overlayDiv&&(t.push({target:this._overlayDiv,type:"mousedown",handler:function(t){return e._handleMouseDown(t?t:l.event)}}),t.push({target:this._overlayDiv,type:"mouseover",handler:function(t){return e._handleMouseOver(t?t:l.event)}}),t.push({target:this._overlayDiv,type:"mouseout",handler:function(t){return e._handleMouseOut(t?t:l.event)}}),t.push({target:this._overlayDiv,type:"contextmenu",handler:function(t){return e._handleContextMenu(t?t:l.event)}})),this._isW3CEvents||t.push({target:this._clientDiv,type:"dblclick",handler:function(t){return e._handleDblclick(t?t:l.event)}})}this._hookRulerEvents(this._leftDiv,t),this._hookRulerEvents(this._rightDiv,t),this._hookRulerEvents(this._innerRightDiv,t),this._hookRulerEvents(this._marginDiv,t);for(var c=0;c26?"wheel":s.isFirefox?"DOMMouseScroll":"mousewheel",handler:function(e){return n._handleMouseWheel(e?e:i.event)}}),t.push({target:e,type:"click",handler:function(e){n._handleRulerEvent(e?e:i.event)}}),t.push({target:e,type:"dblclick",handler:function(e){n._handleRulerEvent(e?e:i.event)}}),t.push({target:e,type:"mousemove",handler:function(e){n._handleRulerEvent(e?e:i.event)}}),t.push({target:e,type:"mouseover",handler:function(e){n._handleRulerEvent(e?e:i.event)}}),t.push({target:e,type:"mouseout",handler:function(e){n._handleRulerEvent(e?e:i.event)}})}},_getWindow:function(){return l(this._parent.ownerDocument)},_ignoreEvent:function(e){for(var t=e.target;t&&t!==this._clientDiv;){if(t.ignore)return!0;t=t.parentNode}return!1},_init:function(e){var n=e.parent;if("string"==typeof n&&(n=(e.document||document).getElementById(n)),!n)throw new Error("no parent");e.parent=n,e.model=e.model||new t.TextModel;var i=this._defaultOptions();for(var r in i)if(i.hasOwnProperty(r)){var o;o=void 0!==e[r]?e[r]:i[r].value,this["_"+r]=o}this._keyModes=[],this._rulers=[],this._selection=[new y(0,0,!1)],this._linksVisible=!1,this._redrawCount=0,this._maxLineWidth=0,this._maxLineIndex=-1,this._ignoreSelect=!0,this._ignoreFocus=!1,this._hasFocus=!1,this._dragOffset=-1,this._isRangeRects=(!s.isIE||s.isIE>=9)&&"function"==typeof n.ownerDocument.createRange().getBoundingClientRect,this._isW3CEvents=n.addEventListener,this._autoScrollX=null,this._autoScrollY=null,this._autoScrollTimerID=null,this._AUTO_SCROLL_RATE=50,this._grabControl=null,this._moseMoveClosure=null,this._mouseUpClosure=null,this._lastMouseX=0,this._lastMouseY=0,this._lastMouseTime=0,this._clickCount=0,this._clickTime=250,this._clickDist=5,this._isMouseDown=!1,this._doubleClickSelection=null,this._hScroll=0,this._vScroll=0,this._imeOffset=-1,this._createActions(),this._createView()},_checkOverlayScroll:function(){if(s.isMac&&s.isWebkit&&!this._metrics.invalid&&0===this._metrics.scrollWidth){var e=this._viewDiv,t=this._isOverOverlayScroll();e.style.pointerEvents=t.vertical||t.horizontal?"":"none"}},_isOverOverlayScroll:function(){var e=(new Date).getTime()-this._lastScrollTime<200;if(!e)return{};var t=this._viewDiv.getBoundingClientRect(),n=this._lastMouseMoveX,i=this._lastMouseMoveY,r=15;return{vertical:t.top<=i&&i1&&this.setRedraw(!1);var s=this._compoundChange;s?y.compare(this._getSelections(),s.owner.selection)||(this._endUndo(),e.selection.length>1&&this._startUndo()):e.selection.length>1&&this._startUndo();var a=this._model;try{e._ignoreDOMSelection&&(this._ignoreDOMSelection=!0);var l=0,d=0;e.selection.forEach(function(n){n.start+=l,n.end+=l;var i=Array.isArray(e.text)?e.text[d]:e.text;a.setText(i,n.start,n.end),l+=n.start-n.end+i.length,n.setCaret(t?n.start+i.length:n.start),d++})}finally{e._ignoreDOMSelection&&(this._ignoreDOMSelection=!1)}return this._setSelection(e.selection,n,!0,i),s=this._compoundChange,s&&(s.owner.selection=e.selection),e.selection.length>1&&this.setRedraw(!0),this.onModify({type:"Modify"}),!0},_onModelChanged:function(e){e.type="ModelChanged",this.onModelChanged(e),e.type="Changed";var t=e.start,n=e.addedCharCount,i=e.removedCharCount,r=e.addedLineCount,o=e.removedLineCount,s=this._getSelections();s.forEach(function(e){e.end>t&&(e.end>t&&e.start=l&&l+o>=c&&(l!==c||h.modelChangedEvent||h.lineRemoved?(h.lineRemoved=!0,h.lineChanged=!1,h.modelChangedEvent=null):(h.modelChangedEvent=e,h.lineChanged=!0)),c>l+o&&(h.lineIndex=c+r-o,h._line.lineIndex=h.lineIndex),h=this._getLineNext(h)}if(this._lineHeight){var u=[l,o].concat(d(r));Array.prototype.splice.apply(this._lineHeight,u)}this._wrapMode||l<=this._maxLineIndex&&this._maxLineIndex<=l+o&&(this._checkMaxLineIndex=this._maxLineIndex,this._maxLineIndex=-1,this._maxLineWidth=0),this._update()},_onModelChanging:function(e){e.type="ModelChanging",this.onModelChanging(e),e.type="Changing"},_queueUpdate:function(){if(!this._updateTimer&&!this._ignoreQueueUpdate){var e=this,t=this._getWindow();this._updateTimer=t.setTimeout(function(){e._updateTimer=null,e._update()},0)}},_rangesToSelections:function(e){var t=[],n=this._model.getCharCount();return e.forEach(function(e){var i;if(e instanceof y)i=e.clone();else{var r=e.start,o=e.end,s=r>o;if(s){var a=r;r=o,o=a}r=Math.max(0,Math.min(r,n)),o=Math.max(0,Math.min(o,n)),i=new y(r,o,s)}t.push(i)}),t},_resetLineHeight:function(e,t){if(this._wrapMode||this._variableLineHeight){if(void 0!==e&&void 0!==t)for(var n=e;t>n;n++)this._lineHeight[n]=void 0;else this._lineHeight=d(this._model.getLineCount());this._calculateLineHeightTimer()}else this._lineHeight=null},_resetLineWidth:function(){var e=this._clientDiv;if(e)for(var t=e.firstChild;t;)t.lineWidth=void 0,t=t.nextSibling},_reset:function(){this._maxLineIndex=-1,this._maxLineWidth=0,this._topChild=null,this._bottomChild=null,this._topIndexY=0,this._variableLineHeight=!1,this._resetLineHeight(),this._setSelection(new y(0,0,!1),!1,!1),this._viewDiv&&(this._viewDiv.scrollLeft=0,this._viewDiv.scrollTop=0);var e=this._clientDiv;if(e){for(var t=e.firstChild;t;)t.lineRemoved=!0,t=t.nextSibling;s.isFirefox<13&&this._fixCaret()}},_scrollViewAnimated:function(e,t,n){var i=this._getWindow();if(n&&this._scrollAnimation){var r=this;this._animation=new E({window:i,duration:this._scrollAnimation,curve:[t,0],onAnimate:function(e){var n=t-Math.floor(e);r._scrollView(0,n),t-=n},onEnd:function(){r._animation=null,r._scrollView(e,t),n&&i.setTimeout(n,0)}}),this._animation.play()}else this._scrollView(e,t),n&&i.setTimeout(n,0)},_scrollView:function(e,t){this._ensureCaretVisible=!1;var n=this._viewDiv;e&&(n.scrollLeft+=e),t&&(n.scrollTop+=t)},_setClipboardText:function(e,t){var n,i=this._getWindow(),r=i.clipboardData;if(!r&&t&&(r=t.clipboardData),r){n=[],p(e,function(e){n.push(e)},function(){n.push(s.platformDelimiter)});var o=r.setData(s.isIE?"Text":"text/plain",n.join(""));if(o||t&&(s.isFirefox>21||s.isWebkit))return!0;if(!t)return!1}var a=this._parent.ownerDocument,l=s.createElement(a,"pre");l.style.position="fixed",l.style.left="-1000px",p(e,function(e){l.appendChild(a.createTextNode(e))},function(){l.appendChild(s.createElement(a,"br"))}),l.appendChild(a.createTextNode(" ")),this._clientDiv.appendChild(l);var d=a.createRange();d.setStart(l.firstChild,0),d.setEndBefore(l.lastChild);var h=i.getSelection();h.rangeCount>0&&h.removeAllRanges(),h.addRange(d);var c=this,u=function(){l&&l.parentNode===c._clientDiv&&c._clientDiv.removeChild(l),c._updateDOMSelection()},f=!1;this._ignoreCopy=!0;try{f=a.execCommand("copy",!1,null)}catch(g){}return this._ignoreCopy=!1,!f&&t?(i.setTimeout(u,0),!1):(u(),!0)},_setGrab:function(e){e!==this._grabControl&&(e?(e.setCapture&&e.setCapture(),this._grabControl=e):(this._grabControl.releaseCapture&&this._grabControl.releaseCapture(),this._grabControl=null))},_setLinksVisible:function(e){if(this._linksVisible!==e){this._linksVisible=e,s.isIE&&e&&(this._hadFocus=this._hasFocus);var t=this._clientDiv;t.contentEditable=!e,this._hadFocus&&!e&&t.focus(),this._overlayDiv&&(this._overlayDiv.style.zIndex=e?"-1":"1");for(var n=this._getLineNext();n;)n._line.updateLinks(),n=this._getLineNext(n);this._updateDOMSelection()}},_setSelection:function(e,t,n,i,r,o,s){if(e){void 0===n&&(n=!0);var a,l=this._getSelections();if(a=Array.isArray(e)?e:o?l.concat([e]):[e],this._selection=y.merge(a),s||a.forEach(function(e){e._columnX=-1}),t!==!1&&this._showCaret(!1,i,t,r),n&&this._updateDOMSelection(),!y.compare(l,a)){var d={type:"Selection",oldValue:y.convert(l),newValue:y.convert(a)};this.onSelection(d)}}},_setSelectionTo:function(e,t,n,i,r,o){var s=this._model,a=this._getSelections(),l=this.convert({x:e,y:t},"page","document"),d=this._getLineIndex(l.y),h=this._getLine(d),c=h.getOffset(l.x,l.y-this._getLinePixel(d));if(o&&!i&&y.contains(a,c))return this._dragOffset=c,h.destroy(),!1;if(this._blockSelection)a=this._getBlockSelections(a,d,l);else{var u;if(n?i?(u=a[a.length-1],u._editing=!0):(u=new y(0,0),u._editing=!0,r?a.push(u):a=[u],u._docX=l.x):u=y.editing(a),1===this._clickCount)u.extend(c),i||u.collapse();else{var f,p,g=0===(1&this._clickCount);if(g)this._doubleClickSelection?c>=this._doubleClickSelection.start?(f=this._doubleClickSelection.start,p=h.getNextOffset(c,{unit:"wordend",count:1})):(f=h.getNextOffset(c,{unit:"word",count:-1}),p=this._doubleClickSelection.end):(f=h.getNextOffset(c,{unit:"word",count:-1}),p=h.getNextOffset(f,{unit:"wordend",count:1}));else if(this._doubleClickSelection){var v=s.getLineAtOffset(this._doubleClickSelection.start);d>=v?(f=s.getLineStart(v),p=s.getLineEnd(d)):(f=s.getLineStart(d),p=s.getLineEnd(v))}else f=s.getLineStart(d),p=s.getLineEnd(d);u.setCaret(f),u.extend(p)}}return this._setSelection(a,!0,!0,null,!1),h.destroy(),!0},_setFullSelection:function(e,t){this._fullSelection=e,s.isWebkit&&(this._fullSelection=e=!0),this._domSelection||(this._domSelection=[],this._cursorVisible=!0),t||this._updateDOMSelection()},_setBlockCursor:function(e){this._blockCursorVisible=e,this._updateBlockCursorVisible()},_setOverwriteMode:function(e){this._overwriteMode=e,this._updateBlockCursorVisible()},_updateBlockCursorVisible:function(){if(this._blockCursorVisible||this._overwriteMode){if(!this._cursorDiv){var e=this._viewDiv,t=s.createElement(e.ownerDocument,"div");t.className="textviewBlockCursor",this._cursorDiv=t,t.tabIndex=-1,t.style.zIndex="2",t.style.color="transparent",t.style.position="absolute",t.style.pointerEvents="none",t.innerHTML=" ",e.appendChild(t),this._updateDOMSelection()}}else this._cursorDiv&&(this._cursorDiv.parentNode.removeChild(this._cursorDiv),this._cursorDiv=null)},_setMarginOffset:function(e,t){this._marginOffset=e,this._marginDiv.style.display=e?"block":"none",t||(this._metrics=this._calculateMetrics(),this._queueUpdate())},_setWrapOffset:function(e,t){this._wrapOffset=e,t||(this._metrics=this._calculateMetrics(),this._queueUpdate())},_setReadOnly:function(e){this._readonly=e,this._clientDiv.setAttribute("aria-readonly",e?"true":"false")},_setSingleMode:function(e,t){this._singleMode=e,this._updateOverflow(),this._updateStyle(t)},_setNoScroll:function(e,t){this._noScroll=e,this._updateOverflow(),this._updateStyle(t)},_setTabSize:function(e,t){this._tabSize=e,this._customTabSize=void 0;var n=this._clientDiv;s.isOpera?n&&(n.style.OTabSize=this._tabSize+""):s.isWebkit>=537.1?n&&(n.style.tabSize=this._tabSize+""):s.isFirefox>=4?n&&(n.style.MozTabSize=this._tabSize+""):8!==this._tabSize&&(this._customTabSize=this._tabSize),t||(this.redrawLines(),this._resetLineWidth())},_setTheme:function(e){this._theme&&this._theme.removeEventListener("ThemeChanged",this._themeListener.onChanged),this._theme=e,this._theme&&this._theme.addEventListener("ThemeChanged",this._themeListener.onChanged),this._setThemeClass(this._themeClass)},_setThemeClass:function(e,t){this._themeClass=e;var n="textview",i=this._theme.getThemeClass();i&&(n+=" "+i),this._themeClass&&i!==this._themeClass&&(n+=" "+this._themeClass),this._rootDiv.className=n,this._updateStyle(t)},_setUndoStack:function(e){this._undoStack=e},_setWrapMode:function(e,t){this._wrapMode=e&&this._wrappable;var n=this._clientDiv;this._wrapMode?(n.style.whiteSpace="pre-wrap",n.style.wordWrap="break-word"):(n.style.whiteSpace="pre",n.style.wordWrap="normal"),this._updateOverflow(),t||(this.redraw(),this._resetLineWidth()),this._resetLineHeight()},_showCaret:function(e,t,n,i){if(this._clientDiv&&!(this._redrawCount>0||this._ignoreDOMSelection||-1!==this._imeOffset)){var r=this._model,o=this._getSelections(),s=y.editing(o,"down"===this._autoScrollDir),a=this._getScroll(),l=s.getCaret(),d=s.start,h=s.end,c=r.getLineAtOffset(d),u=r.getLineAtOffset(h),f=Math.max(Math.max(d,r.getLineStart(u)),h-1),p=this._getClientWidth(),g=this._getClientHeight(),v=p/4,m=this._getBoundsAtOffset(l===d?d:f),_=m.left,C=m.right,w=m.top,x=m.bottom,S=0,b="object"==typeof n;!e&&!b||s.isEmpty()||(m=this._getBoundsAtOffset(l===h?d:f),S=(m.bottom>x?m.bottom:x)-(m.topa.x+p&&(T=Math.max(C-a.x-p,v));var E=0;wa.y+g&&(E=x-a.y-g),i&&(i>0?E>0&&(E=Math.max(E,i)):0>E&&(E=Math.min(E,i)));var L=b&&"always"===n.scrollPolicy;if(0!==T||0!==E||L){if(b){var k=E>0;0===E&&(E=w-a.y);var A=n.viewAnchor,M=n.selectionAnchor,D=Math.min(Math.max(0,n.viewAnchorOffset||0));E+=Math.floor("top"===A?k?(1-D)*g:-D*g:"bottom"===A?k?D*g:-(1-D)*g:"center"===A?k?g/2+D*g:g/2-(1-D)*g:k?D*g:-D*g),c!==u&&("top"===M&&l!==d?E+=Math.floor(-S):"bottom"===M&&l!==h?E+=Math.floor(S):"center"===M&&(E+=Math.floor(S/2)))}else 0!==E&&"number"==typeof n&&(0>n&&(n=0),n>1&&(n=1),E+=Math.floor(E>0?n*g:-n*g));return this._scrollViewAnimated(T,E,t),g!==this._getClientHeight()||p!==this._getClientWidth()?this._showCaret():this._ensureCaretVisible=!0,!0}return t&&t(),!1}},_startIME:function(){if(-1===this._imeOffset){for(var e=!1,t=this._getSelections(),n=0;n0)&&!this._ignoreDOMSelection&&-1===this._imeOffset&&this._clientDiv){var e,t=this._getSelections(),n=this._domSelection;if(n.lengtht.length&&n.splice(t.length).forEach(function(e){e.destroy()});for(e=0;e1?this._cursorTimer||(this._cursorTimer=i.setInterval(function(){r._cursorVisible=!r._cursorVisible,r._domSelection.forEach(function(e){e.update()})},500)):this._cursorTimer&&(i.clearInterval(this._cursorTimer),this._cursorTimer=null)}},_update:function(e){if(!(this._redrawCount>0)){if(this._updateTimer){var t=this._getWindow();t.clearTimeout(this._updateTimer),this._updateTimer=null,e=!1}var n=this._clientDiv,i=this._viewDiv;if(n){this._metrics.invalid&&(this._ignoreQueueUpdate=!0,this._updateStyle(),this._ignoreQueueUpdate=!1);var r=this._model,o=this._getScroll(!1),a=this._getViewPadding(),l=r.getLineCount(),d=this._getLineHeight(),h=!1,c=!1,u=!1,f=this._metrics.scrollWidth;this._wrapMode&&(n.style.width=(this._metrics.wrapWidth||this._getClientWidth())+"px");var p,g,v,m,_,y,C,w,S,b,T,E=0,L=0;if(this._lineHeight){for(;l>L&&(T=this._getLineHeight(L),!(E+T>o.y));)E+=T,L++;p=L,g=Math.max(0,p-1),m=v=o.y-E,p>0&&(v+=this._getLineHeight(p-1))}else{var k=Math.max(0,o.y)/d;p=Math.floor(k),g=Math.max(0,p-1),v=Math.round((k-g)*d),m=Math.round((k-p)*d),b=l*d}this._topIndexY=m;var A=this._rootDiv,M=A.clientWidth,D=A.clientHeight;if(e){for(_=0,this._leftDiv&&(y=this._leftDiv.getBoundingClientRect(),_=y.right-y.left),C=this._getClientWidth(),w=this._getClientHeight(),S=C,this._wrapMode?this._metrics.wrapWidth&&(S=this._metrics.wrapWidth):S=Math.max(this._maxLineWidth,S);l>L;)T=this._getLineHeight(L,!1),E+=T,L++;b=E}else{w=this._getClientHeight();for(var O,N,I=Math.floor((w+m)/d),R=Math.min(p+I,l-1),B=Math.min(R+1,l-1),P=n.firstChild;P;){O=P.lineIndex;var F=P.nextSibling;O>=g&&B>=O&&!P.lineRemoved&&-1!==P.lineIndex||(this._mouseWheelLine===P?(P.style.display="none",P.lineIndex=-1):n.removeChild(P)),P=F}P=this._getLineNext();var V=i.ownerDocument,U=V.createDocumentFragment();for(O=g;B>=O;O++)!P||P.lineIndex>O?new x(this,O).create(U,null):(U.firstChild&&(n.insertBefore(U,P),U=V.createDocumentFragment()),P&&P.lineChanged&&(P=new x(this,O).create(U,P),P.lineChanged=!1),P=this._getLineNext(P));U.firstChild&&n.insertBefore(U,P),s.isWebkit&&!this._wrapMode&&(n.style.width="0x7fffffffpx");var K;P=this._getLineNext();for(var W=w+v,H=!1;P;){if(N=P.lineWidth,void 0===N){K=P._line.getBoundingClientRect(),N=P.lineWidth=Math.ceil(K.right-K.left);var j=K.bottom-K.top;this._lineHeight?this._lineHeight[P.lineIndex]=j:0!==d&&0!==j&&Math.ceil(d)!==Math.ceil(j)&&(this._variableLineHeight=!0,this._lineHeight=[],this._lineHeight[P.lineIndex]=j)}this._lineHeight&&!H&&(W-=this._lineHeight[P.lineIndex],0>W&&(R=P.lineIndex,H=!0)),this._wrapMode||(N>=this._maxLineWidth&&(this._maxLineWidth=N,this._maxLineIndex=P.lineIndex),this._checkMaxLineIndex===P.lineIndex&&(this._checkMaxLineIndex=-1)),P.lineIndex===p&&(this._topChild=P),P.lineIndex===R&&(this._bottomChild=P),P=this._getLineNext(P)}if(-1!==this._checkMaxLineIndex&&(O=this._checkMaxLineIndex,this._checkMaxLineIndex=-1,O>=0&&l>O)){var G=new x(this,O);K=G.getBoundingClientRect(),N=K.right-K.left,N>=this._maxLineWidth&&(this._maxLineWidth=N,this._maxLineIndex=O),G.destroy()}for(;l>L;)T=this._getLineHeight(L,R>=L),E+=T,L++;b=E,this._updateRuler(this._leftDiv,p,B,D),this._updateRuler(this._rightDiv,p,B,D),this._updateRuler(this._innerRightDiv,p,B,D),this._updateRuler(this._marginDiv,p,B,D),_=0,this._leftDiv&&(y=this._leftDiv.getBoundingClientRect(),_=y.right-y.left);var $=0;if(this._rightDiv){var z=this._rightDiv.getBoundingClientRect();$=z.right-z.left}i.style.left=_+"px",i.style.right=$+"px";var Y=this._scrollDiv;if(Y.style.height=b+(s.isWebkit?0:a.bottom)+"px",C=this._getClientWidth(),!this._singleMode&&!this._wrapMode&&!this._noScroll){var X=w,q=w,J="scroll"===i.style.overflowX;J?X+=f:q-=f;var Z=C,Q=C,et="scroll"===i.style.overflowY;et?Z+=f:Q-=f,w=X,C=Z,b>w&&(u=!0,C=Q),this._maxLineWidth>C&&(c=!0,w=q,b>w&&(u=!0,C=Q)),J!==c&&(i.style.overflowX=c?"scroll":"hidden"),et!==u&&(i.style.overflowY=u?"scroll":"hidden"),h=J!==c||et!==u}var tt=C;this._wrapMode?this._metrics.wrapWidth&&(tt=this._metrics.wrapWidth):tt=Math.max(this._maxLineWidth+this._getInnerRightWidth(),tt),S=tt,(!s.isIE||s.isIE>=9)&&this._maxLineWidth>C&&(tt+=a.right+a.left),Y.style.width=tt+"px",this._clipScrollDiv&&(this._clipScrollDiv.style.width=tt+"px"),o=this._getScroll(!1);var nt=this._innerRightDiv;nt&&(nt.style.right=$+("scroll"===i.style.overflowY?this._metrics.scrollWidth:0)+"px",nt.style.bottom=("scroll"===i.style.overflowX?f:0)+"px")}if(this._scrollHeight=b,this._vScrollDiv){var it=w-8,rt=Math.max(15,Math.ceil(Math.min(1,it/(b+a.top+a.bottom))*it));this._vScrollDiv.style.left=_+C-8+"px",this._vScrollDiv.style.top=Math.floor(Math.max(0,o.y*it/b))+"px",this._vScrollDiv.style.height=rt+"px"}if(!this._wrapMode&&this._hScrollDiv){var ot=C-8,st=Math.max(15,Math.ceil(Math.min(1,ot/(this._maxLineWidth+a.left+a.right))*ot));this._hScrollDiv.style.left=_+Math.floor(Math.max(0,Math.floor(o.x*ot/this._maxLineWidth)))+"px",this._hScrollDiv.style.top=w-9+"px",this._hScrollDiv.style.width=st+"px"}var at,lt,dt=o.x,ht=this._clipDiv,ct=this._overlayDiv,ut=this._marginDiv;if(ut&&(ut.style.left=-dt+_+this._metrics.marginWidth+a.left+"px",ut.style.bottom=("scroll"===i.style.overflowX?f:0)+"px"),ht){ht.scrollLeft=dt,ht.scrollTop=0,at=_+a.left,lt=a.top;var ft=C,pt=w,gt=0,vt=-v;0===o.x&&(at-=a.left,ft+=a.left,gt=a.left),o.x+C===S&&(ft+=a.right),0===o.y&&(lt-=a.top,pt+=a.top,vt+=a.top),o.y+w===b&&(pt+=a.bottom),ht.style.left=at+"px",ht.style.top=lt+"px",ht.style.right=M-ft-at+"px",ht.style.bottom=D-pt-lt+"px",n.style.left=gt+"px",n.style.top=vt+"px",n.style.width=S+"px",n.style.height=w+v+"px",ct&&(ct.style.left=n.style.left,ct.style.top=n.style.top,ct.style.width=n.style.width,ct.style.height=n.style.height)}else{at=dt,lt=v;var mt=dt+C,_t=v+w;0===at&&(at-=a.left),0===lt&&(lt-=a.top),mt===S&&(mt+=a.right),o.y+w===b&&(_t+=a.bottom),n.style.clip="rect("+lt+"px,"+mt+"px,"+_t+"px,"+at+"px)","rtl"==document.dir?n.style.right=-dt+_+a.left+"px":n.style.left=-dt+_+a.left+"px",n.style.width=(this._wrapMode||s.isWebkit?S:C+dt)+"px",e||(n.style.top=-v+a.top+"px",n.style.height=w+v+"px"),ct&&(ct.style.clip=n.style.clip,ct.style.left=n.style.left,ct.style.width=n.style.width,e||(ct.style.top=n.style.top,ct.style.height=n.style.height))}if(this._updateDOMSelection(),h){var yt=this._ensureCaretVisible;this._ensureCaretVisible=!1,yt&&this._showCaret(),this._queueUpdate()}}}},_updateOverflow:function(){var e=this._viewDiv;this._noScroll?e.style.overflow="hidden":this._wrapMode?(e.style.overflowX="hidden",e.style.overflowY="scroll"):e.style.overflow="hidden"},_updateRuler:function(e,t,n,i){if(e)for(var r=this._parent.ownerDocument,o=this._getLineHeight(),a=this._getViewPadding(),l=e.firstChild;l;){var d=l._ruler,c=d.getOverview();if(l.rulerChanged&&(h(d.getRulerStyle(),l),e.rulerWidth=void 0),"fixed"!==c){var u=o;"page"===c&&(u+=this._topIndexY),l.style.top=-u+"px",l.style.height=i+u+"px";var f,p=l.firstChild;p?(f=p,p=p.nextSibling):(f=s.createElement(r,"div"),f.style.visibility="hidden",l.appendChild(f));var g,v;l.rulerChanged&&f&&(g=-1,v=d.getWidestAnnotation(),v&&(h(v.style,f),v.html&&(f.innerHTML=v.html)),f.lineIndex=g,f.style.height=o+a.top+"px");var m,_,y;if("page"===c){for(y=d.getAnnotations(t,n+1);p;){g=p.lineIndex;var C=p.nextSibling;g>=t&&n>=g&&!p.lineChanged||l.removeChild(p),p=C}for(p=l.firstChild.nextSibling,_=r.createDocumentFragment(),g=t;n>=g;g++)!p||p.lineIndex>g?(m=s.createElement(r,"div"),v=y[g],v&&(h(v.style,m),v.html&&(m.innerHTML=v.html),m.annotation=v),m.lineIndex=g,m.style.height=this._getLineHeight(g)+"px",_.appendChild(m)):(_.firstChild&&(l.insertBefore(_,p),_=r.createDocumentFragment()),p&&(p=p.nextSibling));_.firstChild&&l.insertBefore(_,p)}else{var w,x,S=this._getClientHeight(),b=this._model.getLineCount(),T=o*b,E=S+a.top+a.bottom-2*this._metrics.scrollWidth;if(E>T?(w=o,x=a.top):(w=E/b,x=this._metrics.scrollWidth),l.rulerChanged){for(var L=l.childNodes.length;L>1;)l.removeChild(l.lastChild),L--;y=d.getAnnotations(0,b),_=r.createDocumentFragment();for(var k in y)g=k>>>0,0>g||(m=s.createElement(r,"div"),v=y[k],h(v.style,m),m.style.position="absolute",m.style.top=x+o+Math.floor(g*w)+"px",v.html&&(m.innerHTML=v.html),m.annotation=v,m.lineIndex=g,_.appendChild(m));l.appendChild(_)}else if(l._oldTrackHeight!==E)for(m=l.firstChild?l.firstChild.nextSibling:null;m;)m.style.top=this._metrics.scrollWidth+o+Math.floor(m.lineIndex*w)+"px",m=m.nextSibling;l._oldTrackHeight=E}l.rulerChanged=!1,l=l.nextSibling}else l.rulerChanged=!1,l=l.nextSibling}},_updateStyleSheet:function(){var e="";if(s.isWebkit&&this._metrics.scrollWidth>0&&(e+="\n.textview ::-webkit-scrollbar-corner {background: #eeeeee;}"),e){var t=this._clientDiv.ownerDocument,n=t.getElementById("_textviewStyle");if(n)n.removeChild(n.firstChild),n.appendChild(t.createTextNode(e));else{n=s.createElement(t,"style"),n.id="_textviewStyle";var i=t.getElementsByTagName("head")[0]||t.documentElement;n.appendChild(t.createTextNode(e)),i.insertBefore(n,i.firstChild)}}},_updateStyle:function(e,t){if(!e&&s.isIE&&(this._rootDiv.style.lineHeight="normal"),t=this._metrics=t||this._calculateMetrics(),this._variableLineHeight&&(this._variableLineHeight=!1,this._resetLineHeight()),this._rootDiv.style.lineHeight=s.isIE?t.lineHeight-(t.lineTrim.top+t.lineTrim.bottom)+"px":"normal",this._updateStyleSheet(),s.isMac&&s.isWebkit){var n=this._viewDiv;t.invalid||0!==t.scrollWidth?(n.style.pointerEvents="",n.style.zIndex=""):(n.style.pointerEvents="none",n.style.zIndex="2")}e||(this.redraw(),this._resetLineWidth())}},i.EventTarget.addMixin(S.prototype),{TextView:S}}),define("orion/editor/projectionTextModel",["orion/editor/textModel","orion/editor/eventTarget"],function(e,t){function n(e){this._model=e,this._projections=[];var t=this;this._listener={onChanged:function(e){t._onChanged(e)},onChanging:function(e){t._onChanging(e)}},e.addEventListener("postChanged",this._listener.onChanged),e.addEventListener("preChanging",this._listener.onChanging)}return n.prototype={destroy:function(){this._model&&(this._model.removeEventListener("postChanged",this._listener.onChanged),this._model.removeEventListener("preChanging",this._listener.onChanging),this._model=null)},addProjection:function(t){if(t){var n=this._model,i=this._projections;t._lineIndex=n.getLineAtOffset(t.start),t._lineCount=n.getLineAtOffset(t.end)-t._lineIndex;var r=t.text;r||(r=""),t._model="string"==typeof r?new e.TextModel(r,n.getLineDelimiter()):r;var o=this.mapOffset(t.start,!0),s=t.end-t.start,a=t._lineCount,l=t._model.getCharCount(),d=t._model.getLineCount()-1,h={type:"Changing",text:t._model.getText(),start:o,removedCharCount:s,addedCharCount:l,removedLineCount:a,addedLineCount:d};this.onChanging(h);var c=this._binarySearch(i,t.start);i.splice(c,0,t);var u={type:"Changed",start:o,removedCharCount:s,addedCharCount:l,removedLineCount:a,addedLineCount:d};this.onChanged(u)}},getProjections:function(){return this._projections.slice(0)},getBaseModel:function(){return this._model},mapOffset:function(e,t){var n,i,r=this._projections,o=0;if(t){for(n=0;ne));n++){if(i.end>e)return-1;o+=i._model.getCharCount()-(i.end-i.start)}return e+o}for(n=0;ne-o));n++){var s=i._model.getCharCount();if(i.start+s>e-o)return-1;o+=s-(i.end-i.start)}return e-o},removeProjection:function(e){this._removeProjection(e)},_removeProjection:function(e,t){var n,i=0;for(n=0;n1;)n=Math.floor((i+r)/2),t<=e[n].start?i=n:r=n;return i},getCharCount:function(){for(var e=this._model.getCharCount(),t=this._projections,n=0;ne)return null;var n,i,r,o=this._model,s=this._projections,a=0,l=[],d=0;for(n=0;n=e-a));n++){if(i=r._model.getLineCount()-1,r._lineIndex+i>=e-a){var h=e-(r._lineIndex+a);if(i>h)return r._model.getLine(h,t);l.push(r._model.getLine(i))}d=r.end,a+=i-r._lineCount}for(d=Math.max(d,o.getLineStart(e-a));ne-a));n++){if(l.push(o.getText(d,r.start)),i=r._model.getLineCount()-1,r._lineIndex+i>e-a)return l.push(r._model.getLine(0,t)),l.join("");l.push(r._model.getText()),d=r.end,a+=i-r._lineCount}var c=o.getLineEnd(e-a,t);return c>d&&l.push(o.getText(d,c)),l.join("")},getLineAtOffset:function(e){for(var t=this._model,n=this._projections,i=0,r=0,o=0;oe-i)break;var a=s._model.getCharCount();if(s.start+a>e-i){var l=e-(s.start+i);r+=s._model.getLineAtOffset(l),i+=l;break}r+=s._model.getLineCount()-1-s._lineCount,i+=a-(s.end-s.start)}return t.getLineAtOffset(e-i)+r},getLineCount:function(){for(var e=this._model,t=this._projections,n=e.getLineCount(),i=0;ie)return-1;for(var n=this._model,i=this._projections,r=0,o=0,s=0;se-r)break;var l=a._model.getLineCount()-1;if(a._lineIndex+l>e-r){var d=e-(a._lineIndex+r);return a._model.getLineEnd(d,t)+a.start+o}o+=a._model.getCharCount()-(a.end-a.start),r+=l-a._lineCount}return n.getLineEnd(e-r,t)+o},getLineStart:function(e){if(0>e)return-1;for(var t=this._model,n=this._projections,i=0,r=0,o=0;o=e-i)break;var a=s._model.getLineCount()-1;if(s._lineIndex+a>=e-i){var l=e-(s._lineIndex+i);return s._model.getLineStart(l)+s.start+r}r+=s._model.getCharCount()-(s.end-s.start),i+=a-s._lineCount}return t.getLineStart(e-i)+r},getText:function(e,t){void 0===e&&(e=0);var n,i,r,o=this._model,s=this._projections,a=0,l=[];for(n=0;ne-a));n++){if(r=i._model.getCharCount(),i.start+r>e-a){if(void 0!==t&&i.start+r>t-a)return i._model.getText(e-(i.start+a),t-(i.start+a));l.push(i._model.getText(e-(i.start+a))),e=i.end+a+r-(i.end-i.start)}a+=r-(i.end-i.start)}var d=e-a;if(void 0!==t){for(;nt-a));n++){if(l.push(o.getText(d,i.start)),r=i._model.getCharCount(),i.start+r>t-a)return l.push(i._model.getText(0,t-(i.start+a))),l.join("");l.push(i._model.getText()),d=i.end,a+=r-(i.end-i.start)}l.push(o.getText(d,t-a))}else{for(;ni));e++);var s=e;for(e=0;e=r));e++);var a=e,l=this._model,d=n.baseText.length-(r-i);for(e=a;ee));a++){if(l.end>e)return-1;s+=l._model.getCharCount()-(l.end-l.start)}return e+s}var n=!!this._change,i=this._change||{},r=e.start,o=r+e.removedCharCount;if(i.baseStart=r,i.baseEnd=o,i.baseText=e.text,i.addedLineCount=e.addedLineCount,!n){this._change=i,i.text=e.text;var s,a,l,d=this._projections;i.start=t(r),-1===i.start&&(i.text=this._model.getText(l.start,r)+i.text,i.addedLineCount+=this._model.getLineAtOffset(r)-this._model.getLineAtOffset(l.start),i.start=l.start+s),i.end=t(o),-1===i.end&&(i.text+=this._model.getText(o,l.end),i.addedLineCount+=this._model.getLineAtOffset(l.end)-this._model.getLineAtOffset(o),i.end=l.start+s)}i.addedCharCount=i.text.length,i.removedCharCount=i.end-i.start,i.removedLineCount=this.getLineAtOffset(i.end)-this.getLineAtOffset(i.start);var h={type:"Changing",text:i.text,start:i.start,removedCharCount:i.removedCharCount,addedCharCount:i.addedCharCount,removedLineCount:i.removedLineCount,addedLineCount:i.addedLineCount};this.onChanging(h)},onChanging:function(e){return this.dispatchEvent(e)},onChanged:function(e){return this.dispatchEvent(e)},setLineDelimiter:function(e){this._model.setLineDelimiter(e)},setText:function(e,t,n){function i(e){for(o=0,r=0;oe-r));o++){var t=s._model.getCharCount();if(s.start+t>e-r)return-1;r+=t-(s.end-s.start)}return e-r}this._change={text:e||"",start:t||0,end:void 0===n?this.getCharCount():n};var r,o,s,a,l,d=this._projections,h=i(this._change.start);-1===h&&(a={projection:s,start:this._change.start-(s.start+r)},h=s.end);var c=i(this._change.end);-1===c&&(l={projection:s,end:this._change.end-(s.start+r)},c=s.start),a&&l&&a.projection===l.projection?s._model.setText(this._change.text,a.start,l.end):(this._model.setText(this._change.text,h,c),a&&(s=a.projection,s._model.setText("",a.start)),l&&(s=l.projection,s._model.setText("",0,l.end),s.start=s.end,s._lineCount=0)),this._change=void 0}},t.EventTarget.addMixin(n.prototype),{ProjectionTextModel:n}}),define("orion/editor/tooltip",["i18n!orion/editor/nls/messages","orion/editor/textView","orion/editor/projectionTextModel","orion/Deferred","orion/editor/util","orion/webui/littlelib","orion/util"],function(e,t,n,i,r,o,s){function a(e){this._view=e;var t=e.getOptions("parent");this._create(t?t.ownerDocument:document)}return a.getTooltip=function(e){return e._tooltip||(e._tooltip=new a(e)),e._tooltip},a.prototype={_create:function(e){if(!this._tooltipDiv){var t=this._tooltipDiv=s.createElement(e,"div");t.tabIndex=0,t.className="textviewTooltip",t.setAttribute("aria-live","assertive"),t.setAttribute("aria-atomic","true"),this._tooltipDiv.style.visibility="hidden",this._tipShowing=!1,e.body.appendChild(t);var n=this;r.addEventListener(e,"mousedown",this._mouseDownHandler=function(e){n.isVisible()&&(r.contains(t,e.target||e.srcElement)||n._locked||n.hide())},!0),r.addEventListener(e,"scroll",this._scrollHandler=function(){n.isVisible()&&(n._topPixel!==n._view.getTopPixel()||n._leftPixel!==n._view.getHorizontalPixel())&&n.hide()},!0),r.addEventListener(e,"mousemove",this._mouseMoveHandler=function(e){n._prevX&&n._prevX===e.clientX&&n._prevY&&n._prevY===e.clientY||(n._prevX=e.clientX,n._prevY=e.clientY,!n.isVisible()||n._locked||n._hasFocus()||n._isInRect(n._outerArea,e.clientX,e.clientY)||n.hide())},!0),r.addEventListener(t,"focus",function(){n._locked||n._tooltipDiv.classList.add("textViewTooltipOnFocus")},!1),r.addEventListener(t,"blur",function(){n._tooltipDiv.classList.remove("textViewTooltipOnFocus")},!1),r.addEventListener(t,"mouseenter",function(){n._locked||n._tooltipDiv.classList.add("textViewTooltipOnHover")},!1),r.addEventListener(t,"mouseleave",function(){n._hasFocus()||n._tooltipDiv.classList.remove("textViewTooltipOnHover")},!1),r.addEventListener(t,"keydown",function(e){27===e.keyCode&&(n._locked||n.hide())},!1),this._view.addEventListener("Destroy",function(){n.destroy()})}},destroy:function(){if(this._tooltipDiv){this.hide();var e=this._tooltipDiv.parentNode;e&&e.removeChild(this._tooltipDiv);var t=this._tooltipDiv.ownerDocument;r.removeEventListener(t,"mousedown",this._mouseDownHandler,!0),r.removeEventListener(t,"scroll",this._scrollHandler,!0),r.removeEventListener(t,"mousemove",this._mouseMoveHandler,!0),this._tooltipDiv=null}},show:function(e,t,n){this._locked=t,this._giveFocus=n,this._topPixel=this._view.getTopPixel(),this._leftPixel=this._view.getHorizontalPixel(),this._processInfo(e.getTooltipInfo())},update:function(e,t){e&&(t?this._showContents(null,e.getTooltipInfo(),!0):this._processInfo(e.getTooltipInfo(),!0))},onHover:function(e,t,n){e&&(this._isInRect(this._anchorArea,t,n)||this._isInRect(this._tooltipArea,t,n)||this._locked||this._hasFocus()||this._processInfo(e.getTooltipInfo()))},hide:function(e){e&&(this._locked=void 0),!this._locked&&this.isVisible()&&(this.hover&&this.hover.clearQuickFixes(),this._hasFocus()&&this._view.focus(),this._tooltipContents&&(this._tooltipDiv.removeChild(this._tooltipContents),this._tooltipContents=null),this._tooltipDiv.classList.remove("textviewTooltipCodeProjection"),this._tooltipDiv.classList.remove("textviewTooltipOnHover"),this._tooltipDiv.classList.remove("textviewTooltipOnFocus"),this._tooltipDiv.style.visibility="hidden",this._tipShowing=!1,this._tooltipDiv.style.left="",this._tooltipDiv.style.right="",this._tooltipDiv.style.top="",this._tooltipDiv.style.bottom="",this._tooltipDiv.style.width="auto",this._tooltipDiv.style.maxWidth="",this._tooltipDiv.style.height="auto",this._tooltipDiv.style.maxHeight="",this._tooltipDiv.style.overflowX="",this._tooltipDiv.style.overflowY="",this._giveFocus=void 0,this._anchorArea=void 0,this._tooltipArea=void 0,this._outerArea=void 0,this._hoverPromises&&this._hoverPromises.forEach(function(e){e.resolved||e.cancel()}),this._hoverPromises=void 0,this._tipRect=void 0)},isVisible:function(){return this._tipShowing},_processInfo:function(e,t){if(this._tooltipDiv){var n;if(t&&this._tooltipContents?(this._tooltipContents.innerHTML="",n=this._tooltipContents):n=s.createElement(this._tooltipDiv.ownerDocument,"div"),e){if(e.contents&&this._renderImmediateInfo(n,e.contents,e.context))return this._showContents(n,e,t),!0;if(this.hover&&e.context&&(this._hoverPromises=this.hover.computeHoverInfo(e.context),this._hoverPromises)){var r=this,o=this._hoverPromises.slice(0);return o.forEach(function(o){i.when(o,function(i){if(r._hoverPromises){var s=r._hoverPromises.indexOf(o);s>=0&&r._hoverPromises.splice(s,1)}i&&r._renderPluginContent(n,i)&&(i.offsetStart&&(e.context.offsetStart=i.offsetStart),i.offsetEnd&&(e.context.offsetEnd=i.offsetEnd),i.allowFullWidth&&(e.allowFullWidth=i.allowFullWidth),r._showContents(n,e,t))},function(e){console&&e&&"Cancel"!==e.name&&(console.log("Error computing hover tooltip"),console.log(e&&e.stack))})}),!0}}}},_showContents:function(e,t,n){n?this._tooltipArea&&t.tooltipArea&&(this._tooltipArea.left!==t.tooltipArea.left||this._tooltipArea.top!==t.tooltipArea.top||this._tooltipArea.width!==t.tooltipArea.width||this._tooltipArea.height!==t.tooltipArea.height)&&(this._anchorArea=null,this._tooltipArea=null,this._outerArea=null):this.hide(),e&&(this._tooltipContents&&this._tooltipDiv.removeChild(this._tooltipContents),this._tooltipContents=e,this._tooltipDiv.appendChild(e)),this._anchorArea||(this._anchorArea=this._computeAnchorArea(t)),this._tooltipArea||(this._tooltipArea=this._computeTooltipArea(t,this._anchorArea,this._tooltipDiv)),this._outerArea||(this._outerArea=this._computeOuterArea(this._anchorArea,this._tooltipArea)),this._tooltipDiv.style.visibility="visible",this._tipShowing=!0,this._giveFocus&&(this._setInitialFocus(this._tooltipDiv),this._giveFocus=void 0)},_computeAnchorArea:function(e){if(e.anchorArea&&e.anchorArea.top&&e.anchorArea.left&&e.anchorArea.height&&e.anchorArea.width)return e.anchorArea;if(e.context){if(e.context.offsetStart&&e.context.offsetEnd){var t=this.mapOffset(e.context.offsetStart,!1),n=this.mapOffset(e.context.offsetEnd,!1);return this._computeRectangleFromOffset(t,n)}if(e.context.offset>=0){var i=this.mapOffset(e.context.offset,!1),r=this._view.getNextOffset(i,{unit:"wordend",count:0}),o=this._view.getNextOffset(r,{unit:"word",count:-1});return this._computeRectangleFromOffset(o,r)}}return{top:0,left:0,height:0,width:0}},_computeTooltipArea:function(e,t,n){var i=n.ownerDocument.documentElement,r=16;if(e.tooltipArea&&e.tooltipArea.top&&e.tooltipArea.left&&e.tooltipArea.height&&e.tooltipArea.width)return n.style.overflowY="auto",n.style.resize="none",n.style.top=e.tooltipArea.top+"px",n.style.left=e.tooltipArea.left+"px",n.style.height=e.tooltipArea.height-r+"px",n.style.width=e.tooltipArea.width-r+"px",e.tooltipArea;var o=n.getBoundingClientRect(),s={width:o.width,height:o.height},a=n.getElementsByTagName("img")[0];a&&!a.complete&&0===a.width&&(s.width+=30);var l=e.position?e.position:"below",d=(this._view._rootDiv?this._view._rootDiv:i).getBoundingClientRect(),h=d.left,c=d.top,u=d.width,f=d.height,p=u,g=f;e.allowFullWidth||(p=Math.min(u/2,600),g=Math.min(f/2,400),s.width=Math.min(s.width,p),s.height=Math.min(s.height,g)),n.style.width=s.width-r+"px",s.height=Math.min(n.getBoundingClientRect().height,g),25+r>s.height&&s.width>p-r&&(s.height=40+r);var v=f-(t.top+t.height-c),m=t.top-c,_=u-(t.left+t.width-h);"above"===l&&s.height>m&&s.height<=v?l="below":"below"===l&&s.height>v&&s.height<=m&&(l="above");var y=e.tooltipOffsetX?e.tooltipOffsetX:0,C=e.tooltipOffsetY?e.tooltipOffsetY:0;switch(l){case"left":s.top=s.height+C>v+t.height?f+c-s.height:t.top+C,s.top=Math.max(s.top,c),s.left=Math.max(t.left-s.width+y,h);break;case"right":s.top=s.height+C>v+t.height?f+c-s.height:t.top+C,s.top=Math.max(s.top,c),s.left=Math.max(t.left+t.width+y,h);break;case"above":s.left=s.width+y>_+t.width?u+h-s.width:t.left+y,s.left=Math.max(s.left,h),s.top=Math.max(t.top-s.height+C,c);break;case"below":s.left=s.width+y>_+t.width?u+h-s.width:t.left+y,s.left=Math.max(s.left,h),s.top=Math.max(t.top+t.height+C,c)}return s.maxWidth=Math.min(u+h-s.left,u),s.maxHeight=Math.min(f+c-s.top,f),n.style.maxWidth=s.maxWidth-r+"px",n.style.maxHeight=s.maxHeight-r+"px",n.style.width=s.width-r+"px",n.style.height=s.height-r+"px",n.style.left=s.left+"px",n.style.top=s.top+"px",s},_computeOuterArea:function(e,t){var n=Math.min(e.left,t.left),i=Math.min(e.top,t.top),r=e.left+e.width,o=t.left+t.width,s=Math.max(r,o),a=e.top+e.height,l=t.top+t.height,d=Math.max(a,l);return{left:n,top:i,width:s-n,height:d-i}},_hasFocus:function(){var e=this._tooltipDiv;return e?r.contains(e,e.ownerDocument.activeElement):!1},_isNode:function(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},_setInitialFocus:function(e){var t=o.$("button",e);if(t)return void t.focus();var n=o.$("a",e);if(n){n.focus();var i=this;return void n.addEventListener("click",function(){i.hide()})}var r=o.firstTabbable(e);r&&r.focus()},_isInRect:function(e,t,n){if(!e)return!1;var i=t>=e.left&&t<=e.left+e.width,r=n>=e.top&&n<=e.top+e.height;return i&&r},mapOffset:function(e){var t=this._view,n=t.getModel();return n.getBaseModel&&(e=n.mapOffset(e,!0)),e},_computeRectangleFromOffset:function(e,t){var n=this._view,i=n.getLineAtOffset(e),r=n.getLineAtOffset(t);i!==r&&(t=n.getModel().getLineEnd(i));var o=n.getLineHeight(i),s=n.getLocationAtOffset(e),a=n.getLocationAtOffset(t),l={x:s.x,y:s.y,width:a.x-s.x,height:o};return l=this._view.convert(l,"document","page"),{left:l.x,top:l.y,width:l.width,height:l.height}},_renderPluginContent:function(e,t){var n=this._tooltipDiv.ownerDocument;if("string"!=typeof t&&"undefined"==typeof t.content)return!1;var i=s.createElement(n,"div");if(t.title){var r=s.createElement(n,"div");r.innerHTML=this.hover.renderMarkDown?this.hover.renderMarkDown(t.title):t.title,r.classList.add("hoverTooltipTitle"),i.appendChild(r)}var o=s.createElement(n,"div");if("string"==typeof t)o.appendChild(n.createTextNode(t));else switch(t.type){case"delegatedUI":case"html":if(t.content){var a=n.createElement("iframe");a.id="HtmlHover",a.name="HTML Hover",a.type="text/html",a.sandbox="allow-scripts allow-same-origin allow-forms",a.style.border="none",a.style.width="100%",a.style.height="100%",this._tooltipDiv.style.paddingBottom="5px",a.srcdoc=t.content,t.width&&(a.style.width=t.width),t.height&&(a.style.height=t.height),i.style.height="100%",e.style.height="100%",i.appendChild(a)}break;case"markdown":this.hover.renderMarkDown&&(o.innerHTML=this.hover.renderMarkDown(t.content));break;default:o.appendChild(n.createTextNode(t.content))}return i.appendChild(o),e.appendChild(i),!0},_renderImmediateInfo:function(e,i,r){if(i instanceof Array&&(i=this._getAnnotationContents(i,r),!i))return!1;if("string"==typeof i)return e.innerHTML=i,!0;if(this._isNode(i))return e.appendChild(i),!0;if(i instanceof n.ProjectionTextModel){var o=this._view,s=o.getOptions();s.wrapMode=!1,s.parent=e;var a="tooltipTheme",l=s.themeClass;l?(l=l.replace(a,""),l&&(l=" "+l),l=a+l):l=a,s.themeClass=l;var d=this._contentsView=new t.TextView(s),h={onLineStyle:function(e){o.onLineStyle(e)}};d.addEventListener("LineStyle",h.onLineStyle),d.setModel(i),this._tooltipDiv.appendChild(e),this._tooltipDiv.classList.add("textviewTooltipCodeProjection");var c=d.computeSize();return e.style.width=c.width+8+"px",e.style.height=c.height+8+"px",d.resize(),this._tooltipDiv.removeChild(e),!0}return!1},_getAnnotationContents:function(t,i){function o(e,t){var n=e.title,o=s.createElement(f,"div");if(o.className="tooltipRow",e.html){var l=s.createElement(f,"div");l.className="tooltipImage",l.innerHTML=e.html,l.lastChild&&r.addEventListener(l.lastChild,"click",function(){var t=e.start,n=e.end;g.getBaseModel&&(t=g.mapOffset(t,!0),n=g.mapOffset(n,!0)),p.setSelection(t,n,1/3,function(){a.hide()})},!1),o.appendChild(l)}if(!n){var d=v.getLineStart(v.getLineAtOffset(e.start)),h=v.getLineEnd(v.getLineAtOffset(e.end),!0);n=v.getText(d,h)}if("function"==typeof n&&(n=e.title()),"string"==typeof n){var c=s.createElement(f,"span");c.className="tooltipTitle",c.appendChild(f.createTextNode(n)),n=c}return o.appendChild(n),t&&a.hover.renderQuickFixes(e,o),i&&(i.offsetStart=e.start,i.offsetEnd=e.end),o}var a=this,l=a.hover?!0:!1;l&&i&&i.source&&i.source.indexOf("ruler")>=0&&t.length>1&&(l=!1);for(var d,h=[],c=0;c0&&m.addProjection({start:0,end:_}),m}if(1===t.length){if(u=o(t[0],l),u&&u.firstChild){var C=u.firstChild.className;C&&(C+=" "),C+="single",u.firstChild.className=C}return u}var w=s.createElement(f,"div"),x=s.createElement(f,"multi_anno");x.appendChild(f.createTextNode(e.multipleAnnotations)),w.appendChild(x);for(var S=0;S",overviewStyle:{styleClass:"annotationOverview "+o}};i?s.lineStyle={styleClass:"annotationLine "+o}:s.rangeStyle={styleClass:"annotationRange "+o},n.registerType(t,s)}function o(){}function s(e,t,n,i,r){var o;for(void 0===i&&(i=-1),void 0===r&&(r=e.length);r-i>1;)if(o=Math.floor((r+i)/2),t<=e[o].start)r=o;else{if(n&&t",_expandedStyle:{styleClass:"annotation expanded"},_collapsedHTML:"",_collapsedStyle:{styleClass:"annotation collapsed"},_collapse:function(){return this.expanded?(this.expanded=!1,this.html=this._collapsedHTML,this.style=this._collapsedStyle,this._annotationModel&&this._annotationModel.modifyAnnotation(this),!0):!1},_expand:function(){return this.expanded?!1:(this.expanded=!0,this.html=this._expandedHTML,this.style=this._expandedStyle,this._annotationModel&&this._annotationModel.modifyAnnotation(this),!0)},_collapseImpl:function(e){if(this._collapse()){e&&this._forEachOverlaping(function(e){e.expanded||(e._expandImpl(!1),e._recollapse=!0)});var t=this._projectionModel,n=t.getBaseModel();this._projection={annotation:this,start:n.getLineStart(n.getLineAtOffset(this.start)+1),end:n.getLineEnd(n.getLineAtOffset(this.end),!0)},t.addProjection(this._projection)}},_expandImpl:function(e){this._expand()&&(this._projectionModel._removeProjection(this._projection,!this._annotationModel),e&&this._forEachOverlaping(function(e){e._recollapse&&(e._collapseImpl(!1),e._recollapse=!1)}))},_forEachOverlaping:function(e){if(this._annotationModel)for(var t=this._annotationModel.getAnnotations(this.start,this.end);t.hasNext();){var i=t.next();i!==this&&i.type===n.ANNOTATION_FOLDING&&e.call(this,i)}},collapse:function(){this._recollapse=!1,this._collapseImpl(!0)},expand:function(){this._recollapse=!1,this._expandImpl(!0)}},n.ANNOTATION_ERROR="orion.annotation.error",n.ANNOTATION_WARNING="orion.annotation.warning",n.ANNOTATION_TASK="orion.annotation.task",n.ANNOTATION_BREAKPOINT="orion.annotation.breakpoint",n.ANNOTATION_BOOKMARK="orion.annotation.bookmark",n.ANNOTATION_FOLDING="orion.annotation.folding",n.ANNOTATION_CURRENT_BRACKET="orion.annotation.currentBracket",n.ANNOTATION_MATCHING_BRACKET="orion.annotation.matchingBracket",n.ANNOTATION_CURRENT_LINE="orion.annotation.currentLine",n.ANNOTATION_CURRENT_SEARCH="orion.annotation.currentSearch",n.ANNOTATION_MATCHING_SEARCH="orion.annotation.matchingSearch",n.ANNOTATION_READ_OCCURRENCE="orion.annotation.readOccurrence",n.ANNOTATION_WRITE_OCCURRENCE="orion.annotation.writeOccurrence",n.ANNOTATION_SELECTED_LINKED_GROUP="orion.annotation.selectedLinkedGroup",n.ANNOTATION_CURRENT_LINKED_GROUP="orion.annotation.currentLinkedGroup",n.ANNOTATION_LINKED_GROUP="orion.annotation.linkedGroup",n.ANNOTATION_BLAME="orion.annotation.blame",n.ANNOTATION_CURRENT_BLAME="orion.annotation.currentBlame",n.ANNOTATION_DIFF_ADDED="orion.annotation.diffAdded",n.ANNOTATION_DIFF_DELETED="orion.annotation.diffDeleted",n.ANNOTATION_DIFF_MODIFIED="orion.annotation.diffModified";var d={};return n.registerType=function(e,t){var n=t;return"function"!=typeof n&&(n=function(e,t,n){this.start=e,this.end=t,void 0!==n&&(this.title=n)},n.prototype=t),n.prototype.type=e,d[e]=n,e},n.createAnnotation=function(e,t,n,i){return new(this.getType(e))(t,n,i)},n.getType=function(e){return d[e]},r(n.ANNOTATION_ERROR),r(n.ANNOTATION_WARNING),r(n.ANNOTATION_TASK),r(n.ANNOTATION_BREAKPOINT),r(n.ANNOTATION_BOOKMARK),r(n.ANNOTATION_CURRENT_BRACKET),r(n.ANNOTATION_MATCHING_BRACKET),r(n.ANNOTATION_CURRENT_SEARCH),r(n.ANNOTATION_MATCHING_SEARCH),r(n.ANNOTATION_READ_OCCURRENCE),r(n.ANNOTATION_WRITE_OCCURRENCE),r(n.ANNOTATION_SELECTED_LINKED_GROUP),r(n.ANNOTATION_CURRENT_LINKED_GROUP),r(n.ANNOTATION_LINKED_GROUP),r(n.ANNOTATION_CURRENT_LINE,!0),r(n.ANNOTATION_BLAME,!0),r(n.ANNOTATION_CURRENT_BLAME,!0),r(n.ANNOTATION_DIFF_ADDED),r(n.ANNOTATION_DIFF_DELETED),r(n.ANNOTATION_DIFF_MODIFIED),n.registerType(n.ANNOTATION_FOLDING,i),o.addMixin=function(e){var t=o.prototype;for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},o.prototype={addAnnotationType:function(e,t){this._annotationTypes||(this._annotationTypes=[]);var n=t-1;void 0!=t&&n>=0&&nn.start?e=t)break}return null},n=i(),{next:function(){var e=n;return e&&(n=i()),e},hasNext:function(){return null!==n}}},modifyAnnotation:function(e){if(e){var t=this._getAnnotationIndex(e);if(!(0>t)){var n={type:"Changed",added:[],removed:[],changed:[e]};this.onChanged(n)}}},onChanged:function(e){return this.dispatchEvent(e)},removeAnnotations:function(e){var t,n,i=this._annotations;if(e)for(t=[],n=i.length-1;n>=0;n--){var r=i[n];r.type===e&&(i.splice(n,1),t.splice(0,0,r),r._annotationModel=null)}else t=i,i=[];var o={type:"Changed",removed:t,added:[],changed:[]};this.onChanged(o)},removeAnnotation:function(e){if(e){var t=this._getAnnotationIndex(e);if(!(0>t)){e._annotationModel=null;var n={type:"Changed",removed:this._annotations.splice(t,1),added:[],changed:[]};this.onChanged(n)}}},replaceAnnotations:function(e,t){var n,i,r,o=this._annotations,a=[];if(e)for(n=e.length-1;n>=0;n--)r=e[n],i=this._getAnnotationIndex(r),0>i||(r._annotationModel=null,o.splice(i,1),a.splice(0,0,r));for(t||(t=[]),n=0;n=0&&s=o?(h._oldStart=h.start,h._oldEnd=h.end,h.start+=d,h.end+=d,l.changed.push(h)):h.end<=t||(h.start0||l.removed.length>0||l.changed.length>0)&&this.onChanged(l)}}},t.EventTarget.addMixin(a.prototype),l.prototype={destroy:function(){var e=this._view;e&&(e.removeEventListener("Destroy",this._listener.onDestroy),e.removeEventListener("LineStyle",this._listener.onLineStyle),this.view=null);var t=this._annotationModel;t&&(t.removeEventListener("Changed",this._listener.onChanged),t=null)},_mergeStyle:function(e,t){if(t){e||(e={}),e.styleClass&&t.styleClass&&e.styleClass!==t.styleClass?e.styleClass+=" "+t.styleClass:e.styleClass=t.styleClass;var n;if(t.tagName&&(e.tagName||(e.tagName=t.tagName)),t.style){e.style||(e.style={});for(n in t.style)e.style[n]||(e.style[n]=t.style[n])}if(t.attributes){e.attributes||(e.attributes={});for(n in t.attributes)e.attributes[n]||(e.attributes[n]=t.attributes[n])}}return e},_mergeStyleRanges:function(e,t){e||(e=[]);for(var n,i=s(e,t.start,!0);i=r.end)){n=this._mergeStyle({},r.style),n=this._mergeStyle(n,t.style);var o=[];o.push(i,1),t.startr.start&&o.push({start:r.start,end:t.start,style:r.style}),o.push({start:Math.max(r.start,t.start),end:Math.min(r.end,t.end),style:n}),t.endr.end?{start:r.end,end:t.end,style:t.style}:null,Array.prototype.splice.apply(e,o)}}return t&&(n=this._mergeStyle({},t.style),e.splice(i,0,{start:t.start,end:t.end,style:n})),e},_onAnnotationModelChanged:function(e){function t(e,t){o.getBaseModel&&(e=o.mapOffset(e,!0),t=o.mapOffset(t,!0)),-1!==e&&-1!==t&&i.redrawRange(e,t)}function n(e,n){for(var i=0;i>0,p=s.getLineStart(f),g=s.getLineEnd(f);s.getBaseModel&&(p=s.mapOffset(p),g=s.mapOffset(g));var v=l.ANNOTATION_CURRENT_LINE,m=l.createAnnotation(v,p,g);c.push(m)}this._currentLineAnnotations=c,r.replaceAnnotations(h,c)}}}},installTextView:function(){this.install()},install:function(){if(!this._textView){if(this._textView=this._textViewFactory(),this._undoStackFactory&&(this._undoStack=this._undoStackFactory.createUndoStack(this),this._textView.setOptions({undoStack:this._undoStack}),this.checkDirty()),this._textDNDFactory&&(this._textDND=this._textDNDFactory.createTextDND(this,this._undoStack)),this._contentAssistFactory){var e=this._contentAssistFactory.createContentAssistMode(this);this._contentAssist=e.getContentAssist()}var t=n.Tooltip.getTooltip(this._textView);this._hoverFactory&&(this._hover=this._hoverFactory.createHover(this),t.hover=this._hover);var i=this,r=this._textView,o=this;if(this._listener={onModelChanged:function(){o.checkDirty()},onMouseOver:function(e){o._listener.onMouseMove(e)},onMouseDown:function(){o._listener.mouseDown=!0},onMouseUp:function(){o._listener.mouseDown=!1},onMouseMove:function(e){t&&!o._listener.mouseDown&&(e.event.clientX!==o._listener.lastMouseX||e.event.clientY!==o._listener.lastMouseY)&&(o._listener.lastMouseX=e.event.clientX,o._listener.lastMouseY=e.event.clientY,o._hoverTimeout&&(window.clearTimeout(o._hoverTimeout),o._hoverTimeout=null),o._hoverTimeout=window.setTimeout(function(){o._hoverTimeout=null,o._listener&&t.onHover({y:e.y,x:e.x,getTooltipInfo:function(){return o._getTooltipInfo(this.x,this.y)}},e.x,e.y)},175))},onMouseOut:function(){o._hoverTimeout&&(window.clearTimeout(o._hoverTimeout),o._hoverTimeout=null)},onSelection:function(e){t&&t.hide(),o._updateCursorStatus(),o._highlightCurrentLine(e.newValue,e.oldValue)}},r.addEventListener("ModelChanged",this._listener.onModelChanged),r.addEventListener("Selection",this._listener.onSelection),r.addEventListener("MouseOver",this._listener.onMouseOver),r.addEventListener("MouseOut",this._listener.onMouseOut),r.addEventListener("MouseDown",this._listener.onMouseDown),r.addEventListener("MouseUp",this._listener.onMouseUp),r.addEventListener("MouseMove",this._listener.onMouseMove),this._keyBindingFactory){var a;a="function"==typeof this._keyBindingFactory?this._keyBindingFactory(this,this.getKeyModes(),this._undoStack,this._contentAssist):this._keyBindingFactory.createKeyBindings(i,this._undoStack,this._contentAssist),a&&(this._textActions=a.textActions,this._linkedMode=a.linkedMode,this._sourceCodeActions=a.sourceCodeActions)}var h=function(e){if(void 0!==e&&-1!==e){for(var t=this.getView(),n=t.getModel(),r=this.getAnnotationModel(),o=i.mapOffset(n.getLineStart(e)),s=i.mapOffset(n.getLineEnd(e)),a=r.getAnnotations(o,s),d=null;a.hasNext();){var h=a.next();if(h.type===l.ANNOTATION_BOOKMARK){d=h;break}}d?r.removeAnnotation(d):(d=l.createAnnotation(l.ANNOTATION_BOOKMARK,o,s,i.getText(o,s)),r.addAnnotation(d))}};if(this._annotationFactory){var c=r.getModel();if(c.getBaseModel&&(c=c.getBaseModel()),this._annotationModel=this._annotationFactory.createAnnotationModel(c),this._annotationModel){var u=this._annotationStyler=this._annotationFactory.createAnnotationStyler(r,this._annotationModel);u&&(u.addAnnotationType(l.ANNOTATION_CURRENT_SEARCH),u.addAnnotationType(l.ANNOTATION_MATCHING_SEARCH),u.addAnnotationType(l.ANNOTATION_ERROR),u.addAnnotationType(l.ANNOTATION_WARNING),u.addAnnotationType(l.ANNOTATION_MATCHING_BRACKET),u.addAnnotationType(l.ANNOTATION_CURRENT_BRACKET),u.addAnnotationType(l.ANNOTATION_CURRENT_LINE),u.addAnnotationType(l.ANNOTATION_READ_OCCURRENCE),u.addAnnotationType(l.ANNOTATION_WRITE_OCCURRENCE),u.addAnnotationType(l.ANNOTATION_SELECTED_LINKED_GROUP),u.addAnnotationType(l.ANNOTATION_CURRENT_LINKED_GROUP),u.addAnnotationType(l.ANNOTATION_LINKED_GROUP),u.addAnnotationType(d))}var f=this._annotationFactory.createAnnotationRulers(this._annotationModel),p=this._annotationRuler=f.annotationRuler;p&&(p.onDblClick=h,p.setMultiAnnotationOverlay({html:"
    "}),p.addAnnotationType(l.ANNOTATION_ERROR),p.addAnnotationType(l.ANNOTATION_WARNING),p.addAnnotationType(l.ANNOTATION_TASK),p.addAnnotationType(l.ANNOTATION_BOOKMARK),p.addAnnotationType(l.ANNOTATION_DIFF_ADDED),p.addAnnotationType(l.ANNOTATION_DIFF_DELETED),p.addAnnotationType(l.ANNOTATION_DIFF_MODIFIED)),this.setAnnotationRulerVisible(this._annotationRulerVisible||void 0===this._annotationRulerVisible,!0),p=this._overviewRuler=f.overviewRuler,p&&(p.addAnnotationType(l.ANNOTATION_CURRENT_SEARCH),p.addAnnotationType(l.ANNOTATION_MATCHING_SEARCH),p.addAnnotationType(l.ANNOTATION_READ_OCCURRENCE),p.addAnnotationType(l.ANNOTATION_WRITE_OCCURRENCE),p.addAnnotationType(l.ANNOTATION_CURRENT_BLAME),p.addAnnotationType(l.ANNOTATION_ERROR),p.addAnnotationType(l.ANNOTATION_WARNING),p.addAnnotationType(l.ANNOTATION_TASK),p.addAnnotationType(l.ANNOTATION_BOOKMARK),p.addAnnotationType(l.ANNOTATION_MATCHING_BRACKET),p.addAnnotationType(l.ANNOTATION_CURRENT_BRACKET),p.addAnnotationType(l.ANNOTATION_CURRENT_LINE),p.addAnnotationType(l.ANNOTATION_DIFF_ADDED),p.addAnnotationType(l.ANNOTATION_DIFF_DELETED),p.addAnnotationType(l.ANNOTATION_DIFF_MODIFIED)),this.setOverviewRulerVisible(this._overviewRulerVisible||void 0===this._overviewRulerVisible,!0)}this._zoomRulerFactory&&(this._zoomRuler=this._zoomRulerFactory.createZoomRuler(this._annotationModel),this.setZoomRulerVisible(this._zoomRulerVisible,!0)),this._lineNumberRulerFactory&&(this._lineNumberRuler=this._lineNumberRulerFactory.createLineNumberRuler(this._annotationModel),this._lineNumberRuler.addAnnotationType(l.ANNOTATION_CURRENT_BLAME),this._lineNumberRuler.addAnnotationType(l.ANNOTATION_BLAME),this._lineNumberRuler.addAnnotationType(l.ANNOTATION_DIFF_ADDED),this._lineNumberRuler.addAnnotationType(l.ANNOTATION_DIFF_MODIFIED),this._lineNumberRuler.addAnnotationType(l.ANNOTATION_DIFF_DELETED),this._lineNumberRuler.onDblClick=h,this.setLineNumberRulerVisible(this._lineNumberRulerVisible||void 0===this._lineNumberRulerVisible,!0)),this._foldingRulerFactory&&(this._foldingRuler=this._foldingRulerFactory.createFoldingRuler(this._annotationModel),this._foldingRuler.addAnnotationType(l.ANNOTATION_FOLDING),this.setFoldingRulerVisible(this._foldingRulerVisible||void 0===this._foldingRulerVisible,!0));var g={type:"TextViewInstalled",textView:r};this.dispatchEvent(g),s.prototype.install.call(this)}},uninstallTextView:function(){this.uninstall()},uninstall:function(){var e=this._textView;if(e){e.destroy(),this._annotationModel&&this._annotationModel.setTextModel(null),this._textView=this._undoStack=this._textDND=this._contentAssist=this._listener=this._annotationModel=this._annotationStyler=this._annotationRuler=this._overviewRuler=this._zoomRuler=this._lineNumberRuler=this._foldingRuler=this._currentLineAnnotations=this._title=null,this._dirty=!1,this._foldingRulerVisible=this._overviewRulerVisible=this._zoomRulerVisible=this._lineNumberRulerVisible=this._annotationRulerVisible=void 0;var t={type:"TextViewUninstalled",textView:e};this.dispatchEvent(t),s.prototype.uninstall.call(this)}},_updateCursorStatus:function(){for(var t=this.getKeyModes(),n=0;n1)r=o.formatMessage(e.multiSelections,a.length);else{var l=a[0].getCaret(),d=s.getLineAtOffset(l),h=s.getLineStart(d),c=l-h;r=o.formatMessage(e.lineColumn,d+1,c+1)}this.reportStatus(r)},showAnnotations:function(e,t,n,i){var r=this._annotationModel;if(r){for(var o,s=[],a=[],d=r.getTextModel(),h=r.getAnnotations();h.hasNext();)o=h.next(),-1!==t.indexOf(o.type)&&o.creatorID===this&&s.push(o);if(e)for(var c=0;c',s.blame=e,s})},showDiffAnnotations:function(e){this.showAnnotations(e,[l.ANNOTATION_DIFF_ADDED,l.ANNOTATION_DIFF_MODIFIED,l.ANNOTATION_DIFF_DELETED],null,function(e){return"added"===e.type?l.ANNOTATION_DIFF_ADDED:"modified"===e.type?l.ANNOTATION_DIFF_MODIFIED:l.ANNOTATION_DIFF_DELETED})},showSelection:function(e,t,n,i,r){if("number"==typeof e)return"number"!=typeof t&&(t=e),this.moveSelection(e,t),!0;if("number"==typeof n){var o=this.getModel(),s=o.getLineStart(n-1);return"number"==typeof i&&(s+=i),"number"!=typeof r&&(r=0),this.moveSelection(s,s+r),!0}return!1},_setModelText:function(e){this._textView&&(this._textView.setText(e),this._textView.getModel().setLineDelimiter("auto"),this._highlightCurrentLine(this._textView.getSelections()))},setInput:function(e,t,n,i,r){s.prototype.setInput.call(this,e,t,n,i),!this._textView||i||r||this._textView.focus()},onGotoLine:function(e,t,n,i){if(this._textView){var r=this.getModel();e=Math.max(0,Math.min(e,r.getLineCount()-1));var o=r.getLineStart(e),s=0;if(void 0===n&&(n=0),"string"==typeof t){var a=r.getLine(e).indexOf(t);-1!==a&&(s=a,n=s+t.length)}else{s=t;var l=r.getLineEnd(e)-o;s=Math.min(s,l),n=Math.min(n,l)}this.moveSelection(o+s,o+n,i)}}}),{BaseEditor:s,Editor:a}}),define("orion/editor/find",["i18n!orion/editor/nls/messages","orion/keyBinding","orion/editor/keyModes","orion/editor/annotations","orion/regex","orion/objects","orion/util"],function(e,t,n,i,r,o,s){function a(e){var t=e.getTextView();n.KeyMode.call(this,t),this.editor=e,this._active=!1,this._success=!0,this._ignoreSelection=!1,this._prefix="",t.setAction("incrementalFindCancel",function(){return this.setActive(!1),!0}.bind(this)),t.setAction("incrementalFindBackspace",function(){return this._backspace()}.bind(this));var i=this;this._listener={onVerify:function(e){var t=i.editor,n=t.getModel(),o=t.mapOffset(e.start),s=t.mapOffset(e.end),a=n.getText(o,s),l=i._prefix,d=l.match(new RegExp("^"+r.escape(a),"i"));d&&d.length>0&&(l=i._prefix+=e.text,i._success=!0,i._status(),i.find(i._forward,!0),e.text=null)},onSelection:function(){i._ignoreSelection||i.setActive(!1)}}}function l(e,t,n){if(e){this._editor=e,this._undoStack=t,this._showAll=!0,this._visible=!1,this._caseInsensitive=!0,this._wrap=!0,this._wholeWord=!1,this._incremental=!0,this._regex=!1,this._findAfterReplace=!0,this._hideAfterFind=!1,this._reverse=!1,this._start=void 0,this._end=void 0,this._timer=void 0,this._lastString="";var i=this;this._listeners={onEditorFocus:function(e){i._removeCurrentAnnotation(e)}},this.setOptions(n)}}var d={};return a.prototype=new n.KeyMode,o.mixin(a.prototype,{createKeyBindings:function(){var e=t.KeyBinding,n=[];return n.push({actionID:"incrementalFindBackspace",keyBinding:new e(8)}),n.push({actionID:"incrementalFindCancel",keyBinding:new e(13)}),n.push({actionID:"incrementalFindCancel",keyBinding:new e(27)}),n.push({actionID:"incrementalFindReverse",keyBinding:new e(38)}),n.push({actionID:"incrementalFind",keyBinding:new e(40)}),n.push({actionID:"incrementalFindReverse",keyBinding:new e("k",!0,!0)}),n.push({actionID:"incrementalFind",keyBinding:new e("k",!0)}),n},find:function(e,t){if(this._forward=e,!this.isActive())return this.setActive(!0),!1;var n=this._prefix;if(0===n.length)return!1;var i,r=this.editor,o=r.getModel();i=e?this._success?t?this._start:r.getCaretOffset()+1:0:this._success?t?this._start:r.getCaretOffset():o.getCharCount()-1;var s=r.getModel().find({string:n,start:i,reverse:!e,caseInsensitive:n.toLowerCase()===n}).next();return s?(t||(this._start=i),this._success=!0,this._ignoreSelection=!0,r.moveSelection(e?s.start:s.end,e?s.end:s.start),this._ignoreSelection=!1):this._success=!1,this._status(),!0},isActive:function(){return this._active},isStatusActive:function(){return this.isActive()},setActive:function(e){if(this._active!==e){this._active=e,this._prefix="",this._success=!0;var t=this.editor,n=t.getTextView();this._start=this.editor.getCaretOffset(),this.editor.setCaretOffset(this._start),this._active?(n.addEventListener("Verify",this._listener.onVerify),n.addEventListener("Selection",this._listener.onSelection),n.addKeyMode(this)):(n.removeEventListener("Verify",this._listener.onVerify),n.removeEventListener("Selection",this._listener.onSelection),n.removeKeyMode(this)),this._status()}},_backspace:function(){var e=this._prefix;return e=this._prefix=e.substring(0,e.length-1),0===e.length?(this._success=!0,this._ignoreSelection=!0,this.editor.setCaretOffset(this.editor.getSelection().start),this._ignoreSelection=!1,this._status(),!0):this.find(this._forward,!0)},_status:function(){if(!this.isActive())return void this.editor.reportStatus("");var t;t=this._forward?this._success?e.incrementalFindStr:e.incrementalFindStrNotFound:this._success?e.incrementalFindReverseStr:e.incrementalFindReverseStrNotFound,t=s.formatMessage(t,this._prefix),this.editor.reportStatus(t,this._success?"":"error")}}),d.IncrementalFind=a,l.prototype={find:function(e,t,n){this.setOptions({reverse:!e});var i,r=this.getFindString();t&&(r=t.findString||r,i=t.count);var o=this.getOptions();this.setOptions(t);var s=n?this._startOffset:this.getStartOffset(),a=this._doFind(r,s,i);return a&&(n||(this._startOffset=a.start)),this.setOptions(o),this._hideAfterFind&&this.hide(),a},getStartOffset:function(){return void 0!==this._start?this._start:this._reverse?this._editor.getSelection().start-1:this._editor.getCaretOffset()},getFindString:function(){var e=this._editor.getSelection(),t=this._editor.getText(e.start,e.end);return this._regex&&(t=r.escape(t)),t||this._lastString},getOptions:function(){return{showAll:this._showAll,caseInsensitive:this._caseInsensitive,wrap:this._wrap,wholeWord:this._wholeWord,incremental:this._incremental,regex:this._regex,findAfterReplace:this._findAfterReplace,hideAfterFind:this._hideAfterFind,reverse:this._reverse,findCallback:this._findCallback,start:this._start,end:this._end}},getReplaceString:function(){return""},hide:function(){this._visible=!1,this._savedOptions&&(this.setOptions(this._savedOptions.pop()),0===this._savedOptions.length&&(this._savedOptions=null)),this._removeAllAnnotations();var e=this._editor.getTextView();e&&(e.removeEventListener("Focus",this._listeners.onEditorFocus),e.focus())},_processReplaceString:function(e){var t=e;if(this._regex){t="";for(var n=!1,i=this._editor.getModel().getLineDelimiter(),r=0;r0&&(o.endUndo(),i.setRedraw(!0)),a>0?n.reportStatus(s.formatMessage(e.replacedMatches,l)):n.reportStatus(e.nothingReplaced,"error"),o._replacingAll=!1},100)}},setOptions:function(e){if(e){if((e.showAll===!0||e.showAll===!1)&&this._showAll!==e.showAll&&(this._showAll=e.showAll,this.isVisible()))if(this._showAll)this._markAllOccurrences();else{var t=this._editor.getAnnotationModel();t&&t.removeAnnotations(i.AnnotationType.ANNOTATION_MATCHING_SEARCH)}(e.caseInsensitive===!0||e.caseInsensitive===!1)&&(this._caseInsensitive=e.caseInsensitive),(e.wrap===!0||e.wrap===!1)&&(this._wrap=e.wrap),(e.wholeWord===!0||e.wholeWord===!1)&&(this._wholeWord=e.wholeWord),(e.incremental===!0||e.incremental===!1)&&(this._incremental=e.incremental),(e.regex===!0||e.regex===!1)&&(this._regex=e.regex),(e.findAfterReplace===!0||e.findAfterReplace===!1)&&(this._findAfterReplace=e.findAfterReplace),(e.hideAfterFind===!0||e.hideAfterFind===!1)&&(this._hideAfterFind=e.hideAfterFind),(e.reverse===!0||e.reverse===!1)&&(this._reverse=e.reverse),e.hasOwnProperty("findCallback")&&(this._findCallback=e.findCallback),e.hasOwnProperty("start")&&(this._start=e.start),e.hasOwnProperty("end")&&(this._end=e.end)}},show:function(e){this._visible=!0,e&&(this._savedOptions||(this._savedOptions=[]),this._savedOptions.push(this.getOptions()),this.setOptions(e)),this._startOffset=this._editor.getSelection().start,this._editor.getTextView().addEventListener("Focus",this._listeners.onEditorFocus);var t=this;window.setTimeout(function(){t._incremental&&t.find(!0,null,!0)},0)},startUndo:function(){this._undoStack&&this._undoStack.startCompoundChange()},endUndo:function(){this._undoStack&&this._undoStack.endCompoundChange()},_find:function(e,t,n){return this._editor.getModel().find({string:e,start:t,end:this._end,reverse:this._reverse,wrap:n?!1:this._wrap,regex:this._regex,wholeWord:this._wholeWord,caseInsensitive:this._caseInsensitive})},_doFind:function(t,n,r,o){r=r||1;var s=this._editor;if(!t)return this._removeAllAnnotations(),null;this._lastString=t;var a,l;if(this._regex)try{l=this._find(t,n,o)}catch(d){return void s.reportStatus(d.message,"error")}else l=this._find(t,n,o);for(var h=0;r>h&&l.hasNext();h++)a=l.next();if(!this._replacingAll){if(a?this._editor.reportStatus(""):this._editor.reportStatus(e.notFound,"error"),this.isVisible()){var c=i.AnnotationType.ANNOTATION_CURRENT_SEARCH,u=s.getAnnotationModel();if(u&&(u.removeAnnotations(c),a&&u.addAnnotation(i.AnnotationType.createAnnotation(c,a.start,a.end))),this._showAll){this._timer&&window.clearTimeout(this._timer);var f=this;this._timer=window.setTimeout(function(){f._markAllOccurrences(),f._timer=null},500)}}this._findCallback?this._findCallback(a):a&&s.moveSelection(a.start,a.end,null,!1)}return a},_doReplace:function(e,t,n,i){var r=this._editor;this._regex&&(i=r.getText(e,t).replace(new RegExp(n,this._caseInsensitive?"i":""),i)),r.setText(i,e,t),r.setSelection(e,e+i.length,!0)},_markAllOccurrences:function(){var e=this._editor.getAnnotationModel();if(e){for(var t,n=i.AnnotationType.ANNOTATION_MATCHING_SEARCH,r=e.getAnnotations(),o=[];r.hasNext();){var s=r.next();s.type===n&&o.push(s)}if(this.isVisible()){var a=this.getFindString();for(r=this._editor.getModel().find({string:a,regex:this._regex,wholeWord:this._wholeWord,caseInsensitive:this._caseInsensitive}),t=[];r.hasNext();){var l=r.next();t.push(i.AnnotationType.createAnnotation(n,l.start,l.end))}}e.replaceAnnotations(o,t)}},_removeAllAnnotations:function(){var e=this._editor.getAnnotationModel();e&&(e.removeAnnotations(i.AnnotationType.ANNOTATION_CURRENT_SEARCH),e.removeAnnotations(i.AnnotationType.ANNOTATION_MATCHING_SEARCH))},_removeCurrentAnnotation:function(){var e=this._editor.getAnnotationModel();e&&e.removeAnnotations(i.AnnotationType.ANNOTATION_CURRENT_SEARCH)}},d.Find=l,d}),define("orion/editor/findUI",["i18n!orion/editor/nls/messages","orion/editor/find","orion/objects","orion/editor/util","orion/util"],function(e,t,n,i,r){function o(e,n,i){t.Find.call(this,e,n,i)}return o.prototype=new t.Find,n.mixin(o.prototype,{getFindString:function(){var e=this._findInput;return e?e.value:t.Find.prototype.getFindString.call(this)},getReplaceString:function(){var e=this._replaceInput;return e?e.value:t.Find.prototype.getReplaceString(this)},hide:function(){var e=this.isVisible();t.Find.prototype.hide.call(this),e&&(this._rootDiv.className="textViewFind")},show:function(e){t.Find.prototype.show.call(this,e);var n=e.findString,i=e.replaceString,r=this._findInput;if(r||(this._create(),r=this._findInput),n&&(r.value=n),i){var o=this._replaceInput;o.value=i}var s=this;window.setTimeout(function(){s._rootDiv.className="textViewFind show",r.select(),r.focus()},0)},_create:function(){var e=this,t=this._editor.getTextView(),n=t.getOptions("parent"),o=n.ownerDocument,s=r.createElement(o,"div");s.className="textViewFind",i.addEventListener(s,"keydown",function(t){e._handleKeyDown(t)}),this._rootDiv=s,this._createContents(o,s),t._rootDiv.insertBefore(s,t._rootDiv.firstChild)},_createContents:function(t,n){var o=this,s=r.createElement(t,"input");s.className="textViewFindInput",this._findInput=s,s.type="text",s.placeholder=e.findWith,i.addEventListener(s,"input",function(e){return o._handleInput(e)}),n.appendChild(s);var a=r.createElement(t,"span");o._createButton(t,a,e.next,function(){o.find(!0)}),o._createButton(t,a,e.previous,function(){o.find(!1)}),n.appendChild(a);var l=o._editor.getTextView().getOptions("readonly");if(!l){var d=r.createElement(t,"input");d.className="textViewReplaceInput",this._replaceInput=d,d.type="text",d.placeholder=e.replaceWith,n.appendChild(d),a=r.createElement(t,"span"),o._createButton(t,a,e.replace,function(){o.replace()}),o._createButton(t,a,e.replaceAll,function(){o.replaceAll()}),n.appendChild(a)}a=r.createElement(t,"span"),o._createButton(t,a,e.regex,function(e){o._toggle("regex",e.target)},this._regex,e.regexTooltip),o._createButton(t,a,e.caseInsensitive,function(e){o._toggle("caseInsensitive",e.target)},this._caseInsensitive,e.caseInsensitiveTooltip),o._createButton(t,a,e.wholeWord,function(e){o._toggle("wholeWord",e.target)},this._wholeWord,e.wholeWordTooltip),n.appendChild(a);var h=o._createButton(t,n,"",function(){o.hide()});h.className="textViewFindCloseButton",h.title=e.closeTooltip},_createButton:function(e,t,n,r,o,s){var a=e.createElement("button");return this._checked(o,a),s&&(a.title=s),i.addEventListener(a,"click",function(e){r.call(this,e)},!1),n&&a.appendChild(e.createTextNode(n)),t.appendChild(a),a},_toggle:function(e,t){var n={};n[e]=!this["_"+e],this.setOptions(n),this._checked(n[e],t)},_checked:function(e,t){t.className="textViewFindButton",e&&(t.className+=" checked")},_handleInput:function(){return this._incremental&&this.find(!0,null,!0),!0},_handleKeyDown:function(e){var t,n=(r.isMac?e.metaKey:e.ctrlKey)&&!e.altKey&&!e.shiftKey;return n&&70===e.keyCode&&(t=!0),((r.isMac?e.metaKey:e.ctrlKey)&&!e.altKey&&75===e.keyCode||13===e.keyCode)&&(this.find(13===e.keyCode?this._reverse?e.shiftKey:!e.shiftKey:!e.shiftKey),t=!0),n&&82===e.keyCode&&(this.replace(),t=!0),27===e.keyCode&&(this.hide(),t=!0),t?(e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,!1):!0}}),{FindUI:o}}),define("orion/editor/actions",["i18n!orion/editor/nls/messages","orion/keyBinding","orion/editor/annotations","orion/editor/tooltip","orion/editor/find","orion/editor/findUI","orion/util"],function(e,t,n,i,r,o,s){function a(e,t,n,i){function r(e,t,n){s.setText(e,t,n),o+=t-n+e.length}var o=0,s=e.editor,a=s.getSelections();!i&&(t||a.length>1)&&e.startUndo(),a.forEach(function(e){e.start+=o,e.end+=o,n(e,r)}),s.setSelections(a),!i&&(t||a.length>1)&&e.endUndo()}function l(e,t,n){this.editor=e,this.undoStack=t,this._incrementalFind=new r.IncrementalFind(e),this._find=n?n:new o.FindUI(e,t),this._lastEditLocation=null,this.init()}function d(e,t,n,i){this.editor=e,this.undoStack=t,this.contentAssist=n,this.linkedMode=i,this.contentAssist&&this.contentAssist.addEventListener("ProposalApplied",this.contentAssistProposalApplied.bind(this)),this.init()}var h=n.AnnotationType,c={};return l.prototype={init:function(){var n=this.editor.getTextView();this._lastEditListener={onModelChanged:function(e){this.editor.isDirty()&&(this._lastEditLocation=e.start+e.addedCharCount)}.bind(this)},n.addEventListener("ModelChanged",this._lastEditListener.onModelChanged),n.setAction("undo",function(e){if(this.undoStack){var t=1;for(e&&e.count&&(t=e.count);t>0;)this.undoStack.undo(),--t;return!0}return!1}.bind(this),{name:e.undo}),n.setAction("redo",function(e){if(this.undoStack){var t=1;for(e&&e.count&&(t=e.count);t>0;)this.undoStack.redo(),--t;return!0}return!1}.bind(this),{name:e.redo}),n.setKeyBinding(new t.KeyBinding("f",!0),"find"),n.setAction("find",function(){if(this._find){var e=this.editor.getSelection();return this._find.show({findString:this.editor.getText(e.start,e.end)}),!0}return!1}.bind(this),{name:e.find}),n.setKeyBinding(new t.KeyBinding("k",!0),"findNext"),n.setAction("findNext",function(e){return this._find?(this._find.find(!0,e),!0):!1 +}.bind(this),{name:e.findNext}),n.setKeyBinding(new t.KeyBinding("k",!0,!0),"findPrevious"),n.setAction("findPrevious",function(e){return this._find?(this._find.find(!1,e),!0):!1}.bind(this),{name:e.findPrevious}),n.setKeyBinding(new t.KeyBinding("j",!0),"incrementalFind"),n.setAction("incrementalFind",function(){return this._incrementalFind&&this._incrementalFind.find(!0),!0}.bind(this),{name:e.incrementalFind}),n.setKeyBinding(new t.KeyBinding("j",!0,!0),"incrementalFindReverse"),n.setAction("incrementalFindReverse",function(){return this._incrementalFind&&this._incrementalFind.find(!1),!0}.bind(this),{name:e.incrementalFindReverse}),n.setAction("tab",function(){return this.indentLines()}.bind(this)),n.setAction("shiftTab",function(){return this.unindentLines()}.bind(this),{name:e.unindentLines}),n.setKeyBinding(new t.KeyBinding(38,!1,!1,!0),"moveLinesUp"),n.setAction("moveLinesUp",function(){return this.moveLinesUp()}.bind(this),{name:e.moveLinesUp}),n.setKeyBinding(new t.KeyBinding(40,!1,!1,!0),"moveLinesDown"),n.setAction("moveLinesDown",function(){return this.moveLinesDown()}.bind(this),{name:e.moveLinesDown}),n.setKeyBinding(new t.KeyBinding(38,!0,!1,!0),"copyLinesUp"),n.setAction("copyLinesUp",function(){return this.copyLinesUp()}.bind(this),{name:e.copyLinesUp}),n.setKeyBinding(new t.KeyBinding(40,!0,!1,!0),"copyLinesDown"),n.setAction("copyLinesDown",function(){return this.copyLinesDown()}.bind(this),{name:e.copyLinesDown}),n.setKeyBinding(new t.KeyBinding("d",!0,!1,!1),"deleteLines"),n.setAction("deleteLines",function(e){return this.deleteLines(e)}.bind(this),{name:e.deleteLines}),n.setKeyBinding(new t.KeyBinding("l",!s.isMac,!1,!1,s.isMac),"gotoLine"),n.setAction("gotoLine",function(){return this.gotoLine()}.bind(this),{name:e.gotoLine}),n.setKeyBinding(new t.KeyBinding(190,!0),"nextAnnotation"),n.setAction("nextAnnotation",function(){return this.nextAnnotation(!0)}.bind(this),{name:e.nextAnnotation}),n.setKeyBinding(new t.KeyBinding(188,!0),"previousAnnotation"),n.setAction("previousAnnotation",function(){return this.nextAnnotation(!1)}.bind(this),{name:e.prevAnnotation}),n.setKeyBinding(new t.KeyBinding("e",!0,!1,!0,!1),"expand"),n.setAction("expand",function(){return this.expandAnnotation(!0)}.bind(this),{name:e.expand}),n.setKeyBinding(new t.KeyBinding("c",!0,!1,!0,!1),"collapse"),n.setAction("collapse",function(){return this.expandAnnotation(!1)}.bind(this),{name:e.collapse}),n.setKeyBinding(new t.KeyBinding("e",!0,!0,!0,!1),"expandAll"),n.setAction("expandAll",function(){return this.expandAnnotations(!0)}.bind(this),{name:e.expandAll}),n.setKeyBinding(new t.KeyBinding("c",!0,!0,!0,!1),"collapseAll"),n.setAction("collapseAll",function(){return this.expandAnnotations(!1)}.bind(this),{name:e.collapseAll}),n.setKeyBinding(new t.KeyBinding("q",!s.isMac,!1,!1,s.isMac),"lastEdit"),n.setAction("lastEdit",function(){return this.gotoLastEdit()}.bind(this),{name:e.lastEdit})},copyLinesDown:function(){var e=this.editor,t=e.getTextView();if(t.getOptions("readonly"))return!1;var n=e.getModel();return a(this,!1,function(e,t){var i=n.getLineAtOffset(e.start),r=n.getLineAtOffset(e.end>e.start?e.end-1:e.end),o=n.getLineStart(i),s=n.getLineEnd(r,!0),a=n.getLineCount(),l="",d=n.getText(o,s);r===a-1&&(d=(l=n.getLineDelimiter())+d);var h=s;t(d,h,h),e.start=h+l.length,e.end=h+d.length}),!0},copyLinesUp:function(){var e=this.editor,t=e.getTextView();if(t.getOptions("readonly"))return!1;var n=e.getModel();return a(this,!1,function(e,t){var i=n.getLineAtOffset(e.start),r=n.getLineAtOffset(e.end>e.start?e.end-1:e.end),o=n.getLineStart(i),s=n.getLineEnd(r,!0),a=n.getLineCount(),l="",d=n.getText(o,s);r===a-1&&(d+=l=n.getLineDelimiter());var h=o;t(d,h,h),e.start=h,e.end=h+d.length-l.length}),!0},deleteLines:function(e){var t=this.editor,n=t.getTextView();if(n.getOptions("readonly"))return!1;var i=1;e&&e.count&&(i=e.count);var r=t.getModel();return a(this,!1,function(e,t){var n,o=r.getLineAtOffset(e.start),s=r.getLineStart(o);n=e.start!==e.end||1===i?r.getLineAtOffset(e.end>e.start?e.end-1:e.end):Math.min(o+i-1,r.getLineCount()-1);var a=r.getLineEnd(n,!0);t("",s,a),e.start=e.end=s}),!0},expandAnnotation:function(e){var t=this.editor,i=t.getAnnotationModel();if(!i)return!0;var r=t.getModel(),o=t.getCaretOffset(),s=r.getLineAtOffset(o),a=r.getLineStart(s),l=r.getLineEnd(s,!0);r.getBaseModel&&(a=r.mapOffset(a),l=r.mapOffset(l),r=r.getBaseModel());for(var d,h=i.getAnnotations(a,l);!d&&h.hasNext();){var c=h.next();c.type===n.AnnotationType.ANNOTATION_FOLDING&&(d=c)}return d&&e!==d.expanded&&(e?d.expand():(t.setCaretOffset(d.start),d.collapse())),!0},expandAnnotations:function(e){var t=this.editor,i=t.getTextView(),r=t.getAnnotationModel();if(!r)return!0;var o,s=r.getAnnotations();for(i.setRedraw(!1);s.hasNext();)o=s.next(),o.type===n.AnnotationType.ANNOTATION_FOLDING&&e!==o.expanded&&(e?o.expand():o.collapse());return i.setRedraw(!0),!0},indentLines:function(){var e=this.editor,t=e.getTextView();if(t.getOptions("readonly"))return!1;if(t.getOptions("tabMode")){var n=e.getModel(),i=0,r=e.getSelections();return r.length>1&&this.startUndo(),r.some(function(o){o.start+=i,o.end+=i;var s=n.getLineAtOffset(o.start),a=n.getLineAtOffset(o.end>o.start?o.end-1:o.end);if(!(s!==a||r.length>1))return!0;var l=[];l.push("");for(var d=s;a>=d;d++)l.push(n.getLine(d,!0));var h=n.getLineStart(s),c=n.getLineEnd(a,!0),u=t.getOptions("tabSize","expandTab"),f=u.expandTab?new Array(u.tabSize+1).join(" "):" ",p=l.join(f);e.setText(p,h,c);var g=h===o.start?o.start:o.start+f.length,v=o.end+(a-s+1)*f.length;return i+=h-c+p.length,o.start=g,o.end=v,!1})?!1:(e.setSelections(r),r.length>1&&this.endUndo(),!0)}},gotoLastEdit:function(){return"number"==typeof this._lastEditLocation&&this.editor.showSelection(this._lastEditLocation),!0},gotoLine:function(){var t=this.editor,n=t.getModel(),i=n.getLineAtOffset(t.getCaretOffset());return i=prompt(e.gotoLinePrompty,i+1),i&&(i=parseInt(i,10),t.onGotoLine(i-1,0)),!0},moveLinesDown:function(){var e=this.editor,t=e.getTextView();if(t.getOptions("readonly"))return!1;var n=e.getModel();return a(this,!0,function(e,t){var i=n.getLineAtOffset(e.start),r=n.getLineAtOffset(e.end>e.start?e.end-1:e.end),o=n.getLineCount();if(r!==o-1){var s,a=n.getLineStart(i),l=n.getLineEnd(r,!0),d=n.getLineEnd(r+1,!0)-(l-a),h=0;if(r!==o-2)s=n.getText(a,l);else{var c=n.getLineEnd(r);s=n.getText(c,l)+n.getText(a,c),h+=l-c}t("",a,l),t(s,d,d),e.start=d+h,e.end=d+h+s.length}}),!0},moveLinesUp:function(){var e=this.editor,t=e.getTextView();if(t.getOptions("readonly"))return!1;var n=e.getModel();return a(this,!0,function(e,t){var i=n.getLineAtOffset(e.start);if(0!==i){var r=n.getLineAtOffset(e.end>e.start?e.end-1:e.end),o=n.getLineCount(),s=n.getLineStart(i-1),a=n.getLineStart(i),l=n.getLineEnd(r,!0),d=n.getText(a,l),h=0;if(r===o-1){var c=n.getLineEnd(i-1),u=n.getLineEnd(i-1,!0);d+=n.getText(c,u),a=c,h=u-c}t("",a,l),t(d,s,s),e.start=s,e.end=s+d.length-h}}),!0},nextAnnotation:function(e){function t(e){return!!e.lineStyle||e.type===h.ANNOTATION_MATCHING_BRACKET||e.type===h.ANNOTATION_CURRENT_BRACKET||!o.isAnnotationTypeVisible(e.type)}var n=this.editor,r=n.getAnnotationModel();if(!r)return!0;var o=n.getOverviewRuler()||n.getAnnotationStyler();if(!o)return!0;for(var s=n.getModel(),a=n.getCaretOffset(),l=r.getAnnotations(e?a:0,e?s.getCharCount():a),d=null;l.hasNext();){var c=l.next();if(e){if(c.start<=a)continue}else if(c.start>=a)continue;if(!t(c)&&(d=c,e))break}if(d){var u=[d];for(l=r.getAnnotations(d.start,d.start);l.hasNext();)c=l.next(),c===d||t(c)||u.push(c);var f=n.getTextView(),p=(s.getLineAtOffset(d.start),i.Tooltip.getTooltip(f));if(!p)return n.moveSelection(d.start),!0;n.moveSelection(d.start,d.start,function(){setTimeout(function(){var e=n.getTextView(),t=d.start,i=e.getLocationAtOffset(t);p.show({x:i.x,y:i.y,getTooltipInfo:function(){return n._getTooltipInfo(this.x,this.y)}},!1,!1)},0)})}return!0},unindentLines:function(){var e=this.editor,t=e.getTextView();if(t.getOptions("readonly"))return!1;if(t.getOptions("tabMode")){var n=e.getModel();return a(this,!1,function(e,i){for(var r=n.getLineAtOffset(e.start),o=n.getLineAtOffset(e.end>e.start?e.end-1:e.end),s=t.getOptions("tabSize"),a=new Array(s+1).join(" "),l=[],d=0,h=0,c=r;o>=c;c++){var u=n.getLine(c,!0);if(n.getLineStart(c)!==n.getLineEnd(c))if(0===u.indexOf(" "))u=u.substring(1),d++;else{if(0!==u.indexOf(a))return!0;u=u.substring(s),d+=s}c===r&&(h=d),l.push(u)}var f=n.getLineStart(r),p=n.getLineEnd(o,!0),g=n.getLineStart(o),v=l.join("");i(v,f,p);var m=f===e.start?e.start:e.start-h,_=Math.max(m,e.end-d+(e.end===g+1&&e.start!==e.end?1:0));e.start=m,e.end=_}),!0}},startUndo:function(){this.undoStack&&this.undoStack.startCompoundChange()},endUndo:function(){this.undoStack&&this.undoStack.endCompoundChange()}},c.TextActions=l,d.prototype={init:function(){var n=this.editor.getTextView();n.setAction("lineStart",function(){return this.lineStart()}.bind(this)),n.setAction("enter",function(){return this.autoIndent()}.bind(this)),n.setKeyBinding(new t.KeyBinding("t",!0,!1,!0),"trimTrailingWhitespaces"),n.setAction("trimTrailingWhitespaces",function(){return this.trimTrailingWhitespaces()}.bind(this),{name:e.trimTrailingWhitespaces}),n.setKeyBinding(new t.KeyBinding(191,!0),"toggleLineComment"),n.setAction("toggleLineComment",function(){return this.toggleLineComment()}.bind(this),{name:e.toggleLineComment}),n.setKeyBinding(new t.KeyBinding(191,!0,!s.isMac,!1,s.isMac),"addBlockComment"),n.setAction("addBlockComment",function(){return this.addBlockComment()}.bind(this),{name:e.addBlockComment}),n.setKeyBinding(new t.KeyBinding(220,!0,!s.isMac,!1,s.isMac),"removeBlockComment"),n.setAction("removeBlockComment",function(){return this.removeBlockComment()}.bind(this),{name:e.removeBlockComment}),n.setKeyBinding(new t.KeyBinding("[",!1,!1,!1,!1,"keypress"),"autoPairSquareBracket"),n.setAction("autoPairSquareBracket",function(){return this.autoPairBrackets("[","]")}.bind(this)),n.setKeyBinding(new t.KeyBinding("]",!1,!1,!1,!1,"keypress"),"skipClosingSquareBracket"),n.setAction("skipClosingSquareBracket",function(){return this.handleClosingBracket("]")}.bind(this)),n.setKeyBinding(new t.KeyBinding("<",!1,!1,!1,!1,"keypress"),"autoPairAngleBracket"),n.setAction("autoPairAngleBracket",function(){return this.autoPairBrackets("<",">")}.bind(this)),n.setKeyBinding(new t.KeyBinding(">",!1,!1,!1,!1,"keypress"),"skipClosingAngleBracket"),n.setAction("skipClosingAngleBracket",function(){return this.handleClosingBracket(">")}.bind(this)),n.setKeyBinding(new t.KeyBinding("(",!1,!1,!1,!1,"keypress"),"autoPairParentheses"),n.setAction("autoPairParentheses",function(){return this.autoPairBrackets("(",")")}.bind(this)),n.setKeyBinding(new t.KeyBinding(")",!1,!1,!1,!1,"keypress"),"skipClosingParenthesis"),n.setAction("skipClosingParenthesis",function(){return this.handleClosingBracket(")")}.bind(this)),n.setKeyBinding(new t.KeyBinding("{",!1,!1,!1,!1,"keypress"),"autoPairBraces"),n.setAction("autoPairBraces",function(){return this.autoPairBrackets("{","}")}.bind(this)),n.setKeyBinding(new t.KeyBinding("}",!1,!1,!1,!1,"keypress"),"skipClosingBrace"),n.setAction("skipClosingBrace",function(){return this.handleClosingBracket("}")}.bind(this)),n.setKeyBinding(new t.KeyBinding("'",!1,!1,!1,!1,"keypress"),"autoPairSingleQuotation"),n.setAction("autoPairSingleQuotation",function(){return this.autoPairQuotations("'")}.bind(this)),n.setKeyBinding(new t.KeyBinding('"',!1,!1,!1,!1,"keypress"),"autoPairDblQuotation"),n.setAction("autoPairDblQuotation",function(){return this.autoPairQuotations('"')}.bind(this)),n.setAction("deletePrevious",function(){return this.deletePrevious()}.bind(this))},autoIndent:function(){function e(e,t){if(e.start===e.end){for(var n,r=i.getLineAtOffset(e.start),a=i.getLine(r,!1),u=i.getLineStart(r),f=0,p=e.start-u;p>f&&(32===(n=a.charCodeAt(f))||9===n);)f++;var g,v,m=a.substring(0,f),_=a.substring(0,p),y=a.substring(p);if(c.smartIndentation&&123===a.charCodeAt(v=_.trimRight().length-1)){var C=p-v-1,w=y.length-y.trimLeft().length;return g=125===a.charCodeAt(p+w)?s+m+o+s+m:s+m+o,t(g,e.start-C,e.end+w),e.start=e.end=e.start+s.length+m.length+o.length-C,!0}if(c.autoCompleteComments&&!h.test(_)&&(l.test(_)||d.test(_))){var x,S=l.exec(_);if(S)return g=s+m+" * ",g+=h.test(y)?y.substring(0,y.length-2).trim():y.trim(),i.getLineCount()!==r+1&&d.test(i.getLine(r+1))||(g+=s+m+" */"),t(g,e.start,e.end+y.length),e.start=e.end=e.start+s.length+m.length+3,!0;if(S=d.exec(_))for(var b=r-1;b>=0;b--){var T=i.getLine(b,!1);if(l.test(T))return h.test(y)||47===a.charCodeAt(p)?(g=s+m+"*"+y,x=e.start+s.length+m.length+1):(g=s+m+"* "+y,x=e.start+s.length+m.length+2),t(g,e.start,e.end+y.length),e.start=e.end=x,!0;if(!d.test(T))return!1}return!1}if(h.test(_)&&32===m.charCodeAt(m.length-1))return g=s+m.substring(0,m.length-1),t(g,e.start,e.end),e.start=e.end=e.start+g.length,!0;if(f>0){for(f=p;f]"),o=n.getModel();return a(this,!1,function(n,i){var s,a=n.start===o.getCharCount()?"":o.getText(n.start,n.start+1).trim();n.start===n.end&&r.test(a)?(s=e+t,i(s,n.start,n.start),n.start=n.end=n.start+1):n.start!==n.end?(s=e+o.getText(n.start,n.end)+t,i(s,n.start,n.end),n.start+=1,n.end+=1):(i(e,n.start,n.end),n.start=n.end=n.start+e.length)}),!0},autoPairQuotations:function(e){if(!this.autoPairQuotation)return!1;var t=this.editor,n=t.getTextView();if(n.getOptions("readonly"))return!1;var i=new RegExp("^\"$|^'$"),r=new RegExp("\\w"),o=new RegExp("^$|[)}\\]>]"),s=t.getModel();return a(this,!1,function(t,n){function a(){n(e,t.start,t.end),t.start=t.end=t.start+e.length}var l=0===t.start?"":s.getText(t.start-1,t.start).trim(),d=t.start===s.getCharCount()?"":s.getText(t.start,t.start+1).trim();if(t.start!==t.end){var h=s.getText(t.start,t.end);i.test(h)?a():(n(e+h+e,t.start,t.end),t.start+=1,t.end+=1)}else d===e?t.start=t.end=t.start+1:l===e||i.test(d)||r.test(l)||!o.test(d)?a():(n(e+e,t.start,t.end),t.start=t.end=t.start+e.length)}),!0},contentAssistProposalApplied:function(e){function t(){return"number"==typeof n.escapePosition?n.escapePosition:e.data.start+n.proposal.length}var n=e.data.proposal;if(n.positions&&n.positions.length>0&&this.linkedMode){for(var i=[],r=0;r0&&this.linkedMode)this.linkedMode.enterLinkedMode({groups:n.groups,escapePosition:t()});else if("number"==typeof n.escapePosition){var o=this.editor.getTextView();o.setCaretOffset(n.escapePosition)}return!0},deletePrevious:function(){var e=this.editor,t=e.getTextView();if(t.getOptions("readonly"))return!1;var n=e.getModel();return a(this,!1,function(e,t){if(e.start===e.end){var i=0===e.start?"":n.getText(e.start-1,e.start),r=e.start===n.getCharCount()?"":n.getText(e.start,e.start+1);("("===i&&")"===r||"["===i&&"]"===r||"{"===i&&"}"===r||"<"===i&&">"===r||'"'===i&&'"'===r||"'"===i&&"'"===r)&&t("",e.start,e.start+1)}},!0),!1},_findEnclosingComment:function(e,t,n){var i,r,o,s,a,l,d,h="/*",c="*/",u=e.getLineAtOffset(t),f=e.getLineAtOffset(n);for(i=u;i>=0&&(r=e.getLine(i),o=i===u?t-e.getLineStart(u):r.length,s=r.lastIndexOf(h,o),a=r.lastIndexOf(c,o),!(a>s));i--)if(-1!==s){l=e.getLineStart(i)+s;break}for(i=f;is));i++)if(-1!==a){d=e.getLineStart(i)+a;break}return{commentStart:l,commentEnd:d}},lineStart:function(){var e=this.editor,t=e.getModel();return a(this,!1,function(e){var n,i=e.getCaret(),r=t.getLineAtOffset(i),o=t.getLineStart(r),s=t.getLine(r);for(n=0;ne.start?e.end-1:e.end),a=!0,l=[],d=o;s>=d;d++){var h=i.getLine(d,!0);if(r=h.indexOf(n),l.push(r),a&&-1!==r){if(0!==r){var c;for(c=0;r>c;c++){var u=h.charCodeAt(c);if(32!==u&&9!==u)break}a=c===r}}else a=!1}var f,p,g,v=n.length,m=i.getLineStart(o);if(a){for(g=l.length-1;g>=0;g--)r=l[g]+i.getLineStart(o+g),t("",r,r+v);var _=i.getLineStart(s);f=m===e.start?e.start:e.start-v,p=e.end-v*(s-o+1)+(e.end===_+1?v:0)}else{for(g=l.length-1;g>=0;g--)r=i.getLineStart(o+g),t(n,r,r);f=m===e.start?e.start:e.start+v,p=e.end+v*(s-o+1)}e.start=f,e.end=p}),t.setRedraw(!0),!0},trimTrailingWhitespaces:function(){var e=this.editor,t=e.getModel(),n=e.getSelections();e.getTextView().setRedraw(!1),this.startUndo();for(var i=/(\s+$)/,r=t.getLineCount(),o=0;r>o;o++){var s=t.getLine(o),a=i.exec(s);if(a){var l=t.getLineStart(o),d=a[0].length,h=l+a.index;t.setText("",h,h+d),n.forEach(function(e){e.start>h&&(e.start=Math.max(h,e.start-d)),e.start!==e.end&&e.end>h&&(e.end=Math.max(h,e.end-d))})}}this.endUndo(),e.setSelections(n,!1),e.getTextView().setRedraw(!0)},startUndo:function(){this.undoStack&&this.undoStack.startCompoundChange()},handleClosingBracket:function(e){var t=this.editor,n=t.getTextView();if(n.getOptions("readonly"))return!1;var i=t.getModel(),r=t.getSelections();if(1===r.length&&r[0].start===r[0].end){var o=r[0].start===i.getCharCount()?"":i.getText(r[0].start,r[0].start+1);if(o===e)return r[0].start=r[0].end=r[0].start+1,t.setSelections(r),!0;var s=i.getLineAtOffset(r[0].start),a=i.getLine(s,!0);if(a.match(/^\s*$/)&&n.getOptions("tabMode")){var l=n.getOptions("tabSize"),d=new Array(l+1).join(" "),h=i.getLineStart(s),c=i.getLineEnd(s);if(h!==c){if(0===a.indexOf(" "))return a=a.substring(1),i.setText(a,h,c),t.setSelection(r[0].start-1,r[0].end-1),!1;if(0===a.indexOf(d))return a=a.substring(l),i.setText(a,h,c),t.setSelection(r[0].start-l,r[0].end-l),!1}}}return!1},endUndo:function(){this.undoStack&&this.undoStack.endCompoundChange()},setAutoPairParentheses:function(e){this.autoPairParentheses=e},setAutoPairBraces:function(e){this.autoPairBraces=e},setAutoPairSquareBrackets:function(e){this.autoPairSquareBrackets=e},setAutoPairAngleBrackets:function(e){this.autoPairAngleBrackets=e},setAutoPairQuotations:function(e){this.autoPairQuotation=e},setAutoCompleteComments:function(e){this.autoCompleteComments=e},setLineComment:function(e){this.lineComment=e},setSmartIndentation:function(e){this.smartIndentation=e}},c.SourceCodeActions=d,String.prototype.trimLeft||(String.prototype.trimLeft=function(){return this.replace(/^\s+/g,"")}),String.prototype.trimRight||(String.prototype.trimRight=function(){return this.replace(/\s+$/g,"")}),c}),define("orion/editor/rulers",["i18n!orion/editor/nls/messages","orion/editor/textView","orion/editor/annotations","orion/editor/tooltip","orion/objects","orion/editor/util","orion/util"],function(e,t,n,i,r,o,s){function a(e,t,n){this._location=e||"left",this._overview=t||"page",this._rulerStyle=n,this._view=null}function l(e,t,n,i){a.call(this,t,n,i);var r=this;this._listener={onTextModelChanged:function(e){r._onTextModelChanged(e)},onAnnotationModelChanged:function(e){r._onAnnotationModelChanged(e)}},this.setAnnotationModel(e)}function d(e,t,n,i,r){l.call(this,e,t,"page",n),this._oddStyle=i||{style:{backgroundColor:"white"}},this._evenStyle=r||{style:{backgroundColor:"white"}},this._numOfDigits=0,this._firstLine=1}function h(e,t,n){l.call(this,e,t,"page",n)}function c(e,t,n){l.call(this,e,t,"document",n)}function u(e,t,n){h.call(this,e,t,n)}a.prototype={getLocation:function(){return this._location},getOverview:function(){return this._overview},getRulerStyle:function(){return this._rulerStyle},getView:function(){return this._view},setView:function(e){this._onTextModelChanged&&this._view&&this._view.removeEventListener("ModelChanged",this._listener.onTextModelChanged),this._view=e,this._onTextModelChanged&&this._view&&this._view.addEventListener("ModelChanged",this._listener.onTextModelChanged)}},l.prototype=r.mixin(new a,{getAnnotations:function(e,t){var n=this._annotationModel;if(!n)return[];var i=this._view.getModel(),r=i.getLineStart(e),o=i.getLineEnd(t-1),s=i;i.getBaseModel&&(s=i.getBaseModel(),r=i.mapOffset(r),o=i.mapOffset(o));for(var a=[],l=this.getAnnotationsByType(n,r,o),d=0;d=f;f++){var p=f;if(i!==s){var g=s.getLineStart(f);if(g=i.mapOffset(g,!0),-1===g)continue;p=i.getLineAtOffset(g)}if(p>=e&&t>p){var v=this._mergeAnnotation(a[p],h,f-c,u-c+1);v&&(a[p]=v)}}if(!this._multiAnnotation&&this._multiAnnotationOverlay)for(var m in a)a[m]._multiple&&(a[m].html=a[m].html+this._multiAnnotationOverlay.html);return a},getAnnotationModel:function(){return this._annotationModel},getWidestAnnotation:function(){return null},setAnnotationModel:function(e){this._annotationModel&&this._annotationModel.removEventListener("Changed",this._listener.onAnnotationModelChanged),this._annotationModel=e,this._annotationModel&&this._annotationModel.addEventListener("Changed",this._listener.onAnnotationModelChanged)},setMultiAnnotation:function(e){this._multiAnnotation=e},setMultiAnnotationOverlay:function(e){this._multiAnnotationOverlay=e},onClick:function(e){if(void 0!==e){var t,n,r,o=this._view,s=o.getModel(),a=s.getLineStart(e),l=s.getLineEnd(e,!0),d=o.getSelection().start,h=o.getSelection().end,c=this._annotationModel;if(c){s.getBaseModel&&(a=s.mapOffset(a),l=s.mapOffset(l),d=s.mapOffset(d),h=s.mapOffset(h));var u=this;t=this._findNextAnnotation(c,a,l,d,h,function(e){return u.isAnnotationTypeVisible(e)}),n=t?t.start:a,r=t?t.end:a,s.getBaseModel&&(n=s.mapOffset(n,!0),r=s.mapOffset(r,!0)),t&&void 0!==t.groupId&&(this._currentClickGroup=this._currentClickGroup===t.groupId?null:t.groupId,this._setCurrentGroup(e))}this._view.setSelection(r,n,1/3,function(){});var f=i.Tooltip.getTooltip(this._view);f&&(t&&"left"===this.getLocation()?f.show({getTooltipInfo:function(){return u._getTooltipInfo([t])}},!1,!1):f.hide())}},onDblClick:function(){},onMouseMove:function(e,t){var n=i.Tooltip.getTooltip(this._view);if(n&&(!n.isVisible()||this._tooltipLineIndex!==e)&&(this._tooltipLineIndex=e,t.clientX!==this._lastMouseX||t.clientY!==this._lastMouseY)){this._lastMouseX=t.clientX,this._lastMouseY=t.clientY,this._hoverTimeout&&(window.clearTimeout(this._hoverTimeout),this._hoverTimeout=null);var r=t.target?t.target:t.srcElement,o=r.getBoundingClientRect();this._curElementBounds=Object.create(null),this._curElementBounds.top=o.top,this._curElementBounds.left=o.left,this._curElementBounds.height=o.height,this._curElementBounds.width=o.width,r===this.node&&(this._curElementBounds.top=t.clientY,this._curElementBounds.height=1);var s=this;s._hoverTimeout=window.setTimeout(function(){s._hoverTimeout=null,n.onHover({getTooltipInfo:function(){var e=s._getAnnotationsAtLineIndex(s._tooltipLineIndex),n=s._getTooltipContents(s._tooltipLineIndex,e);return s._getTooltipInfo(n,t.clientY,{source:"ruler",rulerLocation:s.getLocation()})}},t.clientX,t.clientY)},175)}},onMouseOver:function(e,t){this.onMouseMove(e,t),this._currentClickGroup||this._setCurrentGroup(e)},onMouseOut:function(){this._currentClickGroup||this._setCurrentGroup(-1),this._hoverTimeout&&(window.clearTimeout(this._hoverTimeout),this._hoverTimeout=null)},_findNextAnnotation:function(e,t,n,i,r,o){var s,a=null,l=t;if(i>=0&&r>=0&&i>=t&&n>i){l=i;for(var d=e.getAnnotations(i,r);!s&&d.hasNext();){var h=d.next();(!o||o(h.type))&&h.start===i&&h.end===r&&(s=h)}}for(var c,u=e.getAnnotations(l,n);u.hasNext();)if(h=u.next(),!o||o(h.type)){if(a||(a=h),!s){a=h;break}if(c&&(s.start!==h.start||s.end!==h.end)){c=!1,a=h;break}s&&s===h&&(c=!0)}return c&&(a=null),a},_getAnnotationsAtLineIndex:function(e){if(void 0!==e){var t=this._view,n=t.getModel(),i=this._annotationModel,r=[];if(i){var o=n.getLineStart(e),s=n.getLineEnd(e);n.getBaseModel&&(o=n.mapOffset(o),s=n.mapOffset(s)),r=this.getAnnotationsByType(i,o,s)}return r}},_getTooltipInfo:function(e,t,n){if(!e)return null;var i=Object.create(null);i.top=this._curElementBounds.top,i.left=this._curElementBounds.left,i.height=this._curElementBounds.height,i.width=this._curElementBounds.width,"string"==typeof e&&t&&(i.top=t,i.height=1);var r=this.getLocation(),o=this.getRulerStyle(),s="left"===r?"right":"left",a=this._view._clientDiv.getBoundingClientRect(),l=0,d=0;l=a.left-(i.left+i.width),d=i.height,"left"===s&&(l=-25,1===i.height&&(l+=2)),o.styleClass.indexOf("folding")>=0&&(d-=14);var h={contents:e,position:s,tooltipOffsetX:l,tooltipOffsetY:d,anchorArea:i,context:n};return h},_getTooltipContents:function(e,t){return t},_getOnClickTooltipInfo:function(e){var t=this._view,n=Object.create(null);n.top=this._curElementBounds.top,n.left=this._curElementBounds.left,n.height=this._curElementBounds.height,n.width=this._curElementBounds.width;var i=this.getLocation(),r="left"===i?"right":"left",o={contents:[e],position:r,anchorArea:n},s=t._clientDiv.getBoundingClientRect();return o.offsetX=s.left-(n.left+n.width),o.offsetY=n.height,"left"===o.position&&(o.offsetX=20),o},_onAnnotationModelChanged:function(e){function t(e){for(var t=0;t=l&&void 0!==t.groupId){r=t;break}if(s&&r&&s.groupId===r.groupId)return}if(this._currentGroupAnnotation=null,s&&i.removeAnnotations(s.groupType),r&&-1!==e){this._currentGroupAnnotation=r,n=i.getAnnotations();for(var d=[];n.hasNext();)t=n.next(),delete t.groupAnnotation,t.groupId===r.groupId&&(t=t.createGroupAnnotation(),d.push(t));i.replaceAnnotations(null,d)}}}),n.AnnotationTypeList.addMixin(l.prototype),d.prototype=new l,d.prototype.getAnnotations=function(e,t){for(var n=l.prototype.getAnnotations.call(this,e,t),i=this._view.getModel(),r=e;t>r;r++){var o=r-this._firstLine&1?this._oddStyle:this._evenStyle,s=r;if(i.getBaseModel){var a=i.getLineStart(s);s=i.getBaseModel().getLineAtOffset(i.mapOffset(a))}n[r]||(n[r]={}),n[r].html=this._firstLine+s+"",n[r].style||(n[r].style=o)}return n},d.prototype.getWidestAnnotation=function(){var e=this._view.getModel().getLineCount();return this.getAnnotations(e-1,e)[e-1]},d.prototype.setFirstLine=function(e){this._firstLine=void 0!==e?e:1},d.prototype._onTextModelChanged=function(e){var t=e.start,n=this._view.getModel(),i=n.getBaseModel?n.getBaseModel().getLineCount():n.getLineCount(),r=(this._firstLine+i-1+"").length;if(this._numOfDigits!==r){this._numOfDigits=r;var o=n.getLineAtOffset(t);this._view.redrawLines(o,n.getLineCount(),this)}},h.prototype=new l,c.prototype=new l,c.prototype.getRulerStyle=function(){var e={style:{lineHeight:"1px",fontSize:"1px"}};return e=this._mergeStyle(e,this._rulerStyle)},c.prototype._getTooltipContents=function(t,n){if(n&&0===n.length){var i=this._view.getModel(),r=t;if(i.getBaseModel){var o=i.getLineStart(r);r=i.getBaseModel().getLineAtOffset(i.mapOffset(o))}return s.formatMessage(e.line,r+1)}return l.prototype._getTooltipContents.call(this,t,n)},c.prototype._mergeAnnotation=function(e,t,n,i){if(0!==n)return void 0;var r=e;if(!r){var o=3*i;r={html:" ",style:{style:{height:o+"px"}}},r.style=this._mergeStyle(r.style,t.overviewStyle)}return r},u.prototype=new h,u.prototype.onClick=function(e){if(void 0!==e){var t=this._annotationModel;if(t){var n=this._view,r=n.getModel(),o=r.getLineStart(e),s=r.getLineEnd(e,!0);r.getBaseModel&&(o=r.mapOffset(o),s=r.mapOffset(s),r=r.getBaseModel());for(var a,l=t.getAnnotations(o,s);!a&&l.hasNext();){var d=l.next();this.isAnnotationTypeVisible(d.type)&&r.getLineAtOffset(d.start)===r.getLineAtOffset(o)&&(a=d)}if(a){var h=i.Tooltip.getTooltip(this._view);h&&h.hide(),a.expanded?a.collapse():a.expand()}}}},u.prototype._getTooltipContents=function(e,t){if(t&&t.length>0){var n=this._view,i=n.getModel(),r=i.getLineStart(e);i.getBaseModel&&(r=i.mapOffset(r),i=i.getBaseModel());for(var o=i.getLineAtOffset(r),s=0;s=e.end?s-=e.end-e.start:s>=e.start&&(s=e.start)}),n.setText(o,s,s),n.setSelection(s,s+o.length),this._dropText=null,this._dropOffset=-1}this._undoStack&&this._undoStack.endCompoundChange(),this._dragSelection=null}},_onDragEnter:function(e){this._onDragOver(e)},_onDragOver:function(t){var n=t.event.dataTransfer.types,i=!this._view.getOptions("readonly");if(i&&n&&(i=n.contains?n.contains("text/plain")||n.contains("Text"):-1!==n.indexOf("text/plain")||-1!==n.indexOf("Text")),i){if(!e.isFirefox){var r=e.isMac?t.event.altKey:t.event.ctrlKey;this._dropEffect=t.event.dataTransfer.dropEffect=r?"copy":"move"}}else t.event.dataTransfer.dropEffect="none"},_onDrop:function(t){var n=this._view,i=t.event.dataTransfer.getData("Text");if(i){e.isFirefox||(t.event.dataTransfer.dropEffect=this._dropEffect);var r=n.getOffsetAtLocation(t.x,t.y);this._dragSelection?(this._dropOffset=r,this._dropText=i):(n.setText(i,r,r),n.setSelection(r,r+i.length))}}},{TextDND:t}}),define("orion/editor/linkedMode",["i18n!orion/editor/nls/messages","orion/keyBinding","orion/editor/keyModes","orion/editor/annotations","orion/objects","orion/util"],function(e,t,n,i,r){function o(e){this._data=e}function s(e,t,i){var r=e.getTextView();n.KeyMode.call(this,r),this.editor=e,this.undoStack=t,this.contentAssist=i,this.linkedModeModel=null,r.setAction("linkedModeEnter",function(){return this.exitLinkedMode(!0),!0}.bind(this)),r.setAction("linkedModeCancel",function(){return this.exitLinkedMode(!1),!0}.bind(this)),r.setAction("linkedModeNextGroup",function(){var e=this.linkedModeModel;return this.selectLinkedGroup((e.selectedGroupIndex+1)%e.groups.length),!0}.bind(this)),r.setAction("linkedModePreviousGroup",function(){var e=this.linkedModeModel;return this.selectLinkedGroup(e.selectedGroupIndex>0?e.selectedGroupIndex-1:e.groups.length-1),!0}.bind(this)),this.linkedModeListener={onActivating:function(){this._groupContentAssistProvider&&(this.contentAssist.setProviders([this._groupContentAssistProvider]),this.contentAssist.setProgress(null))}.bind(this),onModelChanged:function(e){if(!this.ignoreVerify){for(var t,n,i=this.editor.mapOffset(e.start),r=this.linkedModeModel;r&&(t=this._getPositionChanged(r,i,i+e.removedCharCount),n=t.position,void 0===n||n.model!==r);)this.exitLinkedMode(!1),r=this.linkedModeModel;if(r){for(var o,s,a=0,l=e.addedCharCount-e.removedCharCount,d=t.positions,h=0;h=0;g--)d=u[g],d.model===s&&d.group===n.group&&i.setText(e.text,d.oldOffset+f,d.oldOffset+p,!1);this.ignoreVerify=!1,e.text=null,this._updateAnnotations(u)}}}.bind(this)}}var a={};return o.prototype={chop:function(e,t){return t.substring(e.length)},computeProposals:function(e,t,n){var i=n.prefix,r=[],o=this._data.style?this._data.style:null;o=o?o:"emphasis";for(var s=this._data.values,a=0;a=0;o--)if(!r[o].escape){var s=r[o].position;if(s.offset<=t&&n<=s.offset+s.length){i=r[o];break}}return{position:i,positions:r}},_updateAnnotations:function(e){var t=this.editor.getAnnotationModel();if(t){for(var n,r=[],o=[],s=t.getAnnotations();s.hasNext();)switch(n=s.next(),n.type){case i.AnnotationType.ANNOTATION_LINKED_GROUP:case i.AnnotationType.ANNOTATION_CURRENT_LINKED_GROUP:case i.AnnotationType.ANNOTATION_SELECTED_LINKED_GROUP:r.push(n)}var a=this.linkedModeModel;if(a){e=e||this._getSortedPositions(a);for(var l=0;l/g,">").replace(/"/g,""").replace(/'/g,"'")}function o(e){return e.replace(/&([#\w]+);/g,function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substring(2),16):+t.substring(1)):""})}function s(e,t){return e=e.source,t=t||"",function n(i,r){return i?(r=r.source||r,r=r.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(i,r),n):new RegExp(e,t)}}function a(){}function l(e){for(var t,n,i=1;iAn error occured:

    "+r(u.message+"",!0)+"
    ";throw u}}var h={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:a,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:a,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:a,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};h.bullet=/(?:[*+-]|\d+\.)/,h.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,h.item=s(h.item,"gm")(/bull/g,h.bullet)(),h.list=s(h.list)(/bull/g,h.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+h.def.source+")")(),h.blockquote=s(h.blockquote)("def",h.def)(),h._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",h.html=s(h.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,h._tag)(),h.paragraph=s(h.paragraph)("hr",h.hr)("heading",h.heading)("lheading",h.lheading)("blockquote",h.blockquote)("tag","<"+h._tag)("def",h.def)(),h.normal=l({},h),h.gfm=l({},h.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/}),h.gfm.paragraph=s(h.paragraph)("(?!","(?!"+h.gfm.fences.source.replace("\\1","\\2")+"|"+h.list.source.replace("\\1","\\3")+"|")(),h.tables=l({},h.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),e.rules=h,e.lex=function(t,n){var i=new e(n);return i.lex(t)},e.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},e.prototype.token=function(e,t,n){for(var i,r,o,s,a,l,d,c,u,e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(t&&(o=this.rules.nptable.exec(e))){for(e=e.substring(o[0].length),l={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/\n$/,"").split("\n")},c=0;c ?/gm,""),this.token(o,t,!0),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),s=o[2],this.tokens.push({type:"list_start",ordered:s.length>1}),o=o[0].match(this.rules.item),i=!1,u=o.length,c=0;u>c;c++)l=o[c],d=l.length,l=l.replace(/^ *([*+-]|\d+\.) +/,""),~l.indexOf("\n ")&&(d-=l.length,l=this.options.pedantic?l.replace(/^ {1,4}/gm,""):l.replace(new RegExp("^ {1,"+d+"}","gm"),"")),this.options.smartLists&&c!==u-1&&(a=h.bullet.exec(o[c+1])[0],s===a||s.length>1&&a.length>1||(e=o.slice(c+1).join("\n")+e,c=u-1)),r=i||/\n\n(?!\s*$)/.test(l),c!==u-1&&(i="\n"===l.charAt(l.length-1),r||(r=i)),this.tokens.push({type:r?"loose_item_start":"list_item_start"}),this.token(l,!1,n),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:"pre"===o[1]||"script"===o[1]||"style"===o[1],text:o[0],isHTML:!0});else if(!n&&t&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),this.tokens.links[o[1].toLowerCase()]={href:o[2],title:o[3]},this.tokens.push({type:"def",id:o[1].toLowerCase(),href:o[2],title:o[3]});else if(t&&(o=this.rules.table.exec(e))){for(e=e.substring(o[0].length),l={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/(?: *\| *)?\n$/,"").split("\n")},c=0;c])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:a,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:a,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/,c.link=s(c.link)("inside",c._inside)("href",c._href)(),c.reflink=s(c.reflink)("inside",c._inside)(),c.normal=l({},c),c.pedantic=l({},c.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),c.gfm=l({},c.normal,{escape:s(c.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:s(c.text)("]|","~]|")("|","|https?://|")()}),c.breaks=l({},c.gfm,{br:s(c.br)("{2,}","*")(),text:s(c.gfm.text)("{2,}","*")()}),t.rules=c,t.output=function(e,n,i){var r=new t(n,i);return r.output(e)},t.prototype.output=function(e){for(var t,n,i,o,s="";e;)if(o=this.rules.escape.exec(e))e=e.substring(o[0].length),s+=o[1];else if(o=this.rules.autolink.exec(e))e=e.substring(o[0].length),"@"===o[2]?(n=this.mangle(":"===o[1].charAt(6)?o[1].substring(7):o[1]),i=this.mangle("mailto:")+n):(n=r(o[1]),i=n),s+=this.renderer.link(i,null,n);else if(this.inLink||!(o=this.rules.url.exec(e))){if(o=this.rules.tag.exec(e))!this.inLink&&/^/i.test(o[0])&&(this.inLink=!1),e=e.substring(o[0].length),s+=this.options.sanitize?r(o[0]):o[0];else if(o=this.rules.link.exec(e))e=e.substring(o[0].length),this.inLink=!0,s+=this.outputLink(o,{href:o[2],title:o[3]}),this.inLink=!1;else if((o=this.rules.reflink.exec(e))||(o=this.rules.nolink.exec(e))){if(e=e.substring(o[0].length),t=(o[2]||o[1]).replace(/\s+/g," "),t=this.links[t.toLowerCase()],!t||!t.href){s+=o[0].charAt(0),e=o[0].substring(1)+e;continue}this.inLink=!0,s+=this.outputLink(o,t),this.inLink=!1}else if(o=this.rules.strong.exec(e))e=e.substring(o[0].length),s+=this.renderer.strong(this.output(o[2]||o[1]));else if(o=this.rules.em.exec(e))e=e.substring(o[0].length),s+=this.renderer.em(this.output(o[2]||o[1]));else if(o=this.rules.code.exec(e))e=e.substring(o[0].length),s+=this.renderer.codespan(r(o[2],!0));else if(o=this.rules.br.exec(e))e=e.substring(o[0].length),s+=this.renderer.br();else if(o=this.rules.del.exec(e))e=e.substring(o[0].length),s+=this.renderer.del(this.output(o[1]));else if(o=this.rules.text.exec(e))e=e.substring(o[0].length),s+=r(this.smartypants(o[0]));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(o[0].length),n=r(o[1]),i=n,s+=this.renderer.link(i,null,n);return s},t.prototype.outputLink=function(e,t){var n=r(t.href),i=t.title?r(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,r(e[1]))},t.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1ā€˜").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1ā€œ").replace(/"/g,"ā€").replace(/\.{3}/g,"…"):e},t.prototype.mangle=function(e){for(var t,n="",i=e.length,r=0;i>r;r++)t=e.charCodeAt(r),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},n.prototype.code=function(e,t,n){if(this.options.highlight){var i=this.options.highlight(e,t);null!=i&&i!==e&&(n=!0,e=i)}return t?'
    '+(n?e:r(e,!0))+"\n
    \n":"
    "+(n?e:r(e,!0))+"\n
    "},n.prototype.blockquote=function(e){return"
    \n"+e+"
    \n"},n.prototype.def=function(){return""},n.prototype.html=function(e){return e},n.prototype.heading=function(e,t,n){return"'+e+"\n"},n.prototype.hr=function(){return this.options.xhtml?"
    \n":"
    \n"},n.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"\n"},n.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},n.prototype.paragraph=function(e){return"

    "+e+"

    \n"},n.prototype.table=function(e,t){return"\n\n"+e+"\n\n"+t+"\n
    \n"},n.prototype.tablerow=function(e){return"\n"+e+"\n"},n.prototype.tablecell=function(e,t){var n=t.header?"th":"td",i=t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">";return i+e+"\n"},n.prototype.strong=function(e){return""+e+""},n.prototype.em=function(e){return""+e+""},n.prototype.codespan=function(e){return""+e+""},n.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},n.prototype.del=function(e){return""+e+""},n.prototype.link=function(e,t,n){if(this.options.sanitize){try{var i=decodeURIComponent(o(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(r){return""}if(0===i.indexOf("javascript:"))return""}var s='
    "},n.prototype.image=function(e,t,n){var i=''+n+'":">"},i.parse=function(e,t,n){var r=new i(t,n);return r.parse(e)},i.prototype.parse=function(e){this.inline=new t(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var n="";this.next();)n+=this.tok();return n},i.prototype.next=function(){return this.token=this.tokens.pop()},i.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},i.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},i.prototype.tok=function(){switch(this.token.type){case"space":return"";case"def":return this.renderer.def(this.token.id,this.token.href,this.token.title);case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,i,r,o="",s="";for(n="",e=0;e0||e.addedLineCount>0),n},setState:function(e,t){var n;e===p.ACTIVE?(n="Activating",this._mode&&this._mode.setActive(!0)):e===p.INACTIVE&&(n="Deactivating",this._mode&&this._mode.setActive(!1)),n&&this.dispatchEvent({type:n,providers:t}),this.state=e,this.onStateChange(e)},setMode:function(e){this._mode=e},onStateChange:function(e){e===p.INACTIVE?(this._removeTextViewListeners(),this._filterText="",this._initialCaretOffset=-1,this._computedProposals=null):e===p.ACTIVE&&(this._filterText="",this._addTextViewListeners(),this.computeProposals())},computeProposals:function(){var e=this.textView.getCaretOffset(),t=this.textView.getSelection(),n=Math.min(t.start,t.end);this._initialCaretOffset=Math.min(e,n),this._computedProposals=null,this._computeProposals(this._initialCaretOffset).then(function(e){if(this.isActive()){var t=this._flatten(e);t&&Array.isArray(t)&&00&&/[A-Za-z0-9_]/.test(e.getText(n-1,n));)n--;return n},handleError:function(e){"undefined"!=typeof console&&(console.log("Error retrieving content assist proposals"),console.log(e&&e.stack))},initialize:function(){this._providers.forEach(function(e){var t=e.provider;"function"==typeof t.initialize&&t.initialize()})},_computeProposals:function(t){var n=this._providers,i=this.textView,s=i.getSelection(),a=i.getModel(),l=t;a.getBaseModel&&(l=a.mapOffset(l),s.start=a.mapOffset(s.start),s.end=a.mapOffset(s.end),a=a.getBaseModel());for(var d=a.getLine(a.getLineAtOffset(l)),h=0;h0)for(var i=0;i0){n=!0;break}return n||g.pageMessage.setErrorMessage(e.noProposals),t}),g.pageMessage.showWhile(m,e.computingProposals)),m},filterProposals:function(e){if(this._computedProposals&&(this._latestModelChangingEvent||e)){var t=this.textView.getModel();t.getBaseModel&&(t=t.getBaseModel());var n=this.getPrefixStart(t,this._initialCaretOffset),i=this.textView.getText(n,this._initialCaretOffset),r=i,o=[];this._computedProposals.forEach(function(e){if(e&&Array.isArray(e)){var t=e.filter(function(e){if(!e)return!1;if(r="string"==typeof e.prefix?e.prefix:i,g[e.style]===g.hr||g[e.style]===g.noemphasis_title)return!0;var t="";if(e.overwrite){if(e.name)t=e.name;else{if(!e.proposal)return!1;t=e.proposal}return 0===t.indexOf(r+this._filterText)}if(e.name||e.proposal){var n=!1;return e.name&&(n=0===e.name.indexOf(r+this._filterText)),!n&&e.proposal&&(n=0===e.proposal.indexOf(this._filterText)),n}return"string"==typeof e?0===e.indexOf(this._filterText):!1},this);t.length>0&&o.push(t)}},this);var s=[];o&&(o=this._removeExtraUnselectableElements(o),s=this._flatten(o)),this.dispatchEvent({type:"ProposalsComputed",data:{proposals:s},autoApply:!1})}},_removeExtraUnselectableElements:function(e){var t=e.map(function(e){var t=e.filter(function(t,n){var i=!0;if(g[t.style]===g.hr)0===n||e.length-1===n?i=!1:g.hr===g[e[n-1].style]&&(i=!1);else if(g[t.style]===g.noemphasis_title){var r=e[n+1];r?g[r.style]===g.noemphasis_title&&(i=!1):i=!1}return i});return t});return t},setEditorContextProvider:function(e){this.editorContextProvider=e},_generateProviderId:function(){return this._idcount?this._idcount++:this._idcount=0,"ContentAssistGeneratedID_"+this._idcount},setAutoTriggerEnabled:function(e){this._autoTriggerEnabled=e,this._updateAutoTriggerListenerState()},setProviders:function(e){var t=this;this.setProviderInfoArray(e.map(function(e){return e.id?e:{provider:e,id:t._generateProviderId()}}))},setProviderInfoArray:function(e){this.clearProviders(),this._providers=e,this._charTriggersInstalled=e.some(function(e){return e.charTriggers}),this._updateAutoTriggerListenerState()},getProviders:function(){return this._providers.slice()},clearProviders:function(){this._providers=[],this._charTriggersInstalled=!1,this._updateAutoTriggerListenerState()},setProgress:function(e){this.progress=e},setStyleAccessor:function(e){this._styleAccessor=e},_flatten:function(e){return e.reduce(function(e,t){var n=e,i=null;if(t&&Array.isArray(t)&&(i=t.filter(function(e){return e})),i&&Array.isArray(i)&&i.length>0){var r=i,o=e,s=i[0].style;if(s&&g[s]&&0===g[s].indexOf(g.noemphasis)&&(r=e,o=i),r.length>0){var a=r[r.length-1].style;a&&g.hr!==g[a]&&(r=r.concat({proposal:"",name:"",description:"---------------------------------",style:"hr",unselectable:!0}))}n=r.concat(o)}return n},[])},_triggerListener:function(){var e=this.textView.getCaretOffset(),t=null,n=[];if(this._charTriggersInstalled){var i=this.textView.getText(e-1,e);this._providers.forEach(function(r){var o=r.charTriggers;if(o&&o.test(i)){var s=!1,a=r.excludedStyles;this._styleAccessor&&a&&(t||(t=this._styleAccessor.getStyles(e-1)),s=t.some(function(e){return a.test(e.style)})),s||n.push(r)}},this),n.length>0&&this.activate(n,!0)}},_updateAutoTriggerListenerState:function(){this._boundTriggerListener||(this._boundTriggerListener=this._triggerListener.bind(this)),this._triggerListenerInstalled?this._autoTriggerEnabled&&this._charTriggersInstalled||(this.textView.removeEventListener("Modify",this._boundTriggerListener),this._triggerListenerInstalled=!1):this._autoTriggerEnabled&&this._charTriggersInstalled&&(this.textView.addEventListener("Modify",this._boundTriggerListener),this._triggerListenerInstalled=!0)},_addTextViewListeners:function(){this._textViewListenersAdded||(this.textView.addEventListener("ModelChanging",this._textViewListeners.onModelChanging),this.textView.addEventListener("Scroll",this._textViewListeners.onScroll),this.textView.addEventListener("Selection",this._textViewListeners.onSelection),this._textViewListenersAdded=!0)},_removeTextViewListeners:function(){this._textViewListenersAdded&&(this._latestModelChangingEvent=null,this.textView.removeEventListener("ModelChanging",this._textViewListeners.onModelChanging),this.textView.removeEventListener("Scroll",this._textViewListeners.onScroll),this.textView.removeEventListener("Selection",this._textViewListeners.onSelection),this._textViewListenersAdded=!1)},_updateFilterText:function(e){var t=e.removedCharCount;if(t){var n=this._filterText.length-t;this._filterText=this._filterText.substring(0,n)}var i=e.text;i&&(this._filterText=this._filterText.concat(i))}},i.EventTarget.addMixin(c.prototype),u.prototype=new n.KeyMode,o.mixin(u.prototype,{createKeyBindings:function(){var e=t.KeyBinding,n=[];return n.push({actionID:"contentAssistApply",keyBinding:new e(13)}),n.push({actionID:"contentAssistCancel",keyBinding:new e(27)}),n.push({actionID:"contentAssistNextProposal",keyBinding:new e(40)}),n.push({actionID:"contentAssistPreviousProposal",keyBinding:new e(38)}),n.push({actionID:"contentAssistNextPage",keyBinding:new e(34)}),n.push({actionID:"contentAssistPreviousPage",keyBinding:new e(33)}),n.push({actionID:"contentAssistHome",keyBinding:new e(d.KEY.HOME)}),n.push({actionID:"contentAssistEnd",keyBinding:new e(d.KEY.END)}),n.push({actionID:"contentAssistTab",keyBinding:new e(9)}),n},cancel:function(){this.getContentAssist().deactivate()},getContentAssist:function(){return this.contentAssist},getProposals:function(){return this.proposals},isActive:function(){return this.getContentAssist().isActive()},setActive:function(e){e?this.contentAssist.textView.addKeyMode(this):this.contentAssist.textView.removeKeyMode(this)},lineUp:function(e,t){return this.selectNew(e,t,!1)},lineDown:function(e,t){return this.selectNew(e,t,!0)},selectNew:function(e,t,n){var i=e;if(n){if(void 0===i&&(i=this.selectedIndex+1),i>=this.proposals.length){if(t)return!0;i=0}}else if(void 0===i&&(i=this.selectedIndex-1),0>i){if(t)return!0;i=this.proposals.length-1}for(var r=i;this.proposals[i]&&this.proposals[i].unselectable;){if(n){if(i++,i>=this.proposals.length){if(t)return!0;i=0}}else if(i--,0>i){if(t)return!0;i=this.proposals.length-1}if(i===r){i=-1;break}}return this.selectedIndex=i,this.widget&&this.widget.selectNode(i),this._showTooltip(!0),!0},_showTooltip:function(e,t){var n=s.Tooltip.getTooltip(this.contentAssist.textView),i=this,r={getTooltipInfo:function(){var e=i.widget.parentNode.getBoundingClientRect(),t={width:350,height:e.height,top:e.top};e.left+e.width>=document.documentElement.clientWidth?(t.left=e.left-t.width,t.left-=10):(t.left=e.left+e.width,t.left+=10);var n={context:{proposal:i.proposals[i.selectedIndex]},anchorArea:e,tooltipArea:t};return n}};e?n.update(r,t):n.show(r,!0,!1)},_hideTooltip:function(){var e=s.Tooltip.getTooltip(this.contentAssist.textView);e.hide(!0)},pageUp:function(){if(this.widget){var e=this.widget.getTopIndex();return e===this.selectedIndex&&(this.widget.scrollIndex(e,!1),e=this.widget.getTopIndex()),0===e?this.lineDown(e,!0):this.lineUp(e,!0)}return this.lineUp()},pageDown:function(){if(this.widget){var e=this.widget.getBottomIndex();return e===this.selectedIndex&&(this.widget.scrollIndex(e,!0),e=this.widget.getBottomIndex()),this.lineDown(e,!0)}return this.lineDown()},enter:function(){var e=this.proposals[this.selectedIndex]||null;return this.contentAssist.apply(e)},tab:function(){return this.widget?(this.widget.parentNode.focus(),!0):!1}}),f.prototype={onClick:function(e){e||(e=window.event),this.contentAssist.apply(this.getProposal(e.target||e.srcElement)),this.textView.focus()},onScroll:function(){this.previousCloneNode&&!this.preserveCloneThroughScroll&&(this._removeCloneNode(),this.previousSelectedNode.classList.add(g.selected)),this.preserveCloneThroughScroll=!1},createDiv:function(e,t,n){var i=t.ownerDocument,r=l.createElement(i,"div");r.id="contentoption"+n,r.setAttribute("role","option"),r.className=g[e.style]?g[e.style]:g.dfault;var o;"hr"===e.style?o=l.createElement(i,"hr"):(o=this._createDisplayNode(e,n),r.contentAssistProposalIndex=n),r.appendChild(o),t.appendChild(r)},createAccessible:function(){var e=this._contentAssistMode,t=this;a.addEventListener(this.parentNode,"keydown",function(n){return n||(n=window.event),n.preventDefault&&n.preventDefault(),n.keyCode===d.KEY.ESCAPE?e.cancel():n.keyCode===d.KEY.UP?e.lineUp():n.keyCode===d.KEY.DOWN?e.lineDown():n.keyCode===d.KEY.ENTER?e.enter():n.keyCode===d.KEY.PAGEDOWN?e.pageDown():n.keyCode===d.KEY.PAGEUP?e.pageUp():n.keyCode===d.KEY.HOME?(t.scrollIndex(0,!0),e.lineDown(0)):n.keyCode===d.KEY.END?e.lineUp(e.getProposals().length-1):!1})},_createDisplayNode:function(e,t){var n=document.createElement("span");if(!e)return n;if("string"==typeof e){var i=this._createNameNode(e);return i.contentAssistProposalIndex=t,i}var r,o;if(e.name&&"string"==typeof e.name)r=this._createNameNode(e.name);else if(e.description&&"string"==typeof e.description)r=this._createNameNode(e.description),o=!0;else{if(!e.proposal||"string"!=typeof e.proposal)return n;r=this._createNameNode(e.proposal)}var s,a=this._createTagsNode(e.tags);return!o&&e.description&&"string"==typeof e.description&&(s=document.createTextNode(e.description)),a&&n.appendChild(a),n.appendChild(r),s&&n.appendChild(s),r.contentAssistProposalIndex=t,n.contentAssistProposalIndex=t,n},_stopResizeTimer:function(){this._resizeTimer&&(window.clearInterval(this._resizeTimer),this._resizeTimer=null)},_startResizeTimer:function(){this._stopResizeTimer(),this._cachedResizeBound=this.parentNode.getBoundingClientRect(),this._resizeTimer=window.setInterval(function(){if(this._contentAssistMode){var e=this.parentNode.getBoundingClientRect();if(e.left===this._cachedResizeBound.left&&e.top===this._cachedResizeBound.top&&e.width===this._cachedResizeBound.width&&e.height===this._cachedResizeBound.height)return;this._cachedResizeBound=e,this._contentAssistMode._showTooltip(!0,!0)}}.bind(this),100)},_createNameNode:function(e){var t=document.createElement("span");return t.classList.add("proposal-name"),t.appendChild(document.createTextNode(e)),t},_createTagsNode:function(e){var t=null;if(e&&e.constructor===Array&&e.length>0){t=document.createElement("span");for(var n=0;n=this.parentNode.scrollTop)return t}return 0},getBottomIndex:function(){for(var e=this.parentNode.childNodes,t=0;tthis.parentNode.scrollTop+this.parentNode.clientHeight)return Math.max(0,t-1)}return e.length-1},scrollIndex:function(e,t){var n=this.parentNode.childNodes[e];n&&(n.scrollIntoView(t),this.preserveCloneThroughScroll=!0)},selectNode:function(e){var t=null;if(this._hideTimeout&&(window.clearTimeout(this._hideTimeout),this._hideTimeout=null),this._fadeTimer&&(window.clearTimeout(this._fadeTimer),this._fadeTimer=null),this.previousSelectedNode&&(this.previousSelectedNode.classList.remove(g.selected),this.previousSelectedNode=null,this.previousCloneNode&&this._removeCloneNode()),-1!==e&&(t=this.parentNode.childNodes[e])){t.classList.add(g.selected),this.parentNode.setAttribute("aria-activedescendant",t.id),t.focus(),t.offsetTopthis.parentNode.scrollTop+this.parentNode.clientHeight&&(t.scrollIntoView(!1),this.preserveCloneThroughScroll=!0);var n=t.firstChild||t,i=n.getBoundingClientRect(),r=this.parentNode.clientWidth?this.parentNode.clientWidth:this.parentNode.getBoundingClientRect(),o=window.getComputedStyle(this.parentNode),s=window.getComputedStyle(t),a=parseInt(o.paddingLeft)+parseInt(o.paddingRight)+parseInt(s.paddingLeft)+parseInt(s.paddingRight);if(i.width>=r-a){var l=parseInt(o.top),d=t.cloneNode(!0);d.classList.add("cloneProposal"),d.style.top=l+t.offsetTop-this.parentNode.scrollTop+"px",d.style.left=o.left,d.setAttribute("id",d.id+"_clone");var h=document.documentElement.clientWidth,c=i.left+i.width-parseInt(h);if(c>0){var u=parseInt(o.left)-c;0>u&&(u=0),d.style.left=u+"px"}var f=document.createElement("div");f.id="clone_contentassist",f.classList.add("contentassist"),f.classList.add("cloneWrapper"),f.appendChild(d),f.onclick=this.parentNode.onclick,this.parentNode.parentNode.insertBefore(f,this.parentNode);var p=function(e){if(e.contentAssistProposalIndex=t.contentAssistProposalIndex,e.hasChildNodes())for(var n=0;n=e?(v._removeCloneNode(),window.clearInterval(v._fadeTimer),v._fadeTimer=null):(f.style.opacity=e,f.style.filter="alpha(opacity="+100*e+")",e-=.1*e)},50)},1500),t.classList.remove(g.selected),this.previousCloneNode=f}}this.previousSelectedNode=t},setContentAssistMode:function(e){this._contentAssistMode=e},show:function(){var e=this._contentAssistMode.getProposals();if(0===e.length)this.hide();else{this.parentNode.innerHTML="";for(var t=0;tl){var d=r.y-this.textView.getLineHeight();this.parentNode.offsetHeight>d?l>d?this.parentNode.style.maxHeight=l+"px":(this.parentNode.style.maxHeight=d+"px",this.parentNode.style.top="0"):(this.parentNode.style.top=r.y-this.parentNode.offsetHeight-this.textView.getLineHeight()+"px",this.parentNode.style.maxHeight=d+"px")}else this.parentNode.style.maxHeight=l+"px";if(r.x+this.parentNode.offsetWidth>s){var h=s-this.parentNode.offsetWidth;0>h&&(h=0),this.parentNode.style.left=h+"px",this.parentNode.style.maxWidth=s-h}else this.parentNode.style.maxWidth=s+r.x+"px"},_removeCloneNode:function(){this.parentNode.parentNode.contains(this.previousCloneNode)&&this.parentNode.parentNode.removeChild(this.previousCloneNode),this.previousCloneNode=null}},{ContentAssist:c,ContentAssistMode:u,ContentAssistWidget:f}}),define("orion/editor/emacs",["i18n!orion/editor/nls/messages","orion/editor/keyModes","orion/keyBinding","orion/util"],function(e,t,n,i){function r(e){t.KeyMode.call(this,e)}return r.prototype=new t.KeyMode,r.prototype.createKeyBindings=function(){var e=[];e.push({actionID:"emacs-beginning-of-line",keyBinding:this._createStroke("a",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-end-of-line",keyBinding:this._createStroke("e",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-forward-char",keyBinding:this._createStroke("f",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-backward-char",keyBinding:this._createStroke("b",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-forward-word",keyBinding:this._createStroke("f",!1,!1,!0)}),e.push({actionID:"emacs-backward-word",keyBinding:this._createStroke("b",!1,!1,!0)}),e.push({actionID:"emacs-next-line",keyBinding:this._createStroke("n",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-previous-line",keyBinding:this._createStroke("p",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-beginning-of-buffer",keyBinding:this._createStroke(188,!1,!0,!0)}),e.push({actionID:"emacs-end-of-buffer",keyBinding:this._createStroke(190,!1,!0,!0)}),e.push({actionID:"emacs-delete-backward-char",keyBinding:this._createStroke(46,!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-delete-char",keyBinding:this._createStroke("d",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-kill-line",keyBinding:this._createStroke("k",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-kill-word",keyBinding:this._createStroke("d",!1,!1,!0)}),e.push({actionID:"emacs-backward-kill-word",keyBinding:this._createStroke(46,!1,!1,!0)}),e.push({actionID:"undo",keyBinding:this._createSequence([this._createStroke("x",!0),this._createStroke("u")])}),e.push({actionID:"redo",keyBinding:this._createSequence([this._createStroke("x",!0),this._createStroke("r")])}),e.push({actionID:"emacs-scroll-up",keyBinding:this._createStroke("v",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-scroll-down",keyBinding:this._createStroke("v",!1,!1,!0)}),e.push({actionID:"emacs-set-mark-command",keyBinding:this._createStroke(" ",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-reset-mark-command",keyBinding:this._createStroke("g",!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-exchange-point-and-mark",keyBinding:this._createSequence([this._createStroke("x",!i.isMac,!1,!1,i.isMac),this._createStroke("x",!i.isMac,!1,!1,i.isMac)])});for(var t=0;9>=t;t++)e.push({actionID:"emacs-digit-argument-"+t,keyBinding:this._createStroke(48+t,!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-digit-argument-"+t,keyBinding:this._createStroke(48+t,!1,!1,!0)}),e.push({actionID:"emacs-digit-argument-"+t,keyBinding:this._createStroke(48+t,!i.isMac,!1,!0,i.isMac)});return e.push({actionID:"emacs-negative-argument",keyBinding:this._createStroke(189,!i.isMac,!1,!1,i.isMac)}),e.push({actionID:"emacs-negative-argument",keyBinding:this._createStroke(189,!1,!1,!0)}),e.push({actionID:"emacs-negative-argument",keyBinding:this._createStroke(189,!i.isMac,!1,!0,i.isMac)}),e.push({actionID:"emacs-uppercase",keyBinding:this._createStroke("u",!1,!1,!0)}),e.push({actionID:"emacs-lowercase",keyBinding:this._createStroke("l",!1,!1,!0)}),e.push({actionID:"emacs-capitalize",keyBinding:this._createStroke("c",!1,!1,!0)}),e.push({actionID:"contentAssist",keyBinding:this._createStroke(191,!1,!1,!0)}),e.push({actionID:"find",keyBinding:this._createStroke("r",!1,!1,!0)}),e.push({actionID:"incrementalFind",keyBinding:this._createStroke("s",!0)}),e.push({actionID:"incrementalFindReverse",keyBinding:this._createStroke("r",!0)}),e.push({actionID:"save",keyBinding:this._createSequence([this._createStroke("x",!i.isMac,!1,!1,i.isMac),this._createStroke("s",!i.isMac,!1,!1,i.isMac)])}),this._createActions(this.getView()),e},r.prototype._createStroke=function(t,i,r,o,s){var a=new n.KeyStroke(t,i,r,o,s);return a.scopeName=e.emacs,a},r.prototype._createSequence=function(t){var i=new n.KeySequence(t);return i.scopeName=e.emacs,i},r.prototype._getData=function(){var e={count:(this._argument||1)*(this._sign||1)};return this._argument=0,this._sign=1,e},r.prototype._moveCursor=function(e){var t=this._getData();this._marker&&(t.select=!0);var n=this.getView();return n.invokeAction(e,!1,t)},r.prototype._digitArgument=function(e){return this._argument=10*(this._argument||0)+e,!0},r.prototype._negativeArgument=function(){return this._sign=-1*(this._sign||1),!0},r.prototype._createActions=function(t){var n=this;t.setAction("emacs-beginning-of-line",function(){return n._moveCursor("lineStart")},{name:e.lineStart}),t.setAction("emacs-end-of-line",function(){return n._moveCursor("lineEnd")},{name:e.lineEnd}),t.setAction("emacs-forward-char",function(){return n._moveCursor("charNext")},{name:e.charNext}),t.setAction("emacs-backward-char",function(){return n._moveCursor("charPrevious")},{name:e.charPrevious}),t.setAction("emacs-forward-word",function(){return n._moveCursor("wordNext")},{name:e.wordNext}),t.setAction("emacs-backward-word",function(){return n._moveCursor("wordPrevious")},{name:e.wordPrevious}),t.setAction("emacs-next-line",function(){return n._moveCursor("lineDown")},{name:e.lineDown}),t.setAction("emacs-previous-line",function(){return n._moveCursor("lineUp")},{name:e.lineUp}),t.setAction("emacs-beginning-of-buffer",function(){return n._moveCursor("textStart")},{name:e.textStart}),t.setAction("emacs-end-of-buffer",function(){return n._moveCursor("textEnd")},{name:e.textEnd}),t.setAction("emacs-delete-backward-char",function(){return t.invokeAction("deletePrevious")},{name:e.deletePrevious}),t.setAction("emacs-delete-char",function(){return t.invokeAction("deletePrevious")},{name:e.deletePrevious}),t.setAction("emacs-kill-line",function(){return t.invokeAction("deleteLineEnd")},{name:e.deleteLineEnd}),t.setAction("emacs-kill-word",function(){return t.invokeAction("deleteWordNext")},{name:e.deleteWordNext}),t.setAction("emacs-backward-kill-word",function(){return t.invokeAction("deleteWordPrevious") +},{name:e.deleteWordPrevious}),t.setAction("emacs-scroll-up",function(){return n._moveCursor("pageDown")},{name:e.pageDown}),t.setAction("emacs-scroll-down",function(){return n._moveCursor("pageUp")},{name:e.pageUp}),t.setAction("emacs-set-mark-command",function(){var e=t.getCaretOffset();return t.setCaretOffset(e),n._marker=e,!0},{name:e.setMarkCommand}),t.setAction("emacs-exchange-point-and-mark",function(){if(void 0!==n._marker){var e=t.getCaretOffset(),i=t.getSelection();if(i.end===e){var r=i.start;i.start=i.end,i.end=r}n._marker=e,t.setSelection(i.start,i.end)}return!0},{name:e.exchangeMarkPoint}),t.setAction("emacs-reset-mark-command",function(){var e=t.getCaretOffset();return t.setCaretOffset(e),n._marker=void 0,!0},{name:e.clearMark}),t.setAction("emacs-digit-argument-0",function(){return n._digitArgument(0)},{name:i.formatMessage(e.digitArgument,"0")}),t.setAction("emacs-digit-argument-1",function(){return n._digitArgument(1)},{name:i.formatMessage(e.digitArgument,"1")}),t.setAction("emacs-digit-argument-2",function(){return n._digitArgument(2)},{name:i.formatMessage(e.digitArgument,"2")}),t.setAction("emacs-digit-argument-3",function(){return n._digitArgument(3)},{name:i.formatMessage(e.digitArgument,"3")}),t.setAction("emacs-digit-argument-4",function(){return n._digitArgument(4)},{name:i.formatMessage(e.digitArgument,"4")}),t.setAction("emacs-digit-argument-5",function(){return n._digitArgument(5)},{name:i.formatMessage(e.digitArgument,"5")}),t.setAction("emacs-digit-argument-6",function(){return n._digitArgument(6)},{name:i.formatMessage(e.digitArgument,"6")}),t.setAction("emacs-digit-argument-7",function(){return n._digitArgument(7)},{name:i.formatMessage(e.digitArgument,"7")}),t.setAction("emacs-digit-argument-8",function(){return n._digitArgument(8)},{name:i.formatMessage(e.digitArgument,"8")}),t.setAction("emacs-digit-argument-9",function(){return n._digitArgument(9)},{name:i.formatMessage(e.digitArgument,"9")}),t.setAction("emacs-negative-argument",function(){return n._negativeArgument()},{name:e.negativeArgument}),t.setAction("emacs-uppercase",function(){var e=n._getData();return e.unit="word",t.invokeAction("uppercase",!1,e)},{name:e.uppercase}),t.setAction("emacs-lowercase",function(){var e=n._getData();return e.unit="word",t.invokeAction("lowercase",!1,e)},{name:e.lowercase}),t.setAction("emacs-capitalize",function(){var e=n._getData();return e.unit="word",t.invokeAction("capitalize",!1,e)},{name:e.capitalize})},{EmacsMode:r}}),define("orion/editor/vi",["i18n!orion/editor/nls/messages","orion/editor/keyModes","orion/keyBinding","orion/util"],function(e,t,n,i){function r(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}function o(t,i,r,o,s,a,l){var d=new n.KeyStroke(t,i,r,o,s,a);return d.scopeName=l||e.vi,d}function s(t,i){var r=new n.KeySequence(t);return r.scopeName=i||e.vi,r}function a(e,n,i){this.key=n,this.msg=i,this.number="",t.KeyMode.call(this,e),e&&this._createActions(e)}function l(e){var n=e.getView();this.viMode=e,t.KeyMode.call(this,n),this._createActions(n)}function d(e,t,n,i){this.viMode=e,this.nextMode=t,a.call(this,e.getView(),n,i)}function h(e){var n=e.getView();t.KeyMode.call(this,n),this.viMode=e,this._createActions(n)}function c(t,n){a.call(this,t,"",e.vimove),this.insertMode=new h(this),this.changeMode=new d(this,this.insertMode,"c",e.vichange),this.deleteMode=new d(this,this,"d",e.videlete),this.yankMode=new d(this,this,"y",e.viyank),this.statusReporter=n}var u,f;return a.prototype=new t.KeyMode,r(a.prototype,{_msg:function(t){return{name:i.formatMessage(e[t],this.msg)}},createKeyBindings:function(){var e=[],t=this.key;t=t?"-"+t+"-":"-";for(var n=0;9>=n;n++)e.push({actionID:"vi"+t+n,keyBinding:o(n+"",!1,!1,!1,!1,"keypress"),predefined:!0});return e.push({actionID:"vi"+t+"Left",keyBinding:o("h",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"Left",keyBinding:o("h",!0,!1,!1,!1)}),e.push({actionID:"vi"+t+"Left",keyBinding:o(8)}),e.push({actionID:"vi"+t+"Left",keyBinding:o(37)}),e.push({actionID:"vi"+t+"Down",keyBinding:o("j",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"Down",keyBinding:o(40)}),e.push({actionID:"vi"+t+"Up",keyBinding:o("k",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"Up",keyBinding:o(38)}),e.push({actionID:"vi"+t+"Right",keyBinding:o("l",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"Right",keyBinding:o(39)}),e.push({actionID:"vi"+t+"Right",keyBinding:o(32)}),e.push({actionID:"vi"+t+"w",keyBinding:o("w",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"b",keyBinding:o("b",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"W",keyBinding:o("W",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"B",keyBinding:o("B",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"e",keyBinding:o("e",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"E",keyBinding:o("E",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"$",keyBinding:o("$",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"^_",keyBinding:o("^",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"^_",keyBinding:o("_",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"+",keyBinding:o("+",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"+",keyBinding:o(13)}),e.push({actionID:"vi"+t+"-",keyBinding:o("-",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"|",keyBinding:o("|",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"H",keyBinding:o("H",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"M",keyBinding:o("M",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"L",keyBinding:o("L",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"/",keyBinding:o("/",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"?",keyBinding:o("?",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"n",keyBinding:o("n",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"N",keyBinding:o("N",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"f",keyBinding:o("f",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"F",keyBinding:o("F",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"t",keyBinding:o("t",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"T",keyBinding:o("T",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+",",keyBinding:o(",",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+";",keyBinding:o(";",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi"+t+"G",keyBinding:o("G",!1,!1,!1,!1,"keypress")}),e},_createActions:function(e){function t(t){for(var n=e.getModel(),i=n.getLine(t),r=0,o=i.charCodeAt(r);32===o||9===o;)r++,o=i.charCodeAt(r);return r}function n(e,t){e&&r.getView().setCaretOffset(e.start),t.editDone&&t.editDone()}var i=this.key;i=i?"-"+i+"-":"-";var r=this;e.setAction("vi"+i+"0",function(){return r._storeNumber(0)}),e.setAction("vi"+i+"1",function(){return r._storeNumber(1)}),e.setAction("vi"+i+"2",function(){return r._storeNumber(2)}),e.setAction("vi"+i+"3",function(){return r._storeNumber(3)}),e.setAction("vi"+i+"4",function(){return r._storeNumber(4)}),e.setAction("vi"+i+"5",function(){return r._storeNumber(5)}),e.setAction("vi"+i+"6",function(){return r._storeNumber(6)}),e.setAction("vi"+i+"7",function(){return r._storeNumber(7)}),e.setAction("vi"+i+"8",function(){return r._storeNumber(8)}),e.setAction("vi"+i+"9",function(){return r._storeNumber(9)}),e.setAction("vi"+i+"Left",function(){return r._invoke("charPrevious",{unit:"character"})},this._msg("viLeft")),e.setAction("vi"+i+"Right",function(){return r._invoke("charNext",{unit:"character"})},this._msg("viRight")),e.setAction("vi"+i+"Up",function(){return r._invoke("lineUp",{editLine:!0})},this._msg("viUp")),e.setAction("vi"+i+"Down",function(){return r._invoke("lineDown",{editLine:!0})},this._msg("viDown")),e.setAction("vi"+i+"w",function(){return r._invoke("wordNext",{unit:"word"})},this._msg("viw")),e.setAction("vi"+i+"b",function(){return r._invoke("wordPrevious",{unit:"word"})},this._msg("vib")),e.setAction("vi"+i+"W",function(){return r._invoke("wordNext",{unit:"wordWS"})},this._msg("viW")),e.setAction("vi"+i+"B",function(){return r._invoke("wordPrevious",{unit:"wordWS"})},this._msg("viB")),e.setAction("vi"+i+"e",function(){return r._invoke("charNext",{unit:"character"}),r._invoke("wordNext",{unit:"wordend"}),r._invoke("charPrevious",{unit:"character"}),!0},this._msg("vie")),e.setAction("vi"+i+"E",function(){return r._invoke("wordNext",{unit:"wordendWS"})},this._msg("viE")),e.setAction("vi"+i+"$",function(){return r._invoke("lineEnd")},this._msg("vi$")),e.setAction("vi"+i+"^_",function(){return r._invoke(function(){var n=e.getModel(),i=e.getCaretOffset(),r=n.getLineAtOffset(i);e.setCaretOffset(n.getLineStart(r)+t(r))})},this._msg("vi^_")),e.setAction("vi"+i+"+",function(){return r._invoke(function(n){var i=e.getModel(),r=e.getCaretOffset(),o=i.getLineCount()-1,s=Math.min(i.getLineAtOffset(r)+n.count,o);e.setCaretOffset(i.getLineStart(s)+t(s))},{editLine:!0})},this._msg("vi+")),e.setAction("vi"+i+"-",function(){return r._invoke(function(n){var i=e.getModel(),r=e.getCaretOffset(),o=Math.max(i.getLineAtOffset(r)-n.count,0);e.setCaretOffset(i.getLineStart(o)+t(o))},{editLine:!0})},this._msg("vi-")),e.setAction("vi"+i+"|",function(){return r._invoke(function(t){var n=e.getModel(),i=e.getCaretOffset(),r=n.getLineAtOffset(i);e.setCaretOffset(Math.min(n.getLineStart(r)+t.count-1,n.getLineEnd(r)))})},this._msg("vi|")),e.setAction("vi"+i+"H",function(){return r._invoke(function(t){var n=e.getModel().getLineStart(e.getTopIndex(!0)+(t.count-1));e.setCaretOffset(n)},{editLine:!0})},this._msg("viH")),e.setAction("vi"+i+"M",function(){return r._invoke(function(){var t=Math.ceil((e.getBottomIndex(!0)-e.getTopIndex(!0))/2)+e.getTopIndex(!0);e.setCaretOffset(e.getModel().getLineStart(t))},{editLine:!0})},this._msg("viM")),e.setAction("vi"+i+"L",function(){return r._invoke(function(t){e.setCaretOffset(e.getModel().getLineStart(e.getBottomIndex(!0)-(t.count-1)))},{editLine:!0})},this._msg("viL")),e.setAction("vi"+i+"/",function(){var e={hideAfterFind:!0,incremental:!1,reverse:!1,findCallback:function(t){r._searchFwd=!0,n(t,e)}};return r._invoke("find",e)},this._msg("vi/")),e.setAction("vi"+i+"?",function(){var e={hideAfterFind:!0,incremental:!1,reverse:!0,findCallback:function(t){r._searchFwd=!1,n(t,e)}};return r._invoke("find",e)},this._msg("vi?")),e.setAction("vi"+i+"n",function(){var t,i=e.getCaretOffset();r._searchFwd?(t="findNext",i++):t="findPrevious";var o={start:i,findCallback:function(e){n(e,o)}};return r._invoke(t,o)},this._msg("vin")),e.setAction("vi"+i+"N",function(){var t,i=e.getCaretOffset();r._searchFwd?t="findPrevious":(t="findNext",i++);var o={start:i,findCallback:function(e){n(e,o)}};return r._invoke(t,o)},this._msg("viN")),e.setAction("vi"+i+"f",function(){var t=e.getModel(),n=e.getCaretOffset();return r._findChar(n,t.getLineEnd(t.getLineAtOffset(n)),!1,0)},this._msg("vif")),e.setAction("vi"+i+"F",function(){var t=e.getModel(),n=e.getCaretOffset();return r._findChar(t.getLineStart(t.getLineAtOffset(n)),n,!0,0)},this._msg("viF")),e.setAction("vi"+i+"t",function(){var t=e.getModel(),n=e.getCaretOffset();return r._findChar(n,t.getLineEnd(t.getLineAtOffset(n)),!1,-1)},this._msg("vit")),e.setAction("vi"+i+"T",function(){var t=e.getModel(),n=e.getCaretOffset();return r._findChar(t.getLineStart(t.getLineAtOffset(n)),n,!0,1)},this._msg("viT")),e.setAction("vi"+i+",",function(){return r._findNextChar(r._charTempOptions.reverse)},this._msg("vi,")),e.setAction("vi"+i+";",function(){return r._findNextChar(!r._charTempOptions.reverse)},this._msg("vi;")),e.setAction("vi"+i+"G",function(){if(""===r.number){var t=e.getModel();t.getBaseModel&&(t=t.getBaseModel()),r.number=t.getLineCount()}return r._invoke(function(t){t=t||{},t.line=t.count,t.editLine=!0,t.callback=function(){t.editDone&&t.editDone()},e.invokeAction("gotoLine",!1,t)})},this._msg("viG"))},_invoke:function(e,t){var n=this.getView();return t=t||{},t.count=this._getCount(),"function"==typeof e?e(t):n.invokeAction(e,!1,t),!0},_getCount:function(){var e=1;return""!==this.number&&(e=this.number>>0),this.number="",e},_findChar:function(e,t,n,i){this._charTempOptions={},this._charTempOptions.start=e,this._charTempOptions.end=t,this._charTempOptions.hideAfterFind=!0,this._charTempOptions.incremental=!1,this._charTempOptions.reverse=n,this._charTempOptions.offset=i;var r=this._charTempOptions,o=this;return this._charTempOptions.findCallback=function(e){e&&o.getView().setCaretOffset(e.start+i),r.editDone&&r.editDone()},this._invoke("find",this._charTempOptions)},_findNextChar:function(e){if(this._charTempOptions){var t=this.getView(),n={};n.hideAfterFind=this._charTempOptions.hideAfterFind,n.incremental=this._charTempOptions.incremental,n.reverse=this._charTempOptions.reverse,n.wrap=!1;var i=n,r=this;n.findCallback=function(e){e&&r.getView().setCaretOffset(e.start+r._charTempOptions.offset),i.editDone&&i.editDone()};var o=t.getModel();return e?(n.start=t.getCaretOffset()+1-this._charTempOptions.offset,n.end=o.getLineEnd(o.getLineAtOffset(n.start)),n.reverse=!1,this._invoke("findNext",n)):(n.start=t.getCaretOffset()-this._charTempOptions.offset,n.end=o.getLineStart(o.getLineAtOffset(n.start)),n.reverse=!0,this._invoke("findPrevious",n))}return!0},_storeNumber:function(e){var t=this;return 0!==e||this.number?(this.number+=e,!0):this._invoke(function(){t.getView().invokeAction("lineStart",!0)})}}),l.prototype=new t.KeyMode,r(l.prototype,{createKeyBindings:function(){var e=[];return e.push({actionID:"vi-:-ESC",keyBinding:o(27),predefined:!0}),e},_createActions:function(e){var t=this;e.setAction("vi-:-ESC",function(){return e.removeKeyMode(t),e.addKeyMode(t.viMode),!0})},match:function(e){var n=t.KeyMode.prototype.match.call(this,e);return n||(n=this.getView().getKeyModes()[0].match(e)),n},storeNumber:function(e){this.number=e}}),d.prototype=new a,r(d.prototype,{createKeyBindings:function(){var e=a.prototype.createKeyBindings.call(this);return e.push({actionID:"vi-"+this.key+"ESC",keyBinding:o(27),predefined:!0}),e.push({actionID:"vi-"+this.key+"-"+this.key,keyBinding:o(this.key,!1,!1,!1,!1,"keypress")}),e},_invoke:function(e,t){t=t||{};var n=this.getView(),i=n.getCaretOffset(),r=i,o=n.getModel(),s=this;return t.editDone=function(){var e=n.getCaretOffset();if(r>e){var a=r;r=e,e=a}t.editLine&&(r=o.getLineStart(o.getLineAtOffset(r)),e=o.getLineEnd(o.getLineAtOffset(e),"c"===s.key?!1:!0)),"y"===s.key?(u=n.getText(r,e),f=t.editLine,n.setCaretOffset(i)):n.setText("",r,e),n.removeKeyMode(s),n.addKeyMode(s.nextMode)},a.prototype._invoke.call(this,e,t),t.editDone(),!0},_getCount:function(){var e=1;""!==this.firstNumber&&(e=this.firstNumber>>0);var t=1;return""!==this.number&&(t=this.number>>0),e*=t,this.number=this.firstNumber="",e},_createActions:function(e){a.prototype._createActions.call(this,e);var t=this;e.setAction("vi-"+t.key+"ESC",function(){return e.removeKeyMode(t),e.addKeyMode(t.viMode),!0}),e.setAction("vi-"+t.key+"-"+t.key,function(){return t._invoke("lineEnd",{editLine:!0})},this._msg("viycd"))},storeNumber:function(e){this.firstNumber=e},_modeAdded:function(){this.secondNumber=""},_modeRemoved:function(){this.command="",this.firstNumber="",this.number=""}}),h.prototype=new t.KeyMode,r(h.prototype,{createKeyBindings:function(){var e=[];return e.push({actionID:"vi-insert-ESC",keyBinding:o(27),predefined:!0}),e},_createActions:function(e){var t=this;e.setAction("vi-insert-ESC",function(){return e.removeKeyMode(t),e.addKeyMode(t.viMode),!0})},match:function(e){var n=t.KeyMode.prototype.match.call(this,e);return n||(n=this.getView().getKeyModes()[0].match(e)),n},storeNumber:function(){}}),c.prototype=new a,r(c.prototype,{createKeyBindings:function(){var e=a.prototype.createKeyBindings.call(this);return e.push({actionID:"vi-ctrl-f",keyBinding:o("f",!0)}),e.push({actionID:"vi-ctrl-b",keyBinding:o("b",!0)}),e.push({actionID:"vi-ctrl-e",keyBinding:o("e",!0)}),e.push({actionID:"vi-ctrl-y",keyBinding:o("y",!0)}),e.push({actionID:"statusLineMode",keyBinding:o(":",!1,!1,!1,!1,"keypress")}),e.push({actionID:"vi-a",keyBinding:o("a",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-A",keyBinding:o("A",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-i",keyBinding:o("i",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-I",keyBinding:o("I",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-o",keyBinding:o("o",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-O",keyBinding:o("O",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-R",keyBinding:o("R",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-s",keyBinding:o("s",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-S",keyBinding:o("S",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-p",keyBinding:o("p",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-P",keyBinding:o("P",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-u",keyBinding:o("u",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-c",keyBinding:o("c",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-d",keyBinding:o("d",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-y",keyBinding:o("y",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-~",keyBinding:o("~",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-x",keyBinding:o("x",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-X",keyBinding:o("X",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-C",keyBinding:o("C",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-D",keyBinding:o("D",!1,!1,!1,!1,"keypress"),predefined:!0}),e.push({actionID:"vi-*",keyBinding:o("*",!1,!1,!1,!1,"keypress"),predefined:!0}),e},getKeyBindings:function(e){var n=t.KeyMode.prototype.getKeyBindings.call(this,e);n=n||[];var i,r=this.changeMode.getKeyBindings(e);if(!this.changeMode.isActive())for(i=0;i>0),t.count=n;var i=this.getView();return this.insertMode.storeNumber(this.number),i.invokeAction(e,!1,t),i.removeKeyMode(this),i.addKeyMode(this.insertMode),this.number="",!0},_modeAdded:function(){this.getView().setOptions({blockCursorVisible:!0})},_modeRemoved:function(){var e=this.getView();e.setOptions({blockCursorVisible:!1}),e.removeKeyMode(this.insertMode),e.removeKeyMode(this.changeMode),e.removeKeyMode(this.deleteMode)}}),{VIMode:c}}),define("orion/editorPreferences",[],function(){return{}}),define("orion/widgets/themes/ThemePreferences",[],function(){return{}}),define("orion/widgets/themes/editor/ThemeData",[],function(){return{}}),define("orion/widgets/settings/EditorSettings",[],function(){return null}),define("orion/searchAndReplace/textSearcher",[],function(){return{TextSearcher:null}}),define("orion/widgets/input/DropDownMenu",["orion/objects","orion/webui/littlelib"],function(e,t){function n(e,n,i){var r=t.node(e);if(!r)throw new Error("Parent node of dropdown menu not found");this._parent=r,i=i||{},this.options=i,this.navDropDownId=this._parent.id+"_navdropdown",this.selectionClass=i.selectionClass;var o=document.createElement("div");if(o.classList.add("dropdownMenu"),o.classList.add("dropdownMenuOpen"),o.id=this.navDropDownId,o.style.display="none",this._parent.appendChild(o),this._dropdownMenu=o,n=t.node(n),!n)throw"Trigger node of dropdown menu not found";this._triggerNode=n,"hidden"===this._triggerNode.style.visibility&&(this._triggerNode.style.visibility="visible"),i.noClick||(this._triggerNode.onclick=this.click.bind(this)),this._dropdownMenu.addEventListener("keydown",function(e){e.keyCode===t.KEY.ESCAPE&&this.clearPanel()}.bind(this))}return e.mixin(n.prototype,{click:function(){"none"===this._dropdownMenu.style.display?this.updateContent(this.getContentNode(),function(){t.setFramesEnabled(!1),this._dropdownMenu.style.display="",this._positionDropdown(),this.selectionClass&&this._triggerNode.classList.add(this.selectionClass),this.handle=t.addAutoDismiss([this._triggerNode,this._dropdownMenu],this.clearPanel.bind(this)),this.options.onShow&&this.options.onShow()}.bind(this)):this.clearPanel()},clearPanel:function(){this.isVisible()&&(this._dropdownMenu.style.display="none",t.setFramesEnabled(!0),this.selectionClass&&this._triggerNode.classList.remove(this.selectionClass),this.options.onHide&&this.options.onHide())},addContent:function(e){this._dropdownMenu.innerHTML=e},getContentNode:function(){return this._dropdownMenu},updateContent:function(e,t){t()},_positionDropdown:function(){this._dropdownMenu.style.right="";var e=t.bounds(this._dropdownMenu),n=t.bounds(document.body);if(e.left+e.width>n.left+n.width){var i=t.bounds(this._boundingNode(this._triggerNode)),r=t.bounds(this._triggerNode);this._dropdownMenu.style.right=i.width-(r.left-i.left+r.width)+"px"}},_boundingNode:function(e){var t=window.getComputedStyle(e,null);if(null===t)return e;var n=t.getPropertyValue("position");return"absolute"!==n&&e.parentNode&&e!==document.body?this._boundingNode(e.parentNode):e},isDestroyed:function(){return!this._dropdownMenu.parentNode},isVisible:function(){return"none"!==this._dropdownMenu.style.display&&!this.isDestroyed()},focus:function(){this._dropdownMenu.focus()},destroy:function(){this._parent&&(t.setFramesEnabled(!0),t.empty(this._parent),this._parent=this.select=null)}}),n}),define("orion/URITemplate",[],function(){function e(e){this._text=e}function t(e){return e.replace("%25","%")}function n(e,n){if("U"===n)return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()});if("U+R"===n)return encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(c,t);if("U+R-,"===n)return encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/,/g,"%2C");throw new Error("Unknown allowed character set: "+n)}function i(e,t,i){for(var r=[],o=0;on?-1:n>i?1:0}function p(e,t,n){var i=document.createElement("a");return i.href=e,i.target=t,i.classList.add("targetSelector"),i.textContent=n,i}var g;return o.mixin(c.prototype,{getCategoryIDs:function(){return Object.keys(this.categories)},getCategory:function(e){return this.categories[e]||null}}),o.mixin(u.prototype,{createLinkElements:function(){return this.allPageLinks.map(function(e){return p(e.href,"_self",e.textContent)})},getAllLinks:function(){return this.allPageLinks}}),{getCategoriesInfo:h,getPageLinksInfo:a,getOrionHome:s}}),define("orion/extensionCommands",["orion/Deferred","orion/commands","orion/contentTypes","orion/URITemplate","orion/i18nUtil","orion/PageLinks","i18n!orion/edit/nls/messages","orion/URL-shim"],function(e,t,n,i,r,o,s){function a(e){var t={},n=e.getPropertyKeys();return n.forEach(function(n){t[n]=e.getProperty(n)}),t}function l(e){return e.id||e.name}var d={},h=o.getOrionHome();d._cloneItemWithoutChildren=function p(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)"children"!==n&&"Children"!==n&&"parent"!==n&&"Project"!==n&&(t[n]=p(e[n]));return t},d._getOpenWithNavCommandExtensions=function(e){function t(){for(var t=e.getServiceReferences("orion.edit.editor"),n=[],i=0;i=0){if((d=t.indexOf("]"))<0)return!1;var c,u,f=t.substring(0,l);if(!(c=e[f])||!Array.isArray(c))return!1;if(r=t.substring(l+1,d),u=parseInt(r,10),isNaN(u))return!1;0>u&&(u+=c.length),o=t.substring(d+1),t=f+":"+String(u)+o}return t.indexOf("|")>=0?(r=t.substring(0,t.indexOf("|")),o=t.substring(t.indexOf("|")+1),a(e,r,n,i)?!0:a(e,o,n,i)):t.indexOf(":")>=0?(r=t.substring(0,t.indexOf(":")),o=t.substring(t.indexOf(":")+1),e[r]?a(e[r],o,n,i):!1):s(e,t,h,n,i)}function l(t,i,r){if(r.info.validationProperties)for(var o=0;o=0?!0:!1;var d=!0,h=i?n.getFilenameContentType(t.Name,i):null;return h=h||{id:"application/octet-stream"},r.info.excludedContentTypes&&i&&(d=r.info.excludedContentTypes.every(function(e){var t=e.replace(/([*?])/g,".$1");return-1!==h.id.search(t)?!1:!0})),d&&r.info.contentType&&i&&(d=r.info.contentType.some(function(e){var t=e.replace(/([*?])/g,".$1");return-1!==h.id.search(t)?!0:!1})),d}var d={info:e};return d.validationFunction=function(e){if("function"==typeof o&&(e=o.call(this,e)),e){if(Array.isArray(e)){if((this.info.forceSingleItem||this.info.uriTemplate)&&1!==e.length)return!1;if(e.length<1)return!1}else e=[e];for(var t=0;t-1,l=n.indexOf("?")>-1;a&&(n=n.split("*").join(".*")),l&&(n=n.split("?").join(".")),a||l||e.nameSearch?(s.searchStr=e.caseSensitive?n:n.toLowerCase(),r(s,e,t),s.wildCard=!0):(s.searchStr=e.caseSensitive?n.split("\\").join(""):n.split("\\").join("").toLowerCase(),s.wildCard=!1)}return s.searchStrLength=s.searchStr.length,{params:e,inFileQuery:s,displayedSearchTerm:i}},o.convertSearchParams=function(e){void 0!==e.rows&&(e.rows=parseInt(e.rows,10)),void 0!==e.start&&(e.start=parseInt(e.start,10)),"string"==typeof e.regEx&&(e.regEx="true"===e.regEx.toLowerCase()),"string"==typeof e.caseSensitive&&(e.caseSensitive="true"===e.caseSensitive.toLowerCase()),"string"==typeof e.nameSearch&&(e.nameSearch="true"===e.nameSearch.toLowerCase()),void 0!==e.fileNamePatterns&&(e.fileNamePatterns=o.getFileNamePatternsArray(e.fileNamePatterns))},o.getFileNamePatternsArray=function(e){var t=void 0;if(e){var n=e.trim();n=n.replace(/^(\s*,\s*)+/g,""),n=n.replace(/([^\\]),(\s*,\s*)*/g,"$1/"),n=n.replace(/(\s*\/\s*)/g,"/"),n=n.replace(/\/\/+/g,"/"),n=n.replace(/\/+$/g,""),t=n.split("/")}return t},o.copySearchParams=function(e,t){var n={};for(var i in e)if(void 0!==e[i]&&null!==e[i]){if(!t&&"replace"===i)continue;n[i]=e[i]}return n},o.generateFindURLBinding=function(e,t,n,r,o){var s={find:t.searchStr,regEx:t.wildCard?!0:void 0,caseSensitive:e.caseSensitive?!0:void 0,replaceWith:"string"==typeof r?r:void 0,atLine:"number"==typeof n?n:void 0};if(o)return s;var a=new i("{,params*}").expand({params:s});return","+a},o.convertFindURLBinding=function(e){"string"==typeof e.regEx&&(e.regEx="true"===e.regEx.toLowerCase()),"string"==typeof e.caseSensitive&&(e.caseSensitive="true"===e.caseSensitive.toLowerCase()),"string"==typeof e.atLine&&(e.atLine=parseInt(e.atLine,10))},o.replaceRegEx=function(e,t,n){var i=new RegExp(t.pattern,t.flags);return e.replace(i,n)},o.replaceStringLiteral=function(e,n,i){var r=t.parse("/"+n+"/gim");return o.replaceRegEx(e,r,i)},o.searchOnelineLiteral=function(e,t,n,i,r){for(var o,s=0,a=!1,l=[];;){if(o=t.indexOf(e.searchStr,s),0>o)break;if(i){var d=i.getLineStart(r)+o;l.push({startIndex:o,length:e.searchStrLength,start:d,end:d+e.searchStrLength})}else l.push({startIndex:o,length:e.searchStrLength});if(a=!0,n)break;s=o+e.searchStrLength}return a?l:null},o.findRegExp=function(e,t,n,i){if(!t)return null;n=n||"",n+=(-1===n.indexOf("g")?"g":"")+(-1===n.indexOf("m")?"m":"");var r=new RegExp(t,n),o=null;return o=r.exec(e.substring(i)),o&&{startIndex:o.index+i,length:o[0].length}},o.searchOnelineRegEx=function(e,t,n,i,r){for(var s=0,a=!1,l=[];;){var d=o.findRegExp(t,e.regExp.pattern,e.regExp.flags,s);if(!d)break;if(i){var h=i.getLineStart(r)+d.startIndex;d.start=h,d.end=h+d.length}if(l.push(d),a=!0,n)break;s=d.startIndex+d.length}return a?l:null},o.generateNewContents=function(e,t,n,i,r,s){if(i&&t){e||(n.contents=[]);for(var a=0;a0,l=i.children[g].matches,c=!0;break}}if(c){var m;if(u){var _=o.replaceCheckedMatches(h,r,l,f,s);for(m=_.replacedStr,d=0;di?(i=0,r=i+s-1):(r=n+e,r>t.length-1&&(r=t.length-1,i=r-s+1)));for(var a=i;r>=a;a++)o.push({context:t[a],current:a===n});return o},o.splitFile=function(e){for(var t=0,n=0,i=0,r=0,o=[];;){if(-1!==t&&i>=t&&(t=e.indexOf("\r",i)),-1!==n&&i>=n&&(n=e.indexOf("\n",i)),-1===n&&-1===t){o.push(e.substring(r));break}var s=1;-1!==t&&-1!==n?t+1===n?(s=2,i=n+1):i=(n>t?t:n)+1:i=-1!==t?t+1:n+1,o.push(e.substring(r,i-s)),r=i}return o},o.searchWithinFile=function(e,t,i,r,s,a){var l;a&&(l=new n.TextModel(i));var d=o.splitFile(i);if((r||a)&&(t.contents=d),t){t.children=[];for(var h=0,c=0;c0){var f,p=s?u:u.toLowerCase();if(f=e.wildCard?o.searchOnelineRegEx(e,p,!1,l,c):o.searchOnelineLiteral(e,p,!1,l,c)){var g,v=c+1;if(r)for(var m=0;m0)for(var i=t-1;i>-1;i--){var r=""===n?"":"/";n=n+r+e[i].Name}return n},o}),define("orion/editorCommands",["i18n!orion/edit/nls/messages","orion/i18nUtil","orion/webui/littlelib","orion/widgets/input/DropDownMenu","orion/Deferred","orion/URITemplate","orion/commands","orion/keyBinding","orion/commandRegistry","orion/extensionCommands","orion/contentTypes","orion/searchUtils","orion/objects","orion/PageUtil","orion/PageLinks","orion/editor/annotations","orion/regex","orion/uiUtils","orion/util"],function(e,t,n,i,r,o,s,a,l,d,h,c,u,f,p,g,v,m,_){function y(e){var t=new o(e.uriTemplate),n=e.params||{};n.OrionHome=n.OrionHome||p.getOrionHome();var i=t.expand(n),r=document.createElement("div"),s=document.createElement("iframe");return s.id=e.id,s.name=e.id,s.type="text/html",s.sandbox="allow-scripts allow-same-origin allow-forms allow-popups",s.frameborder=void 0!==e.border?e.border:1,s.src=i,s.className="delegatedUI",e.width&&(r.style.width=e.width,s.style.width=e.width),e.height&&(r.style.height=e.height,s.style.height=e.height),s.style.visibility="hidden",null!==e.parent&&(e.parent||window.document.body).appendChild(r),r.appendChild(s),s.style.left=e.left||(window.innerWidth-parseInt(s.clientWidth,10))/2+"px",s.style.top=e.top||(window.innerHeight-parseInt(s.clientHeight,10))/2+"px",s.style.visibility="",window.addEventListener("message",function a(t){if(t.source===s.contentWindow&&"string"==typeof t.data){var n=JSON.parse(t.data);"orion.page.delegatedUI"===n.pageService&&n.source===e.id&&(n.cancelled?e.cancelled&&e.cancelled():n.result?e.done&&e.done(n.result):(n.Status||n.status)&&e.status&&e.status(n.Status||n.status),window.removeEventListener("message",a,!1),r.parentNode&&r.parentNode.removeChild(r))}},!1),r}function C(e,t){t&&"undefined"!=typeof t.HTML&&delete t.HTML;var n=e.getService("orion.page.message");return n?n.setProgressResult(t).then(null,function(e){throw console.log(e),e}):(console.log(t),(new r).resolve(t))}function w(e){return{_error:e}}function x(e){this.serviceRegistry=e.serviceRegistry,this.commandService=e.commandRegistry,this.fileClient=e.fileClient,this.inputManager=e.inputManager,this.renderToolbars=e.renderToolbars,this.toolbarId=e.toolbarId,this.saveToolbarId=e.saveToolbarId,this.editToolbarId=e.editToolbarId,this.pageNavId=e.navToolbarId,this.editorContextMenuId=e.editorContextMenuId,this.isReadOnly=e.readonly,this.textSearcher=e.textSearcher,this.searcher=e.searcher,this.localSettings=e.localSettings,this.editorPreferences=e.editorPreferences,this.differ=e.differ,this.blamer=e.blamer;var t=this;this.listener={onServiceAdded:function(e){t._onServiceAdded(e.serviceReference)},onServiceRemoved:function(e){t._onServiceRemoved(e.serviceReference)}},this.serviceRegistry.addEventListener("registered",this.listener.onServiceAdded),this.serviceRegistry.addEventListener("unregistering",this.listener.onServiceRemoved)}var S={},b=null;return S.createDelegatedUI=y,x.prototype={createCommands:function(){return this._createSettingsCommand(),this._createGotoLineCommnand(),this._createFindCommnand(),this._createBlameCommand(),this._createDiffCommand(),this._createShowTooltipCommand(),this._createUndoStackCommands(),this._createClipboardCommands(),this._createSaveCommand(),this._createEditCommands()},setSideBar:function(e){this.sideBar=e},getEditCommands:function(){var e=[],t=this.commandService;for(var n in t._commandList){var i=t._commandList[n];i.editInfo&&e.push(i)}return e},updateCommands:function(e){e=e||{},this.editor=e.editor,this.inputManager=e.inputManager,this.localSettings=e.localSettings,this.differ=e.differ,this.blamer=e.blamer,this.textSearcher=e.textSearcher,this._recreateEditCommands&&this._createEditCommands().then(function(){this.registerCommands(),this.registerContextMenuCommands(),this.renderToolbars&&this.renderToolbars()}.bind(this))},_registerCommandGroups:function(e,t){var n,i=this.commandService,r=this.serviceRegistry,o=r.getServiceReferences("orion.edit.command.category");o.forEach(function(r){for(var o={},s=r.getPropertyKeys(),a=0;a0)for(var u=0;ur.start){var s=n.getModel();o=s.getText(r.start,r.end),i&&i.getOptions().regex&&(o=v.escape(o))}return[new l.CommandParameter("find","text","Find:",o)]}),r=new s.Command({name:e.Find,tooltip:e.Find,id:"orion.edit.find",visibleWhen:function(e,n){var i=n.handler.editor||t.editor,r=n.handler.textSearcher||t.textSearcher;return i&&i.installed&&r},parameters:i,callback:function(e){var i=n.node("replaceCompareDiv");if(i&&i.classList.contains("replaceCompareDivVisible"))return!1;var o=this.editor||t.editor,s=this.textSearcher||t.textSearcher;r.textSearcher&&r.textSearcher!==s&&r.textSearcher.hide(),r.textSearcher=s;var a="",l=null,d=o.getSelection();if(d.end>d.start&&e.parameters.valueFor("useEditorSelection")){var h=o.getModel();a=h.getText(d.start,d.end),s.getOptions().regex&&(a=v.escape(a))}else e.parameters&&e.parameters.valueFor("find")&&(a=e.parameters.valueFor("find"),l=f.matchResourceParameters(),c.convertFindURLBinding(l));if(l){s.setOptions({regex:l.regEx,caseInsensitive:!l.caseSensitive});var u={};l.atLine&&(u.start=o.getModel().getLineStart(l.atLine-1)),s.show({findString:a,replaceString:l.replaceWith}),s.find(!0,u),t.commandService.closeParameterCollector()}else s.show({findString:a})}});this.commandService.addCommand(r)},_createBlameCommand:function(){var t=this,n=new s.Command({name:e.Blame,tooltip:e.BlameTooltip,id:"orion.edit.blame",parameters:new l.ParametersDescription([new l.CommandParameter("blame","boolean")],{clientCollect:!0}),visibleWhen:function(e,n){var i=n.handler.editor||t.editor,r=n.handler.blamer||t.blamer;return i&&i.installed&&r&&r.isVisible()},callback:function(e){for(var n=!1,i=this.editor||t.editor,r=this.blamer||t.blamer,o=i.getAnnotationModel().getAnnotations();o.hasNext();){var s=o.next();if(s.type===g.AnnotationType.ANNOTATION_BLAME){n=!0;break}}n=!n,e.parameters&&e.parameters.valueFor("blame")&&(n="true"===e.parameters.valueFor("blame")),n?r.doBlame():i.showBlame([]),i.focus()}});this.commandService.addCommand(n)},_createDiffCommand:function(){var t=this,n=new s.Command({name:e.Diff,tooltip:e.DiffTooltip,id:"orion.edit.diff",visibleWhen:function(e,n){var i=n.handler.editor||t.editor,r=n.handler.differ||t.differ;return i&&i.installed&&r&&r.isVisible()},callback:function(){var e=this.editor||t.editor,n=this.differ||t.differ;n.toggleEnabled();var i=this.editorPreferences;i.getPrefs(function(e){e.diffService=n.isEnabled(),i.setPrefs(e)}),e.focus()}});this.commandService.addCommand(n)},_createShowTooltipCommand:function(){var t=this,n=new s.Command({name:e.showTooltip,tooltip:e.showTooltipTooltip,id:"orion.edit.showTooltip",visibleWhen:function(e,n){var i=n.handler.editor||t.editor;return i&&i.installed},callback:function(){var e=this.editor||t.editor,n=e.getTooltip(),i=e.getTextView(),r=i.getCaretOffset(),o=i.getLocationAtOffset(r);n.show({x:o.x,y:o.y,getTooltipInfo:function(){return e._getTooltipInfo(this.x,this.y)}},!1,!0)}});this.commandService.addCommand(n)},_onServiceRemoved:function(e){-1!==e.getProperty("objectClass").indexOf("orion.edit.command")&&(this._recreateEditCommands=!0)},_onServiceAdded:function(e){-1!==e.getProperty("objectClass").indexOf("orion.edit.command")&&(this._recreateEditCommands=!0)},_createEditCommands:function(){function n(e){if(b)return b;var t=e.getService("orion.core.contentTypeRegistry");return t||(t=new h.ContentTypeRegistry(e),t=e.getService("orion.core.contentTypeRegistry")),t.getContentTypes().then(function(e){return b=e})}var i=this;this._recreateEditCommands=!1;var o=this.serviceRegistry,a=this.commandService,l=o.getServiceReferences("orion.edit.command"),c=o.getService("orion.page.progress"),f=C.bind(null,o),p=function(n,r,a){var l=a.visibleWhen;return a.visibleWhen=function(e,t){var r=t.handler.editor||i.editor,o=t.handler.inputManager||i.inputManager;return r&&r.installed&&o?n.editor&&r.id&&n.editor!==r.id?!1:i.inputManager.getReadOnly()?!1:!l||l(e):!1},a.callback=function(s){var l,d,h=this.editor||i.editor,p=this.inputManager||i.inputManager,g=h.getSelection?h.getSelection():{start:0,end:0},v=h.getModel(),m=function(e){"object"==typeof e&&e?(e.text&&h.setText(e.text),e.selection&&(h.setSelection&&h.setSelection(e.selection.start,e.selection.end,!0),h.focus())):"string"==typeof e&&(h.setText(e,g.start,g.end,!0),h.setSelection&&h.setSelection(g.start,g.start+e.length),h.focus()) +};if(r.execute){var _={contentType:p.getContentType(),input:p.getInput(),offset:h.getCaretOffset()};"orion.edit.quickfix"===n.scopeId&&(_.annotation={start:s.userData.start,end:s.userData.end,title:s.userData.title,id:s.userData.id,data:s.userData.data});var C=h.getEditorContext();C.openDelegatedUI=function(){var e=arguments[0];e=e||{},e.done=m,e.status=f,e.params=e.params||{},u.mixin(e.params,p.getFileMetadata()),y.apply(null,Array.prototype.slice.call(arguments))},C.setStatus=f,h.focus(),l=r.execute(C,_),d=function(e){e&&e.searchParams&&e.refResult&&i.sideBar&&i.sideBar.fillSearchPane(e.searchParams.keyword,{Location:e.searchParams.resource},e);var t=o.getService("orion.page.message");t&&t.setProgressMessage("")}}else l=r.run(v.getText(g.start,g.end),v.getText(),g,p.getInput()),d=function(e){if(e&&e.uriTemplate){var t={};t.uriTemplate=e.uriTemplate,t.params=p.getFileMetadata(),t.id=n.id,t.width=e.width,t.height=e.height,t.done=m,t.status=f,y(t)}else e&&(e.Status||e.status)?f(e.Status||e.status):m(e)};return c.showWhile(l,t.formatMessage(e.running,a.name)).then(d),!0},new s.Command(a)};return r.when(n(this.serviceRegistry),function(){var e=[];return l.forEach(function(t){for(var n=i.serviceRegistry.getService(t),r={},o=t.getPropertyKeys(),s=0;s=5e4)var h=(new Date).getTime();if(this._rootBlock=this._stylerAdapter.createBlock(d,this,s,null),h){var c=(new Date).getTime()-h;c>10&&n.logTiming("editor","styler compute blocks (ms/50000 chars)",5e4*c/l,r.getContentType())}if(i){var u=[];i.removeAnnotations(e.AnnotationType.ANNOTATION_FOLDING),this._computeFolding(this._rootBlock.getBlocks(),t.getModel(),u),this._detectTasks&&(i.removeAnnotations(e.AnnotationType.ANNOTATION_TASK),this._computeTasks(this._rootBlock,s,u)),i.replaceAnnotations([],u)}t.redrawLines()}var d=function(e,t,n,i,r){var o;for(void 0===i&&(i=-1),void 0===r&&(r=e.length);r-i>1;)if(o=Math.floor((r+i)/2),t<=e[o].start)r=o;else{if(n&&tt.result.index?1:e.pattern.pattern.index0;){var c=d[0];if(d.splice(0,1),ot.result.index?1:e.pattern.pattern.index0;){var h=l[0];if(l.splice(0,1),h.result.indext.start?1:0});for(var g=0;g=o);u++){var f=h[u].start,p=h[u].end;if(f>l){var g=e.getLineAtOffset(l),v=e.getLineStart(g);this._stylerAdapter.parse(i.substring(v-r,f-r),v,l-v,n,a),a.forEach(function(e){e.style&&(0===e.style.indexOf(t.beginName)?s.push(e.start+1):0===e.style.indexOf(t.endName)&&s.push(-(e.start+1)))}),a=[]}l=p}return o>l&&(g=e.getLineAtOffset(l),v=e.getLineStart(g),this._stylerAdapter.parse(i.substring(v-r,o-r),v,l-v,n,a),a.forEach(function(e){e.style&&(0===e.style.indexOf(t.beginName)?s.push(e.start+1):0===e.style.indexOf(t.endName)&&s.push(-(e.start+1)))})),s},_findMatchingBracket:function(e,t,n){var i=e.getLineAtOffset(n),r=e.getLineEnd(i),o=e.getText(n,r),s=this._stylerAdapter.getBracketMatch(t,o);if(!s)return-1;for(var a=e.getLine(i),l=e.getLineStart(i),d=this._findBrackets(e,s,t,a,l,r),h=0;h=0?1:-1;if(d[h]*c-1===n){var u=1;if(s.atStart){for(h++;h=0?1:-1,u+=c,0===u)return d[h]*c-1;i+=1;for(var f=e.getLineCount();f>i;){a=e.getLine(i),l=e.getLineStart(i),r=e.getLineEnd(i),d=this._findBrackets(e,s,t,a,l,r);for(var p=0;p=0?1:-1,u+=c,0===u)return d[p]*c-1;i++}}else{for(h--;h>=0;h--)if(c=d[h]>=0?1:-1,u+=c,0===u)return d[h]*c-1;for(i-=1;i>=0;){a=e.getLine(i),l=e.getLineStart(i),r=e.getLineEnd(i),d=this._findBrackets(e,s,t,a,l,r);for(var g=d.length-1;g>=0;g--)if(c=d[g]>=0?1:-1,u+=c,0===u)return d[g]*c-1;i--}}break}}return-1},_getLineStyle:function(e){if(this._highlightCaretLine){var t=this._view,n=t.getModel(),i=t.getSelections(),r=!1;if(!i.some(function(t){return t.start===t.end?(r=r||n.getLineAtOffset(t.start)===e,!1):!0})&&r)return this._caretLineStyle}return null},_getStyles:function(e,t,n,i,r){for(var o=i+n.length,s=[],a=i+r,l=e.getBlocks(),h=d(l,a,!0),c=h;c=o);c++){var u=l[c].start,f=l[c].end;if(u>a){var p=t.getLineAtOffset(a),g=t.getLineStart(p);this._stylerAdapter.parse(n.substring(g-i,u-i),g,a-g,e,s)}var v=Math.max(a,u);if(v===u){var m=this._stylerAdapter.getBlockStartStyle(l[c],n.substring(v-i),v,s);m&&(v+=m.length)}var _=Math.min(o,f),y=[];if(_===f){var C=n.substring(_-a-(l[c].end-l[c].contentEnd)),w=this._stylerAdapter.getBlockEndStyle(l[c],C,_,y);w&&(_-=w.length)}p=t.getLineAtOffset(v),g=t.getLineStart(p);var x=this._getStyles(l[c],t,n.substring(g-i,_-i),g,v-g),S=this._stylerAdapter.getBlockContentStyleName(l[c]);if(S){var b=v;x.forEach(function(e){e.start-b&&s.push({start:b,end:e.start,style:S}),e.mergeable&&(e.style+=","+S),s.push(e),b=e.end}),_-b&&s.push({start:b,end:_,style:S})}else s=s.concat(x);s=s.concat(y),a=f}return o>a&&(p=t.getLineAtOffset(a),g=t.getLineStart(p),this._stylerAdapter.parse(n.substring(g-i,o-i),g,a-g,e,s)),s},_isRenderingWhitespace:function(){return this._whitespacesVisible},_onDestroy:function(){this.destroy()},_onLineStyle:function(e){e.textView===this._view&&(e.style=this._getLineStyle(e.lineIndex));var t=e.lineStart,n=e.textView.getModel();if(n.getBaseModel){t=n.mapOffset(t);var i=n.getBaseModel()}e.ranges=this._getStyles(this._rootBlock,i||n,e.lineText,t,0);for(var r=e.ranges.length-1;r>=0;r--){var o=e.ranges[r];if(o.style){if(o.style={styleClass:o.style.replace(/\./g," ")},i){var s=o.end-o.start;o.start=n.mapOffset(o.start,!0),o.end=o.start+s}}else e.ranges.splice(r,1)}this._isRenderingWhitespace()&&(this._spliceStyles(this._spacePattern,e.ranges,e.lineText,e.lineStart),this._spliceStyles(this._tabPattern,e.ranges,e.lineText,e.lineStart))},_onModelChanged:function(t){for(var n,i,r,o,s,a,l,h=t.start,c=t.removedCharCount,u=t.addedCharCount,f=u-c,p=this._view.getModel(),g=p.getBaseModel?p.getBaseModel():p,v=h+c,m=g.getCharCount(),_=g.getLineStart(g.getLineAtOffset(h)),y=this._findBlock(this._rootBlock,h);;){if(r=y.parent,!n&&r){if(0>f&&y.end-h<=-f){y=r;continue}if(s=g.getText(y.start,Math.min(m,y.end+f+1)),!this._stylerAdapter.verifyBlock(g,s,y,f)){y=r;continue}}i=y.getBlocks();var C=i.length,w=d(i,_,!0),x=d(i,v,!1,w-1,C);if(n=!1,w&&i.length&&i[w-1].end===h){s=g.getText(i[w-1].start,Math.min(m,h+1));var S=this.computeBlocks(g,s,y,i[w-1].start,null,null,null);S.length&&S[0].end!==i[w-1].end&&(w--,n=!0)}C>w&&i[w].start<=_&&(_h&&(l+=f)):w===C&&C>0&&y.end-f===i[C-1].end?(l=i[--w].start,l>h&&(l+=f)):l=Math.max(_,y.contentStart),a=C>x?i[x].end:y.contentEnd,a>=h&&(a+=f),a=Math.min(a,m-1),s=g.getText(l,a+1);var b=this.computeBlocks(g,s,y,l,null,null,null);if(C>x){if(b.length&&b[b.length-1].end===a&&b[b.length-1].typeId===i[x].typeId)break;if(b.length&&this._stylerAdapter.blockSpansBeyondEnd(b[b.length-1])){x++;for(var T=b[b.length-1].getBlocks(),E=(T.length?T[T.length-1]:b[b.length-1]).typeId;C>x;){if(i[x].typeId===E){var L=i[x].end+f;L=Math.min(L,m-1),s=g.getText(l,L+1);var k=this.computeBlocks(g,s,y,l,null,null,null);if(k.length&&k[k.length-1].end===L){a=L,b=k;break}}x++}if(C>x)break}}else if(!b.length||b[b.length-1].end<=y.contentEnd+f)break;if(!r){a=m,x=C,s=g.getText(l,a),b=this.computeBlocks(g,s,y,l,null,null,null);break}y=r,o=!0}this._rootBlock.adjustBounds(h,f),x=Math.min(x+1,C);var A;if(o||(o=x-w!==b.length),!o)for(var M=0;Mh&&(G-=f),$>h&&($-=f),h>=G&&$>h&&v>=G&&$>v){var z=g.getLineAtOffset(H.start),Y=g.getLineAtOffset(H.end);z!==Y?H.expanded||H.expand():P.push(H)}}else P.push(H),H.expand()}else H.type===e.AnnotationType.ANNOTATION_TASK&&y.start<=H.start&&H.end<=y.end&&P.push(H)}K&&W.getBlocks().forEach(function(e){this._updateFolding(e,g,p,V,F,l,a)}.bind(this)),this._detectTasks&&this._computeTasks(y,g,F,l,a),this._annotationProviders.forEach(function(e){var t=[],n=[];e(this._annotationModel,g,y,l,a,t,n),P=P.concat(t),F=F.concat(n)}.bind(this)),this._annotationModel.replaceAnnotations(P,F)}},_onMouseDown:function(e){if(2===e.clickCount){var t=this._view.getModel(),n=this._view.getOffsetAtLocation(e.x,e.y);if(n>0){var i=n-1,r=t;t.getBaseModel&&(i=t.mapOffset(i),r=t.getBaseModel());var o=this._findBlock(this._rootBlock,i),s=this._findMatchingBracket(r,o,i);if(-1!==s){e.preventDefault();var a=s;t.getBaseModel&&(a=t.mapOffset(a,!0)),n>a&&(n--,a++),this._view.setSelection(a,n)}}}},_onSelection:function(t){function n(e){var t={};return e.some(function(e){return e.isEmpty()?(t[l.getLineAtOffset(e.start).toString()]=!0,!1):!0})?{}:t}function i(e,t){for(var n in e)t[n]||(r=n>>0,a.redrawLines(r,r+1))}var r,o=Array.isArray(t.oldValue)?t.oldValue:[t.oldValue],s=Array.isArray(t.newValue)?t.newValue:[t.newValue],a=this._view,l=a.getModel();if(this._highlightCaretLine){var d=n(o),h=n(s);i(d,h),i(h,d)}if(this._annotationModel){var c,u,f=this._bracketAnnotations;if(1===s.length&&s[0].isEmpty()&&(u=s[0].getCaret())>0){var p=u-1;l.getBaseModel&&(p=l.mapOffset(p),l=l.getBaseModel());var g=this._findBlock(this._rootBlock,p),v=this._findMatchingBracket(l,g,p);-1!==v&&(c=[e.AnnotationType.createAnnotation(e.AnnotationType.ANNOTATION_MATCHING_BRACKET,v,v+1),e.AnnotationType.createAnnotation(e.AnnotationType.ANNOTATION_CURRENT_BRACKET,p,p+1)])}this._bracketAnnotations=c,this._annotationModel.replaceAnnotations(f,c)}},_spliceStyles:function(e,t,n,r){var o=e.regex;o.lastIndex=0;for(var s=0,a=o.exec(n);a;){for(var l=r+a.index;s/,func:function(){return"atomic group"}}],toRegExp:function(e){function t(e,t){throw new Error('Unsupported regex feature "'+e+'": "'+t[0]+'" at index: '+t.index+" in "+t.input)}function n(e){for(var t="",n=!1,i=e.length,r=0;i>r;){var o=e.charAt(r);if(n||"#"!==o)if(!n&&/\s/.test(o))for(;i>r&&/\s/.test(o);)o=e.charAt(++r);else"\\"===o?(t+=o,/\s/.test(e.charAt(r+1))||(t+=e.charAt(r+1),r+=1),r+=1):"["===o?(n=!0,t+=o,r+=1):"]"===o?(n=!1,t+=o,r+=1):(t+=o,r+=1);else for(;i>r&&"\r"!==o&&"\n"!==o;)o=e.charAt(++r)}return t}var r,o="";for(e=i.processGlobalFlag("x",e,function(e){return n(e)}),e=i.processGlobalFlag("i",e,function(e){return o+="i",e}),r=0;ro&&-1===r;o++)switch(e.charAt(o)){case"\\":o++;break;case"(":n++;break;case")":n--,0===n&&(r=o)}return r}var r="(?"+e+")",o="(?"+e+":";if(t.substring(0,r.length)===r)return n(t.substring(r.length));if(t.substring(0,o.length)===o){var s=i(t,0);if(sv;v++){var m=l[l.length-1],_=s.charAt(v);switch(_){case"(":m===o&&(l.pop(),f.push(")"),h[h.length-1].end=v);var y=a>v+2?s.charAt(v+1)+""+s.charAt(v+2):null;if("?:"===y||"?="===y||"?!"===y){var C;"?:"===y?C=n:(C=r,d++),l.push(C),h.push({start:v,end:-1,type:C}),f.push(_),f.push(y),v+=y.length}else l.push(i),h.push({start:v,end:-1,type:i,oldNum:c,num:u}),f.push(_),0===d&&(g[u]=null),p[c]=u,c++,u++;break;case")":var w=l.pop();w===r&&d--,h[h.length-1].end=v,f.push(_);break;case"*":case"+":case"?":case"}":var x=_,S=s.charAt(v-1),b=v-1;if("}"===_){for(var T=v-1;"{"!==s.charAt(T)&&T>=0;T--);S=s.charAt(T-1),b=T-1,x=s.substring(T,v+1)}var E=h[h.length-1];if(")"===S&&(E.type===i||E.type===o)){f.splice(E.start,0,"("),f.push(x),f.push(")");for(var L={start:E.start,end:f.length-1,type:o,num:E.num},k=0;k=E.start&&w.end<=b&&(w.start+=1,w.end+=1,w.num=w.num+1,w.type===i&&(p[w.oldNum]=w.num));h.push(L),u++;break}default:if("|"!==_&&m!==i&&m!==o&&0===d&&(l.push(o),h.push({start:v,end:-1,type:o,num:u}),f.push("("),g[u]=null,u++),f.push(_),"\\"===_){var A=s.charAt(v+1);f.push(A),v+=1}}}for(;l.length;)l.pop(),f.push(")");var M=new RegExp(f.join("")),D={};t=t||p;for(var O in t)t.hasOwnProperty(O)&&(D[O]="\\"+t[O]);return M=this.getSubstitutedRegex(M,D,!1),[M,p,g]},complexCaptures:function(e){if(!e)return!1;for(var t in e)if(e.hasOwnProperty(t)&&"0"!==t)return!0;return!1}};return n.prototype={initialize:function(e){this.textView=e,this.textView.stylerOptions=this;var t=this;this._listener={onModelChanged:function(e){t.onModelChanged(e)},onDestroy:function(e){t.onDestroy(e)},onLineStyle:function(e){t.onLineStyle(e)},onStorage:function(e){t.onStorage(e)}},e.addEventListener("ModelChanged",this._listener.onModelChanged),e.addEventListener("Destroy",this._listener.onDestroy),e.addEventListener("LineStyle",this._listener.onLineStyle),e.redrawLines()},onDestroy:function(){this.destroy()},destroy:function(){this.textView&&(this.textView.removeEventListener("ModelChanged",this._listener.onModelChanged),this.textView.removeEventListener("Destroy",this._listener.onDestroy),this.textView.removeEventListener("LineStyle",this._listener.onLineStyle),this.textView=null),this.grammar=null,this._styles=null,this._tree=null,this._listener=null},preprocess:function(e){for(var t=[e];0!==t.length;){var n=t.pop();if((!n._resolvedRule||!n._typedRule)&&(n._resolvedRule=this._resolve(n),n._typedRule=this._createTypedRule(n),this.addStyles(n.name),this.addStyles(n.contentName),this.addStylesForCaptures(n.captures),this.addStylesForCaptures(n.beginCaptures),this.addStylesForCaptures(n.endCaptures),n._resolvedRule!==n&&t.push(n._resolvedRule),n.patterns))for(var i=0;i0;)e.push(t[--n])},exec:function(e,t,n){var i=e.exec(t);return i&&(i.index+=n),e.lastIndex=0,i},afterMatch:function(e){return e.index+e[0].length},getEndMatch:function(e,t,n){if(e instanceof this.BeginEndNode){var i=e.rule,r=e.endRegexSubstituted||i.endRegex;return r?this.exec(r,t,n):null}return null},initialParse:function(){var e=(this.textView.getModel().getCharCount(),new this.ContainerNode(null,this.grammar._typedRule));this._tree=e,this.parse(this._tree,!1,0)},onModelChanged:function(e){var t=e.addedCharCount,n=(e.addedLineCount,e.removedCharCount),i=(e.removedLineCount,e.start);if(this._tree){var r=this.textView.getModel(),o=r.getCharCount(),s=r.getLineEnd(r.getLineAtOffset(i)-1),a=this.getFirstDamaged(s,s);s=-1===s?0:s;var l;l=a?this.parse(a,!0,s,i,t,n):o,this.textView.redrawRange(s,l)}else this.initialParse()},getFirstDamaged:function(e,t){if(0>e)return this._tree;for(var n=[this._tree],i=null;n.length;){var r=n.pop();if(!r.parent||this.isDamaged(r,e,t)){r instanceof this.BeginEndNode&&(i=r);for(var o=0;ot},parse:function(e,t,n,i,r,o){var s=this.textView.getModel(),a=s.getLineStart(s.getLineCount()-1),l=s.getCharCount(),d=this.getInitialExpected(e,n),h=-1;if(t){e.repaired=!0,e.endNeedsUpdate=!0;var c=e.children[e.children.length-1],u=r-o,f=c?s.getLineEnd(s.getLineAtOffset(c.end+u)):-1,p=s.getLineEnd(s.getLineAtOffset(i+o));h=Math.max(f,p)}h=-1===h?l:h;for(var g=d,v=e,m=!1,_=n,y=-1;v&&(!t||h>_);){var C=this.getNextMatch(s,v,_);C||(_=_>=a?l:s.getLineStart(s.getLineAtOffset(_)+1));var w=C&&C.match,x=C&&C.rule,S=C&&C.isSub,b=C&&C.isEnd;if(S){if(_=this.afterMatch(w),x instanceof this.BeginEndRule)if(m=!0,t&&x===g.rule&&v===g.parent){var T=g;T.setStart(w),T.repaired=!0,T.endNeedsUpdate=!0,v=T,g=this.getNextExpected(g,"begin")}else{t&&(this.prune(v,g),t=!1);var E=new this.BeginEndNode(v,x,w);v.addChild(E),v=E}}else(b||_===l)&&(v instanceof this.BeginEndNode&&(w?(m=!0,y=Math.max(y,v.end),v.setEnd(w),_=this.afterMatch(w),t&&v===g&&v.parent===g.parent?(v.repaired=!0,delete v.endNeedsUpdate,g=this.getNextExpected(g,"end")):t&&(this.prune(v,g),t=!1)):(v.setEnd(l),delete v.endNeedsUpdate)),v=v.parent);t&&_>=h&&!m&&(this.prune(e,d),t=!1)}return this.removeUnrepairedChildren(e,t,n),this.cleanup(t,e,n,h,l,r,o),t?Math.max(y,_):_},removeUnrepairedChildren:function(e,t,n){if(t){for(var i=e.children,r=-1,o=0;o=t)return i}else if(e instanceof this.BeginEndNode&&e.endMatch){var r=e.endMatch.index;for(n=0;n=t));n++);if(i&&i.startr;){var l=this.getNextMatch(e,t,r);if(!l)break;var d=l&&l.match,h=l&&l.rule,c=l&&l.isSub,u=l&&l.isEnd;d.index!==r&&a.push({start:r,end:d.index,node:t}),c?(r=this.afterMatch(d),h instanceof this.BeginEndRule?(this.addBeginScope(s,d,h),t=o,o=this.getNextExpected(o,"begin")):this.addMatchScope(s,d,h)):u&&(r=this.afterMatch(d),this.addEndScope(s,d,h),o=this.getNextExpected(o,"end"),t=t.parent)}i>r&&a.push({start:r,end:i,node:t});var f=this.getInheritedLineScope(a,n,i);return s.concat(f)},getInheritedLineScope:function(e){for(var t=[],n=0;na;a++)i.push(r.children[a])}return n.reverse()},toStyleRanges:function(e){for(var t=[],n=0;n",rangeStyle:{styleClass:"annotationRange error"}}),i.prototype={initialize:function(e,t,i){this.textView=e,this.serviceRegistry=t,this.annotationModel=i,this.services=[];var o=this;this.listener={onModelChanging:function(e){o.onModelChanging(e)},onModelChanged:function(e){o.onModelChanged(e)},onDestroy:function(e){o.onDestroy(e)},onLineStyle:function(e){o.onLineStyle(e)},onStyleReady:function(e){o.onStyleReady(e)},onServiceAdded:function(e){o.onServiceAdded(e.serviceReference,o.serviceRegistry.getService(e.serviceReference))},onServiceRemoved:function(e){o.onServiceRemoved(e.serviceReference,o.serviceRegistry.getService(e.serviceReference))}},e.addEventListener("ModelChanging",this.listener.onModelChanging),e.addEventListener("ModelChanged",this.listener.onModelChanged),e.addEventListener("Destroy",this.listener.onDestroy),e.addEventListener("LineStyle",this.listener.onLineStyle),t.addEventListener("registered",this.listener.onServiceAdded),t.addEventListener("unregistering",this.listener.onServiceRemoved);for(var s=t.getServiceReferences(r),a=0;a=f;f++){a=f;var p=this.lineStyles[a],g=p&&p.errors,v=s.getLineStart(a);if(g)for(var m=0;mr;r++){var o=e[r];i.push({start:o.start+t,end:o.end+t,style:o.style})}return i}var n=this.lineStyles[e.lineIndex];n&&(n.ranges?e.ranges=t(n.ranges,e.lineStart):n.style&&(e.style=n.style))},_getEmptyStyle:function(e){for(var t=[],n=0;e>n;n++)t.push(null);return t},setContentType:function(e){if(this.contentType=e,this.services)for(var t=0;t=0;s--){var c=e[s];if(c&&!c._error&&p(c)){r=c;break}}var u;if(r){var f=r.getProperty("type");if("highlighter"===f)u=new i(d,o,h),u.setContentType(l);else if("grammar"===f||!a&&"undefined"==typeof f){var g=r.getProperty("grammar");u=new n.TextMateStyler(d,g,C)}else if(a){var v=[];for(var m in this.orionGrammars)v.push(this.orionGrammars[m]);var _=new t.createPatternBasedAdapter(v,r.getProperty("id"),l.id);u=new t.TextStyler(d,h,_)}}else!a||l&&"text/x-markdown"===l.id||(_=new t.createPatternBasedAdapter([],""),u=new t.TextStyler(d,h,_));return u})}function s(e,t){this.serviceRegistry=e,this.contentTypeService=t,this.styler=null}var a=1;return s.prototype={setup:function(e,t,n,i,r){r="undefined"==typeof r?!0:r,this.styler&&(this.styler.destroy&&this.styler.destroy(),this.styler=null);var s=this;return o(this.serviceRegistry,this.contentTypeService?this.contentTypeService:this.serviceRegistry.getService("orion.core.contentTypeRegistry"),e,t,n,i,r).then(function(e){return s.styler=e,e})},getStyler:function(){return this.styler}},{createStyler:o,SyntaxHighlighter:s}}),define("orion/markOccurrences",["orion/Deferred"],function(e){function t(e,t,n){this.registry=e,this.inputManager=t,this.editor=n}return t.prototype={setOccurrencesVisible:function(e){this.occurrencesVisible!==e&&(this.occurrencesVisible=e,e||this.editor.showOccurrences([]))},findOccurrences:function(){function t(t,n,i){function r(e,t,n){var i=t.getProperty("contentType");return o.isSomeExtensionOf(n,i).then(function(e){return e?t:null})}for(var o=t.getService("orion.core.contentTypeRegistry"),s=t.getServiceReferences("orion.edit.occurrences"),a=[],l=0;l1)return void i.editor.showOccurrences([]);var o={selection:t[0],contentType:i.inputManager.getContentType().id};r.computeOccurrences(e.getEditorContext(),o).then(function(e){i.editor.showOccurrences(e)})},500))};i.inputManager.addEventListener("InputChanged",function(e){var r=i.editor.getTextView();r&&(r.removeEventListener("Selection",o),t(i.registry,e.contentType,e.title).then(function(e){e&&0!==e.length?r.addEventListener("Selection",o):n&&window.clearTimeout(n)}))})}},{MarkOccurrences:t}}),define("orion/syntaxchecker",["orion/Deferred","orion/edit/editorContext","orion/i18nUtil"],function(e,t){function n(t,n,i){function r(e,t){var n=e.getProperty("contentType");return o.isSomeExtensionOf(t,n).then(function(t){return t?e:null})}for(var o=t.getService("orion.core.contentTypeRegistry"),s=t.getServiceReferences("orion.edit.validator"),a=[],l=0;l1&&s===t.getLineStart(t.getLineCount()-1)){var a=t.getLineCount()-2,l=t.getLineStart(a),d=t.getLineEnd(a);l===d?i.start=i.end=d:(i.start=d-1,i.end=d)}}}}},i}();return{SyntaxChecker:i,getValidators:n}}),define("orion/liveEditSession",["orion/Deferred"],function(e){function t(e){return e instanceof Error?e:new Error(e)}function n(e,t){this.registry=e,this.editor=t}var i,r=[];return n.prototype={start:function(n,o){function s(n,i){function r(e,t){var n=e.getProperty("contentType");return o.isSomeExtensionOf(t,n).then(function(t){return t?e:null})}for(var o=n.getService("orion.core.contentTypeRegistry"),s=n.getServiceReferences("orion.edit.live"),a=[],l=0;ls;s++){this._addFileModeProperties(this._diffContents[s],r);var a=this._parseHunkRange(s);a&&this._hunkRanges.push(a)}if(0===this._hunkRanges.length)return r.outPutFile=e,r;this._DEBUG&&(console.log("***Diff contents: \n"),this._diffContents.forEach(function(e){console.log(e)}),console.log("***Hunk ranges: \n"),console.log(JSON.stringify(this._hunkRanges)));for(var l=0;l0){console.log(" **Diff content on change/add: \n");for(var t=0;tc;c++)if(0!==this._diffContents[c].length){var u=this._diffContents[c][0];if("\\"!==u||n!==this._diffContents[c].substring(0,this._diffContents[c].length-1)&&n!==this._diffContents[c]){switch(u){case"-":case"+":case" ":break;default:continue}if(t!==u){switch("+"===u&&(d=c),"-"===u&&(h=c),t){case" ":a=this._hunkRanges[e][1]+o,l=this._hunkRanges[e][3]+s;break;case"-":this._createMinusBlock(a,l,this._hunkRanges[e][1]+o-a,h);break;case"+":this._createPlusBlock(a,l,this._hunkRanges[e][3]+s-l,d)}t=u}switch(u){case"-":o++;break;case"+":s++;break;case" ":o++,s++}}else"-"===t?this._oNewLineAtEnd=!1:" "===t?(this._nNewLineAtEnd=!1,this._oNewLineAtEnd=!1):this._nNewLineAtEnd=!1,c>i&&"\r"===this._diffContents[c-1][this._diffContents[c-1].length-1]&&(this._diffContents[c-1]=this._diffContents[c-1].substring(0,this._diffContents[c-1].length-1))}switch(t){case"-":this._createMinusBlock(a,l,this._hunkRanges[e][1]+o-a,h);break;case"+":this._createPlusBlock(a,l,this._hunkRanges[e][3]+s-l,d)}},_detectConflictes:function(e,t){if(0>e)return!1;for(var n=e+t,i=e;n>i;i++){var r=this._diffContents[i];if(r.indexOf("<<<<<")>-1||r.indexOf(">>>>>")>-1)return!0}return!1},_buildMap:function(e){for(var t,n=this._oBlocks.length,i=this._oFileContents.length,r=0,o=1,s=0;n>s;s++)t=this._oBlocks[s][0]-o,t>0&&(this._deltaMap.push([t,t,0]),r+=t),this._deltaMap.push(e&&this._detectConflictes(this._nBlocks[s][2],this._nBlocks[s][1])?[this._nBlocks[s][1],this._oBlocks[s][1],this._nBlocks[s][2]+1,1]:[this._nBlocks[s][1],this._oBlocks[s][1],this._nBlocks[s][2]+1]),r+=this._oBlocks[s][1],o=this._oBlocks[s][0]+this._oBlocks[s][1];if(i-o>0&&(this._deltaMap.push([i-o+1,i-o+1,0]),r+=i-o+1),i>r){t=i-r;var a=this._deltaMap[this._deltaMap.length-1];0===a[2]?(a[0]+=t,a[1]+=t):-1===a[2]?this._deltaMap.push([t,t,0]):this._nNewLineAtEnd===this._oNewLineAtEnd?this._deltaMap.push([t,t,0]):(this._nNewLineAtEnd&&(a[0]+=t),this._oNewLineAtEnd&&(a[1]+=t))}},_buildNewFile:function(){var e,t,n=1,i=!1,r=this._deltaMap.length;for(e=0;r>e;e++){if(i=!1,0===this._deltaMap[e][2]){for(t=0;t0)for(t=0;t=0?n:1)}else t.push(1)},_parseHunkRange:function(e){var t=this._diffContents[e],n=/^@@\s*-([\+|\-]*[\d]+)\s*,*\s*([\d]*)\s*\+([\+|\-]*[\d]+)\s*,*\s*([\d]*)\s*@@+/,i=/^@@\s*\+([\+|\-]*[\d]+)\s*,*\s*([\d]*)\s*-([\+|\-]*[\d]+)\s*,*\s*([\d]*)\s*@@+/,r=n.exec(t),o=null;return r&&5===r.length?(o=[e],this._converHRangeBody(r[1],o),this._converHRangeBody(r[2],o),this._converHRangeBody(r[3],o),this._converHRangeBody(r[4],o)):(r=i.exec(t),r&&5===r.length&&(o=[e],this._converHRangeBody(r[3],o),this._converHRangeBody(r[4],o),this._converHRangeBody(r[1],o),this._converHRangeBody(r[2],o))),o}},e}(),e}),define("orion/differ",["orion/extensionCommands","orion/compare/diffParser"],function(e,t){function n(e,t,n){this._serviceRegistry=e,this._inputManager=t,this._editor=n,this._enabled=!1,this.init()}return n.prototype={init:function(){var e=this;this._changeListener=function(){e._enabled&&(e.occurrenceTimer&&window.clearTimeout(e.occurrenceTimer),e.occurrenceTimer=window.setTimeout(function(){e.occurrenceTimer=null,e.doDiff()},500))},this._inputManager.addEventListener("InputChanged",function(){var t=e._editor.getTextView();t&&t.removeEventListener("ModelChanged",e._changeListener);var n=e.service=e.getDiffer();n&&t&&t.addEventListener("ModelChanged",e._changeListener)})},isVisible:function(){return!!this.getDiffer()},getDiffer:function(){for(var t=this._inputManager.getFileMetadata(),n=this._serviceRegistry.getServiceReferences("orion.edit.diff"),i=0;i0&&(this._dropdownNode.style.left=Math.floor(n-d)+"px");var h=i+a-(l.top+l.height);h>0&&(this._dropdownNode.style.top=Math.floor(i-h)+"px")}else r.prototype._positionDropdown.call(this)},i.prototype.destroy=function(){this._triggerNode.removeEventListener("contextmenu",this._boundcontextmenuEventHandler,!0),this._triggerNode.removeEventListener("click",this._boundContextMenuCloser,!1),window.removeEventListener("contextmenu",this._boundContextMenuCloser,!1),this._dropdownNode.dropdown=null,r.prototype.destroy.call(this)},{ContextMenu:i}}),define("orion/editorView",["i18n!orion/edit/nls/messages","orion/editor/editor","orion/editor/eventTarget","orion/editor/textView","orion/editor/textModel","orion/editor/projectionTextModel","orion/editor/editorFeatures","orion/hover","orion/editor/contentAssist","orion/editor/emacs","orion/editor/vi","orion/editorPreferences","orion/widgets/themes/ThemePreferences","orion/widgets/themes/editor/ThemeData","orion/widgets/settings/EditorSettings","orion/searchAndReplace/textSearcher","orion/editorCommands","orion/globalCommands","orion/edit/dispatcher","orion/edit/editorContext","orion/edit/typedefs","orion/highlight","orion/markOccurrences","orion/syntaxchecker","orion/liveEditSession","orion/problems","orion/blamer","orion/differ","orion/keyBinding","orion/util","orion/Deferred","orion/webui/contextmenu","orion/metrics","orion/objects"],function(e,t,n,i,r,o,s,a,l,d,h,c,u,f,p,g,v,m,_,y,C,w,x,S,b,T,E,L,k,A,M,D,O,N){function I(e,t){for(var n=0;n0&&(i=n.extension[0]);var r,o=B+this.id+"/foo."+i,s=o===this.lastFileLocation;return r=s||!this.lastFileLocation?(new M).resolve():this.fileClient.deleteFile(this.lastFileLocation),r.then(function(){return this.fileClient.write(o,e).then(function(){this.lastFileLocation=o,s?this.inputManager.load():this.inputManager.setInput(o)}.bind(this))}.bind(this))},getParent:function(){return this._parent},getSettings:function(){return this.settings},setParent:function(e){this._parent=e},updateSourceCodeActions:function(e,t){t&&(t.setAutoPairParentheses(e.autoPairParentheses),t.setAutoPairBraces(e.autoPairBraces),t.setAutoPairSquareBrackets(e.autoPairSquareBrackets),t.setAutoPairAngleBrackets(e.autoPairAngleBrackets),t.setAutoPairQuotations(e.autoPairQuotations),t.setAutoCompleteComments(e.autoCompleteComments),t.setSmartIndentation(e.smartIndentation))},updateViewOptions:function(e){var t=0;e.showMargin&&(t=e.marginOffset,"number"!=typeof t&&(t=e.marginOffset=parseInt(t,10)));var n=0;return e.wordWrap&&(n=t),{readonly:this.readonly||this.inputManager.getReadOnly(),tabSize:e.tabSize||4,expandTab:e.expandTab,wrapMode:e.wordWrap,wrapOffset:n,marginOffset:t,scrollAnimation:e.scrollAnimation?e.scrollAnimationTimeout:0}},updateSettings:function(e){this.settings=e;var t=this.editor,n=this.inputManager;n.setAutoLoadEnabled(e.autoLoad),n.setAutoSaveTimeout(e.autoSave?e.autoSaveTimeout:-1),n.setSaveDiffsEnabled(e.saveDiffs),n.setEncodingCharset(e.encodingCharset),this.differ.setEnabled(this.settings.diffService),this.updateStyler(e);var i=t.getTextView();i&&(this.updateKeyMode(e,i),i.setOptions(this.updateViewOptions(e))),this.updateSourceCodeActions(e,t.getSourceCodeActions()),t.setAnnotationRulerVisible(e.annotationRuler),t.setLineNumberRulerVisible(e.lineNumberRuler),t.setFoldingRulerVisible(e.foldingRuler),t.setOverviewRulerVisible(e.overviewRuler),t.setZoomRulerVisible(e.zoomRuler),this.renderToolbars&&this.renderToolbars(n.getFileMetadata()),this.markOccurrences.setOccurrencesVisible(e.showOccurrences),t.getContentAssist()&&t.getContentAssist().setAutoTriggerEnabled(e.contentAssistAutoTrigger),this.dispatchEvent({type:"Settings",newSettings:this.settings})},updateStyler:function(e){var t=this.syntaxHighlighter.getStyler();t&&t.setWhitespacesVisible&&t.setWhitespacesVisible(e.showWhitespaces,!0)},createSession:function(e){var t=this.editor,n=t.getTextView(),i=this.inputManager;if(n&&i){var r=i.getFileMetadata();r&&(e.session={get:function(){return sessionStorage.editorViewSection?JSON.parse(sessionStorage.editorViewSection):{}},apply:function(e){var i=this.get(),o=i[r.Location];o&&o.ETag===r.ETag&&(t.setSelections(o.selections),n.setTopIndex(o.topIndex,e?function(){}:void 0))},save:function(){var e=this.get();e[r.Location]={ETag:r.ETag,topIndex:n.getTopIndex(),selections:t.getSelections().map(function(e){return e.getOrientedSelection()})},sessionStorage.editorViewSection=JSON.stringify(e)}})}},_init:function(){this.preferences&&(this.editorCommands.editorPreferences=this.editorPreferences=this.editorCommands.editorPreferences||new c.EditorPreferences(this.preferences),this.editorPreferences.addEventListener("Changed",function(e){var t=e.preferences;t?this.updateSettings(t):this.editorPreferences.getPrefs(this.updateSettings.bind(this))}.bind(this)),this.editorCommands.themePreferences=this.themePreferences=this.editorCommands.themePreferences||new u.ThemePreferences(this.preferences,new f.ThemeData),this.themePreferences.apply());var n=this,d=this.readonly,h=this.commandRegistry,m=this.serviceRegistry,_=this.activateContext,C=this.inputManager,w=this.progress,A=this.contentTypeRegistry,M=this.editorCommands,D=function(){var e=n.updateViewOptions(n.settings);N.mixin(e,{parent:n._parent,model:new o.ProjectionTextModel(n.model||new r.TextModel),wrappable:!0});var t=new i.TextView(e);return t},O=function(t,i,r,o){var a=n.textSearcher=g.TextSearcher?new g.TextSearcher(t,m,h,r):null,l=(new s.KeyBindingsFactory).createKeyBindings(t,r,o,a);n.updateSourceCodeActions(n.settings,l.sourceCodeActions);var d=t.getTextView();return d.setAction("toggleWrapMode",function(){d.invokeAction("toggleWrapMode",!0);var e=d.getOptions("wrapMode");return n.settings.wordWrap=e,n.editorPreferences&&n.editorPreferences.setPrefs(n.settings),!0}),d.setKeyBinding(new k.KeyStroke("z",!0,!1,!0),"toggleZoomRuler"),d.setAction("toggleZoomRuler",function(){return n.settings.zoomRulerVisible?(n.settings.zoomRuler=!n.settings.zoomRuler,n.editorPreferences&&n.editorPreferences.setPrefs(n.settings),!0):!1},{name:e.toggleZoomRuler}),n.vi=n.emacs=null,n.updateKeyMode(n.settings,d),M.overwriteKeyBindings(t),l},R=function(e,t,i){var r=C.getContentType(),o=e.getTitle(),s=m.getServiceReferences("orion.edit.contentAssist").concat(m.getServiceReferences("orion.edit.contentassist")),a=i&&i.providers;a||(a=s.map(function(e){var t=e.getProperty("contentType"),n=e.getProperty("pattern");if(t&&A.isSomeExtensionOf(r,t)||n&&new RegExp(n).test(o)){var i=m.getService(e),s=e.getProperty("service.id").toString(),a=e.getProperty("charTriggers"),l=e.getProperty("excludedStyles");return a&&(a=new RegExp(a)),l&&(l=new RegExp(l)),{provider:i,id:s,charTriggers:a,excludedStyles:l}}return null}).filter(function(e){return!!e}));var l={};Object.keys(y).forEach(function(e){"function"==typeof y[e]&&(l[e]=y[e].bind(null,m,n.editContextServiceID))}),t.setEditorContextProvider(l),t.setProviders(a),t.setAutoTriggerEnabled(n.settings.contentAssistAutoTrigger),t.setProgress(w),t.setStyleAccessor(n.getStyleAccessor())},B=d?null:{createContentAssistMode:function(e){var t=new l.ContentAssist(e.getTextView(),m);t.addEventListener("Activating",R.bind(null,e,t));var n=new l.ContentAssistWidget(t,"contentassist"),i=new l.ContentAssistMode(t,n);return t.setMode(i),R(e,t),t.initialize(),i}},F=this.editor=new t.Editor({textViewFactory:D,undoStackFactory:n.undoStack?{createUndoStack:function(e){return n.undoStack.setView(e.getTextView()),n.undoStack}}:new s.UndoFactory,textDNDFactory:new s.TextDNDFactory,annotationFactory:new s.AnnotationFactory,foldingRulerFactory:new s.FoldingRulerFactory,zoomRulerFactory:new s.ZoomRulerFactory,lineNumberRulerFactory:new s.LineNumberRulerFactory,hoverFactory:new a.HoverFactory(m,C,h),contentAssistFactory:B,keyBindingFactory:O,statusReporter:this.statusReporter,domNode:this._parent});F.id="orion.editor",F.processParameters=function(e){return I(e,["start","end","line","offset","length"]),this.showSelection(e.start,e.end,e.line,e.offset,e.length)},F.getEditorContext=function(){return y.getEditorContext(m,n.editContextServiceID)},this.dispatcher=new P(this.serviceRegistry,this.contentTypeRegistry,F,C),this.themePreferences&&this.editorPreferences&&(this.localSettings=p?new p({local:!0,editor:F,themePreferences:this.themePreferences,preferences:this.editorPreferences}):null);var V=new b(m,F);C.addEventListener("InputChanging",function(e){n.createSession(e)}),window.addEventListener("beforeunload",function(e){n.createSession(e),e.session&&e.session.save()}),C.addEventListener("InputChanged",function(e){n.createSession(e);var t=F.getTextView();t?(V.start(C.getContentType(),e.title),t.setOptions(this.updateViewOptions(this.settings)),this.syntaxHighlighter.setup(e.contentType,F.getTextView(),F.getAnnotationModel(),e.title,!0).then(function(){this.updateStyler(this.settings),F.getContentAssist()&&R(F,F.getContentAssist())}.bind(this)),t.onInputChanged&&t.onInputChanged({type:e.type})):V.start()}.bind(this)),C.addEventListener("Saving",function(e){n.settings.trimTrailingWhiteSpace&&F.getTextView().invokeAction("trimTrailingWhitespaces");var t=F.getTextView();t&&t.onSaving&&t.onSaving({type:e.type})}),this.blamer=new E.Blamer(m,C,F),this.differ=new L.Differ(m,C,F),this.problemService=new T.ProblemService(m,this.problemsServiceID);var U=m.getService(this.problemsServiceID);U&&U.addEventListener("problemsChanged",function(e){F.showProblems(e.problems)});var K=this.markOccurrences=new x.MarkOccurrences(m,C,F);K.setOccurrencesVisible(this.settings.occurrencesVisible),K.findOccurrences();var W=new S.SyntaxChecker(m,F.getModel());F.addEventListener("InputChanged",function(t){W.setTextModel(F.getModel());var i=C.getInput();W.checkSyntax(C.getContentType(),t.title,t.message,t.contents,F.getEditorContext()).then(function(e){i===C.getInput()&&m.getService(n.problemsServiceID)._setProblems(e)}),C.getReadOnly()&&F.reportStatus(e.readonly,"error")});var H=Object.create(null);["getCaretOffset","setCaretOffset","getSelection","getSelectionText","setSelection","getSelections","setSelections","getText","setText","getLineAtOffset","getLineStart","isDirty","markClean"].forEach(function(e){H[e]=F[e].bind(F)}),H.showMarkers=function(e){m.getService(n.problemsServiceID)._setProblems(e)},H.enterLinkedMode=function(e){F.getLinkedMode().enterLinkedMode(e)},H.exitLinkedMode=function(e){F.getLinkedMode().exitLinkedMode(e)},H.openEditor=function(e,t){_.openEditor(e,t)},H.getFileMetadata=function(){return n.dispatcher.getServiceFileObject()},H.setStatus=v.handleStatusMessage.bind(null,m),m.registerService(this.editContextServiceID,H,null)},create:function(){this.editor.install(),this.editorPreferences&&this.editorPreferences.getPrefs(this.updateSettings.bind(this)),this._createContextMenu()},destroy:function(){this.lastFileLocation&&this.fileClient.deleteFile(this.lastFileLocation),this.editor.uninstall()},getStyleAccessor:function(){var e=null,t=this.syntaxHighlighter.getStyler();return t&&t.getStyleAccessor&&(e=t.getStyleAccessor()),e},_createContextMenu:function(){this._editorContextMenuNode=document.createElement("ul"),this._editorContextMenuNode.className="dropdownMenu",this._editorContextMenuNode.setAttribute("role","menu"),this._parent.parentNode.appendChild(this._editorContextMenuNode);var e=this.editor.getTextView(),t=new D.ContextMenu({dropdown:this._editorContextMenuNode,triggerNode:e._clientDiv}),n=function(e){var t=e.event;t.target&&(this.commandRegistry.destroy(this._editorContextMenuNode),this.commandRegistry.renderCommands("editorContextMenuActions",this._editorContextMenuNode,null,this,"menu"),O.logEvent("contextMenu","opened","editor"))}.bind(this);t.addEventListener("triggered",n)}},n.EventTarget.addMixin(R.prototype),{EditorView:R}}),define("embeddedEditor/helper/editorSetup",["orion/editor/textModel","orion/editor/undoStack","orion/commandRegistry","orion/inputManager","orion/fileClient","orion/contentTypes","orion/editorView","orion/editorCommands","orion/objects"],function(e,t,n,i,r,o,s,a,l){function d(e){this._serviceRegistry=e.serviceRegistry,this._pluginRegistry=e.pluginRegistry,this._commandRegistry=new n.CommandRegistry({}),this._fileClient=new r.FileClient(this._serviceRegistry),this._contentTypeRegistry=new o.ContentTypeRegistry(this._serviceRegistry),this._editorCommands=new a.EditorCommandFactory({serviceRegistry:this._serviceRegistry,commandRegistry:this._commandRegistry,fileClient:this._fileClient,toolbarId:"_orion_hidden_actions",navToolbarId:"_orion_hidden_actions"}),this._progressService={progress:function(e){return e},showWhile:function(e){return e}},this._serviceRegistry.registerService("orion.page.progress",this._progressService)}var h=0;return l.mixin(d.prototype,{destroy:function(){},createInputManager:function(){var e=this._inputManager=new i.InputManager({serviceRegistry:this._serviceRegistry,fileClient:this._fileClient,progressService:this._progressService,selection:this.selection,contentTypeRegistry:this._contentTypeRegistry});e.addEventListener("InputChanged",function(e){e.editor=this.editorView.editor,this.pageActionsScope="_orion_hidden_actions",this._commandRegistry.destroy(this.pageActionsScope),this._commandRegistry.renderCommands(this.pageActionsScope,this.pageActionsScope,e.metadata,e.editor,"tool")}.bind(this)),e.addEventListener("InputChanging",function(e){e.editor=this.editorView.editor}.bind(this))},defaultOptions:function(n){var i=new e.TextModel,r=h.toString(),o=Object.create(null);return o.openEditor=function(e,t){this.editorView.editor.setSelection(t.start,t.end)}.bind(this),{activateContext:o,id:r,parent:n,model:i,undoStack:new t.UndoStack(i,500),serviceRegistry:this._serviceRegistry,pluginRegistry:this._pluginRegistry,commandRegistry:this._commandRegistry,contentTypeRegistry:this._contentTypeRegistry,editorCommands:this._editorCommands,progressService:this._progressService,inputManager:this._inputManager,fileService:this._fileClient,problemsServiceID:"orion.core.marker"+r,editContextServiceID:"orion.edit.context"+r,editModelContextServiceID:"orion.edit.model.context"+r,readonly:!1}},createEditor:function(e){return this._editorCommands.createCommands().then(function(){return this._editorCommands.registerCommands(),this.createInputManager(),this.editorView=new s.EditorView(this.defaultOptions(e.parent)),h++,this.editorView.create(),this._inputManager.editor=this.editorView.editor,this._inputManager.setAutoSaveTimeout(300),this._editorCommands.inputManager=this._inputManager,e.contentType&&"string"==typeof e.contents&&this.editorView.setContents(e.contents,e.contentType),this.editorView}.bind(this))}}),{EditorSetupHelper:d}}),define("embeddedEditor/builder/embeddedEditor",["embeddedEditor/helper/bootstrap","embeddedEditor/helper/editorSetup","orion/objects"],function(e,t,n){function i(){}return n.mixin(i.prototype,{create:function(n){return e.startup(n).then(function(e){var i=e.serviceRegistry,r=e.pluginRegistry,o=new t.EditorSetupHelper({serviceRegistry:i,pluginRegistry:r});return o.createEditor(n)})}}),i}),define("orion/codeEdit",["embeddedEditor/builder/embeddedEditor"],function(e){return e}); \ No newline at end of file diff --git a/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/code_edit/built-codeEdit.css b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/code_edit/built-codeEdit.css new file mode 100644 index 000000000..67b4b9ffb --- /dev/null +++ b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/code_edit/built-codeEdit.css @@ -0,0 +1,2441 @@ +.textview { + background-color: white; + font-family: "Consolas", "Monaco", "Vera Mono", monospace; + font-size: 12px; + min-width: 50px; + min-height: 50px; +} +.textviewSelection { + background: rgb(180, 213, 255); +} +.textviewContent ::-moz-selection { + background: rgb(180, 213, 255); +} +.textviewContent ::selection { + background: rgb(180, 213, 255); +} +.textviewSelectionUnfocused { + background: lightgray; +} +.textviewSelectionCaret { + background: black; +} +.textviewScroll { + padding: 4px 2px 4px 2px; +} +.textviewContent { + cursor: auto; +} +.textviewLeftRuler { + border-right: 1px solid #eaeaea; +} +.textviewRightRuler { + border-left: 1px solid #eaeaea; +} +.textviewInnerRightRuler { + border-left: 1px solid #eaeaea; + background-color: white; +} +.textviewMarginRuler { + border-left: 1px solid #eaeaea; +} +.textviewBlockCursor { + background: black; + opacity: 0.4; +} +.ruler { +} +.ruler.annotations { + width: 16px; +} +.ruler.folding { + width: 14px; +} +.ruler.lines { + text-align: right; +} +.ruler.overview { + width: 14px; +} +.ruler.zoom { + width: 100px; + height: 100%; +} +.rulerLines { + color: silver; +} +.rulerLines.even +.rulerLines.odd { +} +.rulerZoomWindow { + background-color: rgba(0, 0, 0, 0.1); + margin-left: 1px; + border: 1px solid #eee; + position: absolute; + width: calc(100% - 4px); + border-radius: 5px; + z-index: 100; +} +.textviewZoom { + font-size: 2px !important; + cursor: pointer; +} +.textviewZoom .textviewContent { + cursor: pointer; +} +.textviewZoom .textviewScroll { + padding: 0; +} +.textviewZoom .punctuation.separator.tab { + background-image: none; +} +.textviewZoom .punctuation.separator.space { + background-image: none; +} +.textviewTooltip { + font-family: "Consolas", "Monaco", "Vera Mono", monospace; + font-size: 12px; + background-color: #325C80; + color: #FAFAFA; + padding: 8px; + + box-sizing: content-box; + border-radius: 3px; + z-index: 101; + position: fixed; + overflow: hidden; +} +.tooltipTheme .textviewScroll { + padding: 0; +} +.tooltipTheme .annotationLine.currentLine { + background-color: transparent !important; +} +.textviewTooltipCodeProjection { + border: 1px solid black !important; + + padding: 0 !important; +} +.textviewTooltip a { + color: #7CC7FF; +} +.textviewTooltip h3 { + -webkit-margin-before: 0; + margin-top: 0; +} +.textviewTooltip p:first-of-type { + -webkit-margin-before: 0; + margin-top: 0; + -webkit-margin-after: 0; + margin-bottom: 0; +} +.textviewTooltip p { + word-wrap: break-word; +} +.textviewTooltip multi_anno { + font-style: normal; + font-weight: bold; +} +.textviewTooltip span { + vertical-align: baseline; +} +.textviewTooltip .tooltipRow { + display: table-row; +} +.textviewTooltip .tooltipImage { + display: inline-block; + vertical-align: middle; + padding: 1px; +} +.textviewTooltip .tooltipTitle { + padding-left: 3px; + vertical-align: middle; +} +.textviewTooltip .hoverTooltipTitle { + font-weight: normal; +} +.textviewTooltip .commandButton { + border: 1px solid #325C80; + background-color: inherit; + color: white; +} +.textviewTooltip .commandButton:not(.dropdownTrigger){ + text-transform: initial; +} +.textViewTooltipOnFocus { + resize: both; + overflow: auto; +} +.textViewTooltipOnHover { + overflow: auto; +} + +.textViewFind { + background-color: #ddd; + position: absolute; + top: -50px; + right: -1000px; + border: 1px solid #aaa; + border-top: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + padding: 2px; + z-index: 100; +} +.textViewFind.show { + top: 0; + right: 40px; + transition: top 0.3s ease-out; + -ms-transition: top 0.3s ease-out; + -moz-transition: top 0.3s ease-out; + -webkit-transition: top 0.3s ease-out; + -o-transition: top 0.3s ease-out; +} +.textViewFindButton { + margin-right: 1px; + margin-left: 0; +} +.textViewFindButton:first-child { + margin-left: 5px; +} +.textViewFindButton:last-child { + margin-right: 5px; +} +.textViewFindButton.checked { + color: blue; + text-decoration: underline; +} +.textViewReplaceInput { +} +.textViewFindInput { +} +.textViewFindCloseButton { + width: 16px; + height: 16px; + border-width: 0; + background-color: transparent; + vertical-align: baseline; + background-position: center; + background-repeat: no-repeat; + background-image: url(data:image/gif;base64,R0lGODlhEAAQAJEAAAAAAP///4CAgP///yH5BAEAAAMALAAAAAAQABAAAAIdnI+py+1vhECSyTluu9px+HkctnSdUh0pxLYuVAAAOw==); +} +.contentassist { + font-size:12px; + display: none; + background-color: white; + position: fixed; + top: 100px; + left: 100px; + z-index:100; + cursor: default; + min-width: 70px; + width: 350px; + height: 170px; + overflow-x: hidden; + overflow-y: auto; + white-space: nowrap; + border-radius: 5px; + box-shadow: rgba(0, 0, 0, 0.3) 2px 2px 10px; + line-height: 18px; + resize: both; +} +.contentassist:focus { + outline: none; +} +.contentassist .proposal-emphasis { + font-weight: normal; +} +.contentassist hr{ + border: 0; + height: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(255, 255, 255, 0.3); +} +.contentassist .proposal-noemphasis-keyword { + background-color: aliceblue; + color: #CC4C07; + font-weight: bold; +} +.contentassist .proposal-noemphasis { + background-color: aliceblue; + font-weight: lighter; + color: black; +} +.contentassist .proposal-noemphasis-title-keywords { + background-color: aliceblue; + color: gray; +} +.contentassist .proposal-noemphasis-title { + background-color: aliceblue; + color: gray; + padding-top: 5px; +} +.contentassist .proposal-default { + +} +.contentassist .proposal-name { + font-weight: bold; +} +.contentassist .selected { + background-color: rgb(48, 135, 179); + background: linear-gradient(rgb(60, 150, 190), rgb(30, 120, 160)); + border-radius: 3px; + color: white; +} +.contentassist .cloneProposal { + box-shadow: rgba(0, 0, 0, 0.9) 2px 2px 8px; + position: fixed; + visibility: visible; + z-index: 1000; +} +.contentassist .proposalTag { + display: inline-block; + line-height: 11px; + height: 10px; + border-radius: 2px; + background: #325C80; + padding: 2px; + margin-right: 3px; + text-align: center; + color: white; +} +.contentassist .iconTagGreen { + display: inline-block; + font-size: 10px; + font-weight: bold; + line-height: 13px; + height: 12px; + width: 12px; + border-radius: 50%; + background: green; + padding: 1px; + margin-right: 3px; + text-align: center; + color: white; +} +.contentassist>div { + padding: 1px 3px 1px 5px; +} +.cloneWrapper { + display: block; + height: 0; + overflow: visible; + visibility: hidden; + width: 0; + z-index: 1000; +} +.contentassist.cloneWrapper:hover { + overflow: visible; +} +.comment { + color: #3C802C; +} +.constant { + color: blue; +} +.entity { + color: #3f7f7f; +} +.invalid { + color: red; + font-weight: bold; +} +.keyword { + color: #9F4177; + font-weight: bold; +} +.storage { + color: #7F0055; +} +.string { + color: #446fbd; +} +.support { + color: #21439c; +} +.variable { + color: #0000c0; +} +.punctuation.separator.space { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAABVJREFUCNdj3L17938GBgYGJgYoAAAxOAM004kASgAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: center center; +} +.punctuation.separator.tab { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAAAXNSR0IArs4c6QAAABtJREFUCNdj2L17938GKEBmYwgQJ0m8IAMDAwDemh/hgxuOkwAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: left center; +} +.comment-block-documentation { + color: #00008F; +} +.constant-character-entity { + font-style: normal; +} +.entity-name-function, .entity-name-type { + font-weight: bold; + color: #67BBB8; +} +.entity-name-tag { + color: #98937B; +} +.entity-other-attribute-name { + color: #3C802C; +} +.invalid-illegal { + color: white; + background-color: red; +} +.invalid-deprecated { + text-decoration: line-through; +} +.keyword-operator { + color: #CC4C07; + font-weight: bold; +} +.meta.annotation.currentLine { + background-color: #EAF2FE; +} +.meta.tag { + color: #3f7f7f; +} +.punctuation-definition-comment { + color: #3f5fbf; +} +.punctuation-definition-string { + color: blue; +} +.variable-parameter { + color: #D1416F; +} +.variable-language { + color: #7F0055; + font-weight: bold; +} +.cm-meta { color: #00008F; } +.cm-keyword { font-weight: bold; color: #7F0055; } +.cm-atom { color: #21439c; } +.cm-number { color: black; } +.cm-def { color: green; } +.cm-variable { color: black; } +.cm-variable-2 { color: #004080; } +.cm-variable-3 { color: #004080; } +.cm-property { color: black; } +.cm-operator { color: #222; } +.cm-comment { color: green; } +.cm-string { color: blue; } +.cm-error { color: #ff0000; } +.cm-qualifier { color: gray; } +.cm-builtin { color: #7F0055; } +.cm-bracket { color: white; background-color: gray; } +.cm-tag { color: #3f7f7f; } +.cm-attribute { color: #7f007f; } + +.annotation { +} +.annotation.error, +.annotation.warning, +.annotation.task, +.annotation.bookmark, +.annotation.breakpoint, +.annotation.collapsed, +.annotation.expanded, +.annotation.currentBracket, +.annotation.matchingBracket, +.annotation.currentLine, +.annotation.matchingSearch, +.annotation.currentSearch, +.annotation.readOccurrence, +.annotation.writeOccurrence, +.annotation.linkedGroup, +.annotation.currentLinkedGroup, +.annotation.selectedLinkedGroup { +} +.annotation.blame { + color: gray; + background-color: rgb(255, 132, 44); +} +.annotation.currentBlame { + color: black; + background-color: rgb(184, 103, 163); +} +.annotation.diffAdded { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAaSURBVBhXY5x/KoyBgSHBdCUTkIIAGIuBAQBMsAMD4UOAtwAAAABJRU5ErkJggg==); + background-repeat: repeat-y; + color: #CCCCCC; +} +.annotation.diffModified { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAcSURBVBhXYwzdevs/AxCs8lJhYAIxYACJw8AAAIlKBAKlNXzqAAAAAElFTkSuQmCC); + background-repeat: repeat-y; + color: #CCCCCC; +} +.annotation.diffDeleted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAVSURBVBhXY3growJBDP9hAMb6/x8ADgMVdmD2Og4AAAAASUVORK5CYII=); + background-repeat: repeat-x; + color: #CCCCCC; +} +.lines .annotation.diffAdded { + background-image: none; + background-color: rgba(159, 202, 86, 0.68); + color: #555555; +} +.lines .annotation.diffModified { + background-image: none; + background-color: rgba(85, 181, 219, 0.67); + color: #555555; +} +.annotationHTML { + cursor: pointer; + width: 16px; + height: 16px; + display: inline-block; + vertical-align: middle; + background-position: center; + background-repeat: no-repeat; +} +.annotationHTML.error { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGNTlDOUMxMUVDNDExRTM4NDU4RjQ3Q0I3NkI4OTBDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGNTlDOUMyMUVDNDExRTM4NDU4RjQ3Q0I3NkI4OTBDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0Y1OUM5QkYxRUM0MTFFMzg0NThGNDdDQjc2Qjg5MEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0Y1OUM5QzAxRUM0MTFFMzg0NThGNDdDQjc2Qjg5MEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Be44kAAAAqklEQVR42mL8//8/AyWAiYFCQLEBLNgEX+aURgGpAiA2gAqdB+KJ4lO6l6GrZUQPA6DmqUAqC4eF04CGZOP0AtRmkOZ/QHwLSeoWVCwLqgZnGORD6TtA7ArEp6DYFSqGrAZrGBhCaTUgXg3EoVD+aqgYshraRON5JD+HQm2GueQWmhqsBkyE0ipAvBuIzaB4N1QMWQ11opERW16ARlU+UoARn5CGXmYCCDAAPz09iI0KJ9QAAAAASUVORK5CYII="); +} +.annotationHTML.warning { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkREMTE1OUNDMUVDMjExRTM4NDU4RjQ3Q0I3NkI4OTBDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkREMTE1OUNEMUVDMjExRTM4NDU4RjQ3Q0I3NkI4OTBDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6REQxMTU5Q0ExRUMyMTFFMzg0NThGNDdDQjc2Qjg5MEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6REQxMTU5Q0IxRUMyMTFFMzg0NThGNDdDQjc2Qjg5MEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Kzt/qAAAA0ElEQVR42mL8//8/AyWAiYFCQLEBLLgkfl8obARSZUD8HYiLWQ3652NTx4gtDICao4HUbCDeBRVyBmI3oCHHCRoA1MwOpO4A8V+gBgWo2AMg9QaITYFi/wl5IRaIZYD4K1AjI8gSIBYBYnkg9gLirYQCMRdKc0M1KUDZIFCM1wtAG02B1Ckk+WlQSzKQxLSA3riOywUpaHxHILZHE8vA54VQNL4XFCODaHyB+B6IBZH4s7CE0Ud8LvCHhsFfKN8VihmgYqegavAnpKGVmQACDACxJDv3vmRk+gAAAABJRU5ErkJggg=="); +} +.annotationHTML.task { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdEMjg0RkI2MUVFMzExRTM4NDU4RjQ3Q0I3NkI4OTBDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdEMjg0RkI3MUVFMzExRTM4NDU4RjQ3Q0I3NkI4OTBDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0QyODRGQjQxRUUzMTFFMzg0NThGNDdDQjc2Qjg5MEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0QyODRGQjUxRUUzMTFFMzg0NThGNDdDQjc2Qjg5MEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6Utm8RAAAAl0lEQVR42mL8//8/AyWAiYFCQLEBLMicqtVRRPmnLXQZIzkuuEuJF04BsTEQ15JjAEizGxB/AmJpYgz4DsTLoewrQOwJ9PNHID0ViDPwBiIURAPxBqjm2UDN74CB2wFkZxKMBSioAOJ9QI1t0JgBaS4nKhqhwAyIdwE1ugLpLHyacRkAM+QcECtTkhKViYlfxqGfmQACDAAjXCa0hW/NdQAAAABJRU5ErkJggg=="); +} +.annotationHTML.bookmark { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdEMjg0RkIyMUVFMzExRTM4NDU4RjQ3Q0I3NkI4OTBDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdEMjg0RkIzMUVFMzExRTM4NDU4RjQ3Q0I3NkI4OTBDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0QyODRGQjAxRUUzMTFFMzg0NThGNDdDQjc2Qjg5MEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0QyODRGQjExRUUzMTFFMzg0NThGNDdDQjc2Qjg5MEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz54SgjJAAAAuUlEQVR42mL8//8/AyWAiYFCQFsDWrdcMAViY3xqWAhYEADEv4H4LLle8IVinIARORaAzpUHiUG5qkC8C8p2AOKHQPwDhKt9DD7gcoEREJ8H4vtImkHgAFTsKhB743QB1BWyQGo+EDujGb4JiNOBtr/AawDUEH0gdQFNWBGo+QGxgRgEpV8C8SsoO4KUWAAZsAeIDYBYB4g3A3EUwViAOl8Falsb0Mn/kMRTQYYCxe4TDIOhlZkAAgwAunFAhB2QB2cAAAAASUVORK5CYII="); +} +.annotationHTML.breakpoint { + + background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAAFheoFxkoFxnpmt0pmZxpnF7rYyWwmJwpnaFs3aDrWt8rXGBrYycwmZ3mXuNs42cu77F03GIs3aJrYGVu2J5oKCuxeDj6LK/03GLrYieu3aIoIygu6m4zcLN3MTM1m6Rs2aLriRgkSZilXGXtoGcs7LD0QBLhSZikihol3ScubrO2Yaqu5q4xpO0wpm7yabF0ZO9yaXI0r3X3tHj6P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADQALAAAAAAQABAAAAafQJpwSCwWLYZBIDAwWIw0A+FFpW6aRUPCxe1yE4ahhdCCxWSzmSwGgxGeUceKpUqhUCkVa7UK0wgkJCUjJoUmIyWBBEIEGhoeJ4YmJx6OAUIADQ0QIZIhEJoAQgEUFBUgkiAVpZdRCxIPFx8iIh8XDw4FfhYHDhgZHB0dHBkYEwdwUQoTEc3OEwp+QwYHCBMMDBMIB9JESAJLAk5Q5EVBADs="); +} +.annotationHTML.collapsed { + + width: 14px; + height: 14px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWBJREFUeNpi/P//PwMlgImBQkCxASzoAp++fo+6de+Z+fXbD/Jev/nAICoiwKCpqrBBTUlqNR835zJ09YzIYfDxy7eo/cevLmXlYGNQUJAEahZieP3mHcODB08Zfv/4w+BoqR3Nz8O1DKcXzt94HPqXmZlBU1+LgZNfkMHazIOBA0hr6uswgMTP33gYijcMLlx/EMAnLs7w7sc/hg9AG0HgPZB+B8S84hJA+UcBeMPg+at3DJIMnAxZzt5wsUhnXzDdsmIVWB6vAcLCfAys3z4wzN64huEfkJ/uH8IwexOQDQymD2/fgeXxekFLRWHD51evGDhZGRi4WSFSnCwgNjB2Xr1m0AbK4zXAQkdhNdPf3wx3r91g+PruLcOqnasYvn54x3Dv2k0G5r+/GMyB8nijEQTefvoadeH6w9Cbtx8GvH//kUFQkJ9BQ1V+g76m/GphPu5lBA0YenmBYgMAAgwA34GIKjmLxOUAAAAASUVORK5CYII="); +} +.annotationHTML.expanded { + + width: 14px; + height: 14px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAT5JREFUeNrUksFKw0AURW+mTWw67SSEiG209U90r4jddFO34l+5U0HdZCHiFwiCOz9AlMSmGEpMOqk1TWJSFGyFbATR2dyZd+Dw3mOENE3xkyP8PYHrBT3OX7uW43ZefA6FUaw1dJPSyrmu1k8KBYOh37Od4XFZLEPXFdRrFMGIw3U9TKMYqw1tb0VjcxLy9eEF425CCIxWE5JcxSQGxCyNloG87gXhwWIHc4J767lTZQw8ShFGSZbxRyaQmZJxd3NRUJ6ffwQNEi6PzG/L2tjdmvFCgcKqKL2F2Olu43MzggDka+IjPuOFI7Sbujn2fUglYKkkzFIi+R0I/QDrGS8UqDX5QkhiOHYfE84hkhSTkGNgOyDJFCzjhYLTq+vDtrG8r1LZtB6fcHtzB+uhD5VWzLx+lvF/8JV/XfAuwADsrJbMGG4l4AAAAABJRU5ErkJggg=="); +} +.annotationHTML.multiple { + + background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAAOdpa+yJiuFYXOFYXeBYXONwded8f+NwdmhwkHB4iPr7/ezx+fP2+2h4kOzy+Wh4iPr8/gCBwTaczjaXyjaYyjaXyTaYyfr8/QCMzQCMzACHxzao2jal2Dak1zag03iAgI/Ckn64fZrHmX+4fZLCianPopPCiarOoqbLlafLlbnXq7nWq6fLlMTcsoCIeJCQcIiIeKCYaJiQcO16ee16evGVlfGWlfahn/ahoPWhn/WhoPe1tP///////wAAAAAAACH5BAEAAD0ALAAAAAAQABAAAAaRwJ5wSCwaj8WYcslcDmObaDTGq1Zjzw4mk+FQIRcFTzaUeTRoj4zHaI+HL0lkLnnxFgsH7zWEWSoTFBMwVlUwQy6JMDCJjYwuQx8tk5MfOzk4OjcfkSssKCkqHzY0MzQ1nEIJJSYkJCcJAQCzAQlDDyIjISMiCQYEAgMGD0MNIMfHDQUHBc3EQgjR0tPSSNY9QQA7"); +} +.annotationHTML.overlay { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJEAQvB2JVdrAAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAAD1JREFUCNdtjkESADAEAzemf69f66HMqGlOIhYiFRFRtSQBWAY7mzx+EDTL6sSgb1jTk7Q87rxyqe37fXsAa78gLyZnRgEAAAAASUVORK5CYII="); + background-position: right bottom; + position: relative; + top: -16px; +} +.annotationHTML.currentBracket { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gobFRYVQuAvZwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAABnSURBVDjLtVJBDsAgCCuNT/L/L9if2GUHthUTRUlItEmBUoAtccFXqawWYXUSDuR4SAjMAaD9CnTY8zLR0MYTdEk668I3Ms3Zv347rEpmdV8taFN2+QsTy2YgxITApc3zEpZvJdnFDZs2IdfwZr8PAAAAAElFTkSuQmCC"); +} +.annotationHTML.matchingBracket { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gobFRYVQuAvZwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAABnSURBVDjLtVJBDsAgCCuNT/L/L9if2GUHthUTRUlItEmBUoAtccFXqawWYXUSDuR4SAjMAaD9CnTY8zLR0MYTdEk668I3Ms3Zv347rEpmdV8taFN2+QsTy2YgxITApc3zEpZvJdnFDZs2IdfwZr8PAAAAAElFTkSuQmCC"); +} +.annotationHTML.currentLine { + + background-image: url("data:image/gif;base64,R0lGODlhEAAQAMQAALxe0bNWzbdZzrlb0KpPx61RybBTy6VLxadNxZGctIeUroyYsG92hHyMqIKRq2l9nmyAoHGDonaIpStXj6q80k1aXf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABYALAAAAAAQABAAAAVCoCWOZGmeKDql5ppOMGXBk/zOoltSNO6XrlXwxIPNYiMGq8SoLC2MaNPygEQkDYdikUg6LQcEoWAICAaA5HPNLoUAADs="); +} +.annotationHTML.matchingSearch { + + background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAALClrLu1ubOpsKqdp6eapKufqMTAw7attLSrsrGnr62jq8C7v765vaebpb22vLmyuMbCxsnGycfEx8G+wcrIysTBxUltof//yf///v70jergpPvws+nWc/npqvrpqvrpq/raffffnvXVkfTVkvXUkd+9f+SiOemvV+uyXa2OX7mYZqeIXKuNX/ClO7KQYqiIXJ59Vp19VpFvTo9uTZBvTpNyUJNyUf///////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADgALAAAAAAQABAAAAZ4QJxwSCwajS2aS1U6DlunzcagcuKgG4sn5HJiLZ2QiHbEbj6hEapVTKVYr3OItG5TIhVGLF0npigUEAsPAjV9Q24pEhMBCAoybEUmGRcrDgcAAzNGkxcYNzAJBQSbRJ0YqBc2DaVEHJ6pGTStRBqfGBcZILRWvThBADs="); +} +.annotationHTML.currentSearch { + + background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAALClrLu1ubOpsKqdp6eapKufqMTAw7attLSrsrGnr62jq8C7v765vaebpb22vLmyuMbCxsnGycfEx8G+wcrIysTBxUltof//yf///v70jergpPvws+nWc/npqvrpqvrpq/raffffnvXVkfTVkvXUkd+9f+SiOemvV+uyXa2OX7mYZqeIXKuNX/ClO7KQYqiIXJ59Vp19VpFvTo9uTZBvTpNyUJNyUf///////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADgALAAAAAAQABAAAAZ4QJxwSCwajS2aS1U6DlunzcagcuKgG4sn5HJiLZ2QiHbEbj6hEapVTKVYr3OItG5TIhVGLF0npigUEAsPAjV9Q24pEhMBCAoybEUmGRcrDgcAAzNGkxcYNzAJBQSbRJ0YqBc2DaVEHJ6pGTStRBqfGBcZILRWvThBADs="); +} +.annotationHTML.readOccurrence { + + background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAAP3ykf3zn/7lIv7kI/fbI/7nRf7scLe0oMXDtfXXHsG4gaKdgOXBF+rIJqKdhaijjNWxHeLBL6GafLuYJpmQcvvdg5OHZpyRcJ+UdLavm4+BXqGWeYZ1TYx7VZ6QcJ2NbI+Ebv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACEALAAAAAAQABAAAAZewJBwSCwaj0KMBFlULphDJwIakh6gGckCcXgyLxjuYol0PA6YMQbZqFAOhw/Gc2wHABaJhAMy2gEGBRoSHRtFf4ECDRpGERV3iQ0TRwyQBQSSRAmbAwEMnxAQClRQQQA7"); +} +.annotationHTML.writeOccurrence { + + background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAAP3ykf3zn/7lIv7kI/fbI/7nRf7scLe0oMXDtfXXHsG4gaKdgOXBF+rIJqKdhaijjNWxHeLBL6GafLuYJpmQcvvdg5OHZpyRcJ+UdLavm4+BXqGWeYZ1TYx7VZ6QcJ2NbI+Ebv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACEALAAAAAAQABAAAAZewJBwSCwaj0KMBFlULphDJwIakh6gGckCcXgyLxjuYol0PA6YMQbZqFAOhw/Gc2wHABaJhAMy2gEGBRoSHRtFf4ECDRpGERV3iQ0TRwyQBQSSRAmbAwEMnxAQClRQQQA7"); +} +.annotationHTML.blame { + float: left; +} +.annotationHTML.currentBlame { + float: left; +} +.annotationHTML.blame.single { + width: 32px; + height: 32px; +} +.annotationHTML.currentBlame.single { + width: 32px; + height: 32px; +} +.annotationHTML.diffAdded { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAaSURBVBhXY5x/KoyBgSHBdCUTkIIAGIuBAQBMsAMD4UOAtwAAAABJRU5ErkJggg==); + background-repeat: repeat-y; + background-position: left top; +} +.annotationHTML.diffDeleted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAVSURBVBhXY3growJBDP9hAMb6/x8ADgMVdmD2Og4AAAAASUVORK5CYII=); + background-repeat: repeat-x; + background-position: left top; +} +.annotationHTML.diffModified { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAcSURBVBhXYwzdevs/AxCs8lJhYAIxYACJw8AAAIlKBAKlNXzqAAAAAElFTkSuQmCC); + background-repeat: repeat-y; + background-position: left top; +} +.annotationOverview { + cursor: pointer; + border-radius: 2px; + left: 2px; + width: 8px; +} +.annotationOverview.task { + background-color: #93bb7a; + border: 1px solid #79aa59; +} +.annotationOverview.breakpoint { + background-color: lightblue; + border: 1px solid blue; +} +.annotationOverview.bookmark { + background-color: #84b3cf; + border: 1px solid #9cc2d8; +} +.annotationOverview.error { + background-color: #EFA1A7; + border: 1px solid #ec8a91; +} +.annotationOverview.warning { + background-color: #fce1a9; + border: 1px solid #face70; +} +.annotationOverview.currentBracket { + background-color: #00cc00; + border: 1px solid #00aa00; +} +.annotationOverview.matchingBracket { + background-color: #00cc00; + border: 1px solid #00aa00; +} +.annotationOverview.currentLine { + background-color: #EAF2FE; + border: 1px solid black; +} +.annotationOverview.matchingSearch { + background-color: #C3E1FF; + border: 1px solid #afcae5; +} +.annotationOverview.currentSearch { + background-color: #53D1FF; + border: 1px solid #42a7cc; +} +.annotationOverview.readOccurrence { + background-color: lightgray; + border: 1px solid black; +} +.annotationOverview.writeOccurrence { + background-color: Gold; + border: 1px solid darkred; +} +.annotationOverview.currentBlame { + background-color: rgb(184, 103, 163); + border: 1px solid black; +} +.annotationOverview.diffAdded { + background-color: rgba(159, 202, 86, 0.52); + border: 1px solid black; +} +.annotationOverview.diffDeleted { +} +.annotationOverview.diffModified { + background-color: rgba(85, 181, 219, 0.61); + border: 1px solid black; +} +.annotationRange { + background-repeat: repeat-x; + background-position: left bottom; +} +.annotationRange.task { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sLDhEoIrb7JmcAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAGUlEQVQI12NggIH/DGdhDCM45z/DfyiBAADgdQjGhI/4DAAAAABJRU5ErkJggg=="); +} +.annotationRange.breakpoint { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sLDhEqHTKradgAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAIklEQVQI11XJMQ0AMAzAMGMafwrFlD19+sUKIJTFo9k+B/kQ+Qr2bIVKOgAAAABJRU5ErkJggg=="); +} +.annotationRange.bookmark { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); +} +.annotationRange.error { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg=="); +} +.annotationRange.warning { + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); +} +.annotationRange.currentBracket { + background-color: #00FE00; +} +.annotationRange.matchingBracket { + background-color: #00FE00; +} +.annotationRange.readOccurrence { + background-color: lightgray; +} +.annotationRange.writeOccurrence { + background-color: yellow; +} +.annotationRange.matchingSearch { + background-color: #C3E1FF; +} +.annotationRange.currentSearch { + background-color: #53D1FF; +} +.annotationRange.linkedGroup { + outline: 1px solid grey; +} +.annotationRange.currentLinkedGroup { + background-color: #C3E1FF; +} +.annotationRange.selectedLinkedGroup { + background-color: #53D1FF; +} +.annotationLine { +} +.annotationLine.currentLine { + background-color: #EAF2FE; +} + +.headerLayout { + height: 50px; +} +.toolbarLayout { + height: 50px; + + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + flex-direction: row; + -ms-flex-direction: row; + -webkit-flex-direction: row; + -webkit-align-items: center; + align-items: center; +} +.fsToolbarLayout { + height: 30px; +} +.bannerLeftArea{ + + -ms-flex: 1 6 20%; + -moz-box-ordinal-group: 1; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; + -moz-box-flex: 1; + -webkit-box-flex:1; + -webkit-box-ordinal-group: 1; + + width: 20%; + + padding-left:5px; +} +.bannerMiddleArea{ + -ms-flex: 3 1 60%; + + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; + -moz-box-flex: 1; + -moz-box-ordinal-group: 2; + + -webkit-box-flex:1; + -webkit-box-ordinal-group: 2; + width: 60%; +} +@media only screen and (device-width: 768px) { + + + .bannerMiddleArea{ + -ms-flex: 3 1 60%; + + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; + -moz-box-flex: 1; + -moz-box-ordinal-group: 2; + + -webkit-box-flex:1; + -webkit-box-ordinal-group: 2; + width: 59%; +} + +} +.bannerRightArea{ + -ms-flex: 1 6 20%; + -moz-box-ordinal-group: 3; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; + -moz-box-flex: 1; + + -webkit-box-flex:1; + -webkit-box-ordinal-group: 3; + width: 20%; + padding-right:5px; +} +.content-fixedHeight { + clear: both; + overflow: hidden; + position: absolute; + top: 0; + + bottom: 0; + left: 50px; + right: 0; + background: #3b4b54; + +} +.content-fixedHeight-animation { + transition: left 0.3s ease; +} +.content-fixedHeight-maximized { + top: 0; + bottom: 0; +} +.content-sideMenu-closed { + left: 0; +} +.content-fluid { +} +.footer-fixed-bottom { + position: fixed; + bottom: 0; + z-index: 50; + right: 0; + left: 0; + + height: 0; + background:#ededed; +} +.layoutBlock { + clear: both; + margin: 0; + + padding: 4px 4px 0 4px; + vertical-align: baseline; +} +.layoutLeft { + float: left; + margin: 0; +} +.layoutRight { + float: right; + margin: 0; +} +.layoutFlexStretch { + flex: 1 1; + -ms-flex: 1 1; + -webkit-flex: 1 1; +} +.spacingLeft { + margin-left: 5px; +} +.spacingRight { + margin-right: 5px; +} +.clear { + clear: both; +} +.hidden { + visibility: hidden; +} +.sidePanelLayout { + display: block; + position: absolute; + left: 0; + width: 33%; + height: 100%; +} +.generalAnimation { + -webkit-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + -o-transition: all 0.5s ease; + transition: all 0.5s ease; + z-index: 50; + overflow: auto; +} +.sidePanelLayoutAnimation { + -webkit-transition: width 0.5s ease; + -moz-transition: width 0.5s ease; + -o-transition: width 0.5s ease; + transition: width 0.5s ease; + z-index: 50; + overflow: auto; +} +.sidePanelVerticalLayout { + display: block; + position: absolute; + top: 0; + height: 33%; + width: 100%; +} +.sidePanelVerticalLayoutAnimation { + -webkit-transition: height 0.5s ease; + -moz-transition: height 0.5s ease; + -o-transition: height 0.5s ease; + transition: height 0.5s ease; + z-index: 50; + overflow: auto; +} +.sidePanelMargins { + margin-left: 8px; + margin-top: 2px; + margin-bottom: 8px; + width: auto; +} +.mainPanelLayout { + display: block; + position: absolute; + right: 0; + height: 100%; +} +.mainPanelLayoutAnimation { + -webkit-transition: left 0.5s ease; + -moz-transition: left 0.5s ease; + -o-transition: left 0.5s ease; + transition: left 0.5s ease; +} +.mainPanelVerticalLayout { + display: block; + position: absolute; + bottom: 0; + width: 100%; +} +.mainPanelVerticalLayoutAnimation { + -webkit-transition: top 0.5s ease; + -moz-transition: top 0.5s ease; + -o-transition: top 0.5s ease; + transition: top 0.5s ease; +} +.fixedToolbarHolder { + position: relative; + left: 0; + top: 0; + height: 100%; + width: 100%; + min-width:140px; + background:#3b4b54; +} +.sidebarWrapper { + overflow-x: auto; + overflow-y: hidden; + min-width: 0; +} +.sidebarWrapper > .sidebar { + position: relative; + left: 0; + top: 0; + height: calc(100% - 29px); + overflow-x: visible; +} +.projectNavSidebarWrapper > .sidebar { + height: calc(100% - 0px); +} +.workingTarget { + position: absolute; + top: 0; + width: 100%; + bottom: 0; + overflow-y: auto; + background:white; +} +.toolbarTarget { + position: absolute; + top: 50px; + width: 100%; + overflow-y: auto; +} +.toolbarTarget-toolbarHidden { + top: 0; +} +.pageLayoutTarget { + position: absolute; + width: calc( 100% - 60px ); + bottom: 0; + overflow-y: auto; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.33); + margin: 20px; + margin-right: 0; + padding-top: 10px; + padding-bottom: 5px; + background: white; +} +.hasSplit { + display: none; +} +.editorViewerFrame { + width: 100%; + height: 100%; +} +.editorViewerHeader { + display:flex; + background: #3B4B54; + color: white; + flex-direction:row; + align-items:center; + line-height:26px; + border-bottom: 1px solid #263238; +} +.editorViewerHeaderDirtyIndicator { + padding-left: 5px; +} +.editorViewerHeaderTitle { + padding-left: 5px; +} +.editorViewerContent { + position: absolute; + width: 100%; + top: 27px; + bottom: 0; + overflow: auto +} +.editorViewerPicInPic { + position: absolute; + border: 1px solid #ccc; + background-color: white; + z-index: 100; + bottom: 35px; + right: 35px; + width: 40%; + height: 40%; +} +.splitLayout { + position: absolute; + left: 33%; + height: 100%; + z-index: 51; + width: 3px; + cursor: e-resize; + visibility: hidden; +} +.splitVerticalLayout { + position: absolute; + top: 33%; + width: 100%; + z-index: 51; + height: 3px; + cursor: n-resize; + visibility: hidden; +} +@media only screen +and (min-device-width : 768px) +and (max-device-width : 1024px) { + + .splitLayout { + position: absolute; + left: 33%; + height: 100%; + z-index: 50; + width: 20px; + cursor: e-resize; + visibility: hidden; + } + + + .splitVerticalLayout { + position: absolute; + top: 33%; + width: 100%; + z-index: 50; + height: 20px; + cursor: n-resize; + visibility: hidden; + } + +} +.splitThumbLeftLayout { + position: absolute; + left: 100%; + height: 4em; + width: 4px; + top: calc(50% - 2em); + margin-left: -1px; + cursor: pointer; + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; +} +.splitThumbRightLayout { + position: absolute; + right: 100%; + height: 4em; + width: 4px; + top: calc(50% - 2em); + margin-right: -1px; + cursor: pointer; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; +} +.splitVerticalThumbUpLayout { + position: absolute; + top: 100%; + width: 4em; + height: 4px; + left: calc(50% - 2em); + margin-top: -1px; + cursor: pointer; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} +.splitVerticalThumbDownLayout { + position: absolute; + bottom: 100%; + width: 4em; + height: 4px; + left: calc(50% - 2em); + cursor: pointer; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +.splitLayoutAnimation { + -webkit-transition: left 0.5s ease; + -moz-transition: left 0.5s ease; + -o-transition: left 0.5s ease; + transition: left 0.5s ease; +} +.splitVerticalLayoutAnimation { + -webkit-transition: top 0.5s ease; + -moz-transition: top 0.5s ease; + -o-transition: top 0.5s ease; + transition: top 0.5s ease; +} +.panelTracking { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: auto; +} +.commandList { + padding: 0; + margin-left: 0; + margin-right: 0; + list-style-type: none; + vertical-align: baseline; +} +.commandList > li { + float: left; + margin-left: 4px; + margin-right: 4px; +} +.commandMargins { + margin-left: 4px !important; + margin-right: 4px !important; +} +.commandMargins:last-child { + margin-right: 0 !important; +} +.sideMenu{ + width: 50px; + background: #26343F; + float: left; + position: absolute; + top: 0; + + bottom: 0; + -webkit-animation: slide 0.5s forwards; + -webkit-animation-delay: 2s; + animation: slide 0.5s forwards; + animation-delay: 2s; + display:block; + margin:0; + font-family: sans-serif; + font-size:10px; + text-decoration:none !important; + user-select: none; + -webkit-user-select: none; + -moz-user-select: -moz-none; +} +.sideMenu.animating { + z-index: 0; +} +.sideMenu-maximized { + top: 0; + bottom: 0; +} +.sideMenu-closed { + width: 0; + display: none; +} +.sideMenuHome{ + width: 100%; + height: 50px; +} +.sideMenuList{ + display:inline-block !important; + height: calc(100% - 64px); + margin: 0; + overflow-y: hidden; + padding: 0; + text-align: center; + width: 100%; +} +.sideMenuItem{ + list-style-type: none; + font-size:16px !important; + padding: 0; + margin: 3px; +} +.sideMenuItem:hover, .sideMenuItem.expanded { + text-decoration:none; + color:#F47D64 !important; +} +.sideMenu:hover > .sideMenuScrollButton { + opacity: 1; +} +.sideMenuScrollButton { + background-color: rgba(0,0,0,0.5) !important; + color: white !important; + cursor: pointer; + display: none; + height: 19px; + opacity: 0.5; + position: absolute; + width: 100%; + z-index: 100; +} +.sideMenuScrollButton.visible { + display: block; +} +.sideMenuTopScrollButton { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +.sideMenuBottomScrollButton { + bottom: 0; + left: 0; +} +.sideMenuItem > .submenu-trigger { + color: #6D8B93 !important; + font-size:16px; + text-decoration:none !important; + width: 100%; + display: inline-block; + padding: 9px 0px 12px 0px; +} +.sideMenuItem>.submenu-trigger:hover, .sideMenuItem.expanded>.submenu-trigger{ + text-decoration:none; + color:white !important; +} +.sideMenuItemActive { +} +.sideMenuItemActive > .submenu-trigger { + color: white !important; +} +.sideMenuToggle { + display: none; +} +.sideMenu-notification { + position: relative; +} +.sideMenu-notification[level=info] { + background-image: radial-gradient(#1EB3DC, #1EB3DC 2px, transparent 3px); + background-size: 6px 6px; + background-repeat: no-repeat; + background-position: 30px 29px; +} +.sideMenu-notification[level=warn] { + background-image: radial-gradient(#FFFF66, #FFFF66 2px, transparent 3px); + background-size: 6px 6px; + background-repeat: no-repeat; + background-position: 30px 29px; +} +.sideMenu-notification[level=error] { + background-image: radial-gradient(#FF0000, #FF0000 2px, transparent 3px); + background-size: 6px 6px; + background-repeat: no-repeat; + background-position: 30px 29px; +} +.sideMenuSubMenu{ + display: none; + list-style-type:none; + position:absolute; + font-family:sans-serif; + padding-left: 0; + z-index:100; + text-align: left; + left: 40px; +} +.sideMenuSubMenuItem{ + display: inline-block; + width: 100%; + white-space: nowrap; + font-size: 12px; + background: white; + border-right:1px solid #ddd; +} +.sideMenuSubMenuItem:before { + width: 0; + height: 0; + top: 13px; + content: ""; + left: -8px; + position: absolute; + z-index: 200; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-right: 8px solid white; +} +.sideMenuSubMenuItem:first-child{ + border-top:1px solid #ddd; + border-top-right-radius: 4px; +} +.sideMenuSubMenuItem:last-child{ + border-bottom:1px solid #ddd; + border-bottom-right-radius: 4px; +} +.sideMenuSubMenuItem a { + display: inline-block; + color: #444; + padding: 12px 30px 12px 10px; + width: calc(100% - 30px - 10px + 8px); +} +.sideMenuSubMenuItem a:hover{ + text-decoration:none; + color: black !important; +} + +.sideMenuSubMenuItem:hover { + background-color: #fde7cf; +} +.sideMenuSubMenuItem:only-child:hover { + +} +.sideMenuSubMenuItem:only-child:hover a { + color: #333; +} +.sideMenuSubMenuItem a span { + display: inline-block; +} +.sideMenuItem:hover .sideMenuSubMenu, .sideMenuSubMenu.expanded { + display:inline-block; +} +.sidebar-decorate-active { + position: relative; + background: + radial-gradient(#1EB3DC, #1EB3DC 2px, #47575F 3px) no-repeat, + #47575F; + background-position: + 30px 29px, + 0 0; + background-size: + 8px 8px; +} +.mainContent{ + position:absolute; + left:50px; +} +.innerPanels{ + position:absolute; + width:100%; + top:50px; + bottom:0; +} +.userMenu { +} +.splash { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgb(57,75,84); + z-index: 149; + display: block; + box-shadow: 0 3px 7pt 0 rgba(0,0,0,0.3) inset; +} +.splashSeeThroughX { + -webkit-animation-name: splashSeeThrough; + animation-name: splashSeeThrough; + animation-duration: 0.7s; + background-color: rgba(38,52,63, 0.7); +} +@-webkit-keyframes splashSeeThrough { + from {background-color: rgb(38,52,63);} + to {background-color: rgba(38,52,63, 0.7);} +} +@keyframes splashSeeThrough { + from {background-color: rgb(38,52,63);} + to {background-color: rgba(38,52,63, 0.7);} +} +.splashContainer { + display: flex; + display: -webkit-flex; + align-items: center; + -webkit-align-items: center; + justify-content: center; + -webkit-justify-content: center; + height:100%; + flex-direction: column; + -webkit-flex-direction: column; + font-family: sans-serif; + font-size: 14px; +} +.splashLoader { + display: flex; + display: -webkit-flex; + height:300px; + width:400px; + flex-direction: column; + -webkit-flex-direction: column; + align-items: center; + -webkit-align-items: center; + background-color: rgb(57,75,84); + padding: 20px; + padding-top: 60px; + padding-bottom: 0px; + border-radius: 4px; + Xbox-shadow: 5px 5px 5px 0 rgba(0,0,0,0.2); + Xborder-bottom: 1px solid rgb(59,222,255); +} +.splashAbout { + text-align: center; + color: #FFFFFF; + font-size:16px; + font-family: 'helvetica'; + font-weight: bold; + margin-bottom: 10px; +} +.splashSteps { + margin:20px; + max-width: 300px; +} +.splashStep { + display: flex; + display: -webkit-flex; + flex-direction: row; + -webkit-flex-direction: row; + padding-top: 10px; + padding-bottom:10px; + height:24px; +} +.splashMessage { + color: white; + font-size: 12px; +} +.splashDetailedMessage { + color: white; + font-size: 12px; +} +.splashVisual { + width: 24px; +} +.splashVerbal { + margin-left:20px; + color: #3BDEFF; + font-family: 'helvetica'; + font-weight: bold; + margin-top: 3px; +} +.splashVerbalwaiting { + color:grey; +} +.splashLoadingImage { + background: url(../../images/loading_24.gif) no-repeat top left; + vertical-align: middle; + display: inline-block; + border: none; + height:24px; + width:24px; +} +.splashSuccessImage { + background: url(../../images/message_success_24.png) no-repeat top left; + vertical-align: middle; + display: inline-block; + border: none; + height:24px; + width:24px; +} +.orionPage { + background-color: #26343F; + width: 100%; + height: 100%; +} +.topRowBanner { + margin: 0; + border: 0; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + border-top-width: 0px; + border-right-width: 0px; + border-left-width: 0px; + border-bottom-style: none; + background-color: white; + height: 16px; + padding: 8px 2px 7px 6px !important; + box-shadow: rgba(0, 0, 0, 0.0980392) 0px 2px 2px 0px, rgba(0, 0, 0, 0.0980392) 0px 1px 0px 0px; + z-index: 100; + display: none; +} +a { + text-decoration: none; + color: #00AED1; +} +a:hover { + cursor: pointer; + text-decoration: underline; +} +.primaryNav { + font-size: 8pt; + font-weight: normal; + color: #BFBFBF; + vertical-align: baseline; +} +.primaryNav > div { + padding-top: 6px; +} +.primaryNav > nav { + padding-top: 6px; +} +.primaryNav > nav > a { + color: #BFBFBF; + margin-right: 6px; + margin-left: 6px; + text-decoration: none; +} +.primaryNav > nav > a:hover, .primaryNav span.dropdownTrigger:hover { + cursor: pointer; + color: white; +} +.titleArea { + margin: 0; + padding-top: 3px; + border: 0; + background: #EFEFEF; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#EFEFEF), color-stop(100%,#EFEFEF)); + border-bottom: 1px solid #DEDEDE; + min-height: 20px; +} +.checkedRow { + color: white !important; + background-color: #1bb199 !important; +} +.checkedRow.disabledRow { + background-color: #dadada !important; +} +.checkedRow > td > span +{ + color:white !important; +} +.checkedRow > td > span > a +{ + color:white !important; +} +.checkedRow > td > span > span +{ + color:white !important; +} +.checkedRow > td > span > a > span +{ + color:white !important; +} +.checkedRow > td > a > span > span +{ + color:white !important; +} +.checkedRow .secondaryColumn { + color: white; +} +.checkedRow .navColumnNoIcon { + color: white; +} +.checkedRow .secondaryColumn > a:hover { + color: white !important; + font-weight:bold; + text-decoration: none; +} +.checkedRow .sectionTableItem { + color: white !important; +} +.checkedRow a { + color: white; +} +.checkedRow .jazz-description { + color: white; +} +.checkedRow .commandButton { + color: white; + border-color: white; +} +.checkedRow .commandImage { + color: white; +} +.navRow > td:first-child { + +} +.navRow.checkedRow > td:first-child { + border-left-color: #d57152; +} +.navbar-item-selected { + color: #FFFFFF !important; + font-weight: bold; + position: relative; + background: #1bb199 !important; +} +.breadcrumbContainer { + align-items: baseline; + display: inline-flex; + justify-content: center; + + -webkit-align-items: baseline; + display: -webkit-inline-flex; + -webkit-justify-content: center; + + margin-right: 0; + overflow: hidden; + visibility: visible; + width: 100%; +} +.breadcrumb { + color: #E6E6E6; + -webkit-flex-grow: 0; + flex-grow: 0; + font: 9pt; + font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", + Helvetica, Tahoma, Geneva, Arial, "Lucida Grande", sans-serif; + overflow: hidden; + text-decoration: none; + text-overflow: ellipsis; +} +a.breadcrumb:hover { + text-decoration: none; + border-bottom: 1px dotted; + color: #00AED1; + cursor: pointer; +} +.breadcrumbSeparator { + color: #E6E6E6; + font-size: 9pt; + font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", + Helvetica, Tahoma, Geneva, Arial, "Lucida Grande", sans-serif; + font-weight: bold; + -webkit-flex-shrink: 0; + flex-shrink: 0; + margin: 2px; + text-decoration: none; +} +.currentLocation { + padding-top:1px; + font-weight: bold; + font-size: 9pt; + font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", + Helvetica, Tahoma, Geneva, Arial, "Lucida Grande", sans-serif; + color: #E6E6E6; + text-decoration: none; + line-height: 10pt; + white-space:nowrap; +} +div.currentLocation { + width: 100%; +} +.breadcrumbContainer > .currentLocation { + margin: 0; +} +a.currentLocation:hover { + font-weight: bold; + color: #00AED1; + text-decoration: none; + border-bottom: 1px dotted; +} +a.breadcrumb.currentLocation { + font-weight: bold; + margin: 0; +} +.tooltipContainer .currentLocation { + color: white; +} +.tooltipContainer .breadcrumb { + color: white; +} +.tooltipContainer .breadcrumbSeparator { + color: white; +} +.tooltipContainer a.currentLocation:hover { + color: white; +} +.tooltipContainer a.breadcrumb:hover { + color: white; +} +.auxpane { + border: 0; + background: #3B4B54; + color: white; +} +.mainpane { + border: 0; + background: #3B4B54 !important; + padding-right:20px; +} +.mainToolbar { + color: white; + background: #26343f; + padding-left: 2px; + padding-right: 5px; + white-space: nowrap; +} +.fsToolbar { + padding: 2px 4px 2px 4px; + background-color: #DFE6EB; + + +} +.filesystemName { + display: inline-block; + font-weight: normal; + margin-left: 10px; + margin-top: 8px; + margin-bottom: 8px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + max-width: calc(100% - 6px - 4px - 24px); + max-width: -webkit-calc(100% - 6px - 4px - 24px); + -moz-user-select: -moz-none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + color: white; +} +.filesystemSwitcher { + display: inline-block; + margin: 0; +} +.filesystemSwitcherWrapper { + display: block; + max-width: 100%; + white-space: nowrap; +} +.sidebarToolbar { + display: inline; + overflow: visible; + padding: 0 !important; +} +.searchbox { + background-image: url(../../images/core_sprites.png); + background-repeat: no-repeat; + background-position: 4px -297px; + width: 12px; height: 12px; + background-color: #444; + border: 1px solid #222; + font-size: 11px; + width: 15em; + height: 16px; + border-radius: 10px; + color: #999; + padding: 0; + padding-left: 20px; + padding-right: 16px; + margin-left: 5px; + font-size: 7pt; +} +.searchbox:focus{ + color: white; + outline: none; +} + +.orionButton { + border: 1px solid transparent; + text-align: center; + vertical-align: baseline; + display: inline-block; + padding: 4px 6px; + border-radius: 1px; + line-height: 12px; + font-size: 9pt; + font-family: "HelveticaNeue", "Helvetica Neue", "HelveticaNeueRoman", "HelveticaNeue-Roman", "Helvetica Neue Roman", + 'TeXGyreHerosRegular', "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + margin: 0; +} +.commandButton.orionButton.dropdownTrigger { + +} +.commandButton.orionButton.dropdownTrigger:hover { + border-color: #ccc; +} +.mainToolbar .commandButton.orionButton.dropdownTrigger { + color:white; +} +.commandButton { + color: #00AED1; + border: 1px solid #00AED1; + background-color: rgba(0, 0, 0, 0); + + vertical-align: middle; + -webkit-transition: color 0.2s ease; + transition: color 0.2s ease; +} +.commandButton:not(.dropdownTrigger) { + +} +.extraActions .commandButton { + text-transform: uppercase; +} +.commandButton.dropdownDefaultButton { + +} +.commandButton:not(.primaryButton):hover, .commandButton:not(.primaryButton):focus { + color: white; + background-color: #a5b5bc; + box-shadow: 0 1px 2px 0 rgba(0,0,0,0.2); +} +.commandButton.disabled { + color: #cdcdcd; +} +.primaryButton{ + background: #1bb199; + border-color: #1bb199; + color: white; +} +.primaryButton:hover, .primaryButton:focus { + background: #01CDB0; + border-color: #01CDB0; +} +.commandImage { + border: 1px solid transparent; + border-radius: 1px; + color: inherit; + background-color: transparent; + vertical-align: baseline; + cursor: pointer; + display: inline-block; + padding: 2px; + padding-top: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.commandImage:hover, .commandImage:focus { + background-color: #a5b5bc; + border: 1px solid #ccc; +} +.mainToolbar .commandImage.dropdownTrigger { + color: white; +} +.orionToggleOff { + color: inherit; + border-radius: 3px; + vertical-align:middle; + -webkit-animation-duration: .2s; + animation-duration: .2s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; +} +.orionToggleOn { + color: inherit; + background-color: whitesmoke; + border-radius: 3px; + box-shadow: inset 1px 1px 2px 1px rgba(0,0,0,0.3); + vertical-align:middle; + -webkit-animation-duration: .2s; + animation-duration: .2s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; +} +.orionToggleOn:hover { + background: white; + box-shadow: inset 0 0 1px 1px rgba(0,0,0,0.2); +} +.orionToggleOff:hover { + background: whitesmoke; + box-shadow: inset 0 0 1px 1px rgba(0,0,0,0.2); +} +.orionToggleAnimate { + -webkit-animation-name: pulse; + animation-name: pulse; +} +@-webkit-keyframes pulse { + 0% { -webkit-transform: scale(1); } + 50% { -webkit-transform: scale(1.3); } + 100% { -webkit-transform: scale(1); } +} +@keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.3); } + 100% { transform: scale(1); } +} +.orionSwitch { + position: relative; + width: auto; +} +.orionSwitchCheck { + display: none; +} +.orionSwitchLabel { + display: block; + overflow: hidden; + cursor: pointer; + border: 1px solid #DFE6EB; + border-radius: 3px; + height: 20px; +} +.orionSwitchInner { + display: block; + width: 200%; + margin-left: -100%; + margin-top:-1px; + text-align: left; + -moz-transition: margin 0.2s ease-in 0s; + -webkit-transition: margin 0.2s ease-in 0s; + -o-transition: margin 0.2s ease-in 0s; + transition: margin 0.2s ease-in 0s; +} +.orionSwitchInner:before, .orionSwitchInner:after { + display: block; + float: left; + width: 50%; + padding: 0; + padding-bottom: 2px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.orionSwitchInner:before { + padding-left: 3px; + padding-right: 2px; + background-color: #FFF; + color: #808080; +} +.orionSwitchInner:after { + padding-right: 3px; + background-color: #eee; + color: #808080; + text-align: right; +} +.orionSwitchSwitch { + display: block; + width: calc(50% - 2px); + margin: 0; + background: #DFE6EB; + border: 1px solid #DFE6EB; + border-radius: 3px; + position: absolute; + top: 0; + bottom: 0; + right: calc(50% + 2px); + -moz-transition: all 0.2s ease-in 0s; + -webkit-transition: all 0.2s ease-in 0s; + -o-transition: all 0.2s ease-in 0s; + transition: all 0.2s ease-in 0s; +} +.orionSwitchCheck:checked + .orionSwitchLabel .orionSwitchInner { + margin-left: 0; +} +.orionSwitchCheck:checked + .orionSwitchLabel .orionSwitchSwitch { + right: 0px; +} +.commandMissingImageButton { + font-weight: normal; +} +.commandLink { + display: inline-block; + vertical-align: middle; + padding: 4px 0 1px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.commandSeparator { + padding: 2px; +} +.commandActive { + background-color: #e6e6e6 !important; + border: 1px solid #808080 !important; + border-radius: 2px !important; +} +.commandActiveItem { +} +.commandInactiveItem { +} +.split { + background: #3B4B54; +} +.splitTracking { + background: #3B4B54; +} +.splitThumb { + background: #3B4B54; +} +.dropdown { +} +.dropdownArrowDown { + display: inline-block; + vertical-align: top; + line-height: 12px; + text-transform: lowercase; +} +.dropdownArrowRight { + flex-grow: 0; + -webkit-flex-grow: 0; + font-size: 12px; +} +.dropdownTrigger:not(.dropdownDefaultButton) { + font-weight: normal; + color: #FFFFFF; + border-color: transparent; +} +.dropdownTrigger a { + text-decoration: none; +} +.dropdownMenu { + box-shadow: 2px 2px 5px 3px rgba(0, 0, 0, .2); + color: #3b4b54; + background-color: white; + border-collapse: separate; + border: 1px solid #bbbbbb; + border-radius: 1px; + visibility: hidden; + z-index: 150; + position: absolute; + list-style-type: none; + display: none; + line-height: normal; + margin: 0; + cursor: default; + font-size: 12px; + margin: 0; + outline: none; + padding: 3px 0 3px; +} +.dropdownMenuOpen { + min-width: 120px; + display: block; + visibility: visible; +} +.dropdownSubMenu { + position: relative; + line-height: normal; +} +.dropdownSubMenu > ul { + top: 0; + left: 100%; +} +.dropdownMenu > li { + min-width: 120px; + display: flex; + display: -webkit-flex; +} +.dropdownMenu > li > a, .dropdownMenu > li > span { + width: calc( 100% - 9px ); + margin: 0; +} +.dropdownMenu > li > *:focus { + outline: none; +} +.dropdownSeparator { + height: 1px; + background-color: #ddd; + color: #ddd; + padding: 0 !important; + margin: 0; +} +.dropdownMenuItem, .dropdownMenuItem a { + align-items: center; + -webkit-align-items: center; + align-content: stretch; + -webkit-align-content: stretch; + display: inline-flex; + display: -webkit-inline-flex; + vertical-align: middle; + color: #3b4b54 !important; + padding: 3px 3px 3px 5px; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + white-space: nowrap; + border-left: 4px solid transparent; +} +.dropdownMenu .dropdownMenuItemSelected { + background-color: rgba(27,177,153, 0.1); + border-left-color: #1BB199; +} +.dropdownMenuItem .check { + display: inline-block; + width: 12px; +} +.dropdownMenuItem .dropdownKeyBinding { + color: grey !important; + flex-grow: 0; + -webkit-flex-grow: 0; + font-size: 11px; + padding-left: 15px; + padding-right: 10px; +} +.dropdownMenuItem .dropdownCommandName { + -webkit-align-items: center; + align-items: center; + display: inline-flex; + display: -webkit-inline-flex; + + flex-grow: 1; + -webkit-flex-grow: 1; + text-decoration: inherit; +} +.dropdownSelection { + background-color: white !important; + color: #3b4b54 !important; + border: 1px solid #bbbbbb !important; + border-bottom: none !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; + box-shadow: -1px -1px 2px 0 rgba(0, 0, 0, .2) !important; + margin-bottom: -1px !important; + position: relative !important; + z-index: 200 !important; +} +.checkedMenuItem { + margin: 4px 6px 2px 0; + vertical-align: bottom; +} +.tooltipContainer { + display: none; + z-index: 200; + background: transparent; + position: absolute; + max-width: 110em; +} +.tooltip .textContent { + max-width: 40em; +} +.tooltip { + color: white; + background-color: #158d7a; + border-radius: 3px; + padding: 8px; + clear: both; + float: left; + border: 1px solid #158d7a; + box-shadow: 0px 0px 10pt -2pt rgba(0, 0, 0, 0.5); +} +.tooltip.left { +} +.tooltip .navlinkonpage { + color: #00aed1 !important; +} +.tooltip h2 { + color: #3b4b54; +} +.tooltip .operationStatus { + color: #00aed1; +} +.tooltip .operationError { + color: #a6b5bc; +} +.tooltipTailFromleft { + position: absolute; + display: inline-block; + top: 14px; + content: ''; + z-index: 201; +} +.tooltipTailFromleft:after, .tooltipTailFromleft:before { + left: -1px; + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.tooltipTailFromleft:after { + border-color: transparent; + border-left-color: #158d7a; + border-width: 8px; + margin-top: -8px; +} +.tooltipTailFromleft:before { + border-color: transparent; + border-left-color: #158d7a; + border-width: 9px; + margin-top: -9px; +} +.tooltipTailBorderFromleft { + position: absolute; + display: inline-block; + border: 10px solid; + border-color: transparent transparent transparent #158d7a; + top: 2px; + right: -17px; + content: ''; +} +.tooltipTailFromright { + position: absolute; + display: inline-block; + left: 0; + top: 14px; + content: ''; + z-index: 201; +} +.tooltipTailFromright:after, .tooltipTailFromright:before { + right: -1px; + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.tooltipTailFromright:after { + border-color: transparent; + border-right-color: #158d7a; + border-width: 8px; + margin-top: -8px; +} +.tooltipTailFromright:before { + border-color: transparent; + border-right-color: #158d7a; + border-width: 9px; + margin-top: -9px; +} +.tooltipTailBorderFromright { + position: absolute; + display: inline-block; + border: 10px solid; + border-color: transparent #158d7a transparent transparent; + left: -17px; + top: 2px; + content: ''; +} +.tooltipTailFrombelow { + position: absolute; + display: block; + left: 16px; + top: 0; + content: ''; + z-index: 201; +} +.tooltipTailFrombelow:after, .tooltipTailFrombelow:before { + bottom: -1px; + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.tooltipTailFrombelow:after { + border-color: transparent; + border-bottom-color: #158d7a; + border-width: 8px; + margin-left: -8px; +} +.tooltipTailFrombelow:before { + border-color: transparent; + border-bottom-color: #158d7a; + border-width: 9px; + margin-left: -9px; +} +.tooltipTailBorderFrombelow { + position: absolute; + display: block; + border: 10px solid; + border-color: transparent transparent #158d7a transparent; + left: 14px; + top: -17px; + content: ''; +} +.tooltipTailFromabove { + position: absolute; + display: block; + left: 16px; + content: ''; + bottom: 0; + z-index: 201; +} +.tooltipTailFromabove:after, .tooltipTailFromabove:before { + top: -1px; + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.tooltipTailFromabove:after { + border-color: transparent; + border-top-color: #158d7a; + border-width: 8px; + margin-left: -8px; +} +.tooltipTailFromabove:before { + border-color: transparent; + border-top-color: #158d7a; + border-width: 9px; + margin-left: -9px; +} +.tooltipTailBorderFromabove { + position: absolute; + display: block; + border: 10px solid; + border-color: #158d7a transparent transparent transparent; + left: 14px; + bottom: -17px; + content: ''; +} +.tooltipShowing { + display: block; +} +.tooltip > .parametersDismiss > .dismissButton { + color: whitesmoke; +} +.tooltip > .parametersDismiss > .dismissButton:hover { + color: white; +} +.dialog { + visibility: hidden; + z-index: 175; + position: absolute; + background-color: #fbfbfb; + border-radius: 2px; + border: 1px solid #BBB; + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + padding-bottom:5px; +} +.dialogShowing { + visibility: visible; +} +.dialogTitle { + display: block; +} +.dialogTitle { + padding-top: 5px; + display: inline-block; + background: #555; + width: 100%; + padding-bottom: 5px; + border-top-left-radius: 1px; + border-top-right-radius: 1px; +} +.dialogTitle > .dismissButton { + margin-right: 0; +} +.dialogTitleText { + margin: 2px 2px 0; + color: whitesmoke; + font-size: 1em; + height: 18px; + padding-left: 4px; + font-weight: bold; +} +.dialogDismiss { + display: block; + cursor: pointer; + padding: 2px; +} +.dialogContent { + padding: 8px; +} +.parameterPopup .dismissButton, .dialogTitle .dismissButton { + color: rgb(221, 221, 221); + cursor: pointer; +} +.parameterPopup .dismissButton:hover, .dialogTitle .dismissButton:hover { + color: white; +} +.dialogButtons { + -webkit-align-items: center; + align-items: center; + + display: -webkit-flex; + display: flex; + + -webkit-justify-content: center; + justify-content: center; + margin: 2px 4px 4px 4px; +} +.dialogButtons > button.commandButton { + min-width: 60px; +} +.confirmDialog { + min-width: 300px; + max-width: 450px; +} +.confirmDialog .checkboxWrapper { + margin: 10px 2px 5px 2px; +} +.checkboxMessage > .confirmDialogCheckbox { + margin: 0 5px 0 0; + outline: none; + vertical-align: top; +} +.modalBackdrop { + opacity: 0.5; + -webkit-transition: opacity 0.2s ease-in; + transition: opacity 0.2s ease-in; +} +.textviewTooltip { + background-color: #158d7a; +} +.textviewTooltip .commandButton { + border-color: white; + color: white; + margin-bottom: 2px; +} +.core-sprite-git-logo { + font-size: 20px !important; +} +.outlineExplorer .navlinkonpage { + color: #333 !important; +} +.outlineExplorer .treeIterationCursorRow_Dotted { + background-color: #1BB199; +} +.outlineExplorer .treeIterationCursorRow_Dotted .modelDecorationSprite { + color: white; +} +.outlineExplorer .treeIterationCursorRow_Dotted .navlinkonpage { + color: white !important; +} +.contentassist .selected { + background-color: #1BB199 !important; + background: #1BB199 !important; + border-radius: 0; + color: #FFF; +} diff --git a/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/javascript/plugins/javascriptPlugin.html b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/javascript/plugins/javascriptPlugin.html new file mode 100644 index 000000000..6284564b4 --- /dev/null +++ b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/javascript/plugins/javascriptPlugin.html @@ -0,0 +1,11 @@ + + + + + Orion JavaScript Support + + + +

    JavaScript Tools Support

    + + \ No newline at end of file diff --git a/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/javascript/plugins/javascriptPlugin.js b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/javascript/plugins/javascriptPlugin.js new file mode 100644 index 000000000..9641a3fd9 --- /dev/null +++ b/plugin-orion/che-plugin-orion-editor/src/main/resources/org/eclipse/che/ide/editor/orion/public/orion-10.0/javascript/plugins/javascriptPlugin.js @@ -0,0 +1,11 @@ +!function(e,t){"function"==typeof define&&define.amd?define([],t):(e.orion=e.orion||{},e.orion.webtools=e.orion.webtools||{},e.orion.webtools.javascript=t())}(this,function(){var e,t,n;return function(r){function i(e,t){return x.call(e,t)}function o(e,t){var n,r,i,o,a,s,l,c,u,p,f=t&&t.split("/"),d=y.map,h=d&&d["*"]||{};if(e&&"."===e.charAt(0))if(t){for(f=f.slice(0,f.length-1),e=f.concat(e.split("/")),c=0;c0&&(e.splice(c-1,2),c-=2)}e=e.join("/")}else 0===e.indexOf("./")&&(e=e.substring(2));if((f||h)&&d){for(n=e.split("/"),c=n.length;c>0;c-=1){if(r=n.slice(0,c).join("/"),f)for(u=f.length;u>0;u-=1)if(i=d[f.slice(0,u).join("/")],i&&(i=i[r])){o=i,a=c;break}if(o)break;!s&&h&&h[r]&&(s=h[r],l=c)}!o&&s&&(o=s,a=l),o&&(n.splice(0,a,o),e=n.join("/"))}return e}function a(e,t){return function(){return d.apply(r,S.call(arguments,0).concat([e,t]))}}function s(e){return function(t){return o(t,e)}}function l(e){return function(t){g[e]=t}}function c(e){if(i(v,e)){var t=v[e];delete v[e],b[e]=!0,f.apply(r,t)}if(!i(g,e)&&!i(b,e))throw new Error("No "+e);return g[e]}function u(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function p(e){return function(){return y&&y.config&&y.config[e]||{}}}var f,d,h,m,g={},v={},y={},b={},x=Object.prototype.hasOwnProperty,S=[].slice;h=function(e,t){var n,r=u(e),i=r[0];return e=r[1],i&&(i=o(i,t),n=c(i)),i?e=n&&n.normalize?n.normalize(e,s(t)):o(e,t):(e=o(e,t),r=u(e),i=r[0],e=r[1],i&&(n=c(i))),{f:i?i+"!"+e:e,n:e,pr:i,p:n}},m={require:function(e){return a(e)},exports:function(e){var t=g[e];return"undefined"!=typeof t?t:g[e]={}},module:function(e){return{id:e,uri:"",exports:g[e],config:p(e)}}},f=function(e,t,n,o){var s,u,p,f,d,y,x=[];if(o=o||e,"function"==typeof n){for(t=!t.length&&n.length?["require","exports","module"]:t,d=0;d-1&&r[e];e--)o=r[e],n=t[o],(n===!0||1===n)&&(n=a(d+o+"/"+m)),i(y,n);s(y)})})}}})}(),n("orion/navigate/nls/messages",{root:!0}),n("orion/navigate/nls/root/messages",{Navigator:"Navigator","Strings Xtrnalizr":"Strings Xtrnalizr","Externalize strings":"Externalize strings from JavaScript files in this folder.",NotSupportFileSystem:"${0} is not supported in this file system",SrcNotSupportBinRead:"Source file service does not support binary read",TargetNotSupportBinWrite:"Target file service does not support binary write",NoFileSrv:"No matching file service for location: ${0}","Choose a Folder":"Choose a Folder","Copy of ${0}":"Copy of ${0}",EnterName:"Enter a new name for '${0}'",ChooseFolder:"Choose folder...",Rename:"Rename",RenameFilesFolders:"Rename the selected files or folders",CompareEach:"Compare with each other","Compare 2 files":"Compare the selected 2 files with each other","Compare with...":"Compare With...",CompareFolders:"Compare the selected folder with a specified folder",Delete:"Delete","Unknown item":"Unknown item","delete item msg":"Are you sure you want to delete these ${0} items?",DeleteTrg:"Are you sure you want to delete '${0}'?",Zip:"Zip",ZipDL:"Create a zip file of the folder contents and download it","New File":"File","Create a new file":"Create a new file",FailedToCreateProject:"Failed to create project: ${0}",FailedToCreateFile:"Failed to create file: ${0}",CopyFailed:"Copy operation failed",MoveFailed:"Move operation failed","Name:":"Name:","New Folder":"Folder","Folder name:":"Folder name:","Create a new folder":"Create a new folder","Creating folder":"Creating folder",Folder:"Folder","Create an empty folder":"Create an empty folder",CreateEmptyMsg:"Create an empty folder on the Orion server. You can import, upload, or create content in the editor.","Sample HTML5 Site":"Sample HTML5 Site","Generate a sample":"Generate a sample",'Generate an HTML5 "Hello World" website, including JavaScript, HTML, and CSS files.':'Generate an HTML5 "Hello World" website, including JavaScript, HTML, and CSS files.',"Creating a folder for ${0}":"Creating a folder for ${0}","SFTP Import":"SFTP Import","Import content from SFTP":"Import content from SFTP","Imported Content":"Imported Content","Upload a Zip":"Upload a Zip","Upload content from a local zip file":"Upload content from a local zip file","Uploaded Content":"Uploaded Content","Clone Git Repository":"Clone Git Repository","Clone a git repository":"Clone a git repository","Link to Server":"Link to Server",LinkContent:"Link to existing content on the server",CreateLinkedFolder:"Create a folder that links to an existing folder on the server.","Server path:":"Server path:",NameLocationNotClear:"The name and server location were not specified.","Go Up":"Go Up",GoUpToParent:"Move up to the parent folder","Go Into":"Go Into",GoSelectedFolder:"Move into the selected folder","File or zip archive":"File or Zip Archive",ImportLcFile:"Import a file or zip archive from your local file system","SFTP from...":"SFTP",CpyFrmSftp:"Copy files and folders from a specified SFTP connection","Importing from ${0}":"Importing from ${0}","SFTP to...":"SFTP",CpyToSftp:"Copy files and folders to a specified SFTP location",Exporting:"Exporting to ${0}","Pasting ${0}":"Pasting ${0}","Copy to":"Copy to","Move to":"Move to","Copying ${0}":"Copying ${0}","Moving ${0}":"Moving ${0}","Renaming ${0}":"Renaming ${0}","Deleting ${0}":"Deleting ${0}","Creating ${0}":"Creating ${0}","Linking to ${0}":"Linking to ${0}",MvToLocation:"Move files and folders to a new location",Cut:"Cut",Copy:"Copy","Fetching children of ":"Fetching children of ",Paste:"Paste","Open With":"Open With","Loading ":"Loading ",New:"New",File:"File",Actions:"Actions","Orion Content":"Orion Content","Create new content":"Create new content","Import from HTTP...":"HTTP","File URL:":"File URL:",ImportURL:"Import a file from a URL and optionally unzip it","Unzip *.zip files:":"Unzip *.zip files:","Extracted from:":"Extracted from:",FolderDropNotSupported:"Did not drop ${0}. Folder drop is not supported in this browser.",CreateFolderErr:"You cannot copy files directly into the workspace. Create a folder first.","Unzip ${0}?":"Unzip ${0}?","Upload progress: ":"Upload progress: ","Uploading ":"Uploading ","Cancel upload":"Cancel upload",UploadingFileErr:"Uploading the following file failed: ","Enter project name:":"Enter project name:","Create new project":"Create new project","Creating project ${0}":"Creating project ${0}",NoFile:"Use the ${0} menu to create new files and folders. Click a file to start coding.",Download:"Download",Download_tooltips:"Download the file contents as the displayed name","Downloading...":"Reading file contents...","Download not supported":"Contents download is not supported in this browser.",gettingContentFrom:"Getting content from ",confirmLaunchDelete:'Delete Launch Configuration "${0}" ?',deletingLaunchConfiguration:"Deleting launch configuration...",deployTo:"Deploy to ",deploy:"Deploy ",connect:"Connect",fetchContent:"Fetch content",fetchContentOf:"Fetch content of ",disconnectFromProject:"Disconnect from project",doNotTreatThisFolder:"Do not treat this folder as a part of the project",checkStatus:"Check status",checkApplicationStatus:"Check application status",checkApplicationState:"Check application state",stop:"Stop",start:"Start",stopApplication:"Stop the App",startApplication:"Start the application",manage:"Manage",manageThisApplicationOnRemote:"Manage this application on remote server",deleteLaunchConfiguration:"Delete this launch configuration",editLaunchConfiguration:"Edit this launch configuration",deployThisApplication:"Deploy the App from the Workspace",associatedFolder:"Associated Folder",associateAFolderFromThe:"Associate a folder from the workspace with this project.",convertToProject:"Convert to project",convertThisFolderIntoA:"Convert this folder into a project",thisFolderIsAProject:"This folder is a project already.",basic:"Basic","createAnEmptyProject.":"Create an empty project.",sFTP:"SFTP",createAProjectFromAn:"Create a project from an SFTP site.",readMeCommandName:"Readme File",readMeCommandTooltip:"Create a README.md file in this project",zipArchiveCommandName:"Zip Archive",zipArchiveCommandTooltip:"Create a project from a local zip archive.","Url:":"Url:",notZip:"The following files are not zip files: ${0}. Would you like to continue the import?",notZipMultiple:"There are multiple non-zip files being uploaded. Would you like to continue the import?",Cancel:"Cancel",Ok:"Ok",missingCredentials:"Enter the ${0} authentication credentials associated with ${1} to check its status.",deploying:"deploying",starting:"restarting",stopping:"stopping",checkingStateShortMessage:"checking status"}),n("orion/i18nUtil",[],function(){function e(e){var t=/\$\{([^\}]+)\}/g,n=arguments;return 2===n.length&&n[1]&&"object"==typeof n[1]?e.replace(t,function(e,t){return n[1][t]}):e.replace(t,function(e,t){return n[(t<<0)+1]})}return{formatMessage:e}}),n("orion/fileClient",["i18n!orion/navigate/nls/messages","orion/Deferred","orion/i18nUtil"],function(e,t,n){function r(t,r,i){if(!t[r])throw new Error(n.formatMessage(e.NotSupportFileSystem,r));return t[r].apply(t,i)}function i(n,o,a,s){if(!n.readBlob)throw new Error(e.SrcNotSupportBinRead);if(!a.writeBlob)throw new Error(e.TargetNotSupportBinWrite);if("/"!==o[o.length-1])return r(n,"readBlob",[o]).then(function(e){return r(a,"writeBlob",[s,e])});var l=s.substring(0,s.length-1),c=decodeURIComponent(l.substring(l.lastIndexOf("/")+1)),u=l.substring(0,l.lastIndexOf("/")+1);return r(a,"createFolder",[u,c]).then(function(){},function(){}).then(function(){return r(n,"fetchChildren",[o]).then(function(e){for(var r=[],o=0;o=48&&57>=e}function r(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function i(e){return"01234567".indexOf(e)>=0}function o(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function a(e){return 10===e||13===e||8232===e||8233===e}function s(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||92===e||e>=128&&Fn.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function l(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||e>=48&&57>=e||92===e||e>=128&&Fn.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function u(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function p(e){return"eval"===e||"arguments"===e}function f(e){if(In&&u(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function d(e,n,r,i,o){var a;t("number"==typeof r,"Comment must have valid position"),zn.lastCommentStart=r,a={type:e,value:n},Jn.range&&(a.range=[r,i]),Jn.loc&&(a.loc=o),Jn.comments.push(a),Jn.attachComment&&(Jn.leadingComments.push(a),Jn.trailingComments.push(a))}function h(e){var t,n,r,i;for(t=Nn-e,n={start:{line:Rn,column:Nn-Dn-e}};Hn>Nn;)if(r=On.charCodeAt(Nn),++Nn,a(r))return Mn=!0,Jn.comments&&(i=On.slice(t+e,Nn-1),n.end={line:Rn,column:Nn-Dn-1},d("Line",i,t,Nn-1,n)),13===r&&10===On.charCodeAt(Nn)&&++Nn,++Rn,void(Dn=Nn);Jn.comments&&(i=On.slice(t+e,Nn),n.end={line:Rn,column:Nn-Dn},d("Line",i,t,Nn,n))}function m(){var e,t,n,r;for(Jn.comments&&(e=Nn-2,t={start:{line:Rn,column:Nn-Dn-2}});Hn>Nn;)if(n=On.charCodeAt(Nn),a(n))13===n&&10===On.charCodeAt(Nn+1)&&++Nn,Mn=!0,++Rn,++Nn,Dn=Nn;else if(42===n){if(47===On.charCodeAt(Nn+1))return++Nn,++Nn,void(Jn.comments&&(r=On.slice(e+2,Nn-2),t.end={line:Rn,column:Nn-Dn},d("Block",r,e,Nn,t)));++Nn}else++Nn;Nn>=Hn&&Jn.comments?(t.end={line:Rn,column:Nn-Dn},r=On.slice(e+2,Nn),d("Block",r,e,Nn,t),X()):Z()}function g(){var e,t;for(Mn=!1,t=0===Nn;Hn>Nn;)if(e=On.charCodeAt(Nn),o(e))++Nn;else if(a(e))Mn=!0,++Nn,13===e&&10===On.charCodeAt(Nn)&&++Nn,++Rn,Dn=Nn,t=!0;else if(47===e)if(e=On.charCodeAt(Nn+1),47===e)++Nn,++Nn,h(2),t=!0;else{if(42!==e)break;++Nn,++Nn,m()}else if(t&&45===e){if(45!==On.charCodeAt(Nn+1)||62!==On.charCodeAt(Nn+2))break;Nn+=3,h(3)}else{if(60!==e)break;if("!--"!==On.slice(Nn+1,Nn+4))break; +++Nn,++Nn,++Nn,++Nn,h(4)}}function v(e){var t,n,i,o=0;for(n="u"===e?4:2,t=0;n>t;++t){if(!(Hn>Nn&&r(On[Nn])))return"";i=On[Nn++],o=16*o+"0123456789abcdef".indexOf(i.toLowerCase())}return String.fromCharCode(o)}function y(){var e,t,n,i;for(e=On[Nn],t=0,"}"===e&&Z();Hn>Nn&&(e=On[Nn++],r(e));)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&Z(),65535>=t?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function b(){var e,t;for(e=On.charCodeAt(Nn++),t=String.fromCharCode(e),92===e&&(117!==On.charCodeAt(Nn)&&Z(),++Nn,e=v("u"),e&&"\\"!==e&&s(e.charCodeAt(0))||Z(),t=e);Hn>Nn&&(e=On.charCodeAt(Nn),l(e));)++Nn,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==On.charCodeAt(Nn)&&Z(),++Nn,e=v("u"),e&&"\\"!==e&&l(e.charCodeAt(0))||Z(),t+=e);return t}function x(){var e,t;for(e=Nn++;Hn>Nn;){if(t=On.charCodeAt(Nn),92===t)return Nn=e,b();if(!l(t))break;++Nn}return On.slice(e,Nn)}function S(){var e,t,n;return e=Nn,t=92===On.charCodeAt(Nn)?b():x(),n=1===t.length?kn.Identifier:f(t)?kn.Keyword:"null"===t?kn.NullLiteral:"true"===t||"false"===t?kn.BooleanLiteral:kn.Identifier,{type:n,value:t,lineNumber:Rn,lineStart:Dn,start:e,end:Nn}}function E(){var e,t,n,r,i=Nn,o=On.charCodeAt(Nn),a=On[Nn];switch(o){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++Nn,Jn.tokenize&&(40===o?Jn.openParenToken=Jn.tokens.length:123===o&&(Jn.openCurlyToken=Jn.tokens.length)),{type:kn.Punctuator,value:String.fromCharCode(o),lineNumber:Rn,lineStart:Dn,start:i,end:Nn};default:if(e=On.charCodeAt(Nn+1),61===e)switch(o){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return Nn+=2,{type:kn.Punctuator,value:String.fromCharCode(o)+String.fromCharCode(e),lineNumber:Rn,lineStart:Dn,start:i,end:Nn};case 33:case 61:return Nn+=2,61===On.charCodeAt(Nn)&&++Nn,{type:kn.Punctuator,value:On.slice(i,Nn),lineNumber:Rn,lineStart:Dn,start:i,end:Nn}}}if(r=On.substr(Nn,4),">>>="===r)return Nn+=4,{type:kn.Punctuator,value:r,lineNumber:Rn,lineStart:Dn,start:i,end:Nn};if(n=r.substr(0,3),">>>"===n||"<<="===n||">>="===n)return Nn+=3,{type:kn.Punctuator,value:n,lineNumber:Rn,lineStart:Dn,start:i,end:Nn};if(t=n.substr(0,2),a===t[1]&&"+-<>&|".indexOf(a)>=0||"=>"===t)return Nn+=2,{type:kn.Punctuator,value:t,lineNumber:Rn,lineStart:Dn,start:i,end:Nn};if("<>=!+-*%&|^/".indexOf(a)>=0)return++Nn,{type:kn.Punctuator,value:a,lineNumber:Rn,lineStart:Dn,start:i,end:Nn};++Nn;var s={type:kn.Punctuator,lineNumber:Rn,lineStart:Dn,start:i,end:Nn,value:On.slice(i,Nn)};Z(s)}function w(e){for(var t="";Hn>Nn&&r(On[Nn]);)t+=On[Nn++];return 0===t.length&&Z(),s(On.charCodeAt(Nn))&&Z(),{type:kn.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:Rn,lineStart:Dn,start:e,end:Nn}}function _(e){var t,r;for(r="";Hn>Nn&&(t=On[Nn],"0"===t||"1"===t);)r+=On[Nn++];return 0===r.length&&Z(),Hn>Nn&&(t=On.charCodeAt(Nn),(s(t)||n(t))&&Z()),{type:kn.NumericLiteral,value:parseInt(r,2),lineNumber:Rn,lineStart:Dn,start:e,end:Nn}}function k(e,t){var r,o;for(i(e)?(o=!0,r="0"+On[Nn++]):(o=!1,++Nn,r="");Hn>Nn&&i(On[Nn]);)r+=On[Nn++];return o||0!==r.length||Z(),(s(On.charCodeAt(Nn))||n(On.charCodeAt(Nn)))&&Z(),{type:kn.NumericLiteral,value:parseInt(r,8),octal:o,lineNumber:Rn,lineStart:Dn,start:t,end:Nn}}function C(){var e,t;for(e=Nn+1;Hn>e;++e){if(t=On[e],"8"===t||"9"===t)return!1;if(!i(t))return!0}return!0}function T(){var e,r,o;if(o=On[Nn],t(n(o.charCodeAt(0))||"."===o,"Numeric literal must start with a decimal digit or a decimal point"),r=Nn,e="","."!==o){if(e=On[Nn++],o=On[Nn],"0"===e){if("x"===o||"X"===o)return++Nn,w(r);if("b"===o||"B"===o)return++Nn,_(r);if("o"===o||"O"===o)return k(o,r);if(i(o)&&C())return k(o,r)}for(;n(On.charCodeAt(Nn));)e+=On[Nn++];o=On[Nn]}if("."===o){for(e+=On[Nn++];n(On.charCodeAt(Nn));)e+=On[Nn++];o=On[Nn]}if("e"===o||"E"===o)if(e+=On[Nn++],o=On[Nn],("+"===o||"-"===o)&&(e+=On[Nn++]),n(On.charCodeAt(Nn)))for(;n(On.charCodeAt(Nn));)e+=On[Nn++];else Z();return s(On.charCodeAt(Nn))&&Z(),{type:kn.NumericLiteral,value:parseFloat(e),lineNumber:Rn,lineStart:Dn,start:r,end:Nn}}function L(){var e,n,r,o,s,l,c="",u=!1;for(e=On[Nn],t("'"===e||'"'===e,"String literal must starts with a quote"),n=Nn,++Nn;Hn>Nn;){if(r=On[Nn++],r===e){e="";break}if("\\"===r)if(r=On[Nn++],r&&a(r.charCodeAt(0)))++Rn,"\r"===r&&"\n"===On[Nn]&&++Nn,Dn=Nn;else switch(r){case"u":case"x":"{"===On[Nn]?(++Nn,c+=y()):(l=Nn,s=v(r),s?c+=s:(Nn=l,c+=r));break;case"n":c+="\n";break;case"r":c+="\r";break;case"t":c+=" ";break;case"b":c+="\b";break;case"f":c+="\f";break;case"v":c+=" ";break;default:i(r)?(o="01234567".indexOf(r),0!==o&&(u=!0),Hn>Nn&&i(On[Nn])&&(u=!0,o=8*o+"01234567".indexOf(On[Nn++]),"0123".indexOf(r)>=0&&Hn>Nn&&i(On[Nn])&&(o=8*o+"01234567".indexOf(On[Nn++]))),c+=String.fromCharCode(o)):c+=r}else{if(a(r.charCodeAt(0)))break;c+=r}}var p={type:kn.StringLiteral,value:c,octal:u,lineNumber:Gn,lineStart:Wn,start:n,end:Nn};return""!==e&&X(p),p}function A(e,t){var n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t){return parseInt(t,16)<=1114111?"x":void Z(null,jn.InvalidRegExp)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{RegExp(n)}catch(r){Z(null,jn.InvalidRegExp)}try{return new RegExp(e,t)}catch(i){return null}}function P(){var e,n,r,i,o;for(e=On[Nn],t("/"===e,"Regular expression literal must start with a slash"),n=On[Nn++],r=!1,i=!1;Hn>Nn;)if(e=On[Nn++],n+=e,"\\"===e)e=On[Nn++],a(e.charCodeAt(0))&&Z(null,jn.UnterminatedRegExp),n+=e;else if(a(e.charCodeAt(0)))Z(null,jn.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){i=!0;break}"["===e&&(r=!0)}return i||Z(Kn,jn.UnterminatedRegExp),o=n.substr(1,n.length-2),{value:o,literal:n}}function j(){var e,t,n,r;for(t="",n="";Hn>Nn&&(e=On[Nn],l(e.charCodeAt(0)));)if(++Nn,"\\"===e&&Hn>Nn)if(e=On[Nn],"u"===e){if(++Nn,r=Nn,e=v("u"))for(n+=e,t+="\\u";Nn>r;++r)t+=On[r];else Nn=r,n+="u",t+="\\u";X()}else t+="\\",X();else n+=e,t+=e;return{value:n,literal:t}}function F(){qn=!0;var e,t,n,r;return g(),e=Nn,t=P(),n=j(),r=A(t.value,n.value),qn=!1,Jn.tokenize?{type:kn.RegularExpression,value:r,regex:{pattern:t.value,flags:n.value},lineNumber:Rn,lineStart:Dn,start:e,end:Nn}:{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:Nn}}function O(){var e,t,n,r;return g(),e=Nn,t={start:{line:Rn,column:Nn-Dn}},n=F(),t.end={line:Rn,column:Nn-Dn},Jn.tokenize||(Jn.tokens.length>0&&(r=Jn.tokens[Jn.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"===r.value||"/="===r.value)&&Jn.tokens.pop()),Jn.tokens.push({type:"RegularExpression",value:n.literal,regex:n.regex,range:[e,Nn],loc:t})),n}function I(e){return e.type===kn.Identifier||e.type===kn.Keyword||e.type===kn.BooleanLiteral||e.type===kn.NullLiteral}function N(){var e,t;if(e=Jn.tokens[Jn.tokens.length-1],!e)return O();if("Punctuator"===e.type){if("]"===e.value)return E();if(")"===e.value)return t=Jn.tokens[Jn.openParenToken-1],!t||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?E():O();if("}"===e.value){if(Jn.tokens[Jn.openCurlyToken-3]&&"Keyword"===Jn.tokens[Jn.openCurlyToken-3].type){if(t=Jn.tokens[Jn.openCurlyToken-4],!t)return E()}else{if(!Jn.tokens[Jn.openCurlyToken-4]||"Keyword"!==Jn.tokens[Jn.openCurlyToken-4].type)return E();if(t=Jn.tokens[Jn.openCurlyToken-5],!t)return O()}return Tn.indexOf(t.value)>=0?E():O()}return O()}return"Keyword"===e.type&&"this"!==e.value?O():E()}function R(){var e;return Nn>=Hn?{type:kn.EOF,lineNumber:Rn,lineStart:Dn,start:Nn,end:Nn,range:[Nn,Nn]}:(e=On.charCodeAt(Nn),s(e)?S():40===e||41===e||59===e?E():39===e||34===e?L():46===e?n(On.charCodeAt(Nn+1))?T():E():n(e)?T():Jn.tokenize&&47===e?N():E())}function D(){var e,t,n,r;return e={start:{line:Rn,column:Nn-Dn}},t=R(),e.end={line:Rn,column:Nn-Dn},t.type!==kn.EOF&&(n=On.slice(t.start,t.end),r={type:Cn[t.type],value:n,range:[t.start,t.end],loc:e},t.regex&&(r.regex={pattern:t.regex.pattern,flags:t.regex.flags}),Jn.tokens.push(r)),t}function M(){var e;return qn=!0,Vn=Nn,$n=Rn,Un=Dn,g(),e=Kn,Bn=Nn,Gn=Rn,Wn=Dn,Kn="undefined"!=typeof Jn.tokens?D():R(),qn=!1,e}function V(){qn=!0,g(),Vn=Nn,$n=Rn,Un=Dn,Bn=Nn,Gn=Rn,Wn=Dn,Kn="undefined"!=typeof Jn.tokens?D():R(),qn=!1}function $(e){if(Jn.deps)for(var t=e.length,n=0;t>n;n++)U(e[n])}function U(e){if(Jn.deps&&e.type===Ln.Literal){for(var t=0;t1&&(r=t[1],r.type===Ln.ArrayExpression&&(Jn.envs.node=!0,$(r.elements)))}else"requirejs"===e.name?(r=t[0],r.type===Ln.ArrayExpression&&(Jn.envs.amd=!0,$(r.elements))):"define"===e.name&&n>1&&(r=t[0],r.type===Ln.Literal&&(r=t[1]),r.type===Ln.ArrayExpression&&(Jn.envs.amd=!0,$(r.elements)))}}function G(){this.line=Gn,this.column=Bn-Wn}function W(){this.start=new G,this.end=null}function q(e){this.start={line:e.lineNumber,column:e.start-e.lineStart},this.end=null}function H(){Jn.loc&&(this.loc=new W),Jn.range&&(this.range=[Bn,0]),Jn.directSourceFile&&(this.sourceFile=Jn.directSourceFile)}function K(e){Jn.loc&&(this.loc=new q(e)),Jn.range&&(this.range=[e.start,0]),Jn.directSourceFile&&(this.sourceFile=Jn.directSourceFile)}function z(e,t,n,r){var i=new Error("Line "+e+": "+n);if(i.index=t,i.lineNumber=e,i.column=t-(qn?Dn:Un)+1,i.description=n,r){var o=r;2===r.type&&Jn&&Array.isArray(Jn.tokens)&&Jn.tokens.length>0&&(o=Jn.tokens[Jn.tokens.length-1]),i.index="number"==typeof o.start?o.start:o.range[0],i.token=o.value,i.end="number"==typeof o.end?o.end:o.range[1]}return i}function J(e){var n,r;throw n=Array.prototype.slice.call(arguments,1),r=e.replace(/%(\d)/g,function(e,r){return t(r0&&(t=Jn.tokens[Jn.tokens.length-2]),X(t,jn.MissingToken,n)}else t.type!==kn.EOF&&(Jn.tokens&&Jn.tokens.length>0&&(t=Jn.tokens[Jn.tokens.length-2]),X(t,jn.MissingToken,","));else et(",")}function nt(e){var t=M();(t.type!==kn.Keyword||t.value!==e)&&Z(t)}function rt(e){return Kn.type===kn.Punctuator&&Kn.value===e}function it(e){return Kn.type===kn.Keyword&&Kn.value===e}function ot(){var e;return Kn.type!==kn.Punctuator?!1:(e=Kn.value,"="===e||"*="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function at(){try{if(59===On.charCodeAt(Bn)||rt(";"))return void M();if(Mn)return;if(Vn=Bn,$n=Gn,Un=Wn,Kn.type!==kn.EOF&&!rt("}")){var e=Kn;Jn.errors&&xn(Wn),Z(e)}}catch(t){if(Jn.errors)return void vn(t);throw t}}function st(e){return e.type===Ln.Identifier||e.type===Ln.MemberExpression}function lt(){var e=[],t=new H;for(et("[");!rt("]");)rt(",")?(M(),e.push(null)):(e.push(Pt()),rt("]")||et(","));return M(),t.finishArrayExpression(e)}function ct(e,t){var n,r,i=new H;return n=In,r=rn(),t&&In&&p(e[0].name)&&X(t,jn.StrictParamName),In=n,i.finishFunctionExpression(null,e,[],r)}function ut(){var e,t=new H;return e=M(),e.type===kn.StringLiteral||e.type===kn.NumericLiteral?(In&&e.octal&&X(e,jn.StrictOctalLiteral),t.finishLiteral(e)):t.finishIdentifier(e.value)}function pt(){var e,t,n,r,i,o=new H;return e=Kn,e.type===kn.Identifier?(n=ut(),"get"!==e.value||rt(":")||rt("(")?"set"!==e.value||rt(":")||rt("(")?_n(e,n,o):(t=ut(),et("("),e=Kn,e.type!==kn.Identifier?(et(")"),X(e),r=ct([])):(i=[It()],et(")"),r=ct(i,e)),o.finishProperty("set",t,r,!1,!1)):(t=ut(),et("("),et(")"),r=ct([]),o.finishProperty("get",t,r,!1,!1))):e.type!==kn.EOF&&e.type!==kn.Punctuator?_n(e,ut(),o):void Z(e)}function ft(){var e,t,n,r,i=[],o={},a=String,s=new H;for(et("{");!rt("}");)e=pt(),null!=e&&"undefined"!=typeof e&&(t=e.key.type===Ln.Identifier?e.key.name:a(e.key.value),r="init"===e.kind?Pn.Data:"get"===e.kind?Pn.Get:Pn.Set,n="$"+t,Object.prototype.hasOwnProperty.call(o,n)?(o[n]===Pn.Data?In&&r===Pn.Data?Q(jn.StrictDuplicateProperty):r!==Pn.Data&&Q(jn.AccessorDataProperty):r===Pn.Data?Q(jn.AccessorDataProperty):o[n]&r&&Q(jn.AccessorGetSet),o[n]|=r):o[n]=r,i.push(e),rt("}")||tt("}"));return et("}"),s.finishObjectExpression(i)}function dt(){var e;return et("("),rt(")")?(M(),An.ArrowParameterPlaceHolder):(++zn.parenthesisCount,e=jt(),et(")"),e)}function ht(){var e,t,n,r;if(rt("("))return dt();if(rt("["))return lt();if(rt("{"))return ft();if(e=Kn.type,r=new H,e===kn.Identifier)n=r.finishIdentifier(M().value);else if(e===kn.StringLiteral||e===kn.NumericLiteral)In&&Kn.octal&&X(Kn,jn.StrictOctalLiteral),n=r.finishLiteral(M());else if(e===kn.Keyword){if(it("function"))return cn();it("this")?(M(),n=r.finishThisExpression()):Z(M())}else e===kn.BooleanLiteral?(t=M(),t.value="true"===t.value,n=r.finishLiteral(t)):e===kn.NullLiteral?(t=M(),t.value=null,n=r.finishLiteral(t)):rt("/")||rt("/=")?(Nn=Bn,t="undefined"!=typeof Jn.tokens?O():F(),M(),n=r.finishLiteral(t)):Z(M());return n}function mt(){var e=[];if(et("("),!rt(")"))for(;Hn>Bn&&(e.push(Pt()),!rt(")"));)tt(")");return gn(")"),e}function gt(){var e,t=new H;try{e=M(),I(e)||(Jn.errors&&En(e),Z(e))}catch(n){if(Jn.errors)return vn(n),wn(t,Ln.Identifier);throw n}return t.finishIdentifier(e.value)}function vt(){return et("."),gt()}function yt(){var e;return et("["),e=jt(),et("]"),e}function bt(){var e,t,n=new H;return nt("new"),e=St(),t=rt("(")?mt():[],n.finishNewExpression(e,t)}function xt(){var e,t,n,r,i=zn.allowIn;for(r=Kn,zn.allowIn=!0,e=it("new")?bt():ht();;)if(rt("."))n=vt(),e=new K(r).finishMemberExpression(".",e,n);else if(rt("("))t=mt(),e=new K(r).finishCallExpression(e,t);else{if(!rt("["))break;n=yt(),e=new K(r).finishMemberExpression("[",e,n)}return zn.allowIn=i,e}function St(){var e,n,r;for(t(zn.allowIn,"callee of new expression always allow in keyword."),r=Kn,e=it("new")?bt():ht();;)if(rt("["))n=yt(),e=new K(r).finishMemberExpression("[",e,n);else{if(!rt("."))break;n=vt(),e=new K(r).finishMemberExpression(".",e,n)}return e}function Et(){var e,t,n=Kn;return e=xt(),Mn||Kn.type!==kn.Punctuator||(rt("++")||rt("--"))&&(In&&e.type===Ln.Identifier&&p(e.name)&&Q(jn.StrictLHSPostfix),st(e)||Q(jn.InvalidLHSInAssignment),t=M(),e=new K(n).finishPostfixExpression(t.value,e)),e}function wt(){var e,t,n;return Kn.type!==kn.Punctuator&&Kn.type!==kn.Keyword?t=Et():rt("++")||rt("--")?(n=Kn,e=M(),t=wt(),In&&t.type===Ln.Identifier&&p(t.name)&&Q(jn.StrictLHSPrefix),st(t)||Q(jn.InvalidLHSInAssignment),t=new K(n).finishUnaryExpression(e.value,t)):rt("+")||rt("-")||rt("~")||rt("!")?(n=Kn,e=M(),t=wt(),t=new K(n).finishUnaryExpression(e.value,t)):it("delete")||it("void")||it("typeof")?(n=Kn,e=M(),t=wt(),t=new K(n).finishUnaryExpression(e.value,t),In&&"delete"===t.operator&&t.argument.type===Ln.Identifier&&Q(jn.StrictDelete)):t=Et(),t}function _t(e,t){var n=0;if(e.type!==kn.Punctuator&&e.type!==kn.Keyword)return 0;switch(e.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":n=7;break;case"in":n=t?7:0;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function kt(){var e,t,n,r,i,o,a,s,l,c;if(e=Kn,l=wt(),l===An.ArrowParameterPlaceHolder)return l;if(r=Kn,i=_t(r,zn.allowIn),0===i)return l;for(r.prec=i,M(),t=[e,Kn],a=wt(),o=[l,r,a];(i=_t(Kn,zn.allowIn))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),t.pop(),n=new K(t[t.length-1]).finishBinaryExpression(s,l,a),o.push(n);r=M(),r.prec=i,o.push(r),t.push(Kn),n=wt(),o.push(n)}for(c=o.length-1,n=o[c],t.pop();c>1;)n=new K(t.pop()).finishBinaryExpression(o[c-1].value,o[c-2],n),c-=2;return n}function Ct(){var e,t,n,r,i;return i=Kn,e=kt(),e===An.ArrowParameterPlaceHolder?e:(rt("?")&&(M(),t=zn.allowIn,zn.allowIn=!0,n=Pt(),zn.allowIn=t,et(":"),r=Pt(),e=new K(i).finishConditionalExpression(e,n,r)),e)}function Tt(){return rt("{")?rn():Pt()}function Lt(e){var t,n,r,i,o,a,s,l,c;for(i=[],o=[],a=0,l=null,s={paramSet:{}},t=0,n=e.length;n>t;t+=1)if(r=e[t],r.type===Ln.Identifier)i.push(r),o.push(null),on(s,r,r.name);else{if(r.type!==Ln.AssignmentExpression)return null;i.push(r.left),o.push(r.right),++a,on(s,r.left,r.left.name)}return s.message===jn.StrictParamDupe&&(c=In?s.stricted:s.firstRestricted,Z(c,s.message)),0===a&&(o=[]),{params:i,defaults:o,rest:l,stricted:s.stricted,firstRestricted:s.firstRestricted,message:s.message}}function At(e,t){var n,r;return et("=>"),n=In,r=Tt(),In&&e.firstRestricted&&Z(e.firstRestricted,e.message),In&&e.stricted&&X(e.stricted,e.message),In=n,t.finishArrowFunctionExpression(e.params,e.defaults,r,r.type!==Ln.BlockStatement)}function Pt(){var e,t,n,r,i,o;return e=zn.parenthesisCount,o=Kn,t=Kn,n=Ct(),n!==An.ArrowParameterPlaceHolder&&!rt("=>")||zn.parenthesisCount!==e&&zn.parenthesisCount!==e+1||(n.type===Ln.Identifier?i=Lt([n]):n.type===Ln.AssignmentExpression?i=Lt([n]):n.type===Ln.SequenceExpression?i=Lt(n.expressions):n===An.ArrowParameterPlaceHolder&&(i=Lt([])),!i)?(ot()&&(st(n)||Q(jn.InvalidLHSInAssignment),In&&n.type===Ln.Identifier&&p(n.name)&&X(t,jn.StrictLHSAssignment),t=M(),r=Pt(),n=new K(o).finishAssignmentExpression(t.value,n,r)),n):At(i,new K(o))}function jt(){var e,t,n=Kn;if(e=Pt(),rt(",")){for(t=[e];Hn>Bn&&rt(",");)M(),t.push(Pt());e=new K(n).finishSequenceExpression(t)}return e}function Ft(){for(var e,t=[],n=Nn;Hn>Bn&&!rt("}")&&(e=un(),"undefined"!=typeof e&&n!==Nn);)t.push(e),n=Nn;return t}function Ot(){var e,t=new H;return et("{"),e=Ft(),gn("}"),t.finishBlockStatement(e)}function It(){var e,t=new H;return e=M(),e.type!==kn.Identifier&&(In&&e.type===kn.Keyword&&u(e.value)?X(e,jn.StrictReservedWord):Z(e)),t.finishIdentifier(e.value)}function Nt(e){var t,n=null,r=new H;return t=It(),In&&p(t.name)&&Q(jn.StrictVarName),"const"===e?(et("="),n=Pt()):rt("=")&&(M(),n=Pt()),r.finishVariableDeclarator(t,n)}function Rt(e){var t=[];do{if(t.push(Nt(e)),!rt(","))break;M()}while(Hn>Bn);return t}function Dt(e){var t;return nt("var"),t=Rt(),at(),e.finishVariableDeclaration(t,"var")}function Mt(e){var t,n=new H;return nt(e),t=Rt(e),at(),n.finishVariableDeclaration(t,e)}function Vt(){var e=new H;return et(";"),e.finishEmptyStatement()}function $t(e){var t=jt();return at(),t||(t=wn(e)),e.finishExpressionStatement(t)}function Ut(e){var t,n,r;return nt("if"),et("("),t=jt(),gn(")","{"),n=nn(),it("else")?(M(),r=nn()):r=null,e.finishIfStatement(t,n,r)}function Bt(e){var t,n,r;return nt("do"),r=zn.inIteration,zn.inIteration=!0,t=nn(),zn.inIteration=r,nt("while"),et("("),n=jt(),gn(")","{"),rt(";")&&M(),e.finishDoWhileStatement(t,n)}function Gt(e){var t,n,r;return nt("while"),et("("),t=jt(),gn(")","{"),r=zn.inIteration,zn.inIteration=!0,n=nn(),zn.inIteration=r,e.finishWhileStatement(t,n)}function Wt(){var e,t,n=new H;return e=M(),t=Rt(),n.finishVariableDeclaration(t,e.value)}function qt(e){var t,n,r,i,o,a,s,l=zn.allowIn;return t=n=r=null,nt("for"),et("("),rt(";")?M():(it("var")||it("let")?(zn.allowIn=!1,t=Wt(),zn.allowIn=l,1===t.declarations.length&&it("in")&&(M(),i=t,o=jt(),t=null)):(zn.allowIn=!1,t=jt(),zn.allowIn=l,it("in")&&(st(t)||Q(jn.InvalidLHSInForIn),M(),i=t,o=jt(),t=null)),"undefined"==typeof i&&et(";")),"undefined"==typeof i&&(rt(";")||(n=jt()),et(";"),rt(")")||(r=jt())),gn(")","{"),s=zn.inIteration,zn.inIteration=!0,a=nn(),zn.inIteration=s,"undefined"==typeof i?e.finishForStatement(t,n,r,a):e.finishForInStatement(i,o,a)}function Ht(e){var t,n=null;if(nt("continue"),59===On.charCodeAt(Bn))return M(),zn.inIteration||J(jn.IllegalContinue),e.finishContinueStatement(null);if(Mn)return zn.inIteration||J(jn.IllegalContinue),e.finishContinueStatement(null);if(Kn.type===kn.Identifier){var r=Kn;n=It(),t="$"+n.name,Object.prototype.hasOwnProperty.call(zn.labelSet,t)||X(r,jn.UnknownLabel,n.name)}return at(),null!==n||zn.inIteration||J(jn.IllegalContinue),e.finishContinueStatement(n)}function Kt(e){var t,n=null;return nt("break"),59===On.charCodeAt(Vn)?(M(),zn.inIteration||zn.inSwitch||J(jn.IllegalBreak),e.finishBreakStatement(null)):Mn?(zn.inIteration||zn.inSwitch||J(jn.IllegalBreak),e.finishBreakStatement(null)):(Kn.type===kn.Identifier&&(n=It(),t="$"+n.name,Object.prototype.hasOwnProperty.call(zn.labelSet,t)||J(jn.UnknownLabel,n.name)),at(),null!==n||zn.inIteration||zn.inSwitch||J(jn.IllegalBreak),e.finishBreakStatement(n))}function zt(e){var t=null,n=Kn;return nt("return"),zn.inFunctionBody||X(n,jn.IllegalReturn,n.value),32===On.charCodeAt(Vn)&&s(On.charCodeAt(Vn+1))?(t=jt(),at(),e.finishReturnStatement(t)):Mn?e.finishReturnStatement(null):(rt(";")||rt("}")||Kn.type===kn.EOF||(t=jt()),at(),e.finishReturnStatement(t))}function Jt(e){var t,n;return In&&Q(jn.StrictModeWith),nt("with"),et("("),t=jt(),gn(")","{"),n=nn(),e.finishWithStatement(t,n)}function Qt(){var e,t,n=[],r=new H;it("default")?(M(),e=null):(nt("case"),e=jt()),rt(":")&&M();for(var i=Nn;Hn>Bn&&!(rt("}")||it("default")||it("case"))&&(t=nn(),"undefined"!=typeof t&&null!==t)&&(n.push(t),i!==Nn);)i=Nn;return r.finishSwitchCase(e,n)}function Yt(e){var t,n,r,i,o;if(nt("switch"),et("("),t=jt(),et(")"),et("{"),n=[],rt("}"))return M(),e.finishSwitchStatement(t,n);for(i=zn.inSwitch,zn.inSwitch=!0,o=!1;Hn>Bn&&!rt("}");)r=Qt(),null===r.test&&(o&&J(jn.MultipleDefaultsInSwitch),o=!0),n.push(r);return zn.inSwitch=i,et("}"),e.finishSwitchStatement(t,n)}function Zt(e){var t;return nt("throw"),Mn&&J(jn.NewlineAfterThrow),t=jt(),at(),e.finishThrowStatement(t)}function Xt(){var e,t,n=new H;return nt("catch"),et("("),rt(")")&&Z(Kn),e=It(),In&&p(e.name)&&Q(jn.StrictCatchVariable),et(")"),t=Ot(),n.finishCatchClause(e,t)}function en(e){var t,n=[],r=null;return nt("try"),t=Ot(),it("catch")&&n.push(Xt()),it("finally")&&(M(),r=Ot()),0!==n.length||r||J(jn.NoCatchOrFinally),e.finishTryStatement(t,[],n,r)}function tn(e){return nt("debugger"),at(),e.finishDebuggerStatement()}function nn(){var e,t,n,r,i=Kn.type;if(i===kn.EOF&&Z(Kn),i===kn.Punctuator&&"{"===Kn.value)return Ot();if(r=new H,i===kn.Punctuator)switch(Kn.value){case";":return Vt(r);case"(":return $t(r)}else if(i===kn.Keyword)switch(Kn.value){case"break":return Kt(r);case"continue":return Ht(r);case"debugger":return tn(r);case"do":return Bt(r);case"for":return qt(r);case"function":return ln(r);case"if":return Ut(r);case"return":return zt(r);case"switch":return Yt(r);case"throw":return Zt(r);case"try":return en(r);case"var":return Dt(r);case"while":return Gt(r);case"with":return Jt(r)}return e=jt(),e&&e.type===Ln.Identifier&&rt(":")?(M(),n="$"+e.name,Object.prototype.hasOwnProperty.call(zn.labelSet,n)&&J(jn.Redeclaration,"Label",e.name),zn.labelSet[n]=!0,t=nn(),delete zn.labelSet[n],r.finishLabeledStatement(e,t)):(at(),e||(e=wn(r)),r.finishExpressionStatement(e))}function rn(){var e,t,n,r,i,o,a,s,l,c=[],u=new H;for(et("{");Hn>Bn&&Kn.type===kn.StringLiteral&&(t=Kn,e=un(),c.push(e),e.expression.type===Ln.Literal);)n=On.slice(t.start+1,t.end-1),"use strict"===n?(In=!0,r&&X(r,jn.StrictOctalLiteral)):!r&&t.octal&&(r=t);i=zn.labelSet,o=zn.inIteration,a=zn.inSwitch,s=zn.inFunctionBody,l=zn.parenthesizedCount,zn.labelSet={},zn.inIteration=!1,zn.inSwitch=!1,zn.inFunctionBody=!0,zn.parenthesizedCount=0;for(var p=Nn;Hn>Nn&&!rt("}")&&(e=un(),"undefined"!=typeof e&&null!=e)&&(c.push(e),p!==Nn);)p=Nn;return gn("}"),zn.labelSet=i,zn.inIteration=o,zn.inSwitch=a,zn.inFunctionBody=s,zn.parenthesizedCount=l,u.finishBlockStatement(c)}function on(e,t,n){var r="$"+n;In?(p(n)&&(e.stricted=t,e.message=jn.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=jn.StrictParamDupe)):e.firstRestricted||(p(n)?(e.firstRestricted=t,e.message=jn.StrictParamName):u(n)?(e.firstRestricted=t,e.message=jn.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.firstRestricted=t,e.message=jn.StrictParamDupe)),e.paramSet[r]=!0}function an(e){var t,n,r;return t=Kn,n=It(),on(e,t,t.value),rt("=")&&(M(),r=Pt(),++e.defaultCount),e.params.push(n),e.defaults.push(r),!rt(")")}function sn(e){var t;if(t={params:[],defaultCount:0,defaults:[],firstRestricted:e},et("("),!rt(")"))for(t.paramSet={};Hn>Bn&&an(t);)et(",");return et(")"),0===t.defaultCount&&(t.defaults=[]),{params:t.params,defaults:t.defaults,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}}function ln(){var e,t,n,r,i,o,a,s,l=[],c=[],f=new H;return nt("function"),n=Kn,e=It(),In?p(n.value)&&X(n,jn.StrictFunctionName):p(n.value)?(o=n,a=jn.StrictFunctionName):u(n.value)&&(o=n,a=jn.StrictReservedWord),i=sn(o),l=i.params,c=i.defaults,r=i.stricted,o=i.firstRestricted,i.message&&(a=i.message),s=In,t=rn(),In&&o&&Z(o,a),In&&r&&X(r,a),In=s,f.finishFunctionDeclaration(e,l,c,t)}function cn(){var e,t,n,r,i,o,a,s=null,l=[],c=[],f=new H;return nt("function"),rt("(")||(e=Kn,s=It(),In?p(e.value)&&X(e,jn.StrictFunctionName):p(e.value)?(n=e,r=jn.StrictFunctionName):u(e.value)&&(n=e,r=jn.StrictReservedWord)),i=sn(n),l=i.params,c=i.defaults,t=i.stricted,n=i.firstRestricted,i.message&&(r=i.message),a=In,o=rn(),In&&n&&Z(n,r),In&&t&&X(t,r),In=a,f.finishFunctionExpression(s,l,c,o)}function un(){if(Kn.type===kn.Keyword)switch(Kn.value){case"const":case"let":return Mt(Kn.value);case"function":return ln();default:return nn()}return Kn.type!==kn.EOF?nn():void 0}function pn(){for(var e,t,n,r,i=[];Hn>Bn&&(t=Kn,t.type===kn.StringLiteral)&&(e=un(),i.push(e),e.expression.type===Ln.Literal);)n=On.slice(t.start+1,t.end-1),"use strict"===n?(In=!0,r&&X(r,jn.StrictOctalLiteral)):!r&&t.octal&&(r=t);for(var o=Nn;Hn>Bn&&(e=un(),"undefined"!=typeof e&&null!==e)&&(i.push(e),o!==Nn);)o=Nn;return i}function fn(){var e,t;return V(),t=new H,In=!1,e=pn(),t.finishProgram(e)}function dn(){var e,t,n,r=[];for(e=0;e0?1:0,Dn=0,Bn=Nn,Gn=Rn,Wn=Dn,Hn=On.length,Kn=null,zn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},Jn={},t=t||{},t.tokens=!0,Jn.tokens=[],Jn.tokenize=!0,Jn.openParenToken=-1,Jn.openCurlyToken=-1,Jn.range="boolean"==typeof t.range&&t.range,Jn.loc="boolean"==typeof t.loc&&t.loc,"boolean"==typeof t.comment&&t.comment&&(Jn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(Jn.errors=[]);try{if(V(),Kn.type===kn.EOF)return Jn.tokens;for(M();Kn.type!==kn.EOF;)try{M()}catch(i){if(Jn.errors){Jn.errors.push(i);break}throw i}dn(),r=Jn.tokens,"undefined"!=typeof Jn.comments&&(r.comments=Jn.comments),"undefined"!=typeof Jn.errors&&(r.errors=Jn.errors)}catch(o){throw o}finally{Jn={}}return r}function mn(e,t){var n,r;r=String,"string"==typeof e||e instanceof String||(e=r(e)),On=e,Nn=0,Rn=On.length>0?1:0,Dn=0,Bn=Nn,Gn=Rn,Wn=Dn,Hn=On.length,Kn=null,zn={allowIn:!0,labelSet:{},parenthesisCount:0,inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},Jn={},"undefined"!=typeof t&&("boolean"==typeof t.deps&&t.deps&&(Jn.deps=[],Jn.envs=Object.create(null)),Jn.range="boolean"==typeof t.range&&t.range,Jn.loc="boolean"==typeof t.loc&&t.loc,Jn.attachComment="boolean"==typeof t.attachComment&&t.attachComment,Jn.loc&&null!==t.source&&void 0!==t.source&&(Jn.source=r(t.source)),"boolean"==typeof t.tokens&&t.tokens&&(Jn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(Jn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(Jn.errors=[],Jn.parseStatement=nn,Jn.parseExpression=jt,nn=bn(nn),jt=yn(jt)),Jn.attachComment&&(Jn.range=!0,Jn.comments=[],Jn.bottomRightStack=[],Jn.trailingComments=[],Jn.leadingComments=[]),Jn.directSourceFile=t.directSourceFile);try{n=fn(),"undefined"!=typeof Jn.comments&&(n.comments=Jn.comments),"undefined"!=typeof Jn.tokens&&(dn(),n.tokens=Jn.tokens),"undefined"!=typeof Jn.errors&&(n.errors=Jn.errors),"undefined"!=typeof Jn.deps&&(n.dependencies=Jn.deps,n.environments=Jn.envs)}catch(i){throw i}finally{"undefined"!=typeof Jn.errors&&(nn=Jn.parseStatement,jt=Jn.parseExpression),Jn={}}return n}function gn(e,t){try{et(e)}catch(n){if(!Jn.errors)throw n;vn(n),t&&On[n.index]===t&&(Nn=n.index,V())}}function vn(e){for(var t=Jn.errors.length,n=0;t>n;n++){var r=Jn.errors[n];if(r.index===e.index&&r.message===e.message)return}Jn.errors.push(e)}function yn(e){return function(){try{return e.apply(null,arguments)}catch(t){vn(t)}}}function bn(e){return function(){Jn.statementStart=Nn;try{return e.apply(null,arguments)}catch(t){vn(t)}}}function xn(e){for(var t=e;t>-1&&";"!==On[t]&&"\n"!==On[t];)t--;if(!(t<=Jn.statementStart)){var n=!1;Jn.lastRewindLocation?n=!0:Jn.lastRewindLocation!==t&&(n=!0),n&&(Nn=t,Sn(e),V(),Jn.lastRewindLocation=Nn)}}function Sn(e,t){for(var n=Jn.tokens.length-1;n>-1;){var r=Jn.tokens[n];if(r.range[0]",Cn[kn.Identifier]="Identifier",Cn[kn.Keyword]="Keyword",Cn[kn.NullLiteral]="Null",Cn[kn.NumericLiteral]="Numeric",Cn[kn.Punctuator]="Punctuator",Cn[kn.StringLiteral]="String",Cn[kn.RegularExpression]="RegularExpression",Tn=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],Ln={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},An={ArrowParameterPlaceHolder:{type:"ArrowParameterPlaceHolder"}},Pn={Data:1,Get:2,Set:4},jn={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",MissingToken:"Missing expected '%0'"},Fn={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ƖƘ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-͓Ͷͷͺ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-ΔΣ-ϵϷ-ҁҊ-ŌÆŌ±-Õ–Õ™Õ”-ևא-×Ŗ×°-ײؠ-يٮٯٱ-Ū“Ū•Ū„Ū¦Ū®ŪÆŪŗ-ۼۿܐܒ-ÜÆŻ-ބޱߊ-ߪߓߵߺࠀ-ą •ą šą ¤ą Øą”€-ą”˜ą¢ -ࢲऄ-ą¤¹ą¤½ą„ą„˜-ą„”ą„±-ঀঅ-ą¦Œą¦ą¦ą¦“-নপ-রলশ-ą¦¹ą¦½ą§Žą§œą§ą§Ÿ-৔ৰৱਅ-ąØŠąØąØąØ“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ą©œą©žą©²-ą©“ąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-રલળવ-હઽૐૠ૔ଅ-ą¬Œą¬ą¬ą¬“-ନପ-ରଲଳଵ-ą¬¹ą¬½ą­œą­ą­Ÿ-ą­”ą­±ą®ƒą®…-ą®Šą®Ž-ஐஒ-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-பம-ஹௐఅ-ą°Œą°Ž-ఐఒ-ą°Øą°Ŗ-ą°¹ą°½ą±˜ą±™ą± ą±”ą²…-ą²Œą²Ž-ಐಒ-ನಪ-ಳವ-ą²¹ą²½ą³žą³ ą³”ą³±ą³²ą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½ąµŽąµ ąµ”ąµŗ-ൿඅ-ą¶–ą¶š-නඳ-රලව-ෆก-ะาำเ-ą¹†ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ຟດ-ຣຄວສຫອ-ະາຳຽເ-ą»„ą»†ą»œ-ą»Ÿą¼€ą½€-ཇཉ-ཬྈ-ą¾Œį€€-ဪဿၐ-į•įš-įį”į„į¦į®-ၰၵ-į‚į‚Žį‚ -įƒ…įƒ‡įƒįƒ-ჺჼ-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -ኈኊ-įŠįŠ-ኰኲ-ኵኸ-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšįŽ€-įŽįŽ -į“į-ᙬᙯ-į™æįš-ᚚᚠ-ᛪᛮ-į›øįœ€-įœŒįœŽ-įœ‘įœ -įœ±į€-į‘į -į¬į®-į°įž€-įž³įŸ—įŸœį  -ᔷᢀ-ᢨᢪᢰ-ᣵᤀ-į¤žį„-į„­į„°-ᄓᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-į­‹į®ƒ-ᮠᮮᮯᮺ-ᯄᰀ-į°£į±-į±į±š-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᓀ-į¶æįø€-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-ώᾀ-ᾓᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ΐῶ-ῼⁱⁿₐ-ā‚œā„‚ā„‡ā„Š-ā„“ā„•ā„™-ā„ā„¤ā„¦ā„Øā„Ŗ-ℭℯ-ℹℼ-ℿⅅ-ā…‰ā…Žā… -ā†ˆā°€-Ⱞⰰ-ā±žā± -ⳤⳫ-ⳮⳲⳳⓀ-ā“„ā“§ā“­ā“°-ⵧⵯⶀ-ā¶–ā¶ -ⶦⶨ-ⶮⶰ-ā¶¶ā¶ø-ⶾⷀ-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žāøÆć€…-怇怔-怩怱-〵〸-〼ぁ-悖悝-ć‚Ÿć‚”-ヺー-ćƒæć„…-愭愱-憎憠-ㆺㇰ-ㇿ㐀-䶵一-éæŒź€€-ź’Œź“-ꓽꔀ-ꘌꘐ-ź˜Ÿź˜Ŗź˜«ź™€-ꙮꙿ-źšźš -ź›Æźœ—-ꜟꜢ-źžˆźž‹-źžŽźž-źž­źž°źž±źŸ·-ꠁꠃ-ź …ź ‡-ꠊꠌ-ꠢꔀ-ꔳꢂ-ꢳꣲ-ꣷꣻꤊ-꤄ꤰ-ꄆꄠ-ꄼꦄ-ź¦²ź§ź§ -ꧤꧦ-ź§Æź§ŗ-ꧾꨀ-ꨨꩀ-ź©‚ź©„-ź©‹ź© -ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ź«ź« -ꫪꫲ-꫓ꬁ-ꬆꬉ-ź¬Žź¬‘-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ź­Ÿź­¤ź­„źÆ€-ꯢ가-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-龎ff-stﬓ-ļ¬—ļ¬ļ¬Ÿ-ﬨשׁ-זּטּ-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ﮱﯓ-ﵐ-ļ¶ļ¶’-ﷇﷰ-ﷻﹰ-﹓ﹶ-ﻼ4-Za-zヲ-하-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ƖƘ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-͓Ͷͷͺ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-ΔΣ-ϵϷ-ҁ҃-Ņ‡ŅŠ-ŌÆŌ±-Õ–Õ™Õ”-և֑-ׇֽֿׁׂׅׄא-×Ŗ×°-ײؐ-ؚؠ-٩ٮ-Ū“Ū•-ۜ۟-ŪØŪŖ-ۼۿܐ-ŻŠŻ-ޱ߀-ߵߺࠀ-ą ­ą”€-ą”›ą¢ -ࢲࣤ-ą„£ą„¦-ą„Æą„±-ą¦ƒą¦…-ą¦Œą¦ą¦ą¦“-নপ-রলশ-হ়-ą§„ą§‡ą§ˆą§‹-ą§Žą§—ą§œą§ą§Ÿ-ৣ০-ৱਁ-ąØƒąØ…-ąØŠąØąØąØ“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ą©‚ą©‡ą©ˆą©‹-ą©ą©‘ą©™-ą©œą©žą©¦-ੵઁ-ąŖƒąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-રલળવ-હ઼-ૅે-ૉો-ą«ą«ą« -ૣ૦-૯ଁ-ą¬ƒą¬…-ą¬Œą¬ą¬ą¬“-ନପ-ରଲଳଵ-ହ଼-ą­„ą­‡ą­ˆą­‹-ą­ą­–ą­—ą­œą­ą­Ÿ-ୣ୦-ą­Æą­±ą®‚ą®ƒą®…-ą®Šą®Ž-ஐஒ-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-பம-ஹா-ூெ-ைொ-ąÆąÆąÆ—ąÆ¦-௯ఀ-ą°ƒą°…-ą°Œą°Ž-ఐఒ-ą°Øą°Ŗ-హఽ-ౄె-ైొ-ą±ą±•ą±–ą±˜ą±™ą± -ౣ౦-౯ಁ-ą²ƒą²…-ą²Œą²Ž-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-ą³ą³•ą³–ą³žą³ -ೣ೦-ą³Æą³±ą³²ą“-ą“ƒą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½-ൄെ-ൈൊ-ąµŽąµ—ąµ -ൣ൦-൯ൺ-ąµæą¶‚ą¶ƒą¶…-ą¶–ą¶š-නඳ-රලව-ą·†ą·Šą·-ą·”ą·–ą·˜-ෟ෦-෯ෲෳก-ąøŗą¹€-ą¹Žą¹-ą¹™ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ຟດ-ຣຄວສຫອ-ູົ-ຽເ-ą»„ą»†ą»ˆ-ą»ą»-ą»™ą»œ-ą»Ÿą¼€ą¼˜ą¼™ą¼ -༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ą¾—ą¾™-ྼ࿆က-၉ၐ-į‚į‚ -įƒ…įƒ‡įƒįƒ-ჺჼ-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -ኈኊ-įŠįŠ-ኰኲ-ኵኸ-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšį-įŸįŽ€-įŽįŽ -į“į-ᙬᙯ-į™æįš-ᚚᚠ-ᛪᛮ-į›øįœ€-įœŒįœŽ-įœ”įœ -įœ“į€-į“į -į¬į®-į°į²į³įž€-įŸ“įŸ—įŸœįŸįŸ -įŸ©į ‹-į į -᠙ᠠ-ᔷᢀ-ᢪᢰ-ᣵᤀ-į¤žį¤ -ᤫᤰ-᤻ᄆ-į„­į„°-ᄓᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-į©žį© -᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-į°·į±€-į±‰į±-ᱽ᳐-į³’į³”-ᳶ᳸᳹ᓀ-᷵᷼-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-ώᾀ-ᾓᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ΐῶ-įæ¼ā€Œā€ā€æā€ā”ā±āæā‚-ā‚œāƒ-⃜⃔⃄-āƒ°ā„‚ā„‡ā„Š-ā„“ā„•ā„™-ā„ā„¤ā„¦ā„Øā„Ŗ-ℭℯ-ℹℼ-ℿⅅ-ā…‰ā…Žā… -ā†ˆā°€-Ⱞⰰ-ā±žā± -ⳤⳫ-ⳳⓀ-ā“„ā“§ā“­ā“°-ⵧⵯ⵿-ā¶–ā¶ -ⶦⶨ-ⶮⶰ-ā¶¶ā¶ø-ⶾⷀ-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žā· -ⷿⸯ々-怇怔-〯〱-〵〸-〼ぁ-悖悙悚悝-ć‚Ÿć‚”-ヺー-ćƒæć„…-愭愱-憎憠-ㆺㇰ-ㇿ㐀-䶵一-éæŒź€€-ź’Œź“-ꓽꔀ-ꘌꘐ-ź˜«ź™€-꙯ꙓ-꙽ꙿ-źšźšŸ-ź›±źœ—-ꜟꜢ-źžˆźž‹-źžŽźž-źž­źž°źž±źŸ·-ꠧꔀ-ꔳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-ź„“ź„ -ꄼꦀ-ź§€ź§-꧙ꧠ-ꧾꨀ-ꨶꩀ-ź©ź©-꩙ꩠ-ꩶꩺ-ź«‚ź«›-ź«ź« -ꫯꫲ-꫶ꬁ-ꬆꬉ-ź¬Žź¬‘-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ź­Ÿź­¤ź­„źÆ€-ꯪ꯬꯭꯰-꯹가-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-龎ff-stﬓ-ļ¬—ļ¬-ﬨשׁ-זּטּ-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ﮱﯓ-ﵐ-ļ¶ļ¶’-ﷇﷰ-ﷻ︀-ļøļø -ļø­ļø³ļø“ļ¹-ļ¹ļ¹°-﹓ﹶ-ﻼ0-94-Z_a-zヲ-하-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ᅵ]")},K.prototype=H.prototype={processComment:function(){var e,t,n,r,i,o=Jn.bottomRightStack,a=o[o.length-1]; +if(!(this.type===Ln.Program&&this.body.length>0)){if(Jn.trailingComments.length>0){for(n=[],r=Jn.trailingComments.length-1;r>=0;--r)i=Jn.trailingComments[r],i.range[0]>=this.range[1]&&(n.unshift(i),Jn.trailingComments.splice(r,1));Jn.trailingComments=[]}else a&&a.trailingComments&&a.trailingComments[0].range[0]>=this.range[1]&&(n=a.trailingComments,delete a.trailingComments);if(a)for(;a&&a.range[0]>=this.range[0];)e=a,a=o.pop();if(e)e.leadingComments&&e.leadingComments[e.leadingComments.length-1].range[1]<=this.range[0]&&(this.leadingComments=e.leadingComments,e.leadingComments=void 0);else if(Jn.leadingComments.length>0)for(t=[],r=Jn.leadingComments.length-1;r>=0;--r)i=Jn.leadingComments[r],i.range[1]<=this.range[0]&&(t.unshift(i),Jn.leadingComments.splice(r,1));t&&t.length>0&&(this.leadingComments=t),n&&n.length>0&&(this.trailingComments=n),o.push(this)}},finish:function(){Jn.loc&&(this.loc.end={line:$n,column:Vn-Un},Jn.source&&(this.loc.source=Jn.source)),Jn.range&&(this.range[1]=Vn,this.start=this.range[0],this.end=Vn),Jn.attachComment&&this.processComment()},finishArrayExpression:function(e){return this.type=Ln.ArrayExpression,this.elements=e,this.finish(),this},finishArrowFunctionExpression:function(e,t,n,r){return this.type=Ln.ArrowFunctionExpression,this.id=null,this.params=e,this.defaults=t,this.body=n,this.rest=null,this.generator=!1,this.expression=r,this.finish(),this},finishAssignmentExpression:function(e,t,n){return this.type=Ln.AssignmentExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishBinaryExpression:function(e,t,n){return this.type="||"===e||"&&"===e?Ln.LogicalExpression:Ln.BinaryExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishBlockStatement:function(e){return this.type=Ln.BlockStatement,this.body=e,this.finish(),this},finishBreakStatement:function(e){return this.type=Ln.BreakStatement,this.label=e,this.finish(),this},finishCallExpression:function(e,t){return this.type=Ln.CallExpression,this.callee=e,this.arguments=t,B(e,t),this.finish(),this},finishCatchClause:function(e,t){return this.type=Ln.CatchClause,this.param=e,this.body=t,this.finish(),this},finishConditionalExpression:function(e,t,n){return this.type=Ln.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n,this.finish(),this},finishContinueStatement:function(e){return this.type=Ln.ContinueStatement,this.label=e,this.finish(),this},finishDebuggerStatement:function(){return this.type=Ln.DebuggerStatement,this.finish(),this},finishDoWhileStatement:function(e,t){return this.type=Ln.DoWhileStatement,this.body=e,this.test=t,this.finish(),this},finishEmptyStatement:function(){return this.type=Ln.EmptyStatement,this.finish(),this},finishExpressionStatement:function(e){return this.type=Ln.ExpressionStatement,this.expression=e,this.finish(),this},finishForStatement:function(e,t,n,r){return this.type=Ln.ForStatement,this.init=e,this.test=t,this.update=n,this.body=r,this.finish(),this},finishForInStatement:function(e,t,n){return this.type=Ln.ForInStatement,this.left=e,this.right=t,this.body=n?n:wn(this,"Statement"),this.each=!1,this.finish(),this},finishFunctionDeclaration:function(e,t,n,r){return this.type=Ln.FunctionDeclaration,this.id=e,this.params=t,this.defaults=n,this.body=r,this.rest=null,this.generator=!1,this.expression=!1,this.finish(),this},finishFunctionExpression:function(e,t,n,r){return this.type=Ln.FunctionExpression,this.id=e,this.params=t,this.defaults=n,this.body=r,this.rest=null,this.generator=!1,this.expression=!1,this.finish(),this},finishIdentifier:function(e){return this.type=Ln.Identifier,this.name=e,this.finish(),this},finishIfStatement:function(e,t,n){return this.type=Ln.IfStatement,this.test=e,this.consequent=t?t:wn(this,"Statement"),this.alternate=n,this.finish(),this},finishLabeledStatement:function(e,t){return this.type=Ln.LabeledStatement,this.label=e,this.body=t,this.finish(),this},finishLiteral:function(e){return this.type=Ln.Literal,this.value=e.value,this.raw=On.slice(e.start,e.end),e.regex&&(this.regex=e.regex),this.finish(),this},finishMemberExpression:function(e,t,n){return this.type=Ln.MemberExpression,this.computed="["===e,this.object=t,this.property=n,this.finish(),this},finishNewExpression:function(e,t){return this.type=Ln.NewExpression,this.callee=e,this.arguments=t,B(e,t),this.finish(),this},finishObjectExpression:function(e){return this.type=Ln.ObjectExpression,this.properties=e,this.finish(),this},finishPostfixExpression:function(e,t){return this.type=Ln.UpdateExpression,this.operator=e,this.argument=t,this.prefix=!1,this.finish(),this},finishProgram:function(e){return this.type=Ln.Program,this.body=e,this.finish(),this},finishProperty:function(e,t,n,r,i){return this.type=Ln.Property,this.key=t,this.value=n,this.kind=e,this.method=r,this.shorthand=i,this.finish(),this},finishReturnStatement:function(e){return this.type=Ln.ReturnStatement,this.argument=e,this.finish(),this},finishSequenceExpression:function(e){return this.type=Ln.SequenceExpression,this.expressions=e,this.finish(),this},finishSwitchCase:function(e,t){return this.type=Ln.SwitchCase,this.test=e,this.consequent=t,this.finish(),this},finishSwitchStatement:function(e,t){return this.type=Ln.SwitchStatement,this.discriminant=e,this.cases=t,this.finish(),this},finishThisExpression:function(){return this.type=Ln.ThisExpression,this.finish(),this},finishThrowStatement:function(e){return this.type=Ln.ThrowStatement,this.argument=e,this.finish(),this},finishTryStatement:function(e,t,n,r){return this.type=Ln.TryStatement,this.block=e,this.guardedHandlers=t,this.handlers=n,this.finalizer=r,this.finish(),this},finishUnaryExpression:function(e,t){return this.type="++"===e||"--"===e?Ln.UpdateExpression:Ln.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0,this.finish(),this},finishVariableDeclaration:function(e,t){return this.type=Ln.VariableDeclaration,this.declarations=e,this.kind=t,this.finish(),this},finishVariableDeclarator:function(e,t){return this.type=Ln.VariableDeclarator,this.id=e,this.init=t,this.finish(),this},finishWhileStatement:function(e,t){return this.type=Ln.WhileStatement,this.test=e,this.body=t?t:wn(this,"Statement"),this.finish(),this},finishWithStatement:function(e,t){return this.type=Ln.WithStatement,this.object=e,this.body=t?t:wn(this,"Statement"),this.finish(),this}},e.version="2.0.0",e.tokenize=hn,e.parse=mn,e.isIdentifierPart=l,e.isIdentifierStart=s,e.isIdentifierChar=l,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in Ln)Ln.hasOwnProperty(e)&&(t[e]=Ln[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()}),function(e,t){"use strict";"function"==typeof n&&n.amd?n("estraverse/estraverse",["exports"],t):t("undefined"!=typeof exports?exports:e.estraverse={})}(this,function(e){"use strict";function t(){}function n(e){var t,r,i={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],i[t]="object"==typeof r&&null!==r?n(r):r);return i}function r(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}function i(e,t){var n,r,i,o;for(r=e.length,i=0;r;)n=r>>>1,o=i+n,t(e[o])?r=n:(i=o+1,r-=n+1);return i}function o(e,t){var n,r,i,o;for(r=e.length,i=0;r;)n=r>>>1,o=i+n,t(e[o])?(i=o+1,r-=n+1):r=n;return i}function a(e,t){return S(t).forEach(function(n){e[n]=t[n]}),e}function s(e,t){this.parent=e,this.key=t}function l(e,t,n,r){this.node=e,this.path=t,this.wrap=n,this.ref=r}function c(){}function u(e){return null==e?!1:"object"==typeof e&&"string"==typeof e.type}function p(e,t){return(e===g.ObjectExpression||e===g.ObjectPattern)&&"properties"===t}function f(e,t){var n=new c;return n.traverse(e,t)}function d(e,t){var n=new c;return n.replace(e,t)}function h(e,t){var n;return n=i(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],n!==t.length&&(e.extendedRange[1]=t[n].range[0]),n-=1,n>=0&&(e.extendedRange[0]=t[n].range[1]),e}function m(e,t,r){var i,o,a,s,l=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(a=0,o=t.length;o>a;a+=1)i=n(t[a]),i.extendedRange=[0,e.range[0]],l.push(i);e.leadingComments=l}return e}for(a=0,o=t.length;o>a;a+=1)l.push(h(n(t[a]),r));return s=0,f(e,{enter:function(e){for(var t;se.range[0]));)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),l.splice(s,1)):s+=1;return s===l.length?y.Break:l[s].extendedRange[0]>e.range[1]?y.Skip:void 0}}),s=0,f(e,{leave:function(e){for(var t;se.range[1]?y.Skip:void 0}}),e}var g,v,y,b,x,S,E,w,_;v=Array.isArray,v||(v=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t(r),t(o),x=Object.create||function(){function e(){}return function(t){return e.prototype=t,new e}}(),S=Object.keys||function(e){var t,n=[];for(t in e)n.push(t);return n},g={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportBatchSpecifier:"ExportBatchSpecifier",ExportDeclaration:"ExportDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},b={AssignmentExpression:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","defaults","rest","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","body","superClass"],ClassExpression:["id","body","superClass"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportBatchSpecifier:[],ExportDeclaration:["declaration","specifiers","source"],ExportSpecifier:["id","name"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","defaults","rest","body"],FunctionExpression:["id","params","defaults","rest","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["id"],ImportNamespaceSpecifier:["id"],ImportSpecifier:["id","name"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handlers","handler","guardedHandlers","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},E={},w={},_={},y={Break:E,Skip:w,Remove:_},s.prototype.replace=function(e){this.parent[this.key]=e},s.prototype.remove=function(){return v(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},c.prototype.path=function(){function e(e,t){if(v(t))for(r=0,i=t.length;i>r;++r)e.push(t[r]);else e.push(t)}var t,n,r,i,o,a;if(!this.__current.path)return null;for(o=[],t=2,n=this.__leavelist.length;n>t;++t)a=this.__leavelist[t],e(o,a.path);return e(o,this.__current.path),o},c.prototype.type=function(){var e=this.current();return e.type||this.__current.wrap},c.prototype.parents=function(){var e,t,n;for(n=[],e=1,t=this.__leavelist.length;t>e;++e)n.push(this.__leavelist[e].node);return n},c.prototype.current=function(){return this.__current.node},c.prototype.__execute=function(e,t){var n,r;return r=void 0,n=this.__current,this.__current=t,this.__state=null,e&&(r=e.call(this,t.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=n,r},c.prototype.notify=function(e){this.__state=e},c.prototype.skip=function(){this.notify(w)},c.prototype["break"]=function(){this.notify(E)},c.prototype.remove=function(){this.notify(_)},c.prototype.__initialize=function(e,t){this.visitor=t,this.root=e,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback="iteration"===t.fallback,this.__keys=b,t.keys&&(this.__keys=a(x(this.__keys),t.keys))},c.prototype.traverse=function(e,t){var n,r,i,o,a,s,c,f,d,h,m,g;for(this.__initialize(e,t),g={},n=this.__worklist,r=this.__leavelist,n.push(new l(e,null,null,null)),r.push(new l(null,null,null,null));n.length;)if(i=n.pop(),i!==g){if(i.node){if(s=this.__execute(t.enter,i),this.__state===E||s===E)return;if(n.push(g),r.push(i),this.__state===w||s===w)continue;if(o=i.node,a=i.wrap||o.type,h=this.__keys[a],!h){if(!this.__fallback)throw new Error("Unknown node type "+a+".");h=S(o)}for(f=h.length;(f-=1)>=0;)if(c=h[f],m=o[c])if(v(m)){for(d=m.length;(d-=1)>=0;)if(m[d]){if(p(a,h[f]))i=new l(m[d],[c,d],"Property",null);else{if(!u(m[d]))continue;i=new l(m[d],[c,d],null,null)}n.push(i)}}else u(m)&&n.push(new l(m,c,null,null))}}else if(i=r.pop(),s=this.__execute(t.leave,i),this.__state===E||s===E)return},c.prototype.replace=function(e,t){function n(e){var t,n,i,o;if(e.ref.remove())for(n=e.ref.key,o=e.ref.parent,t=r.length;t--;)if(i=r[t],i.ref&&i.ref.parent===o){if(i.ref.key=0;)if(x=m[d],g=o[x])if(v(g)){for(h=g.length;(h-=1)>=0;)if(g[h]){if(p(a,m[d]))f=new l(g[h],[x,h],"Property",new s(g,h));else{if(!u(g[h]))continue;f=new l(g[h],[x,h],null,new s(g,h))}r.push(f)}}else u(g)&&r.push(new l(g,x,null,new s(o,x)))}}else if(f=i.pop(),c=this.__execute(t.leave,f),void 0!==c&&c!==E&&c!==w&&c!==_&&f.ref.replace(c),(this.__state===_||c===_)&&n(f),this.__state===E||c===E)return b.root;return b.root},e.version="1.8.1-dev",e.Syntax=g,e.traverse=f,e.replace=d,e.attachComments=m,e.VisitorKeys=b,e.VisitorOption=y,e.Controller=c}),n("orion/objects",[],function(){function e(e){for(var t=Object.prototype.hasOwnProperty,n=1,r=arguments.length;r>n;n++){var i=arguments[n];for(var o in i)t.call(i,o)&&(e[o]=i[o])}return e}return{clone:function(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var n=Object.create(Object.getPrototypeOf(t));return e(n,t),n},mixin:e,toArray:function(e){return Array.isArray(e)?e:[e]}}}),n("javascript/lru",[],function(){function e(e,t){var n=Object.create(null);return n._p=null,n._n=null,n._v={key:e,value:t},n}function t(e){this._max="undefined"==typeof e?-1:e,this._start=this._end=null,this._size=0,this._cache=Object.create(null)}return t.prototype.clear=function(){this._cache=Object.create(null),this._start=null,this._end=null,this._size=0},t.prototype.size=function(){return this._size},t.prototype.containsKey=function(e){return"undefined"!=typeof this._cache[e]},t.prototype.put=function(t,n){-1!==this._max&&this._size+1>this._max&&this.remove(this._end._v.key),this.remove(t);var r=e(t,n);this._start?(r=e(t,n),r._n=this._start,this._start._p=r,this._start=r):this._start=this._end=r,this._cache[t]=r,this._size++},t.prototype.get=function(e){if(this._size>0){var t=this._cache[e];if(t&&t._v)return t._v.value}return null},t.prototype.remove=function(e){if(0===this._size)return null;var t=this._cache[e];if(t){var n=t._p;this._end===t&&(this._end=n);var r=t._n;return this._start===t&&(this._start=t._n),n&&(n._n=r),r&&(r._p=n),delete this._cache[e],this._size--,t._v.value}return null},t.prototype.keys=function n(){var n=[];if(this._end)for(var e=this._end;e;)n.push(e._v.key),e=e._p;return n},t}),n("javascript/scriptResolver",["orion/objects","orion/Deferred","javascript/lru"],function(e,t,n){function r(e){this.fileclient=e,this.cache=new n(10)}return e.mixin(r.prototype,{getWorkspaceFile:function(e,n){return e?this._getFile(e,n):(new t).resolve(null)},setSearchLocation:function(e){this.searchLocation=e},getSearchLocation:function(){return this.searchLocation||this.fileclient.fileServiceRootURL()},_getFile:function(e,n){var r=this.cache.get(e);if(r)return(new t).resolve(r);var i=this,o=n?n:Object.create(null),a=o.ext?o.ext:"js",s=o.icon?o.icon:"../javascript/images/javascript.png",l=o.type?o.type:"JavaScript",c="."+a,u=this._removePrefix(e),p=u.length>1?u[1]:u[0],f=p.lastIndexOf("/"),d=p.slice(f+1);return this.fileclient.search({resource:i.searchLocation||this.fileclient.fileServiceRootURL(),keyword:d,sort:"Name asc",nameSearch:!0,fileType:a,start:0,rows:30}).then(function(e){var t=e.response,n=t.docs.length;if(t.numFound>0){r=[];var o=p.replace(/(?:\.?\.\/)*/,"");o=o.replace(new RegExp("\\"+c+"$"),""),o=o.replace(/\//g,"\\/");for(var a=0;n>a;a++){var u=t.docs[a],f=".*(?:"+o+")$";new RegExp(f).test(u.Location.slice(0,u.Location.length-c.length))&&r.push(i._newFileObj(u.Name,u.Location,i._trimName(u.Path),s,l))}if(r.length>0)return i.cache.put(p,r),r}return null})},_removePrefix:function(e){var t=e.indexOf("!");return t>-1?e.split("!"):[e]},resolveRelativeFiles:function(e,t,n){if(t&&t.length>0&&n){var r=n.location,i=[],o=this._removePrefix(e),a=o.length>1?o[1]:o[0];r=r.slice(0,r.lastIndexOf("/"));var s=!1;if("."!==a.charAt(0))r=this._appendPath(r,a);else{s=!0;var l=/^\.\.\//.exec(a);if(l){for(;null!=l;)r=r.slice(0,r.lastIndexOf("/")),a=a.slice(3),l=/^\.\.\//.exec(a);r=this._appendPath(r,a)}else{for(;/^\.\//.test(a);)a=a.slice(2);r=this._appendPath(r,a)}}for(var c=0;c-1&&(d=p.slice(0,f));var h=a.replace(/[/?|{}()*.#$^]/g,"\\$&"),m=new RegExp(h+"$");m.test(d)&&i.push(u)}}return i}return[]},_samePaths:function(e,t,n){if(null==e)return null==t;if("undefined"==typeof e)return"undefined"==typeof t;if(null==t)return null==e;if("undefined"==typeof t)return"undefined"==typeof e;if(e.contentType&&n.contentType&&e.contentType.name===n.contentType.name){var r=e.location?e.location:e.Location;if(!r)return!1;var i=r.lastIndexOf("."),o=r;if(i>-1&&(o=r.slice(0,i)),t===o)return!0;i=t.lastIndexOf(".");var a=t;return i>-1&&(a=t.slice(0,i)),o===a?!0:o===decodeURIComponent(a)?!0:!1}},_appendPath:function(e,t){if("string"==typeof e&&"string"==typeof t){var n=e;return"/"!==n.charAt(n.length-1)&&(n+="/"),n+="/"===t.charAt(0)?t.slice(1):t}return null},_trimName:function(e){return e.replace(/^(?:org\.eclipse\.orion\.client)?(?:\/)?bundles\//,"")},_newFileObj:function(e,t,n,r,i,o){var a=Object.create(null);return a.name=e,a.location=t?t:o.getServiceRootURL()+"/"+n,a.path=n,a.contentType=Object.create(null),r&&(a.contentType.icon=r),i&&(a.contentType.name=i),a}}),{ScriptResolver:r}}),n("orion/serialize",[],function(){function e(e){var t=e?JSON.parse(JSON.stringify(e)):e;return e instanceof Error&&(t.__isError=!0,t.lineNumber="number"==typeof t.lineNumber?t.lineNumber:e.lineNumber,t.message=t.message||e.message,t.name=t.name||e.name,t.stack=t.stack||e.stack),t}return{serializeError:e}}),n("javascript/astManager",["orion/Deferred","orion/objects","orion/serialize","javascript/lru","orion/metrics"],function(e,t,n,r,i){function o(e){if(this.parser=e,this.cache=new r(10),!this.parser)throw new Error("Missing parser")}var a={Unexpected:1,EndOfInput:2},s=Object.create(null);return s.type="Program",s.body=[],s.comments=[],s.tokens=[],s.range=[0,0],t.mixin(o.prototype,{getAST:function(t){var n=this;return t.getFileMetadata().then(function(r){var i=n._getKey(r),o=n.cache.get(i);return o?(new e).resolve(o):t.getText().then(function(e){return o=n.parse(e,r?r.location:"unknown"),n.cache.put(i,o),o})})},_getKey:function(e){return e&&e.location?e.location:"unknown"},parse:function(e,t){var r=Date.now();try{var o=this.parser.parse(e,{range:!0,loc:!0,tolerant:!0,tokens:!0,attachComment:!0,directSourceFile:t,deps:!0})}catch(a){o=s,o.range[1]=e&&"number"==typeof e.length?e.length:0,o.errors=[a]}var l=Date.now()-r;return i.logTiming("language tools","parse",l,"application/javascript"),o.errors&&(this._computeErrorTypes(o.errors),o.errors=o.errors.map(n.serializeError)),o.fileLocation=t,o.source=e,o},_computeErrorTypes:function(e){e&&Array.isArray(e)&&e.forEach(function(e){var t=e.message;e.message=t=t.replace(/^Line \d+: /,""),/^Unexpected/.test(t)&&(e.type=a.Unexpected,/end of input$/.test(t)&&(e.type=a.EndOfInput))})},onModelChanging:function(e){this.inputChanged?this.inputChanged=null:this.cache.remove(this._getKey(e.file))},onInputChanged:function(e){this.inputChanged=e}}),{ASTManager:o,ErrorTypes:a}}),n("orion/editor/eventTarget",[],function(){function e(){}return e.addMixin=function(t){var n=e.prototype;for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])},e.prototype={addEventListener:function(e,t,n){this._eventTypes||(this._eventTypes={});var r=this._eventTypes[e];r||(r=this._eventTypes[e]={level:0,listeners:[]});var i=r.listeners;i.push({listener:t,useCapture:n})},dispatchEvent:function(e){var t=e.type;this._dispatchEvent("pre"+t,e),this._dispatchEvent(t,e),this._dispatchEvent("post"+t,e)},_dispatchEvent:function(e,t){var n=this._eventTypes?this._eventTypes[e]:null;if(n){var r=n.listeners;try{if(n.level++,r)for(var i=0,o=r.length;o>i;i++)if(r[i]){var a=r[i].listener;"function"==typeof a?a.call(this,t):a.handleEvent&&"function"==typeof a.handleEvent&&a.handleEvent(t)}}finally{if(n.level--,n.compact&&0===n.level){for(var s=r.length-1;s>=0;s--)r[s]||r.splice(s,1);0===r.length&&delete this._eventTypes[e],n.compact=!1}}}},isListening:function(e){return this._eventTypes?void 0!==this._eventTypes[e]:!1},removeEventListener:function(e,t,n){if(this._eventTypes){var r=this._eventTypes[e];if(r){for(var i=r.listeners,o=0,a=i.length;a>o;o++){var s=i[o];if(s&&s.listener===t&&s.useCapture===n){0!==r.level?(i[o]=null,r.compact=!0):i.splice(o,1);break}}0===i.length&&delete this._eventTypes[e]}}}},{EventTarget:e}}),n("orion/regex",[],function(){function e(e){return e.replace(/([\\$\^*\/+?\.\(\)|{}\[\]])/g,"\\$&")}function t(e){var t=/^\s*\/(.+)\/([gim]{0,3})\s*$/.exec(e);return t?{pattern:t[1],flags:t[2]}:null}return{escape:e,parse:t}}),n("orion/util",[],function(){function e(e){var t=arguments;return e.replace(/\$\{([^\}]+)\}/g,function(e,n){return t[(n<<0)+1]})}function t(e,t){return e.createElementNS?e.createElementNS(y,t):e.createElement(t)}var n=navigator.userAgent,r=-1!==n.indexOf("MSIE")||-1!==n.indexOf("Trident")?document.documentMode:void 0,i=parseFloat(n.split("Firefox/")[1]||n.split("Minefield/")[1])||void 0,o=-1!==n.indexOf("Opera")?parseFloat(n.split("Version/")[1]):void 0,a=parseFloat(n.split("Chrome/")[1])||void 0,s=-1!==n.indexOf("Safari")&&!a,l=parseFloat(n.split("WebKit/")[1])||void 0,c=-1!==n.indexOf("Android"),u=-1!==n.indexOf("iPad"),p=-1!==n.indexOf("iPhone"),f=u||p,d=-1!==navigator.platform.indexOf("Mac"),h=-1!==navigator.platform.indexOf("Win"),m=-1!==navigator.platform.indexOf("Linux"),g="undefined"!=typeof document&&"ontouchstart"in document.createElement("input"),v=h?"\r\n":"\n",y="http://www.w3.org/1999/xhtml";return{formatMessage:e,createElement:t,isIE:r,isFirefox:i,isOpera:o,isChrome:a,isSafari:s,isWebkit:l,isAndroid:c,isIPad:u,isIPhone:p,isIOS:f,isMac:d,isWindows:h,isLinux:m,isTouch:g,platformDelimiter:v}}),n("orion/editor/textModel",["orion/editor/eventTarget","orion/regex","orion/util"],function(e,t,n){function r(e,t){this._lastLineIndex=-1,this._text=[""],this._lineOffsets=[0],this.setText(e),this.setLineDelimiter(t)}return r.prototype={destroy:function(){},find:function(e){this._text.length>1&&(this._text=[this._text.join("")]);var n=e.string,r=e.regex,i=n,o="",a=e.caseInsensitive;if(i)if(r){var s=t.parse(i);s&&(i=s.pattern,o=s.flags)}else i=n.replace(/([\\$\^*\/+?\.\(\)|{}\[\]])/g,"\\$&"),a&&(i=i.replace(/[iI\u0130\u0131]/g,"[Iiİı]"));var l,c=null;if(i){var u=e.reverse,p=e.wrap,f=e.wholeWord,d=e.start||0,h=e.end,m=null!==h&&void 0!==h;-1===o.indexOf("g")&&(o+="g"),-1===o.indexOf("m")&&(o+="m"),a&&-1===o.indexOf("i")&&(o+="i"),f&&(i="\\b"+i+"\\b");var g,v,y=this._text[0],b=0;if(m){var x=h>d?d:h,S=h>d?h:d;y=y.substring(x,S),b=x}var E=new RegExp(i,o);u?l=function(){var e=null;for(E.lastIndex=0;;){if(v=E.lastIndex,g=E.exec(y),v===E.lastIndex)return null;if(!g)break;if(g.index+b=0&&n>e))return null;var r=this._lineOffsets[e];if(n>e+1){var i=this.getText(r,this._lineOffsets[e+1]);if(t)return i;for(var o,a=i.length;10===(o=i.charCodeAt(a-1))||13===o;)a--;return i.substring(0,a)}return this.getText(r)},getLineAtOffset:function(e){var t=this.getCharCount();if(!(e>=0&&t>=e))return-1;var n=this.getLineCount();if(e===t)return n-1;var r,i,o=this._lastLineIndex;if(o>=0&&n>o&&(r=this._lineOffsets[o],i=n>o+1?this._lineOffsets[o+1]:t,e>=r&&i>e))return o;for(var a=n,s=-1;a-s>1;)if(o=Math.floor((a+s)/2),r=this._lineOffsets[o],i=n>o+1?this._lineOffsets[o+1]:t,r>=e)a=o;else{if(i>e){a=o;break}s=o}return this._lastLineIndex=a,a},getLineCount:function(){return this._lineOffsets.length},getLineDelimiter:function(){return this._lineDelimiter},getLineEnd:function(e,t){var n=this.getLineCount();if(!(e>=0&&n>e))return-1;if(n>e+1){var r=this._lineOffsets[e+1];if(t)return r;for(var i,o=this.getText(Math.max(this._lineOffsets[e],r-2),r),a=o.length;10===(i=o.charCodeAt(a-1))||13===i;)a--;return r-(o.length-a)}return this.getCharCount()},getLineStart:function(e){return e>=0&&e=e));)r+=n,i++;for(var o=r,a=i;i=t));)r+=n,i++;var s=r,l=i;if(a===l)return this._text[a].substring(e-o,t-s);var c=this._text[a].substring(e-o),u=this._text[l].substring(0,t-s);return c+this._text.slice(a+1,l).join("")+u},onChanging:function(e){return this.dispatchEvent(e)},onChanged:function(e){return this.dispatchEvent(e)},setLineDelimiter:function(e,t){if("auto"===e&&(e=void 0,this.getLineCount()>1&&(e=this.getText(this.getLineEnd(0),this.getLineEnd(0,!0)))),this._lineDelimiter=e?e:n.platformDelimiter,t){var r=this.getLineCount();if(r>1){for(var i=new Array(r),o=0;r>o;o++)i[o]=this.getLine(o);this.setText(i.join(this._lineDelimiter))}}},setText:function(e,t,n){if(void 0===e&&(e=""),void 0===t&&(t=0),void 0===n&&(n=this.getCharCount()),t!==n||""!==e){for(var r=this.getLineAtOffset(t),i=this.getLineAtOffset(n),o=t,a=n-t,s=i-r,l=e.length,c=0,u=this.getLineCount(),p=0,f=0,d=0,h=[];;){if(-1!==p&&d>=p&&(p=e.indexOf("\r",d)),-1!==f&&d>=f&&(f=e.indexOf("\n",d)),-1===f&&-1===p)break;d=-1!==p&&-1!==f?p+1===f?f+1:(f>p?p:f)+1:-1!==p?p+1:f+1,h.push(t+d),c++}var m={type:"Changing",text:e,start:o,removedCharCount:a,addedCharCount:l,removedLineCount:s,addedLineCount:c};if(this.onChanging(m),0===h.length){var g,v=this.getLineStart(r);g=u>i+1?this.getLineStart(i+1):this.getCharCount(),t!==v&&(e=this.getText(v,t)+e,t=v),n!==g&&(e+=this.getText(n,g),n=g)}for(var y=l-a,b=r+s+1;u>b;b++)this._lineOffsets[b]+=y;var x,S=5e4,E=S;if(h.length=t));)k+=_,C++;for(var T=k,L=C;C=n));)k+=_,C++;var A=k,P=C,j=this._text[L],F=this._text[P],O=j.substring(0,t-T),I=F.substring(n-A),N=[L,P-L+1];O&&N.push(O),e&&N.push(e),I&&N.push(I),Array.prototype.splice.apply(this._text,N),0===this._text.length&&(this._text=[""]);var R={type:"Changed",start:o,removedCharCount:a,addedCharCount:l,removedLineCount:s,addedLineCount:c};this.onChanged(R)}}},e.EventTarget.addMixin(r.prototype),{TextModel:r}}),n("eslint/conf/globals",[],function(){return{builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,Date:!1,DataView:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},nonstandard:{escape:!1,unescape:!1},browser:{addEventListener:!1,alert:!1,applicationCache:!1,atob:!1,Audio:!1,AudioProcessingEvent:!1,BeforeUnloadEvent:!1,Blob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,crypto:!1,CSS:!1,CustomEvent:!1,DataView:!1,Debug:!1,defaultStatus:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DOMParser:!1,DragEvent:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FormData:!1,frameElement:!1,frames:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,history:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,Intl:!1,KeyboardEvent:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,navigator:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProgressEvent:!1,prompt:!1,Range:!1,removeEventListener:!1,requestAnimationFrame:!1,resizeBy:!1,resizeTo:!1,screen:!1,screenX:!1,screenY:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,self:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,showModalDialog:!1,status:!1,stop:!1,StorageEvent:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,TouchEvent:!1,UIEvent:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},worker:{importScripts:!0,postMessage:!0,self:!0},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,DataView:!1,exports:!0,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,"throws":!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,target:!1,tempdir:!1,test:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,ObjectId:!1,PlanCache:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1}} +}),n("eslint/conf/environments",["./globals"],function(e){var t={builtin:e.builtin,browser:{globals:e.browser},node:{globals:e.node,ecmaFeatures:{globalReturn:!0}},amd:{globals:e.amd},mocha:{globals:e.mocha},jasmine:{globals:e.jasmine},phantomjs:{globals:e.phantom},jquery:{globals:e.jquery},prototypejs:{globals:e.prototypejs},shelljs:{globals:e.shelljs},meteor:{globals:e.meteor}};return t}),n("javascript/finder",["estraverse/estraverse","eslint/conf/environments"],function(e,t){e.VisitorKeys.RecoveredNode||(e.VisitorKeys.RecoveredNode=[]);var n={visitor:null,punc:"\n \r (){}[]:;,.+=-*^&@!%~`'\"/\\",findWord:function(e,t){if(e&&t>-1){for(var n=this.punc.indexOf(e.charAt(t))>-1,r=n&&t>0?t-1:t;r>=0&&!(this.punc.indexOf(e.charAt(r))>-1);)r--;var i=r;for(r=t;r<=e.length&&!(this.punc.indexOf(e.charAt(r))>-1);)r++;return(i===t||n&&i===t-1)&&r===t?null:i===t?e.substring(i,r):e.substring(i+1,r)}return null},findNode:function(t,n,r){var i=null,o=r&&r.parents?[]:null,a=r&&r.next?r.next:!1;if(null!=t&&t>-1&&n&&e.traverse(n,{enter:function(n){if(n.type&&n.range){if(!a&&n.type===e.Syntax.Program&&te.range[1]&&o.pop()}}),i&&o&&o.length>0){var s=o[o.length-1];"Program"!==s.type&&s.range[0]===i.range[0]&&s.range[1]===i.range[1]&&o.pop(),i.parents=o}return i},findNodeAfterComment:function(t,n){var r=null,i=[];if(Array.isArray(t.range)&&n){var o=t.range[1];e.traverse(n,{enter:function(t,n){if(t.type&&t.range)if(n&&i.push(n),o>t.range[0])r=t;else if(r=t,t.type!==e.Syntax.Program)return e.VisitorOption.Break}})}return r&&(r.parents=i),r},findToken:function(e,t){if(null!=e&&e>-1&&t&&t.length>0){var n,r=0,i=t.length-1,o=0;if(n=t[0],e>=n.range[0]&&e=n.range[0])return n.index=i,n;for(n=null;i>=r;){if(o=Math.floor((r+i)/2),n=t[o],en.range[1])r=o+1;else if(e===n.range[1]){var a=t[o+1];if(a.range[0]!==n.range[1])return n.index=o,n;r=o+1}else if(e>=n.range[0]&&e=n.range[0]&&e<=n.range[1]?(n.index=r,n):null}}return null},findComment:function(e,t){if(t.comments){for(var n=t.comments,r=n.length,i=0;r>i;i++){var o=n[i];if(o.range[0]=e)return o;if(e===t.range[1]&&e===o.range[1])return o;if(e>t.range[1]&&e<=o.range[1])return o;if(o.range[0]>e)return null}return null}},findScriptBlocks:function(e,t){var n=[],r=null,i=/<\s*script([^>]*)(?:\/>|>((?:.|\r?\n)*?)<\s*\/script[^<>]*>)/gi,o=/(type|language)\s*=\s*"([^"]*)"/i,a=/src\s*=\s*"([^"]*)"/i,s=this.findHtmlCommentBlocks(e,t);e:for(;null!=(r=i.exec(e));){var l=r[1],c=r[2],u=null;if(l){var p=o.exec(l);if(p&&p[2]){var f=p[2];if("language"===p[1]&&(f="text/"+f),!/^(application|text)\/(ecmascript|javascript(\d.\d)?|livescript|jscript|x\-ecmascript|x\-javascript)$/gi.test(f))continue}var d=a.exec(l);d&&(u=d[1])}if(c||!u){var h=r.index+r[0].indexOf(">")+1;if(null==t||t>=h&&h+c.length>=t){for(var m=0;m=h)continue e;n.push({text:c,offset:h,dependencies:u})}}else n.push({text:"",offset:0,dependencies:u})}var g={blur:!0,change:!0,click:!0,dblclick:!0,focus:!0,keydown:!0,keypress:!0,keyup:!0,load:!0,mousedown:!0,mousemove:!0,mouseout:!0,mouseover:!0,mouseup:!0,reset:!0,select:!0,submit:!0,unload:!0},v=/\s+on(\w*)(\s*=\s*")([^"]*)"/gi,y=0;e:for(;null!=(r=v.exec(e));){y++;var b=r[1],x=r[2];if(c=r[3],b&&b in g){if(!c||!x)continue;if(h=r.index+2+b.length+x.length,null==t||t>=h&&h+c.length>=t){for(var S=0;S=h)continue e;n.push({text:c,offset:h,isWrappedFunctionCall:!0})}}}return n},findHtmlCommentBlocks:function(e,t){for(var n=[],r=null,i=//gi;null!=(r=i.exec(e));){var o=r[1];o.length<1||(null==t||r.index<=t&&r.index+o.length>=r.index)&&n.push({text:o,start:r.index,end:r.index+o.length})}return n},findESLintEnvForMember:function(e){var n=Object.keys(t);if(n)for(var r=n.length,i=0;r>i;i++){var o=t[n[i]];if("undefined"!=typeof o[e])return n[i];var a=o.globals;if(a&&"undefined"!=typeof a[e])return n[i]}return null},findDirective:function(e,t){if(e&&"undefined"!=typeof t)for(var n=e.comments.length,r=0;n>r;r++){var i=/^\s*(eslint-\w+|eslint|globals?)(\s|$)/.exec(e.comments[r].value);if(null!=i&&"undefined"!=typeof i&&i[1]===t)return e.comments[r]}return null},findCommentForNode:function r(e){var t=e.leadingComments,n=null;if(t&&t.length>0){if(n=t[t.length-1],"Block"===n.type)return n.node=e,n}else if("Property"===e.type){if(n=r(e.key))return n.node=e,n}else if("FunctionDeclaration"===e.type&&(n=r(e.id)))return n.node=e,n;return n=Object.create(null),n.node=e,n.value="",n},findParentFunction:function(e){if(e)if(e.parents)for(var t=e.parents,n=t.pop();n;){if("FunctionDeclaration"===n.type||"FunctionExpression"===n.type)return n;n=t.pop()}else if(e.parent)for(var n=e.parent;n;){if("FunctionDeclaration"===n.type||"FunctionExpression"===n.type)return n;n=n.parent}return null}};return n}),n("javascript/compilationUnit",["orion/Deferred"],function(e){function t(e,t,n){this._blocks=e,this._metadata=t,this._ec=n,this._deps=[]}return t.prototype._init=function(){var e="this.",t=0;this._source="",this._blocks.sort(function(e,t){var n=e.offset?e.offset:0,r=t.offset?t.offset:0;return n-r});for(var n=0;n0;)this._source+=" ",i--;this._source+=e,this._source+=r.text,r.text&&";"!==r.text.charAt(r.text.length-1)&&(this._source+=";")}else{for(;i>0;)this._source+=" ",i--;this._source+=r.text}t=this._source.length}},t.prototype.getSource=function(){return this._source||this._init(),this._source},t.prototype.validOffset=function(e){if(!this._blocks||this._blocks.length<1||0>e)return!1;for(var t=0;t=r&&e<=r+n.text.length)return!0}return!1},t.prototype.getEditorContext=function(){var t=Object.create(null),n=this;return t.getText=function(){return(new e).resolve(n.getSource())},t.getFileMetadata=function(){return(new e).resolve(n._metadata)},t.setText=function(t,r,i){return n._ec?n._ec.setText(t,r,i):(new e).resolve(null)},t},t.prototype.getDependencies=function(){return this._deps},t}),n("javascript/quickFixes",["orion/objects","orion/Deferred","orion/editor/textModel","javascript/finder","javascript/compilationUnit","orion/metrics"],function(e,t,n,r,i,o){function a(e){this.astManager=e}function s(e,t){if(!e)return 0;if(0>t)return 0;for(var n=t,r=e[n];n>-1&&!/[\r\n]/.test(r);)r=e[--n];return n+1}function l(e,t){if(!e)return 0;if(0>t)return 0;for(var n=t,r=e[n];nt)return"";for(var r=t,i=e[r],o=n?" ":"";" "===i||" "===i;)o+=i,i=e[++r];return o}function u(e,t,n){if(!e||!t)return"";for(var r=t.start,i=e[r],o="",a=!1;r>=t.start&&r<=t.end;){if("\n"===i){a=!0;break}i=e[r++]}return a||(o+="\n"),"undefined"!=typeof n&&(o+=n),o}function p(e,t){return"*"===e.charAt(t+1)?"*"===e.charAt(t+2)?3:2:0}function f(e,t,n,r){return r&&""!==e.slice(t.length).trim()?e.trim()+", "+n:e.trim()+" "+n}function d(e,t){if(e&&e.length)for(var n=0;nt||t>e.length)){var r=e[t];return 1===e.length?n.setText("",r.range[0],r.range[1]):t===e.length-1?n.setText("",e[t-1].range[1],r.range[1]):r?n.setText("",r.range[0],e[t+1].range[0]):null}}function m(e,t,n,r){if(e.leadingComments&&e.leadingComments.length>0)for(var i=e.leadingComments.length-1;i>-1;i--){var o=e.leadingComments[i],a=new RegExp("(\\s*[*]+\\s*(?:@param)\\s*(?:\\{.*\\})?\\s*(?:"+r+")+.*)").exec(o.value);if(a){var s=o.range[0]+a.index+p(t,o.range[0]);return n.setText("",s,s+a[1].length)}}return null}function g(e,t){if(t.leadingComments)for(var n=0;n-1)return!0}return!1}function v(e){if("Program"===e.type&&e.body&&e.body.length>0){var t=e.body[0],n=-1;switch(t.type){case"FunctionDeclaration":if(n=y(t),n>-1)return n;if(n=y(t.id),n>-1)return n;break;case"ExpressionStatement":if(t.expression&&t.expression.right&&"FunctionExpression"===t.expression.right.type){if(n=y(t),n>-1)return n;if(n=y(t.expression.left),n>-1)return n}}}return e.range[0]}function y(e){if(e.leadingComments&&e.leadingComments.length>0){var t=e.leadingComments[e.leadingComments.length-1];if(/(?:@param|@return|@returns|@type|@constructor|@name|@description)/gi.test(t.value))return t.range[0]}return-1}return e.mixin(a.prototype,{execute:function(e,t){var n=t.annotation.fixid?t.annotation.fixid:t.annotation.id;delete t.annotation.fixid,o.logEvent("language tools","quickfix",n,"application/javascript");var a=this[n];if(a){var s=this;return e.getFileMetadata().then(function(n){return"text/html"===n.contentType.id?e.getText().then(function(o){var l=r.findScriptBlocks(o);if(l&&l.length>0){var c=new i(l,n,e);return a(c.getEditorContext(),t.annotation,s.astManager)}}):a(e,t.annotation,s.astManager)})}return null},eqeqeq:function(e,t){var n=/^.*\'(\!==|===)\'/.exec(t.title);return e.setText(n[1],t.start,t.end)},"no-comma-dangle":function(e,t){return e.setText("",t.start,t.end)},"no-empty-block":function(e,t){return e.getText().then(function(n){var r=s(n,t.start),i="//TODO empty block",o=c(n,r,!0);return i="\n"+o+i,i+=u(n,t),e.setText(i,t.start+1,t.start+1)})},"no-extra-semi":function(e,t){return e.setText("",t.start,t.end)},"no-fallthrough":function(e,t){return e.getText().then(function(n){var r=s(n,t.start),i="//$FALLTHROUGH$",o=c(n,r);return i+=u(n,t,o),e.setText(i,t.start,t.start)})},"no-fallthrough-break":function(e,t){return e.getText().then(function(n){var r=s(n,t.start),i="break;",o=c(n,r);return i+=u(n,t,o),e.setText(i,t.start,t.start)})},"no-new-array":function(e,t,n){return n.getAST(e).then(function(n){var i=r.findNode(t.start,n,{parents:!0});if(i&&i.parents){var o=i.parents[i.parents.length-1];if("CallExpression"===o.type||"NewExpression"===o.type){var a="";if(o.arguments.length>0){var s=o.arguments[0].range[0],l=o.arguments[o.arguments.length-1].range[1];a+="["+n.source.substring(s,l)+"]"}else a+="[]";return e.setText(a,o.start,o.end)}}})},"no-reserved-keys":function(e,t,n){return n.getAST(e).then(function(n){var i=r.findNode(t.start,n,{parents:!0});return i&&"Identifier"===i.type?e.setText('"'+i.name+'"',i.range[0],i.range[1]):void 0})},"no-sparse-arrays":function(e,t,i){return i.getAST(e).then(function(i){var o=r.findNode(t.start,i,{parents:!0});if(o&&"ArrayExpression"===o.type){var a=new n.TextModel(i.source.slice(t.start,t.end)),s=o.elements.length,l=s-1,c=o.elements[l];if(null===c){var u=r.findToken(o.range[1],i.tokens);for("]"!==u.value&&(u=i.tokens[u.index-1]);l>-1&&(c=o.elements[l],null===c);l--);if(null===c)return e.setText(a.getText(),t.start+1,t.end-1);a.setText("",c.range[1]-t.start,u.range[0]-t.start)}for(var p=c;l>-1;l--)c=o.elements[l],null!==c&&c.range[0]!==p.range[0]&&(a.setText(", ",c.range[1]-t.start,p.range[0]-t.start),p=c);return null===c&&null!==p&&a.setText("",o.range[0]+1-t.start,p.range[0]-t.start),e.setText(a.getText(),t.start,t.end)}return null})},"no-throw-literal":function(e,t,n){return n.getAST(e).then(function(n){var i=r.findNode(t.start,n,{parents:!0}),o=i.raw||n.source.slice(i.range[0],i.range[1]);return e.setText("new Error("+o+")",t.start,t.end)})},"no-undef-defined":function(e,t,n){function i(e){if(e&&e.parents&&e.parents.length>0&&"Identifier"===e.type){var t=e.parents.pop();return t&&("AssignmentExpression"===t.type||"UpdateExpression"===t.type)}return!1}var o=/^'(.*)'/.exec(t.title);return null!=o&&"undefined"!=typeof o?n.getAST(e).then(function(n){var a=null,s=0,l=o[1],c=r.findNode(t.start,n,{parents:!0});if(i(c)&&(l+=":true"),a=r.findDirective(n,"globals"))return s=a.range[0]+2,e.setText(f(a.value,"globals",l),s,s+a.value.length);var u=v(n);return e.setText("/*globals "+l+" */\n",u,u)}):null},"no-undef-defined-inenv":function(e,t,n){var i=/^'(.*)'/.exec(t.title);return null!=i&&"undefined"!=typeof i?n.getAST(e).then(function(t){var n=null,o=0;if("console"===i[1])var a="node";else a=r.findESLintEnvForMember(i[1]);if(a){if(n=r.findDirective(t,"eslint-env"))return o=p(t.source,n.range[0])+n.range[0],e.setText(f(n.value,"eslint-env",a,!0),o,o+n.value.length);var s=v(t);return e.setText("/*eslint-env "+a+" */\n",s,s)}}):null},"no-unreachable":function(e,t){return e.setText("",t.start,t.end)},"no-unused-params":function(e,n,i){return i.getAST(e).then(function(i){var o=r.findNode(n.start,i,{parents:!0});if(o){for(var a=[],s=o.parents.pop(),l=-1,c=0;c0&&(p=m(f,i.source,e,s.params[l].name),p&&a.push(p));else{var d=f.arguments;for(c=0;c0){var o=i.parents.pop();if("VariableDeclarator"===o.type){var a=i.parents.pop();if("VariableDeclaration"===a.type){if(1===a.declarations.length)return e.setText("",a.range[0],a.range[1]);var s=d(a.declarations,o);if(s>-1)return h(a.declarations,s,e)}}}return null})},"no-unused-vars-unused-funcdecl":function(e,t,n){return n.getAST(e).then(function(n){var i=r.findNode(t.start,n,{parents:!0});if(i&&i.parents&&i.parents.length>0){var o=i.parents.pop();if("FunctionDeclaration"===o.type)return e.setText("",o.range[0],o.range[1])}return null})},"no-unused-params-expr":function(e,t,n){function i(t,n,r){if(Array.isArray(r)){var i=r[r.length-1];if("Block"===i.type){var o=i.range[0]+i.value.length+p(n.source,i.range[0]),a=s(n.source,o),l=c(n.source,a),u="* @callback\n"+l;return e.setText(u,o-1,o-1)}}return a=s(n.source,t.range[0]),l=c(n.source,a),e.setText("/**\n"+l+" * @callback\n"+l+" */\n"+l,t.range[0],t.range[0])}return n.getAST(e).then(function(n){var o=r.findNode(t.start,n,{parents:!0});if(o&&o.parents&&o.parents.length>0){var a,s=o.parents.pop(),l=o.parents.pop();switch(l.type){case"Property":g("@callback",l)||g("@callback",l.key)||(a=i(l,n,l.leadingComments?l.leadingComments:l.key.leadingComments));break;case"AssignmentExpression":var c=l.left;"MemberExpression"!==c.type||g("@callback",c)?"Identifier"!==c.type||g("@callback",c)||(a=i(l.left,n,c.leadingComments)):a=i(c,n,c.leadingComments);break;case"VariableDeclarator":var u=l;l=l.parent,l.declarations[0].range[0]==u.range[0]&&l.declarations[0].range[1]===u.range[1]?a=i(l,n,u.id.leadingComments):g("@callback",u.id)||(a=i(u,n,u.id.leadingComments))}if(!a&&!g("@callback",s))return e.setText("/* @callback */ ",s.range[0],s.range[0])}return a})},"use-isnan":function(e,t,n){return n.getAST(e).then(function(n){var i=r.findNode(t.start,n,{parents:!0});if(i&&i.parents&&i.parents.length>0){var o=i.parents.pop();if("BinaryExpression"===o.type){var a;if("Identifier"===o.left.type&&"NaN"===o.left.name?a=o.right:"Identifier"===o.right.type&&"NaN"===o.right.name&&(a=o.left),a)return e.getText(a.range[0],a.range[1]).then(function(t){return e.setText("isNaN("+t+")",o.range[0],o.range[1])})}}})},semi:function(e,t){return e.setText(";",t.end,t.end)},"missing-nls":function(e,t,n){return t.data&&"number"==typeof t.data.indexOnLine?n.getAST(e).then(function(n){var r=l(n.source,t.end),i=" //$NON-NLS-"+(t.data.indexOnLine+1)+"$";return e.setText(i,r,r)}):null}}),a.prototype.contructor=a,{JavaScriptQuickfixes:a}}),n("javascript/nls/messages",{root:!0}),n("javascript/nls/root/messages",{pluginName:"Orion JavaScript Tool Support",pluginDescription:"This plug-in provides JavaScript tools support for Orion, like editing, search, navigation, validation, and code completion.",error:"Error",warning:"Warning",ignore:"Ignore",ternContentAssist:"Tern JavaScript content assist",prefCodeStyle:"Code Style",prefBestPractices:"Best Practices",prefPotentialProblems:"Potential Programming Problems",sourceOutline:"Source Outline",sourceOutlineTitle:"JavaScript source outline",contentAssist:"JavaScript content assist",eslintValidator:"JavaScript Validator",missingCurly:"Statements not enclosed in braces:",noCaller:"Discouraged 'arguments.caller' or 'arguments.callee' use:",noCommaDangle:"Trailing commas in object expressions:",noCondAssign:"Assignments in conditional expressions:",noConsole:"Discouraged console use in browser code:",noConstantCondition:"Constant as conditional expression:",noRegexSpaces:"Multiple spaces in regular expressions:",noReservedKeys:"Reserved words used as property keys:",noReservedKeysFixName:"Surround key with quotes",noEqeqeq:"Discouraged '==' use:",noDebugger:"Discouraged 'debugger' statement use:",noWith:"Discouraged 'with' statement use:",noEval:"Discouraged 'eval()' use:",noImpliedEval:"Discouraged implied 'eval()' use:",noDupeKeys:"Duplicate object keys:",noIterator:"Discouraged __iterator__ property use:",noProto:"Discouraged __proto__ property use:",noUndefInit:"Explicitly initializing variables to undefined:",useIsNaN:"NaN not compared with isNaN():",useIsNanFixName:"Use isNaN()",missingDoc:"Missing JSDoc:",noUnreachable:"Unreachable code:",noFallthrough:"Switch case fall-through:",useBeforeDefine:"Member used before definition:",noEmptyBlock:"Undocumented empty block:",newParens:"Missing parentheses in constructor call:",noNewArray:"Discouraged 'new Array()':",noNewArrayFixName:"Convert to array literal",noNewFunc:"Discouraged 'new Function()':",noNewObject:"Discouraged 'new Object()':",noNewWrappers:"Discouraged wrapper objects:",missingSemi:"Missing semicolons:",unusedVars:"Unused variables:",varRedecl:"Variable re-declarations:",varShadow:"Variable shadowing:",undefMember:"Undeclared global reference:",unnecessarySemis:"Unnecessary semicolons:",unusedParams:"Unused parameters:",unsupportedJSLint:"Unsupported environment directive:",noThrowLiteral:"Literal used in 'throw':",missingNls:"Non-externalized string literals (missing $NON-NLS$ tag):",generateDocName:"Generate Element Comment",generateDocTooltip:"Generate a JSDoc-like comment for the selected JavaScript element",renameElement:"Rename Element",renameElementTooltip:"Rename the selected JavaScript element",renameFailedTimedOut:"Could not rename element - operation timed out",openDeclName:"Open Declaration",openDeclTooltip:"Open the declaration of the selected element",openImplName:"Open Implementation",openImplTooltip:"Open the implementation of the selected element",workspaceRefsName:"Workspace",workspaceRefsTooltip:"Show all references to the selection in the workspace",projectRefsName:"Project",projectRefsTooltip:"Show all references to the selection in the current project",referencesMenuName:"References",referencesMenuTooltip:"Show different kinds of references",noDeclTimedOut:"No declaration was found - operation timed out",validTypeof:"Invalid 'typeof' comparison:",noSparseArrays:"Sparse array declarations:",javascriptValidation:"Javascript Validation",jsHover:"JavaScript Hover Provider",removeExtraSemiFixName:"Remove extra semicolon",addFallthroughCommentFixName:"Add $FALLTHROUGH$ comment",addEmptyCommentFixName:"Comment empty block",addESLintEnvFixName:"Add to eslint-env directive",addESLintGlobalFixName:"Add to globals directive",removeUnusedParamsFixName:"Remove parameter",commentCallbackFixName:"Add @callback to function",eqeqeqFixName:"Update operator",unreachableFixName:"Remove unreachable code",sparseArrayFixName:"Convert to normal array",semiFixName:"Add missing ';'",radix:"Missing radix parameter to parseInt():",unusedVarsUnusedFixName:"Remove unused variable",unusedFuncDeclFixName:"Remove unused function",noCommaDangleFixName:"Remove extra ','",addBBreakFixName:"Add break statement",noShadowGlobals:"Global shadowing:",noThrowLiteralFixName:"Change to Error",missingNlsFixName:"Add missing $NON-NLS$ tag",funcProposalDescription:" - The name of the function",funcParamProposalDescription:" - Function parameter",eslintRuleProposalDescripton:" - ESLint rule",eslintEnvProposalDescription:" - ESLint environment name",onlineDocumentationProposalEntry:"\n\n[Online documentation](${0})",keywordProposalDescription:" - Keyword",keywordHoverProposal:"ECMAScript reserved keyword",reloadPluginCmd:"Reload",reloadPluginCmdTooltip:"Reload plug-in",reloadAllPluginsCmd:"Reload All",reloadAllPluginsCmdTooltip:"Reload all plug-ins",templateHoverHeader:"Template source code:\n\n",templateAssistHeader:"Templates",keywordAssistHeader:"Keywords",ternPlugins:"Tern Plug-ins",noTernPluginsAvailable:"No Tern plug-ins are currently loaded. This may be because you have not yet activated content assist in a JavaScript file. Tern plug-ins provide type information and code templates for JavaScript.",noDeclFound:"Could not find declaration",deprecatedHoverTitle:"Deprecated.",parametersHoverTitle:"Parameters:",returnsHoverTitle:"Returns:",throwsHoverTitle:"Throws:",callbackHoverTitle:"Callback:",sinceHoverTitle:"Since:",seeAlsoHoverTitle:"See Also:",openFileForTitle:"Open file for",functionDecls:"Function Declarations",functionCalls:"Function Calls",propAccess:"Property Access",propWrite:"Property Write",varAccess:"Variable Access",varWrite:"Variable Write",varDecls:"Variable Declarations",regex:"Regular Expressions",strings:"Strings",blockComments:"Block Comments",lineComments:"Line Comments",partial:"Partial Matches",uncategorized:"Uncategorized",parseErrors:"Parse Errors",noFileContents:"Could not compute references: failed to compute file text content",noFileMeta:"Could not compute references: failed to compute file metadata",cannotComputeRefs:"Cannot compute references: ${0}",notAnIdentifier:"Cannot compute references at the selected location: Location is not an identifier"}),n("orion/editor/templates",[],function(){function e(e,t){return t.substring(e.length)}function t(e,t,n,r){this.prefix=e,this.description=t,this.template=n,this.name=r,this._parse()}function n(e,t){this._keywords=e||[],this._templates=[],this.addTemplates(t||[])}var r="${tab}",i="${delimiter}",o="${cursor}";return t.prototype={getProposal:function(e,t,n){var a,s=t-e.length,l={},c=void 0!==n.delimiter?n.delimiter:"\n";n.indentation&&(c+=n.indentation);for(var u=void 0!==n.tab?n.tab:" ",p=0,f=this.variables,d=this.segments,h=[],m=0;mt.name?1:0}),r.splice(0,0,{proposal:"",description:"Templates",style:"noemphasis_title",unselectable:!0})),r},removePrefix:function(t,n){var r=n.overwrite=n.proposal.substring(0,t.length)!==t;r||(n.proposal=e(t,n.proposal))},isValid:function(){return!0}},{Template:t,TemplateContentAssist:n}}),n("javascript/contentAssist/templates",["orion/editor/templates"],function(e){function t(t){if(t.t)return t.t;var n=new e.Template(t.prefix,t.description,t.template,t.name);return t.t=n,n}function n(e){for(var n=[],r=i.length,o=0;r>o;o++){var a=i[o];a.nodes&&a.nodes[e]&&n.push(a)}return n.map(t,this)}var r={type:"link",values:["boolean","function","number","object","string","symbol","undefined"],title:"Typeof Options",style:"emphasis"},i=[{prefix:"eslint",name:"eslint",nodes:{top:!1,member:!1,prop:!1,doc:!0},description:" - ESLint rule enable or disable",template:"eslint ${rule-id}:${0/1} ${cursor}"},{prefix:"eslint-env",name:"eslint-env",nodes:{top:!1,member:!1,prop:!1,doc:!0},description:" - ESLint environment directive",template:"eslint-env ${library}"},{prefix:"eslint-enable",name:"eslint-enable",nodes:{top:!1,member:!1,prop:!1,doc:!0},description:" - ESLint rule enablement directive",template:"eslint-enable ${rule-id} ${cursor}"},{prefix:"eslint-disable",name:"eslint-disable",nodes:{top:!1,member:!1,prop:!1,doc:!0},description:" - ESLint rule disablement directive",template:"eslint-disable ${rule-id} ${cursor}"},{prefix:"@author",name:"@author",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Author JSDoc tag",template:"@author ${cursor}"},{prefix:"@callback",name:"@callback",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Callback JSDoc tag",template:"@callback ${cursor}"},{prefix:"@class",name:"@class",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Class JSDoc tag",template:"@class ${cursor}"},{prefix:"@constructor",name:"@constructor",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Constructor JSDoc tag",template:"@constructor ${cursor}"},{prefix:"@deprecated",name:"@deprecated",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Deprecated JSDoc tag",template:"@deprecated ${cursor}"},{prefix:"@description",name:"@description",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Description JSDoc tag",template:"@description ${cursor}"},{prefix:"@function",name:"@function",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Function JSDoc tag",template:"@function ${cursor}"},{prefix:"@lends",name:"@lends",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Lends JSDoc tag",template:"@lends ${cursor}"},{prefix:"@license",name:"@license",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - License JSDoc tag",template:"@license ${cursor}"},{prefix:"@name",name:"@name",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Name JSDoc tag",template:"@name ${cursor}"},{prefix:"@param",name:"@param",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Param JSDoc tag",template:"@param {${type}} ${cursor}"},{prefix:"@private",name:"@private",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Private JSDoc tag",template:"@private ${cursor}"},{prefix:"@public",name:"@public",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Public JSDoc tag",template:"@public ${cursor}"},{prefix:"@returns",name:"@returns",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Returns JSDoc tag",template:"@returns {${type}} ${cursor}"},{prefix:"@see",name:"@see",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - See JSDoc tag",template:"@see ${cursor}"},{prefix:"@since",name:"@since",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Since JSDoc tag",template:"@since ${cursor}"},{prefix:"@throws",name:"@throws",nodes:{top:!1,member:!1,prop:!1,jsdoc:!0},description:" - Throws JSDoc tag",template:"@throws {${type}} ${cursor}"},{prefix:"arrow",name:"arrow",nodes:{top:!0,member:!1,prop:!1},description:" - arrow function expression",template:"${param} => {${cursor}}"},{prefix:"arrow",name:"arrow object",nodes:{top:!0,member:!1,prop:!1},description:" - arrow function expression returning an object",template:"var ${name} = () => ({ ${prop}: ${val}${cursor} });"},{prefix:"if",name:"if",nodes:{top:!0,member:!1,prop:!1},description:" - if statement",template:"if (${condition}) {\n ${cursor}\n}"},{prefix:"if",name:"if",nodes:{top:!0,member:!1,prop:!1},description:" - if else statement",template:"if (${condition}) {\n ${cursor}\n} else {\n \n}"},{prefix:"for",name:"for",nodes:{top:!0,member:!1,prop:!1},description:" - iterate over array",template:"for (var ${i}=0; ${i}<${array}.length; ${i}++) {\n ${cursor}\n}"},{prefix:"for",name:"for",nodes:{top:!0,member:!1,prop:!1},description:" - iterate over array with local var",template:"for (var ${i}=0; ${i}<${array}.length; ${i}++) {\n var ${value} = ${array}[${i}];\n ${cursor}\n}"},{prefix:"for",name:"for..in",nodes:{top:!0,member:!1,prop:!1},description:" - iterate over properties of an object",template:"for (var ${property} in ${object}) {\n if (${object}.hasOwnProperty(${property})) {\n ${cursor}\n }\n}"},{prefix:"while",name:"while",nodes:{top:!0,member:!1,prop:!1},description:" - while loop with condition",template:"while (${condition}) {\n ${cursor}\n}"},{prefix:"do",name:"do",nodes:{top:!0,member:!1,prop:!1},description:" - do while loop with condition",template:"do {\n ${cursor}\n} while (${condition});"},{prefix:"eslint",name:"eslint",nodes:{top:!0,member:!1,prop:!1,doc:!1,jsdoc:!1},description:" - ESLint rule enable / disable directive",template:"/* eslint ${rule-id}:${0/1}*/"},{prefix:"eslint-env",name:"eslint-env",nodes:{top:!0,member:!1,prop:!1,doc:!1,jsdoc:!1},description:" - ESLint environment directive",template:"/* eslint-env ${library}*/"},{prefix:"eslint-enable",name:"eslint-enable",nodes:{top:!0,member:!1,prop:!1,doc:!1,jsdoc:!1},description:" - ESLint rule enablement directive",template:"/* eslint-enable ${rule-id} */"},{prefix:"eslint-disable",name:"eslint-disable",nodes:{top:!0,member:!1,prop:!1,doc:!1,jsdoc:!1},description:" - ESLint rule disablement directive",template:"/* eslint-disable ${rule-id} */"},{prefix:"switch",name:"switch",nodes:{top:!0,member:!1,prop:!1},description:" - switch case statement",template:"switch (${expression}) {\n case ${value1}:\n ${cursor}\n break;\n default:\n}"},{prefix:"case",name:"case",nodes:{top:!0,member:!1,prop:!1,swtch:!0},description:" - case statement",template:"case ${value}:\n ${cursor}\n break;"},{prefix:"try",name:"try",nodes:{top:!0,member:!1,prop:!1},description:" - try..catch statement",template:"try {\n ${cursor}\n} catch (${err}) {\n}"},{prefix:"try",name:"try",nodes:{top:!0,member:!1,prop:!1},description:" - try..catch statement with finally block",template:"try {\n ${cursor}\n} catch (${err}) {\n} \n finally {\n}"},{prefix:"typeof",name:"typeof",nodes:{top:!0,member:!1,prop:!1},description:" - typeof statement",template:'typeof ${object} === "${type:'+JSON.stringify(r).replace("}","\\}")+'}"'},{prefix:"instanceof",name:"instanceof",nodes:{top:!0,member:!1,prop:!1},description:" - instanceof statement",template:"${object} instanceof ${type}"},{prefix:"with",name:"with",nodes:{top:!0,member:!1,prop:!1},description:" - with statement",template:"with (${object}) {\n ${cursor}\n}"},{prefix:"function",name:"function",nodes:{top:!0,member:!1,prop:!1},description:" - function declaration",template:"/**\n * @name ${name}\n * @param ${parameter}\n */\nfunction ${name} (${parameter}) {\n ${cursor}\n}"},{prefix:"function",name:"function",nodes:{top:!1,member:!1,prop:!1,obj:!0},description:" - member function expression",template:"/**\n * @name ${name}\n * @function\n * @param ${parameter}\n */\n${name}: function(${parameter}) {\n ${cursor}\n}"},{prefix:"function",name:"function",nodes:{top:!1,member:!1,prop:!0,obj:!1},description:" - member function expression",template:"function(${parameter}) {\n ${cursor}\n}"},{prefix:"define",name:"define",nodes:{top:!0,member:!1,prop:!1},description:" - define function call",template:"/* eslint-env amd */\ndefine('${name}', [\n'${import}'\n], function(${importname}) {\n ${cursor}\n});"},{prefix:"nls",name:"nls",nodes:{top:!0,member:!1,prop:!1},description:" - non NLS string",template:"${cursor} //$NON-NLS-${0}$"},{prefix:"log",name:"log",nodes:{top:!0,member:!1,prop:!1},description:" - console log",template:"console.log(${object});"},{prefix:"node",name:"node",nodes:{top:!0,member:!1,prop:!1,doc:!1,jsdoc:!1},description:" - Node require function call",template:"/* eslint-env node*/\nvar lib = require('${cursor}');"}]; +return{getTemplatesForKind:n}}),n("orion/URITemplate",[],function(){function e(e){this._text=e}function t(e){return e.replace("%25","%")}function n(e,n){if("U"===n)return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()});if("U+R"===n)return encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(p,t);if("U+R-,"===n)return encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/,/g,"%2C");throw new Error("Unknown allowed character set: "+n)}function r(e,t,r){for(var i=[],o=0;o=5760&&"įš€į Žā€€ā€ā€‚ā€ƒā€„ā€…ā€†ā€‡ā€ˆā€‰ā€Šā€ÆāŸć€€ļ»æ".indexOf(e)>=0}function o(e){return"0123456789".indexOf(e)>=0}function a(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function s(e){return"01234567".indexOf(e)>=0}function l(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e}function c(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e.charCodeAt(0)>=128&&k.NonAsciiIdentifierStart.test(e)}function u(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||e.charCodeAt(0)>=128&&k.NonAsciiIdentifierPart.test(e)}function p(e){return-1==="><(){}[],:*|?!=".indexOf(e)&&!i(e)&&!r(e)}function f(e){return"param"===e||"argument"===e||"arg"===e}function d(e){return"property"===e||"prop"===e}function h(e){return f(e)||d(e)||"extends"===e||"augments"===e||"alias"===e||"this"===e||"mixes"===e||"requires"===e}function m(e){return h(e)||"const"===e||"constant"===e}function g(e){return d(e)||f(e)}function v(e){return f(e)||"define"===e||"enum"===e||"implements"===e||"return"===e||"this"===e||"type"===e||"typedef"===e||"returns"===e||d(e)}function y(e){return v(e)||"throws"===e||"const"===e||"constant"===e||"namespace"===e||"member"===e||"var"===e||"module"===e||"constructor"===e||"class"===e}function b(e){this.name="DoctrineError",this.message=e}function x(e){throw new b(e)}function S(){}function E(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function w(e){var t,n,o,a,s,l=0,c=1,u=2;for(e=e.replace(/^\/\*\*?/,"").replace(/\*\/$/,""),t=0,n=e.length,o=l,a="";n>t;){switch(s=e[t],o){case l:r(s)?a+=s:"*"===s?o=c:i(s)||(a+=s,o=u);break;case c:i(s)||(a+=s),o=r(s)?l:u;break;case u:a+=s,r(s)&&(o=l)}t+=1}return a}var _,k,C,T,L,A,P;_="0.5.1",k={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ƖƘ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-͓Ͷͷͺ-Ķ½Ī†Īˆ-ĪŠĪŒĪŽ-ΔΣ-ϵϷ-ҁҊ-Ō§Ō±-Õ–Õ™Õ”-ևא-×Ŗ×°-ײؠ-يٮٯٱ-Ū“Ū•Ū„Ū¦Ū®ŪÆŪŗ-ۼۿܐܒ-ÜÆŻ-ބޱߊ-ߪߓߵߺࠀ-ą •ą šą ¤ą Øą”€-ą”˜ą¢ ą¢¢-ࢬऄ-ą¤¹ą¤½ą„ą„˜-ą„”ą„±-ą„·ą„¹-ą„æą¦…-ą¦Œą¦ą¦ą¦“-নপ-রলশ-ą¦¹ą¦½ą§Žą§œą§ą§Ÿ-৔ৰৱਅ-ąØŠąØąØąØ“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ą©œą©žą©²-ą©“ąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-રલળવ-હઽૐૠ૔ଅ-ą¬Œą¬ą¬ą¬“-ନପ-ରଲଳଵ-ą¬¹ą¬½ą­œą­ą­Ÿ-ą­”ą­±ą®ƒą®…-ą®Šą®Ž-ஐஒ-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-பம-ஹௐఅ-ą°Œą°Ž-ఐఒ-ą°Øą°Ŗ-ళవ-ą°¹ą°½ą±˜ą±™ą± ą±”ą²…-ą²Œą²Ž-ಐಒ-ನಪ-ಳವ-ą²¹ą²½ą³žą³ ą³”ą³±ą³²ą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½ąµŽąµ ąµ”ąµŗ-ൿඅ-ą¶–ą¶š-නඳ-රලව-ෆก-ะาำเ-ą¹†ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ຟດ-ຣຄວສຫອ-ະາຳຽເ-ą»„ą»†ą»œ-ą»Ÿą¼€ą½€-ཇཉ-ཬྈ-ą¾Œį€€-ဪဿၐ-į•įš-įį”į„į¦į®-ၰၵ-į‚į‚Žį‚ -įƒ…įƒ‡įƒįƒ-ჺჼ-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -ኈኊ-įŠįŠ-ኰኲ-ኵኸ-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšįŽ€-įŽįŽ -į“į-ᙬᙯ-į™æįš-ᚚᚠ-ᛪᛮ-į›°įœ€-įœŒįœŽ-įœ‘įœ -įœ±į€-į‘į -į¬į®-į°įž€-įž³įŸ—įŸœį  -ᔷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᄐ-į„­į„°-ᄓᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-į­‹į®ƒ-ᮠᮮᮯᮺ-ᯄᰀ-į°£į±-į±į±š-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᓀ-į¶æįø€-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-ώᾀ-ᾓᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ΐῶ-ῼⁱⁿₐ-ā‚œā„‚ā„‡ā„Š-ā„“ā„•ā„™-ā„ā„¤ā„¦ā„Øā„Ŗ-ℭℯ-ℹℼ-ℿⅅ-ā…‰ā…Žā… -ā†ˆā°€-Ⱞⰰ-ā±žā± -ⳤⳫ-ⳮⳲⳳⓀ-ā“„ā“§ā“­ā“°-ⵧⵯⶀ-ā¶–ā¶ -ⶦⶨ-ⶮⶰ-ā¶¶ā¶ø-ⶾⷀ-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žāøÆć€…-怇怔-怩怱-〵〸-〼ぁ-悖悝-ć‚Ÿć‚”-ヺー-ćƒæć„…-愭愱-憎憠-ㆺㇰ-ㇿ㐀-䶵一-éæŒź€€-ź’Œź“-ꓽꔀ-ꘌꘐ-ź˜Ÿź˜Ŗź˜«ź™€-ꙮꙿ-źš—źš -ź›Æźœ—-ꜟꜢ-źžˆźž‹-źžŽźž-źž“źž -źžŖźŸø-ꠁꠃ-ź …ź ‡-ꠊꠌ-ꠢꔀ-ꔳꢂ-ꢳꣲ-ꣷꣻꤊ-꤄ꤰ-ꄆꄠ-ꄼꦄ-ź¦²ź§źØ€-ꨨꩀ-ź©‚ź©„-ź©‹ź© -ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ź«ź« -ꫪꫲ-꫓ꬁ-ꬆꬉ-ź¬Žź¬‘-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-龎ff-stﬓ-ļ¬—ļ¬ļ¬Ÿ-ﬨשׁ-זּטּ-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ﮱﯓ-ﵐ-ļ¶ļ¶’-ﷇﷰ-ﷻﹰ-﹓ﹶ-ﻼ4-Za-zヲ-하-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ƖƘ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-͓Ͷͷͺ-Ķ½Ī†Īˆ-ĪŠĪŒĪŽ-ΔΣ-ϵϷ-ҁ҃-Ņ‡ŅŠ-Ō§Ō±-Õ–Õ™Õ”-և֑-ׇֽֿׁׂׅׄא-×Ŗ×°-ײؐ-ؚؠ-٩ٮ-Ū“Ū•-ۜ۟-ŪØŪŖ-ۼۿܐ-ŻŠŻ-ޱ߀-ߵߺࠀ-ą ­ą”€-ą”›ą¢ ą¢¢-ࢬࣤ-ࣾऀ-ą„£ą„¦-ą„Æą„±-ą„·ą„¹-ą„æą¦-ą¦ƒą¦…-ą¦Œą¦ą¦ą¦“-নপ-রলশ-হ়-ą§„ą§‡ą§ˆą§‹-ą§Žą§—ą§œą§ą§Ÿ-ৣ০-ৱਁ-ąØƒąØ…-ąØŠąØąØąØ“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ą©‚ą©‡ą©ˆą©‹-ą©ą©‘ą©™-ą©œą©žą©¦-ੵઁ-ąŖƒąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-રલળવ-હ઼-ૅે-ૉો-ą«ą«ą« -ૣ૦-૯ଁ-ą¬ƒą¬…-ą¬Œą¬ą¬ą¬“-ନପ-ରଲଳଵ-ହ଼-ą­„ą­‡ą­ˆą­‹-ą­ą­–ą­—ą­œą­ą­Ÿ-ୣ୦-ą­Æą­±ą®‚ą®ƒą®…-ą®Šą®Ž-ஐஒ-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-பம-ஹா-ூெ-ைொ-ąÆąÆąÆ—ąÆ¦-௯ఁ-ą°ƒą°…-ą°Œą°Ž-ఐఒ-ą°Øą°Ŗ-ళవ-హఽ-ౄె-ైొ-ą±ą±•ą±–ą±˜ą±™ą± -ౣ౦-ą±Æą²‚ą²ƒą²…-ą²Œą²Ž-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-ą³ą³•ą³–ą³žą³ -ೣ೦-ą³Æą³±ą³²ą“‚ą“ƒą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½-ൄെ-ൈൊ-ąµŽąµ—ąµ -ൣ൦-൯ൺ-ąµæą¶‚ą¶ƒą¶…-ą¶–ą¶š-නඳ-රලව-ą·†ą·Šą·-ą·”ą·–ą·˜-ෟෲෳก-ąøŗą¹€-ą¹Žą¹-ą¹™ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ຟດ-ຣຄວສຫອ-ູົ-ຽເ-ą»„ą»†ą»ˆ-ą»ą»-ą»™ą»œ-ą»Ÿą¼€ą¼˜ą¼™ą¼ -༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ą¾—ą¾™-ྼ࿆က-၉ၐ-į‚į‚ -įƒ…įƒ‡įƒįƒ-ჺჼ-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -ኈኊ-įŠįŠ-ኰኲ-ኵኸ-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšį-įŸįŽ€-įŽįŽ -į“į-ᙬᙯ-į™æįš-ᚚᚠ-ᛪᛮ-į›°įœ€-įœŒįœŽ-įœ”įœ -įœ“į€-į“į -į¬į®-į°į²į³įž€-įŸ“įŸ—įŸœįŸįŸ -įŸ©į ‹-į į -᠙ᠠ-ᔷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻ᄆ-į„­į„°-ᄓᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-į©žį© -᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-į°·į±€-į±‰į±-ᱽ᳐-į³’į³”-į³¶į“€-ᷦ᷼-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-ώᾀ-ᾓᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ΐῶ-įæ¼ā€Œā€ā€æā€ā”ā±āæā‚-ā‚œāƒ-⃜⃔⃄-āƒ°ā„‚ā„‡ā„Š-ā„“ā„•ā„™-ā„ā„¤ā„¦ā„Øā„Ŗ-ℭℯ-ℹℼ-ℿⅅ-ā…‰ā…Žā… -ā†ˆā°€-Ⱞⰰ-ā±žā± -ⳤⳫ-ⳳⓀ-ā“„ā“§ā“­ā“°-ⵧⵯ⵿-ā¶–ā¶ -ⶦⶨ-ⶮⶰ-ā¶¶ā¶ø-ⶾⷀ-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žā· -ⷿⸯ々-怇怔-〯〱-〵〸-〼ぁ-悖悙悚悝-ć‚Ÿć‚”-ヺー-ćƒæć„…-愭愱-憎憠-ㆺㇰ-ㇿ㐀-䶵一-éæŒź€€-ź’Œź“-ꓽꔀ-ꘌꘐ-ź˜«ź™€-꙯ꙓ-꙽ꙿ-źš—źšŸ-ź›±źœ—-ꜟꜢ-źžˆźž‹-źžŽźž-źž“źž -źžŖźŸø-ꠧꔀ-ꔳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-ź„“ź„ -ꄼꦀ-ź§€ź§-꧙ꨀ-ꨶꩀ-ź©ź©-꩙ꩠ-ꩶꩺꩻꪀ-ź«‚ź«›-ź«ź« -ꫯꫲ-꫶ꬁ-ꬆꬉ-ź¬Žź¬‘-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-龎ff-stﬓ-ļ¬—ļ¬-ﬨשׁ-זּטּ-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ﮱﯓ-ﵐ-ļ¶ļ¶’-ﷇﷰ-ﷻ︀-ļøļø -ļø¦ļø³ļø“ļ¹-ļ¹ļ¹°-﹓ﹶ-ﻼ0-94-Z_a-zヲ-하-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ᅵ]")},C=void 0!==typeof"doctrine"[0],A=Array.isArray,A||(A=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),P=function(){var e=Object.prototype.hasOwnProperty;return function(t,n){return e.call(t,n)}}(),C||(t=function(e,t,n){return e.slice(t,n).join("")}),b.prototype=new Error,b.prototype.constructor=b,"dev"===_.slice(-3)&&(S=function(e,t){e||x(t)}),function(e){function t(e,t,n,r){this._previous=e,this._index=t,this._token=n,this._value=r}function n(){var e=U[G];return G+=1,e}function l(e){var t,r,i,o=0;for(r="u"===e?4:2,t=0;r>t;++t){if(!(B>G&&a(U[G])))return"";i=n(),o=16*o+"0123456789abcdef".indexOf(i.toLowerCase())}return String.fromCharCode(o)}function u(){var e,t,i,o,a,c="",u=!1;for(e=U[G],++G;B>G;){if(t=n(),t===e){e="";break}if("\\"===t)if(t=n(),r(t))"\r"===t&&"\n"===U[G]&&++G;else switch(t){case"n":c+="\n";break;case"r":c+="\r";break;case"t":c+=" ";break;case"u":case"x":a=G,o=l(t),o?c+=o:(G=a,c+=t);break;case"b":c+="\b";break;case"f":c+="\f";break;case"v":c+=" ";break;default:s(t)?(i="01234567".indexOf(t),0!==i&&(u=!0),B>G&&s(U[G])&&(u=!0,i=8*i+"01234567".indexOf(n()),"0123".indexOf(t)>=0&&B>G&&s(U[G])&&(i=8*i+"01234567".indexOf(n()))),c+=String.fromCharCode(i)):c+=t}else{if(r(t))break;c+=t}}return""!==e&&x("unexpected quote"),H=c,$.STRING}function f(){var e,t;if(e="","."!==t){if(e=n(),t=U[G],"0"===e){if("x"===t||"X"===t){for(e+=n();B>G&&(t=U[G],a(t));)e+=n();return e.length<=2&&x("unexpected token"),B>G&&(t=U[G],c(t)&&x("unexpected token")),H=parseInt(e,16),$.NUMBER}if(s(t)){for(e+=n();B>G&&(t=U[G],s(t));)e+=n();return B>G&&(t=U[G],(c(t)||o(t))&&x("unexpected token")),H=parseInt(e,8),$.NUMBER}o(t)&&x("unexpected token")}for(;B>G&&(t=U[G],o(t));)e+=n()}if("."===t)for(e+=n();B>G&&(t=U[G],o(t));)e+=n();if("e"===t||"E"===t)if(e+=n(),t=U[G],("+"===t||"-"===t)&&(e+=n()),t=U[G],o(t))for(e+=n();B>G&&(t=U[G],o(t));)e+=n();else x("unexpected token");return B>G&&(t=U[G],c(t)&&x("unexpected token")),H=parseFloat(e),$.NUMBER}function d(){var e,t;for(H=n();B>G&&p(U[G])&&(e=U[G],!("."===e&&B>G+1&&(t=U[G+1],"<"===t)));)H+=n();return $.NAME}function h(){var e;for(W=G;B>G&&i(U[G]);)n();if(G>=B)return q=$.EOF;switch(e=U[G]){case'"':return q=u();case":":return n(),q=$.COLON;case",":return n(),q=$.COMMA;case"(":return n(),q=$.LPAREN;case")":return n(),q=$.RPAREN;case"[":return n(),q=$.LBRACK;case"]":return n(),q=$.RBRACK;case"{":return n(),q=$.LBRACE;case"}":return n(),q=$.RBRACE;case".":if(n(),B>G){if(e=U[G],"<"===e)return n(),q=$.DOT_LT;if("."===e&&B>G+1&&"."===U[G+1])return n(),n(),q=$.REST;if(o(e))return q=f()}return q=$.DOT;case"<":return n(),q=$.LT;case">":return n(),q=$.GT;case"*":return n(),q=$.STAR;case"|":return n(),q=$.PIPE;case"?":return n(),q=$.QUESTION;case"!":return n(),q=$.BANG;case"=":return n(),q=$.EQUAL;default:return q=o(e)?f():p(e)?d():$.ILLEGAL}}function m(e,t){S(q===e,t||"consumed token not matched"),h()}function g(e){q!==e&&x("unexpected token"),h()}function v(){var e;if(m($.LPAREN,"UnionType should start with ("),e=[],q!==$.RPAREN)for(;;){if(e.push(F()),q===$.RPAREN)break;g($.PIPE)}return m($.RPAREN,"UnionType should end with )"),{type:V.UnionType,elements:e}}function y(){var e;for(m($.LBRACK,"ArrayType should start with ["),e=[];q!==$.RBRACK;){if(q===$.REST){m($.REST),e.push({type:V.RestType,expression:F()});break}e.push(F()),q!==$.RBRACK&&g($.COMMA)}return g($.RBRACK),{type:V.ArrayType,elements:e}}function b(){var e=H;return q===$.NAME||q===$.STRING?(h(),e):q===$.NUMBER?(m($.NUMBER),String(e)):void x("unexpected token")}function E(){var e;return e=b(),q===$.COLON?(m($.COLON),{type:V.FieldType,key:e,value:F()}):{type:V.FieldType,key:e,value:null}}function w(){var e;if(m($.LBRACE,"RecordType should start with {"),e=[],q===$.COMMA)m($.COMMA);else for(;q!==$.RBRACE;)e.push(E()),q!==$.RBRACE&&g($.COMMA);return g($.RBRACE),{type:V.RecordType,fields:e}}function _(){var e=H;return g($.NAME),{type:V.NameExpression,name:e}}function k(){var e=[];for(e.push(O());q===$.COMMA;)m($.COMMA),e.push(O());return e}function T(){var e,t;return e=_(),q===$.DOT_LT||q===$.LT?(h(),t=k(),g($.GT),{type:V.TypeApplication,expression:e,applications:t}):e}function L(){return m($.COLON,"ResultType should start with :"),q===$.NAME&&"void"===H?(m($.NAME),{type:V.VoidLiteral}):F()}function A(){for(var e,t=[],n=!0,r=!1;q!==$.RPAREN;)q===$.REST&&(m($.REST),r=!0),e=F(),e.type===V.NameExpression&&q===$.COLON&&(m($.COLON),e={type:V.ParameterType,name:e.name,expression:F()}),q===$.EQUAL?(m($.EQUAL),e={type:V.OptionalType,expression:e},n=!1):n||x("unexpected token"),r&&(e={type:V.RestType,expression:e}),t.push(e),q!==$.RPAREN&&g($.COMMA);return t}function P(){var e,t,n,r,i;return S(q===$.NAME&&"function"===H,"FunctionType should start with 'function'"),m($.NAME),g($.LPAREN),e=!1,n=[],t=null,q!==$.RPAREN&&(q!==$.NAME||"this"!==H&&"new"!==H?n=A():(e="new"===H,m($.NAME),g($.COLON),t=T(),q===$.COMMA&&(m($.COMMA),n=A()))),g($.RPAREN),r=null,q===$.COLON&&(r=L()),i={type:V.FunctionType,params:n,result:r},t&&(i["this"]=t,e&&(i["new"]=!0)),i}function j(){var e;switch(q){case $.STAR:return m($.STAR),{type:V.AllLiteral};case $.LPAREN:return v();case $.LBRACK:return y();case $.LBRACE:return w();case $.NAME:if("null"===H)return m($.NAME),{type:V.NullLiteral};if("undefined"===H)return m($.NAME),{type:V.UndefinedLiteral};if(e=t.save(),"function"===H)try{return P()}catch(n){e.restore()}return T();default:x("unexpected token")}}function F(){var e;return q===$.QUESTION?(m($.QUESTION),q===$.COMMA||q===$.EQUAL||q===$.RBRACE||q===$.RPAREN||q===$.PIPE||q===$.EOF||q===$.RBRACK?{type:V.NullableLiteral}:{type:V.NullableType,expression:j(),prefix:!0}):q===$.BANG?(m($.BANG),{type:V.NonNullableType,expression:j(),prefix:!0}):(e=j(),q===$.BANG?(m($.BANG),{type:V.NonNullableType,expression:e,prefix:!1}):q===$.QUESTION?(m($.QUESTION),{type:V.NullableType,expression:e,prefix:!1}):q===$.LBRACK?(m($.LBRACK),m($.RBRACK,"expected an array-style type declaration ("+H+"[])"),{type:V.TypeApplication,expression:{type:V.NameExpression,name:"Array"},applications:[e]}):e)}function O(){var e,t;if(e=F(),q!==$.PIPE)return e;for(t=[e],m($.PIPE);;){if(t.push(F()),q!==$.PIPE)break;m($.PIPE)}return{type:V.UnionType,elements:t}}function I(){var e;return q===$.REST?(m($.REST),{type:V.RestType,expression:O()}):(e=O(),q===$.EQUAL?(m($.EQUAL),{type:V.OptionalType,expression:e}):e)}function N(e,t){var n;return U=e,B=U.length,G=0,W=0,C||(U=U.split("")),h(),n=O(),t&&t.midstream?{expression:n,index:W}:(q!==$.EOF&&x("not reach to EOF"),n)}function R(e,t){var n;return U=e,B=U.length,G=0,W=0,C||(U=U.split("")),h(),n=I(),t&&t.midstream?{expression:n,index:W}:(q!==$.EOF&&x("not reach to EOF"),n)}function D(e,t,n){var r,i,o;switch(e.type){case V.NullableLiteral:r="?";break;case V.AllLiteral:r="*";break;case V.NullLiteral:r="null";break;case V.UndefinedLiteral:r="undefined";break;case V.VoidLiteral:r="void";break;case V.UnionType:for(r=n?"":"(",i=0,o=e.elements.length;o>i;++i)r+=D(e.elements[i],t),i+1!==o&&(r+="|");n||(r+=")");break;case V.ArrayType:for(r="[",i=0,o=e.elements.length;o>i;++i)r+=D(e.elements[i],t),i+1!==o&&(r+=t?",":", ");r+="]";break;case V.RecordType:for(r="{",i=0,o=e.fields.length;o>i;++i)r+=D(e.fields[i],t),i+1!==o&&(r+=t?",":", ");r+="}";break;case V.FieldType:r=e.value?e.key+(t?":":": ")+D(e.value,t):e.key;break;case V.FunctionType:for(r=t?"function(":"function (",e["this"]&&(r+=e["new"]?t?"new:":"new: ":t?"this:":"this: ",r+=D(e["this"],t),0!==e.params.length&&(r+=t?",":", ")),i=0,o=e.params.length;o>i;++i)r+=D(e.params[i],t),i+1!==o&&(r+=t?",":", ");r+=")",e.result&&(r+=(t?":":": ")+D(e.result,t));break;case V.ParameterType:r=e.name+(t?":":": ")+D(e.expression,t);break;case V.RestType:r="...",e.expression&&(r+=D(e.expression,t));break;case V.NonNullableType:r=e.prefix?"!"+D(e.expression,t):D(e.expression,t)+"!";break;case V.OptionalType:r=D(e.expression,t)+"=";break;case V.NullableType:r=e.prefix?"?"+D(e.expression,t):D(e.expression,t)+"?";break;case V.NameExpression:r=e.name;break;case V.TypeApplication:for(r=D(e.expression,t)+".<",i=0,o=e.applications.length;o>i;++i)r+=D(e.applications[i],t),i+1!==o&&(r+=t?",":", ");r+=">";break;default:x("Unknown type "+e.type)}return r}function M(e,t){return null==t&&(t={}),D(e,t.compact,t.topLevel)}var V,$,U,B,G,W,q,H;V={NullableLiteral:"NullableLiteral",AllLiteral:"AllLiteral",NullLiteral:"NullLiteral",UndefinedLiteral:"UndefinedLiteral",VoidLiteral:"VoidLiteral",UnionType:"UnionType",ArrayType:"ArrayType",RecordType:"RecordType",FieldType:"FieldType",FunctionType:"FunctionType",ParameterType:"ParameterType",RestType:"RestType",NonNullableType:"NonNullableType",OptionalType:"OptionalType",NullableType:"NullableType",NameExpression:"NameExpression",TypeApplication:"TypeApplication"},$={ILLEGAL:0,DOT:1,DOT_LT:2,REST:3,LT:4,GT:5,LPAREN:6,RPAREN:7,LBRACE:8,RBRACE:9,LBRACK:10,RBRACK:11,COMMA:12,COLON:13,STAR:14,PIPE:15,QUESTION:16,BANG:17,EQUAL:18,NAME:19,STRING:20,NUMBER:21,EOF:22},t.prototype.restore=function(){W=this._previous,G=this._index,q=this._token,H=this._value},t.save=function(){return new t(W,G,q,H)},e.parseType=N,e.parseParamType=R,e.stringify=M,e.Syntax=V}(T={}),function(e){function n(){var e=D[I];return I+=1,r(e)&&(N+=1),e}function o(){var e="";for(n();R>I&&l(D[I]);)e+=n();return e}function a(){var e,t,n=I;for(t=!1;R>n;){if(e=D[n],r(e))N+=1,t=!0;else if(t){if("@"===e)break;i(e)||(t=!1)}n+=1}return n}function s(e,t){for(var o,a,s,l=!1;t>I;){if(o=D[I],!i(o)){if("{"===o){n();break}l=!0;break}n()}if(!l){for(a=1,s="";t>I;)if(o=D[I],r(o))n();else{if("}"===o){if(a-=1,0===a){n();break}}else"{"===o&&(a+=1);s+=n()}if(0!==a)return x("Braces are not balanced");try{return f(e)?T.parseParamType(s):T.parseType(s)}catch(c){return}}}function p(e){var t;if(c(D[I])){for(t=n();e>I&&u(D[I]);)t+=n();return t}}function d(e){for(;e>I&&(i(D[I])||r(D[I]));)n()}function b(e,t,r){var i,o="";if(d(e),!(I>=e)&&(t&&"["===D[I]&&(i=!0,o=n()),c(D[I]))){if(o+=p(e),r)for(;"."===D[I];)o+=".",I+=1,o+=p(e);if(i){if("="===D[I])for(o+=n();e>I&&"]"!==D[I];)o+=n();if(I>=e||"]"!==D[I])return;o+=n()}return o}}function _(){for(;R>I&&"@"!==D[I];)n();return I>=R?!1:(S("@"===D[I]),!0)}function k(e,t){this._options=e,this._title=t,this._tag={title:t,description:null},this._options.lineNumbers&&(this._tag.lineNumber=N),this._last=0,this._extra={}}function L(e){var t,n;if(_())return t=o(),n=new k(e,t),n.parse()}function j(){var e,t,o="";for(t=!0;R>I&&(e=D[I],!t||"@"!==e);)r(e)?t=!0:t&&!i(e)&&(t=!1),o+=n();return E(o)}function F(e,t){var n,r,i,o,a,s=[];if(void 0===t&&(t={}),D="boolean"==typeof t.unwrap&&t.unwrap?w(e):e,t.tags)if(A(t.tags))for(i={},o=0,a=t.tags.length;a>o;o++)"string"==typeof t.tags[o]?i[t.tags[o]]=!0:x('Invalid "tags" parameter: '+t.tags);else x('Invalid "tags" parameter: '+t.tags);for(C||(D=D.split("")),R=D.length,I=0,N=0,M=t.recoverable,V=t.sloppy,$=t.strict,r=j();;){if(n=L(t),!n)break;(!i||i.hasOwnProperty(n.title))&&s.push(n)}return{description:r,tags:s}}var O,I,N,R,D,M,V,$;k.prototype.addError=function(e){var t=Array.prototype.slice.call(arguments,1),n=e.replace(/%(\d)/g,function(e,n){return S(ne;++e)if(r=n[e],!this[r]())return;return I=this._last,this._tag}},e.parse=F}(L={}),e.version=_,e.parse=L.parse,e.parseType=T.parseType,e.parseParamType=T.parseParamType,e.unwrapComment=w,e.Syntax=n(T.Syntax),e.Error=b,e.type={Syntax:e.Syntax,parseType:T.parseType,parseParamType:T.parseParamType,stringify:T.stringify}}("undefined"==typeof exports?doctrine={}:exports),n("doctrine/doctrine",function(){}),n("javascript/hover",["orion/objects","javascript/finder","orion/URITemplate","orion/Deferred","i18n!javascript/nls/messages","orion/i18nUtil","doctrine/doctrine"],function(e,t,n,r,i,o){function a(e,t){if(!e)return null;try{var n=Object.create(null);if(e){var r=doctrine.parse(e,{recoverable:!0,unwrap:!0});if(n.params=[],n["throws"]=[],n.see=[],n.desc=r.description?r.description:"",r.tags)for(var a=r.tags.length,l=0;a>l;l++){var c=r.tags[l];switch(c.title){case"name":c.name&&(n.name=c.name);break;case"description":null!==c.description&&(n.desc=""===n.desc?c.description:n.desc+"\n"+c.description);break;case"param":n.params.push(s(c.type)+(c.name?"__"+c.name+"__ ":"")+(c.description?c.description+"\n":""));break;case"returns":case"return":n.returns=s(c.type)+(c.description?c.description+"\n":"");break;case"since":c.description&&(n.since=c.description);break;case"callback":n.callback=c.description?c.description:"This function is used as a callback";break;case"throws":n["throws"].push(s(c.type)+(c.description?c.description+"\n":""));break;case"see":n.see.push(s(c.type)+(c.description?c.description+"\n":""));break;case"deprecated":n.deprecated=c.description?c.description+"\n":""}}}var u="";if("undefined"!=typeof n.deprecated&&(u+=o.formatMessage("__${0}__ ",i.deprecatedHoverTitle)+n.deprecated+"\n\n"),""!==n.desc&&(u+=n.desc+"\n\n"),n.params.length>0)for(u+=o.formatMessage("__${0}__\n\n",i.parametersHoverTitle),l=0;l"+n.params[l]+"\n\n";if(n.returns&&(u+=o.formatMessage("__${0}__\n\n>",i.returnsHoverTitle)+n.returns+"\n\n"),n["throws"].length>0)for(u+=o.formatMessage("__${0}__\n\n",i.throwsHoverTitle),l=0;l"+n["throws"][l]+"\n\n";if(n.callback&&(u+=o.formatMessage("__${0}__\n\n>",i.callbackHoverTitle)+n.callback+"\n\n"),n.since&&(u+=o.formatMessage("__${0}__\n\n>",i.sinceHoverTitle)+n.since+"\n\n"),n.see.length>0)for(u+=o.formatMessage("__${0}__\n\n",i.seeAlsoHoverTitle),l=0;l"+n.see[l],l0){var t=e.applications[0];return t.name?"*("+t.name+"[])* ":s(t.fields&&t.fields.length>0?t.fields[0]:t)}return s(e.expression);case"UnionType":case"ArrayType":if(e.elements&&e.elements.length>0)return s(e.elements[0]);break;case"FieldType":return s(e.value);default:return""}}function l(e,t,n,r){this.astManager=e,this.resolver=t,this.ternworker=n,this.cuprovider=r}var c;return e.mixin(l.prototype,{computeHoverInfo:function(e,n){if(n.proposal&&"js"===n.proposal.kind)return n.proposal.hover;var r=this;return e.getFileMetadata().then(function(i){if(!i)return null;if(Array.isArray(i.parents)){var o=0;i.parents.length>0&&(o=i.parents.length-1),r.resolver.setSearchLocation(i.parents[o].Location)}else r.resolver.setSearchLocation(null);return i&&"application/javascript"===i.contentType.id?r.astManager.getAST(e).then(function(e){return r._doHover(e,n,i)}):e.getText().then(function(e){var o=r.cuprovider.getCompilationUnit(function(){t.findScriptBlocks(e)},i);return o.validOffset(n.offset)?r.astManager.getAST(o.getEditorContext()).then(function(t){return r._doHover(t,n,i,e)}):null})})},_doHover:function(e,n,i,o){var s=t.findNode(n.offset,e,{parents:!0});if(s&&"Literal"===s.type){if(n.offset<=s.range[0]||n.offset>=s.range[1])return null;var l=s.parents,u=l.pop(),p=this;if("ArrayExpression"===u.type){if(u=l.pop(),"CallExpression"===u.type&&("define"===u.callee.name||"require"===u.callee.name)){var f=s.value;return p.resolver.getWorkspaceFile(f).then(function(e){return p._formatFilesHover(f,e)})}}else if("CallExpression"===u.type){var f=s.value;switch(u.callee.name){case"require":return p.resolver.getWorkspaceFile(f).then(function(e){/\.js$/.test(f)||(f+=".js");var t=p.resolver.resolveRelativeFiles(f,e,i);return t&&t.length>0?p._formatFilesHover(s.value,t):void 0});case"importScripts":var f=s.value;return p.resolver.getWorkspaceFile(f).then(function(e){/\.js$/.test(f)||(f+=".js");var t=p.resolver.resolveRelativeFiles(f,e,i);return t&&t.length>0?p._formatFilesHover(s.value,t):void 0})}}return null}c=new r;var d=[{type:"full",name:i.location,text:o?o:e.source}];return this.ternworker.postMessage({request:"documentation",args:{params:{offset:n.offset,docFormat:"full"},files:d,meta:{location:i.location}}},function(e){var t="";"documentation"===e.request&&(e.doc&&(t=a(e.doc.doc)),c.resolve(t))}),c},_formatFilesHover:function(e,t){if(e&&t){var r=null;t.length>1&&(r=o.formatMessage("###${0} '${1}'###",i.openFileForTitle,e));for(var a="",s=0;s|<|&|(\\|\\|))+",name:"punctuation.operator"},doc_block:{begin:{match:"/\\*\\*",literal:"/**"},end:{match:"\\*/",literal:"*/"},name:"comment.block.documentation",patterns:[{match:"@(?:(?!\\*/)\\S)*",name:"meta.documentation.annotation"},{match:"<[^\\s>]*>",name:"meta.documentation.tag"},{match:"(\\b)(TODO)(\\b)(((?!\\*/).)*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.block"}}}]},number_decimal:{match:"\\b-?(?:\\.\\d+|\\d+\\.?\\d*)(?:[eE][+-]?\\d+)?\\b",name:"constant.numeric.number"},number_hex:{match:"\\b0[xX][0-9A-Fa-f]+\\b",name:"constant.numeric.hex"},string_doubleQuote:{match:'"(?:\\\\.|[^"])*"?',name:"string.quoted.double"},string_singleQuote:{match:"'(?:\\\\.|[^'])*'?",name:"string.quoted.single"},todo_comment_singleLine:{match:"(\\b)(TODO)(\\b)(.*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.line"}}}}},{id:"orion.c-like",repository:{comment_singleLine:{match:{match:"//.*",literal:"//"},name:"comment.line.double-slash",patterns:[{include:"orion.lib#todo_comment_singleLine"}]},comment_block:{begin:{match:"/\\*",literal:"/*"},end:{match:"\\*/",literal:"*/"},name:"comment.block",patterns:[{match:"(\\b)(TODO)(\\b)(((?!\\*/).)*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.block"}}}]}}}],keywords:[]} +}),n("orion/editor/stylers/application_javascript/syntax",["orion/editor/stylers/lib/syntax"],function(e){var t=["class","const","debugger","delete","enum","export","extends","function","implements","import","in","instanceof","interface","let","new","package","private","protected","public","static","super","typeof","var","void","with"],n=["break","case","catch","continue","default","do","else","finally","for","if","return","switch","throw","try","while","yield"],r=["this"],i=["false","null","true","undefined"],o=[];return o.push.apply(o,e.grammars),o.push({id:"orion.js",contentTypes:["application/javascript"],patterns:[{begin:"'(?:\\\\.|[^\\\\'])*\\\\$",end:"^(?:$|(?:\\\\.|[^\\\\'])*('|[^\\\\]$))",name:"string.quoted.single.js"},{begin:'"(?:\\\\.|[^\\\\"])*\\\\$',end:'^(?:$|(?:\\\\.|[^\\\\"])*("|[^\\\\]$))',name:"string.quoted.double.js"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"},{include:"orion.c-like#comment_singleLine"},{match:"/(?![\\s\\*])(?:\\\\.|[^/])+/(?:[gim]{0,3})",name:"string.regexp.js"},{include:"orion.lib#doc_block"},{include:"orion.c-like#comment_block"},{include:"#jsFunctionDef"},{include:"orion.lib#brace_open"},{include:"orion.lib#brace_close"},{include:"orion.lib#bracket_open"},{include:"orion.lib#bracket_close"},{include:"orion.lib#parenthesis_open"},{include:"orion.lib#parenthesis_close"},{include:"orion.lib#operator"},{include:"orion.lib#number_decimal"},{include:"orion.lib#number_hex"},{match:"\\b(?:"+t.join("|")+")\\b",name:"keyword.operator.js"},{match:"\\b(?:"+n.join("|")+")\\b",name:"keyword.control.js"},{match:"\\b(?:"+i.join("|")+")\\b",name:"constant.language.js"},{match:"\\b(?:"+r.join("|")+")\\b",name:"variable.language.js"}],repository:{jsFunctionDef:{begin:"(function)(\\s+[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?\\s*\\(",end:"\\)",captures:{1:{name:"keyword.operator.js"},2:{name:"entity.name.function.js"}},patterns:[{include:"orion.c-like#comment_singleLine"},{include:"orion.c-like#comment_block"},{match:"[^\\s,]+",name:"variable.parameter.js"}]}}}),{id:o[o.length-1].id,grammars:o,keywords:t.concat(n).concat(r).concat(i)}}),n("eslint/lib/load-rules-async",["./util","javascript/logger","javascript/finder","i18n!javascript/nls/problems","estraverse/estraverse","orion/editor/stylers/application_javascript/syntax"],function(e,t,n,r,i,o){function a(){return l}function s(){for(var e=Object.create(null),t=Object.keys(l),n=0;no;o++){var a=n[o];if(a.value===i)return a}return null}function i(e){return e&&e.type?"Literal"===e.type&&null==e.value||"Identifier"===e.type&&"undefined"===e.name:!1}return{BinaryExpression:function(o){try{if(i(o.left)||i(o.right))return;var a=o.operator,s=null;"=="===a?(s="===",e.report(o,r.eqeqeq,{0:s,1:a},n(e,o))):"!="===a&&(s="!==",e.report(o,r.eqeqeq,{0:s,1:a},n(e,o)))}catch(l){t.log(l)}}}}},"missing-doc":{description:r["missing-doc-description"],url:"http://eslint.org/docs/rules/valid-jsdoc",rule:function(e){function n(e){if(e&&e.leading){var t=e.leading.length;return t>0&&"Block"===e.leading[t-1].type}return!1}function i(i){try{var o,a;switch(i.type){case"Property":if(i.value&&"FunctionExpression"===i.value.type&&(o=e.getComments(i),o.leading.length<1&&o.trailing.length<1&&(o=e.getComments(i.key)),!n(o))){switch(i.key.type){case"Identifier":a=i.key.name;break;case"Literal":a=i.key.value}e.report(i.key,r["missing-doc"],{0:a},{type:"expr"})}break;case"FunctionDeclaration":o=e.getComments(i),o.leading.length<1&&o.trailing.length<1&&(o=e.getComments(i.id)),n(o)||e.report(i.id,r["missing-doc"],{0:i.id.name},{type:"decl"});break;case"ExpressionStatement":if(i.expression&&"AssignmentExpression"===i.expression.type){var s=i.expression;s.right&&"FunctionExpression"===s.right.type&&s.left&&"MemberExpression"===s.left.type&&(o=e.getComments(i),o.leading.length<1&&o.trailing.length<1&&(o=e.getComments(s.left)),n(o)||(a=s.left.computed===!0?s.left.property.value:s.left.property.name,e.report(s.left.property,r["missing-doc"],{0:a},{type:"expr"})))}}}catch(l){t.log(l)}}return{Property:i,FunctionDeclaration:i,ExpressionStatement:i}}},"new-parens":{description:r["new-parens-description"],url:"http://eslint.org/docs/rules/new-parens",rule:function(e){return{NewExpression:function(n){try{if(n.callee){var i=e.getTokens(n.callee,0,1);if(i&&i.length>0){var o=i[i.length-1];("Punctuator"!==o.type||"("!==o.value)&&e.report(n.callee,r["new-parens"],null,i[0])}}}catch(a){t.log(a)}}}}},"no-caller":{description:r["no-caller-description"],url:"http://eslint.org/docs/rules/no-caller",rule:function(e){return{MemberExpression:function(t){var i=n.findParentFunction(t);if(i){var o=t.object;if(!o||"arguments"!==o.name||"Identifier"!==o.type)return;var a=t.property,s=a.name?a.name:a.value;("callee"===s||"caller"===s)&&e.report(a,r["no-caller"],{0:s})}}}}},"no-comma-dangle":{description:r["no-comma-dangle-description"],url:"http://eslint.org/docs/rules/no-comma-dangle",rule:function(e){return{ObjectExpression:function(t){var n=e.getLastToken(t,1);n&&","===n.value&&e.report(t,r["no-comma-dangle"],null,n)}}}},"no-cond-assign":{description:r["no-cond-assign-description"],url:"http://eslint.org/docs/rules/no-cond-assign",rule:function(e){function t(t){var n=t.parent.type;return a[n]&&"ForStatement"!==n?"("===e.getTokenBefore(t,1).value:"("===e.getTokenBefore(t).value}function n(e){switch(e.type){case"FunctionExpression":case"ObjectExpression":case"CallExpression":case"ArrayExpression":return!0;default:return!1}}function o(o){var a=[];if(null!==o.test){o.test.parent=o,i.traverse(o.test,{enter:function(e,t){return e.range[0]>o.test.range[1]?i.VisitorOption.Break:n(e)?i.VisitorOption.Skip:(t&&(e.parent=t),void(e&&"AssignmentExpression"===e.type&&a.push(e)))}});var s=a.length;if(s>0)for(var l=0;s>l;l++){var c=a[l];t(c)||(c.range[0]=c.left.range[0],e.report(c,r["no-cond-assign"]))}}}var a={IfStatement:!0,DoWhileStatement:!0,WhileStatement:!0,ForStatement:!0};return{IfStatement:o,WhileStatement:o,ForStatement:o,DoWhileStatement:o}}},"no-console":{description:r["no-console-description"],url:"http://eslint.org/docs/rules/no-console",rule:function(e){return{MemberExpression:function(t){"console"===t.object.name&&e.env&&e.env.browser&&e.report(t.object,r["no-console"])}}}},"no-constant-condition":{description:r["no-constant-condition-description"],url:"http://eslint.org/docs/rules/no-constant-condition",rule:function(e){function t(e){switch(e.type){case"Literal":case"ObjectExpression":case"FunctionExpression":case"ArrayExpression":return!0;case"BinaryExpression":case"LogicalExpression":return t(e.left)&&t(e.right);case"UnaryExpression":return t(e.argument);default:return!1}}function n(n){n&&n.test&&t(n.test)&&e.report(n.test,r["no-constant-condition"])}return{IfStatement:n,WhileStatement:n,DoWhileStatement:n,ForStatement:n,ConditionalExpression:n}}},"no-debugger":{description:r["no-debugger-description"],url:"http://eslint.org/docs/rules/no-debugger",rule:function(e){return{DebuggerStatement:function(n){try{e.report(n,r["no-debugger"],null,e.getTokens(n)[0])}catch(i){t.log(i)}}}}},"no-dupe-keys":{description:r["no-dupe-keys-description"],url:"http://eslint.org/docs/rules/no-dupe-keys",rule:function(e){return{ObjectExpression:function(n){try{var i=n.properties;if(i&&i.length>0)for(var o=i.length,a=Object.create(null),s=0;o>s;s++){var l=i[s];if("init"===l.kind){var c=l.key.name?l.key.name:l.key.value;Object.prototype.hasOwnProperty.call(a,c)?e.report(l,r["no-dupe-keys"],{0:c},e.getTokens(l)[0]):a[c]=1}}}catch(u){t.log(u)}}}}},"no-empty-block":{description:r["no-empty-block-description"],url:"http://eslint.org/docs/rules/no-empty",rule:function(e){var n;return{Program:function(e){n=e.comments},BlockStatement:function(i){try{if(i.body.length<1){for(var o=0;o=i.range[0]&&a[1]<=i.range[1])return}e.report(i,r["no-empty-block"])}}catch(s){t.log(s)}}}}},"no-eval":{description:r["no-eval-description"],url:"http://eslint.org/docs/rules/no-eval",rule:function(e){return{CallExpression:function(n){try{var i=n.callee.name;if(!i)return;"eval"===i&&e.report(n.callee,r["no-eval"],{0:"'eval'"},e.getTokens(n.callee)[0])}catch(o){t.log(o)}}}}},"no-extra-semi":{description:r["no-extra-semi-description"],url:"http://eslint.org/docs/rules/no-extra-semi",rule:function(e){return{EmptyStatement:function(n){try{var i=e.getTokens(n),o=i[i.length-1];o&&"Punctuator"===o.type&&";"===o.value&&e.report(n,r["no-extra-semi"],null,o)}catch(a){t.log(a)}}}}},"no-fallthrough":{description:r["no-fallthrough-description"],url:"http://eslint.org/docs/rules/no-fallthrough",rule:function(n){function i(t){if(t.consequent){var n=t.consequent.slice(0);if(n.length>0&&"BlockStatement"===n[0].type){var r=n.shift();r.body.length>0&&(n=[].concat(n,r.body))}if(n.length<1)return!1;for(var i=null,o=0;o1){var o=e.cases.length;e:for(var a=0;o>a&&a+1!==o;a++)if(i(e.cases[a])){var s=e.cases[a+1];if(s.test)s.range[1]=s.test.range[1];else{var l=n.getTokens(s);l&&l.length>0&&(s.range[1]=l[0].range[1])}var c=s.leadingComments;if(!c&&s.test&&(c=s.test.leadingComments),c)for(var u=null,p=0;p0){var a=i.arguments[0];if("Literal"===a.type)n.report(i.callee,r["no-eval"],{0:"Implicit 'eval'"},n.getTokens(i.callee)[0]);else if("Identifier"===a.type){var s=n.getScope(),l=e.getDeclaration(a,s);if(l&&l.defs&&l.defs.length){var c=l.defs[0],u=c.node;"Variable"===c.type&&u&&"VariableDeclarator"===u.type&&u.init&&"Literal"===u.init.type&&n.report(i.callee,r["no-eval"],{0:"Implicit 'eval'"},n.getTokens(i.callee)[0])}}}}catch(p){t.log(p)}}}}},"no-iterator":{description:r["no-iterator-description"],url:"http://eslint.org/docs/rules/no-iterator",rule:function(e){return{MemberExpression:function(t){null!=t.property&&(t.computed?"__iterator__"===t.property.value&&e.report(t.property,r["no-iterator"]):"__iterator__"===t.property.name&&e.report(t.property,r["no-iterator"]))}}}},"no-proto":{description:r["no-proto-description"],url:"http://eslint.org/docs/rules/no-proto.html",rule:function(e){return{MemberExpression:function(t){null!=t.property&&(t.computed?"__proto__"===t.property.value&&e.report(t.property,r["no-proto"]):"__proto__"===t.property.name&&e.report(t.property,r["no-proto"]))}}}},"no-jslint":{description:r["no-jslint-description"],rule:function(e){return{Program:function(n){try{var i,o=n.comments;if(o&&(i=o.length)&&o.length>0)for(var a=0;i>a;a++){var s=o[a];if("Block"===s.type){var l=/^\s*(js[l|h]int)(\s+\w+:\w+)+/gi.exec(s.value);if(l){var c=l[1];if(c.length<1)continue;var u=2+s.value.indexOf(c)+s.range[0],p=u+c.length;e.report({type:"BlockComment",range:[u,p],loc:s.loc},r["no-jslint"],{0:c})}}}}catch(f){t.log(f)}}}}},"no-new-array":{description:r["no-new-array-description"],rule:function(e){function t(t){var n=t.callee;if(n&&"Array"===n.name){var i=t.arguments;i.length>1?e.report(n,r["no-new-array"]):1===i.length&&"Literal"===i[0].type&&"number"!=typeof i[0].value&&e.report(n,r["no-new-array"])}}return{NewExpression:t,CallExpression:t}}},"no-new-func":{description:r["no-new-func-description"],url:"http://eslint.org/docs/rules/no-new-func",rule:function(e){return{NewExpression:function(t){var n=t.callee;n&&"Function"===n.name&&e.report(n,r["no-new-func"])}}}},"no-new-object":{description:r["no-new-object-description"],url:"http://eslint.org/docs/rules/no-new-object",rule:function(e){return{NewExpression:function(t){var n=t.callee;n&&"Object"===n.name&&e.report(n,r["no-new-object"])}}}},"no-new-wrappers":{description:r["no-new-wrappers-description"],url:"http://eslint.org/docs/rules/no-new-wrappers",rule:function(e){var t=["String","Number","Math","Boolean","JSON"];return{NewExpression:function(n){var i=n.callee;i&&t.indexOf(i.name)>-1&&e.report(i,r["no-new-wrappers"],[i.name])}}}},"no-with":{description:r["no-with-description"],url:"http://eslint.org/docs/rules/no-with",rule:function(e){return{WithStatement:function(t){e.report(t,r["no-with"],null,e.getFirstToken(t))}}}},"missing-nls":{description:r["missing-nls-description"],rule:function(e){function t(t,n){var i=Object.create(null);i.indexOnLine=n,e.report(t,r["missing-nls"],{0:t.value,data:i})}function n(e,t){for(var n=0;n0){if("use strict"===t.value.toLowerCase())return;if(/^(?:[\.,-\/#!$%\^&\*;:{}=\-_`~()@\+\?><\[\]\+])$/.test(t.value))return;if(/^(?:==|!=|===|!==|=>)$/.test(t.value))return;if(t.parent)switch(t.parent.type){case"UnaryExpression":case"MemberExpression":case"SwitchCase":return;case"BinaryExpression":if("+"!==t.parent.operator)return;break;case"Property":if(t.parent.key===t)return;var n=t.parent.parent.parent;if(n&&"CallExpression"===n.type&&n.callee&&"define"===n.callee.name)return;break;case"NewExpression":case"CallExpression":var r=t.parent.callee;if(r){if("MemberExpression"===r.type&&r.property&&i[r.property.name])return;if(i[r.name])return}break;case"ArrayExpression":if(n=t.parent.parent,"CallExpression"===n.type&&("define"===n.callee.name||"require"===n.callee.name||"requirejs"===n.callee.name))return}var o=t.loc.end.line-1;e._linesWithStringLiterals[o]||(e._linesWithStringLiterals[o]=[]),e._linesWithStringLiterals[o].push(t)}},Program:function(){e._linesWithStringLiterals={}},"Program:exit":function(){if(e._linesWithStringLiterals)for(var n in e._linesWithStringLiterals)if(e._linesWithStringLiterals.hasOwnProperty(n)){var r=e.getSourceLines()[n],i=e._linesWithStringLiterals[n];if(i){for(var o,a=/\/\/\$NON-NLS-([0-9])+\$/g,s=[];null!=(o=a.exec(r));)s.push(o[1]);for(var l=0;l-1&&e.report(i.key,r["no-reserved-keys"])}}}}},"no-shadow":{description:r["no-shadow-description"],url:"http://eslint.org/docs/rules/no-shadow",rule:function(n){function i(e,t){t.variables.forEach(function(n){var r=n.name;n.defs.length&&(Object.prototype.hasOwnProperty.call(e,r)||(e[n.name]=t))})}function o(t){for(var n=t.upper,r=Object.create(null);n&&!n._symbols;)n=n.upper;return n&&e.mixin(r,n._symbols),i(r,t),t._symbols=r,r}function a(e,t){n.report(e,r["no-shadow"],{0:t})}function s(e){return e.defs.some(function(e){return"Parameter"===e.type})}function l(e){try{var r=n.getScope();if("FunctionExpression"===e.type&&e.id&&e.id.name&&(r=r.upper,"global"===r.type))return;var i=o(r);r.variables.forEach(function(e){if(e.defs.length){var t;(t=i[e.name])&&t!==r&&!s(e)&&a(e.defs[0].name,e.name)}})}catch(l){t.log(l)}}return{Program:l,FunctionDeclaration:l,FunctionExpression:l,ArrowFunctionExpression:l}}},"no-shadow-global":{description:r["no-shadow-global-description"],rule:function(e){function t(t){var i=e.env?e.env:{};switch(i.builtin=!0,t.type){case"VariableDeclarator":i[n.findESLintEnvForMember(t.id.name)]&&e.report(t.id,r["no-shadow-global"],{0:t.id.name});break;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":t.params.forEach(function(t){"Identifier"===t.type&&i[n.findESLintEnvForMember(t.name)]&&e.report(t,r["no-shadow-global-param"],{0:t.name,nls:"no-shadow-global-param"})})}}return{FunctionExpression:t,FunctionDeclaration:t,ArrowFunctionExpression:t,VariableDeclarator:t}}},"no-sparse-arrays":{description:r["no-sparse-arrays-description"],url:"http://eslint.org/docs/rules/no-sparse-arrays",rule:function(e){return{ArrayExpression:function(t){t.elements.indexOf(null)>-1&&e.report(t,r["no-sparse-arrays"])}}}},"no-throw-literal":{description:r["no-throw-literal-description"],url:"http://eslint.org/docs/rules/no-throw-literal",rule:function(e){return{ThrowStatement:function(n){try{var i=n.argument;switch(i.type){case"Identifier":if("undefined"!==i.name)return;case"Literal":case"ObjectExpression":case"ArrayExpression":e.report(i,r["no-throw-literal"])}}catch(o){t.log(o)}}}}},"no-undef":{description:r["no-undef-description"],url:"http://eslint.org/docs/rules/no-undef",rule:function(e){function i(e){return e.defs.every(function(e){return"ImplicitGlobalVariable"===e.type})}function o(e,t){var n=null;return e.variables.some(function(e){return e.name!==t.identifier.name||i(e)&&!Object.hasOwnProperty.call(e,"writeable")?!1:(n=e,!0)}),n}return{Program:function(){try{var i=e.getScope();i.through.forEach(function(t){var a=o(i,t),s=t.identifier.name;if(a)t.isWrite()&&a.writeable===!1&&e.report(t.identifier,r["no-undef-readonly"],{0:s,nls:"no-undef-readonly"});else{var l=n.findESLintEnvForMember(s),c=l?"-inenv":"",u="no-undef-defined";e.report(t.identifier,r["no-undef-defined"],{0:s,nls:u,pid:u+c})}})}catch(a){t.log(a)}}}}},"no-undef-init":{description:r["no-undef-init-description"],url:"http://eslint.org/docs/rules/no-undef-init.html",rule:function(e){return{VariableDeclarator:function(t){t.init&&"Identifier"===t.init.type&&"undefined"===t.init.name&&e.report(t.init,r["no-undef-init"])}}}},"no-unreachable":{description:r["no-unreachable-description"],url:"http://eslint.org/docs/rules/no-unreachable",rule:function(n){function i(e){switch(e.type){case"FunctionDeclaration":case"VariableDeclaration":return!0}return!1}function o(o){try{var a=0;for(a;an;n++){var r=e.leadingComments[n];if("Block"===r.type&&/\s*(?:@callback)\s+/.test(r.value))return!0}return!1}function i(i){try{var o=e.getScope(),a=o.childScopes;o.functionExpressionScope&&a&&a.length&&(o=a[0]),o.variables.forEach(function(t){if(t.defs.length&&"Parameter"===t.defs[0].type){var o=t.defs[0].name;if(!t.references.length){var a="no-unused-params";if("FunctionExpression"===i.type){if(a+="-expr",n(i)||i.params&&i.params.length>0&&n(i.params[0]))return;var s=i.parent;switch(s.type){case"Property":if(n(s)||n(s.key))return;break;case"MemberExpression":if(s=s.parent,"CallExpression"===s.type&&n(s))return;break;case"AssignmentExpression":var l=s.left;if("MemberExpression"===l.type){if(n(l))return}else if("Identifier"===l.type&&n(l))return;break;case"VariableDeclarator":if(n(s.id))return}}else"ArrowFunctionExpression"===i.type&&(a+="-arrow");e.report(o,r["no-unused-params"],{0:o.name,pid:a})}}})}catch(s){t.log(s)}}return{FunctionDeclaration:i,FunctionExpression:i,ArrowFunctionExpression:i}}},"no-unused-vars":{description:r["no-unused-vars-description"],url:"http://eslint.org/docs/rules/no-unused-vars",rule:function(e){function n(e){return e.isRead()}function i(e,t){var n=t.references;return"global"===e.type&&(n=n.concat(e.through.filter(function(e){return e.identifier.name===t.name}))),n}function o(){try{var o=e.getScope();o.variables.forEach(function(t){if(t.defs.length&&"Parameter"!==t.defs[0].type){var a=t.defs[0].node,s=i(o,t),l=a.id;s.length?s.some(n)||e.report(l,r["no-unused-vars-unread"],{0:l.name,nls:"no-unused-vars-unread"}):"FunctionDeclaration"===a.type?e.report(l,r["no-unused-vars-unused-funcdecl"],{0:l.name,nls:"no-unused-vars-unused-funcdecl"}):e.report(l,r["no-unused-vars-unused"],{0:l.name,nls:"no-unused-vars-unused"})}})}catch(a){t.log(a)}}return{Program:o,FunctionDeclaration:o,FunctionExpression:o,ArrowFunctonExpression:o}}},"no-use-before-define":{description:r["no-use-before-define-description"],url:"http://eslint.org/docs/rules/no-use-before-define",rule:function(n){function i(e,t){return"boolean"==typeof e?e:t}function o(){try{var i=n.getScope();i.references.forEach(function(t){var o,a=e.getDeclaration(t,i),c=t.identifier,u=c.name;if(a&&(o=a.defs).length&&c.range[0]-1&&("Literal"!==a.type||t.indexOf(a.value)<0)&&e.report(a,r["valid-typeof"])}}}}}};return{getRules:a,getESLintRules:s}}),n("javascript/signatures",[],function(){var e={computeSignature:function(e){if(e){if(e.sig)return e.sig;var t=this.getNameFrom(e);return{sig:t.name,details:t.details,range:this.getSignatureSourceRangeFrom(e)}}return null},getParamsFrom:function(e){if(e){var t=e.params;if(t&&t.length>0){for(var n=t.length,r="",i=0;n>i;i++)r+=t[i].name?t[i].name:"Object",n-1>i&&(r+=", ");return r}}},getPropertyListFrom:function(e,t){if(t||(t=50),0>t&&(t=0),e){var n=e.properties;if(n&&n.length>0){for(var r,i=n.length,o="{",a=0;i>a;a++){if(r=n[a].key&&n[a].key.name?n[a].key.name:"Object",o.length+r.length>t+1){o+="...";break}o+=r,i-1>a&&(o+=", ")}return o+="}"}}return"{...}"},getNameFrom:function(e){var t,n="Anonyous "+e.type;if(e&&e.type)if("FunctionDeclaration"===e.type){if(e.id&&e.id.name){n=e.id.name+"(";var r=this.getParamsFrom(e);r&&(n+=r),n+=")"}}else if("FunctionExpression"===e.type){n="function(";var i=this.getParamsFrom(e);i&&(n+=i),n+=")"}else if("ObjectExpression"===e.type)n="closure ",t=this.getPropertyListFrom(e);else if("Property"===e.type){if(e.value)if("FunctionExpression"===e.value.type){e.key?e.key.name?n=e.key.name+"(":e.key.value&&(n=e.key.value+"("):n="function(";var o=this.getParamsFrom(e.value);o&&(n+=o),n+=")"}else"ObjectExpression"===e.value.type?e.key&&(e.key.name?n=e.key.name+" ":e.key.value&&(n=e.key.value+" "),t=this.getPropertyListFrom(e.value)):e.key&&(e.key.name?n=e.key.name:e.key.value&&(n=e.key.value))}else if("VariableDeclarator"===e.type){if(e.init)if("ObjectExpression"===e.init.type)e.id&&e.id.name&&(n="var "+e.id.name+" = ",t=this.getPropertyListFrom(e.init));else if("FunctionExpression"===e.init.type)if(e.id&&e.id.name){n=e.id.name+"(";var a=this.getParamsFrom(e.init);a&&(n+=a),n+=")"}else n=this.getNameFrom(e.init)}else if("AssignmentExpression"===e.type){if(e.left&&e.right){var s="ObjectExpression"===e.right.type;if(s||"FunctionExpression"===e.right.type)if(e.left.name?n=e.left.name:"MemberExpression"===e.left.type&&(n=this.expandMemberExpression(e.left,"")),n)if(s)n+=" ",t=this.getPropertyListFrom(e.right);else{n+="(";var l=this.getParamsFrom(e.right);l&&(n+=l),n+=")"}else n=this.getNameFrom(e.right)}}else"ReturnStatement"===e.type&&e.argument&&("ObjectExpression"===e.argument.type||"FunctionExpression"===e.argument.type)&&(n="return ",t=this.getPropertyListFrom(e.argument));return{name:n,details:t}},expandMemberExpression:function(e,t){if("MemberExpression"===e.type){if(e.property){var n=e.property.name;"Literal"===e.property.type&&(n=e.property.value),n&&(t=t&&t.length>0?n+"."+t:n)}return e.object&&e.object.name&&(t=e.object.name+"."+t),this.expandMemberExpression(e.object,t)}return t},getSignatureSourceRangeFrom:function(e){var t=[0,0];return e&&("AssignmentExpression"===e.type?e.left&&e.left.range&&(t=e.left.range):"Property"===e.type?e.key&&e.key.range&&(t=e.key.range):"ReturnStatement"===e.type?(t[0]=e.range[0],t[1]=t[0]+6):e.id&&e.id.range?t=e.id.range:e.range&&(t=e.range,"FunctionExpression"===e.type&&(t[1]=t[0]+8)),t[0]<1&&(t[0]=1)),t}};return e}),n("javascript/util",[],function(){function e(e){return e.length<1?!1:isNaN(e.charCodeAt(0))?!1:e.toLocaleUpperCase().charAt(0)===e.charAt(0)}function t(e,t){if("string"!=typeof e||"string"!=typeof t)return!1;if(0===e.length)return!0;if(e.charAt(0).toLowerCase()!==t.charAt(0).toLowerCase())return!1;if(n(t,e))return!0;var i=t.toLowerCase();if(n(i,e))return!0;var o=e.toLowerCase();if(e===o)return!1;if(n(i,o))return!0;var a=r(e),s=r(t);if(a.length>s.length)return!1;for(var l=0;l=0;--r)e(t.charAt(r))&&(n.push(t.substring(r)),t=t.substring(0,r));return 0!==t.length&&n.push(t),n.reverse()}return{isUpperCase:e,looselyMatches:t,startsWith:n,toCamelCaseParts:r}}),n("javascript/contentAssist/sigparser",[],function(){function e(e){this.start=e,this.end=-1}function t(e){return")"===e||":"===e||"{"===e||"}"===e||"["===e||"]"===e||","===e||"|"===e}function n(e){for(var t=e.charAt(f);/\s/.test(t)&&f0?r:(f++,i);if("-"===i){if(">"===e.charAt(f+1))return f+=2,"->"}else{if("("===i)return"fn"===r?(r+=i,f++,r):i;if("|"===i)return r;""===i?f++:(r+=i,f++,i=e.charAt(f))}}return r}function i(t){var n=r(t),i=new e(d);if("fn("===n){var o=[];")"!==t.charAt(f)&&a(t,o),r(t);var l=s(t);return i.finishFunction(t.substring(i.start,f),l,o)}return null}function o(e){var t;return t="f"===e.charAt(f)&&"n"===e.charAt(f+1)&&"("===e.charAt(f+2)?i(e):l(e),"|"===e.charAt(f)&&(t=c(t,e)),t}function a(t,i){var s=r(t),l=new e(d),c=r(t);":"===c&&(n(t),i.push(l.finishParam(s,o(t))),n(t),","===t.charAt(f)&&(r(t),a(t,i)))}function s(e){return n(e),"-"===e.charAt(f)&&">"===e.charAt(f+1)?(r(e),n(e),o(e)):null}function l(n){var i=r(n),a=new e(d);if(t(i)){if("{"===i){var s=n.charAt(f);if("}"===s)return r(n),a.finishObject(n.substring(a.start,f),[]);for(var l=[];"}"!==s&&f-1)return o;if("@"===a)return"@";for(;i>=0&&/\S/.test(a);){if(o=a+o,"@"===a)return o;if(i--,a=n.charAt(i),"{*,".indexOf(a)>-1)return o}return o}return r}function g(e,t,n){var i=r.findComment(t,e);if(i)switch(i.type){case"Block":var o=i.range[0];if("/"===n.charAt(o)&&"*"===n.charAt(o+1)){if("*"===n.charAt(o+2)&&t>o+2)return{kind:"jsdoc",node:i};if(t>o+1)return{kind:"doc",node:i} +}break;case"Line":return{kind:"linedoc",node:i};default:return null}if(i=r.findNode(t,e,{parents:!0}),i&&i.parents&&i.parents.length>0){var a=i.parents.pop();switch(a.type){case"MemberExpression":return{kind:"member"};case"Program":case"BlockStatement":break;case"VariableDeclarator":if(!a.init||t=a.value.range[0]&&t-1<=a.value.range[1]?{kind:"prop"}:null;case"SwitchStatement":return{kind:"swtch"}}}return{kind:"top"}}function v(t,i,o,a,c){var p=[];if(!i)return p;if("jsdoc"===i.kind){var d=t.offset>t.prefix.length?t.offset-t.prefix.length-1:0;switch(a.charAt(d)){case"{":p=[];break;case".":return[];case"*":case" ":var h=r.findNodeAfterComment(i.node,o);if(h){var m;if(null!==(m=/\s*\*\s*\@name\s*(\w*)/gi.exec(t.line))){if(m[1]===t.prefix){var g=y(h);g&&p.push({proposal:g,relevance:100,name:g,description:e.funcProposalDescription,style:"emphasis",overwrite:!0,kind:"js"})}}else if(null!==(m=/\s*\*\s*\@param\s*(?:\{\w*\})?\s*(\w*)/gi.exec(t.line))&&m[1]===t.prefix){var v=b(h);if(Array.isArray(v))for(var x=0;x0){var n=e.declarations[0];if(n.init&&"FunctionExpression"===n.init.type)return n.init.id?n.init.id.name:n.id.name}}return null}function b(e){switch(e.type){case"FunctionDeclaration":return e.params;case"Property":if("FunctionExpression"===e.value.type)return e.value.params;break;case"ExpressionStatement":var t=e.expression;if(t&&"AssignmentExpression"===t.type&&"FunctionExpression"===t.right.type)return t.right.params;break;case"VariableDeclaration":if(e.declarations.length>0){var n=e.declarations[0];if(n.init&&"FunctionExpression"===n.init.type)return n.init.params}}return[]}function x(e,t,n,r){this.astManager=e,this.ternworker=t,this.pluginenvs=n,this.cuprovider=r,this.timeout=null}function S(e){var t=e;switch(e){case"do":t="do...while";break;case"in":t="for...in";break;case"try":case"catch":case"finally":t="try...catch";break;case"case":case"default":t="switch";break;case"if":case"else":t="if...else"}return L[e]?"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/"+t:"extends"===e?"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/"+t:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/"+t}function E(t,n){var r={relevance:100,style:"emphasis",overwrite:!0,kind:"js"};if(r.name=r.proposal=t.name,"undefined"!=typeof t.type)if(/^fn/.test(t.type))w(t,n,r);else{if("template"===t.type){var o=new i.Template(n.params.prefix,t.description,t.template,t.name),s=o.getProposal(n.params.prefix,n.params.offset,{}),l=Object.create(null);return l.type="markdown",l.content=e.templateHoverHeader,l.content+=s.proposal,s.hover=l,T.removePrefix(n.params.prefix,s),s.style="emphasis",s.kind="js",s}r.description=_(" : "+t.type)}else t.isKeyword?(r.relevance-=2,r.description=e.keywordProposalDescription,r.isKeyword=!0,t.doc=e.keywordHoverProposal,t.url=S(r.name)):r.description="";if(l=Object.create(null),l.type="markdown",l.content="",t.doc){var c=a.formatMarkdownHover(t.doc);l.content+=c?c.content:r.name}else l.content+=r.name;return t.url&&(l.content+=f.formatMessage.call(null,e.onlineDocumentationProposalEntry,t.url)),r.hover=l,r}function w(e,t,n){var r=[];n.relevance+=5;var i=p.parse(e.type);n.description=i.ret?i.ret.value?_(" : "+i.ret.value):i.ret.ret?" : function":"":"";var o=e.name+"(",a=i.params;if(a)for(var s=0;s0&&(n.positions=r)}function _(e){return e.replace(/:\s*\?/g,": any")}function k(e){var t=/([^/.]+\/[^\/]+)$/g.exec(e);return t?t[1]:(t=/\/([^\/]+)$/g.exec(e),t?t[1]:e)}function C(t,n){for(var r=n.envs?n.envs:{},i=Object.create(null),o=Object.create(null),a=[],s=[],l=0;l0&&(s.sort(A),s.splice(0,0,{proposal:"",description:e.keywordAssistHeader,style:"noemphasis_title",unselectable:!0}),h=h.concat(s)),m=Object.keys(i),l=0;l",isValid:function(e,t,n){var r=t.charAt(n-e.length-1);return!r||-1===this.uninterestingChars.indexOf(r)},getTemplateProposals:function(t,n,r,i){for(var a=[],s=i?i.kind:null,l=o.getTemplatesForKind(s),c=0;ct.name?1:0}),a.splice(0,0,{proposal:"",description:e.templateAssistHeader,style:"noemphasis_title",unselectable:!0})),a},templateMatches:function(e,t,n,r){if(e.match(t)){if("undefined"!=typeof r.line){var i=r.line.length-("undefined"!=typeof t?t.length:0),o=r.line.slice(0,i>-1?i:0).trim();if(n&&"jsdoc"===n.kind)return!/^[\/]?[\*]+\s*[@]/gi.test(o)}if(n&&"doc"===n.kind){var a=n.node.value.trim();if(a){var s=r.offset-t.length-n.node.range[0];if(s>-1){var l=/^(eslint-\w+|eslint?)(\s|$)/gi.exec(a.slice(0,s));if(l)return!1}}}return!0}return!1}});var T=new d;n.mixin(x.prototype,{initialize:function(){},computeContentAssist:function(e,t){var n=this;return e.getFileMetadata().then(function(i){return"text/html"===i.contentType.id?e.getText().then(function(e){var o=n.cuprovider.getCompilationUnit(function(){return r.findScriptBlocks(e)},i);return o.validOffset(t.offset)?n.astManager.getAST(o.getEditorContext()).then(function(r){return n.pluginenvs().then(function(o){return n.doAssist(r,t,i,{ecma5:!0,ecma6:!0,browser:!0},o,e)})}):[]}):n.astManager.getAST(e).then(function(e){return n.pluginenvs().then(function(r){return n.doAssist(e,t,i,{ecma5:!0,ecma6:!0},r)})})})},doAssist:function(e,n,r,i,o,a){var s=g(e,n.offset,e.source);n.prefix=m(n,s,e.source);var l=[].concat(v(n,s,e,e.source,o),h(n,s,e.source));if(!s||"jsdoc"!==s.kind&&"doc"!==s.kind&&"linedoc"!==s.kind){var c=this.getActiveEnvironments(e,i),u=[{type:"full",name:r.location,text:a?a:e.source}];"undefined"==typeof n.keywords&&(n.keywords=!0);var p={params:n,meta:r,envs:c,files:u},f=new t;f.proposals=l,f.args=p;var d=this;return this.ternworker.postMessage({request:"completions",args:p},function(e){clearTimeout(d.timeout),f.resolve(f.proposals?[].concat(C(e.proposals?e.proposals:[],f.args),f.proposals):C(e.proposals,f.args))}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(function(){f&&f.resolve(n.timeoutReturn?n.timeoutReturn:[]),this.timeout=null},n.timeout?n.timeout:5e3),f}return(new t).resolve(l)},getActiveEnvironments:function(e,t){var r=Object.create(null);if(n.mixin(r,t),e.comments)for(var i=0;it.relevance)return-1;if(t.relevance>e.relevance)return 1;var n=e.name,r=t.name;return r>n?-1:n>r?1:0};return{TernContentAssist:x}}),n("esrecurse/esrecurse",[],function(){"use strict";function e(e){return null==e?!1:"object"==typeof e&&"string"==typeof e.type}function n(e,t){return(e===a.Syntax.ObjectExpression||e===a.Syntax.ObjectPattern)&&"properties"===t}function r(e){this.__visitor=e}var i,o,a=t("estraverse/estraverse");return i=Array.isArray,i||(i=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),o=Object.keys||function(e){var t,n=[];for(t in e)n.push(t);return n},r.prototype.visitChildren=function(t){var r,i,s,l,c,u,p;if(null!=t)for(r=t.type||a.Syntax.Property,i=a.VisitorKeys[r],i||(i=o(t)),s=0,l=i.length;l>s;++s)if(p=t[i[s]])if(Array.isArray(p))for(c=0,u=p.length;u>c;++c)p[c]&&(e(p[c])||n(r,i[s]))&&this.visit(p[c]);else e(p)&&this.visit(p)},r.prototype.visit=function(e){var t;if(null!=e)return t=e.type||a.Syntax.Property,this.__visitor[t]?void this.__visitor[t].call(this,e):void this.visitChildren(e)},{version:"1.2.0",Visitor:r,visit:function(e,t){var n=new r(t);n.visit(e)}}}),n("escope/escope",["esrecurse/esrecurse","estraverse/estraverse","orion/objects"],function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e._super=t}function i(e,t){if(!e)throw new Error(t)}function o(){return{optimistic:!1,directive:!1,sourceType:"script",ecmaVersion:5}}function a(e,t){function n(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof RegExp)}var r,i;for(r in t)t.hasOwnProperty(r)&&(i=t[r],n(i)?n(e[r])?a(e[r],i):e[r]=a({},i):e[r]=i);return e}function s(e,t,n,r,i,o){this.identifier=e,this.from=t,this.tainted=!1,this.resolved=null,this.flag=n,this.isWrite()&&(this.writeExpr=r,this.partial=o),this.__maybeImplicitGlobal=i}function l(e,t){this.name=e,this.identifiers=[],this.references=[],this.defs=[],this.tainted=!1,this.stack=!0,this.scope=t}function c(e,t,n,r){var i,o,a,s,l;if(e.upper&&e.upper.isStrict)return!0;if(t.type===y.ArrowFunctionExpression)return!0;if(n)return!0;if("class"===e.type||"module"===e.type)return!0;if("block"===e.type||"switch"===e.type)return!1;if("function"===e.type)i=t.body;else{if("global"!==e.type)return!1;i=t}if(r){for(o=0,a=i.body.length;a>o&&(s=i.body[o],"DirectiveStatement"===s.type);++o)if('"use strict"'===s.raw||"'use strict'"===s.raw)return!0}else for(o=0,a=i.body.length;a>o&&(s=i.body[o],s.type===y.ExpressionStatement)&&(l=s.expression,l.type===y.Literal&&"string"==typeof l.value);++o)if(null!=l.raw){if('"use strict"'===l.raw||"'use strict'"===l.raw)return!0}else if("use strict"===l.value)return!0;return!1}function u(e,t){var n;e.scopes.push(t),n=e.__nodeToScope.get(t.block),n?n.push(t):e.__nodeToScope.set(t.block,[t])}function p(e,t,n,r){this.type=r===E?"TDZ":r===x?"module":t.type===y.BlockStatement?"block":t.type===y.SwitchStatement?"switch":t.type===y.FunctionExpression||t.type===y.FunctionDeclaration||t.type===y.ArrowFunctionExpression?"function":t.type===y.CatchClause?"catch":t.type===y.ForInStatement||t.type===y.ForOfStatement||t.type===y.ForStatement?"for":t.type===y.WithStatement?"with":t.type===y.ClassExpression||t.type===y.ClassDeclaration?"class":"global",this.set=new Map,this.taints=new Map,this.dynamic="global"===this.type||"with"===this.type,this.block=t,this.through=[],this.variables=[],this.references=[],this.variableScope="global"===this.type||"function"===this.type||"module"===this.type?this:e.__currentScope.variableScope,this.functionExpressionScope=!1,this.directCallToEvalScope=!1,this.thisFound=!1,this.__left=[],r===S?(this.__define(t.id,{type:l.FunctionName,name:t.id,node:t}),this.functionExpressionScope=!0):("function"===this.type&&this.block.type!==y.ArrowFunctionExpression&&this.__defineArguments(),t.type===y.FunctionExpression&&t.id&&e.__nestFunctionExpressionNameScope(t,n)),this.upper=e.__currentScope,this.isStrict=c(this,t,n,e.__useDirective()),this.childScopes=[],e.__currentScope&&e.__currentScope.childScopes.push(this),e.__currentScope=this,"global"===this.type&&(e.globalScope=this,e.globalScope.implicit={set:new Map,variables:[],left:[]}),u(e,this)}function f(e){this.scopes=[],this.globalScope=null,this.__nodeToScope=new WeakMap,this.__currentScope=null,this.__options=e}function d(e,n){t.traverse(e,{enter:function(e,t){var r,i,o,a;switch(e.type){case y.Identifier:null===t&&n(e,!0);break;case y.SpreadElement:e.argument.type===y.Identifier&&n(e.argument,!1);break;case y.ObjectPattern:for(r=0,i=e.properties.length;i>r;++r)a=e.properties[r],a.shorthand?n(a.key,!1):a.value.type!==y.Identifier||n(a.value,!1);break;case y.ArrayPattern:for(r=0,i=e.elements.length;i>r;++r)o=e.elements[r],o&&o.type===y.Identifier&&n(o,!1)}}})}function h(e){var t=e.type;return t===y.Identifier||t===y.ObjectPattern||t===y.ArrayPattern||t===y.SpreadElement}function m(t,n){e.Visitor.call(this,this),this.declaration=t,this.referencer=n}function g(t){e.Visitor.call(this,this),this.scopeManager=t,this.parent=null,this.isInnerMethodDefinition=!1}function v(e,t){var n,r,s;return s=a(o(),t),n=new f(s),r=new g(n),r.visit(e),i(null===n.__currentScope),n}var y=t.Syntax;s.READ=1,s.WRITE=2,s.RW=s.READ|s.WRITE,s.prototype.isStatic=function(){return!this.tainted&&this.resolved&&this.resolved.scope.isStatic()},s.prototype.isWrite=function(){return!!(this.flag&s.WRITE)},s.prototype.isRead=function(){return!!(this.flag&s.READ)},s.prototype.isReadOnly=function(){return this.flag===s.READ},s.prototype.isWriteOnly=function(){return this.flag===s.WRITE},s.prototype.isReadWrite=function(){return this.flag===s.RW},l.CatchClause="CatchClause",l.Parameter="Parameter",l.FunctionName="FunctionName",l.ClassName="ClassName",l.Variable="Variable",l.ImportBinding="ImportBinding",l.TDZ="TDZ",l.ImplicitGlobalVariable="ImplicitGlobalVariable";var b=0,x=1,S=2,E=3;return p.prototype.__close=function(e){var t,n,r,i,o,a;if(!this.dynamic||e.__isOptimistic())for(t=0,n=this.__left.length;n>t;++t)r=this.__left[t],this.__resolve(r)||this.__delegateToUpperScope(r);else if("with"===this.type)for(t=0,n=this.__left.length;n>t;++t)r=this.__left[t],r.tainted=!0,this.__delegateToUpperScope(r);else for(t=0,n=this.__left.length;n>t;++t){r=this.__left[t],i=this;do i.through.push(r),i=i.upper;while(i)}if("global"===this.type){for(o=[],t=0,n=this.__left.length;n>t;++t)r=this.__left[t],r.__maybeImplicitGlobal&&!this.set.has(r.identifier.name)&&o.push(r.__maybeImplicitGlobal);for(t=0,n=o.length;n>t;++t)a=o[t],this.__defineImplicit(a.pattern,{type:l.ImplicitGlobalVariable,name:a.pattern,node:a.node});this.implicit.left=this.__left}this.__left=null,e.__currentScope=this.upper},p.prototype.__resolve=function(e){var t,n;return n=e.identifier.name,this.set.has(n)?(t=this.set.get(n),t.references.push(e),t.stack=t.stack&&e.from.variableScope===this.variableScope,e.tainted&&(t.tainted=!0,this.taints.set(t.name,!0)),e.resolved=t,!0):!1},p.prototype.__delegateToUpperScope=function(e){this.upper&&this.upper.__left.push(e),this.through.push(e)},p.prototype.__defineGeneric=function(e,t,n,r,i){var o;o=t.get(e),o||(o=new l(e,this),t.set(e,o),n.push(o)),i&&o.defs.push(i),r&&o.identifiers.push(r)},p.prototype.__defineArguments=function(){this.__defineGeneric("arguments",this.set,this.variables),this.taints.set("arguments",!0)},p.prototype.__defineImplicit=function(e,t){e&&e.type===y.Identifier&&this.__defineGeneric(e.name,this.implicit.set,this.implicit.variables,e,t)},p.prototype.__define=function(e,t){e&&e.type===y.Identifier&&this.__defineGeneric(e.name,this.set,this.variables,e,t)},p.prototype.__referencing=function(e,t,n,r,i){var o;e&&e.type===y.Identifier&&(o=new s(e,this,t||s.READ,n,r,!!i),this.references.push(o),this.__left.push(o))},p.prototype.__detectEval=function(){var e;e=this,this.directCallToEvalScope=!0;do e.dynamic=!0,e=e.upper;while(e)},p.prototype.__detectThis=function(){this.thisFound=!0},p.prototype.__isClosed=function(){return null===this.__left},p.prototype.resolve=function(e){var t,n,r;for(i(this.__isClosed(),"scope should be closed"),i(e.type===y.Identifier,"target should be identifier"),n=0,r=this.references.length;r>n;++n)if(t=this.references[n],t.identifier===e)return t;return null},p.prototype.isStatic=function(){return!this.dynamic},p.prototype.isArgumentsMaterialized=function(){var e;return"function"!==this.type?!0:this.isStatic()?(e=this.set.get("arguments"),i(e,"always have arguments variable"),e.tainted||0!==e.references.length):!0},p.prototype.isThisMaterialized=function(){return"function"!==this.type?!0:this.isStatic()?this.thisFound:!0},p.prototype.isUsedName=function(e){if(this.set.has(e))return!0;for(var t=0,n=this.through.length;n>t;++t)if(this.through[t].identifier.name===e)return!0;return!1},f.prototype.__useDirective=function(){return this.__options.directive},f.prototype.__isOptimistic=function(){return this.__options.optimistic},f.prototype.__ignoreEval=function(){return this.__options.ignoreEval},f.prototype.isModule=function(){return"module"===this.__options.sourceType},f.prototype.__get=function(e){return this.__nodeToScope.get(e)},f.prototype.acquire=function(e,t){function n(e){return"function"===e.type&&e.functionExpressionScope?!1:"TDZ"===e.type?!1:!0}var r,i,o,a;if(r=this.__get(e),!r||0===r.length)return null;if(1===r.length)return r[0];if(t){for(o=r.length-1;o>=0;--o)if(i=r[o],n(i))return i}else for(o=0,a=r.length;a>o;++o)if(i=r[o],n(i))return i;return null},f.prototype.acquireAll=function(e){return this.__get(e)},f.prototype.release=function(e,t){var n,r;return n=this.__get(e),n&&n.length?(r=n[0].upper,r?this.acquire(r.block,t):null):null},f.prototype.attach=function(){},f.prototype.detach=function(){},f.prototype.__nestScope=function(e,t){return new p(this,e,t,b)},f.prototype.__nestModuleScope=function(e){return new p(this,e,!1,x)},f.prototype.__nestTDZScope=function(e){return new p(this,e,!1,E)},f.prototype.__nestFunctionExpressionNameScope=function(e,t){return new p(this,e,t,S)},f.prototype.__isES6=function(){return this.__options.ecmaVersion>=6},r(m,e.Visitor),m.prototype.visitImport=function(e,t){var n=this;n.referencer.visitPattern(e,function(e){n.referencer.currentScope().__define(e,{type:l.ImportBinding,name:e,node:t,parent:n.declaration})})},m.prototype.ImportNamespaceSpecifier=function(e){e.id&&this.visitImport(e.id,e)},m.prototype.ImportDefaultSpecifier=function(e){this.visitImport(e.id,e)},m.prototype.ImportSpecifier=function(e){e.name?this.visitImport(e.name,e):this.visitImport(e.id,e)},r(g,e.Visitor),n.mixin(g.prototype,{currentScope:function(){return this.scopeManager.__currentScope},close:function(e){for(;this.currentScope()&&e===this.currentScope().block;)this.currentScope().__close(this.scopeManager)},pushInnerMethodDefinition:function(e){var t=this.isInnerMethodDefinition;return this.isInnerMethodDefinition=e,t},popInnerMethodDefinition:function(e){this.isInnerMethodDefinition=e},materializeTDZScope:function(e,t){this.scopeManager.__nestTDZScope(e,t),this.visitVariableDeclaration(this.currentScope(),l.TDZ,t.left,0)},materializeIterationScope:function(e){var t,n=this;this.scopeManager.__nestScope(e,!1),t=e.left,this.visitVariableDeclaration(this.currentScope(),l.Variable,t,0),this.visitPattern(t.declarations[0].id,function(t){n.currentScope().__referencing(t,s.WRITE,e.right,null,!0)})},visitPattern:function(e,t){d(e,t)},visitFunction:function(e){var t,n,r=this;for(e.type===y.FunctionDeclaration&&this.currentScope().__define(e.id,{type:l.FunctionName,name:e.id,node:e}),this.scopeManager.__nestScope(e,this.isInnerMethodDefinition),t=0,n=e.params.length;n>t;++t)this.visitPattern(e.params[t],function(n){r.currentScope().__define(n,{type:l.Parameter,name:n,node:e,index:t})});e.body.type===y.BlockStatement?this.visitChildren(e.body):this.visit(e.body),this.close(e)},visitClass:function(e){e.type===y.ClassDeclaration&&this.currentScope().__define(e.id,{type:l.ClassName,name:e.id,node:e}),this.visit(e.superClass),this.scopeManager.__nestScope(e),e.id&&this.currentScope().__define(e.id,{type:l.ClassName,name:e.id,node:e}),this.visit(e.body),this.close(e)},visitProperty:function(e){var t,n;e.computed&&this.visit(e.key),n=e.type===y.MethodDefinition||e.method,n&&(t=this.pushInnerMethodDefinition(!0)),this.visit(e.value),n&&this.popInnerMethodDefinition(t)},visitForIn:function(e){var t=this;e.left.type===y.VariableDeclaration&&"var"!==e.left.kind?(this.materializeTDZScope(e.right,e),this.visit(e.right),this.close(e.right),this.materializeIterationScope(e),this.visit(e.body),this.close(e)):(e.left.type===y.VariableDeclaration?(this.visit(e.left),this.visitPattern(e.left.declarations[0].id,function(n){t.currentScope().__referencing(n,s.WRITE,e.right,null,!0)})):(h(e.left)||this.visit(e.left),this.visitPattern(e.left,function(n){var r=null;t.currentScope().isStrict||(r={pattern:n,node:e}),t.currentScope().__referencing(n,s.WRITE,e.right,r,!0)})),this.visit(e.right),this.visit(e.body))},visitVariableDeclaration:function(e,t,n,r){var i,o,a=this;i=n.declarations[r],o=i.init,this.visitPattern(i.id,function(l,c){e.__define(l,{type:t,name:l,node:i,index:r,kind:n.kind,parent:n}),o&&a.currentScope().__referencing(l,s.WRITE,o,null,!c)})},AssignmentExpression:function(e){var t=this;h(e.left)?"="===e.operator?this.visitPattern(e.left,function(n,r){var i=null;t.currentScope().isStrict||(i={pattern:n,node:e}),t.currentScope().__referencing(n,s.WRITE,e.right,i,!r)}):t.currentScope().__referencing(e.left,s.RW,e.right):this.visit(e.left),this.visit(e.right)},CatchClause:function(e){var t=this;this.scopeManager.__nestScope(e),this.visitPattern(e.param,function(n){t.currentScope().__define(n,{type:l.CatchClause,name:e.param,node:e})}),this.visit(e.body),this.close(e)},Program:function(e){this.scopeManager.__nestScope(e),this.scopeManager.__isES6()&&this.scopeManager.isModule()&&this.scopeManager.__nestModuleScope(e),this.visitChildren(e),this.close(e)},Identifier:function(e){this.currentScope().__referencing(e)},UpdateExpression:function(e){h(e.argument)?this.currentScope().__referencing(e.argument,s.RW,null):this.visitChildren(e)},MemberExpression:function(e){this.visit(e.object),e.computed&&this.visit(e.property)},Property:function(e){this.visitProperty(e)},MethodDefinition:function(e){this.visitProperty(e)},BreakStatement:function(){},ContinueStatement:function(){},LabeledStatement:function(e){this.visit(e.body)},ForStatement:function(e){e.init&&e.init.type===y.VariableDeclaration&&"var"!==e.init.kind&&this.scopeManager.__nestScope(e),this.visitChildren(e),this.close(e)},ClassExpression:function(e){this.visitClass(e)},ClassDeclaration:function(e){this.visitClass(e)},CallExpression:function(e){this.scopeManager.__ignoreEval()||e.callee.type!==y.Identifier||"eval"!==e.callee.name||this.currentScope().variableScope.__detectEval(),this.visitChildren(e)},BlockStatement:function(e){this.scopeManager.__isES6()&&this.scopeManager.__nestScope(e),this.visitChildren(e),this.close(e)},ThisExpression:function(){this.currentScope().variableScope.__detectThis()},WithStatement:function(e){this.visit(e.object),this.scopeManager.__nestScope(e),this.visit(e.body),this.close(e)},VariableDeclaration:function(e){var t,n,r,i;for(t="var"===e.kind?this.currentScope().variableScope:this.currentScope(),n=0,r=e.declarations.length;r>n;++n)i=e.declarations[n],this.visitVariableDeclaration(t,l.Variable,e,n),i.init&&this.visit(i.init)},SwitchStatement:function(e){var t,n;for(this.visit(e.discriminant),this.scopeManager.__isES6()&&this.scopeManager.__nestScope(e),t=0,n=e.cases.length;n>t;++t)this.visit(e.cases[t]);this.close(e)},FunctionDeclaration:function(e){this.visitFunction(e)},FunctionExpression:function(e){this.visitFunction(e)},ForOfStatement:function(e){this.visitForIn(e)},ForInStatement:function(e){this.visitForIn(e)},ArrowFunctionExpression:function(e){this.visitFunction(e)},ImportDeclaration:function(e){var t;i(this.scopeManager.__isES6()&&this.scopeManager.isModule()),t=new m(e,this),t.visit(e)},ExportDeclaration:function(e){return e.source?void 0:e.declaration?void this.visit(e.declaration):void this.visitChildren(e)},ExportSpecifier:function(e){this.visit(e.id)}}),{version:"2.0.4",Reference:s,Variable:l,Scope:p,ScopeManager:f,analyze:v}}),n("eslint/lib/rules",["./load-rules-async","exports"],function(e,t){function n(e,t){i[e]=t}function r(){var t=e.getESLintRules();Object.keys(t).forEach(function(e){n(e,t[e])})}var i=Object.create(null);return t.define=n,t.load=r,t["import"]=function(e,t){Object.keys(e).forEach(function(r){var i=t+"/"+r,o=e[r];n(i,o)})},t.get=function(e){return i[e]},t.testClear=function(){i=Object.create(null)},r(),t}),n("eslint/lib/rule-context",[],function(){function e(e,n,r,i,o,a,s){Object.defineProperty(this,"env",{value:s}),Object.defineProperty(this,"id",{value:e}),Object.defineProperty(this,"options",{value:i}),Object.defineProperty(this,"settings",{value:o}),Object.defineProperty(this,"ecmaFeatures",{value:Object.create(a)}),Object.freeze(this.ecmaFeatures),t.forEach(function(e){this[e]=function(){return n[e].apply(n,arguments)}},this),this.report=function(t,i,o,a){n.report(e,r,t,i,o,a)}}var t=["getAllComments","getAncestors","getComments","getFilename","getFirstToken","getFirstTokens","getJSDocComment","getLastToken","getLastTokens","getNodeByRangeIndex","getScope","getSource","getSourceLines","getTokenAfter","getTokenBefore","getTokenByRangeStart","getTokens","getTokensAfter","getTokensBefore","getTokensBetween"];return e.prototype={constructor:e},e}),n("eslint/lib/events",["orion/EventTarget","orion/objects"],function(e,t){function n(){this._eventTarget=new e}function r(e,t){if("function"!=typeof t)throw new Error("addListener only takes instances of Function");var r,o="undefined"!=typeof this._maxListeners?this._maxListeners:i;return 0!==o&&(r=n.listenerCount(this,e)>=o)&&"undefined"!=typeof console&&console.error("Possible EventEmitter memory leak: "+r+" listeners added."),this.emit("newListener",t),this._eventTarget.addEventListener(e,t),this}var i=10;return n.prototype.constructor=n,t.mixin(n.prototype,{_maxListeners:10,addListener:r,on:r,once:function(e,t){var n=this,r=function(){try{t.apply(this,Array.prototype.slice.call(arguments))}finally{n.removeListener(e,r)}};return this.addListener(e,r),this},removeListener:function(e,t){if("function"!=typeof t)throw new Error("removeListener only takes instances of Function");return this._eventTarget.removeEventListener(e,t),this.emit("removeListener",t),this},removeAllListeners:function(e){var t=this._eventTarget._namedListeners,n=this,r=function(e){var r=t[e];r&&(r.forEach(n.emit.bind(n,"removeListener")),delete t[e])};return"undefined"==typeof e?Object.keys(t).forEach(r):r(e),this},setMaxListeners:function(e){if("number"!=typeof e)throw new Error("setMaxListeners only takes a number");this._maxListeners=e},listeners:function(e){var t=this._eventTarget._namedListeners[e];return t?t.slice():[]},emit:function(e){var t=this._eventTarget._namedListeners[e];if(!t){if("error"===e)throw new Error("Uncaught, unspecified 'error' event.");return!1}var n=Array.prototype.slice.call(arguments,1),r=this;return t.forEach(function(e){e.apply(r,n)}),!0}}),n.listenerCount=function(e,t){var n=e._eventTarget._namedListeners[t];return n?n.length:0},{EventEmitter:n}}),n("eslint/lib/token-store",[],function(){return function(e){function t(t,n){var r,o=[];for(r=Math.max(0,t);n>r&&i>r;r++)o.push(e[r]);return o}function n(e){var t=e.range[1],n=l[t];return"undefined"==typeof n&&(n=s[t]-1),isNaN(n)&&(n=i-1),n}var r,i,o,a={},s=Object.create(null),l=Object.create(null);for(r=0,i=e.length;i>r;r++)o=e[r].range,s[o[0]]=r,l[o[1]]=r;return a.getTokensBefore=function(e,n){var r=s[e.range[0]];return t(r-(n||0),r)},a.getTokenBefore=function(t,n){return e[s[t.range[0]]-(n||0)-1]},a.getTokensAfter=function(e,r){var i=n(e)+1;return t(i,i+(r||0))},a.getTokenAfter=function(t,r){return e[n(t)+(r||0)+1]},a.getTokens=function(e,r,i){return t(s[e.range[0]]-(r||0),n(e)+(i||0)+1)},a.getFirstTokens=function(e,r){var i=s[e.range[0]];return t(i,Math.min(n(e)+1,i+(r||0)))},a.getFirstToken=function(t,n){return e[s[t.range[0]]+(n||0)]},a.getLastTokens=function(e,r){var i=n(e)+1;return t(Math.max(s[e.range[0]],i-(r||0)),i)},a.getLastToken=function(t,r){return e[n(t)-(r||0)]},a.getTokensBetween=function(e,r,i){return i=i||0,t(n(e)+1-i,s[r.range[0]]+i)},a.getTokenByRangeStart=function(t){return e[s[t]]||null},a}}),n("eslint/lib/eslint",["esprima/esprima","estraverse/estraverse","escope/escope","eslint/conf/environments","./rules","./util","./rule-context","./events","./token-store","require","module"],function(e,t,n,r,i,o,a,s,l,c,u){function p(e,t){Object.keys(t).forEach(function(n){e[n]=t[n]})}function f(e){var t={};return e=e.replace(/\s*:\s*/g,":"),e=e.replace(/\s*,\s*/g,","),e.split(/\s|,+/).forEach(function(e){if(e){var n,r=e.indexOf(":");-1!==r&&(n=e.substring(r+1,e.length),e=e.substring(0,r)),t[e]="true"===n}}),t}function d(e){var t={};e=e.replace(/([a-z0-9\-\/]+):/g,'"$1":').replace(/(\]|[0-9])\s+(?=")/,"$1,");try{t=JSON.parse("{"+e+"}")}catch(n){}return t}function h(e){var t={};return e=e.replace(/\s*,\s*/g,","),e.split(/,+/).forEach(function(e){e=e.trim(),e&&(t[e]=!0)}),t}function m(e,t){var n=null;return e.variables.some(function(e){return e.name===t?(n=e,!0):!1}),n}function g(e,t,i){var o={},a={},s=r.builtin;p(o,s),Object.keys(i.env).forEach(function(e){if(i.env[e]){var t=r[e]&&r[e].globals;t&&p(o,t)}}),p(o,i.globals),p(a,i.astGlobals),Object.keys(o).forEach(function(e){var r=m(t,e);r||(r=new n.Variable(e,t),r.eslintExplicitGlobal=!1,t.variables.push(r)),r.writeable=o[e]}),Object.keys(a).forEach(function(e){var r=m(t,e);r||(r=new n.Variable(e,t),r.eslintExplicitGlobal=!0,t.variables.push(r)),r.writeable=a[e]})}function v(e,t,n){n.length?n.forEach(function(n){e.push({start:t,end:null,rule:n})}):e.push({start:t,end:null,rule:null})}function y(e,t,n){var r;if(n.length)n.forEach(function(n){for(r=e.length-1;r>=0;r--)if(!e[r].end&&e[r].rule===n){e[r].end=t;break}});else{var i;for(r=e.length-1;r>=0&&(!i||i===e[r].start);r--)e[r].end||(e[r].end=t,i=e[r].start)}}function b(e,t,n){var i={astGlobals:{},rules:{},env:{}},a={};e.comments.forEach(function(e){if("Block"===e.type){var t=e.value.trim(),r=/^(eslint-\w+|eslint|globals?)(\s|$)/.exec(t);if(r)switch(t=t.substring(r.index+r[1].length),r[1]){case"globals":case"global":o.mixin(i.astGlobals,f(t));break;case"eslint-env":o.mixin(i.env,h(t));break;case"eslint-disable":v(n,e.loc.start,Object.keys(h(t)));break;case"eslint-enable":y(n,e.loc.start,Object.keys(h(t))); +break;case"eslint":var s=d(t);Object.keys(s).forEach(function(e){var t=s[e];("number"==typeof t||Array.isArray(t)&&"number"==typeof t[0])&&(a[e]=t)})}}}),Object.keys(i.env).forEach(function(e){var t=r[e]&&r[e].rules;i.env[e]&&t&&o.mixin(i.rules,t)}),o.mixin(i.rules,a),o.mergeConfigs(t,i)}function x(e,t,n){for(var r=0,i=e.length;i>r;r++){var o=e[r];if((!o.rule||o.rule===t)&&(n.line>o.start.line||n.line===o.start.line&&n.column>=o.start.column)&&(!o.end||n.line=0?t.splice(t.indexOf(e.loc),1):(t.push(e.loc),d.emit(e.type+n,e))})}function s(e){o(e,P,"Comment")}function u(e){o(e,j,"Comment:exit")}function p(e){return"number"==typeof e?e:Array.isArray(e)?e[0]:0}function f(e){return Array.isArray(e)?e.slice(1):[]}var d=Object.create(new E),h=[],m=null,v=[],y=null,w=null,_=null,k=null,C=null,T=null,L=null,A=[],P=[],j=[],F=null;d.setMaxListeners(0),d.reset=function(){this.removeAllListeners(),h=[],F=null,y=null,m=null,v=[],w=null,_=null,k=null,C=null,L=null,A=[],P=[],j=[]},d.verify=function(e,o,c,x){var E,P;T=c,x||this.reset();var j=e&&"string"==typeof e?e:e.source;return 0===j.trim().length?(m=j,h):(o=S(o||{}),E=e&&"object"==typeof e?e:r(j.replace(/^#!([^\r\n]+)/,function(e,t){return P=t,"//"+t}),o),E&&(F=E,b(E,o,A),Object.keys(o.rules).filter(function(e){return p(o.rules[e])>0}).forEach(function(e){var t,n=i.get(e),r=p(o.rules[e]),s=f(o.rules[e]);if(!n)throw new Error("Definition for rule '"+e+"' was not found.");try{t=n(new a(e,d,r,s,o.settings,o.ecmaFeatures,o.env)),Object.keys(t).forEach(function(e){d.on(e,t[e])})}catch(l){throw l.message="Error while loading rule '"+e+"': "+l.message,l}}),y=o,m=j,L=new t.Controller,C=n.analyze(E,{ignoreEval:!0,ecmaVersion:y.ecmaFeatures.blockBindings?6:5}),_=C.scopes,k=[],_.forEach(function(e,t){var n=e.block.range[0];k[n]||(k[n]=t)}),v=m.split(/\r?\n|\u2028|\u2029/g),Object.freeze(v),w=l(E.tokens),Object.keys(w).forEach(function(e){d[e]=w[e]}),g(E,_[0],y),P&&E.comments.length&&E.comments[0].value===P&&(E.comments.splice(0,1),E.body.length&&E.body[0].leadingComments&&E.body[0].leadingComments[0].value===P&&E.body[0].leadingComments.splice(0,1)),L.traverse(E,{enter:function(e,t){var n=d.getComments(e);s(n.leading),e.parent=t,d.emit(e.type,e),s(n.trailing)},leave:function(e){var t=d.getComments(e);u(t.trailing),d.emit(e.type+":exit",e),u(t.leading)}})),h.sort(function(e,t){var n=e.line-t.line;return 0===n?e.column-t.column:n}),h)},d.report=function(e,t,n,r,i,o,a){"string"==typeof r&&(a=o,o=i,i=r,r=n.loc.start),i=i.replace(/\$\{([^\}]+)\}/g,function(e,t){return o[t]}),x(A,e,r)||h.push({ruleId:e,severity:t,node:n,message:i,args:o,line:r.line,column:r.column,nodeType:n.type,source:v[r.line-1]||"",related:"undefined"!=typeof a?a:null})},d.getSource=function(e,t,n){return e?null!==m?m.slice(Math.max(e.range[0]-(t||0),0),e.range[1]+(n||0)):null:m},d.getSourceLines=function(){return v},d.getAllComments=function(){return F.comments},d.getComments=function(e){var t=e.leadingComments||[],n=e.trailingComments||[];return"Program"===e.type&&0===e.body.length&&(t=e.comments),{leading:t,trailing:n}},d.getJSDocComment=function(e){function t(e){if(e)for(var t=e.length-1;t>=0;t--)if("Block"===e[t].type&&"*"===e[t].value.charAt(0)){if(r-e[t].loc.end.line<=1)return e[t];break}return null}var n=e.parent,r=e.loc.start.line;switch(e.type){case"FunctionDeclaration":return t(e.leadingComments);case"ArrowFunctionExpression":case"FunctionExpression":if("CallExpression"!==n.type||n.callee!==e){for(;n&&!n.leadingComments&&!/Function/.test(n.type);)n=n.parent;return n&&"FunctionDeclaration"!==n.type?t(n.leadingComments):null}default:return null}},d.getAncestors=function(){return L.parents()},d.getNodeByRangeIndex=function(e){var n=null;return t.traverse(L.root,{enter:function(t){t.range[0]<=e&&e=0;--r)if(t=C.acquire(e[r]))return t}return _[0]},d.getFilename=function(){return"string"==typeof T?T:""};var O=d.defineRule=function(e,t){i.define(e,t)};return d.defineRules=function(e){Object.getOwnPropertyNames(e).forEach(function(t){O(t,e[t])})},d.defaults=function(){return c("../conf/eslint.json")},d}(),u.exports}),n("javascript/validator",["eslint/lib/eslint","orion/objects","javascript/astManager","javascript/finder","orion/i18nUtil","i18n!javascript/nls/problems","orion/metrics"],function(e,t,n,r,i,o,a){function s(e,t){this.astManager=e,this.cuprovider=t,p.setDefaults()}function l(e){var t=2,n=p.rules[e.ruleId];if(Array.isArray(n)){var r=e.related,i=r&&r.type;t="missing-doc"===e.ruleId&&void 0!==n[1][i]?n[1][i]:n[0]}else t=n;switch(t){case 1:return"warning";case 2:return"error"}return"error"}function c(e){if(e.args){if(e.args.pid)return e.args.pid;if(e.args.nls)return e.args.nls}return e.ruleId}function u(e){var t=e.start,n=e.end;if(e.node&&(t=e.node.range[0],n=e.node.range[1],e.related&&e.related.range)){var r=e.related;t=r.range[0],n=r.range[1]}var a=e.args&&e.args.nls?e.args.nls:e.ruleId,s=e.args||Object.create(null),u=e.message;a&&o[a]&&(u=i.formatMessage.call(null,o[a],s));var p={id:c(e),description:u,severity:l(e)};return"undefined"!=typeof t?(p.start=t,p.end=n):"number"==typeof e.index?(p.start=n,p.end=e.index):"undefined"!=typeof e.lineNumber?(p.line=e.lineNumber,p.start=e.column):(p.start=0,p.end=0),e.args&&e.args.data&&(p.data=e.args.data),p}var p={defaults:{curly:0,eqeqeq:1,"missing-doc":0,"missing-nls":0,"new-parens":1,"no-caller":1,"no-cond-assign":2,"no-comma-dangle":0,"no-console":2,"no-constant-condition":2,"no-debugger":1,"no-dupe-keys":2,"no-eval":0,"no-extra-semi":1,"no-implied-eval":0,"no-iterator":2,"no-proto":2,"no-jslint":1,"no-new-array":1,"no-new-func":1,"no-new-object":1,"no-new-wrappers":1,"no-redeclare":1,"no-reserved-keys":2,"no-regex-spaces":2,"no-shadow":1,"no-shadow-global":1,"no-throw-literal":1,"no-undef":2,"no-undef-init":1,"no-unused-params":1,"no-unused-vars":1,"no-use-before-define":1,radix:1,semi:1,"use-isnan":2,"no-unreachable":2,"no-fallthrough":2,"no-empty-block":0,"valid-typeof":2,"no-sparse-arrays":1,"no-with":1},setOption:function(e,t,n){if("number"==typeof t)if(Array.isArray(this.rules[e])){var r=this.rules[e];n?(r[1]=r[1]||{},r[1][n]=t):r[0]=t}else this.rules[e]=t},setDefaults:function(){this.rules=Object.create(null);for(var e=Object.keys(this.defaults),t=0;ts;s++){var l=o[s],c=null;l.end&&l.token?c={range:[l.index,l.end],value:l.token}:e.tokens.length>0&&(c=r.findToken(l.index,e.tokens));var u=l.message;if(i[l.index]!==u){if(i[l.index]=u,l.type)switch(l.type){case n.ErrorTypes.Unexpected:c&&(l.args={0:c.value,nls:"syntaxErrorBadToken"},l.message=u=l.args.nls);break;case n.ErrorTypes.EndOfInput:l.args={nls:"syntaxErrorIncomplete"},l.message=l.args.nls}else l.token||(l.args={0:l.message,nls:"esprimaParseFailure"},l.message=l.args.nls,delete l.start,delete l.end);c&&(l.node=c,c.value&&(l.args||(l.args=Object.create(null)),l.args.data||(l.args.data=Object.create(null)),l.args.data.tokenValue=c.value)),t.push(l)}}return t},computeProblems:function(e){var t=this;return e.getFileMetadata().then(function(n){return"text/html"===n.contentType.id?e.getText().then(function(e){var i=t.cuprovider.getCompilationUnit(function(){return r.findScriptBlocks(e)},n);return t.astManager.getAST(i.getEditorContext()).then(function(e){var n=Object.create(null);return n.browser=!0,t._validateAst(e,n)})}):t.astManager.getAST(e).then(function(e){return t._validateAst(e)})})},_validateAst:function(t,n){var r=[],i=this._extractParseErrors(t),o=Date.now();try{p.env=n,r=e.verify(t,p)}catch(s){i.length<1&&r.push({start:0,args:{0:s.toString(),nls:"eslintValidationFailure"},severity:"error"})}var l=Date.now()-o;return a.logTiming("language tools","validation",l,"application/javascript"),{problems:this._filterProblems(i,r).map(u)}},_filterProblems:function(e,t){var n=e.length;if(1>n)return t;var r=[].concat(e),i=t.length;e:for(var o=0;i>o;o++){for(var a=t[o],s=0;n>s;s++){var l=e[s],c=a.node;if(c&&c.range[0]>=l.index&&c.range[0]<=l.end)continue e}r.push(a)}return r},updated:function(e){if(e)for(var t="eslint.config"===e.pid,n=Object.keys(e),r=Object.create(null),i=0;i0?r.parents[r.parents.length-1]:null;if(i&&i.type===n.Syntax.ArrayExpression){var o=i.parent?i.parent:r.parents&&r.parents.length>1?r.parents[r.parents.length-2]:null;if(o&&o.type===n.Syntax.CallExpression&&o.callee&&"define"===o.callee.name)for(var a=i.elements,s=0;ss))return t.findNode(l.params[s].range[0],e,{parents:!0});break}}return null}if(e&&r){var c=r.selection.start,u=r.selection.end,p=o(c,e);if(p){var f=t.findNode(c,e,{parents:!0});if(!s(f)&&p.range[0]>=f.range[0]&&p.range[1]<=f.range[1]){if(f.type===n.Syntax.Literal){var d=i(f);if(!d)return[];f=d,c=f.range[0],u=f.range[1]}var h={start:c,end:u,word:a(f),token:f},m=l(h);return n.traverse(e,m),m.occurrences}}}return[]}function o(e,n){if(n.tokens&&n.tokens.length>0){var r=t.findToken(e,n.tokens);if(r){if("Punctuator"===r.type){var i=r.index;if(e===r.range[0]&&null!=i&&i>0){var o=n.tokens[i-1];if(o.range[1]!==r.range[0])return null;r=o}}if("Identifier"===r.type||"String"===r.type||"Keyword"===r.type&&"this"===r.value)return r}}return null}function a(e){switch(e.type){case n.Syntax.Identifier:return e.name;case n.Syntax.ThisExpression:return"this"}}function s(e){return e?e.type===n.Syntax.ThisExpression?!1:e.type===n.Syntax.Literal?!1:e.type!==n.Syntax.Identifier:!0}function l(e){if(this.visitor||(this.visitor=new r,this.visitor.enter=this.visitor.enter.bind(this.visitor),this.visitor.leave=this.visitor.leave.bind(this.visitor)),e.token){var t=e.token.parent?e.token.parent:e.token.parents&&e.token.parents.length>0?e.token.parents[e.token.parents.length-1]:null;this.visitor.thisCheck=e.token.type===n.Syntax.ThisExpression,this.visitor.objectPropCheck=!1,t&&t.type===n.Syntax.Property?this.visitor.objectPropCheck=e.token===t.key:t&&t.type===n.Syntax.MemberExpression?t.object&&t.object.type===n.Syntax.ThisExpression?this.visitor.objectPropCheck=!0:!t.computed&&t.property&&e.start>=t.property.range[0]&&e.end<=t.property.range[1]&&(this.visitor.objectPropCheck=!0):t&&t.type===n.Syntax.FunctionExpression&&e.token.parents&&e.token.parents.length>1&&e.token.parents[e.token.parents.length-2].type===n.Syntax.Property&&t.id&&t.id.range===e.token.range&&(this.visitor.objectPropCheck=!0),this.visitor.labeledStatementCheck=t&&(t.type===n.Syntax.LabeledStatement||t.type===n.Syntax.ContinueStatement||t.type===n.Syntax.BreakStatement)}return this.visitor.context=e,this.visitor}function c(e,t){this.astManager=e,this.cuprovider=t}return n.VisitorKeys.RecoveredNode=[],e.mixin(r.prototype,{occurrences:[],scopes:[],context:null,thisCheck:!1,objectPropCheck:!1,enter:function(e){var t,r;switch(e.type){case n.Syntax.Program:this.occurrences=[],this.scopes=[{range:e.range,occurrences:[],kind:"p"}],this.defscope=null,this.skipScope=null;break;case n.Syntax.FunctionDeclaration:if(this.checkId(e.id,!0),this._enterScope(e),this.skipScope)return n.VisitorOption.Skip;if(e.params)for(t=e.params.length,r=0;t>r;r++)if(this.checkId(e.params[r],!0))return n.VisitorOption.Skip;break;case n.Syntax.FunctionExpression:case n.Syntax.ArrowFunctionExpression:if(this._enterScope(e))return n.VisitorOption.Skip;if(this.checkId(e.id,!0),e.params)for(t=e.params.length,r=0;t>r;r++)if(this.checkId(e.params[r],!0))return n.VisitorOption.Skip;break;case n.Syntax.AssignmentExpression:this.checkId(e.left),this.checkId(e.right);break;case n.Syntax.ExpressionStatement:this.checkId(e.expression);break;case n.Syntax.ArrayExpression:if(e.elements)for(t=e.elements.length,r=0;t>r;r++)this.checkId(e.elements[r]);break;case n.Syntax.MemberExpression:this.checkId(e.object),e.computed?this.checkId(e.property):this.checkId(e.property,!1,!0);break;case n.Syntax.BinaryExpression:this.checkId(e.left),this.checkId(e.right);break;case n.Syntax.UnaryExpression:this.checkId(e.argument);break;case n.Syntax.SwitchStatement:this.checkId(e.discriminant);break;case n.Syntax.UpdateExpression:this.checkId(e.argument);break;case n.Syntax.ConditionalExpression:this.checkId(e.test),this.checkId(e.consequent),this.checkId(e.alternate);break;case n.Syntax.CallExpression:if(this.checkId(e.callee,!1),e.arguments)for(t=e.arguments.length,r=0;t>r;r++)this.checkId(e.arguments[r]);break;case n.Syntax.ReturnStatement:this.checkId(e.argument);break;case n.Syntax.ObjectExpression:if(this._enterScope(e))return n.VisitorOption.Skip;if(e.properties)for(t=e.properties.length,r=0;t>r;r++){var i=e.properties[r];i.value&&i.value.type===n.Syntax.FunctionExpression&&(this.thisCheck?i.value.isprop=!0:this.checkId(i.value.id,!1,!0)),this.checkId(i.key,!0,!0),this.checkId(i.value)}break;case n.Syntax.VariableDeclarator:this.checkId(e.id,!0),this.checkId(e.init);break;case n.Syntax.NewExpression:if(this.checkId(e.callee,!1),e.arguments)for(t=e.arguments.length,r=0;t>r;r++)this.checkId(e.arguments[r]);break;case n.Syntax.LogicalExpression:this.checkId(e.left),this.checkId(e.right);break;case n.Syntax.ThisExpression:if(this.thisCheck){var o=this.scopes[this.scopes.length-1];o.occurrences.push({start:e.range[0],end:e.range[1]}),e.range[0]===this.context.token.range[0]&&(this.defscope=o)}break;case n.Syntax.IfStatement:case n.Syntax.DoWhileStatement:case n.Syntax.WhileStatement:this.checkId(e.test);break;case n.Syntax.ForStatement:this.checkId(e.init);break;case n.Syntax.ForInStatement:this.checkId(e.left),this.checkId(e.right);break;case n.Syntax.WithStatement:this.checkId(e.object);break;case n.Syntax.ThrowStatement:this.checkId(e.argument);break;case n.Syntax.LabeledStatement:this._enterScope(e),this.checkId(e.label,!0,!1,!0);break;case n.Syntax.ContinueStatement:this.checkId(e.label,!1,!1,!0);break;case n.Syntax.BreakStatement:this.checkId(e.label,!1,!1,!0)}},_enterScope:function(e){if(this.thisCheck)switch(e.type){case n.Syntax.ObjectExpression:if(this.scopes.push({range:e.range,occurrences:[],kind:"o"}),this.defscope)return!0;break;case n.Syntax.FunctionExpression:if(!e.isprop&&(this.scopes.push({range:e.body.range,occurrences:[],kind:"fe"}),this.defscope))return!0}else if(this.objectPropCheck)switch(e.type){case n.Syntax.ObjectExpression:this.scopes.push({range:e.range,occurrences:[],kind:"o"})}else if(this.labeledStatementCheck)switch(e.type){case n.Syntax.LabeledStatement:if(this.scopes.push({range:e.range,occurrences:[],kind:"ls"}),e.range[0]>this.context.start||e.range[1]0&&(r=e.params[0].range[0]);break;case n.Syntax.FunctionExpression:case n.Syntax.ArrowFunctionExpression:t="fe",e.id?r=e.id.range[0]:e.params&&e.params.length>0&&(r=e.params[0].range[0])}t&&this.scopes.push({range:[r,e.range[1]],occurrences:[],kind:t})}return!1},leave:function(e){if(this.thisCheck)switch(e.type){case n.Syntax.FunctionExpression:if(e.isprop){delete e.isprop;break}case n.Syntax.ObjectExpression:case n.Syntax.Program:if(this._popScope())return n.VisitorOption.Break}else if(this.objectPropCheck)switch(e.type){case n.Syntax.ObjectExpression:case n.Syntax.Program:if(this._popScope())return n.VisitorOption.Break}else if(this.labeledStatementCheck)switch(e.type){case n.Syntax.LabeledStatement:if(this._popScope())return n.VisitorOption.Break}else switch(e.type){case n.Syntax.FunctionExpression:case n.Syntax.FunctionDeclaration:case n.Syntax.ArrowFunctionExpression:if(this._popScope())return n.VisitorOption.Break;break;case n.Syntax.Program:this._popScope()}},_popScope:function(){var e=this.scopes.pop();if(this.skipScope)return this.skipScope===e&&(this.skipScope=null),!1;var t,n,r=e.occurrences.length;if(this.defscope&&this.defscope===e){for(t=0;r>t;t++)this.occurrences.push(e.occurrences[t]);if(this.defscope.range[0]===e.range[0]&&this.defscope.range[1]===e.range[1]&&this.defscope.kind===e.kind)return!0}else if(this.scopes.length>0)for(n=0;r>n;n++)this.scopes[this.scopes.length-1].occurrences.push(e.occurrences[n]);else for(this.occurrences=[],n=0;r>n;n++)this.occurrences.push(e.occurrences[n]);return!1},_markDefineStatementOccurrences:function(e,t){var r=e.parent?e.parent:e.parents&&e.parents.length>0?e.parents[e.parents.length-1]:null;if(r&&r.type===n.Syntax.FunctionExpression){var i=r.parent?r.parent:e.parents&&e.parents.length>1?e.parents[e.parents.length-2]:null;if(i&&i.type===n.Syntax.CallExpression&&i.callee&&"define"===i.callee.name)for(var o=r,a=0;aa&&t.push({start:s.elements[a].range[0],end:s.elements[a].range[1]})}break}}},checkId:function(e,t,r,i){if(this.skipScope)return!0;if(this.thisCheck)return!1;if(r&&!this.objectPropCheck||!r&&this.objectPropCheck)return!1;if(i&&!this.labeledStatementCheck||!i&&this.labeledStatementCheck)return!1;if(e&&e.type===n.Syntax.Identifier&&e.name===this.context.word){var o=this.scopes[this.scopes.length-1];if(t){if(this.defscope)return o.range[0]<=this.context.start&&o.range[1]>=this.context.end?(this.occurrences=[],this.defscope=o,o.occurrences.push({start:e.range[0],end:e.range[1]}),!1):(o.occurrences=[],this.skipScope=o,!0);if(!(o.range[0]<=this.context.start&&o.range[1]>=this.context.end))return o.occurrences=[],this.skipScope=o,!0;this.defscope=o,this._markDefineStatementOccurrences(e,o.occurrences)}o.occurrences.push({start:e.range[0],end:e.range[1]})}return!1}}),r.prototype.constructor=r,e.mixin(c.prototype,{computeOccurrences:function(e,n){var r=this;return e.getFileMetadata().then(function(o){return"application/javascript"===o.contentType.id?r.astManager.getAST(e).then(function(e){return i(e,n)}):e.getText().then(function(e){var a=r.cuprovider.getCompilationUnit(function(){return t.findScriptBlocks(e)},o);return a.validOffset(n.selection.start)?r.astManager.getAST(a.getEditorContext()).then(function(e){return i(e,n)}):[]})})}}),c.prototype.contructor=c,{JavaScriptOccurrences:c}}),n("javascript/outliner",["orion/objects","javascript/signatures","estraverse/estraverse"],function(e,t,n){function r(){}function i(e){this.astManager=e}return e.mixin(r.prototype,{outline:[],scope:[],enter:function(e){var r,i=this;e.type===n.Syntax.FunctionDeclaration?(r=this.addElement(t.computeSignature(e)),r&&this.scope.push(r)):e.type===n.Syntax.FunctionExpression?(r=this.addElement(t.computeSignature(e)),r&&this.scope.push(r),delete e.sig):e.type===n.Syntax.ObjectExpression?(r=this.addElement(t.computeSignature(e)),r&&this.scope.push(r),delete e.sig,e.properties&&e.properties.forEach(function(e){e.value&&(e.value.type===n.Syntax.FunctionExpression||e.value.type===n.Syntax.ObjectExpression?e.value.sig=t.computeSignature(e):i.addElement(t.computeSignature(e)))})):e.type===n.Syntax.VariableDeclaration?e.declarations&&e.declarations.forEach(function(e){e.init&&e.init.type===n.Syntax.ObjectExpression&&(e.init.sig=t.computeSignature(e))}):e.type===n.Syntax.AssignmentExpression?e.left&&e.right&&(e.right.type===n.Syntax.ObjectExpression||e.right.type===n.Syntax.FunctionExpression)&&(e.right.sig=t.computeSignature(e)):e.type===n.Syntax.ReturnStatement&&e.argument&&(e.argument.type===n.Syntax.ObjectExpression||e.argument.type===n.Syntax.FunctionExpression)&&(e.argument.sig=t.computeSignature(e))},leave:function(e){(e.type===n.Syntax.ObjectExpression||e.type===n.Syntax.FunctionDeclaration||e.type===n.Syntax.FunctionExpression)&&this.scope.pop()},addElement:function(e){if(e){var t={label:e.sig,labelPost:e.details,start:e.range[0],end:e.range[1]};if(this.scope.length<1)this.outline.push(t);else{var n=this.scope[this.scope.length-1];n.children||(n.children=[]),n.children.push(t)}return t}}}),r.prototype.constructor=r,e.mixin(i.prototype,{visitor:null,getVisitor:function(){return this.visitor||(this.visitor=new r,this.visitor.enter=this.visitor.enter.bind(this.visitor),this.visitor.leave=this.visitor.leave.bind(this.visitor)),this.visitor.outline=[],this.visitor},computeOutline:function(e){var t=this;return this.astManager.getAST(e).then(function(e){if(e){var r=t.getVisitor();return n.traverse(e,r),r.outline}return[]})}}),i.prototype.contructor=i,{JSOutliner:i}}),n("javascript/cuProvider",["javascript/lru","javascript/compilationUnit"],function(e,t){function n(e,n,r){if(l){var i=s.get(n.location);if(i)return i}var o=e();return o||(o=[]),i=new t(o,n,r),l&&s.put(n.location,i),i}function r(e){c?c=null:s.remove(o(e.file))}function i(e){l=e}function o(e){return e&&e.location?e.location:"unknown"}function a(e){c=e}var s=new e(10),l=!0,c=null;return{getCompilationUnit:n,onModelChanging:r,onInputChanged:a,setUseCache:i}}),n("javascript/ternProjectManager",["orion/objects","orion/Deferred","i18n!javascript/nls/messages"],function(e){function t(e,t,n){this.ternworker=e,this.scriptResolver=t,this.fileClient=n,this.currentProjectLocation=null,this.timeout=null}return e.mixin(t.prototype,{_getProjectTernConfiguration:function(e,t){for(var n=0;n0?(t.length>1&&console.log("Found multiple potential files for: "+i),e.postMessage({request:"addFile",args:{file:t[0].location}})):console.log("Could not find any matching files for: "+i)})}},onInputChanged:function(e){var t=this,n=e.file;if(n&&n.parents&&n.parents.length>0){var r=n.parents[n.parents.length-1];!r||t.currentProjectLocation&&r.Location===t.currentProjectLocation||(t.currentProjectLocation=r.Location,t.scriptResolver.setSearchLocation(r.Location),r.Children?t._getProjectTernConfiguration(t.fileClient,r.Children).then(function(e){e&&t._loadTernConfig(t.ternworker,t.scriptResolver,e)}):r.ChildrenLocation&&t.fileClient.fetchChildren(r.ChildrenLocation).then(function(e){t._getProjectTernConfiguration(t.fileClient,e).then(function(e){e&&t._loadTernConfig(t.ternworker,t.scriptResolver,e)})}))}".tern-project"===n.name&&(t.currentProjectLocation=null)}}),{TernProjectManager:t}}),n("javascript/commands/generateDocCommand",["orion/objects","javascript/finder","javascript/signatures","orion/Deferred"],function(e,t,n,r){function i(e,t){this.astManager=e,this.cuprovider=t}return e.mixin(i.prototype,{execute:function(e){var n=this;return e.getFileMetadata().then(function(i){return"application/javascript"===i.contentType.id?r.all([n.astManager.getAST(e),e.getCaretOffset()]).then(function(t){n._doCommand(e,t[0],t[1])}):r.all([e.getText(),e.getCaretOffset()]).then(function(r){var o=r[1],a=n.cuprovider.getCompilationUnit(function(){return t.findScriptBlocks(r[0])},i);return a.validOffset(o)?n.astManager.getAST(a.getEditorContext()).then(function(t){n._doCommand(e,t,o)}):void 0})})},_doCommand:function(e,i,o){var a=t.findNode(o,i,{parents:!0});if(a){var s=i.source,l=this._resolveParent(a);if(l){var c,u=l.range[0];if("FunctionDeclaration"===l.type)c=this._genTemplate(l.id.name,l.params,!1,l.range[0],s);else if("Property"===l.type)c=this._genTemplate(l.key.name?l.key.name:l.key.value,l.value.params,!0,l.range[0],s);else if("VariableDeclarator"===l.type){if(u=l.range[0],l.decl){if(l.decl.leadingComments)return;l.decl.declarations&&1===l.decl.declarations.length&&(u=l.decl.range[0])}c=this._genTemplate(l.id.name,l.init.params,!0,u,s)}else"AssignmentExpression"===l.type&&(c=this._genTemplate(n.expandMemberExpression(l.left,""),l.right.params,!0,l.range[0],s))}if(c)return r.all([e.setText(c,u,u),e.setCaretOffset(o+c.length)])}},_genTemplate:function(e,t,n,r,i){for(var o=i[--r],a="";" "===o||" "===o;)a+=o,o=i[--r];var s=[];if(s.push("/**\n"+a+" * @name "+e+"\n"),s.push(a+" * @description description\n"),n&&s.push(a+" * @function\n"),"_"===e.charAt(0)&&s.push(a+" * @private\n"),t)for(var l=t.length,c=0;l>c;c++)s.push(a+" * @param "+t[c].name+"\n");return s.push(a+" * @returns returns\n"+a+" */\n"+a),s.join("")},_resolveParent:function(e){if(!e.parents||e.parents.length<1)return null;switch(e.type){case"FunctionDeclaration":return e;case"Property":return e.value&&"FunctionExpression"===e.value.type?e:null;case"VariableDeclarator":return e.init&&"FunctionExpression"===e.init.type?(e.decl=e.parents[e.parents.length-1],e):null;case"VariableDeclaration":if(e.declarations&&1===e.declarations.length){var t=e.declarations[0];if(t.init&&"FunctionExpression"===t.init.type)return e.parents.push(e),t.parents=e.parents,this._resolveParent(t)}case"AssignmentExpression":if(e.left&&"MemberExpression"===e.left.type&&e.right&&"FunctionExpression"===e.right.type)return e}var n=e.parents.length-1,r=e.parents[n];return r.parents=e.parents.slice(0,n),this._resolveParent(r)}}),{GenerateDocCommand:i}}),n("javascript/commands/openDeclaration",["orion/objects","javascript/finder","orion/Deferred","i18n!javascript/nls/messages"],function(e,t,n,r){function i(e,t,n,r){this.astManager=e,this.ternworker=t,this.cuprovider=n,this.openMode=r,this.timeout=null}var o,a;return e.mixin(i.prototype,{execute:function(e,t){var n=this;return e.getText().then(function(r){return n._findDecl(e,t,r)})},_findDecl:function(e,t,i){o=e,a=new n,this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(function(){o.setStatus({Severity:"Error",Message:r.noDeclTimedOut}),a&&a.resolve(r.noDeclFound),this.timeout=null},5e3);var s=[{type:"full",name:t.input,text:i}];return this.ternworker.postMessage({request:"definition",args:{params:{offset:t.offset},files:s,meta:{location:t.input}}},function(e){if("definition"===e.request)if(e.declaration&&"number"==typeof e.declaration.start&&"number"==typeof e.declaration.end){var t=Object.create(null);t.start=e.declaration.start,t.end=e.declaration.end,null!=this.openMode&&"undefined"!=typeof this.openMode&&(t.mode=this.openMode),a.resolve(o.openEditor(e.declaration.file,t))}else a.resolve(o.setStatus(r.noDeclFound))}.bind(this)),a}}),{OpenDeclarationCommand:i}}),n("javascript/commands/openImplementation",["orion/objects","orion/Deferred","i18n!javascript/nls/messages"],function(e,t){function n(e,t,n){this.astManager=e,this.ternworker=t,this.cuprovider=n,this.timeout=null}var r,i;return e.mixin(n.prototype,{execute:function(e,t){var n=this;return e.getText().then(function(r){return n._findImpl(e,t,r)})},_findImpl:function(e,n,o){r=e,i=new t,this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(function(){r.setStatus({Severity:"Error",Message:"Could not compute implementation, the operation timed out"}),i&&i.resolve("No implementation was found"),this.timeout=null},5e3);var a=[{type:"full",name:n.input,text:o}];return this.ternworker.postMessage({request:"implementation",args:{params:{offset:n.offset},files:a,meta:{location:n.input}}},function(e){if(e.implementation&&"number"==typeof e.implementation.start&&"number"==typeof e.implementation.end){var t=Object.create(null);t.start=e.implementation.start,t.end=e.implementation.end,i.resolve(r.openEditor(e.implementation.file,t))}else i.resolve(r.setStatus("No implementation was found"))}),i}}),{OpenImplementationCommand:n}}),n("javascript/commands/renameCommand",["orion/objects","javascript/finder","orion/Deferred","i18n!javascript/nls/messages"],function(e,t,n,r){function i(e,t,n,r){this.astManager=e,this.ternworker=t,this.scriptResolver=n,this.cuprovider=r,this.timeout=null}var o,a;return e.mixin(i.prototype,{execute:function(e,n){var r=this;return e.getFileMetadata().then(function(i){return r.scriptResolver.setSearchLocation(Array.isArray(i.parents)&&i.parents.length>1?i.parents[i.parents.length-1].Location:null),"application/javascript"===n.contentType.id?r._doRename(e,n):e.getText().then(function(i){var o=n.offset,a=r.cuprovider.getCompilationUnit(function(){return t.findScriptBlocks(i)},{location:n.input,contentType:n.contentType});return a.validOffset(o)?r._doRename(e,n):[]})})},_doRename:function(e,t){var i=this;return e.getText().then(function(s){a=e,o=new n,i.timeout&&clearTimeout(i.timeout),i.timeout=setTimeout(function(){a.setStatus({Severity:"Error",Message:r.renameFailedTimedOut}),o&&o.resolve(),i.timeout=null},5e3);var l=[{type:"full",name:t.input,text:s}];return i.ternworker.postMessage({request:"rename",args:{params:{offset:t.offset},files:l,meta:{location:t.input},newname:""}},function(e){var t=e.changes;if(t&&t.changes&&t.changes.length>0){for(var n=t.changes,r=[n.length],i=0;i0?(s=n.parents[n.parents.length-1].Location,a.progress({message:"Finding all project references.."})):a.progress({message:"Finding all workspace references.."}),o.scriptresolver.setSearchLocation(s),"application/javascript"!==i.contentType.id?e.getText().then(function(r){var s=i.offset,l=o.cuprovider.getCompilationUnit(function(){return t.findScriptBlocks(r)},{location:i.input,contentType:i.contentType});l.validOffset(s)?o._findRefs(e,i,n,a):a.resolve("Not a valid offset in HTML")},function(){a.resolve(r.noFileContents)}):void o._findRefs(e,i,n,a)},function(){a.resolve(r.noFileMeta)}),a},_findRefs:function(e,n,o,s){var l=this;return l.astmanager.getAST(e).then(function(c){var u=t.findNode(n.offset,c);u&&"Identifier"===u.type?l.ternworker.postMessage({request:"type",args:{meta:o,params:n}},function(n,o){if(o)e.setStatus({Severity:"Error",Message:o}),s.resolve([]);else{var c=Object.create(null);c.total=0,c.done=0,c.result=[];var p={keyword:u.name,resource:l.scriptresolver.getSearchLocation(),fileNamePatterns:["*.js","*.html","*.htm"],caseSensitive:!0,incremental:!1,shape:"group"};c.params=p,c.deferred=s,l.searchclient.search(p,!0,!0).then(function(e){c.result=e;for(var r=0,i=e.length;i>r;r++)for(var o=e[r],s=0,p=o.children.length;p>s;s++){var f=o.children[s];c.total+=f.matches.length;for(var d=0,h=f.matches.length;h>d;d++){var m=f.matches[d],g=t.findWord(f.name,m.startIndex);g===u.name?l._checkType(n,o.metadata,m,c):(m.category=a.partial.category,m.confidence=0,c.done++)}}l._checkDone(c)},function(t){e.setStatus({Severity:"Error",Message:i.formatMessage(r.cannotComputeRefs,t.message)}),s.resolve([])},function(){})}}):(e.setStatus({Severity:"Error",Message:r.notAnIdentifier}),s.resolve([]))})},_checkType:function(e,t,n,r){var i=this;i.ternworker.postMessage({request:"checkRef",args:{meta:{location:t.Location},params:{offset:n.end},origin:e}},function(o,s){if(o&&o.type){var l=o.type,c=e.type;n.confidence=l.name===c.name&&l.type===c.type&&i._sameOrigin(l.origin,c.origin)?100:l.staticCheck?l.staticCheck.confidence:"blockcomments"===l.category?5:0,n.category=l.category}else s&&(n.category=a.uncategorized.category,n.confidence=0);r.done++,r.deferred.progress({message:"References found in file: '"+t.Name+"' ("+r.done+"/"+r.total+")"}),i._checkDone(r)})},_sameOrigin:function(e,t){if(e===t)return!0;var n=decodeURIComponent(e),r=decodeURIComponent(t);return n===r?!0:decodeURIComponent(n)===decodeURIComponent(r)},_checkDone:function(e){e.done>=e.total&&e.deferred.resolve({searchParams:e.params,refResult:e.result,categories:a})}}),o}),n("orion/crawler/nls/messages",{root:!0}),n("orion/crawler/nls/root/messages",{filesFound:"${0} files found out of ${1}",searchCancelled:"Search cancelled by user",Cancel:"Cancel"}),n("orion/nls/messages",{root:!0}),n("orion/nls/root/messages",{Navigator:"Navigator",Sites:"Sites",Shell:"Shell",ShellLinkWorkspace:"Shell","Get Plugins":"Get Plug-ins",Global:"Global",Editor:"Editor",EditorRelatedLink:"Show Current Folder",EditorRelatedLinkParent:"Show Enclosing Folder",EditorLinkWorkspace:"Edit",EditorRelatedLinkProj:"Show Project",navigationBar:"Navigation Bar","Filter bindings":"Filter bindings",BindingPrompt:"Enter the new binding",NoBinding:"---",orionClientLabel:"Orion client repository","Orion Editor":"Orion Editor","Orion Image Viewer":"Orion Image Viewer","Orion Markdown Editor":"Orion Markdown Editor","Orion Markdown Viewer":"Orion Markdown Viewer","Orion JSON Editor":"Orion JSON Editor","View on Site":"View on Site","View this file or folder on a web site hosted by Orion":"View this file or folder on a web site hosted by Orion.",ShowAllKeyBindings:"Show a list of all the keybindings on this page","Show Keys":"Show Keys",HideShowBannerFooter:"Hide or show the page banner","Toggle banner and footer":"Toggle banner",ChooseFileOpenEditor:"Choose a file by name and open an editor on it",FindFile:"Open File...","System Configuration Details":"System Configuration Details","System Config Tooltip":"Go to the System Configuration Details page","Background Operations":"Background Operations","Background Operations Tooltip":"Go to the Background Operations page","Operation status is unknown":"Operation status is unknown","Unknown item":"Unknown item",NoSearchAvailableErr:"Can't search: no search service is available",Related:"Related",Options:"Options","LOG: ":"LOG: ",View:"View",SplashTitle:"Setting up Workspace",SplashTitleSettings:"Loading Settings",SplashTitleGit:"Loading Git Repositories",LoadingPage:"Loading Page",LoadingPlugins:"Loading Plugins",LoadingResources:"Loading Resources",plugin_started:'"${0}" started',"plugin_lazy activation":'"${0}" lazily activated',plugin_starting:'"${0}" starting',"no parent":"no parent","no tree model":"no tree model","no renderer":"no renderer","could not find table row ":"could not find table row ",Operations:"Operations","Operations running":"Operations running",SomeOpWarning:"Some operations finished with warning",SomeOpErr:"Some operations finished with error","no service registry":"no service registry",Tasks:"Tasks",Close:"Close","Expand all":"Expand all","Collapse all":"Collapse all",Search:"Search","Advanced search":"Advanced search",Submit:"Submit",More:"More","Recent searches":"Recent searches","Regular expression":"Regular expression","Search options":"Search options","Global search":"Global search","Orion Home":"Orion Home","Close notification":"Close notification",OpPressSpaceMsg:"Operations - Press spacebar to show current operations","Toggle side panel":"Toggle side panel","Open or close the side panel":"Open or close the side panel",Projects:"Projects","Toggle Sidebar":"Toggle Sidebar","Sample HTML5 Site":"Sample HTML5 Site","Generate an HTML5 'Hello World' website, including JavaScript, HTML, and CSS files.":"Generate an HTML5 'Hello World' website, including JavaScript, HTML, and CSS files.","Sample Orion Plugin":"Sample Orion Plug-in","Generate a sample plugin for integrating with Orion.":"Generate a sample plug-in for integrating with Orion.",Browser:"Web Browser",OutlineProgress:"Getting outline for ${0} from ${1}",outlineTimeout:"Outline service timed out. Try reloading the page and opening the outline again.",UnknownError:"An unknown error occurred.",Filter:"Filter (* = any string, ? = any character)",TemplateExplorerLabel:"Templates",OpenTemplateExplorer:"Open Template Explorer",Edit:"Edit",CentralNavTooltip:"Toggle Navigation Menu","Wrote: ${0}":"Wrote: ${0}",GenerateHTML:"Generate HTML file",GenerateHTMLTooltip:"Write an HTML file generated from the current Markdown editor content","alt text":"alt text",blockquote:"blockquote",code:"code","code (block)":"code (block)","code (span)":"code (span)",emphasis:"emphasis","fenced code (${0})":"fenced code (${0})","header (${0})":"header (${0})","horizontal rule":"horizontal rule",label:"label","link (auto)":"link (auto)","link (image)":"link (image)","link (inline)":"link (inline)","link label":"link label","link label (optional)":"link label (optional)","link (ref)":"link (ref)","list item (bullet)":"list item (bullet)","list item (numbered)":"list item (numbered)","strikethrough (${0})":"strikethrough (${0})",strong:"strong","table (${0})":"table (${0})",text:"text","title (optional)":"title (optional)",url:"url",TogglePaneOrientationTooltip:"Toggle split pane orientation",WarningDuplicateLinkId:"Duplicate link ID: ${0} (link IDs are not case-sensitive)",WarningHeaderTooDeep:"Header level cannot exceed 6",WarningLinkHasNoText:"Link has no text",WarningLinkHasNoURL:"Link has no URL",WarningOrderedListItem:"Ordered list item within unordered list",WarningOrderedListShouldStartAt1:"The first item in an ordered list should have index 1",WarningUndefinedLinkId:"Undefined link ID: ${0}",WarningUnorderedListItem:"Unordered list item within ordered list",PageTitleFormat:"${0} - ${1}",KeyCTRL:"Ctrl",KeySHIFT:"Shift",KeyALT:"Alt",KeyBKSPC:"Backspace",KeyDEL:"Del",KeyEND:"End",KeyENTER:"Enter",KeyESCAPE:"Esc",KeyHOME:"Home",KeyINSERT:"Ins",KeyPAGEDOWN:"Page Down",KeyPAGEUP:"Page Up",KeySPACE:"Space",KeyTAB:"Tab","a year":"a year",years:"${0} years","a month":"a month",months:"${0} months","a day":"a day",days:"${0} days","an hour":"an hour",hours:"${0} hours","a minute":"a minute",minutes:"${0} minutes",timeAgo:"${0} ago",justNow:"just now"}),n("orion/searchUtils",["i18n!orion/nls/messages","orion/regex","orion/editor/textModel","orion/URITemplate"],function(e,t,n,r){function i(e,n,r){var i="";r&&(i="^");var o=t.parse("/"+i+e.searchStr+"/");if(o){var a=o.pattern,s=o.flags;-1!==s.indexOf("i")||n.caseSensitive||(s+="i"),e.regExp={pattern:a,flags:s},e.wildCard=!0}}var o={};return o.ALL_FILE_TYPE="*.*",o.getSearchParams=function(t,n,r){if(t){var i=n,a=!0;if("*"===i&&(i=""),""===i&&(a=r&&r.type!==o.ALL_FILE_TYPE),a){var s=t.createSearchParams(i,!1,!1,r);return s}}else window.alert(e.NoSearchAvailableErr);return null},o.generateSearchHelper=function(e,t){var n=e.keyword,r=n,a={};if(e.fileType&&e.fileType!==o.ALL_FILE_TYPE&&""===n&&(r="*."+e.fileType),e.regEx)a.searchStr=n,i(a,e,t);else{var s=n.indexOf("*")>-1,l=n.indexOf("?")>-1;s&&(n=n.split("*").join(".*")),l&&(n=n.split("?").join(".")),s||l||e.nameSearch?(a.searchStr=e.caseSensitive?n:n.toLowerCase(),i(a,e,t),a.wildCard=!0):(a.searchStr=e.caseSensitive?n.split("\\").join(""):n.split("\\").join("").toLowerCase(),a.wildCard=!1)}return a.searchStrLength=a.searchStr.length,{params:e,inFileQuery:a,displayedSearchTerm:r}},o.convertSearchParams=function(e){void 0!==e.rows&&(e.rows=parseInt(e.rows,10)),void 0!==e.start&&(e.start=parseInt(e.start,10)),"string"==typeof e.regEx&&(e.regEx="true"===e.regEx.toLowerCase()),"string"==typeof e.caseSensitive&&(e.caseSensitive="true"===e.caseSensitive.toLowerCase()),"string"==typeof e.nameSearch&&(e.nameSearch="true"===e.nameSearch.toLowerCase()),void 0!==e.fileNamePatterns&&(e.fileNamePatterns=o.getFileNamePatternsArray(e.fileNamePatterns))},o.getFileNamePatternsArray=function(e){var t=void 0;if(e){var n=e.trim();n=n.replace(/^(\s*,\s*)+/g,""),n=n.replace(/([^\\]),(\s*,\s*)*/g,"$1/"),n=n.replace(/(\s*\/\s*)/g,"/"),n=n.replace(/\/\/+/g,"/"),n=n.replace(/\/+$/g,""),t=n.split("/")}return t},o.copySearchParams=function(e,t){var n={};for(var r in e)if(void 0!==e[r]&&null!==e[r]){if(!t&&"replace"===r)continue;n[r]=e[r]}return n},o.generateFindURLBinding=function(e,t,n,i,o){var a={find:t.searchStr,regEx:t.wildCard?!0:void 0,caseSensitive:e.caseSensitive?!0:void 0,replaceWith:"string"==typeof i?i:void 0,atLine:"number"==typeof n?n:void 0};if(o)return a;var s=new r("{,params*}").expand({params:a});return","+s},o.convertFindURLBinding=function(e){"string"==typeof e.regEx&&(e.regEx="true"===e.regEx.toLowerCase()),"string"==typeof e.caseSensitive&&(e.caseSensitive="true"===e.caseSensitive.toLowerCase()),"string"==typeof e.atLine&&(e.atLine=parseInt(e.atLine,10))},o.replaceRegEx=function(e,t,n){var r=new RegExp(t.pattern,t.flags);return e.replace(r,n)},o.replaceStringLiteral=function(e,n,r){var i=t.parse("/"+n+"/gim");return o.replaceRegEx(e,i,r)},o.searchOnelineLiteral=function(e,t,n,r,i){for(var o,a=0,s=!1,l=[];;){if(o=t.indexOf(e.searchStr,a),0>o)break;if(r){var c=r.getLineStart(i)+o;l.push({startIndex:o,length:e.searchStrLength,start:c,end:c+e.searchStrLength})}else l.push({startIndex:o,length:e.searchStrLength});if(s=!0,n)break;a=o+e.searchStrLength}return s?l:null},o.findRegExp=function(e,t,n,r){if(!t)return null;n=n||"",n+=(-1===n.indexOf("g")?"g":"")+(-1===n.indexOf("m")?"m":"");var i=new RegExp(t,n),o=null;return o=i.exec(e.substring(r)),o&&{startIndex:o.index+r,length:o[0].length}},o.searchOnelineRegEx=function(e,t,n,r,i){for(var a=0,s=!1,l=[];;){var c=o.findRegExp(t,e.regExp.pattern,e.regExp.flags,a);if(!c)break;if(r){var u=r.getLineStart(i)+c.startIndex;c.start=u,c.end=u+c.length}if(l.push(c),s=!0,n)break;a=c.startIndex+c.length}return s?l:null},o.generateNewContents=function(e,t,n,r,i,a){if(r&&t){e||(n.contents=[]);for(var s=0;s0,l=r.children[m].matches,p=!0;break}}if(p){var v;if(f){var y=o.replaceCheckedMatches(u,i,l,d,a);for(v=y.replacedStr,c=0;cr?(r=0,i=r+a-1):(i=n+e,i>t.length-1&&(i=t.length-1,r=i-a+1)));for(var s=r;i>=s;s++)o.push({context:t[s],current:s===n});return o},o.splitFile=function(e){for(var t=0,n=0,r=0,i=0,o=[];;){if(-1!==t&&r>=t&&(t=e.indexOf("\r",r)),-1!==n&&r>=n&&(n=e.indexOf("\n",r)),-1===n&&-1===t){o.push(e.substring(i));break}var a=1;-1!==t&&-1!==n?t+1===n?(a=2,r=n+1):r=(n>t?t:n)+1:r=-1!==t?t+1:n+1,o.push(e.substring(i,r-a)),i=r}return o},o.searchWithinFile=function(e,t,r,i,a,s){var l;s&&(l=new n.TextModel(r));var c=o.splitFile(r);if((i||s)&&(t.contents=c),t){t.children=[];for(var u=0,p=0;p0){var d,h=a?f:f.toLowerCase();if(d=e.wildCard?o.searchOnelineRegEx(e,h,!1,l,p):o.searchOnelineLiteral(e,h,!1,l,p)){var m,g=p+1;if(i)for(var v=0;v0)for(var r=t-1;r>-1;r--){var i=""===n?"":"/";n=n+i+e[r].Name}return n},o}),n("orion/serviceTracker",[],function(){function e(e,r){function i(e){var t=e.getProperty("service.id"),n=this.addingService(e);n&&(c[t]=e,u[t]=n)}function o(e){var t=e.getProperty("service.id"),n=u[t];delete c[t],delete u[t],this.removedService(e,n)}function a(e){return-1!==e.getProperty("objectClass").indexOf(r)}this.serviceRegistry=e;var s,l,c={},u={},p=t;this.close=function(){if(p!==n)throw new Error("Already closed");p=t,e.removeEventListener("registered",s),e.removeEventListener("unregistering",l),s=null,l=null;var r=this;this.getServiceReferences().forEach(function(e){o.call(r,e)}),"function"==typeof this.onClose&&this.onClose()},this.getServiceReferences=function(){var e=Object.keys(c);return e.length?e.map(function(e){return c[e]}):null},this.open=function(c){if("undefined"==typeof c&&(c=!0),p!==t)throw new Error("Already open");p=n;var u=this;s=function(e){return a(e.serviceReference)&&(i.call(u,e.serviceReference),"function"==typeof u.onServiceAdded)?u.onServiceAdded(e.serviceReference,u.serviceRegistry.getService(e.serviceReference)):void 0},l=function(e){a(e.serviceReference)&&o.call(u,e.serviceReference)},e.addEventListener("registered",s),e.addEventListener("unregistering",l),c&&e.getServiceReferences(r).forEach(function(t){return i.call(u,t),"function"==typeof u.onServiceAdded?u.onServiceAdded(t,e.getService(t)):void 0}),"function"==typeof this.onOpen&&this.onOpen()}}var t=0,n=1;return e.prototype={addingService:function(e){return this.serviceRegistry.getService(e)},onOpen:null,onClose:null,onServiceAdded:null,removedService:function(){}},e}),n("orion/contentTypes",["orion/serviceTracker"],function(e){function t(e,t){return-1!==e.indexOf(t)}function n(e){switch(e&&e.id){case"image/jpeg":case"image/png":case"image/gif":case"image/ico":case"image/tiff":case"image/svg":return!0}return!1}function r(e){return e?"application/octet-stream"===e.id||"application/octet-stream"===e["extends"]:!1}function i(e,n){if("string"!=typeof e)return null;var r,i=null,o=e.indexOf(".");o++;for(var a=e.substring(o).toLowerCase(),s=0;s=0){i=r;break}t(r.extension,a)&&(i=r)}if(!i)for(o=a.indexOf(".");!i&&o>=0;){for(o++,a=a.substring(o),s=0;s=0)return e;if(e.hasChildNodes())for(var t=0;t=0)return e;if(e.hasChildNodes())for(var t=e.childNodes.length-1;t>=0;t--){var n=u(e.childNodes[t]);if(n)return n}return null}function p(e,t){if(3===e.nodeType){var n=E.exec(e.nodeValue);n&&n.length>1&&t(e,n)}if(e.hasChildNodes())for(var r=0;r2&&-1!==o.indexOf("px",o.length-2)){o=o.slice(0,-2);var a=parseInt(o,10);return a!==a?0:a}}return 0}function d(e,t){p(e,function(e,n){var r=t[n[1]]||n[1];e.parentNode.replaceChild(document.createTextNode(r),e)})}function h(e,t){p(e,function(e,n){var r=t[n[1]];if(r){var i=document.createRange(),o=n.index;i.setStart(e,o),i.setEnd(e,o+n[0].length),i.deleteContents(),i.insertNode(r)}})}function m(t,n){function r(e){w.forEach(function(t){var n=!1,r=t.excludeNodes.some(function(t){return document.body.contains(t)?(n=!0,t.contains(e.target)):!1});if(n&&!r)try{t.dismiss(e)}catch(i){"undefined"!=typeof console&&console&&console.error(i&&i.message)}}),w=w.filter(function(e){return e.excludeNodes.some(function(e){return document.body.contains(e)})})}null===w&&(w=[],document.addEventListener("click",r,!0),e.isIOS&&document.addEventListener("touchend",function(e){function t(){e.target.removeEventListener("click",t)}0===e.touches.length&&e.target.addEventListener("click",t)},!1)),w.push({excludeNodes:t,dismiss:n})}function g(e){w=w.filter(function(t){return e!==t.dismiss})}function v(e){for(var t=e.parentNode,n=document.documentElement;t&&t!==n;){var r=window.getComputedStyle(t,null);if(!r)break;var i=r.getPropertyValue("overflow-y");if("auto"===i||"scroll"===i)break;t=t.parentNode}return t}function y(e){window.document.all&&(e.keyCode=0),e.preventDefault&&(e.preventDefault(),e.stopPropagation())}function b(e){for(var t=document.getElementsByTagName("iframe"),n=0;n1?n.children:n.firstChild}var E=/\$\{([^\}]+)\}/,w=null,_={BKSPC:8,TAB:9,ENTER:13,SHIFT:16,CONTROL:17,ALT:18,ESCAPE:27,SPACE:32,PAGEUP:33,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,INSERT:45,DEL:46,COMMAND:991},k=Object.create(null);return Object.keys(_).forEach(function(e){k[_[e]]=e}),{$:t,$$:n,$$array:r,node:i,contains:o,bounds:a,empty:s,firstTabbable:c,lastTabbable:u,pixelValueOf:f,stop:y,processTextNodes:d,processDOMNodes:h,addAutoDismiss:m,setFramesEnabled:b,getOffsetParent:v,removeAutoDismiss:g,keyName:x,KEY:_,createNodes:S}}),n("orion/uiUtils",["i18n!orion/nls/messages","orion/webui/littlelib","orion/i18nUtil"],function(e,t,n){function r(n){var r="";if(g)n.mod4&&(r+="⌃"),n.mod3&&(r+="⌄"),n.mod2&&(r+="⇧"),n.mod1&&(r+="⌘");else{var i="+";n.mod1&&(r+=e.KeyCTRL+i),n.mod2&&(r+=e.KeySHIFT+i),n.mod3&&(r+=e.KeyALT+i)}if(n.alphaKey)return r+n.alphaKey;if("keypress"===n.type)return r+n.keyCode;var o=n.keyCode,a=v[o];if(a)return r+a;var s=t.keyName(o);if(s)return s=e["Key"+s]||s,r+s;var l;switch(n.keyCode){case 59:l=n.mod2?":":";";break;case 61:l=n.mod2?"+":"=";break;case 188:l=n.mod2?"<":",";break;case 190:l=n.mod2?">":".";break;case 191:l=n.mod2?"?":"/";break;case 192:l=n.mod2?"~":"`";break;case 219:l=n.mod2?"{":"[";break;case 220:l=n.mod2?"|":"\\";break;case 221:l=n.mod2?"}":"]";break;case 222:l=n.mod2?'"':"'"}return l?r+l:n.keyCode>=112&&n.keyCode<=123?r+"F"+(n.keyCode-111):r+String.fromCharCode(n.keyCode)}function i(e){for(var t="",n=e.getKeys(),i=0;i0)if(e.createTextRange){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",0),i.moveEnd("character",r),i.select()}else e.setSelectionRange?e.setSelectionRange(0,r):void 0!==e.selectionStart&&(e.selectionStart=0,e.selectionEnd=r);else e.select()}},0)}function a(e){var t=-1!==window.navigator.platform.indexOf("Mac");return t&&e.metaKey||!t&&e.ctrlKey}function s(e,t){t&&a(t)?window.open(e):window.location=e}function l(e,n){var r=document.createElement("button");return r.className="orionButton commandButton commandMargins",r.addEventListener("click",function(e){n(),t.stop(e)},!1),e&&r.appendChild(document.createTextNode(e)),r}function c(){}function u(e,t){if(!e||!e.tagName)return!1;switch(e.tagName.toLowerCase()){case"button":case"fieldset":case"form":case"input":case"keygen":case"label":case"legend":case"meter":case"optgroup":case"output":case"progress":case"select":case"textarea":return!0}return e.parentNode===t?!1:e.parentNode&&u(e.parentNode,t)}function p(e,t,n){var r=n?0:1;return e.substring(0,e.length-encodeURIComponent(t).length-r)}function f(e){var t=new Date,n=new Date(e),r=t.getTime()-n.getTime(),i=Math.floor(r/1e3/60/60/24/365);r-=1e3*i*60*60*24*365;var o=Math.floor(r/1e3/60/60/24/30);r-=1e3*o*60*60*24*30;var a=Math.floor(r/1e3/60/60/24);r-=1e3*a*60*60*24;var s=Math.floor(r/1e3/60/60);r-=1e3*s*60*60;var l=Math.floor(r/1e3/60);r-=1e3*l*60;var c=Math.floor(r/1e3);return{year:i,month:o,day:a,hour:s,minute:l,second:c}}function d(t,r,i){return t>0?1===t?e[r]:n.formatMessage(e[i],t):""}function h(e){var t=f(e),n=d(t.year,"a year","years"),r=d(t.month,"a month","months"),i=d(t.day,"a day","days"),o=d(t.hour,"an hour","hours"),a=d(t.minute,"a minute","minutes"),s="";return n?s=t.year>0?n:n+r:r?s=t.month>0?r:r+i:i?s=t.day>0?i:i+o:o?s=t.hour>0?o:o+a:a&&(s=a),s}function m(t){var r=h(t);return r?n.formatMessage(e.timeAgo,r):e.justNow}var g=-1!==navigator.platform.indexOf("Mac"),v=Object.create(null);return v[t.KEY.DOWN]="↓",v[t.KEY.UP]="↑",v[t.KEY.RIGHT]="→",v[t.KEY.LEFT]="←",g&&(v[t.KEY.BKSPC]="⌫",v[t.KEY.DEL]="⌦",v[t.KEY.END]="⇲",v[t.KEY.ENTER]="āŽ",v[t.KEY.ESCAPE]="āŽ‹",v[t.KEY.HOME]="⇱",v[t.KEY.PAGEDOWN]="ā‡Ÿ",v[t.KEY.PAGEUP]="ā‡ž",v[t.KEY.SPACE]="␣",v[t.KEY.TAB]="⇄"),{getUserKeyString:i,getUserText:o,openInNewWindow:a,followLink:s,createButton:l,createDropdownButton:c,isFormElement:u,path2FolderName:p,timeElapsed:h,displayableTimeElapsed:m}}),n("orion/crawler/searchCrawler",["i18n!orion/crawler/nls/messages","orion/i18nUtil","orion/searchUtils","orion/contentTypes","orion/uiUtils","orion/Deferred"],function(e,t,n,r,i,o){function a(t,r,i,o){this.registry=t,this.fileClient=r,this.fileLocations=[],this.fileSkeleton=[],this._hitCounter=0,this._totalCounter=0,this._searchOnName=o&&o.searchOnName,this._buildSkeletonOnly=o&&o.buildSkeletonOnly,this._fetchChildrenCallBack=o&&o.fetchChildrenCallBack,this._searchParams=i,this.searchHelper=this._searchOnName||this._buildSkeletonOnly||!this._searchParams?null:n.generateSearchHelper(i),this._location=i?i.resource:o&&o.location,this._childrenLocation=o&&o.childrenLocation?o.childrenLocation:this._location,this._reportOnCancel=o&&o.reportOnCancel,this._visitSingleFile=o&&o.visitSingleFile,this._visitSingleFile||(this._visitSingleFile=this._searchSingleFile),this._cancelMessage=o&&o.cancelMessage,this._cancelMessage||(this._cancelMessage=e.searchCancelled),this._cancelled=!1,this._statusService=this.registry.getService("orion.page.message"),this._progressService=this.registry.getService("orion.page.progress"),this._statusService&&this._statusService.setCancelFunction(function(){this._cancelFileVisit()}.bind(this))}var s=!1,l=[".git"];return a.prototype.search=function(e){this.contentTypeService=this.registry.getService("orion.core.contentTypeRegistry"),this._onSearchComplete=e,this._cancelled=!1,this._deferredArray=[];var t;return this.contentTypeService.getContentTypes().then(function(e){this.contentTypesCache=e;var n=this;return this._visitRecursively(this._childrenLocation).then(function(){return(!n._cancelled||n._reportOnCancel)&&(t=n._reportResult()),n._cancelled&&n._HandleStatus({name:"Cancel"}),(new o).resolve(t)}.bind(n),function(e){return t=n._reportResult(),n._HandleStatus(e),(new o).resolve(t)}.bind(n))}.bind(this))},a.prototype.searchName=function(e){e&&(this._searchParams=e,this.searchHelper=n.generateSearchHelper(e,!0));var t=[];if(this._cancelled=!1,this._deferredArray=[],this._sort(this.fileSkeleton),this.fileSkeleton.length>0){for(var r=0;r=this.searchHelper.params.rows))break}var s={numFound:t.length,docs:t};return(new o).resolve({response:s})}return(new o).resolve({response:{numFound:0,docs:[]}})},a.prototype.buildSkeleton=function(e,t){this._buildingSkeleton=!0,this.contentTypeService=this.registry.getService("orion.core.contentTypeRegistry"),this._cancelled=!1,this._deferredArray=[];var n=this;e(),this.contentTypeService.getContentTypes().then(function(e){n.contentTypesCache=e,n._visitRecursively(n._childrenLocation).then(function(){n._buildingSkeleton=!1,t()})})},a.prototype.incrementalReport=function(n,r){if(!this._cancelled){n.LastModified=n.LocalTimeStamp,this.fileLocations.push(n),this._hitCounter++,r&&this._sort(this.fileLocations);var i={numFound:this.fileLocations.length,docs:this.fileLocations};this._onSearchComplete({response:i},!0),this._statusService&&this._statusService.setProgressResult({Message:t.formatMessage(e.filesFound,this._hitCounter,this._totalCounter)},e.Cancel)}},a.prototype.addTotalCounter=function(e){e||(e=1),this._totalCounter=this._totalCounter+e},a.prototype.isCancelled=function(){return this._cancelled +},a.prototype._contains=function(e,t){return-1!==(e||[]).indexOf(t)},a.prototype._sort=function(e){e.sort(function(e,t){var n,r;if(this._searchParams&&"Path asc"===this._searchParams.sort){var o=e.Location&&e.Location.toLowerCase();n=i.path2FolderName(o,e.Name&&e.Name.toLowerCase(),!0);var a=t.Location&&t.Location.toLowerCase();return r=i.path2FolderName(a,t.Name&&t.Name.toLowerCase(),!0),r>n?-1:n>r?1:this._sortOnNameSingle(e,t)}return this._sortOnNameSingle(e,t)}.bind(this))},a.prototype._HandleStatus=function(e){this._statusService&&"Cancel"===e.name&&(s&&console.log("Crawling search cancelled. Deferred array length : "+this._deferredArray.length),this._statusService.setProgressResult({Message:this._cancelMessage,Severity:"Warning"}))},a.prototype._reportResult=function(){this._sort(this.fileLocations);var e={numFound:this.fileLocations.length,docs:this.fileLocations},t={response:e};return this._onSearchComplete(t),t},a.prototype._sortOnNameSingle=function(e,t){var n=e.Name&&e.Name.toLowerCase(),r=t.Name&&t.Name.toLowerCase();return r>n?-1:n>r?1:0},a.prototype._fileNameMatches=function(e){var t=!0;return this.searchHelper&&this.searchHelper.params.fileNamePatterns&&(t=this.searchHelper.params.fileNamePatterns.some(function(t){var n="^"+t.replace(/([*?])/g,".$1")+"$";return e.match(n)})),t},a.prototype._visitRecursively=function(e){var t=[],n=this;return this._fetchChildrenCallBack&&this._fetchChildrenCallBack(e),(n._progressService?this._progressService.progress(n.fileClient.fetchChildren(e),"Crawling search for children of "+e):n.fileClient.fetchChildren(e)).then(function(e){for(var i=0;i-1))throw s;this._crawler||(this._crawler=this._createCrawler(e)),e.nameSearch?this._crawler.searchName(e).then(function(t){this._searchDeferred=null,o.resolve(this.convert(t,e))}.bind(this)):this._crawler.search(function(){o.progress(arguments[0],arguments[1])}).then(function(t){this._searchDeferred=null,o.resolve(this.convert(t,e))}.bind(this))}return o},_generateSingle:function(e,t){return this._fileClient.read(e.location).then(function(n){return r.searchWithinFile(t.inFileQuery,e,n,!1,t.params.caseSensitive,!0),e}.bind(this),function(e){var t=this._registry.getService("orion.page.message");t&&t.setProgressResult({Message:e.message,Severity:"Error"})}.bind(this))},_generateMatches:function(e,n,i){if(!i||0===n.length)return(new t).resolve(n);var o=r.generateSearchHelper(e),a=[];return n.forEach(function(e){a.push(this._generateSingle(e,o))}.bind(this)),t.all(a,function(e){return{_error:e}})},_generateSingleMeta:function(e){return this._fileClient.read(e.location,!0).then(function(t){return e.metadata=t,e}.bind(this),function(e){var t=this._registry.getService("orion.page.message");t&&t.setProgressResult({Message:e.message,Severity:"Error"})}.bind(this))},_generateMeta:function(e,n){if(!n||0===e.length)return(new t).resolve(e);var r=[];return e.forEach(function(e){r.push(this._generateSingleMeta(e))}.bind(this)),t.all(r,function(e){return{_error:e}})},convert:function(e,t){var n=[],r=this._fileClient.fileServiceRootURL(t.resource);if(e.response.numFound>0)for(var i=0;i",literal:"-->"},name:"comment.block.xml",patterns:[{match:"(\\b)(TODO)(\\b)(((?!-->).)*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.line"}}}]},doctype:{begin:"",name:"meta.tag.doctype.xml",captures:{0:{name:"meta.tag.doctype.xml"}},patterns:[{include:"#comment"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"}]},tag:{begin:"",captures:{0:{name:"meta.tag.xml"}},patterns:[{include:"#comment"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"}]},xmlDeclaration:{begin:"<\\?xml",end:"\\?>",captures:{0:{name:"meta.tag.declaration.xml"}},patterns:[{include:"#comment"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"}],name:"meta.tag.declaration.xml"}}}),{id:t[t.length-1].id,grammars:t,keywords:[]}}),n("orion/editor/stylers/application_x-ejs/syntax",["orion/editor/stylers/application_javascript/syntax","orion/editor/stylers/application_xml/syntax"],function(e,t){var n=[];return n.push.apply(n,e.grammars),n.push.apply(n,t.grammars),n.push({id:"orion.ejs",contentTypes:["application/x-ejs"],patterns:[{include:"orion.xml#comment"},{include:"orion.xml#doctype"},{begin:"<%=?(?:\\s|$)",end:"%>",captures:{0:{name:"entity.name.declaration.js"}},contentName:"source.js.embedded.ejs",patterns:[{include:"orion.js"}]},{include:"orion.xml#tag"},{include:"orion.xml#ampersandEscape"}]}),{id:n[n.length-1].id,grammars:n,keywords:[]}}),function(){function e(e){if("string"!=typeof e)throw new TypeError}function t(e){return e?e.split("&"):[]}function n(e){return 0===e.length?"":e.join("&")}function r(e){var t=/([^=]*)(?:=?)(.*)/.exec(e),n=t[1]?decodeURIComponent(t[1]):"",r=t[2]?decodeURIComponent(t[2]):"";return[n,r]}function i(e){var t=encodeURIComponent(e[0]);return e[1]&&(t+="="+encodeURIComponent(e[1])),t}function o(e,n){var i="",o=[],a=0;return{next:function(){if(i!==e.query&&(i=e.query,o=t(i)),a1&&t.pop():"."!==e&&t.push(e)}),t.join("/")}function p(e){e.scheme&&(e.scheme=l(e.scheme)),e.port&&(e.port=c(e.port)),e.host&&e.path&&(e.path=u(e.path))}function f(e){return e.replace(/\s/g,function(e){return"%"+e.charCodeAt(0).toString(16)})}function d(e,t){if("string"!=typeof e)throw new TypeError;e=f(e);var n=y.exec(e);if(!n)return null;var r={};if(r.scheme=n[1]||"",r.scheme&&!S.test(r.scheme))return null;var i=n[2];if(i){var o=b.exec(i);if(r.userinfo=o[1],r.host=o[2],r.port=o[3],r.port&&!E.test(r.port))return null}return r.path=n[3],r.query=n[4],r.fragment=n[5],s(r,t),p(r),r}function h(e){var t=e.scheme?e.scheme+":":"";return e.host&&(t+="//",e.userinfo&&(t+=e.userinfo+"@"),t+=e.host,e.port&&(t+=":"+e.port)),t+=e.path,e.query&&(t+="?"+e.query),e.fragment&&(t+="#"+e.fragment),t}function m(e,t){var n;if(t){if(t=t.href||t,n=d(t),!n||!n.scheme)throw new SyntaxError;Object.defineProperty(this,"_baseURL",{value:n})}var r=d(e,n);if(!r)throw new SyntaxError;Object.defineProperty(this,"_input",{value:e,writable:!0}),Object.defineProperty(this,"_url",{value:r,writable:!0});var i=new a(this);Object.defineProperty(this,"query",{get:function(){return this._url?i:null},enumerable:!0})}try{var g;if("function"==typeof self.URL&&0!==self.URL.length&&"http:"===(g=new self.URL("http://www.w3.org?q")).protocol&&g.query)return}catch(v){}var y=/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/,b=/^(?:(.*)@)?(\[[^\]]*\]|[^:]*)(?::(.*))?$/,x=/^\S*$/,S=/^([a-zA-Z](?:[a-zA-Z0-9+-.])*)$/,E=/^\d*$/,w=/^(\[[^\]\/?#\s]*\]|[^:\/?#\s]*)$/,_=/^(\[[^\]\/?#\s]*\]|[^:\/?#\s]*)(?::(\d*))?$/,k=/^([^?#\s]*)$/,C=/^([^\s]*)$/,T=x,L=/([^:]*):?(.*)/,A="undefined"!=typeof StopIteration?StopIteration:new Error("Stop Iteration"),P={"ftp:":"21","gopher:":"70","http:":"80","https:":"443","ws:":"80","wss:":"443"};Object.defineProperties(a.prototype,{get:{value:function(n){e(n);var i,o=t(this._url.query);return o.some(function(e){var t=r(e);return t[0]===n?(i=t[1],!0):void 0}),i},enumerable:!0},set:{value:function(o,a){e(o),e(a);var s=t(this._url.query),l=s.some(function(e,t){var n=r(e);return n[0]===o?(n[1]=a,s[t]=i(n),!0):void 0});l||s.push(i([o,a])),this._url.query=n(s)},enumerable:!0},has:{value:function(n){e(n);var i=t(this._url.query);return i.some(function(e){var t=r(e);return t[0]===n?!0:void 0})},enumerable:!0},"delete":{value:function(i){e(i);var o=t(this._url.query),a=o.filter(function(e){var t=r(e);return t[0]!==i});return a.length!==o.length?(this._url.query=n(a),!0):!1},enumerable:!0},clear:{value:function(){this._url.query=""},enumerable:!0},forEach:{value:function(e,t){if("function"!=typeof e)throw new TypeError;var n=o(this._url,"keys+values");try{for(;;){var r=n.next();e.call(t,r[1],r[0],this)}}catch(i){if(i!==A)throw i}},enumerable:!0},keys:{value:function(){return o(this._url,"keys")},enumerable:!0},values:{value:function(){return o(this._url,"values")},enumerable:!0},items:{value:function(){return o(this._url,"keys+values")}},size:{get:function(){return t(this._url.query).length},enumerable:!0},getAll:{value:function(n){e(n);var i=[],o=t(this._url.query);return o.forEach(function(e){var t=r(e);t[0]===n&&i.push(t[1])}),i},enumerable:!0},append:{value:function(r,o){e(r),e(o);var a=t(this._url.query);a.push(i([r,o])),this._url.query=n(a)},enumerable:!0}}),Object.defineProperties(m.prototype,{toString:{value:function(){return this.href}},href:{get:function(){return this._url?h(this._url):this._input},set:function(t){e(t),this._input=t,this._url=d(this._input,this._baseURL)},enumerable:!0},origin:{get:function(){return this._url&&this._url.host?this.protocol+"//"+this.host:""},enumerable:!0},protocol:{get:function(){return this._url?this._url.scheme+":":":"},set:function(t){if(e(t),this._url){var n=":"===t.slice(-1)?t.substring(0,t.length-1):t;(""===n||S.test(n))&&(this._url.scheme=l(n))}},enumerable:!0},_userinfo:{get:function(){return this._url?this._url.userinfo:""},set:function(t){e(t),this._url&&(this._url.userinfo=t)}},username:{get:function(){if(!this._url)return"";var e=L.exec(this._userinfo),t=decodeURIComponent(e[1]||"");return t},set:function(t){if(e(t),this._url){var n=L.exec(this._userinfo),r=[encodeURIComponent(t||"")];n[2]&&r.push(n[2]),this._userinfo=r.join(":")}},enumerable:!0},password:{get:function(){if(!this._url)return"";var e=L.exec(this._userinfo),t=decodeURIComponent(e[2]||"");return t},set:function(t){if(e(t),this._url){var n=L.exec(this._userinfo),r=[n[1]||""];t&&r.push(encodeURIComponent(t)),this._userinfo=r.join(":")}},enumerable:!0},host:{get:function(){var e="";return this._url&&this._url.host&&(e+=this._url.host,this._url.port&&(e+=":"+this._url.port)),e},set:function(t){if(e(t),this._url){var n=_.exec(t);n&&(this._url.host=n[1],this._url.port=c(n[2]))}},enumerable:!0},hostname:{get:function(){return this._url?this._url.host:""},set:function(t){if(e(t),this._url){var n=w.exec(t);n&&(this._url.host=t)}},enumerable:!0},port:{get:function(){var e=this._url?this._url.port||"":"";return e&&e===P[this.protocol]&&(e=""),e},set:function(t){if(e(t),this._url){var n=E.exec(t);n&&(this._url.port=c(t))}},enumerable:!0},pathname:{get:function(){return this._url?this._url.path:""},set:function(t){if(e(t),this._url){var n=k.exec(t);n&&(this._url.host&&t&&"/"!==t[0]&&(t="/"+t),this._url.path=t?u(t):"")}},enumerable:!0},search:{get:function(){return this._url&&this._url.query?"?"+this._url.query:""},set:function(t){if(e(t),this._url){t&&"?"===t[0]&&(t=t.substring(1));var n=C.exec(t);n&&(this._url.query=t)}},enumerable:!0},hash:{get:function(){return this._url&&this._url.fragment?"#"+this._url.fragment:""},set:function(t){if(e(t),this._url){t&&"#"===t[0]&&(t=t.substring(1));var n=T.exec(t);n&&(this._url.fragment=t)}},enumerable:!0}});var j=self.URL||self.webkitURL;j&&j.createObjectURL&&(Object.defineProperty(m,"createObjectURL",{value:j.createObjectURL.bind(j),enumerable:!1}),Object.defineProperty(m,"revokeObjectURL",{value:j.revokeObjectURL.bind(j),enumerable:!1})),self.URL=m}(),n("orion/URL-shim",function(){}),n("javascript/plugins/javascriptPlugin",["orion/plugin","orion/bootstrap","orion/Deferred","orion/fileClient","orion/metrics","esprima/esprima","estraverse/estraverse","javascript/scriptResolver","javascript/astManager","javascript/quickFixes","javascript/contentAssist/ternAssist","javascript/validator","javascript/occurrences","javascript/hover","javascript/outliner","javascript/cuProvider","javascript/ternProjectManager","orion/util","javascript/logger","javascript/commands/generateDocCommand","javascript/commands/openDeclaration","javascript/commands/openImplementation","javascript/commands/renameCommand","javascript/commands/refsCommand","orion/gSearchClient","orion/editor/stylers/application_javascript/syntax","orion/editor/stylers/application_json/syntax","orion/editor/stylers/application_schema_json/syntax","orion/editor/stylers/application_x-ejs/syntax","i18n!javascript/nls/messages","orion/URL-shim"],function(e,t,n,r,i,o,a,s,l,c,u,p,f,d,h,m,g,v,y,b,x,S,E,w,_,k,C,T,L,A){var P=new e({name:A.pluginName,version:"1.0",description:A.pluginDescription});t.startup().then(function(e){function t(e,t,n){var r=new URL(e,window.location.href);r.query.set("worker-language",navigator.language),this.worker=new Worker(r.href),this.worker.onmessage=t.bind(this),this.worker.onerror=n.bind(this),this.worker.postMessage("start_worker"),this.messageId=0,this.callbacks=Object.create(null)}function j(e){var t={request:"read",ternID:e.ternID,args:{}};if("object"==typeof e.args.file){var n=e.args.file.logical;t.args.logical=n,R.getWorkspaceFile(n).then(function(r){if(r&&r.length>0){var i=R.resolveRelativeFiles(n,r,{location:e.args.file.file,contentType:{name:"JavaScript"}});if(i&&i.length>0)return N.read(i[0].location).then(function(e){t.args.contents=e,t.args.file=i[0].location,t.args.path=i[0].path,G.postMessage(t)});t.args.error="Failed to read file "+n,G.postMessage(t)}else t.args.error="Failed to read file "+n,G.postMessage(t)},function(e){t.args.error="Failed to read file "+n,t.args.message=e.toString(),G.postMessage(t)})}else{var r=e.args.file;t.args.file=r;try{return N.read(r).then(function(e){t.args.contents=e,G.postMessage(t)},function(e){t.args.message=e.toString(),t.args.error="Failed to read file "+r,G.postMessage(t)})}catch(i){t.args.message=i.toString(),t.args.error="Failed to read file "+r,G.postMessage(t)}}}function F(){G.startServer()}function O(){function e(e){var n=e.keys();for(t=0,r=n.length;r>t;t++){var i=n[t];/^tern.$/.test(i)&&e.remove(n[t])}e.sync(!0)}M=!0;for(var t=0,r=V.length;r>t;t++){var i=V[t];G.postMessage(i.msg,i.f)}V=[],G.postMessage({request:"installed_plugins"},function(r){var i=r.plugins;return U?U.getPreferences("/cm/configurations").then(function(n){var r=n.get("tern");e(n),r?"string"==typeof r&&(r=JSON.parse(r)):r=Object.create(null);var o=Object.keys(i),a=r.plugins?r.plugins:Object.create(null);for(t=0;t + Copyright (C) 2013 Thaddee Tyl + Copyright (C) 2013 Mathias Bynens + Copyright (C) 2012 Ariya Hidayat + Copyright (C) 2012 Mathias Bynens + Copyright (C) 2012 Joost-Wim Boekesteijn + Copyright (C) 2012 Kris Kowal + Copyright (C) 2012 Yusuke Suzuki + Copyright (C) 2012 Arpad Borsos + Copyright (C) 2011 Ariya Hidayat + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/******************************************************************************* + * @license + * Copyright (c) 2010, 2014 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: IBM Corporation - initial API and implementation + ******************************************************************************/ + +/******************************************************************************* + * @license + * Copyright (c) 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/******************************************************************************* + * @license + * Copyright (c) 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/* + Copyright (C) 2012-2013 Yusuke Suzuki + Copyright (C) 2012 Ariya Hidayat + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @fileoverview Defines environment settings and globals. + * @author Elan Shanker + * @copyright 2014 Elan Shanker. All rights reserved. + */ + +/******************************************************************************* + * @license + * Copyright (c) 2013, 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/******************************************************************************* + * @license + * Copyright (c) 2012 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: IBM Corporation - initial API and implementation + ******************************************************************************/ + +/******************************************************************************* + * @license + * Copyright (c) 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/******************************************************************************* + * @license + * Copyright (c) 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: + * IBM Corporation - Allow original requirejs plugin to find files in Orion workspace + *******************************************************************************/ + +/** + * @license RequireJS text 2.0.12 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. + * Available via the MIT or new BSD license. + * see: http://github.com/requirejs/text for details + */ + +/******************************************************************************* + * @license + * Copyright (c) 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: IBM Corporation - initial API and implementation + ******************************************************************************/ + +/** + * @license RequireJS i18n 2.0.4 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved. + * Available via the MIT or new BSD license. + * see: http://github.com/requirejs/i18n for details + */ + +/******************************************************************************* + * @license + * Copyright (c) 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + ******************************************************************************/ + +/******************************************************************************* + * @license + * Copyright (c) 2014, 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + ******************************************************************************/ + +/******************************************************************************* + * @license + * Copyright (c) 2012, 2015 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 + * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution + * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). + * + * Contributors: IBM Corporation - initial API and implementation + *******************************************************************************/ + +!function(e,t){"use strict";"function"==typeof define&&define.amd?define("esprima/esprima",["exports"],t):t("undefined"!=typeof exports?exports:e.esprima={})}(this,function(e){"use strict";function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function r(e){return e>=48&&57>=e}function n(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function o(e){return"01234567".indexOf(e)>=0}function s(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function a(e){return 10===e||13===e||8232===e||8233===e}function i(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||92===e||e>=128&&Dr.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function l(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||e>=48&&57>=e||92===e||e>=128&&Dr.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function p(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function d(e){return"eval"===e||"arguments"===e}function u(e){if(zr&&p(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function h(e,r,n,o,s){var a;t("number"==typeof n,"Comment must have valid position"),Vr.lastCommentStart=n,a={type:e,value:r},$r.range&&(a.range=[n,o]),$r.loc&&(a.loc=s),$r.comments.push(a),$r.attachComment&&($r.leadingComments.push(a),$r.trailingComments.push(a))}function f(e){var t,r,n,o;for(t=Cr-e,r={start:{line:Pr,column:Cr-Ir-e}};Br>Cr;)if(n=Ar.charCodeAt(Cr),++Cr,a(n))return Nr=!0,$r.comments&&(o=Ar.slice(t+e,Cr-1),r.end={line:Pr,column:Cr-Ir-1},h("Line",o,t,Cr-1,r)),13===n&&10===Ar.charCodeAt(Cr)&&++Cr,++Pr,void(Ir=Cr);$r.comments&&(o=Ar.slice(t+e,Cr),r.end={line:Pr,column:Cr-Ir},h("Line",o,t,Cr,r))}function m(){var e,t,r,n;for($r.comments&&(e=Cr-2,t={start:{line:Pr,column:Cr-Ir-2}});Br>Cr;)if(r=Ar.charCodeAt(Cr),a(r))13===r&&10===Ar.charCodeAt(Cr+1)&&++Cr,Nr=!0,++Pr,++Cr,Ir=Cr;else if(42===r){if(47===Ar.charCodeAt(Cr+1))return++Cr,++Cr,void($r.comments&&(n=Ar.slice(e+2,Cr-2),t.end={line:Pr,column:Cr-Ir},h("Block",n,e,Cr,t)));++Cr}else++Cr;Cr>=Br&&$r.comments?(t.end={line:Pr,column:Cr-Ir},n=Ar.slice(e+2,Cr),h("Block",n,e,Cr,t),Z()):Q()}function g(){var e,t;for(Nr=!1,t=0===Cr;Br>Cr;)if(e=Ar.charCodeAt(Cr),s(e))++Cr;else if(a(e))Nr=!0,++Cr,13===e&&10===Ar.charCodeAt(Cr)&&++Cr,++Pr,Ir=Cr,t=!0;else if(47===e)if(e=Ar.charCodeAt(Cr+1),47===e)++Cr,++Cr,f(2),t=!0;else{if(42!==e)break;++Cr,++Cr,m()}else if(t&&45===e){if(45!==Ar.charCodeAt(Cr+1)||62!==Ar.charCodeAt(Cr+2))break;Cr+=3,f(3)}else{if(60!==e)break;if("!--"!==Ar.slice(Cr+1,Cr+4))break;++Cr,++Cr,++Cr,++Cr,f(4)}}function b(e){var t,r,o,s=0;for(r="u"===e?4:2,t=0;r>t;++t){if(!(Br>Cr&&n(Ar[Cr])))return"";o=Ar[Cr++],s=16*s+"0123456789abcdef".indexOf(o.toLowerCase())}return String.fromCharCode(s)}function y(){var e,t,r,o;for(e=Ar[Cr],t=0,"}"===e&&Q();Br>Cr&&(e=Ar[Cr++],n(e));)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&Q(),65535>=t?String.fromCharCode(t):(r=(t-65536>>10)+55296,o=(t-65536&1023)+56320,String.fromCharCode(r,o))}function v(){var e,t;for(e=Ar.charCodeAt(Cr++),t=String.fromCharCode(e),92===e&&(117!==Ar.charCodeAt(Cr)&&Q(),++Cr,e=b("u"),e&&"\\"!==e&&i(e.charCodeAt(0))||Q(),t=e);Br>Cr&&(e=Ar.charCodeAt(Cr),l(e));)++Cr,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==Ar.charCodeAt(Cr)&&Q(),++Cr,e=b("u"),e&&"\\"!==e&&l(e.charCodeAt(0))||Q(),t+=e);return t}function w(){var e,t;for(e=Cr++;Br>Cr;){if(t=Ar.charCodeAt(Cr),92===t)return Cr=e,v();if(!l(t))break;++Cr}return Ar.slice(e,Cr)}function _(){var e,t,r;return e=Cr,t=92===Ar.charCodeAt(Cr)?v():w(),r=1===t.length?Er.Identifier:u(t)?Er.Keyword:"null"===t?Er.NullLiteral:"true"===t||"false"===t?Er.BooleanLiteral:Er.Identifier,{type:r,value:t,lineNumber:Pr,lineStart:Ir,start:e,end:Cr}}function S(){var e,t,r,n,o=Cr,s=Ar.charCodeAt(Cr),a=Ar[Cr];switch(s){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++Cr,$r.tokenize&&(40===s?$r.openParenToken=$r.tokens.length:123===s&&($r.openCurlyToken=$r.tokens.length)),{type:Er.Punctuator,value:String.fromCharCode(s),lineNumber:Pr,lineStart:Ir,start:o,end:Cr};default:if(e=Ar.charCodeAt(Cr+1),61===e)switch(s){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return Cr+=2,{type:Er.Punctuator,value:String.fromCharCode(s)+String.fromCharCode(e),lineNumber:Pr,lineStart:Ir,start:o,end:Cr};case 33:case 61:return Cr+=2,61===Ar.charCodeAt(Cr)&&++Cr,{type:Er.Punctuator,value:Ar.slice(o,Cr),lineNumber:Pr,lineStart:Ir,start:o,end:Cr}}}if(n=Ar.substr(Cr,4),">>>="===n)return Cr+=4,{type:Er.Punctuator,value:n,lineNumber:Pr,lineStart:Ir,start:o,end:Cr};if(r=n.substr(0,3),">>>"===r||"<<="===r||">>="===r)return Cr+=3,{type:Er.Punctuator,value:r,lineNumber:Pr,lineStart:Ir,start:o,end:Cr};if(t=r.substr(0,2),a===t[1]&&"+-<>&|".indexOf(a)>=0||"=>"===t)return Cr+=2,{type:Er.Punctuator,value:t,lineNumber:Pr,lineStart:Ir,start:o,end:Cr};if("<>=!+-*%&|^/".indexOf(a)>=0)return++Cr,{type:Er.Punctuator,value:a,lineNumber:Pr,lineStart:Ir,start:o,end:Cr};++Cr;var i={type:Er.Punctuator,lineNumber:Pr,lineStart:Ir,start:o,end:Cr,value:Ar.slice(o,Cr)};Q(i)}function T(e){for(var t="";Br>Cr&&n(Ar[Cr]);)t+=Ar[Cr++];return 0===t.length&&Q(),i(Ar.charCodeAt(Cr))&&Q(),{type:Er.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:Pr,lineStart:Ir,start:e,end:Cr}}function E(e){var t,n;for(n="";Br>Cr&&(t=Ar[Cr],"0"===t||"1"===t);)n+=Ar[Cr++];return 0===n.length&&Q(),Br>Cr&&(t=Ar.charCodeAt(Cr),(i(t)||r(t))&&Q()),{type:Er.NumericLiteral,value:parseInt(n,2),lineNumber:Pr,lineStart:Ir,start:e,end:Cr}}function x(e,t){var n,s;for(o(e)?(s=!0,n="0"+Ar[Cr++]):(s=!1,++Cr,n="");Br>Cr&&o(Ar[Cr]);)n+=Ar[Cr++];return s||0!==n.length||Q(),(i(Ar.charCodeAt(Cr))||r(Ar.charCodeAt(Cr)))&&Q(),{type:Er.NumericLiteral,value:parseInt(n,8),octal:s,lineNumber:Pr,lineStart:Ir,start:t,end:Cr}}function j(){var e,t;for(e=Cr+1;Br>e;++e){if(t=Ar[e],"8"===t||"9"===t)return!1;if(!o(t))return!0}return!0}function O(){var e,n,s;if(s=Ar[Cr],t(r(s.charCodeAt(0))||"."===s,"Numeric literal must start with a decimal digit or a decimal point"),n=Cr,e="","."!==s){if(e=Ar[Cr++],s=Ar[Cr],"0"===e){if("x"===s||"X"===s)return++Cr,T(n);if("b"===s||"B"===s)return++Cr,E(n);if("o"===s||"O"===s)return x(s,n);if(o(s)&&j())return x(s,n)}for(;r(Ar.charCodeAt(Cr));)e+=Ar[Cr++];s=Ar[Cr]}if("."===s){for(e+=Ar[Cr++];r(Ar.charCodeAt(Cr));)e+=Ar[Cr++];s=Ar[Cr]}if("e"===s||"E"===s)if(e+=Ar[Cr++],s=Ar[Cr],("+"===s||"-"===s)&&(e+=Ar[Cr++]),r(Ar.charCodeAt(Cr)))for(;r(Ar.charCodeAt(Cr));)e+=Ar[Cr++];else Q();return i(Ar.charCodeAt(Cr))&&Q(),{type:Er.NumericLiteral,value:parseFloat(e),lineNumber:Pr,lineStart:Ir,start:n,end:Cr}}function k(){var e,r,n,s,i,l,c="",p=!1;for(e=Ar[Cr],t("'"===e||'"'===e,"String literal must starts with a quote"),r=Cr,++Cr;Br>Cr;){if(n=Ar[Cr++],n===e){e="";break}if("\\"===n)if(n=Ar[Cr++],n&&a(n.charCodeAt(0)))++Pr,"\r"===n&&"\n"===Ar[Cr]&&++Cr,Ir=Cr;else switch(n){case"u":case"x":"{"===Ar[Cr]?(++Cr,c+=y()):(l=Cr,i=b(n),i?c+=i:(Cr=l,c+=n));break;case"n":c+="\n";break;case"r":c+="\r";break;case"t":c+=" ";break;case"b":c+="\b";break;case"f":c+="\f";break;case"v":c+=" ";break;default:o(n)?(s="01234567".indexOf(n),0!==s&&(p=!0),Br>Cr&&o(Ar[Cr])&&(p=!0,s=8*s+"01234567".indexOf(Ar[Cr++]),"0123".indexOf(n)>=0&&Br>Cr&&o(Ar[Cr])&&(s=8*s+"01234567".indexOf(Ar[Cr++]))),c+=String.fromCharCode(s)):c+=n}else{if(a(n.charCodeAt(0)))break;c+=n}}var d={type:Er.StringLiteral,value:c,octal:p,lineNumber:Gr,lineStart:Wr,start:r,end:Cr};return""!==e&&Z(d),d}function R(e,t){var r=e;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t){return parseInt(t,16)<=1114111?"x":void Q(null,Mr.InvalidRegExp)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{RegExp(r)}catch(n){Q(null,Mr.InvalidRegExp)}try{return new RegExp(e,t)}catch(o){return null}}function M(){var e,r,n,o,s;for(e=Ar[Cr],t("/"===e,"Regular expression literal must start with a slash"),r=Ar[Cr++],n=!1,o=!1;Br>Cr;)if(e=Ar[Cr++],r+=e,"\\"===e)e=Ar[Cr++],a(e.charCodeAt(0))&&Q(null,Mr.UnterminatedRegExp),r+=e;else if(a(e.charCodeAt(0)))Q(null,Mr.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){o=!0;break}"["===e&&(n=!0)}return o||Q(Jr,Mr.UnterminatedRegExp),s=r.substr(1,r.length-2),{value:s,literal:r}}function D(){var e,t,r,n;for(t="",r="";Br>Cr&&(e=Ar[Cr],l(e.charCodeAt(0)));)if(++Cr,"\\"===e&&Br>Cr)if(e=Ar[Cr],"u"===e){if(++Cr,n=Cr,e=b("u"))for(r+=e,t+="\\u";Cr>n;++n)t+=Ar[n];else Cr=n,r+="u",t+="\\u";Z()}else t+="\\",Z();else r+=e,t+=e;return{value:r,literal:t}}function A(){Hr=!0;var e,t,r,n;return g(),e=Cr,t=M(),r=D(),n=R(t.value,r.value),Hr=!1,$r.tokenize?{type:Er.RegularExpression,value:n,regex:{pattern:t.value,flags:r.value},lineNumber:Pr,lineStart:Ir,start:e,end:Cr}:{literal:t.literal+r.literal,value:n,regex:{pattern:t.value,flags:r.value},start:e,end:Cr}}function z(){var e,t,r,n;return g(),e=Cr,t={start:{line:Pr,column:Cr-Ir}},r=A(),t.end={line:Pr,column:Cr-Ir},$r.tokenize||($r.tokens.length>0&&(n=$r.tokens[$r.tokens.length-1],n.range[0]===e&&"Punctuator"===n.type&&("/"===n.value||"/="===n.value)&&$r.tokens.pop()),$r.tokens.push({type:"RegularExpression",value:r.literal,regex:r.regex,range:[e,Cr],loc:t})),r}function C(e){return e.type===Er.Identifier||e.type===Er.Keyword||e.type===Er.BooleanLiteral||e.type===Er.NullLiteral}function P(){var e,t;if(e=$r.tokens[$r.tokens.length-1],!e)return z();if("Punctuator"===e.type){if("]"===e.value)return S();if(")"===e.value)return t=$r.tokens[$r.openParenToken-1],!t||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?S():z();if("}"===e.value){if($r.tokens[$r.openCurlyToken-3]&&"Keyword"===$r.tokens[$r.openCurlyToken-3].type){if(t=$r.tokens[$r.openCurlyToken-4],!t)return S()}else{if(!$r.tokens[$r.openCurlyToken-4]||"Keyword"!==$r.tokens[$r.openCurlyToken-4].type)return S();if(t=$r.tokens[$r.openCurlyToken-5],!t)return z()}return jr.indexOf(t.value)>=0?S():z()}return z()}return"Keyword"===e.type&&"this"!==e.value?z():S()}function I(){var e;return Cr>=Br?{type:Er.EOF,lineNumber:Pr,lineStart:Ir,start:Cr,end:Cr,range:[Cr,Cr]}:(e=Ar.charCodeAt(Cr),i(e)?_():40===e||41===e||59===e?S():39===e||34===e?k():46===e?r(Ar.charCodeAt(Cr+1))?O():S():r(e)?O():$r.tokenize&&47===e?P():S())}function N(){var e,t,r,n;return e={start:{line:Pr,column:Cr-Ir}},t=I(),e.end={line:Pr,column:Cr-Ir},t.type!==Er.EOF&&(r=Ar.slice(t.start,t.end),n={type:xr[t.type],value:r,range:[t.start,t.end],loc:e},t.regex&&(n.regex={pattern:t.regex.pattern,flags:t.regex.flags}),$r.tokens.push(n)),t}function U(){var e;return Hr=!0,Ur=Cr,Lr=Pr,qr=Ir,g(),e=Jr,Fr=Cr,Gr=Pr,Wr=Ir,Jr="undefined"!=typeof $r.tokens?N():I(),Hr=!1,e}function L(){Hr=!0,g(),Ur=Cr,Lr=Pr,qr=Ir,Fr=Cr,Gr=Pr,Wr=Ir,Jr="undefined"!=typeof $r.tokens?N():I(),Hr=!1}function q(e){if($r.deps)for(var t=e.length,r=0;t>r;r++)F(e[r])}function F(e){if($r.deps&&e.type===Or.Literal){for(var t=0;t<$r.deps.length;t++)if($r.deps[t].value===e.value)return;$r.deps.push(e)}}function G(e,t){if($r.deps){var r=t.length;if("importScripts"===e.name)q(t);else if("Worker"===e.name)F(t[0]);else if("require"===e.name){var n=t[0];n.type===Or.ArrayExpression?($r.envs.node=!0,q(n.elements)):n.type===Or.Literal&&($r.envs.node=!0,F(n)),r>1&&(n=t[1],n.type===Or.ArrayExpression&&($r.envs.node=!0,q(n.elements)))}else"requirejs"===e.name?(n=t[0],n.type===Or.ArrayExpression&&($r.envs.amd=!0,q(n.elements))):"define"===e.name&&r>1&&(n=t[0],n.type===Or.Literal&&(n=t[1]),n.type===Or.ArrayExpression&&($r.envs.amd=!0,q(n.elements)))}}function W(){this.line=Gr,this.column=Fr-Wr}function H(){this.start=new W,this.end=null}function B(e){this.start={line:e.lineNumber,column:e.start-e.lineStart},this.end=null}function J(){$r.loc&&(this.loc=new H),$r.range&&(this.range=[Fr,0]),$r.directSourceFile&&(this.sourceFile=$r.directSourceFile)}function V(e){$r.loc&&(this.loc=new B(e)),$r.range&&(this.range=[e.start,0]),$r.directSourceFile&&(this.sourceFile=$r.directSourceFile)}function $(e,t,r,n){var o=new Error("Line "+e+": "+r);if(o.index=t,o.lineNumber=e,o.column=t-(Hr?Ir:qr)+1,o.description=r,n){var s=n;2===n.type&&$r&&Array.isArray($r.tokens)&&$r.tokens.length>0&&(s=$r.tokens[$r.tokens.length-1]),o.index="number"==typeof s.start?s.start:s.range[0],o.token=s.value,o.end="number"==typeof s.end?s.end:s.range[1]}return o}function X(e){var r,n;throw r=Array.prototype.slice.call(arguments,1),n=e.replace(/%(\d)/g,function(e,n){return t(n0&&(t=$r.tokens[$r.tokens.length-2]),Z(t,Mr.MissingToken,r)}else t.type!==Er.EOF&&($r.tokens&&$r.tokens.length>0&&(t=$r.tokens[$r.tokens.length-2]),Z(t,Mr.MissingToken,","));else et(",")}function rt(e){var t=U();(t.type!==Er.Keyword||t.value!==e)&&Q(t)}function nt(e){return Jr.type===Er.Punctuator&&Jr.value===e}function ot(e){return Jr.type===Er.Keyword&&Jr.value===e}function st(){var e;return Jr.type!==Er.Punctuator?!1:(e=Jr.value,"="===e||"*="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function at(){try{if(59===Ar.charCodeAt(Fr)||nt(";"))return void U();if(Nr)return;if(Ur=Fr,Lr=Gr,qr=Wr,Jr.type!==Er.EOF&&!nt("}")){var e=Jr;$r.errors&&vr(Wr),Q(e)}}catch(t){if($r.errors)return void gr(t);throw t}}function it(e){return e.type===Or.Identifier||e.type===Or.MemberExpression}function lt(){var e=[],t=new J;for(et("[");!nt("]");)nt(",")?(U(),e.push(null)):(e.push(Mt()),nt("]")||et(","));return U(),t.finishArrayExpression(e)}function ct(e,t){var r,n,o=new J;return r=zr,n=nr(),t&&zr&&d(e[0].name)&&Z(t,Mr.StrictParamName),zr=r,o.finishFunctionExpression(null,e,[],n)}function pt(){var e,t=new J;return e=U(),e.type===Er.StringLiteral||e.type===Er.NumericLiteral?(zr&&e.octal&&Z(e,Mr.StrictOctalLiteral),t.finishLiteral(e)):t.finishIdentifier(e.value)}function dt(){var e,t,r,n,o,s=new J;return e=Jr,e.type===Er.Identifier?(r=pt(),"get"!==e.value||nt(":")||nt("(")?"set"!==e.value||nt(":")||nt("(")?Tr(e,r,s):(t=pt(),et("("),e=Jr,e.type!==Er.Identifier?(et(")"),Z(e),n=ct([])):(o=[Ct()],et(")"),n=ct(o,e)),s.finishProperty("set",t,n,!1,!1)):(t=pt(),et("("),et(")"),n=ct([]),s.finishProperty("get",t,n,!1,!1))):e.type!==Er.EOF&&e.type!==Er.Punctuator?Tr(e,pt(),s):void Q(e)}function ut(){var e,t,r,n,o=[],s={},a=String,i=new J;for(et("{");!nt("}");)e=dt(),null!=e&&"undefined"!=typeof e&&(t=e.key.type===Or.Identifier?e.key.name:a(e.key.value),n="init"===e.kind?Rr.Data:"get"===e.kind?Rr.Get:Rr.Set,r="$"+t,Object.prototype.hasOwnProperty.call(s,r)?(s[r]===Rr.Data?zr&&n===Rr.Data?Y(Mr.StrictDuplicateProperty):n!==Rr.Data&&Y(Mr.AccessorDataProperty):n===Rr.Data?Y(Mr.AccessorDataProperty):s[r]&n&&Y(Mr.AccessorGetSet),s[r]|=n):s[r]=n,o.push(e),nt("}")||tt("}"));return et("}"),i.finishObjectExpression(o)}function ht(){var e;return et("("),nt(")")?(U(),kr.ArrowParameterPlaceHolder):(++Vr.parenthesisCount,e=Dt(),et(")"),e)}function ft(){var e,t,r,n;if(nt("("))return ht();if(nt("["))return lt();if(nt("{"))return ut();if(e=Jr.type,n=new J,e===Er.Identifier)r=n.finishIdentifier(U().value);else if(e===Er.StringLiteral||e===Er.NumericLiteral)zr&&Jr.octal&&Z(Jr,Mr.StrictOctalLiteral),r=n.finishLiteral(U());else if(e===Er.Keyword){if(ot("function"))return lr();ot("this")?(U(),r=n.finishThisExpression()):Q(U())}else e===Er.BooleanLiteral?(t=U(),t.value="true"===t.value,r=n.finishLiteral(t)):e===Er.NullLiteral?(t=U(),t.value=null,r=n.finishLiteral(t)):nt("/")||nt("/=")?(Cr=Fr,t="undefined"!=typeof $r.tokens?z():A(),U(),r=n.finishLiteral(t)):Q(U());return r}function mt(){var e=[];if(et("("),!nt(")"))for(;Br>Fr&&(e.push(Mt()),!nt(")"));)tt(")");return mr(")"),e}function gt(){var e,t=new J;try{e=U(),C(e)||($r.errors&&_r(e),Q(e))}catch(r){if($r.errors)return gr(r),Sr(t,Or.Identifier);throw r}return t.finishIdentifier(e.value)}function bt(){return et("."),gt()}function yt(){var e;return et("["),e=Dt(),et("]"),e}function vt(){var e,t,r=new J;return rt("new"),e=_t(),t=nt("(")?mt():[],r.finishNewExpression(e,t)}function wt(){var e,t,r,n,o=Vr.allowIn;for(n=Jr,Vr.allowIn=!0,e=ot("new")?vt():ft();;)if(nt("."))r=bt(),e=new V(n).finishMemberExpression(".",e,r);else if(nt("("))t=mt(),e=new V(n).finishCallExpression(e,t);else{if(!nt("["))break;r=yt(),e=new V(n).finishMemberExpression("[",e,r)}return Vr.allowIn=o,e}function _t(){var e,r,n;for(t(Vr.allowIn,"callee of new expression always allow in keyword."),n=Jr,e=ot("new")?vt():ft();;)if(nt("["))r=yt(),e=new V(n).finishMemberExpression("[",e,r);else{if(!nt("."))break;r=bt(),e=new V(n).finishMemberExpression(".",e,r)}return e}function St(){var e,t,r=Jr;return e=wt(),Nr||Jr.type!==Er.Punctuator||(nt("++")||nt("--"))&&(zr&&e.type===Or.Identifier&&d(e.name)&&Y(Mr.StrictLHSPostfix),it(e)||Y(Mr.InvalidLHSInAssignment),t=U(),e=new V(r).finishPostfixExpression(t.value,e)),e}function Tt(){var e,t,r;return Jr.type!==Er.Punctuator&&Jr.type!==Er.Keyword?t=St():nt("++")||nt("--")?(r=Jr,e=U(),t=Tt(),zr&&t.type===Or.Identifier&&d(t.name)&&Y(Mr.StrictLHSPrefix),it(t)||Y(Mr.InvalidLHSInAssignment),t=new V(r).finishUnaryExpression(e.value,t)):nt("+")||nt("-")||nt("~")||nt("!")?(r=Jr,e=U(),t=Tt(),t=new V(r).finishUnaryExpression(e.value,t)):ot("delete")||ot("void")||ot("typeof")?(r=Jr,e=U(),t=Tt(),t=new V(r).finishUnaryExpression(e.value,t),zr&&"delete"===t.operator&&t.argument.type===Or.Identifier&&Y(Mr.StrictDelete)):t=St(),t}function Et(e,t){var r=0;if(e.type!==Er.Punctuator&&e.type!==Er.Keyword)return 0;switch(e.value){case"||":r=1;break;case"&&":r=2;break;case"|":r=3;break;case"^":r=4;break;case"&":r=5;break;case"==":case"!=":case"===":case"!==":r=6;break;case"<":case">":case"<=":case">=":case"instanceof":r=7;break;case"in":r=t?7:0;break;case"<<":case">>":case">>>":r=8;break;case"+":case"-":r=9;break;case"*":case"/":case"%":r=11}return r}function xt(){var e,t,r,n,o,s,a,i,l,c;if(e=Jr,l=Tt(),l===kr.ArrowParameterPlaceHolder)return l;if(n=Jr,o=Et(n,Vr.allowIn),0===o)return l;for(n.prec=o,U(),t=[e,Jr],a=Tt(),s=[l,n,a];(o=Et(Jr,Vr.allowIn))>0;){for(;s.length>2&&o<=s[s.length-2].prec;)a=s.pop(),i=s.pop().value,l=s.pop(),t.pop(),r=new V(t[t.length-1]).finishBinaryExpression(i,l,a),s.push(r);n=U(),n.prec=o,s.push(n),t.push(Jr),r=Tt(),s.push(r)}for(c=s.length-1,r=s[c],t.pop();c>1;)r=new V(t.pop()).finishBinaryExpression(s[c-1].value,s[c-2],r),c-=2;return r}function jt(){var e,t,r,n,o;return o=Jr,e=xt(),e===kr.ArrowParameterPlaceHolder?e:(nt("?")&&(U(),t=Vr.allowIn,Vr.allowIn=!0,r=Mt(),Vr.allowIn=t,et(":"),n=Mt(),e=new V(o).finishConditionalExpression(e,r,n)),e)}function Ot(){return nt("{")?nr():Mt()}function kt(e){var t,r,n,o,s,a,i,l,c;for(o=[],s=[],a=0,l=null,i={paramSet:{}},t=0,r=e.length;r>t;t+=1)if(n=e[t],n.type===Or.Identifier)o.push(n),s.push(null),or(i,n,n.name);else{if(n.type!==Or.AssignmentExpression)return null;o.push(n.left),s.push(n.right),++a,or(i,n.left,n.left.name)}return i.message===Mr.StrictParamDupe&&(c=zr?i.stricted:i.firstRestricted,Q(c,i.message)),0===a&&(s=[]),{params:o,defaults:s,rest:l,stricted:i.stricted,firstRestricted:i.firstRestricted,message:i.message}}function Rt(e,t){var r,n;return et("=>"),r=zr,n=Ot(),zr&&e.firstRestricted&&Q(e.firstRestricted,e.message),zr&&e.stricted&&Z(e.stricted,e.message),zr=r,t.finishArrowFunctionExpression(e.params,e.defaults,n,n.type!==Or.BlockStatement)}function Mt(){var e,t,r,n,o,s;return e=Vr.parenthesisCount,s=Jr,t=Jr,r=jt(),r!==kr.ArrowParameterPlaceHolder&&!nt("=>")||Vr.parenthesisCount!==e&&Vr.parenthesisCount!==e+1||(r.type===Or.Identifier?o=kt([r]):r.type===Or.AssignmentExpression?o=kt([r]):r.type===Or.SequenceExpression?o=kt(r.expressions):r===kr.ArrowParameterPlaceHolder&&(o=kt([])),!o)?(st()&&(it(r)||Y(Mr.InvalidLHSInAssignment),zr&&r.type===Or.Identifier&&d(r.name)&&Z(t,Mr.StrictLHSAssignment),t=U(),n=Mt(),r=new V(s).finishAssignmentExpression(t.value,r,n)),r):Rt(o,new V(s))}function Dt(){var e,t,r=Jr;if(e=Mt(),nt(",")){for(t=[e];Br>Fr&&nt(",");)U(),t.push(Mt());e=new V(r).finishSequenceExpression(t)}return e}function At(){for(var e,t=[],r=Cr;Br>Fr&&!nt("}")&&(e=cr(),"undefined"!=typeof e&&r!==Cr);)t.push(e),r=Cr;return t}function zt(){var e,t=new J;return et("{"),e=At(),mr("}"),t.finishBlockStatement(e)}function Ct(){var e,t=new J;return e=U(),e.type!==Er.Identifier&&(zr&&e.type===Er.Keyword&&p(e.value)?Z(e,Mr.StrictReservedWord):Q(e)),t.finishIdentifier(e.value)}function Pt(e){var t,r=null,n=new J;return t=Ct(),zr&&d(t.name)&&Y(Mr.StrictVarName),"const"===e?(et("="),r=Mt()):nt("=")&&(U(),r=Mt()),n.finishVariableDeclarator(t,r)}function It(e){var t=[];do{if(t.push(Pt(e)),!nt(","))break;U()}while(Br>Fr);return t}function Nt(e){var t;return rt("var"),t=It(),at(),e.finishVariableDeclaration(t,"var")}function Ut(e){var t,r=new J;return rt(e),t=It(e),at(),r.finishVariableDeclaration(t,e)}function Lt(){var e=new J;return et(";"),e.finishEmptyStatement()}function qt(e){var t=Dt();return at(),t||(t=Sr(e)),e.finishExpressionStatement(t)}function Ft(e){var t,r,n;return rt("if"),et("("),t=Dt(),mr(")","{"),r=rr(),ot("else")?(U(),n=rr()):n=null,e.finishIfStatement(t,r,n)}function Gt(e){var t,r,n;return rt("do"),n=Vr.inIteration,Vr.inIteration=!0,t=rr(),Vr.inIteration=n,rt("while"),et("("),r=Dt(),mr(")","{"),nt(";")&&U(),e.finishDoWhileStatement(t,r)}function Wt(e){var t,r,n;return rt("while"),et("("),t=Dt(),mr(")","{"),n=Vr.inIteration,Vr.inIteration=!0,r=rr(),Vr.inIteration=n,e.finishWhileStatement(t,r)}function Ht(){var e,t,r=new J;return e=U(),t=It(),r.finishVariableDeclaration(t,e.value)}function Bt(e){var t,r,n,o,s,a,i,l=Vr.allowIn;return t=r=n=null,rt("for"),et("("),nt(";")?U():(ot("var")||ot("let")?(Vr.allowIn=!1,t=Ht(),Vr.allowIn=l,1===t.declarations.length&&ot("in")&&(U(),o=t,s=Dt(),t=null)):(Vr.allowIn=!1,t=Dt(),Vr.allowIn=l,ot("in")&&(it(t)||Y(Mr.InvalidLHSInForIn),U(),o=t,s=Dt(),t=null)),"undefined"==typeof o&&et(";")),"undefined"==typeof o&&(nt(";")||(r=Dt()),et(";"),nt(")")||(n=Dt())),mr(")","{"),i=Vr.inIteration,Vr.inIteration=!0,a=rr(),Vr.inIteration=i,"undefined"==typeof o?e.finishForStatement(t,r,n,a):e.finishForInStatement(o,s,a)}function Jt(e){var t,r=null;if(rt("continue"),59===Ar.charCodeAt(Fr))return U(),Vr.inIteration||X(Mr.IllegalContinue),e.finishContinueStatement(null);if(Nr)return Vr.inIteration||X(Mr.IllegalContinue),e.finishContinueStatement(null);if(Jr.type===Er.Identifier){var n=Jr;r=Ct(),t="$"+r.name,Object.prototype.hasOwnProperty.call(Vr.labelSet,t)||Z(n,Mr.UnknownLabel,r.name)}return at(),null!==r||Vr.inIteration||X(Mr.IllegalContinue),e.finishContinueStatement(r)}function Vt(e){var t,r=null;return rt("break"),59===Ar.charCodeAt(Ur)?(U(),Vr.inIteration||Vr.inSwitch||X(Mr.IllegalBreak),e.finishBreakStatement(null)):Nr?(Vr.inIteration||Vr.inSwitch||X(Mr.IllegalBreak),e.finishBreakStatement(null)):(Jr.type===Er.Identifier&&(r=Ct(),t="$"+r.name,Object.prototype.hasOwnProperty.call(Vr.labelSet,t)||X(Mr.UnknownLabel,r.name)),at(),null!==r||Vr.inIteration||Vr.inSwitch||X(Mr.IllegalBreak),e.finishBreakStatement(r))}function $t(e){var t=null,r=Jr;return rt("return"),Vr.inFunctionBody||Z(r,Mr.IllegalReturn,r.value),32===Ar.charCodeAt(Ur)&&i(Ar.charCodeAt(Ur+1))?(t=Dt(),at(),e.finishReturnStatement(t)):Nr?e.finishReturnStatement(null):(nt(";")||nt("}")||Jr.type===Er.EOF||(t=Dt()),at(),e.finishReturnStatement(t))}function Xt(e){var t,r;return zr&&Y(Mr.StrictModeWith),rt("with"),et("("),t=Dt(),mr(")","{"),r=rr(),e.finishWithStatement(t,r)}function Yt(){var e,t,r=[],n=new J;ot("default")?(U(),e=null):(rt("case"),e=Dt()),nt(":")&&U();for(var o=Cr;Br>Fr&&!(nt("}")||ot("default")||ot("case"))&&(t=rr(),"undefined"!=typeof t&&null!==t)&&(r.push(t),o!==Cr);)o=Cr;return n.finishSwitchCase(e,r)}function Kt(e){var t,r,n,o,s;if(rt("switch"),et("("),t=Dt(),et(")"),et("{"),r=[],nt("}"))return U(),e.finishSwitchStatement(t,r);for(o=Vr.inSwitch,Vr.inSwitch=!0,s=!1;Br>Fr&&!nt("}");)n=Yt(),null===n.test&&(s&&X(Mr.MultipleDefaultsInSwitch),s=!0),r.push(n);return Vr.inSwitch=o,et("}"),e.finishSwitchStatement(t,r)}function Qt(e){var t;return rt("throw"),Nr&&X(Mr.NewlineAfterThrow),t=Dt(),at(),e.finishThrowStatement(t)}function Zt(){var e,t,r=new J;return rt("catch"),et("("),nt(")")&&Q(Jr),e=Ct(),zr&&d(e.name)&&Y(Mr.StrictCatchVariable),et(")"),t=zt(),r.finishCatchClause(e,t)}function er(e){var t,r=[],n=null;return rt("try"),t=zt(),ot("catch")&&r.push(Zt()),ot("finally")&&(U(),n=zt()),0!==r.length||n||X(Mr.NoCatchOrFinally),e.finishTryStatement(t,[],r,n)}function tr(e){return rt("debugger"),at(),e.finishDebuggerStatement()}function rr(){var e,t,r,n,o=Jr.type;if(o===Er.EOF&&Q(Jr),o===Er.Punctuator&&"{"===Jr.value)return zt();if(n=new J,o===Er.Punctuator)switch(Jr.value){case";":return Lt(n);case"(":return qt(n)}else if(o===Er.Keyword)switch(Jr.value){case"break":return Vt(n);case"continue":return Jt(n);case"debugger":return tr(n);case"do":return Gt(n);case"for":return Bt(n);case"function":return ir(n);case"if":return Ft(n);case"return":return $t(n);case"switch":return Kt(n);case"throw":return Qt(n);case"try":return er(n);case"var":return Nt(n);case"while":return Wt(n);case"with":return Xt(n)}return e=Dt(),e&&e.type===Or.Identifier&&nt(":")?(U(),r="$"+e.name,Object.prototype.hasOwnProperty.call(Vr.labelSet,r)&&X(Mr.Redeclaration,"Label",e.name),Vr.labelSet[r]=!0,t=rr(),delete Vr.labelSet[r],n.finishLabeledStatement(e,t)):(at(),e||(e=Sr(n)),n.finishExpressionStatement(e))}function nr(){var e,t,r,n,o,s,a,i,l,c=[],p=new J;for(et("{");Br>Fr&&Jr.type===Er.StringLiteral&&(t=Jr,e=cr(),c.push(e),e.expression.type===Or.Literal);)r=Ar.slice(t.start+1,t.end-1),"use strict"===r?(zr=!0,n&&Z(n,Mr.StrictOctalLiteral)):!n&&t.octal&&(n=t);o=Vr.labelSet,s=Vr.inIteration,a=Vr.inSwitch,i=Vr.inFunctionBody,l=Vr.parenthesizedCount,Vr.labelSet={},Vr.inIteration=!1,Vr.inSwitch=!1,Vr.inFunctionBody=!0,Vr.parenthesizedCount=0;for(var d=Cr;Br>Cr&&!nt("}")&&(e=cr(),"undefined"!=typeof e&&null!=e)&&(c.push(e),d!==Cr);)d=Cr;return mr("}"),Vr.labelSet=o,Vr.inIteration=s,Vr.inSwitch=a,Vr.inFunctionBody=i,Vr.parenthesizedCount=l,p.finishBlockStatement(c)}function or(e,t,r){var n="$"+r;zr?(d(r)&&(e.stricted=t,e.message=Mr.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=Mr.StrictParamDupe)):e.firstRestricted||(d(r)?(e.firstRestricted=t,e.message=Mr.StrictParamName):p(r)?(e.firstRestricted=t,e.message=Mr.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.firstRestricted=t,e.message=Mr.StrictParamDupe)),e.paramSet[n]=!0}function sr(e){var t,r,n;return t=Jr,r=Ct(),or(e,t,t.value),nt("=")&&(U(),n=Mt(),++e.defaultCount),e.params.push(r),e.defaults.push(n),!nt(")")}function ar(e){var t;if(t={params:[],defaultCount:0,defaults:[],firstRestricted:e},et("("),!nt(")"))for(t.paramSet={};Br>Fr&&sr(t);)et(",");return et(")"),0===t.defaultCount&&(t.defaults=[]),{params:t.params,defaults:t.defaults,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}}function ir(){var e,t,r,n,o,s,a,i,l=[],c=[],u=new J;return rt("function"),r=Jr,e=Ct(),zr?d(r.value)&&Z(r,Mr.StrictFunctionName):d(r.value)?(s=r,a=Mr.StrictFunctionName):p(r.value)&&(s=r,a=Mr.StrictReservedWord),o=ar(s),l=o.params,c=o.defaults,n=o.stricted,s=o.firstRestricted,o.message&&(a=o.message),i=zr,t=nr(),zr&&s&&Q(s,a),zr&&n&&Z(n,a),zr=i,u.finishFunctionDeclaration(e,l,c,t)}function lr(){var e,t,r,n,o,s,a,i=null,l=[],c=[],u=new J;return rt("function"),nt("(")||(e=Jr,i=Ct(),zr?d(e.value)&&Z(e,Mr.StrictFunctionName):d(e.value)?(r=e,n=Mr.StrictFunctionName):p(e.value)&&(r=e,n=Mr.StrictReservedWord)),o=ar(r),l=o.params,c=o.defaults,t=o.stricted,r=o.firstRestricted,o.message&&(n=o.message),a=zr,s=nr(),zr&&r&&Q(r,n),zr&&t&&Z(t,n),zr=a,u.finishFunctionExpression(i,l,c,s)}function cr(){if(Jr.type===Er.Keyword)switch(Jr.value){case"const":case"let":return Ut(Jr.value);case"function":return ir();default:return rr()}return Jr.type!==Er.EOF?rr():void 0}function pr(){for(var e,t,r,n,o=[];Br>Fr&&(t=Jr,t.type===Er.StringLiteral)&&(e=cr(),o.push(e),e.expression.type===Or.Literal);)r=Ar.slice(t.start+1,t.end-1),"use strict"===r?(zr=!0,n&&Z(n,Mr.StrictOctalLiteral)):!n&&t.octal&&(n=t);for(var s=Cr;Br>Fr&&(e=cr(),"undefined"!=typeof e&&null!==e)&&(o.push(e),s!==Cr);)s=Cr;return o}function dr(){var e,t;return L(),t=new J,zr=!1,e=pr(),t.finishProgram(e)}function ur(){var e,t,r,n=[];for(e=0;e<$r.tokens.length;++e)t=$r.tokens[e],r={type:t.type,value:t.value},t.regex&&(r.regex={pattern:t.regex.pattern,flags:t.regex.flags}),$r.range&&(r.range=t.range),$r.loc&&(r.loc=t.loc),n.push(r);$r.tokens=n}function hr(e,t){var r,n;r=String,"string"==typeof e||e instanceof String||(e=r(e)),Ar=e,Cr=0,Pr=Ar.length>0?1:0,Ir=0,Fr=Cr,Gr=Pr,Wr=Ir,Br=Ar.length,Jr=null,Vr={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},$r={},t=t||{},t.tokens=!0,$r.tokens=[],$r.tokenize=!0,$r.openParenToken=-1,$r.openCurlyToken=-1,$r.range="boolean"==typeof t.range&&t.range,$r.loc="boolean"==typeof t.loc&&t.loc,"boolean"==typeof t.comment&&t.comment&&($r.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&($r.errors=[]);try{if(L(),Jr.type===Er.EOF)return $r.tokens;for(U();Jr.type!==Er.EOF;)try{U()}catch(o){if($r.errors){$r.errors.push(o);break}throw o}ur(),n=$r.tokens,"undefined"!=typeof $r.comments&&(n.comments=$r.comments),"undefined"!=typeof $r.errors&&(n.errors=$r.errors)}catch(s){throw s}finally{$r={}}return n}function fr(e,t){var r,n;n=String,"string"==typeof e||e instanceof String||(e=n(e)),Ar=e,Cr=0,Pr=Ar.length>0?1:0,Ir=0,Fr=Cr,Gr=Pr,Wr=Ir,Br=Ar.length,Jr=null,Vr={allowIn:!0,labelSet:{},parenthesisCount:0,inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},$r={},"undefined"!=typeof t&&("boolean"==typeof t.deps&&t.deps&&($r.deps=[],$r.envs=Object.create(null)),$r.range="boolean"==typeof t.range&&t.range,$r.loc="boolean"==typeof t.loc&&t.loc,$r.attachComment="boolean"==typeof t.attachComment&&t.attachComment,$r.loc&&null!==t.source&&void 0!==t.source&&($r.source=n(t.source)),"boolean"==typeof t.tokens&&t.tokens&&($r.tokens=[]),"boolean"==typeof t.comment&&t.comment&&($r.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&($r.errors=[],$r.parseStatement=rr,$r.parseExpression=Dt,rr=yr(rr),Dt=br(Dt)),$r.attachComment&&($r.range=!0,$r.comments=[],$r.bottomRightStack=[],$r.trailingComments=[],$r.leadingComments=[]),$r.directSourceFile=t.directSourceFile); +try{r=dr(),"undefined"!=typeof $r.comments&&(r.comments=$r.comments),"undefined"!=typeof $r.tokens&&(ur(),r.tokens=$r.tokens),"undefined"!=typeof $r.errors&&(r.errors=$r.errors),"undefined"!=typeof $r.deps&&(r.dependencies=$r.deps,r.environments=$r.envs)}catch(o){throw o}finally{"undefined"!=typeof $r.errors&&(rr=$r.parseStatement,Dt=$r.parseExpression),$r={}}return r}function mr(e,t){try{et(e)}catch(r){if(!$r.errors)throw r;gr(r),t&&Ar[r.index]===t&&(Cr=r.index,L())}}function gr(e){for(var t=$r.errors.length,r=0;t>r;r++){var n=$r.errors[r];if(n.index===e.index&&n.message===e.message)return}$r.errors.push(e)}function br(e){return function(){try{return e.apply(null,arguments)}catch(t){gr(t)}}}function yr(e){return function(){$r.statementStart=Cr;try{return e.apply(null,arguments)}catch(t){gr(t)}}}function vr(e){for(var t=e;t>-1&&";"!==Ar[t]&&"\n"!==Ar[t];)t--;if(!(t<=$r.statementStart)){var r=!1;$r.lastRewindLocation?r=!0:$r.lastRewindLocation!==t&&(r=!0),r&&(Cr=t,wr(e),L(),$r.lastRewindLocation=Cr)}}function wr(e,t){for(var r=$r.tokens.length-1;r>-1;){var n=$r.tokens[r];if(n.range[0]",xr[Er.Identifier]="Identifier",xr[Er.Keyword]="Keyword",xr[Er.NullLiteral]="Null",xr[Er.NumericLiteral]="Numeric",xr[Er.Punctuator]="Punctuator",xr[Er.StringLiteral]="String",xr[Er.RegularExpression]="RegularExpression",jr=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],Or={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},kr={ArrowParameterPlaceHolder:{type:"ArrowParameterPlaceHolder"}},Rr={Data:1,Get:2,Set:4},Mr={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",MissingToken:"Missing expected '%0'"},Dr={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ƖƘ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-͓Ͷͷͺ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-ΔΣ-ϵϷ-ҁҊ-ŌÆŌ±-Õ–Õ™Õ”-ևא-×Ŗ×°-ײؠ-يٮٯٱ-Ū“Ū•Ū„Ū¦Ū®ŪÆŪŗ-ۼۿܐܒ-ÜÆŻ-ބޱߊ-ߪߓߵߺࠀ-ą •ą šą ¤ą Øą”€-ą”˜ą¢ -ࢲऄ-ą¤¹ą¤½ą„ą„˜-ą„”ą„±-ঀঅ-ą¦Œą¦ą¦ą¦“-নপ-রলশ-ą¦¹ą¦½ą§Žą§œą§ą§Ÿ-৔ৰৱਅ-ąØŠąØąØąØ“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ą©œą©žą©²-ą©“ąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-રલળવ-હઽૐૠ૔ଅ-ą¬Œą¬ą¬ą¬“-ନପ-ରଲଳଵ-ą¬¹ą¬½ą­œą­ą­Ÿ-ą­”ą­±ą®ƒą®…-ą®Šą®Ž-ஐஒ-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-பம-ஹௐఅ-ą°Œą°Ž-ఐఒ-ą°Øą°Ŗ-ą°¹ą°½ą±˜ą±™ą± ą±”ą²…-ą²Œą²Ž-ಐಒ-ನಪ-ಳವ-ą²¹ą²½ą³žą³ ą³”ą³±ą³²ą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½ąµŽąµ ąµ”ąµŗ-ൿඅ-ą¶–ą¶š-නඳ-රලව-ෆก-ะาำเ-ą¹†ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ຟດ-ຣຄວສຫອ-ະາຳຽເ-ą»„ą»†ą»œ-ą»Ÿą¼€ą½€-ཇཉ-ཬྈ-ą¾Œį€€-ဪဿၐ-į•įš-įį”į„į¦į®-ၰၵ-į‚į‚Žį‚ -įƒ…įƒ‡įƒįƒ-ჺჼ-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -ኈኊ-įŠįŠ-ኰኲ-ኵኸ-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšįŽ€-įŽįŽ -į“į-ᙬᙯ-į™æįš-ᚚᚠ-ᛪᛮ-į›øįœ€-įœŒįœŽ-įœ‘įœ -įœ±į€-į‘į -į¬į®-į°įž€-įž³įŸ—įŸœį  -ᔷᢀ-ᢨᢪᢰ-ᣵᤀ-į¤žį„-į„­į„°-ᄓᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-į­‹į®ƒ-ᮠᮮᮯᮺ-ᯄᰀ-į°£į±-į±į±š-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᓀ-į¶æįø€-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-ώᾀ-ᾓᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ΐῶ-ῼⁱⁿₐ-ā‚œā„‚ā„‡ā„Š-ā„“ā„•ā„™-ā„ā„¤ā„¦ā„Øā„Ŗ-ℭℯ-ℹℼ-ℿⅅ-ā…‰ā…Žā… -ā†ˆā°€-Ⱞⰰ-ā±žā± -ⳤⳫ-ⳮⳲⳳⓀ-ā“„ā“§ā“­ā“°-ⵧⵯⶀ-ā¶–ā¶ -ⶦⶨ-ⶮⶰ-ā¶¶ā¶ø-ⶾⷀ-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žāøÆć€…-怇怔-怩怱-〵〸-〼ぁ-悖悝-ć‚Ÿć‚”-ヺー-ćƒæć„…-愭愱-憎憠-ㆺㇰ-ㇿ㐀-䶵一-éæŒź€€-ź’Œź“-ꓽꔀ-ꘌꘐ-ź˜Ÿź˜Ŗź˜«ź™€-ꙮꙿ-źšźš -ź›Æźœ—-ꜟꜢ-źžˆźž‹-źžŽźž-źž­źž°źž±źŸ·-ꠁꠃ-ź …ź ‡-ꠊꠌ-ꠢꔀ-ꔳꢂ-ꢳꣲ-ꣷꣻꤊ-꤄ꤰ-ꄆꄠ-ꄼꦄ-ź¦²ź§ź§ -ꧤꧦ-ź§Æź§ŗ-ꧾꨀ-ꨨꩀ-ź©‚ź©„-ź©‹ź© -ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ź«ź« -ꫪꫲ-꫓ꬁ-ꬆꬉ-ź¬Žź¬‘-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ź­Ÿź­¤ź­„źÆ€-ꯢ가-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-龎ff-stﬓ-ļ¬—ļ¬ļ¬Ÿ-ﬨשׁ-זּטּ-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ﮱﯓ-ﵐ-ļ¶ļ¶’-ﷇﷰ-ﷻﹰ-﹓ﹶ-ﻼ4-Za-zヲ-하-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ƖƘ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-͓Ͷͷͺ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-ΔΣ-ϵϷ-ҁ҃-Ņ‡ŅŠ-ŌÆŌ±-Õ–Õ™Õ”-և֑-ׇֽֿׁׂׅׄא-×Ŗ×°-ײؐ-ؚؠ-٩ٮ-Ū“Ū•-ۜ۟-ŪØŪŖ-ۼۿܐ-ŻŠŻ-ޱ߀-ߵߺࠀ-ą ­ą”€-ą”›ą¢ -ࢲࣤ-ą„£ą„¦-ą„Æą„±-ą¦ƒą¦…-ą¦Œą¦ą¦ą¦“-নপ-রলশ-হ়-ą§„ą§‡ą§ˆą§‹-ą§Žą§—ą§œą§ą§Ÿ-ৣ০-ৱਁ-ąØƒąØ…-ąØŠąØąØąØ“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ą©‚ą©‡ą©ˆą©‹-ą©ą©‘ą©™-ą©œą©žą©¦-ੵઁ-ąŖƒąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-રલળવ-હ઼-ૅે-ૉો-ą«ą«ą« -ૣ૦-૯ଁ-ą¬ƒą¬…-ą¬Œą¬ą¬ą¬“-ନପ-ରଲଳଵ-ହ଼-ą­„ą­‡ą­ˆą­‹-ą­ą­–ą­—ą­œą­ą­Ÿ-ୣ୦-ą­Æą­±ą®‚ą®ƒą®…-ą®Šą®Ž-ஐஒ-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-பம-ஹா-ூெ-ைொ-ąÆąÆąÆ—ąÆ¦-௯ఀ-ą°ƒą°…-ą°Œą°Ž-ఐఒ-ą°Øą°Ŗ-హఽ-ౄె-ైొ-ą±ą±•ą±–ą±˜ą±™ą± -ౣ౦-౯ಁ-ą²ƒą²…-ą²Œą²Ž-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-ą³ą³•ą³–ą³žą³ -ೣ೦-ą³Æą³±ą³²ą“-ą“ƒą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½-ൄെ-ൈൊ-ąµŽąµ—ąµ -ൣ൦-൯ൺ-ąµæą¶‚ą¶ƒą¶…-ą¶–ą¶š-නඳ-රලව-ą·†ą·Šą·-ą·”ą·–ą·˜-ෟ෦-෯ෲෳก-ąøŗą¹€-ą¹Žą¹-ą¹™ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ຟດ-ຣຄວສຫອ-ູົ-ຽເ-ą»„ą»†ą»ˆ-ą»ą»-ą»™ą»œ-ą»Ÿą¼€ą¼˜ą¼™ą¼ -༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ą¾—ą¾™-ྼ࿆က-၉ၐ-į‚į‚ -įƒ…įƒ‡įƒįƒ-ჺჼ-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -ኈኊ-įŠįŠ-ኰኲ-ኵኸ-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšį-įŸįŽ€-įŽįŽ -į“į-ᙬᙯ-į™æįš-ᚚᚠ-ᛪᛮ-į›øįœ€-įœŒįœŽ-įœ”įœ -įœ“į€-į“į -į¬į®-į°į²į³įž€-įŸ“įŸ—įŸœįŸįŸ -įŸ©į ‹-į į -᠙ᠠ-ᔷᢀ-ᢪᢰ-ᣵᤀ-į¤žį¤ -ᤫᤰ-᤻ᄆ-į„­į„°-ᄓᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-į©žį© -᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-į°·į±€-į±‰į±-ᱽ᳐-į³’į³”-ᳶ᳸᳹ᓀ-᷵᷼-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-ώᾀ-ᾓᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ΐῶ-įæ¼ā€Œā€ā€æā€ā”ā±āæā‚-ā‚œāƒ-⃜⃔⃄-āƒ°ā„‚ā„‡ā„Š-ā„“ā„•ā„™-ā„ā„¤ā„¦ā„Øā„Ŗ-ℭℯ-ℹℼ-ℿⅅ-ā…‰ā…Žā… -ā†ˆā°€-Ⱞⰰ-ā±žā± -ⳤⳫ-ⳳⓀ-ā“„ā“§ā“­ā“°-ⵧⵯ⵿-ā¶–ā¶ -ⶦⶨ-ⶮⶰ-ā¶¶ā¶ø-ⶾⷀ-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žā· -ⷿⸯ々-怇怔-〯〱-〵〸-〼ぁ-悖悙悚悝-ć‚Ÿć‚”-ヺー-ćƒæć„…-愭愱-憎憠-ㆺㇰ-ㇿ㐀-䶵一-éæŒź€€-ź’Œź“-ꓽꔀ-ꘌꘐ-ź˜«ź™€-꙯ꙓ-꙽ꙿ-źšźšŸ-ź›±źœ—-ꜟꜢ-źžˆźž‹-źžŽźž-źž­źž°źž±źŸ·-ꠧꔀ-ꔳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-ź„“ź„ -ꄼꦀ-ź§€ź§-꧙ꧠ-ꧾꨀ-ꨶꩀ-ź©ź©-꩙ꩠ-ꩶꩺ-ź«‚ź«›-ź«ź« -ꫯꫲ-꫶ꬁ-ꬆꬉ-ź¬Žź¬‘-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ź­Ÿź­¤ź­„źÆ€-ꯪ꯬꯭꯰-꯹가-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-龎ff-stﬓ-ļ¬—ļ¬-ﬨשׁ-זּטּ-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ﮱﯓ-ﵐ-ļ¶ļ¶’-ﷇﷰ-ﷻ︀-ļøļø -ļø­ļø³ļø“ļ¹-ļ¹ļ¹°-﹓ﹶ-ﻼ0-94-Z_a-zヲ-하-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ᅵ]")},V.prototype=J.prototype={processComment:function(){var e,t,r,n,o,s=$r.bottomRightStack,a=s[s.length-1];if(!(this.type===Or.Program&&this.body.length>0)){if($r.trailingComments.length>0){for(r=[],n=$r.trailingComments.length-1;n>=0;--n)o=$r.trailingComments[n],o.range[0]>=this.range[1]&&(r.unshift(o),$r.trailingComments.splice(n,1));$r.trailingComments=[]}else a&&a.trailingComments&&a.trailingComments[0].range[0]>=this.range[1]&&(r=a.trailingComments,delete a.trailingComments);if(a)for(;a&&a.range[0]>=this.range[0];)e=a,a=s.pop();if(e)e.leadingComments&&e.leadingComments[e.leadingComments.length-1].range[1]<=this.range[0]&&(this.leadingComments=e.leadingComments,e.leadingComments=void 0);else if($r.leadingComments.length>0)for(t=[],n=$r.leadingComments.length-1;n>=0;--n)o=$r.leadingComments[n],o.range[1]<=this.range[0]&&(t.unshift(o),$r.leadingComments.splice(n,1));t&&t.length>0&&(this.leadingComments=t),r&&r.length>0&&(this.trailingComments=r),s.push(this)}},finish:function(){$r.loc&&(this.loc.end={line:Lr,column:Ur-qr},$r.source&&(this.loc.source=$r.source)),$r.range&&(this.range[1]=Ur,this.start=this.range[0],this.end=Ur),$r.attachComment&&this.processComment()},finishArrayExpression:function(e){return this.type=Or.ArrayExpression,this.elements=e,this.finish(),this},finishArrowFunctionExpression:function(e,t,r,n){return this.type=Or.ArrowFunctionExpression,this.id=null,this.params=e,this.defaults=t,this.body=r,this.rest=null,this.generator=!1,this.expression=n,this.finish(),this},finishAssignmentExpression:function(e,t,r){return this.type=Or.AssignmentExpression,this.operator=e,this.left=t,this.right=r,this.finish(),this},finishBinaryExpression:function(e,t,r){return this.type="||"===e||"&&"===e?Or.LogicalExpression:Or.BinaryExpression,this.operator=e,this.left=t,this.right=r,this.finish(),this},finishBlockStatement:function(e){return this.type=Or.BlockStatement,this.body=e,this.finish(),this},finishBreakStatement:function(e){return this.type=Or.BreakStatement,this.label=e,this.finish(),this},finishCallExpression:function(e,t){return this.type=Or.CallExpression,this.callee=e,this.arguments=t,G(e,t),this.finish(),this},finishCatchClause:function(e,t){return this.type=Or.CatchClause,this.param=e,this.body=t,this.finish(),this},finishConditionalExpression:function(e,t,r){return this.type=Or.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r,this.finish(),this},finishContinueStatement:function(e){return this.type=Or.ContinueStatement,this.label=e,this.finish(),this},finishDebuggerStatement:function(){return this.type=Or.DebuggerStatement,this.finish(),this},finishDoWhileStatement:function(e,t){return this.type=Or.DoWhileStatement,this.body=e,this.test=t,this.finish(),this},finishEmptyStatement:function(){return this.type=Or.EmptyStatement,this.finish(),this},finishExpressionStatement:function(e){return this.type=Or.ExpressionStatement,this.expression=e,this.finish(),this},finishForStatement:function(e,t,r,n){return this.type=Or.ForStatement,this.init=e,this.test=t,this.update=r,this.body=n,this.finish(),this},finishForInStatement:function(e,t,r){return this.type=Or.ForInStatement,this.left=e,this.right=t,this.body=r?r:Sr(this,"Statement"),this.each=!1,this.finish(),this},finishFunctionDeclaration:function(e,t,r,n){return this.type=Or.FunctionDeclaration,this.id=e,this.params=t,this.defaults=r,this.body=n,this.rest=null,this.generator=!1,this.expression=!1,this.finish(),this},finishFunctionExpression:function(e,t,r,n){return this.type=Or.FunctionExpression,this.id=e,this.params=t,this.defaults=r,this.body=n,this.rest=null,this.generator=!1,this.expression=!1,this.finish(),this},finishIdentifier:function(e){return this.type=Or.Identifier,this.name=e,this.finish(),this},finishIfStatement:function(e,t,r){return this.type=Or.IfStatement,this.test=e,this.consequent=t?t:Sr(this,"Statement"),this.alternate=r,this.finish(),this},finishLabeledStatement:function(e,t){return this.type=Or.LabeledStatement,this.label=e,this.body=t,this.finish(),this},finishLiteral:function(e){return this.type=Or.Literal,this.value=e.value,this.raw=Ar.slice(e.start,e.end),e.regex&&(this.regex=e.regex),this.finish(),this},finishMemberExpression:function(e,t,r){return this.type=Or.MemberExpression,this.computed="["===e,this.object=t,this.property=r,this.finish(),this},finishNewExpression:function(e,t){return this.type=Or.NewExpression,this.callee=e,this.arguments=t,G(e,t),this.finish(),this},finishObjectExpression:function(e){return this.type=Or.ObjectExpression,this.properties=e,this.finish(),this},finishPostfixExpression:function(e,t){return this.type=Or.UpdateExpression,this.operator=e,this.argument=t,this.prefix=!1,this.finish(),this},finishProgram:function(e){return this.type=Or.Program,this.body=e,this.finish(),this},finishProperty:function(e,t,r,n,o){return this.type=Or.Property,this.key=t,this.value=r,this.kind=e,this.method=n,this.shorthand=o,this.finish(),this},finishReturnStatement:function(e){return this.type=Or.ReturnStatement,this.argument=e,this.finish(),this},finishSequenceExpression:function(e){return this.type=Or.SequenceExpression,this.expressions=e,this.finish(),this},finishSwitchCase:function(e,t){return this.type=Or.SwitchCase,this.test=e,this.consequent=t,this.finish(),this},finishSwitchStatement:function(e,t){return this.type=Or.SwitchStatement,this.discriminant=e,this.cases=t,this.finish(),this},finishThisExpression:function(){return this.type=Or.ThisExpression,this.finish(),this},finishThrowStatement:function(e){return this.type=Or.ThrowStatement,this.argument=e,this.finish(),this},finishTryStatement:function(e,t,r,n){return this.type=Or.TryStatement,this.block=e,this.guardedHandlers=t,this.handlers=r,this.finalizer=n,this.finish(),this},finishUnaryExpression:function(e,t){return this.type="++"===e||"--"===e?Or.UpdateExpression:Or.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0,this.finish(),this},finishVariableDeclaration:function(e,t){return this.type=Or.VariableDeclaration,this.declarations=e,this.kind=t,this.finish(),this},finishVariableDeclarator:function(e,t){return this.type=Or.VariableDeclarator,this.id=e,this.init=t,this.finish(),this},finishWhileStatement:function(e,t){return this.type=Or.WhileStatement,this.test=e,this.body=t?t:Sr(this,"Statement"),this.finish(),this},finishWithStatement:function(e,t){return this.type=Or.WithStatement,this.object=e,this.body=t?t:Sr(this,"Statement"),this.finish(),this}},e.version="2.0.0",e.tokenize=hr,e.parse=fr,e.isIdentifierPart=l,e.isIdentifierStart=i,e.isIdentifierChar=l,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in Or)Or.hasOwnProperty(e)&&(t[e]=Or[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()}),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define("acorn/dist/walk",[],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.acorn||(t.acorn={})).walk=e()}}(function(){return function e(t,r,n){function o(a,i){if(!r[a]){if(!t[a]){var l="function"==typeof require&&require;if(!i&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var p=r[a]={exports:{}};t[a][0].call(p.exports,function(e){var r=t[a][1][e];return o(r?r:e)},p,p.exports,e,t,r,n)}return r[a].exports}for(var s="function"==typeof require&&require,a=0;a=n)&&s[i](e,r,c),o(i,e)&&(null==t||e.start==t)&&(null==n||e.end==n))throw new m(e,r)}(e,a)}catch(l){if(l instanceof m)return l;throw l}}function c(e,t,n,o,s){n=i(n),o||(o=r.base);try{!function l(e,r,s){var a=s||e.type;if(!(e.start>t||e.end=t&&n(a,e))throw new m(e,r);o[a](e,r,l)}}(e,s)}catch(a){if(a instanceof m)return a;throw a}}function d(e,t,n,o,s){n=i(n),o||(o=r.base);var a=void 0;return function l(e,r,s){if(!(e.start>t)){var i=s||e.type;e.end<=t&&(!a||a.node.end ")){var g=this.pos;u=this.parseType(!0),u.call&&(n?(h=u,u=t.ANull,f=g):i=!0)}else u=t.ANull;return i?s(o,u):(n&&(m=this.base)?t.Fn.call(this.base,r,t.ANull,o,a,u):m=new t.Fn(r,t.ANull,o,a,u),h&&(m.computeRet=h),null!=f&&(m.computeRetSource=this.spec.slice(f,this.pos)),m)},parseType:function(e,r,n){var o=this.parseTypeMaybeProp(e,r,n);if(!this.eat("|"))return o;for(var s=[o],i=o.call;;){var l=this.parseTypeMaybeProp(e,r,n);if(s.push(l),l.call&&(i=!0),!this.eat("|"))break}if(i)return a(s);for(var c=new t.AVal,p=0;p$!]/)||this.error();return e.apply?function(r,n){return o(e(r,n),t)}:o(e,t)},parseTypeInner:function(e,r,n){if(this.eat("fn("))return this.parseFnType(e,r,n);if(this.eat("[")){var o=this.parseType(e);return this.eat("]")||this.error(),o.call?i(o):n&&this.base?(t.Arr.call(this.base,o),this.base):new t.Arr(o)}if(this.eat("+")){var s=this.word(/[\w$<>\.!]/),a=w(s+".prototype");return a instanceof t.Obj||(a=w(s)),a instanceof t.Obj?e&&this.eat("[")?this.parsePoly(a):n&&this.forceNew?new t.Obj(a):t.getInstance(a):a}if(e&&this.eat("!")){var l=this.word(/\d/);if(l)return l=Number(l),function(e,r){return r[l]||t.ANull};if(this.eat("this"))return function(e){return e};if(this.eat("custom:")){var c=this.word(/[\w$]/);return _[c]||function(){return t.ANull}}return this.fromWord("!"+this.word(/[\w$<>\.!]/))}return this.eat("?")?t.ANull:this.fromWord(this.word(/[\w$<>\.!`]/))},fromWord:function(e){var r=t.cx();switch(e){case"number":return r.num;case"string":return r.str;case"bool":return r.bool;case"":return r.topScope}return r.localDefs&&e in r.localDefs?r.localDefs[e]:w(e)},parsePoly:function(e){var r,n="";(r=this.spec.slice(this.pos).match(/^\s*(\w+)\s*=\s*/))&&(n=r[1],this.pos+=r[0].length);var o=this.parseType(!0);if(this.eat("]")||this.error(),o.call)return function(r,s){var a=t.getInstance(e);return o(r,s).propagate(a.defProp(n)),a};var s=t.getInstance(e);return o.propagate(s.defProp(n)),s}};var y,v=e.parseEffect=function(e,r){var o;if(0==e.indexOf("propagate ")){var s=new b(e,10),a=s.parseType(!0);s.eat(" ")||s.error();var i=s.parseType(!0);c(r,function(e,t){n(a,e,t).propagate(n(i,e,t))})}else if(0==e.indexOf("call ")){var l=5==e.indexOf("and return ",5),s=new b(e,l?16:5),p=s.parseType(!0),d=null,u=[];for(s.eat(" this=")&&(d=s.parseType(!0));s.eat(" ");)u.push(s.parseType(!0));c(r,function(e,r){for(var o=n(p,e,r),s=d?n(d,e,r):t.ANull,a=[],i=0;i"!=e&&s.propagate(new t.PropHasSubset(e,r))})})}},w=e.parsePath=function(e,r){var n=t.cx(),o=n.paths[e],s=e;if(null!=o)return o;n.paths[e]=t.ANull;var a=r||y||n.topScope;if(n.localDefs)for(var i in n.localDefs)if(0==e.indexOf(i)){if(e==i)return n.paths[e]=n.localDefs[e];if("."==e.charAt(i.length)){a=n.localDefs[i],e=e.slice(i.length+1);break}}for(var l=e.split("."),c=0;c=3&&"Literal"==n[1].type&&"string"==typeof n[1].value){var o=r[0],s=new t.AVal;o.propagate(new t.PropHasSubset(n[1].value,s,n[1])),r[2].propagate(new T(s))}return t.ANull}),t.registerFunction("Object_defineProperties",function(e,r,n){if(r.length>=2){var o=r[0];r[1].forAllProps(function(e,r,s){if(s){var a=new t.AVal;o.propagate(new t.PropHasSubset(e,a,n&&n[1])),r.propagate(new T(a))}})}return t.ANull});var E=t.constraint({construct:function(e,t,r){this.self=e,this.args=t,this.target=r +},addType:function(e){if(e instanceof t.Fn){this.target.addType(new t.Fn(e.name,t.ANull,e.args.slice(this.args.length),e.argNames.slice(this.args.length),e.retval)),this.self.propagate(e.self);for(var r=0;r"),s=0;s=5)return t;if(!e||e==t)return e;if(!t)return e;if(e.constructor!=t.constructor)return!1;if(e.constructor!=it){if(e.constructor==st){var n=0,o=0,s=0;for(var l in e.props)n++,l in t.props&&a(e.props[l],t.props[l],r+1)&&s++;for(var l in t.props)o++;return n&&o&&so?e:t}return e.constructor==at&&e.args.length==t.args.length&&e.args.every(function(e,n){return a(e,t.args[n],r+1)})&&a(e.retval,t.retval,r+1)&&a(e.self,t.self,r+1)?e:!1}var c=e.getProp("").getType(!1);if(!c)return t;var p=t.getProp("").getType(!1);return!p||i(c,p,r+1)?t:void 0}function l(e){for(var t=0,r=0,n=0,o=null,s=0;s1)return null;if(o)return o;for(var l=0,c=null,s=0;s").isEmpty()?1:2;else if(r){p=1;for(var d=0;d=l&&(l=p,c=a)}return c}function c(e,t){lt.disabledComputing={fn:e,prev:lt.disabledComputing};try{return t()}finally{lt.disabledComputing=lt.disabledComputing.prev}}function p(e,t){var r=lt.props[e]||(lt.props[e]=[]);r.push(t)}function d(e){return lt.props[e]}function u(t){if(lt.workList)return t(lt.workList);var r=[],n=0,o=lt.workList=function(e,t,o){n=ct)throw new e.TimedOut;n=r[a+3]+1,r[a+1].addType(r[a],r[a+2])}return s}finally{lt.workList=null}}function h(e,t){e.fnType&&(e.fnType.instantiateScore=(e.fnType.instantiateScore||0)+t)}function f(e,t){try{return r.simple(e,{Expression:function(){if(--t<=0)throw ht}}),!0}catch(n){if(n==ht)return!1;throw n}}function m(e,t){var r=t.fnType.instantiateScore;return!lt.disabledComputing&&r&&t.fnType.args.length&&f(e,5*r)?(h(t.prev,r/2),g(e,t),!0):void(t.fnType.instantiateScore=null)}function g(e,t){for(var n=t.fnType,o=0;o3)&&e.forward)for(var s=0;s"));for(var i=t(r.self,"!this",0),l=0;!i&&l"):n.name}function w(e){switch(e){case"+":case"-":case"~":return lt.num;case"!":return lt.bool;case"typeof":return lt.str;case"void":case"delete":return z}}function _(e){switch(e){case"==":case"!=":case"===":case"!==":case"<":case">":case">=":case"<=":case"in":case"instanceof":return!0}}function S(e){if(e.regex)return Y(lt.protos.RegExp);switch(typeof e.value){case"boolean":return lt.bool;case"number":return lt.num;case"string":return lt.str;case"object":case"function":return e.value?Y(lt.protos.RegExp):z}}function T(e){return function(t,r,n,o,s){var a=e(t,r,n,s);return o&&a.propagate(o),a}}function E(e){return function(t,r,n,o,s){return o||(o=new F),e(t,r,n,o,s),o}}function x(e,t,r,n,o){var s=mt[e.type];return s?s(e,t,r,n,o):void 0}function j(e,t){var r=e&&e[t],n=Array.prototype.slice.call(arguments,2);if(r)for(var o=0;o-1}:function(n,o){return o&&o.start>=t&&o.end<=r&&e.indexOf(n.origin)>-1}:null==r?function(t){return t.origin==e}:function(n,o){return o&&o.start>=t&&o.end<=r&&n.origin==e}}function M(e){St=!0;var t=d(e);if(t)for(var r=0;rt?"?":e.toString(t,r)},z=e.ANull=o.mixin({addType:function(){},propagate:function(){},getProp:function(){return z},forAllProps:function(){},hasType:function(){return!1},isEmpty:function(){return!0},getFunctionType:function(){},getObjType:function(){},getType:function(){},gatherProperties:function(){},propagatesTo:function(){},typeHint:function(){},propHint:function(){},toString:function(){return"?"}}),C=100,P=90,I=10,N=5,U=5,L=90,q=2,F=e.AVal=function(){this.types=[],this.forward=null,this.maxWeight=0};F.prototype=s(z,{addType:function(e,t){if(t=t||C,this.maxWeightt||this.types.indexOf(e)>-1)return;this.signal("addType",e),this.types.push(e);var r=this.forward;r&&u(function(n){for(var o=0;o2)){t&&t!=C&&(e=new rt(e,t)),(this.forward||(this.forward=[])).push(e);var r=this.types;r.length&&u(function(n){for(var o=0;o-1},isEmpty:function(){return 0===this.types.length},getFunctionType:function(){for(var e=this.types.length-1;e>=0;--e)if(this.types[e]instanceof at)return this.types[e]},getObjType:function(){for(var e=null,t=this.types.length-1;t>=0;--t){var r=this.types[t];if(r instanceof st){if(r.name)return r;e||(e=r)}}return e},getType:function(e){return 0===this.types.length&&e!==!1?this.makeupType():1===this.types.length?this.types[0]:l(this.types)},toString:function(e,t){if(0==this.types.length)return A(this.makeupType(),e,t);if(1==this.types.length)return A(this.types[0],e,t);var r=G(this.types);return r.length>2?"?":r.map(function(r){return A(r,e,t)}).join("|")},computedPropType:function(){if(!this.propertyOf)return null;if(this.propertyOf.hasProp("")){var e=this.propertyOf.getProp("");return e==this?null:e.getType()}if(this.propertyOf.maybeProps&&this.propertyOf.maybeProps[""]==this){for(var t in this.propertyOf.props){var r=this.propertyOf.props[t];if(!r.isEmpty())return r}return null}},makeupType:function(){var e=this.computedPropType();if(e)return e;if(!this.forward)return null;for(var t=this.forward.length-1;t>=0;--t){var r=this.forward[t].typeHint();if(r&&!r.isEmpty())return St=!0,r}for(var n=Object.create(null),o=null,t=0;t"!=s&&"āœ–"!=s&&s!=lt.completingProperty&&(n[s]=!0,o=s)}if(!o)return null;var a=d(o);if(a){var i=[];e:for(var t=0;t"!=this.prop&&/[^\w_]/.test(this.prop)?void 0:{target:this.target,pathExt:"."+this.prop}}}),B=e.PropHasSubset=W({construct:function(e,t,r){this.prop=e,this.type=t,this.originNode=r},addType:function(e,t){if(e instanceof st){var r=e.defProp(this.prop,this.originNode);r.origin||(r.origin=this.origin),this.type.propagate(r,t)}},propHint:function(){return this.prop}}),J=W({construct:function(e){this.c=e},addType:function(e){e instanceof st&&e.forAllProps(this.c)}}),V=e.IsCallee=W({construct:function(e,t,r,n){this.self=e,this.args=t,this.argNodes=r,this.retval=n,this.disabled=lt.disabledComputing},addType:function(e,t){if(e instanceof at){for(var r=0;r8||this.target.addType(e==lt.protos.Array?new it:Y(e,this.ctor)))}}),Q=W({construct:function(e){this.fn=e},addType:function(e){if(e instanceof st&&!e.hasCtor){e.hasCtor=this.fn;var t=new tt(e,this.fn);t.addType(this.fn),e.forAllProps(function(e,r,n){n&&r.propagate(t)})}}}),Z=W({construct:function(e,t){this.other=e,this.target=t},addType:function(e,t){e==lt.str?this.target.addType(lt.str,t):e==lt.num&&this.other.hasType(lt.num)&&this.target.addType(lt.num,t)},typeHint:function(){return this.other}}),et=e.IfObj=W({construct:function(e){this.target=e},addType:function(e,t){e instanceof st&&this.target.addType(e,t)},propagatesTo:function(){return this.target}}),tt=W({construct:function(e,t){this.obj=e,this.ctor=t},addType:function(e){e instanceof at&&e.self&&e.self.isEmpty()&&e.self.addType(Y(this.obj,this.ctor),q)}}),rt=W({construct:function(e,t){this.inner=e,this.weight=t},addType:function(e,t){this.inner.addType(e,Math.min(t,this.weight))},propagatesTo:function(){return this.inner.propagatesTo()},typeHint:function(){return this.inner.typeHint()},propHint:function(){return this.inner.propHint()}}),nt=e.Type=function(){};nt.prototype=s(z,{constructor:nt,propagate:function(e,t){e.addType(this,t)},hasType:function(e){return e==this},isEmpty:function(){return!1},typeHint:function(){return this},getType:function(){return this}});var ot=e.Prim=function(e,t){this.name=t,this.proto=e};ot.prototype=s(nt.prototype,{constructor:ot,toString:function(){return this.name},getProp:function(e){return this.proto.hasProp(e)||z},gatherProperties:function(e,t){this.proto&&this.proto.gatherProperties(e,t)}});var st=e.Obj=function(e,t){if(this.props||(this.props=Object.create(null)),this.proto=e===!0?lt.protos.Object:e,e&&!t&&e.name&&!(this instanceof at)){var r=/^(.*)\.prototype$/.exec(this.proto.name);r&&(t=r[1])}this.name=t,this.maybeProps=null,this.origin=lt.curOrigin};st.prototype=s(nt.prototype,{constructor:st,toString:function(e){if(null==e&&(e=0),0>=e&&this.name)return this.name;var t=[],r=!1;for(var n in this.props)if(""!=n){if(t.length>5){r=!0;break}t.push(e?n+": "+A(this.props[n],e-1,this):n)}return t.sort(),r&&t.push("..."),"{"+t.join(", ")+"}"},hasProp:function(e,t){var r=this.props[e];if(t!==!1)for(var n=this.proto;n&&!r;n=n.proto)r=n.props[e];return r},defProp:function(e,t){var r=this.hasProp(e,!1);if(r)return t&&!r.originNode&&(r.originNode=t),r;if("__proto__"==e||"āœ–"==e)return z;var n=this.maybeProps&&this.maybeProps[e];return n?(delete this.maybeProps[e],this.maybeUnregProtoPropHandler()):(n=new F,n.propertyOf=this),this.props[e]=n,n.originNode=t,n.origin=lt.curOrigin,this.broadcastProp(e,n,!0),n},getProp:function(e){var t=this.hasProp(e,!0)||this.maybeProps&&this.maybeProps[e];if(t)return t;if("__proto__"==e||"āœ–"==e)return z;var r=this.ensureMaybeProps()[e]=new F;return r.propertyOf=this,r},broadcastProp:function(e,t,r){if(r&&(this.signal("addProp",e,t),this instanceof ut||p(e,this)),this.onNewProp)for(var n=0;n"!=r&&e(r,this,t);this.proto&&this.proto.gatherProperties(e,t+1)},getObjType:function(){return this}});var at=e.Fn=function(e,t,r,n,o){st.call(this,lt.protos.Function,e),this.self=t,this.args=r,this.argNames=n,this.retval=o};at.prototype=s(st.prototype,{constructor:at,toString:function(e){null==e&&(e=0);for(var t="fn(",r=0;r-3?A(this.args[r],e-1,this):"?"}return t+=")",this.retval.isEmpty()||(t+=" -> "+(e>-3?A(this.retval,e-1,this):"?")),t},getProp:function(e){if("prototype"==e){var t=this.hasProp(e,!1);if(!t){t=this.defProp(e);var r=new st(!0,this.name&&this.name+".prototype");r.origin=this.origin,t.addType(r,I)}return t}return st.prototype.getProp.call(this,e)},defProp:function(e,t){if("prototype"==e){var r=this.hasProp(e,!1);return r?r:(r=st.prototype.defProp.call(this,e,t),r.origin=this.origin,r.propagate(new Q(this)),r)}return st.prototype.defProp.call(this,e,t)},getFunctionType:function(){return this}});var it=e.Arr=function(e){st.call(this,lt.protos.Array);var t=this.defProp("");e&&e.propagate(t)};it.prototype=s(st.prototype,{constructor:it,toString:function(e){return null==e&&(e=0),"["+(e>-3?A(this.getProp(""),e-1,this):"?")+"]"}}),e.Context=function(t,r){this.parent=r,this.props=Object.create(null),this.protos=Object.create(null),this.origins=[],this.curOrigin="ecma5",this.paths=Object.create(null),this.definitions=Object.create(null),this.purgeGen=0,this.workList=null,this.disabledComputing=null,e.withContext(this,function(){if(lt.protos.Object=new st(null,"Object.prototype"),lt.topScope=new ut,lt.topScope.name="",lt.protos.Array=new st(!0,"Array.prototype"),lt.protos.Function=new at("Function.prototype",z,[],[],z),lt.protos.Function.proto=lt.protos.Object,lt.protos.RegExp=new st(!0,"RegExp.prototype"),lt.protos.String=new st(!0,"String.prototype"),lt.protos.Number=new st(!0,"Number.prototype"),lt.protos.Boolean=new st(!0,"Boolean.prototype"),lt.str=new ot(lt.protos.String,"string"),lt.bool=new ot(lt.protos.Boolean,"bool"),lt.num=new ot(lt.protos.Number,"number"),lt.curOrigin=null,t)for(var e=0;en)return t();ct=r;try{return t()}finally{ct=n}},e.addOrigin=function(e){lt.origins.indexOf(e)<0&<.origins.push(e)};var pt=20,dt=1e-4,ut=e.Scope=function(e){st.call(this,e||!0),this.prev=e};ut.prototype=s(st.prototype,{constructor:ut,defVar:function(e,t){for(var r=this;;r=r.proto){var n=r.props[e];if(n)return n;if(!r.prev)return r.defProp(e,t)}}});var ht={},ft=r.make({Function:function(e,t,r){var n=e.body.scope=new ut(t);n.originNode=e;for(var o=[],s=[],a=0;an;++n)x(e.expressions[n],t,r,z);return x(e.expressions[o],t,r)}),UnaryExpression:T(function(e,t,r){return x(e.argument,t,r,z),w(e.operator)}),UpdateExpression:T(function(e,t,r){return x(e.argument,t,r,z),lt.num}),BinaryExpression:T(function(e,t,r){if("+"==e.operator){var n=x(e.left,t,r),o=x(e.right,t,r);if(n.hasType(lt.str)||o.hasType(lt.str))return lt.str;if(n.hasType(lt.num)&&o.hasType(lt.num))return lt.num;var s=new F;return n.propagate(new Z(o,s)),o.propagate(new Z(n,s)),s}return x(e.left,t,r,z),x(e.right,t,r,z),_(e.operator)?lt.bool:lt.num}),AssignmentExpression:T(function(e,t,r){var n,o,s;if("MemberExpression"==e.left.type?(s=v(e.left,t,r),"Identifier"==e.left.object.type&&(o=e.left.object.name+"."+s)):o=e.left.name,"="!=e.operator&&"+="!=e.operator?(x(e.right,t,r,z),n=lt.num):n=x(e.right,t,r,null,o),"MemberExpression"==e.left.type){var a=x(e.left.object,t,r);if("prototype"==s&&h(t,20),""==s){var i=e.left.property.name,l=t.props[i],c=l&&l.iteratesOver;if(c){h(t,20);var p="MemberExpression"==e.right.type&&e.right.computed&&e.right.property.name==i;return c.forAllProps(function(e,t,r){r&&"prototype"!=e&&""!=e&&a.propagate(new B(e,p?t:z))}),n}}a.propagate(new B(s,n,e.left.property))}else n.propagate(t.defVar(e.left.name,e.left));return n}),LogicalExpression:E(function(e,t,r,n){x(e.left,t,r,n),x(e.right,t,r,n)}),ConditionalExpression:E(function(e,t,r,n){x(e.test,t,r,z),x(e.consequent,t,r,n),x(e.alternate,t,r,n)}),NewExpression:E(function(e,t,r,n,o){"Identifier"==e.callee.type&&e.callee.name in t.props&&h(t,20);for(var s=0,a=[];s-1&&h(t,30),a.propagate(new $(i,s,e.arguments,n))}else{var l=x(e.callee,t,r);t.fnType&&t.fnType.args.indexOf(l)>-1&&h(t,30);var c=l.getFunctionType();c&&c.instantiateScore&&t.fnType&&h(t,c.instantiateScore/5),l.propagate(new V(lt.topScope,s,e.arguments,n))}}),MemberExpression:E(function(e,t,r,n){var o=v(e,t),s=x(e.object,t,r),a=s.getProp(o);if(""==o){var i=x(e.property,t,r);if(!i.hasType(lt.num))return a.propagate(n,N)}a.propagate(n)}),Identifier:T(function(e,t){return"arguments"!=e.name||!t.fnType||e.name in t.props||t.defProp(e.name,t.fnType.originNode).addType(new it(t.fnType.arguments=new F)),t.getProp(e.name)}),ThisExpression:T(function(e,t){return t.fnType?t.fnType.self:lt.topScope}),Literal:T(function(e){return S(e)})},gt=r.make({Expression:function(e,t,r){x(e,t,r,z)},FunctionDeclaration:function(e,t,r){var n=e.body.scope,o=n.fnType;r(e.body,t,"ScopeBody"),m(e,n)||b(n);var s=t.getProp(e.id.name);s.addType(o)},VariableDeclaration:function(e,t,r){for(var n=0;n0&&(k(o.errors),o.errors=o.errors.map(O)),j(r,"postParse",o,e),o};e.analyze=function(t,n,o,s){"string"==typeof t&&(t=yt(t)),n||(n="file#"+lt.origins.length),e.addOrigin(lt.curOrigin=n),o||(o=lt.topScope),r.recursive(t,o,null,ft),j(s,"preInfer",t,o),r.recursive(t,o,null,gt),j(s,"postInfer",t,o),lt.curOrigin=null},e.purge=function(e,t,r){var n=R(e,t,r);++lt.purgeGen,lt.topScope.purge(n);for(var o in lt.props){for(var s=lt.props[o],a=0;a"==r?z:M(r)},Identifier:function(e,t){return t.hasProp(e.name)||z},ThisExpression:function(e,t){return t.fnType?t.fnType.self:lt.topScope},Literal:function(e){return S(e)}},wt=e.searchVisitor=r.make({Function:function(e,t,r){var n=e.body.scope;e.id&&r(e.id,n);for(var o=0;ot?!1:"Identifier"==r.type&&"āœ–"==r.name?!1:vt.hasOwnProperty(r.type)};return r.findNodeAround(e,n,a,wt,o||lt.topScope)},e.expressionType=function(e){return D(e.node,e.state)},e.parentNode=function(e,t){function n(t,s,a){if(t.start<=e.start&&t.end>=e.end){var i=o[o.length-1];if(t==e)throw{found:i};i!=t&&o.push(t),r.base[a||t.type](t,s,n),i!=t&&o.pop()}}var o=[];try{n(t,null)}catch(s){if(s.found)return s.found;throw s}};var _t={ArrayExpression:function(e,t,r){return r(e,!0).getProp("")},ObjectExpression:function(e,t,r){for(var n=0;ny(e,r)&&(o.parent=r,o.excluded&&(o.excluded=null)));var i=new s(t,r);e.files.push(i),e.fileMap[t]=i,null!=n?a(i,n,e):e.options.async?(e.startAsyncAction(),e.options.getFile(t,function(t,r){"object"==typeof r&&(r=r.contents),a(i,r||"",e),e.finishAsyncAction(t)})):a(i,e.options.getFile(t)||"",e)}function p(e,t,r){var n=function(){e.off("everythingFetched",n),clearTimeout(o),d(e,t,r)};e.on("everythingFetched",n);var o=setTimeout(n,e.options.fetchTimeout)}function d(e,r,n){if(e.pending)return p(e,r,n);var o=e.fetchError;if(o)return e.fetchError=null,n(o);e.needsPurge.length>0&&t.withContext(e.cx,function(){t.purge(e.needsPurge),e.needsPurge.length=0});for(var s=!0,a=0;at?e:e.slice(0,t)}function h(e,t,r){var n=Math.max(0,r-500),o=null;if(!/^\s*$/.test(e))for(;;){var s=t.indexOf(e,n);if(0>s||s>r+500)break;(null==o||Math.abs(o-r)>Math.abs(s-r))&&(o=s),n=s+e.length}return o}function f(e){for(var t=0;e;++t,e=e.prev);return t}function m(e){var t=new Error(e);return t.name="TernError",t}function g(e,r,n){var s=n.match(/^#(\d+)$/);if(!s)return e.findFile(n);var a=r[s[1]];if(!a||"delete"==a.type)throw m("Reference to unknown file "+n);if("full"==a.type)return e.findFile(a.name);var i=a.backing=e.findFile(a.name),l=a.offset;a.offsetLines&&(l={line:a.offsetLines,ch:0}),a.offset=l=Y(i,null==a.offsetLines?a.offset:{line:a.offsetLines,ch:0},!0);var c,p,d=u(a.text),g=h(d,i.text,l),b=null==g?Math.max(0,i.text.lastIndexOf("\n",l)):g;return t.withContext(e.cx,function(){t.purge(a.name,b,b+a.text.length);var r,n=a.text;if(r=n.match(/(?:"([^"]*)"|([\w$]+))\s*:\s*function\b/)){var s=o.findNodeAround(a.backing.ast,b,"ObjectExpression");s&&s.node.objType&&(c={type:s.node.objType,prop:r[2]||r[1]})}if(g&&(r=d.match(/^(.*?)\bfunction\b/))){for(var l=r[1].length,u="",h=0;l>h;++h)u+=" ";n=u+n.slice(l),p=!0}var m=t.scopeAt(i.ast,b,i.scope),y=t.scopeAt(i.ast,b+n.length,i.scope),v=a.scope=f(m)h;++h)T.args[h].propagate(E.args[h]);T.self.propagate(E.self),E.retval.propagate(T.retval)}}}),a}function b(e){var t=0;return o.simple(e,{Expression:function(){++t}}),t}function y(e,t){for(var r=0;t;)t=e.findFile(t).parent,++r;return r}function v(e,t){for(;;){var r=e.findFile(t.parent);if(!r.parent)break;t=r}return t.name}function w(e,t){var r=v(e,t),n=b(t.ast),o=e.budgets[r];return null==o&&(o=e.budgets[r]=e.options.dependencyBudget),n>o?!1:(e.budgets[r]=o-n,!0)}function _(e){return"number"==typeof e||"object"==typeof e&&"number"==typeof e.line&&"number"==typeof e.ch}function S(e){if(e.query){if("string"!=typeof e.query.type)return".query.type must be a string";if(e.query.start&&!_(e.query.start))return".query.start must be a position";if(e.query.end&&!_(e.query.end))return".query.end must be a position"}if(e.files){if(!Array.isArray(e.files))return"Files property must be an array";for(var t=0;ts;){if(++s,o=r.indexOf("\n",o)+1,0===o)return null;s%X===0&&n.push(o)}return o}function E(e,t){if(!e)return{line:0,ch:0};for(var r,n,o=e.lineOffsets||(e.lineOffsets=[0]),s=e.text,a=o.length-1;a>=0;--a)o[a]<=t&&(r=a*X,n=o[a]);for(;;){var i=s.indexOf("\n",n);if(i>=t||0>i)break;n=i+1,++r}return{line:r,ch:t-n}}function x(e){for(var t in e)null==e[t]&&delete e[t];return e}function j(e,t,r){null!=r&&(e[t]=r)}function O(e,t){"string"!=typeof e&&(e=e.name,t=t.name);var r=/^[A-Z]/.test(e),n=/^[A-Z]/.test(t);return r==n?t>e?-1:e==t?0:1:r?1:-1}function k(e,t,r){return"Literal"==e.type&&"string"==typeof e.value&&e.start==t-1&&e.end<=r+1}function R(e,t){for(var r=0;r=t)return n}}function M(e,r,o){function s(n,o,s,a){if((!w&&r.omitObjectPrototype===!1||o!=e.cx.protos.Object||u)&&!(r.filter!==!1&&u&&0!==(r.caseInsensitive?n.toLowerCase():n).indexOf(u)||d&&d.props[n])){for(var i=0;i=2&&r.guess!==!1)for(var g in e.cx.props)s(g,e.cx.props[g][0],0);f="memberCompletion"}else t.forAllLocalsAt(o.ast,l,o.scope,s),r.includeKeywords&&Q.forEach(function(e){s(e,null,0,function(e){e.isKeyword=!0})}),f="variableCompletion";return e.passes[f]&&e.passes[f].forEach(function(e){e(o,l,c,h)}),r.sort!==!1&&h.sort(O),e.cx.completingProperty=null,{start:K(r,o,l),end:K(r,o,c),isProperty:!!g,isObjectKey:!!y,completions:h}}function D(e,t){var r=t.prefix,n=[];for(var o in e.cx.props)""==o||r&&0!==o.indexOf(r)||n.push(o);return t.sort!==!1&&n.sort(O),{completions:n}}function A(e,t,r){var n=Z(e,t,r);if(n)return n;throw m("No expression at the given position.")}function z(e){return e&&(e=e.getType())&&e instanceof t.Obj?e:null}function C(e,r,n,o){var s;if(o&&(t.resetGuessing(),s=t.expressionType(o)),e.passes.typeAt){var a=Y(n,r.end);e.passes.typeAt.forEach(function(e){s=e(n,a,o,s)})}if(!s)throw m("No type found at the given position.");var i;if("ObjectExpression"==o.node.type&&null!=r.end&&(i=R(o.node,Y(n,r.end)))){var l=i.key.name,c=z(t.typeFromContext(n.ast,o));if(c&&c.hasProp(l))s=c.hasProp(l);else{var p=z(s);p&&p.hasProp(l)&&(s=p.hasProp(l))}}return s}function P(e,r,n){var o,s=Z(n,r),a=C(e,r,n,s),i=a;if(a=r.preferFunction?a.getFunctionType()||a.getType():a.getType(),s&&("Identifier"==s.node.type?o=s.node.name:"MemberExpression"!=s.node.type||s.node.computed||(o=s.node.property.name)),null!=r.depth&&"number"!=typeof r.depth)throw m(".query.depth must be a number");var l={guess:t.didGuess(),type:t.toString(i,r.depth),name:a&&a.name,exprName:o};return a&&U(r,a,l),!l.doc&&i.doc&&(l.doc=I(r,i.doc)),x(l)}function I(e,t){if(!t)return null;if("full"==e.docFormat)return t;var r=/.\n[\s@\n]/.exec(t);if(r&&(t=t.slice(0,r.index+1)),t=t.replace(/\n\s*/g," "),t.length<100)return t;var n=/[\.!?] [A-Z]/g;n.lastIndex=80;var o=n.exec(t);return o&&(t=t.slice(0,o.index+1)),t}function N(e,r,n){var o=Z(n,r),s=C(e,r,n,o),a={url:s.url,doc:I(r,s.doc),type:t.toString(s)},i=s.getType();return i&&U(r,i,a),x(a)}function U(e,r,n){n.url||(n.url=r.url),n.doc||(n.doc=I(e,r.doc)),n.origin||(n.origin=r.origin);var o,s=t.cx().protos;!n.url&&!n.doc&&r.proto&&(o=r.proto.hasCtor)&&r.proto!=s.Object&&r.proto!=s.Function&&r.proto!=s.Array&&(n.url=o.url,n.doc=I(e,o.doc))}function L(e,t,r){var n=Z(r,t),o=C(e,t,r,n),s=et(o),a={url:o.url,doc:I(t,o.doc),origin:o.origin};if(o.types)for(var i=o.types.length-1;i>=0;--i){var l=o.types[i];U(t,l,a),s||(s=et(l))}if(s&&s.node){var c=s.node.sourceFile||e.findFile(s.origin),p=K(t,c,s.node.start),d=K(t,c,s.node.end);a.start=p,a.end=d,a.file=s.origin;var u=Math.max(0,s.node.start-50);a.contextOffset=s.node.start-u,a.context=c.text.slice(u,u+50)}else s&&(a.file=s.origin,tt(e,t,s,a));return x(a)}function q(e,r,n,o,s){function a(e){return function(t,n){if(s)for(var o=n;o!=l;o=o.prev){var a=o.hasProp(s);if(a)throw m("Renaming `"+i+"` to `"+s+"` would make a variable at line "+(E(e,t.start).line+1)+" point to the definition at line "+(E(e,a.name.start).line+1))}p.push({file:e.name,start:K(r,e,t.start),end:K(r,e,t.end)})}}for(var i=o.node.name,l=o.state;l&&!(i in l.props);l=l.prev);if(!l)throw m("Could not find a definition for "+i+" "+!!e.cx.topScope.props.x);var c,p=[];if(l.originNode){if(c="local",s){for(var d=l.prev;d&&!(s in d.props);d=d.prev);d&&t.findRefs(l.originNode,l,s,d,function(e){throw m("Renaming `"+i+"` to `"+s+"` would shadow the definition used at line "+(E(n,e.start).line+1))})}t.findRefs(l.originNode,l,i,l,a(n))}else{c="global";for(var u=0;u=s)return F(e,t,n,i)}throw m("Not at a variable or property name.")}function W(e,t,r){if("string"!=typeof t.newName)throw m(".query.newName should be a string");var n=A(r,t);if(!n)throw m("Could not find an expression to rename.");if("Identifier"!=n.node.type)switch(n.node.type){case"MemberExpression":throw m("Rename is not supported on member expressions.");case"ThisExpression":throw m("Rename is not supported on this expressions.");case"ObjectExpression":throw m("Rename is not supported on object properties.");default:throw m("Rename is only supported on variables.")}var o=q(e,t,r,n,t.newName),s=o.refs;delete o.refs,o.files=e.files.map(function(e){return e.name});for(var a=o.changes=[],i=0;i4e4&&(n.reset(),d(n,null,function(){}))})},findFile:function(e){return this.fileMap[e]},flush:function(e){var r=this.cx;d(this,null,function(n){return n?e(n):void t.withContext(r,e)})},startAsyncAction:function(){++this.pending},finishAsyncAction:function(e){e&&(this.asyncError=e),0===--this.pending&&this.signal("everythingFetched")}});var X=25,Y=e.resolvePos=function(e,t,r){if("number"!=typeof t){var n=T(e,t.line);if(null==n){if(!r)throw m("File doesn't contain a line "+t.line);t=e.text.length}else t=n+t.ch}if(t>e.text.length){if(!r)throw m("Position "+t+" is outside of file.");t=e.text.length}return t},K=e.outputPos=function(e,t,r){if(e.lineCharPositions){var n=E(t,r);return"part"==t.type&&(n.line+=null!=t.offsetLines?t.offsetLines:E(t.backing,t.offset).line),n}return r+("part"==t.type?t.offset:0)},Q="break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default if throw delete in try".split(" "),Z=e.findQueryExpr=function(e,r,n){if(null==r.end)throw m("missing .query.end field");if(r.variable){var o=t.scopeAt(e.ast,Y(e,r.end),e.scope);return{node:{type:"Identifier",name:r.variable,start:r.end,end:r.end+1},state:o}}var s=r.start&&Y(e,r.start),a=Y(e,r.end),i=t.findExpressionAt(e.ast,s,a,e.scope);return i?i:(i=t.findExpressionAround(e.ast,s,a,e.scope),i&&("ObjectExpression"==i.node.type||n||(null==s?a:s)-i.node.start<20||i.node.end-a<20)?i:null)},et=e.getSpan=function(e){if(e.origin){if(e.originNode){var t=e.originNode;return/^Function/.test(t.type)&&t.id&&(t=t.id),{origin:e.origin,node:t}}return e.span?{origin:e.origin,span:e.span}:void 0}},tt=e.storeSpan=function(e,t,r,n){if(n.origin=r.origin,r.span){var o=/^(\d+)\[(\d+):(\d+)\]-(\d+)\[(\d+):(\d+)\]$/.exec(r.span);n.start=t.lineCharPositions?{line:Number(o[2]),ch:Number(o[3])}:Number(o[1]),n.end=t.lineCharPositions?{line:Number(o[5]),ch:Number(o[6])}:Number(o[4])}else{var s=e.findFile(r.origin);n.start=K(t,s,r.node.start),n.end=K(t,s,r.node.end)}};e.version="0.12.0",e.findDef=L,e.findExpr=Z,e.findExprType=C,e.resolveFile=g,e.storeTypeDocs=U,e.parseDoc=I,e.resolvePos=Y}),function(e){return"object"==typeof exports&&"object"==typeof module?e(exports):"function"==typeof define&&define.amd?define("tern/lib/comment",["exports"],e):void e(tern.comment||(tern.comment={}))}(function(e){function t(e){return 14>e&&e>8||32===e||160===e}function r(e,r){for(;r>0;--r){var n=e.charCodeAt(r-1);if(10==n)break;if(!t(n))return!1}return!0}e.commentsBefore=function(e,n){var o,s=null,a=0;e:for(;n>0;){var i=e.charCodeAt(n-1);if(10==i)for(var l=--n,c=!1;l>0;--l){if(i=e.charCodeAt(l-1),47==i&&47==e.charCodeAt(l-2)){if(!r(e,l-2))break e;var p=e.slice(l,n);!a&&o?s[0]=p+"\n"+s[0]:(s||(s=[])).unshift(p),o=!0,a=0,n=l-2;break}if(10==i){if(!c&&++a>1)break e;break}c||t(i)||(c=!0)}else if(47==i&&42==e.charCodeAt(n-2)){for(var l=n-2;l>1;--l)if(42==e.charCodeAt(l-1)&&47==e.charCodeAt(l-2)){if(!r(e,l-2))break e;(s||(s=[])).unshift(e.slice(l,n-2)),o=!1,a=0;break}n=l-2}else{if(!t(i))break;--n}}return s},e.commentAfter=function(e,r){for(;ro?e.length:o)}t(n)&&++r}},e.ensureCommentsBefore=function(t,r){return r.hasOwnProperty("commentsBefore")?r.commentsBefore:r.commentsBefore=e.commentsBefore(t,r.start)}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require("../lib/comment"),require("acorn"),require("acorn/dist/walk")):"function"==typeof define&&define.amd?define("tern/plugin/doc_comment",["../lib/infer","../lib/tern","../lib/comment","esprima/esprima","acorn/dist/walk"],e):void e(tern,tern,tern.comment,acorn,acorn.walk)}(function(e,t,r,n,o){"use strict";function s(e,t){function n(e){r.ensureCommentsBefore(t,e)}o.simple(e,{VariableDeclaration:n,FunctionDeclaration:n,AssignmentExpression:function(e){"="==e.operator&&n(e)},ObjectExpression:function(e){for(var t=0;t=3&&"string"==typeof e.arguments[1].value}function i(t,r){v(t.sourceFile.text,r),o.simple(t,{VariableDeclaration:function(e,t){e.commentsBefore&&p(e,e.commentsBefore,t,t.getProp(e.declarations[0].id.name))},FunctionDeclaration:function(e,t){e.commentsBefore&&p(e,e.commentsBefore,t,t.getProp(e.id.name),e.body.scope.fnType)},AssignmentExpression:function(t,r){t.commentsBefore&&p(t,t.commentsBefore,r,e.expressionType({node:t.left,state:r}))},ObjectExpression:function(e,t){for(var r=0;r=0;i--){var l=c(r[i].split(/\r\n?|\n/)).join("\n");if(l){o instanceof e.AVal&&(o.doc=l),s&&(s.doc=l);break}}}function d(e,t){for(;/\s/.test(e.charAt(t));)++t;return t}function u(e){if(!n.isIdentifierStart(e.charCodeAt(0)))return!1;for(var t=1;tl)return null;var c=t.slice(r,l);if(!u(c))return null;o.push(c),r=l+1;var p=f(e,t,r);if(!p)return null;r=p.end,a=a||p.madeUp,s.push(p.type),r=d(t,r);var h=t.charAt(r);if(++r,h==n)break;if(","!=h)return null}return{labels:o,types:s,end:r,madeUp:a}}function f(t,r,n){for(var o,s=!1,a=!1;;){var i=m(t,r,n);if(!i)return null;if(a=a||i.madeUp,s?i.type.propagate(s):o=i.type,n=d(r,i.end),"|"!=r.charAt(n))break;n++,s||(s=new e.AVal,o.propagate(s),o=s)}var l=!1;return"="==r.charAt(n)&&(++n,l=!0),{type:o,end:n,isOptional:l,madeUp:a}}function m(t,r,o){o=d(r,o);var s,a=!1;if(r.indexOf("function(",o)==o){var i=h(t,r,o+9,")"),l=e.ANull;if(!i)return null;if(o=d(r,i.end),":"==r.charAt(o)){++o;var c=f(t,r,o+1);if(!c)return null;o=c.end,l=c.type,a=c.madeUp}s=new e.Fn(null,e.ANull,i.types,i.labels,l)}else if("["==r.charAt(o)){var p=f(t,r,o+1);if(!p)return null;if(o=d(r,p.end),a=p.madeUp,"]"!=r.charAt(o))return null;++o,s=new e.Arr(p.type)}else if("{"==r.charAt(o)){var u=h(t,r,o+1,"}");if(!u)return null;s=new e.Obj(!0);for(var m=0;m"!=r.charAt(o++))return null;p=w.type}s=new e.Arr(p)}else if(/^object$/i.test(v)){if(s=new e.Obj(!0),"."==r.charAt(o)&&"<"==r.charAt(o+1)){var _=f(t,r,o+2);if(!_)return null;if(o=d(r,_.end),a=a||_.madeUp,","!=r.charAt(o++))return null;var S=f(t,r,o);if(!S)return null;if(o=d(r,S.end),a=_.madeUp||S.madeUp,">"!=r.charAt(o++))return null;S.type.propagate(s.defProp(""))}}else{for(;46==r.charCodeAt(o)||n.isIdentifierChar(r.charCodeAt(o));)++o;var T,E=r.slice(y,o),x=e.cx(),j=x.parent&&x.parent.jsdocTypedefs;j&&E in j?s=j[E]:(T=e.def.parsePath(E,t).getObjType())?s=g(T,E):(x.jsdocPlaceholders||(x.jsdocPlaceholders=Object.create(null)),s=E in x.jsdocPlaceholders?x.jsdocPlaceholders[E]:x.jsdocPlaceholders[E]=new e.Obj(null,E),a=!0)}}return{type:s,end:o,madeUp:a}}function g(t,r){if(t instanceof e.Fn&&/^[A-Z]/.test(r)){var n=t.getProp("prototype").getObjType();if(n instanceof e.Obj)return e.getInstance(n)}return t}function b(e,t,r){if(r=d(t,r||0),"{"!=t.charAt(r))return null;var n=f(e,t,r+1);if(!n)return null;var o=d(t,n.end);return"}"!=t.charAt(o)?null:(n.end=o+1,n)}function y(e,t,r,n){for(var o,s,a,i,l,c,p=n.length-1;p>=0;p--)for(var d,u=n[p],h=/(?:\n|$|\*)\s*@(type|param|arg(?:ument)?|returns?|this)\s+(.*)/g;d=h.exec(u);)if("this"==d[1]&&(c=f(t,d[2],0)))l=c,i=!0;else if(c=b(t,d[2]))switch(i=!0,d[1]){case"returns":case"return":a=c;break;case"type":o=c;break;case"param":case"arg":case"argument":var m=d[2].slice(c.end).match(/^\s*(\[?)\s*([^\]\s=]+)\s*(?:=[^\]]+\s*)?(\]?).*/);if(!m)continue;var g=m[2]+(c.isOptional||"["===m[1]&&"]"===m[3]?"?":"");(s||(s=Object.create(null)))[g]=c}i&&_(o,l,s,a,e,r)}function v(t,r){for(var n,o=e.cx(),s=/\s@typedef\s+(.*)/g;n=s.exec(t);){var a=b(r,n[1]),i=a&&n[1].slice(a.end).match(/^\s*(\S+)/);i&&(o.parent.jsdocTypedefs[i[1]]=a.type)}}function w(t,r){var n=e.cx().parent._docComment.weight;t.type.propagate(r,n||(t.madeUp?S:void 0))}function _(t,r,n,o,s,a){var i;if("VariableDeclaration"==s.type){var l=s.declarations[0];l.init&&"FunctionExpression"==l.init.type&&(i=l.init.body.scope.fnType)}else"FunctionDeclaration"==s.type?i=s.body.scope.fnType:"AssignmentExpression"==s.type?"FunctionExpression"==s.right.type&&(i=s.right.body.scope.fnType):"CallExpression"==s.type||"FunctionExpression"==s.value.type&&(i=s.value.body.scope.fnType);if(i&&(n||o||r)){if(n)for(var c=0;ct.name?1:0}),n.splice(0,0,{proposal:"",description:"Templates",style:"noemphasis_title",unselectable:!0})),n},removePrefix:function(t,r){var n=r.overwrite=r.proposal.substring(0,t.length)!==t;n||(r.proposal=e(t,r.proposal))},isValid:function(){return!0}},{Template:t,TemplateContentAssist:r}}),define("tern/plugin/resolver",["orion/editor/templates"],function(e){function t(e,t){for(var n=Object.keys(d),o=0;o0){for(var o=0;o0){var t=e.parents.pop();switch(t.type){case"MemberExpression":return{kind:"member"};case"VariableDeclarator":return null;case"FunctionDelcaration":case"FunctionExpression":if(offset=t.value.range[0]&&offset-1<=t.value.range[1]?{kind:"prop"}:null;case"SwitchStatement":return{kind:"swtch"}}}return{kind:"top"}}function p(e,t){var r=c(t);if(r&&r.kind){for(var n=[],o=e.length,s=0;o>s;s++){var a=e[s];a.nodes&&a.nodes[r.kind]&&n.push(a)}return n.map(l,this)}}var d=Object.create(null);return{doPostParse:s,doPreInfer:o,getResolved:i,getTemplatesForNode:p}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/orionAmqp",["../lib/infer","../lib/tern","./resolver"],e):void e(infer,tern,resolver)}(function(e,t,r){function n(n,s,a,i){var l=t.resolvePos(n,a),c=e.findExpressionAround(n.ast,null,l,n.scope),p=r.getTemplatesForNode(o,c);if(p&&p.length>0)for(var d=0;d +Connection"}},"Exchange.!3":{type:"string"},"createExchangeErrorHandlerFor.!ret":"fn(err: ?)","Connection.prototype._bodyToBuffer.!ret":"[Connection.prototype._bodyToBuffer.!ret.]","Connection.prototype._bodyToBuffer.!ret.":{contentType:"string"},"Connection.prototype._parseURLOptions.!ret":{ssl:{enabled:"bool"}},"Connection.prototype._sendHeader.!2":{reserved1:"number",routingKey:"string",noWait:"bool"},"serializer.serializeFields.!2":{reserved1:"number",routingKey:"string",noWait:"bool"},"Queue.prototype.subscribeRaw.!0":{state:"string"},"Message.!1":{parseError:"+Error",rawData:"string"},"parseTable.!ret":{"!doc":"XXX check if bitIndex greater than 7?"},"parseFields.!1":"[?]","parseFields.!ret":{}},methods:{"":{"!doc":"debug(name);"},"!doc":"methods keyed on their name"},Channel:{prototype:{closeOK:"fn()",reconnect:"fn()",_taskPush:"fn(reply: ?, cb: ?)",_tasksFlush:"fn()",_handleTaskReply:"fn(channel: ?, method: ?, args: ?) -> bool",_onChannelMethod:"fn(channel: ?, method: ?, args: ?)",close:"fn(reason: ?)"},"!type":"fn(connection: +Connection, channel: number)","!doc":"This class is not exposed to the user."},Exchange:{prototype:{_onMethod:"fn(channel: ?, method: ?, args: ?) -> bool",publish:{"!type":"fn(routingKey: ?, data: ?, options: ?, callback: ?)","!doc":"exchange.publish('routing.key', 'body'); the third argument can specify additional options - mandatory (boolean, default false) - immediate (boolean, default false) - contentType (default 'application/octet-stream') - contentEncoding - headers - deliveryMode - priority (0-9) - correlationId - replyTo - expiration - messageId - timestamp - userId - appId - clusterId the callback is optional and is only used when confirm is turned on for the exchange"},_awaitConfirm:{"!type":"fn(task: ?, callback: ?)","!doc":"registers tasks for confirms"},cleanup:{"!type":"fn()","!doc":"do any necessary cleanups eg."},destroy:"fn(ifUnused: ?)",unbind:"fn()",bind:"fn()",bind_headers:"fn()"},"!type":"fn(connection: +Connection, channel: number, name: ?, options: Exchange.!3, openCallback: ?)",binds:"number",exchangeBinds:"number",sourceExchanges:{"":"+Exchange"},_sequence:"number",_unAcked:{},_addedExchangeErrorHandler:"bool",state:"string",channel:"number",connection:"+Connection",_tasks:"[?]"},createExchangeErrorHandlerFor:{"!type":"fn(exchange: +Exchange) -> fn(err: ?)","!doc":"creates an error handler scoped to the given `exchange`"},Connection:{prototype:{setOptions:"fn(options: ?)",setImplOptions:"fn(options: ?)",connect:"fn()",reconnect:"fn()",disconnect:"fn()",addAllListeners:"fn()",heartbeat:"fn()",exchange:{"!type":"fn(name: ?, options: Exchange.!3, openCallback: ?) -> +Exchange","!doc":"connection.exchange('my-exchange', { type: 'topic' }); Options - type 'fanout', 'direct', or 'topic' (default) - passive (boolean) - durable (boolean) - autoDelete (boolean, default true)"},exchangeClosed:{"!type":"fn(name: ?)","!doc":"remove an exchange when it's closed (called from Exchange)"},queue:{"!type":"fn(name: ?) -> +Queue","!doc":"Options - passive (boolean) - durable (boolean) - exclusive (boolean) - autoDelete (boolean, default true)"},queueClosed:{"!type":"fn(name: ?)","!doc":"remove a queue when it's closed (called from Queue)"},publish:{"!type":"fn(routingKey: ?, body: ?, options: ?, callback: ?)","!doc":"Publishes a message to the default exchange."},_bodyToBuffer:"fn(body: ?) -> [?]",_inboundHeartbeatTimerReset:"fn()",_outboundHeartbeatTimerReset:"fn()",_saslResponse:"fn() -> ?|string",_onMethod:"fn(channel: number, method: methods., args: parseFields.!ret)",_parseURLOptions:{"!type":"fn(connectionString: ?) -> Connection.prototype._parseURLOptions.!ret","!doc":"Generate connection options from URI string formatted with amqp scheme."},_chooseHost:{"!type":"fn() -> !this.options.host","!doc":"If you pass a array of hosts, lets choose a random host or the preferred host number, or then next one."},_createSocket:"fn()",end:"fn()",_getSSLOptions:"fn() -> !this.sslConnectionOptions",_startHandshake:{"!type":"fn()","!doc":"Time to start the AMQP 7-way connection initialization handshake! 1."},_sendBody:{"!type":"fn(channel: number, body: ?, properties: ?)","!doc":"Parse helpers "},_sendHeader:{"!type":"fn(channel: number, size: ?, properties: ?)","!doc":"connection: the connection channel: the channel to send this on size: size in bytes of the following message properties: an object containing any of the following: - contentType (default 'application/octet-stream') - contentEncoding - headers - deliveryMode - priority (0-9) - correlationId - replyTo - expiration - messageId - timestamp - userId - appId - clusterId"},_sendMethod:"fn(channel: number, method: ?, args: ?)",generateChannelId:{"!type":"fn() -> !this.channelCounter","!doc":"tries to find the next available id slot for a channel"}},"!type":"fn(connectionArgs: ?, options: ?, readyCallback: ?)",connectionAttemptScheduled:{"!type":"bool","!doc":"Set to false, so that if we fail in the reconnect attempt, we can schedule another one."},_defaultExchange:"+Exchange",channelCounter:"number",_blocked:"bool",channels:{"!doc":"In the case where this is a reconnection, do not trample on the existing channels.","":"+Queue"},exchanges:{"":"+Exchange"},parser:{"!type":"+AMQPParser","!doc":"Reset parser state"},readyEmitted:{"!type":"bool","!doc":"Set 'ready' flag for auth failure detection."},hosti:{"!type":"number","!doc":"If this is already set, it looks like we want to choose another one."},"":"fn()",sslConnectionOptions:{}},serializer:{serializeFloat:"fn(b: ?, size: number, value: ?, bigEndian: ?)",serializeInt:"fn(b: ?, size: number, int: number)",serializeShortString:"fn(b: ?, string: ?)",serializeLongString:"fn(b: ?, string: ?)",serializeDate:"fn(b: ?, date: ?)",serializeBuffer:"fn(b: ?, buffer: ?)",serializeBase64:"fn(b: ?, buffer: ?)",isBigInt:"fn(value: ?) -> bool",getCode:"fn(dec: ?) -> string",isFloat:"fn(value: ?) -> bool",serializeValue:"fn(b: ?, value: ?)",serializeTable:"fn(b: ?, object: ?)",serializeArray:"fn(b: ?, arr: ?)",serializeFields:"fn(buffer: ?, fields: ?, args: ?, strict: bool)"},methodTable:{"":{"":"methods."},"!doc":"a look up table for methods recieved indexed on class id, method id"},classes:{"!doc":"classes keyed on their index"},Queue:{prototype:{subscribeRaw:"fn(options: Queue.consumerTagListeners., messageListener: Queue.consumerTagListeners.)",unsubscribe:"fn(consumerTag: ?)",subscribe:"fn(options: ?, messageListener: ?)",shift:{"!type":"fn(reject: ?, requeue: ?)","!doc":"Acknowledges the last message"},bind:"fn(exchange: string, routingKey: string, callback: string)",unbind:"fn(exchange: string, routingKey: string)",bind_headers:"fn()",unbind_headers:"fn()",destroy:"fn(options: ?)",purge:"fn()",_onMethod:"fn(channel: ?, method: ?, args: ?)",_onContentHeader:"fn(channel: number, classInfo: ?, weight: number, properties: parseFields.!ret, size: number)",_onContent:"fn(channel: number, data: ?)",flow:"fn(active: ?)",subscribeJSON:"Queue.prototype.subscribe"},"!type":"fn(connection: +Connection, channel: number, name: ?, options: ?, callback: ?)",name:"string",_bindings:{"":{"":"number"}},consumerTagListeners:{"":{state:"string"}},consumerTagOptions:{"":"Queue.consumerTagListeners."},options:{autoDelete:"bool",closeChannelOnUnsubscribe:"bool"},state:"string",_bindCallback:"string",_sequence:"number",confirm:"bool",currentMessage:"+Message"},AMQPParser:{prototype:{throwError:{"!type":"fn(error: string)","!doc":"If there's an error in the parser, call the onError handler or throw"},execute:{"!type":"fn(data: ?)","!doc":"Everytime data is recieved on the socket, pass it to this function for parsing."},_parseMethodFrame:"fn(channel: number, buffer: ?)",_parseHeaderFrame:"fn(channel: number, buffer: ?)"},"!type":"fn(version: string, type: string)","!doc":"An interruptible AMQP parser.",isClient:"bool",state:"string",parse:"fn(data: ?) -> AMQPParser.parse",onMethod:"fn(channel: number, method: methods., args: parseFields.!ret)",onContent:"fn(channel: number, data: ?)",onContentHeader:"fn(channel: number, classInfo: ?, weight: number, properties: parseFields.!ret, size: number)",onHeartBeat:"fn()",onError:"fn(e: string)"},maxFrameBuffer:{"!type":"number","!doc":"parser"},channelMax:{"!type":"number","!doc":"copying qpid)"},defaultPorts:{amqp:"number",amqps:"number"},defaultOptions:{host:"string",port:"number",login:"string",password:"string",authMechanism:"string",vhost:"string",connectionTimeout:"number",ssl:{enabled:"bool"}},defaultSslOptions:{port:"number",ssl:{rejectUnauthorized:"bool"}},defaultImplOptions:{defaultExchangeName:"string",reconnect:"bool",reconnectBackoffStrategy:"string",reconnectExponentialLimit:"number",reconnectBackoffTime:"number"},defaultClientProperties:{platform:"string",product:"string"},Message:{prototype:{acknowledge:{"!type":"fn(all: ?)","!doc":"Acknowledge receipt of message."},reject:{"!type":"fn(requeue: ?)","!doc":"Reject an incoming message."}},"!type":"fn(queue: +Queue, args: ?)","!doc":"Properties: - routingKey - size - deliveryTag - contentType (default 'application/octet-stream') - contentEncoding - headers - deliveryMode - priority (0-9) - correlationId - replyTo - experation - messageId - timestamp - userId - appId - clusterId",queue:"+Queue",read:"number",size:"number"},parseShortString:"fn(buffer: ?)",parseLongString:"fn(buffer: ?)",parseSignedInteger:"fn(buffer: ?) -> !0.",parseValue:"fn(buffer: ?) -> !0.",parseTable:"fn(buffer: ?) -> parseTable.!ret",parseFields:"fn(buffer: ?, fields: [?]) -> parseFields.!ret",Error:{name:"string"},createConnection:"fn(options: Object, implOptions: Object, readyCallback: fn()) -> +Connection"}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require("../lib/comment"),require("acorn/dist/walk")):"function"==typeof define&&define.amd?define("tern/plugin/angular",["../lib/infer","../lib/tern","../lib/comment","acorn/dist/walk"],e):void e(tern,tern,tern.comment,acorn.walk)}(function(e,t,r,n){"use strict";function o(){this.fields=Object.create(null),this.forward=[]}function s(t){var r=e.cx().definitions.angular.service;return r.hasProp(t)?r.getProp(t):void 0}function a(t,r){var n=s(r);return n?n:t.injector&&t.injector?t.injector.get(r):e.ANull}function i(t,r,n,o){var s=[];if("FunctionExpression"==n.type)for(var i=0;i5&&(o=o.slice(0,s+1)),o=o.trim().replace(/\s*\n\s*\*\s*|\s{1,}/g," "),e.arguments[0].angularDoc=o}}}})}function u(t){var r=e.cx(),n=t["!name"],o=r.definitions[n];if("angular"!=n){var s=o&&o["!ng"];if(s)for(var a in s.props){var i=s.props[a].getType(),l=p(a.replace(/`/g,"."),i.metaData&&i.metaData.includes||[]);l.origin=n;for(var d in i.props){var u=i.props[d],h=u.getType();h&&(/^_inject_/.test(d)?(h.name||(h.name=d.slice(8)),l.injector.set(d.slice(8),h,u.doc,u.span)):i.props[d].propagate(l.defProp(d)))}}}else{var f=c(r),m=r.parent._angular.nakedModules;if(f)for(var g=0;g-1){var i=s.replace(/\./g,"`");if(n.defProp(i).addType(a),a.condenseForceInclude=!0,++o,a.injector)for(var l in a.injector.fields){var c=a.injector.fields[l];c.local&&(t.roots["!ng."+i+"._inject_"+l]=c)}}}o&&(t.roots["!ng"]=n)}function f(t){var r=e.cx().parent._angular.modules;for(var n in t.types){var o;if(o=n.match(/^!ng\.([^\.]+)\._inject_([^\.]+)^/)){var s=r[o[1].replace(/`/g,".")],a=s.injector.fields[o[2]],i=t.types[n];a.span&&(i.span=a.span),a.doc&&(i.doc=a.doc)}}}function m(e){e._angular={modules:Object.create(null),pendingImports:Object.create(null),nakedModules:[]}}var g=e.constraint({construct:function(e){this.doc=e},addType:function(e){e.doc||(e.doc=this.doc)}});o.prototype.get=function(t){if("$scope"==t)return new e.Obj(s("$rootScope").getType(),"$scope");if(t in this.fields)return this.fields[t];var r=this.fields[t]=new e.AVal;return r},o.prototype.set=function(t,r,n,o,s){if(!("$scope"==t||s&&s>10)){var a=this.fields[t]||(this.fields[t]=new e.AVal);s||(a.local=!0),a.origin||(a.origin=e.cx().curOrigin),"string"!=typeof o||a.span?o&&"object"==typeof o&&!a.originNode&&(a.originNode=o):a.span=o,n&&(a.doc=n,a.propagate(new g(n))),r.propagate(a);for(var i=0;i1){var o=i(n,t[1],r[1]);n.injector&&"Literal"==r[0].type&&n.injector.set(r[0].value,o,r[0].angularDoc,r[0])}}),e.registerFunction("angular_regFieldNew",function(e,t,r){var n=e.getType();if(n&&r&&r.length>1){var o=i(n,t[1],r[1],!0);n.injector&&"Literal"==r[0].type&&n.injector.set(r[0].value,o,r[0].angularDoc,r[0])}}),e.registerFunction("angular_regField",function(e,t,r){var n=e.getType();n&&n.injector&&r&&r[0]&&"Literal"==r[0].type&&t[1]&&n.injector.set(r[0].value,t[1],r[0].angularDoc,r[0])}),e.registerFunction("angular_module",function(t,r,n){var o,s=n&&n[0]&&"Literal"==n[0].type&&n[0].value;return"string"==typeof s&&(o=e.cx().parent._angular.modules[s]),o||(o=p(s,l(n&&n[1]))),o});var b=e.constraint({construct:function(e,t,r){this.self=e,this.args=t,this.target=r},addType:function(t){if(t instanceof e.Fn){this.target.addType(new e.Fn(t.name,t.self,t.args.slice(this.args.length),t.argNames.slice(this.args.length),t.retval)),this.self.propagate(t.self);for(var r=0;r ?",put:"fn(key: string, value: ?) -> !1",get:"fn(key: string) -> ?",remove:"fn(key: string)",removeAll:"fn()",destroy:"fn()"},eventObj:{targetScope:"service.$rootScope",currentScope:"service.$rootScope",name:"string",stopPropagation:"fn()",preventDefault:"fn()",defaultPrevented:"bool"},directiveObj:{multiElement:{"!type":"bool","!url":"https://docs.angularjs.org/api/ng/service/$compile#-multielement-","!doc":"When this property is set to true, the HTML compiler will collect DOM nodes between nodes with the attributes directive-name-start and directive-name-end, and group them together as the directive elements. It is recommended that this feature be used on directives which are not strictly behavioural (such as ngClick), and which do not manipulate or replace child nodes (such as ngInclude)."},priority:{"!type":"number","!url":"https://docs.angularjs.org/api/ng/service/$compile#-priority-","!doc":"When there are multiple directives defined on a single DOM element, sometimes it is necessary to specify the order in which the directives are applied. The priority is used to sort the directives before their compile functions get called. Priority is defined as a number. Directives with greater numerical priority are compiled first. Pre-link functions are also run in priority order, but post-link functions are run in reverse order. The order of directives with the same priority is undefined. The default priority is 0."},terminal:{"!type":"bool","!url":"https://docs.angularjs.org/api/ng/service/$compile#-terminal-","!doc":"If set to true then the current priority will be the last set of directives which will execute (any directives at the current priority will still execute as the order of execution on same priority is undefined). Note that expressions and other directives used in the directive's template will also be excluded from execution."},scope:{"!type":"?","!url":"https://docs.angularjs.org/api/ng/service/$compile#-scope-","!doc":"If set to true, then a new scope will be created for this directive. If multiple directives on the same element request a new scope, only one new scope is created. The new scope rule does not apply for the root of the template since the root of the template always gets a new scope. If set to {} (object hash), then a new 'isolate' scope is created. The 'isolate' scope differs from normal scope in that it does not prototypically inherit from the parent scope. This is useful when creating reusable components, which should not accidentally read or modify data in the parent scope."},bindToController:{"!type":"bool","!url":"https://docs.angularjs.org/api/ng/service/$compile#-bindtocontroller-","!doc":"When an isolate scope is used for a component (see above), and controllerAs is used, bindToController: true will allow a component to have its properties bound to the controller, rather than to scope. When the controller is instantiated, the initial values of the isolate scope bindings are already available."},controller:{"!type":"fn()","!url":"https://docs.angularjs.org/api/ng/service/$compile#-require-","!doc":"Controller constructor function. The controller is instantiated before the pre-linking phase and it is shared with other directives (see require attribute). This allows the directives to communicate with each other and augment each other's behavior."},require:{"!type":"string","!url":"https://docs.angularjs.org/api/ng/service/$compile#-controller-","!doc":"Require another directive and inject its controller as the fourth argument to the linking function. The require takes a string name (or array of strings) of the directive(s) to pass in. If an array is used, the injected argument will be an array in corresponding order. If no such directive can be found, or if the directive does not have a controller, then an error is raised."},controllerAs:{"!type":"string","!url":"https://docs.angularjs.org/api/ng/service/$compile#-controlleras-","!doc":"Controller alias at the directive scope. An alias for the controller so it can be referenced at the directive template. The directive needs to define a scope for this configuration to be used. Useful in the case when directive is used as component."},restrict:{"!type":"string","!url":"https://docs.angularjs.org/api/ng/service/$compile#-restrict-","!doc":"String of subset of EACM which restricts the directive to a specific directive declaration style. If omitted, the defaults (elements and attributes) are used. E - Element name (default): . A - Attribute (default):
    . C - Class:
    . M - Comment: "},templateNamespace:{"!type":"string","!url":"https://docs.angularjs.org/api/ng/service/$compile#-templatenamespace-","!doc":"String representing the document type used by the markup in the template. AngularJS needs this information as those elements need to be created and cloned in a special way when they are defined outside their usual containers like and ."},template:{"!type":"string","!url":"https://docs.angularjs.org/api/ng/service/$compile#-template-","!doc":"HTML markup that may: Replace the contents of the directive's element (default). Replace the directive's element itself (if replace is true - DEPRECATED). Wrap the contents of the directive's element (if transclude is true)."},templateUrl:{"!type":"string","!url":"https://docs.angularjs.org/api/ng/service/$compile#-templateurl-","!doc":"This is similar to template but the template is loaded from the specified URL, asynchronously."},transclude:{"!type":"bool","!url":"https://docs.angularjs.org/api/ng/service/$compile#-transclude-","!doc":"Extract the contents of the element where the directive appears and make it available to the directive. The contents are compiled and provided to the directive as a transclusion function."},compile:{"!type":"fn(tElement: +Element, tAttrs: +Attr)","!url":"https://docs.angularjs.org/api/ng/service/$compile#-transclude-","!doc":"The compile function deals with transforming the template DOM. Since most directives do not do template transformation, it is not used often."},link:{"!type":"fn(scope: ?, iElement: +Element, iAttrs: +Attr, controller: ?, transcludeFn: fn())","!url":"https://docs.angularjs.org/api/ng/service/$compile#-link-","!doc":"The link function is responsible for registering DOM listeners as well as updating the DOM. It is executed after the template has been cloned. This is where most of the directive logic will be put."}},Module:{"!url":"http://docs.angularjs.org/api/angular.Module","!doc":"Interface for configuring angular modules.",prototype:{animation:{"!type":"fn(name: string, animationFactory: fn()) -> !this","!url":"http://docs.angularjs.org/api/angular.Module#animation","!doc":"Defines an animation hook that can be later used with $animate service and directives that use this service."},config:{"!type":"fn(configFn: fn()) -> !this","!effects":["custom angular_callInject 0"],"!url":"http://docs.angularjs.org/api/angular.Module#config","!doc":"Use this method to register work which needs to be performed on module loading."},constant:"service.$provide.constant",controller:{"!type":"fn(name: string, constructor: fn()) -> !this","!effects":["custom angular_regFieldCall"],"!url":"http://docs.angularjs.org/api/ng.$controllerProvider","!doc":"Register a controller."},directive:{"!type":"fn(name: string, directiveFactory: fn() -> directiveObj) -> !this","!effects":["custom angular_regFieldCall"],"!url":"http://docs.angularjs.org/api/ng.$compileProvider#directive","!doc":"Register a new directive with the compiler."},factory:"service.$provide.factory",filter:{"!type":"fn(name: string, filterFactory: fn()) -> !this","!effects":["custom angular_callInject 1"],"!url":"http://docs.angularjs.org/api/ng.$filterProvider","!doc":"Register filter factory function."},provider:"service.$provide.provider",run:{"!type":"fn(initializationFn: fn()) -> !this","!effects":["custom angular_callInject 0"],"!url":"http://docs.angularjs.org/api/angular.Module#run","!doc":"Register work which should be performed when the injector is done loading all modules."},service:"service.$provide.service",value:"service.$provide.value",name:{"!type":"string","!url":"http://docs.angularjs.org/api/angular.Module#name","!doc":"Name of the module."},requires:{"!type":"[string]","!url":"http://docs.angularjs.org/api/angular.Module#requires","!doc":"List of module names which must be loaded before this module."}}},Promise:{"!url":"http://docs.angularjs.org/api/ng.$q","!doc":"Allow for interested parties to get access to the result of the deferred task when it completes.",prototype:{then:"fn(successCallback: fn(value: ?), errorCallback: fn(reason: ?), notifyCallback: fn(value: ?)) -> +Promise","catch":"fn(errorCallback: fn(reason: ?))","finally":"fn(callback: fn()) -> +Promise",success:"fn(callback: fn(data: ?, status: number, headers: ?, config: ?)) -> +Promise",error:"fn(callback: fn(data: ?, status: number, headers: ?, config: ?)) -> +Promise"}},Deferred:{"!url":"http://docs.angularjs.org/api/ng.$q",prototype:{resolve:"fn(value: ?)",reject:"fn(reason: ?)",notify:"fn(value: ?)",promise:"+Promise"}},ResourceClass:{"!url":"http://docs.angularjs.org/api/ngResource.$resource",prototype:{$promise:"+Promise",$save:"fn()"}},Resource:{"!url":"http://docs.angularjs.org/api/ngResource.$resource",prototype:{get:"fn(params: ?, callback: fn()) -> +ResourceClass",save:"fn(params: ?, callback: fn()) -> +ResourceClass",query:"fn(params: ?, callback: fn()) -> +ResourceClass",remove:"fn(params: ?, callback: fn()) -> +ResourceClass","delete":"fn(params: ?, callback: fn()) -> +ResourceClass"}},service:{$anchorScroll:{"!type":"fn()","!url":"http://docs.angularjs.org/api/ng.$anchorScroll","!doc":"Checks current value of $location.hash() and scroll to related element."},$animate:{"!url":"http://docs.angularjs.org/api/ng.$animate","!doc":"Rudimentary DOM manipulation functions to insert, remove, move elements within the DOM.",addClass:{"!type":"fn(element: +Element, className: string, done?: fn()) -> !this","!url":"http://docs.angularjs.org/api/ng.$animate#addClass","!doc":"Adds the provided className CSS class value to the provided element."},enter:{"!type":"fn(element: +Element, parent: +Element, after: +Element, done?: fn()) -> !this","!url":"http://docs.angularjs.org/api/ng.$animate#enter","!doc":"Inserts the element into the DOM either after the after element or within the parent element."},leave:{"!type":"fn(element: +Element, done?: fn()) -> !this","!url":"http://docs.angularjs.org/api/ng.$animate#leave","!doc":"Removes the element from the DOM."},move:{"!type":"fn(element: +Element, parent: +Element, after: +Element, done?: fn()) -> !this","!url":"http://docs.angularjs.org/api/ng.$animate#move","!doc":"Moves element to be placed either after the after element or inside of the parent element."},removeClass:{"!type":"fn(element: +Element, className: string, done?: fn()) -> !this","!url":"http://docs.angularjs.org/api/ng.$animate#removeClass","!doc":"Removes the provided className CSS class value from the provided element."}},$cacheFactory:{"!type":"fn(cacheId: string, options?: ?) -> cacheObj","!url":"http://docs.angularjs.org/api/ng.$cacheFactory","!doc":"Factory that constructs cache objects and gives access to them."},$compile:{"!type":"fn(element: +Element, transclude: fn(scope: ?), maxPriority: number)","!url":"http://docs.angularjs.org/api/ng.$compile","!doc":"Compiles a piece of HTML string or DOM into a template and produces a template function."},$controller:{"!type":"fn(controller: fn(), locals: ?) -> ?","!url":"http://docs.angularjs.org/api/ng.$controller","!doc":"Instantiates controllers."},$document:{"!type":"jQuery.fn","!url":"http://docs.angularjs.org/api/ng.$document","!doc":"A jQuery (lite)-wrapped reference to the browser's window.document element."},$exceptionHandler:{"!type":"fn(exception: +Error, cause?: string)","!url":"http://docs.angularjs.org/api/ng.$exceptionHandler","!doc":"Any uncaught exception in angular expressions is delegated to this service."},$filter:{"!type":"fn(name: string) -> fn(input: string) -> string","!url":"http://docs.angularjs.org/api/ng.$filter","!doc":"Retrieve a filter function."},$http:{"!type":"fn(config: ?) -> service.$q","!url":"http://docs.angularjs.org/api/ng.$http","!doc":"Facilitates communication with remote HTTP servers.","delete":"fn(url: string, config?: ?) -> +Promise",get:"fn(url: string, config?: ?) -> +Promise",head:"fn(url: string, config?: ?) -> +Promise",jsonp:"fn(url: string, config?: ?) -> +Promise",post:"fn(url: string, data: ?, config?: ?) -> +Promise",put:"fn(url: string, data: ?, config?: ?) -> +Promise"},$interpolate:{"!type":"fn(text: string, mustHaveExpression?: bool, trustedContext?: string) -> fn(context: ?) -> string","!url":"http://docs.angularjs.org/api/ng.$interpolate","!doc":"Compiles a string with markup into an interpolation function."},$locale:{"!url":"http://docs.angularjs.org/api/ng.$locale",id:"string"},$location:{"!url":"http://docs.angularjs.org/api/ng.$location","!doc":"Parses the URL in the browser address bar.",absUrl:{"!type":"fn() -> string","!url":"http://docs.angularjs.org/api/ng.$location#absUrl","!doc":"Return full url representation."},hash:{"!type":"fn(value?: string) -> string","!url":"http://docs.angularjs.org/api/ng.$location#hash","!doc":"Get or set the hash fragment."},host:{"!type":"fn() -> string","!url":"http://docs.angularjs.org/api/ng.$location#host","!doc":"Return host of current url."},path:{"!type":"fn(value?: string) -> string","!url":"http://docs.angularjs.org/api/ng.$location#path","!doc":"Get or set the URL path."},port:{"!type":"fn() -> number","!url":"http://docs.angularjs.org/api/ng.$location#port","!doc":"Returns the port of the current url."},protocol:{"!type":"fn() -> string","!url":"http://docs.angularjs.org/api/ng.$location#protocol","!doc":"Return protocol of current url."},replace:{"!type":"fn()","!url":"http://docs.angularjs.org/api/ng.$location#replace","!doc":"Changes to $location during current $digest will be replacing current history record, instead of adding new one."},search:{"!type":"fn(search: string, paramValue?: string) -> string","!url":"http://docs.angularjs.org/api/ng.$location#search","!doc":"Get or set the URL query."},url:{"!type":"fn(url: string, replace?: string) -> string","!url":"http://docs.angularjs.org/api/ng.$location#url","!doc":"Get or set the current url."}},$log:{"!url":"http://docs.angularjs.org/api/ng.$log","!doc":"Simple service for logging.",debug:{"!type":"fn(message: string)","!url":"http://docs.angularjs.org/api/ng.$log#debug","!doc":"Write a debug message."},error:{"!type":"fn(message: string)","!url":"http://docs.angularjs.org/api/ng.$log#error","!doc":"Write an error message."},info:{"!type":"fn(message: string)","!url":"http://docs.angularjs.org/api/ng.$log#info","!doc":"Write an info message."},log:{"!type":"fn(message: string)","!url":"http://docs.angularjs.org/api/ng.$log#log","!doc":"Write a log message."},warn:{"!type":"fn(message: string)","!url":"http://docs.angularjs.org/api/ng.$log#warn","!doc":"Write a warning message."}},$parse:{"!type":"fn(expression: string) -> fn(context: ?, locals: ?) -> ?","!url":"http://docs.angularjs.org/api/ng.$parse","!doc":"Converts Angular expression into a function."},$q:{"!type":"fn(executor: fn(resolve: fn(value: ?) -> +Promise, reject: fn(value: ?) -> +Promise)) -> +Promise","!url":"http://docs.angularjs.org/api/ng.$q","!doc":"A promise/deferred implementation.",all:{"!type":"fn(promises: [+Promise]) -> +Promise","!url":"http://docs.angularjs.org/api/ng.$q#all","!doc":"Combines multiple promises into a single promise."},defer:{"!type":"fn() -> +Deferred","!url":"http://docs.angularjs.org/api/ng.$q#defer","!doc":"Creates a Deferred object which represents a task which will finish in the future."},reject:{"!type":"fn(reason: ?) -> +Promise","!url":"http://docs.angularjs.org/api/ng.$q#reject","!doc":"Creates a promise that is resolved as rejected with the specified reason."},when:{"!type":"fn(value: ?) -> +Promise","!url":"http://docs.angularjs.org/api/ng.$q#when","!doc":"Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise."}},$rootElement:{"!type":"+Element","!url":"http://docs.angularjs.org/api/ng.$rootElement","!doc":"The root element of Angular application."},$rootScope:{"!url":"http://docs.angularjs.org/api/ng.$rootScope",$apply:{"!type":"fn(expression: string)","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$apply","!doc":"Execute an expression in angular from outside of the angular framework."},$broadcast:{"!type":"fn(name: string, args?: ?) -> eventObj","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$broadcast","!doc":"Dispatches an event name downwards to all child scopes."},$destroy:{"!type":"fn()","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy","!doc":"Removes the current scope (and all of its children) from the parent scope."},$digest:{"!type":"fn()","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$digest","!doc":"Processes all of the watchers of the current scope and its children."},$emit:{"!type":"fn(name: string, args?: ?) -> eventObj","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$emit","!doc":"Dispatches an event name upwards through the scope hierarchy."},$eval:{"!type":"fn(expression: string) -> ?","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$eval","!doc":"Executes the expression on the current scope and returns the result."},$evalAsync:{"!type":"fn(expression: string)","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$evalAsync","!doc":"Executes the expression on the current scope at a later point in time."},$new:{"!type":"fn(isolate: bool) -> service.$rootScope","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$new","!doc":"Creates a new child scope."},$on:{"!type":"fn(name: string, listener: fn(event: ?)) -> fn()","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$on","!doc":"Listens on events of a given type."},$watch:{"!type":"fn(watchExpression: string, listener?: fn(), objectEquality?: bool) -> fn()","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$watch","!doc":"Registers a listener callback to be executed whenever the watchExpression changes."},$watchCollection:{"!type":"fn(obj: string, listener: fn()) -> fn()","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$watchCollection","!doc":"Shallow watches the properties of an object and fires whenever any of the properties."},$id:{"!type":"number","!url":"http://docs.angularjs.org/api/ng.$rootScope.Scope#$id","!doc":"Unique scope ID."}},$sce:{HTML:"string",CSS:"string",URL:"string",RESOURCE_URL:"string",JS:"string",getTrusted:"fn(type: string, maybeTrusted: ?) -> !1",getTrustedCss:"fn(maybeTrusted: ?) -> !0",getTrustedHtml:"fn(maybeTrusted: ?) -> !0",getTrustedJs:"fn(maybeTrusted: ?) -> !0",getTrustedResourceUrl:"fn(maybeTrusted: ?) -> !0",getTrustedUrl:"fn(maybeTrusted: ?) -> !0",parse:"fn(type: string, expression: string) -> fn(context: ?, locals: ?) -> ?",parseAsCss:"fn(expression: string) -> fn(context: ?, locals: ?) -> ?",parseAsHtml:"fn(expression: string) -> fn(context: ?, locals: ?) -> ?",parseAsJs:"fn(expression: string) -> fn(context: ?, locals: ?) -> ?",parseAsResourceUrl:"fn(expression: string) -> fn(context: ?, locals: ?) -> ?",parseAsUrl:"fn(expression: string) -> fn(context: ?, locals: ?) -> ?",trustAs:"fn(type: string, value: ?) -> !1",trustAsHtml:"fn(value: ?) -> !0",trustAsJs:"fn(value: ?) -> !0",trustAsResourceUrl:"fn(value: ?) -> !0",trustAsUrl:"fn(value: ?) -> !0",isEnabled:"fn() -> bool"},$templateCache:{"!url":"http://docs.angularjs.org/api/ng.$templateCache","!proto":"cacheObj"},$timeout:{"!type":"fn(fn: fn(), delay?: number, invokeApply?: bool) -> +Promise","!url":"http://docs.angularjs.org/api/ng.$timeout","!doc":"Angular's wrapper for window.setTimeout.",cancel:"fn(promise: +Promise)"},$window:"",$injector:{"!url":"http://docs.angularjs.org/api/AUTO.$injector","!doc":"Retrieve object instances as defined by provider.",annotate:{"!type":"fn(f: fn()) -> [string]","!url":"http://docs.angularjs.org/api/AUTO.$injector#annotate","!doc":"Returns an array of service names which the function is requesting for injection."},get:{"!type":"fn(name: string) -> ?","!url":"http://docs.angularjs.org/api/AUTO.$injector#get","!doc":"Return an instance of a service."},has:{"!type":"fn(name: string) -> bool","!url":"http://docs.angularjs.org/api/AUTO.$injector#has","!doc":"Allows the user to query if the particular service exist."},instantiate:{"!type":"fn(type: fn(), locals?: ?) -> +!0","!url":"http://docs.angularjs.org/api/AUTO.$injector#instantiate","!doc":"Create a new instance of JS type."},invoke:{"!type":"fn(type: fn(), self?: ?, locals?: ?) -> !0.!ret","!url":"http://docs.angularjs.org/api/AUTO.$injector#invoke","!doc":"Invoke the method and supply the method arguments from the $injector."}},$provide:{"!url":"http://docs.angularjs.org/api/AUTO.$provide","!doc":"Use $provide to register new providers with the $injector.",constant:{"!type":"fn(name: string, value: ?) -> !this","!effects":["custom angular_regField"],"!url":"http://docs.angularjs.org/api/AUTO.$provide#constant","!doc":"A constant value."},decorator:{"!type":"fn(name: string, decorator: fn())","!effects":["custom angular_regFieldCall"],"!url":"http://docs.angularjs.org/api/AUTO.$provide#decorator","!doc":"Decoration of service, allows the decorator to intercept the service instance creation."},factory:{"!type":"fn(name: string, providerFunction: fn()) -> !this","!effects":["custom angular_regFieldCall"],"!url":"http://docs.angularjs.org/api/AUTO.$provide#factory","!doc":"A short hand for configuring services if only $get method is required."},provider:{"!type":"fn(name: string, providerType: fn()) -> !this","!effects":["custom angular_regFieldCall"],"!url":"http://docs.angularjs.org/api/AUTO.$provide#provider","!doc":"Register a provider for a service."},service:{"!type":"fn(name: string, constructor: fn()) -> !this","!effects":["custom angular_regFieldNew"],"!url":"http://docs.angularjs.org/api/AUTO.$provide#provider","!doc":"Register a provider for a service."},value:{"!type":"fn(name: string, object: ?) -> !this","!effects":["custom angular_regField"],"!url":"http://docs.angularjs.org/api/AUTO.$providevalue","!doc":"A short hand for configuring services if the $get method is a constant."}},$cookies:{"!url":"http://docs.angularjs.org/api/ngCookies.$cookies","!doc":"Provides read/write access to browser's cookies.",text:"string"},$resource:{"!type":"fn(url: string, paramDefaults?: ?, actions?: ?) -> +Resource","!url":"http://docs.angularjs.org/api/ngResource.$resource","!doc":"Creates a resource object that lets you interact with RESTful server-side data sources."},$route:{"!url":"http://docs.angularjs.org/api/ngRoute.$route","!doc":"Deep-link URLs to controllers and views.",reload:{"!type":"fn()","!url":"http://docs.angularjs.org/api/ngRoute.$route#reload","!doc":"Reload the current route even if $location hasn't changed."},current:{"!url":"http://docs.angularjs.org/api/ngRoute.$route#current","!doc":"Reference to the current route definition.",controller:"?",locals:"?"},routes:"[?]"},$sanitize:{"!type":"fn(string) -> string","!url":"http://docs.angularjs.org/api/ngSanitize.$sanitize","!doc":"Sanitize HTML input."},$swipe:{"!url":"http://docs.angularjs.org/api/ngTouch.$swipe","!doc":"A service that abstracts the messier details of hold-and-drag swipe behavior.",bind:{"!type":"fn(element: +Element, handlers: ?)","!url":"http://docs.angularjs.org/api/ngTouch.$swipe#bind","!doc":"Abstracts the messier details of hold-and-drag swipe behavior."}}}},angular:{bind:{"!type":"fn(self: ?, fn: fn(), args?: ?) -> !custom:angular_bind","!url":"http://docs.angularjs.org/api/angular.bind","!doc":"Returns a function which calls function fn bound to self."},bootstrap:{"!type":"fn(element: +Element, modules?: [string]) -> service.$injector","!url":"http://docs.angularjs.org/api/angular.bootstrap","!doc":"Use this function to manually start up angular application."},copy:{"!type":"fn(source: ?, target?: ?) -> !0","!url":"http://docs.angularjs.org/api/angular.copy","!doc":"Creates a deep copy of source, which should be an object or an array."},element:{"!type":"fn(element: +Element) -> jQuery.fn","!url":"http://docs.angularjs.org/api/angular.element","!doc":"Wraps a raw DOM element or HTML string as a jQuery element."},equals:{"!type":"fn(o1: ?, o2: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.equals","!doc":"Determines if two objects or two values are equivalent."},extend:{"!type":"fn(dst: ?, src: ?) -> !0","!url":"http://docs.angularjs.org/api/angular.extend","!doc":"Extends the destination object dst by copying all of the properties from the src object(s) to dst."},forEach:{"!type":"fn(obj: ?, iterator: fn(value: ?, key: ?), context?: ?) -> !0","!effects":["call !1 this=!2 !0. number"],"!url":"http://docs.angularjs.org/api/angular.forEach","!doc":"Invokes the iterator function once for each item in obj collection, which can be either an object or an array."},fromJson:{"!type":"fn(json: string) -> ?","!url":"http://docs.angularjs.org/api/angular.fromJson","!doc":"Deserializes a JSON string."},identity:{"!type":"fn(val: ?) -> !0","!url":"http://docs.angularjs.org/api/angular.identity","!doc":"A function that returns its first argument."},injector:{"!type":"fn(modules: [string]) -> service.$injector","!url":"http://docs.angularjs.org/api/angular.injector","!doc":"Creates an injector function"},isArray:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isArray","!doc":"Determines if a reference is an Array."},isDate:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isDate","!doc":"Determines if a reference is a date."},isDefined:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isDefined","!doc":"Determines if a reference is defined."},isElement:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isElement","!doc":"Determines if a reference is a DOM element."},isFunction:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isFunction","!doc":"Determines if a reference is a function."},isNumber:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isNumber","!doc":"Determines if a reference is a number."},isObject:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isObject","!doc":"Determines if a reference is an object."},isString:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isString","!doc":"Determines if a reference is a string."},isUndefined:{"!type":"fn(val: ?) -> bool","!url":"http://docs.angularjs.org/api/angular.isUndefined","!doc":"Determines if a reference is undefined."},lowercase:{"!type":"fn(val: string) -> string","!url":"http://docs.angularjs.org/api/angular.lowercase","!doc":"Converts the specified string to lowercase."},module:{"!type":"fn(name: string, deps: [string]) -> !custom:angular_module","!url":"http://docs.angularjs.org/api/angular.module","!doc":"A global place for creating, registering and retrieving Angular modules."},Module:"Module",noop:{"!type":"fn()","!url":"http://docs.angularjs.org/api/angular.noop","!doc":"A function that performs no operations."},toJson:{"!type":"fn(val: ?) -> string","!url":"http://docs.angularjs.org/api/angular.toJson","!doc":"Serializes input into a JSON-formatted string."},uppercase:{"!type":"fn(string) -> string","!url":"http://docs.angularjs.org/api/angular.uppercase","!doc":"Converts the specified string to uppercase."},version:{"!url":"http://docs.angularjs.org/api/angular.version",full:"string",major:"number",minor:"number",dot:"number",codename:"string"}}} +}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/orionExpress",["../lib/infer","../lib/tern","./resolver"],e):void e(infer,tern,resolver)}(function(e,t,r){function n(n,s,a,i){var l=t.resolvePos(n,a),c=e.findExpressionAround(n.ast,null,l,n.scope),p=r.getTemplatesForNode(o,c);if(p&&p.length>0)for(var d=0;d IRoute",get:"fn(handler: [RequestHandler]) -> IRoute",post:"fn(handler: [RequestHandler]) -> IRoute",put:"fn(handler: [RequestHandler]) -> IRoute","delete":"fn(handler: [RequestHandler]) -> IRoute",patch:"fn(handler: [RequestHandler]) -> IRoute",options:"fn(handler: [RequestHandler]) -> IRoute"},Router:{"!type":"fn(options?: ?) -> Router",prototype:{param:"fn(name: string, handler: RequestParamHandler) -> T",all:"?",get:"?",post:"?",put:"?","delete":"?",patch:"?",options:"?",route:"fn(path: string) -> IRoute",use:"fn(handler: [RequestHandler]) -> T"}},CookieOptions:{maxAge:"number",signed:"bool",expires:"Date",httpOnly:"bool",path:"string",domain:"string",secure:"bool"},Errback:{},Request:{get:"fn(name: string) -> string",header:"fn(name: string) -> string",headers:{},accepts:"fn(type: string) -> string",acceptsCharset:"fn(charset: string) -> bool",acceptsLanguage:"fn(lang: string) -> bool",range:"fn(size: number) -> [?]",accepted:"[MediaType]",acceptedLanguages:"[?]",acceptedCharsets:"[?]",param:"fn(name: string, defaultValue?: ?) -> string",is:"fn(type: string) -> bool",protocol:"string",secure:"bool",ip:"string",ips:"[string]",subdomains:"[string]",path:"string",hostname:"string",host:"string",fresh:"bool",stale:"bool",xhr:"bool",body:"?",cookies:"?",method:"string",params:"?",user:"?",authenticatedUser:"?",files:"?",clearCookie:"fn(name: string, options?: ?) -> Response",query:"?",route:"?",signedCookies:"?",originalUrl:"string",url:"string"},MediaType:{value:"string",quality:"number",type:"string",subtype:"string"},Send:{},Response:{status:"fn(code: number) -> Response",sendStatus:"fn(code: number) -> Response",links:"fn(links: ?) -> Response",send:"Send",json:"Send",jsonp:"Send",sendFile:"fn(path: string)",sendfile:"fn(path: string)",download:"fn(path: string)",contentType:"fn(type: string) -> Response",type:"fn(type: string) -> Response",format:"fn(obj: ?) -> Response",attachment:"fn(filename?: string) -> Response",set:"fn(field: ?) -> Response",header:"fn(field: ?) -> Response",headersSent:"bool",get:"fn(field: string) -> string",clearCookie:"fn(name: string, options?: ?) -> Response",cookie:"fn(name: string, val: string, options: CookieOptions) -> Response",location:"fn(url: string) -> Response",redirect:"fn(url: string)",render:"fn(view: string, options?: Object, callback?: fn(err: Error, html: string))",locals:"?",charset:"string"},ErrorRequestHandler:{},RequestHandler:{},Handler:{},RequestParamHandler:{},Application:{init:"fn()",defaultConfiguration:"fn()",engine:"fn(ext: string, fn: Function) -> Application",set:"fn(setting: string, val: ?) -> Application",get:{},path:"fn() -> string",enabled:"fn(setting: string) -> bool",disabled:"fn(setting: string) -> bool",enable:"fn(setting: string) -> Application",disable:"fn(setting: string) -> Application",configure:"fn(fn: Function) -> Application",render:"fn(name: string, options?: Object, callback?: fn(err: Error, html: string))",listen:"fn(port: number, hostname: string, backlog: number, callback?: Function) -> http.Server",route:"fn(path: string) -> IRoute",router:"string",settings:"?",resource:"?",map:"?",locals:"?",routes:"?"},Express:{version:"string",mime:"string",createApplication:"fn() -> Application",createServer:"fn() -> Application",application:"?",request:"Request",response:"Response"},"static":"fn(root: string, options?: ?) -> RequestHandler"},"!name":"express","!define":{"!node":{express:{"!type":"fn() -> express.Application","!url":"http://expressjs.com","!doc":"Creates an express application.",Router:{"!type":"fn(options?: express.RouterOptions) -> +express.Router"}}}}}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/orionMongoDB",["../lib/infer","../lib/tern","./resolver"],e):void e(infer,tern,resolver)}(function(e,t,r){function n(n,s,a,i){var l=t.resolvePos(n,a),c=e.findExpressionAround(n.ast,null,l,n.scope),p=r.getTemplatesForNode(o,c);if(p&&p.length>0)for(var d=0;d ?"}},Db:{"!type":"fn(databaseName: string, serverConfig: Server, dbOptions?: DbCreateOptions)",prototype:{db:"fn(dbName: string) -> Db",open:"fn(callback: fn(err: Error, db: Db))",close:"fn(forceClose?: bool, callback?: fn(err: Error, result: ?))",admin:"fn(callback: fn(err: Error, result: ?)) -> ?",collectionsInfo:"fn(collectionName: string, callback?: fn(err: Error, result: ?))",collectionNames:"fn(collectionName: string, options: ?, callback?: fn(err: Error, result: ?))",collection:"fn(collectionName: string) -> Collection",collections:"fn(callback: fn(err: Error, collections: [Collection]))",eval:"fn(code: ?, parameters: [?], options?: ?, callback?: fn(err: Error, result: ?))",logout:"fn(options: ?, callback?: fn(err: Error, result: ?))",authenticate:"fn(userName: string, password: string, callback?: fn(err: Error, result: ?))",addUser:"fn(username: string, password: string, callback?: fn(err: Error, result: ?))",removeUser:"fn(username: string, callback?: fn(err: Error, result: ?))",createCollection:"fn(collectionName: string, callback?: fn(err: Error, result: Collection))",command:"fn(selector: Object, callback?: fn(err: Error, result: ?))",dropCollection:"fn(collectionName: string, callback?: fn(err: Error, result: ?))",renameCollection:"fn(fromCollection: string, toCollection: string, callback?: fn(err: Error, result: ?))",lastError:"fn(options: Object, connectionOptions: ?, callback: fn(err: Error, result: ?))",previousError:"fn(options: Object, callback: fn(err: Error, result: ?))",executeDbCommand:"fn(command_hash: ?, callback?: fn(err: Error, result: ?))",executeDbAdminCommand:"fn(command_hash: ?, callback?: fn(err: Error, result: ?))",resetErrorHistory:"fn(callback?: fn(err: Error, result: ?))",createIndex:"fn(collectionName: ?, fieldOrSpec: ?, options: IndexOptions, callback: Function)",ensureIndex:"fn(collectionName: ?, fieldOrSpec: ?, options: IndexOptions, callback: Function)",cursorInfo:"fn(options: ?, callback: Function)",dropIndex:"fn(collectionName: string, indexName: string, callback: Function)",reIndex:"fn(collectionName: string, callback: Function)",indexInformation:"fn(collectionName: string, options: ?, callback: Function)",dropDatabase:"fn(callback: fn(err: Error, result: ?))",stats:"fn(options: ?, callback: Function)",_registerHandler:"fn(db_command: ?, raw: ?, connection: ?, exhaust: ?, callback: Function)",_reRegisterHandler:"fn(newId: ?, object: ?, callback: Function)",_callHandler:"fn(id: ?, document: ?, err: ?) -> ?",_hasHandler:"fn(id: ?) -> ?",_removeHandler:"fn(id: ?) -> ?",_findHandler:"fn(id: ?) -> ret",__executeQueryCommand:"fn(self: ?, db_command: ?, options: ?, callback: ?)",DEFAULT_URL:"string",connect:"fn(url: string, options: Object, callback: fn(err: Error, result: ?))",addListener:"fn(event: string, handler: fn(param: ?)) -> ?"}},SocketOptions:{timeout:"number",noDelay:"bool",keepAlive:"number",encoding:"string"},ServerOptions:{auto_reconnect:"bool",poolSize:"number",socketOptions:"?"},PKFactory:{counter:"number",createPk:"fn()"},DbCreateOptions:{w:"?",wtimeout:"number",fsync:"bool",journal:"bool",readPreference:"string",native_parser:"bool",forceServerObjectId:"bool",pkFactory:"PKFactory",serializeFunctions:"bool",raw:"bool",recordQueryStats:"bool",retryMiliSeconds:"number",numberOfRetries:"number",logger:"Object",slaveOk:"number",promoteLongs:"bool"},ReadPreference:{PRIMARY:"string",PRIMARY_PREFERRED:"string",SECONDARY:"string",SECONDARY_PREFERRED:"string",NEAREST:"string",prototype:{}},CollectionCreateOptions:{readPreference:"string",slaveOk:"bool",serializeFunctions:"bool",raw:"bool",pkFactory:"PKFactory"},CollStats:{ns:"string",count:"number",size:"number",avgObjSize:"number",storageSize:"number",numExtents:"number",nindexes:"number",lastExtentSize:"number",paddingFactor:"number",flags:"number",totalIndexSize:"number",indexSizes:{_id_:"number",username:"number"}},Collection:{insert:"fn(query: ?, callback: fn(err: Error, result: ?))",remove:"fn(selector: Object, callback?: fn(err: Error, result: ?))",rename:"fn(newName: String, callback?: fn(err: Error, result: ?))",save:"fn(doc: ?, callback: fn(err: Error, result: ?))",update:"fn(selector: Object, document: ?, callback?: fn(err: Error, result: ?))",distinct:"fn(key: string, query: Object, callback: fn(err: Error, result: ?))",count:"fn(callback: fn(err: Error, result: ?))",drop:"fn(callback?: fn(err: Error, result: ?))",findAndModify:"fn(query: Object, sort: [?], doc: Object, callback: fn(err: Error, result: ?))",findAndRemove:"fn(query: Object, sort?: [?], callback?: fn(err: Error, result: ?))",find:"fn(callback?: fn(err: Error, result: Cursor)) -> Cursor",findOne:"fn(callback?: fn(err: Error, result: ?)) -> Cursor",createIndex:"fn(fieldOrSpec: ?, callback: fn(err: Error, indexName: string))",ensureIndex:"fn(fieldOrSpec: ?, callback: fn(err: Error, indexName: string))",indexInformation:"fn(options: ?, callback: Function)",dropIndex:"fn(name: string, callback: Function)",dropAllIndexes:"fn(callback: Function)",reIndex:"fn(callback: Function)",mapReduce:"fn(map: Function, reduce: Function, options: MapReduceOptions, callback: Function)",group:"fn(keys: Object, condition: Object, initial: Object, reduce: Function, finalize: Function, command: bool, options: Object, callback: Function)",options:"fn(callback: Function)",isCapped:"fn(callback: Function)",indexExists:"fn(indexes: string, callback: Function)",geoNear:"fn(x: number, y: number, callback: Function)",geoHaystackSearch:"fn(x: number, y: number, callback: Function)",indexes:"fn(callback: Function)",aggregate:"fn(pipeline: [?], callback: fn(err: Error, results: ?))",stats:"fn(options: Object, callback: fn(err: Error, results: CollStats))",hint:"?"},MapReduceOptions:{out:"Object",query:"Object",sort:"Object",limit:"number",keeptemp:"bool",finalize:"?",scope:"Object",jsMode:"bool",verbose:"bool",readPreference:"string"},IndexOptions:{w:"?",wtimeout:"number",fsync:"bool",journal:"bool",unique:"bool",sparse:"bool",background:"bool",dropDups:"bool",min:"number",max:"number",v:"number",expireAfterSeconds:"number",name:"string"},Cursor:{INIT:"number",OPEN:"number",CLOSED:"number",GET_MORE:"number",prototype:{rewind:"fn() -> Cursor",toArray:"fn(callback: fn(err: Error, results: [?]))",each:"fn(callback: fn(err: Error, item: ?))",count:"fn(applySkipLimit: bool, callback: fn(err: Error, count: number))",sort:"fn(keyOrList: ?, callback?: fn(err: Error, result: ?)) -> Cursor",limit:"fn(limit: number, callback?: fn(err: Error, result: ?)) -> Cursor",setReadPreference:"fn(preference: string, callback?: Function) -> Cursor",skip:"fn(skip: number, callback?: fn(err: Error, result: ?)) -> Cursor",batchSize:"fn(batchSize: number, callback?: fn(err: Error, result: ?)) -> Cursor",nextObject:"fn(callback: fn(err: Error, doc: ?))",explain:"fn(callback: fn(err: Error, result: ?))",stream:"fn() -> CursorStream",close:"fn(callback: fn(err: Error, result: ?))",isClosed:"fn() -> bool"}},CursorStream:{"!type":"fn(cursor: Cursor)",prototype:{pause:"fn() -> ?",resume:"fn() -> ?",destroy:"fn() -> ?"}},CollectionFindOptions:{limit:"number",sort:"?",fields:"Object",skip:"number",hint:"Object",explain:"bool",snapshot:"bool",timeout:"bool",tailtable:"bool",tailableRetryInterval:"number",numberOfRetries:"number",awaitdata:"bool",oplogReplay:"bool",exhaust:"bool",batchSize:"number",returnKey:"bool",maxScan:"number",min:"number",max:"number",showDiskLoc:"bool",comment:"String",raw:"bool",readPreference:"String",partial:"bool"},MongoCollectionOptions:{safe:"?",serializeFunctions:"?",raw:"bool",pkFactory:"?",readPreference:"string"}},"!name":"mongodb","!define":{"!node":{mongodb:{"!doc":"MongoDB","!url":"https://www.mongodb.org/",MongoClient:"mongodb.MongoClient",Db:"mongodb.Db",Server:"mongodb.Server",SocketOptions:"mongodb.SocketOptions",ServerOptions:"mongodb.ServerOptions",CollectionFindOptions:"mongodb.CollectionFindOptions",MongoCollectionOptions:"mongodb.MongoCollectionOptions",IndexOptions:"mongodb.IndexOptions",CollectionCreateOptions:"mongodb.CollectionCreateOptions",DbCreateOptions:"mongodb.DbCreateOptions",MapReduceOptions:"mongodb.MapReduceOptions",CollStats:"mongodb.CollStats",ReadPreference:"mongodb.ReadPreference",Collection:"mongodb.Collection",Cursor:"mongodb.Cursor",PKFactory:"mongodb.PKFactory"}}}}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/orionMySQL",["../lib/infer","../lib/tern","./resolver"],e):void e(infer,tern,resolver)}(function(e,t,r){function n(n,s,a,i){var l=t.resolvePos(n,a),c=e.findExpressionAround(n.ast,null,l,n.scope),p=r.getTemplatesForNode(o,c);if(p&&p.length>0)for(var d=0;d Connection",createPool:"fn(config: PoolConfig) -> Pool",createPoolCluster:"fn(config?: PoolClusterConfig) -> PoolCluster",escape:"fn(value: ?) -> string",format:"fn(sql: string) -> string",MySql:{createConnection:"fn(connectionUri: string) -> Connection",createPool:"fn(config: PoolConfig) -> Pool",createPoolCluster:"fn(config?: PoolClusterConfig) -> PoolCluster",escape:"fn(value: ?) -> string",format:"fn(sql: string) -> string"},ConnectionStatic:{createQuery:"fn(sql: string) -> Query"},Connection:{config:"ConnectionConfig",threadId:"number",beginTransaction:"fn(callback: fn(err: Error))",connect:"fn()",commit:"fn(callback: fn(err: Error))",changeUser:"fn(options: ConnectionOptions)",query:"QueryFunction",end:"fn()",destroy:"fn()",pause:"fn()",release:"fn()",resume:"fn()",escape:"fn(value: ?) -> string",escapeId:"fn(value: string) -> string",format:"fn(sql: string) -> string",on:"fn(ev: string, callback: fn(args: [?])) -> Connection",rollback:"fn(callback: fn())"},Pool:{config:"PoolConfig",getConnection:"fn(callback: fn(err: Error, connection: Connection))",query:"QueryFunction",end:"fn()",on:"fn(ev: string, callback: fn(args: [?])) -> Pool"},PoolCluster:{config:"PoolClusterConfig",add:"fn(config: PoolConfig)",end:"fn()",getConnection:"fn(callback: fn(err: Error, connection: Connection))",of:"fn(pattern: string) -> Pool",on:"fn(ev: string, callback: fn(args: [?])) -> PoolCluster"},Query:{sql:"string",start:"fn()",determinePacket:"fn(firstByte: number, parser: ?) -> ?",stream:"fn(options: StreamOptions) -> stream.Readable",pipe:"fn(callback: fn(args: [?])) -> Query",on:"fn(ev: string, callback: fn(args: [?])) -> Query"},QueryFunction:{},QueryOptions:{sql:"string",timeout:"number",nestTables:"?",typeCast:"?"},StreamOptions:{highWaterMark:"number",objectMode:"?"},ConnectionOptions:{user:"string",password:"string",database:"string",charset:"string"},ConnectionConfig:{host:"string",port:"number",localAddress:"string",socketPath:"string",timezone:"string",connectTimeout:"number",stringifyObjects:"bool",insecureAuth:"bool",typeCast:"?",queryFormat:"fn(query: string, values: ?)",supportBigNumbers:"bool",bigNumberStrings:"bool",dateStrings:"bool",debug:"?",trace:"bool",multipleStatements:"bool",flags:"?",ssl:"?"},PoolConfig:{acquireTimeout:"number",waitForConnections:"bool",connectionLimit:"number",queueLimit:"number"},PoolClusterConfig:{canRetry:"bool",removeNodeErrorCount:"number",defaultSelector:"string"},SslCredentials:{pfx:"string",key:"string",passphrase:"string",cert:"string",ca:"?",crl:"?",ciphers:"string"},Error:{code:"string",errno:"number",sqlStateMarker:"string",sqlState:"string",fieldCount:"number",stack:"string",fatal:"bool"}},"!name":"mysql","!define":{"!node":{mysql:{createConnection:"fn(connectionUri: string) -> mysql.Connection",createPool:"fn(config: mysql.PoolConfig) -> mysql.Pool",createPoolCluster:"fn(config?: mysql.PoolClusterConfig) -> mysql.PoolCluster",escape:"fn(value: ?) -> string",format:"fn(sql: string) -> string"}}}}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/node",["../lib/infer","../lib/tern","./resolver"],e):void e(tern,tern)}(function(e,t,r,n){"use strict";function o(e,t){if("/"==t[0])return t;var r,n=e.lastIndexOf("/");for(n>=0&&(t=e.slice(0,n+1)+t);r=/[^\/]*[^\/\.][^\/]*\/\.\.\//.exec(t);)t=t.slice(0,r.index)+t.slice(r.index+r[0].length);return t.replace(/(^|[^\.])\.\//g,"$1")}function s(e,t){return"/"!=e[e.length-1]&&(e+="/"),0==t.indexOf(e)?t.slice(e.length):t}function a(t,r){return t.modules[r]||(t.modules[r]=new e.AVal)}function i(t,r,n){var o=new e.Scope(t);o.originNode=n,e.cx().definitions.node.require.propagate(o.defProp("require"));var s=new e.Obj(e.cx().definitions.node.Module.getProp("prototype").getType());s.propagate(o.defProp("module"));var a=new e.Obj(!0,"exports");s.origin=a.origin=r,s.originNode=a.originNode=o.originNode,a.propagate(o.defProp("exports"));var i=o.exports=s.defProp("exports");return a.propagate(i,y),o}function l(e,t){return e.addFile(t,null,e._node.currentOrigin),a(e._node,t)}function c(e){return e.replace(/\\/g,"/")}function p(e,t){return o(c(e.options.projectDir||"")+"/",c(t))}function d(t){var r=e.cx().parent._node.modules,n=t.roots["!node"]=new e.Obj(null);for(var o in r){var s=r[o],a=s.origin||o,i=n.defProp(a.replace(/\./g,"`"));s.propagate(i),i.origin=s.origin}}function u(t){var r=e.cx(),n=r.definitions[t["!name"]]["!node"],t=r.parent._node;if(n)for(var o in n.props){var s=o.replace(/`/g,"."),i=a(t,s);i.origin=s,n.props[o].propagate(i)}}function h(e,t,r,n){if(!r)return n;var o="Literal"===r.node.type&&"string"==typeof r.node.value,s=!!r.node.required;if(o&&s){n=Object.create(n);var a;r.node.required&&(a=r.node.required.getType())&&(n.origin=a.origin,n.originNode=a.originNode)}return n}function f(r,n){var o=t.resolvePos(r,n.end),s=e.findExpressionAround(r.ast,null,o,r.scope,"CallExpression");if(s){var a=s.node;if(!("Identifier"!=a.callee.type||"require"!=a.callee.name||a.arguments.length<1)){var i=a.arguments[0];if(!("Literal"!=i.type||"string"!=typeof i.value||i.start>o||i.end !custom:nodeRequire",resolve:{"!type":"fn() -> string","!url":"http://nodejs.org/api/globals.html#globals_require_resolve","!doc":"Use the internal require() machinery to look up the location of a module, but rather than loading the module, just return the resolved filename."},cache:{"!url":"http://nodejs.org/api/globals.html#globals_require_cache","!doc":"Modules are cached in this object when they are required. By deleting a key value from this object, the next require will reload the module."},extensions:{"!url":"http://nodejs.org/api/globals.html#globals_require_extensions","!doc":"Instruct require on how to handle certain file extensions."},"!url":"http://nodejs.org/api/globals.html#globals_require","!doc":"To require modules."},Module:{"!type":"fn()",prototype:{exports:{"!type":"?","!url":"http://nodejs.org/api/modules.html#modules_module_exports","!doc":"The exports object is created by the Module system. Sometimes this is not acceptable, many want their module to be an instance of some class. To do this assign the desired export object to module.exports. For example suppose we were making a module called a.js"},require:{"!type":"require","!url":"http://nodejs.org/api/modules.html#modules_module_require_id","!doc":"The module.require method provides a way to load a module as if require() was called from the original module."},id:{"!type":"string","!url":"http://nodejs.org/api/modules.html#modules_module_id","!doc":"The identifier for the module. Typically this is the fully resolved filename."},filename:{"!type":"string","!url":"http://nodejs.org/api/modules.html#modules_module_filename","!doc":"The fully resolved filename to the module."},loaded:{"!type":"bool","!url":"http://nodejs.org/api/modules.html#modules_module_loaded","!doc":"Whether or not the module is done loading, or is in the process of loading."},parent:{"!type":"+Module","!url":"http://nodejs.org/api/modules.html#modules_module_parent","!doc":"The module that required this one."},children:{"!type":"[+Module]","!url":"http://nodejs.org/api/modules.html#modules_module_children","!doc":"The module objects required by this one."}}},events:{EventEmitter:{prototype:{addListener:{"!type":"fn(event: string, listener: fn())","!url":"http://nodejs.org/api/events.html#events_emitter_addlistener_event_listener","!doc":"Adds a listener to the end of the listeners array for the specified event."},on:{"!type":"fn(event: string, listener: fn())","!url":"http://nodejs.org/api/events.html#events_emitter_on_event_listener","!doc":"Adds a listener to the end of the listeners array for the specified event."},once:{"!type":"fn(event: string, listener: fn())","!url":"http://nodejs.org/api/events.html#events_emitter_once_event_listener","!doc":"Adds a one time listener for the event. This listener is invoked only the next time the event is fired, after which it is removed."},removeListener:{"!type":"fn(event: string, listener: fn())","!url":"http://nodejs.org/api/events.html#events_emitter_removelistener_event_listener","!doc":"Remove a listener from the listener array for the specified event. Caution: changes array indices in the listener array behind the listener."},removeAllListeners:{"!type":"fn(event: string)","!url":"http://nodejs.org/api/events.html#events_emitter_removealllisteners_event","!doc":"Removes all listeners, or those of the specified event."},setMaxListeners:{"!type":"fn(n: number)","!url":"http://nodejs.org/api/events.html#events_emitter_setmaxlisteners_n","!doc":"By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default which helps finding memory leaks. Obviously not all Emitters should be limited to 10. This function allows that to be increased. Set to zero for unlimited."},listeners:{"!type":"fn(event: string) -> [fn()]","!url":"http://nodejs.org/api/events.html#events_emitter_listeners_event","!doc":"Returns an array of listeners for the specified event."},emit:{"!type":"fn(event: string)","!url":"http://nodejs.org/api/events.html#events_emitter_emit_event_arg1_arg2","!doc":"Execute each of the listeners in order with the supplied arguments."}},"!url":"http://nodejs.org/api/events.html#events_class_events_eventemitter","!doc":"To access the EventEmitter class, require('events').EventEmitter."}},stream:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",pipe:{"!type":"fn(destination: +stream.Writable, options?: ?)","!url":"http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options","!doc":"Connects this readable stream to destination WriteStream. Incoming data on this stream gets written to destination. Properly manages back-pressure so that a slow destination will not be overwhelmed by a fast readable stream."}},Writable:{"!type":"fn(options?: ?)",prototype:{"!proto":"stream.prototype",write:{"!type":"fn(chunk: +Buffer, encoding?: string, callback?: fn()) -> bool","!url":"http://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback_1","!doc":"Writes chunk to the stream. Returns true if the data has been flushed to the underlying resource. Returns false to indicate that the buffer is full, and the data will be sent out in the future. The 'drain' event will indicate when the buffer is empty again."},end:{"!type":"fn(chunk: +Buffer, encoding?: string, callback?: fn()) -> bool","!url":"http://nodejs.org/api/stream.html#stream_writable_end_chunk_encoding_callback","!doc":"Call this method to signal the end of the data being written to the stream."}},"!url":"http://nodejs.org/api/stream.html#stream_class_stream_writable","!doc":"A Writable Stream has the following methods, members, and events."},Readable:{"!type":"fn(options?: ?)",prototype:{"!proto":"stream.prototype",setEncoding:{"!type":"fn(encoding: string)","!url":"http://nodejs.org/api/stream.html#stream_readable_setencoding_encoding","!doc":"Makes the 'data' event emit a string instead of a Buffer. encoding can be 'utf8', 'utf16le' ('ucs2'), 'ascii', or 'hex'."},pause:{"!type":"fn()","!url":"http://nodejs.org/api/stream.html#stream_readable_pause","!doc":"Switches the readable stream into \"old mode\", where data is emitted using a 'data' event rather than being buffered for consumption via the read() method."},resume:{"!type":"fn()","!url":"http://nodejs.org/api/stream.html#stream_readable_resume","!doc":"Switches the readable stream into \"old mode\", where data is emitted using a 'data' event rather than being buffered for consumption via the read() method."},destroy:"fn()",unpipe:{"!type":"fn(dest?: +stream.Writable)","!url":"http://nodejs.org/api/stream.html#stream_readable_unpipe_destination","!doc":"Undo a previously established pipe(). If no destination is provided, then all previously established pipes are removed."},push:{"!type":"fn(chunk: +Buffer) -> bool","!url":"http://nodejs.org/api/stream.html#stream_readable_push_chunk","!doc":"Explicitly insert some data into the read queue. If called with null, will signal the end of the data."},unshift:{"!type":"fn(chunk: +Buffer) -> bool","!url":"http://nodejs.org/api/stream.html#stream_readable_unshift_chunk","!doc":"This is the corollary of readable.push(chunk). Rather than putting the data at the end of the read queue, it puts it at the front of the read queue."},wrap:{"!type":"fn(stream: ?) -> +stream.Readable","!url":"http://nodejs.org/api/stream.html#stream_readable_wrap_stream","!doc":"If you are using an older Node library that emits 'data' events and has a pause() method that is advisory only, then you can use the wrap() method to create a Readable stream that uses the old stream as its data source."},read:{"!type":"fn(size?: number) -> +Buffer","!url":"http://nodejs.org/api/stream.html#stream_readable_read_size_1","!doc":"Call this method to consume data once the 'readable' event is emitted."}},"!url":"http://nodejs.org/api/stream.html#stream_class_stream_readable","!doc":"A Readable Stream has the following methods, members, and events."},Duplex:{"!type":"fn(options?: ?)",prototype:{"!proto":"stream.Readable.prototype",write:"fn(chunk: +Buffer, encoding?: string, callback?: fn()) -> bool",end:"fn(chunk: +Buffer, encoding?: string, callback?: fn()) -> bool"},"!url":"http://nodejs.org/api/stream.html#stream_class_stream_duplex","!doc":'A "duplex" stream is one that is both Readable and Writable, such as a TCP socket connection.'},Transform:{"!type":"fn(options?: ?)",prototype:{"!proto":"stream.Duplex.prototype"},"!url":"http://nodejs.org/api/stream.html#stream_class_stream_transform","!doc":'A "transform" stream is a duplex stream where the output is causally connected in some way to the input, such as a zlib stream or a crypto stream.'},PassThrough:"stream.Transform","!url":"http://nodejs.org/api/stream.html#stream_stream","!doc":"A stream is an abstract interface implemented by various objects in Node. For example a request to an HTTP server is a stream, as is stdout. Streams are readable, writable, or both. All streams are instances of EventEmitter"},querystring:{stringify:{"!type":"fn(obj: ?, sep?: string, eq?: string) -> string","!url":"http://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq","!doc":"Serialize an object to a query string. Optionally override the default separator ('&') and assignment ('=') characters."},parse:{"!type":"fn(str: string, sep?: string, eq?: string, options?: ?) -> ?","!url":"http://nodejs.org/api/querystring.html#querystring_querystring_parse_str_sep_eq_options","!doc":"Deserialize a query string to an object. Optionally override the default separator ('&') and assignment ('=') characters."},escape:{"!type":"fn(string) -> string","!url":"http://nodejs.org/api/querystring.html#querystring_querystring_escape","!doc":"The escape function used by querystring.stringify, provided so that it could be overridden if necessary."},unescape:{"!type":"fn(string) -> string","!url":"http://nodejs.org/api/querystring.html#querystring_querystring_unescape","!doc":"The unescape function used by querystring.parse, provided so that it could be overridden if necessary."}},http:{STATUS_CODES:{},createServer:{"!type":"fn(listener?: fn(request: +http.IncomingMessage, response: +http.ServerResponse)) -> +http.Server","!url":"http://nodejs.org/api/http.html#http_http_createserver_requestlistener","!doc":"Returns a new web server object."},Server:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",listen:{"!type":"fn(port: number, hostname?: string, backlog?: number, callback?: fn())","!url":"http://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback","!doc":"Begin accepting connections on the specified port and hostname. If the hostname is omitted, the server will accept connections directed to any IPv4 address (INADDR_ANY)."},close:{"!type":"fn(callback?: ?)","!url":"http://nodejs.org/api/http.html#http_server_close_callback","!doc":"Stops the server from accepting new connections."},maxHeadersCount:{"!type":"number","!url":"http://nodejs.org/api/http.html#http_server_maxheaderscount","!doc":"Limits maximum incoming headers count, equal to 1000 by default. If set to 0 - no limit will be applied."},setTimeout:{"!type":"fn(timeout: number, callback?: fn())","!url":"http://nodejs.org/api/http.html#http_server_settimeout_msecs_callback","!doc":"Sets the timeout value for sockets, and emits a 'timeout' event on the Server object, passing the socket as an argument, if a timeout occurs."},timeout:{"!type":"number","!url":"http://nodejs.org/api/http.html#http_server_timeout","!doc":"The number of milliseconds of inactivity before a socket is presumed to have timed out."}},"!url":"http://nodejs.org/api/http.html#http_class_http_server","!doc":"Class for HTTP server objects."},ServerResponse:{"!type":"fn()",prototype:{"!proto":"stream.Writable.prototype",writeContinue:{"!type":"fn()","!url":"http://nodejs.org/api/http.html#http_response_writecontinue","!doc":"Sends a HTTP/1.1 100 Continue message to the client, indicating that the request body should be sent."},writeHead:{"!type":"fn(statusCode: number, headers?: ?)","!url":"http://nodejs.org/api/http.html#http_response_writehead_statuscode_reasonphrase_headers","!doc":"Sends a response header to the request. The status code is a 3-digit HTTP status code, like 404. The last argument, headers, are the response headers. Optionally one can give a human-readable reasonPhrase as the second argument."},setTimeout:{"!type":"fn(timeout: number, callback?: fn())","!url":"http://nodejs.org/api/http.html#http_response_settimeout_msecs_callback","!doc":"Sets the Socket's timeout value to msecs. If a callback is provided, then it is added as a listener on the 'timeout' event on the response object."},statusCode:{"!type":"number","!url":"http://nodejs.org/api/http.html#http_response_statuscode","!doc":"When using implicit headers (not calling response.writeHead() explicitly), this property controls the status code that will be sent to the client when the headers get flushed."},setHeader:{"!type":"fn(name: string, value: string)","!url":"http://nodejs.org/api/http.html#http_response_setheader_name_value","!doc":"Sets a single header value for implicit headers. If this header already exists in the to-be-sent headers, its value will be replaced. Use an array of strings here if you need to send multiple headers with the same name."},headersSent:{"!type":"bool","!url":"http://nodejs.org/api/http.html#http_response_headerssent","!doc":"Boolean (read-only). True if headers were sent, false otherwise."},sendDate:{"!type":"bool","!url":"http://nodejs.org/api/http.html#http_response_senddate","!doc":"When true, the Date header will be automatically generated and sent in the response if it is not already present in the headers. Defaults to true."},getHeader:{"!type":"fn(name: string) -> string","!url":"http://nodejs.org/api/http.html#http_response_getheader_name","!doc":"Reads out a header that's already been queued but not sent to the client. Note that the name is case insensitive. This can only be called before headers get implicitly flushed."},removeHeader:{"!type":"fn(name: string)","!url":"http://nodejs.org/api/http.html#http_response_removeheader_name","!doc":"Removes a header that's queued for implicit sending."},addTrailers:{"!type":"fn(headers: ?)","!url":"http://nodejs.org/api/http.html#http_response_addtrailers_headers","!doc":"This method adds HTTP trailing headers (a header but at the end of the message) to the response."}},"!url":"http://nodejs.org/api/http.html#http_class_http_serverresponse","!doc":"This object is created internally by a HTTP server--not by the user. It is passed as the second parameter to the 'request' event."},request:{"!type":"fn(options: ?, callback?: fn(res: +http.IncomingMessage)) -> +http.ClientRequest","!url":"http://nodejs.org/api/http.html#http_http_request_options_callback","!doc":"Node maintains several connections per server to make HTTP requests. This function allows one to transparently issue requests."},get:{"!type":"fn(options: ?, callback?: fn(res: +http.IncomingMessage)) -> +http.ClientRequest","!url":"http://nodejs.org/api/http.html#http_http_get_options_callback","!doc":"Since most requests are GET requests without bodies, Node provides this convenience method. The only difference between this method and http.request() is that it sets the method to GET and calls req.end() automatically."},globalAgent:{"!type":"+http.Agent","!url":"http://nodejs.org/api/http.html#http_http_globalagent","!doc":"Global instance of Agent which is used as the default for all http client requests."},Agent:{"!type":"fn()",prototype:{maxSockets:{"!type":"number","!url":"http://nodejs.org/api/http.html#http_agent_maxsockets","!doc":"By default set to 5. Determines how many concurrent sockets the agent can have open per host."},sockets:{"!type":"[+net.Socket]","!url":"http://nodejs.org/api/http.html#http_agent_sockets","!doc":"An object which contains arrays of sockets currently in use by the Agent. Do not modify."},requests:{"!type":"[+http.ClientRequest]","!url":"http://nodejs.org/api/http.html#http_agent_requests","!doc":"An object which contains queues of requests that have not yet been assigned to sockets. Do not modify."}},"!url":"http://nodejs.org/api/http.html#http_class_http_agent","!doc":"In node 0.5.3+ there is a new implementation of the HTTP Agent which is used for pooling sockets used in HTTP client requests."},ClientRequest:{"!type":"fn()",prototype:{"!proto":"stream.Writable.prototype",abort:{"!type":"fn()","!url":"http://nodejs.org/api/http.html#http_request_abort","!doc":"Aborts a request. (New since v0.3.8.)"},setTimeout:{"!type":"fn(timeout: number, callback?: fn())","!url":"http://nodejs.org/api/http.html#http_request_settimeout_timeout_callback","!doc":"Once a socket is assigned to this request and is connected socket.setTimeout() will be called."},setNoDelay:{"!type":"fn(noDelay?: fn())","!url":"http://nodejs.org/api/http.html#http_request_setnodelay_nodelay","!doc":"Once a socket is assigned to this request and is connected socket.setNoDelay() will be called."},setSocketKeepAlive:{"!type":"fn(enable?: bool, initialDelay?: number)","!url":"http://nodejs.org/api/http.html#http_request_setsocketkeepalive_enable_initialdelay","!doc":"Once a socket is assigned to this request and is connected socket.setKeepAlive() will be called."}},"!url":"http://nodejs.org/api/http.html#http_class_http_clientrequest","!doc":"This object is created internally and returned from http.request(). It represents an in-progress request whose header has already been queued. The header is still mutable using the setHeader(name, value), getHeader(name), removeHeader(name) API. The actual header will be sent along with the first data chunk or when closing the connection."},IncomingMessage:{"!type":"fn()",prototype:{"!proto":"stream.Readable.prototype",httpVersion:{"!type":"string","!url":"http://nodejs.org/api/http.html#http_message_httpversion","!doc":"In case of server request, the HTTP version sent by the client. In the case of client response, the HTTP version of the connected-to server. Probably either '1.1' or '1.0'."},headers:{"!type":"?","!url":"http://nodejs.org/api/http.html#http_message_headers","!doc":"The request/response headers object."},trailers:{"!type":"?","!url":"http://nodejs.org/api/http.html#http_message_trailers","!doc":"The request/response trailers object. Only populated after the 'end' event."},setTimeout:{"!type":"fn(timeout: number, callback?: fn())","!url":"http://nodejs.org/api/http.html#http_message_settimeout_msecs_callback","!doc":"Calls message.connection.setTimeout(msecs, callback)."},setEncoding:{"!type":"fn(encoding?: string)","!url":"http://nodejs.org/api/http.html#http_message_setencoding_encoding","!doc":"Set the encoding for data emitted by the 'data' event."},pause:{"!type":"fn()","!url":"http://nodejs.org/api/http.html#http_message_pause","!doc":"Pauses request/response from emitting events. Useful to throttle back a download."},resume:{"!type":"fn()","!url":"http://nodejs.org/api/http.html#http_message_resume","!doc":"Resumes a paused request/response."},method:{"!type":"string","!url":"http://nodejs.org/api/http.html#http_message_method","!doc":"Only valid for request obtained from http.Server."},url:{"!type":"string","!url":"http://nodejs.org/api/http.html#http_message_url","!doc":"Only valid for request obtained from http.Server."},statusCode:{"!type":"number","!url":"http://nodejs.org/api/http.html#http_message_statuscode","!doc":"Only valid for response obtained from http.ClientRequest."},socket:{"!type":"+net.Socket","!url":"http://nodejs.org/api/http.html#http_message_socket","!doc":"The net.Socket object associated with the connection."}},"!url":"http://nodejs.org/api/http.html#http_http_incomingmessage","!doc":"An IncomingMessage object is created by http.Server or http.ClientRequest and passed as the first argument to the 'request' and 'response' event respectively. It may be used to access response status, headers and data."}},https:{Server:"http.Server",createServer:{"!type":"fn(listener?: fn(request: +http.IncomingMessage, response: +http.ServerResponse)) -> +https.Server","!url":"http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener","!doc":"Returns a new HTTPS web server object. The options is similar to tls.createServer(). The requestListener is a function which is automatically added to the 'request' event."},request:{"!type":"fn(options: ?, callback?: fn(res: +http.IncomingMessage)) -> +http.ClientRequest","!url":"http://nodejs.org/api/https.html#https_https_request_options_callback","!doc":"Makes a request to a secure web server."},get:{"!type":"fn(options: ?, callback?: fn(res: +http.IncomingMessage)) -> +http.ClientRequest","!url":"http://nodejs.org/api/https.html#https_https_get_options_callback","!doc":"Like http.get() but for HTTPS."},Agent:"http.Agent",globalAgent:"http.globalAgent"},cluster:{"!proto":"events.EventEmitter.prototype",settings:{exec:"string",args:"[string]",silent:"bool","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_settings","!doc":"All settings set by the .setupMaster is stored in this settings object. This object is not supposed to be changed or set manually, by you."},Worker:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",id:{"!type":"string","!url":"http://nodejs.org/api/cluster.html#cluster_worker_id","!doc":"Each new worker is given its own unique id, this id is stored in the id."},process:{"!type":"+child_process.ChildProcess","!url":"http://nodejs.org/api/cluster.html#cluster_worker_process","!doc":"All workers are created using child_process.fork(), the returned object from this function is stored in process."},suicide:{"!type":"bool","!url":"http://nodejs.org/api/cluster.html#cluster_worker_suicide","!doc":"This property is a boolean. It is set when a worker dies after calling .kill() or immediately after calling the .disconnect() method. Until then it is undefined."},send:{"!type":"fn(message: ?, sendHandle?: ?)","!url":"http://nodejs.org/api/cluster.html#cluster_worker_send_message_sendhandle","!doc":"This function is equal to the send methods provided by child_process.fork(). In the master you should use this function to send a message to a specific worker. However in a worker you can also use process.send(message), since this is the same function."},destroy:"fn()",disconnect:{"!type":"fn()","!url":"http://nodejs.org/api/cluster.html#cluster_worker_disconnect","!doc":"When calling this function the worker will no longer accept new connections, but they will be handled by any other listening worker. Existing connection will be allowed to exit as usual. When no more connections exist, the IPC channel to the worker will close allowing it to die graceful. When the IPC channel is closed the disconnect event will emit, this is then followed by the exit event, there is emitted when the worker finally die."},kill:{"!type":"fn(signal?: string)","!url":"http://nodejs.org/api/cluster.html#cluster_worker_kill_signal_sigterm","!doc":"This function will kill the worker, and inform the master to not spawn a new worker. The boolean suicide lets you distinguish between voluntary and accidental exit."}},"!url":"http://nodejs.org/api/cluster.html#cluster_class_worker","!doc":"A Worker object contains all public information and method about a worker. In the master it can be obtained using cluster.workers. In a worker it can be obtained using cluster.worker."},isMaster:{"!type":"bool","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_ismaster","!doc":"True if the process is a master. This is determined by the process.env.NODE_UNIQUE_ID. If process.env.NODE_UNIQUE_ID is undefined, then isMaster is true."},isWorker:{"!type":"bool","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_isworker","!doc":"This boolean flag is true if the process is a worker forked from a master. If the process.env.NODE_UNIQUE_ID is set to a value, then isWorker is true."},setupMaster:{"!type":"fn(settings?: cluster.settings)","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_setupmaster_settings","!doc":"setupMaster is used to change the default 'fork' behavior. The new settings are effective immediately and permanently, they cannot be changed later on."},fork:{"!type":"fn(env?: ?) -> +cluster.Worker","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_fork_env","!doc":"Spawn a new worker process. This can only be called from the master process."},disconnect:{"!type":"fn(callback?: fn())","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_disconnect_callback","!doc":"When calling this method, all workers will commit a graceful suicide. When they are disconnected all internal handlers will be closed, allowing the master process to die graceful if no other event is waiting."},worker:{"!type":"+cluster.Worker","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_worker","!doc":"A reference to the current worker object. Not available in the master process."},workers:{"!type":"[+cluster.Worker]","!url":"http://nodejs.org/api/cluster.html#cluster_cluster_workers","!doc":"A hash that stores the active worker objects, keyed by id field. Makes it easy to loop through all the workers. It is only available in the master process."},"!url":"http://nodejs.org/api/cluster.html#cluster_cluster","!doc":"A single instance of Node runs in a single thread. To take advantage of multi-core systems the user will sometimes want to launch a cluster of Node processes to handle the load."},zlib:{Zlib:{"!type":"fn()",prototype:{"!proto":"stream.Duplex.prototype",flush:{"!type":"fn(callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_flush_callback","!doc":"Flush pending data. Don't call this frivolously, premature flushes negatively impact the effectiveness of the compression algorithm."},reset:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_reset","!doc":"Reset the compressor/decompressor to factory defaults. Only applicable to the inflate and deflate algorithms."}},"!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_zlib","!doc":"Not exported by the zlib module. It is documented here because it is the base class of the compressor/decompressor classes."},deflate:{"!type":"fn(buf: +Buffer, callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_deflate_buf_callback","!doc":"Compress a string with Deflate."},deflateRaw:{"!type":"fn(buf: +Buffer, callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_deflateraw_buf_callback","!doc":"Compress a string with DeflateRaw."},gzip:{"!type":"fn(buf: +Buffer, callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_gzip_buf_callback","!doc":"Compress a string with Gzip."},gunzip:{"!type":"fn(buf: +Buffer, callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_gunzip_buf_callback","!doc":"Decompress a raw Buffer with Gunzip."},inflate:{"!type":"fn(buf: +Buffer, callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_inflate_buf_callback","!doc":"Decompress a raw Buffer with Inflate."},inflateRaw:{"!type":"fn(buf: +Buffer, callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_inflateraw_buf_callback","!doc":"Decompress a raw Buffer with InflateRaw."},unzip:{"!type":"fn(buf: +Buffer, callback: fn())","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_unzip_buf_callback","!doc":"Decompress a raw Buffer with Unzip."},Gzip:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_gzip","!doc":"Compress data using gzip.",prototype:{"!proto:":"zlib.Zlib.prototype"}},createGzip:{"!type":"fn(options: ?) -> +zlib.Zlib","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_creategzip_options","!doc":"Returns a new Gzip object with an options."},Gunzip:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_gunzip","!doc":"Decompress a gzip stream.",prototype:{"!proto:":"zlib.Zlib.prototype"}},createGunzip:{"!type":"fn(options: ?) -> +zlib.Gunzip","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_creategunzip_options","!doc":"Returns a new Gunzip object with an options."},Deflate:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_deflate","!doc":"Compress data using deflate.",prototype:{"!proto:":"zlib.Zlib.prototype"}},createDeflate:{"!type":"fn(options: ?) -> +zlib.Deflate","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_createdeflate_options","!doc":"Returns a new Deflate object with an options."},Inflate:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_inflate","!doc":"Decompress a deflate stream.",prototype:{"!proto:":"zlib.Zlib.prototype"}},createInflate:{"!type":"fn(options: ?) -> +zlib.Inflate","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_createinflate_options","!doc":"Returns a new Inflate object with an options."},InflateRaw:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_inflateraw","!doc":"Decompress a raw deflate stream.",prototype:{"!proto:":"zlib.Zlib.prototype"}},createInflateRaw:{"!type":"fn(options: ?) -> +zlib.InflateRaw","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_createinflateraw_options","!doc":"Returns a new InflateRaw object with an options."},DeflateRaw:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_deflateraw","!doc":"Compress data using deflate, and do not append a zlib header.",prototype:{"!proto:":"zlib.Zlib.prototype"}},createDeflateRaw:{"!type":"fn(options: ?) -> +zlib.DeflateRaw","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_createdeflateraw_options","!doc":"Returns a new DeflateRaw object with an options."},Unzip:{"!type":"fn()","!url":"http://nodejs.org/api/zlib.html#zlib_class_zlib_unzip","!doc":"Decompress either a Gzip- or Deflate-compressed stream by auto-detecting the header.",prototype:{"!proto:":"zlib.Zlib.prototype"}},createUnzip:{"!type":"fn(options: ?) -> +zlib.Unzip","!url":"http://nodejs.org/api/zlib.html#zlib_zlib_createunzip_options","!doc":"Returns a new Unzip object with an options."},Z_NO_FLUSH:"number",Z_PARTIAL_FLUSH:"number",Z_SYNC_FLUSH:"number",Z_FULL_FLUSH:"number",Z_FINISH:"number",Z_BLOCK:"number",Z_TREES:"number",Z_OK:"number",Z_STREAM_END:"number",Z_NEED_DICT:"number",Z_ERRNO:"number",Z_STREAM_ERROR:"number",Z_DATA_ERROR:"number",Z_MEM_ERROR:"number",Z_BUF_ERROR:"number",Z_VERSION_ERROR:"number",Z_NO_COMPRESSION:"number",Z_BEST_SPEED:"number",Z_BEST_COMPRESSION:"number",Z_DEFAULT_COMPRESSION:"number",Z_FILTERED:"number",Z_HUFFMAN_ONLY:"number",Z_RLE:"number",Z_FIXED:"number",Z_DEFAULT_STRATEGY:"number",Z_BINARY:"number",Z_TEXT:"number",Z_ASCII:"number",Z_UNKNOWN:"number",Z_DEFLATED:"number",Z_NULL:"number"},os:{tmpdir:{"!type":"fn() -> string","!url":"http://nodejs.org/api/os.html#os_os_tmpdir","!doc":"Returns the operating system's default directory for temp files."},endianness:{"!type":"fn() -> string","!url":"http://nodejs.org/api/os.html#os_os_endianness","!doc":'Returns the endianness of the CPU. Possible values are "BE" or "LE".'},hostname:{"!type":"fn() -> string","!url":"http://nodejs.org/api/os.html#os_os_hostname","!doc":"Returns the hostname of the operating system."},type:{"!type":"fn() -> string","!url":"http://nodejs.org/api/os.html#os_os_type","!doc":"Returns the operating system name."},platform:{"!type":"fn() -> string","!url":"http://nodejs.org/api/os.html#os_os_platform","!doc":"Returns the operating system platform."},arch:{"!type":"fn() -> string","!url":"http://nodejs.org/api/os.html#os_os_arch","!doc":"Returns the operating system CPU architecture."},release:{"!type":"fn() -> string","!url":"http://nodejs.org/api/os.html#os_os_release","!doc":"Returns the operating system release."},uptime:{"!type":"fn() -> number","!url":"http://nodejs.org/api/os.html#os_os_uptime","!doc":"Returns the system uptime in seconds."},loadavg:{"!type":"fn() -> [number]","!url":"http://nodejs.org/api/os.html#os_os_loadavg","!doc":"Returns an array containing the 1, 5, and 15 minute load averages."},totalmem:{"!type":"fn() -> number","!url":"http://nodejs.org/api/os.html#os_os_totalmem","!doc":"Returns the total amount of system memory in bytes."},freemem:{"!type":"fn() -> number","!url":"http://nodejs.org/api/os.html#os_os_freemem","!doc":"Returns the amount of free system memory in bytes."},cpus:{"!type":"fn() -> [os.cpuSpec]","!url":"http://nodejs.org/api/os.html#os_os_cpus","!doc":"Returns an array of objects containing information about each CPU/core installed: model, speed (in MHz), and times (an object containing the number of milliseconds the CPU/core spent in: user, nice, sys, idle, and irq)."},networkInterfaces:{"!type":"fn() -> ?","!url":"http://nodejs.org/api/os.html#os_os_networkinterfaces","!doc":"Get a list of network interfaces."},EOL:{"!type":"string","!url":"http://nodejs.org/api/os.html#os_os_eol","!doc":"A constant defining the appropriate End-of-line marker for the operating system."}},punycode:{decode:{"!type":"fn(string: string) -> string","!url":"http://nodejs.org/api/punycode.html#punycode_punycode_decode_string","!doc":"Converts a Punycode string of ASCII code points to a string of Unicode code points."},encode:{"!type":"fn(string: string) -> string","!url":"http://nodejs.org/api/punycode.html#punycode_punycode_encode_string","!doc":"Converts a string of Unicode code points to a Punycode string of ASCII code points."},toUnicode:{"!type":"fn(domain: string) -> string","!url":"http://nodejs.org/api/punycode.html#punycode_punycode_tounicode_domain","!doc":"Converts a Punycode string representing a domain name to Unicode. Only the Punycoded parts of the domain name will be converted, i.e. it doesn't matter if you call it on a string that has already been converted to Unicode."},toASCII:{"!type":"fn(domain: string) -> string","!url":"http://nodejs.org/api/punycode.html#punycode_punycode_toascii_domain","!doc":"Converts a Unicode string representing a domain name to Punycode. Only the non-ASCII parts of the domain name will be converted, i.e. it doesn't matter if you call it with a domain that's already in ASCII."},ucs2:{decode:{"!type":"fn(string: string) -> string","!url":"http://nodejs.org/api/punycode.html#punycode_punycode_ucs2_decode_string","!doc":"Creates an array containing the decimal code points of each Unicode character in the string. While JavaScript uses UCS-2 internally, this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16."},encode:{"!type":"fn(codePoints: [number]) -> string","!url":"http://nodejs.org/api/punycode.html#punycode_punycode_ucs2_encode_codepoints","!doc":"Creates a string based on an array of decimal code points."}},version:{"!type":"?","!url":"http://nodejs.org/api/punycode.html#punycode_punycode_version","!doc":"A string representing the current Punycode.js version number."}},repl:{start:{"!type":"fn(options: ?) -> +events.EventEmitter","!url":"http://nodejs.org/api/repl.html#repl_repl_start_options","!doc":"Returns and starts a REPLServer instance."}},readline:{createInterface:{"!type":"fn(options: ?) -> +readline.Interface","!url":"http://nodejs.org/api/readline.html#readline_readline_createinterface_options","!doc":"Creates a readline Interface instance."},Interface:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",setPrompt:{"!type":"fn(prompt: string, length: number)","!url":"http://nodejs.org/api/readline.html#readline_rl_setprompt_prompt_length","!doc":"Sets the prompt, for example when you run node on the command line, you see > , which is node's prompt."},prompt:{"!type":"fn(preserveCursor?: bool)","!url":"http://nodejs.org/api/readline.html#readline_rl_prompt_preservecursor","!doc":"Readies readline for input from the user, putting the current setPrompt options on a new line, giving the user a new spot to write. Set preserveCursor to true to prevent the cursor placement being reset to 0."},question:{"!type":"fn(query: string, callback: fn())","!url":"http://nodejs.org/api/readline.html#readline_rl_question_query_callback","!doc":"Prepends the prompt with query and invokes callback with the user's response. Displays the query to the user, and then invokes callback with the user's response after it has been typed."},pause:{"!type":"fn()","!url":"http://nodejs.org/api/readline.html#readline_rl_pause","!doc":"Pauses the readline input stream, allowing it to be resumed later if needed."},resume:{"!type":"fn()","!url":"http://nodejs.org/api/readline.html#readline_rl_resume","!doc":"Resumes the readline input stream."},close:{"!type":"fn()","!url":"http://nodejs.org/api/readline.html#readline_rl_close","!doc":'Closes the Interface instance, relinquishing control on the input and output streams. The "close" event will also be emitted.'},write:{"!type":"fn(data: ?, key?: ?)","!url":"http://nodejs.org/api/readline.html#readline_rl_write_data_key","!doc":"Writes data to output stream. key is an object literal to represent a key sequence; available if the terminal is a TTY."}},"!url":"http://nodejs.org/api/readline.html#readline_class_interface","!doc":"The class that represents a readline interface with an input and output stream."}},vm:{createContext:{"!type":"fn(initSandbox?: ?) -> ?","!url":"http://nodejs.org/api/vm.html#vm_vm_createcontext_initsandbox","!doc":"vm.createContext creates a new context which is suitable for use as the 2nd argument of a subsequent call to vm.runInContext. A (V8) context comprises a global object together with a set of build-in objects and functions. The optional argument initSandbox will be shallow-copied to seed the initial contents of the global object used by the context."},Script:{"!type":"fn()",prototype:{runInThisContext:{"!type":"fn()","!url":"http://nodejs.org/api/vm.html#vm_script_runinthiscontext","!doc":"Similar to vm.runInThisContext but a method of a precompiled Script object. script.runInThisContext runs the code of script and returns the result. Running code does not have access to local scope, but does have access to the global object (v8: in actual context)."},runInNewContext:{"!type":"fn(sandbox?: ?)","!url":"http://nodejs.org/api/vm.html#vm_script_runinnewcontext_sandbox","!doc":"Similar to vm.runInNewContext a method of a precompiled Script object. script.runInNewContext runs the code of script with sandbox as the global object and returns the result. Running code does not have access to local scope. sandbox is optional."}},"!url":"http://nodejs.org/api/vm.html#vm_class_script","!doc":"A class for running scripts. Returned by vm.createScript."},runInThisContext:{"!type":"fn(code: string, filename?: string)","!url":"http://nodejs.org/api/vm.html#vm_vm_runinthiscontext_code_filename","!doc":"vm.runInThisContext() compiles code, runs it and returns the result. Running code does not have access to local scope. filename is optional, it's used only in stack traces."},runInNewContext:{"!type":"fn(code: string, sandbox?: ?, filename?: string)","!url":"http://nodejs.org/api/vm.html#vm_vm_runinnewcontext_code_sandbox_filename","!doc":"vm.runInNewContext compiles code, then runs it in sandbox and returns the result. Running code does not have access to local scope. The object sandbox will be used as the global object for code. sandbox and filename are optional, filename is only used in stack traces."},runInContext:{"!type":"fn(code: string, context: ?, filename?: string)","!url":"http://nodejs.org/api/vm.html#vm_vm_runincontext_code_context_filename","!doc":"vm.runInContext compiles code, then runs it in context and returns the result. A (V8) context comprises a global object, together with a set of built-in objects and functions. Running code does not have access to local scope and the global object held within context will be used as the global object for code. filename is optional, it's used only in stack traces."},createScript:{"!type":"fn(code: string, filename?: string) -> +vm.Script","!url":"http://nodejs.org/api/vm.html#vm_vm_createscript_code_filename","!doc":"createScript compiles code but does not run it. Instead, it returns a vm.Script object representing this compiled code. This script can be run later many times using methods below. The returned script is not bound to any global object. It is bound before each run, just for that run. filename is optional, it's only used in stack traces."}},child_process:{ChildProcess:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",stdin:{"!type":"+stream.Writable","!url":"http://nodejs.org/api/child_process.html#child_process_child_stdin","!doc":"A Writable Stream that represents the child process's stdin. Closing this stream via end() often causes the child process to terminate."},stdout:{"!type":"+stream.Readable","!url":"http://nodejs.org/api/child_process.html#child_process_child_stdout","!doc":"A Readable Stream that represents the child process's stdout."},stderr:{"!type":"+stream.Readable","!url":"http://nodejs.org/api/child_process.html#child_process_child_stderr","!doc":"A Readable Stream that represents the child process's stderr."},pid:{"!type":"number","!url":"http://nodejs.org/api/child_process.html#child_process_child_pid","!doc":"The PID of the child process."},kill:{"!type":"fn(signal?: string)","!url":"http://nodejs.org/api/child_process.html#child_process_child_kill_signal","!doc":"Send a signal to the child process. If no argument is given, the process will be sent 'SIGTERM'."},send:{"!type":"fn(message: ?, sendHandle?: ?)","!url":"http://nodejs.org/api/child_process.html#child_process_child_send_message_sendhandle","!doc":"When using child_process.fork() you can write to the child using child.send(message, [sendHandle]) and messages are received by a 'message' event on the child."},disconnect:{"!type":"fn()","!url":"http://nodejs.org/api/child_process.html#child_process_child_disconnect","!doc":"To close the IPC connection between parent and child use the child.disconnect() method. This allows the child to exit gracefully since there is no IPC channel keeping it alive. When calling this method the disconnect event will be emitted in both parent and child, and the connected flag will be set to false. Please note that you can also call process.disconnect() in the child process."}},"!url":"http://nodejs.org/api/child_process.html#child_process_class_childprocess","!doc":"ChildProcess is an EventEmitter."},spawn:{"!type":"fn(command: string, args?: [string], options?: ?) -> +child_process.ChildProcess","!url":"http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options","!doc":"Launches a new process with the given command, with command line arguments in args. If omitted, args defaults to an empty Array."},exec:{"!type":"fn(command: string, callback: fn(error: ?, stdout: +Buffer, stderr: +Buffer)) -> +child_process.ChildProcess","!url":"http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback","!doc":"Runs a command in a shell and buffers the output."},execFile:{"!type":"fn(file: string, args: [string], options: ?, callback: fn(error: ?, stdout: +Buffer, stderr: +Buffer)) -> +child_process.ChildProcess","!url":"http://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback","!doc":"This is similar to child_process.exec() except it does not execute a subshell but rather the specified file directly. This makes it slightly leaner than child_process.exec. It has the same options."},fork:{"!type":"fn(modulePath: string, args?: [string], options?: ?) -> +child_process.ChildProcess","!url":"http://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options","!doc":"This is a special case of the spawn() functionality for spawning Node processes. In addition to having all the methods in a normal ChildProcess instance, the returned object has a communication channel built-in."}},url:{parse:{"!type":"fn(urlStr: string, parseQueryString?: bool, slashesDenoteHost?: bool) -> url.type","!url":"http://nodejs.org/api/url.html#url_url_parse_urlstr_parsequerystring_slashesdenotehost","!doc":"Take a URL string, and return an object."},format:{"!type":"fn(url: url.type) -> string","!url":"http://nodejs.org/api/url.html#url_url_format_urlobj","!doc":"Take a parsed URL object, and return a formatted URL string."},resolve:{"!type":"fn(from: string, to: string) -> string","!url":"http://nodejs.org/api/url.html#url_url_resolve_from_to","!doc":"Take a base URL, and a href URL, and resolve them as a browser would for an anchor tag."}},dns:{lookup:{"!type":"fn(domain: string, callback: fn(err: +Error, address: string, family: number)) -> string","!url":"http://nodejs.org/api/dns.html#dns_dns_lookup_domain_family_callback","!doc":"Resolves a domain (e.g. 'google.com') into the first found A (IPv4) or AAAA (IPv6) record. The family can be the integer 4 or 6. Defaults to null that indicates both Ip v4 and v6 address family."},resolve:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolve_domain_rrtype_callback","!doc":"Resolves a domain (e.g. 'google.com') into an array of the record types specified by rrtype. Valid rrtypes are 'A' (IPV4 addresses, default), 'AAAA' (IPV6 addresses), 'MX' (mail exchange records), 'TXT' (text records), 'SRV' (SRV records), 'PTR' (used for reverse IP lookups), 'NS' (name server records) and 'CNAME' (canonical name records)."},resolve4:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolve4_domain_callback","!doc":"The same as dns.resolve(), but only for IPv4 queries (A records). addresses is an array of IPv4 addresses (e.g. ['74.125.79.104', '74.125.79.105', '74.125.79.106'])."},resolve6:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolve6_domain_callback","!doc":"The same as dns.resolve4() except for IPv6 queries (an AAAA query)."},resolveMx:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolvemx_domain_callback","!doc":"The same as dns.resolve(), but only for mail exchange queries (MX records)."},resolveTxt:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolvetxt_domain_callback","!doc":"The same as dns.resolve(), but only for text queries (TXT records). addresses is an array of the text records available for domain (e.g., ['v=spf1 ip4:0.0.0.0 ~all'])."},resolveSrv:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolvesrv_domain_callback","!doc":"The same as dns.resolve(), but only for service records (SRV records). addresses is an array of the SRV records available for domain. Properties of SRV records are priority, weight, port, and name (e.g., [{'priority': 10, {'weight': 5, 'port': 21223, 'name': 'service.example.com'}, ...])."},resolveNs:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolvens_domain_callback","!doc":"The same as dns.resolve(), but only for name server records (NS records). addresses is an array of the name server records available for domain (e.g., ['ns1.example.com', 'ns2.example.com'])."},resolveCname:{"!type":"fn(domain: string, callback: fn(err: +Error, addresses: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_resolvecname_domain_callback","!doc":"The same as dns.resolve(), but only for canonical name records (CNAME records). addresses is an array of the canonical name records available for domain (e.g., ['bar.example.com'])."},reverse:{"!type":"fn(ip: string, callback: fn(err: +Error, domains: [string])) -> [string]","!url":"http://nodejs.org/api/dns.html#dns_dns_reverse_ip_callback","!doc":"Reverse resolves an ip address to an array of domain names."}},net:{createServer:{"!type":"fn(options?: ?, connectionListener?: fn(socket: +net.Socket)) -> +net.Server","!url":"http://nodejs.org/api/net.html#net_net_createserver_options_connectionlistener","!doc":"Creates a new TCP server. The connectionListener argument is automatically set as a listener for the 'connection' event."},Server:{"!type":"fn()",prototype:{"!proto":"net.Socket.prototype",listen:{"!type":"fn(port: number, hostname?: string, backlog?: number, callback?: fn())","!url":"http://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback","!doc":"Begin accepting connections on the specified port and host. If the host is omitted, the server will accept connections directed to any IPv4 address (INADDR_ANY). A port value of zero will assign a random port."},close:{"!type":"fn(callback?: fn())","!url":"http://nodejs.org/api/net.html#net_server_close_callback","!doc":"Stops the server from accepting new connections and keeps existing connections. This function is asynchronous, the server is finally closed when all connections are ended and the server emits a 'close' event. Optionally, you can pass a callback to listen for the 'close' event."},maxConnections:{"!type":"number","!url":"http://nodejs.org/api/net.html#net_server_maxconnections","!doc":"Set this property to reject connections when the server's connection count gets high."},getConnections:{"!type":"fn(callback: fn(err: +Error, count: number))","!url":"http://nodejs.org/api/net.html#net_server_getconnections_callback","!doc":"Asynchronously get the number of concurrent connections on the server. Works when sockets were sent to forks."}},"!url":"http://nodejs.org/api/net.html#net_class_net_server","!doc":"This class is used to create a TCP or UNIX server. A server is a net.Socket that can listen for new incoming connections."},Socket:{"!type":"fn(options: ?)",prototype:{"!proto":"events.EventEmitter.prototype",connect:{"!type":"fn(port: number, host?: string, connectionListener?: fn())","!url":"http://nodejs.org/api/net.html#net_socket_connect_port_host_connectlistener","!doc":"Opens the connection for a given socket. If port and host are given, then the socket will be opened as a TCP socket, if host is omitted, localhost will be assumed. If a path is given, the socket will be opened as a unix socket to that path."},bufferSize:{"!type":"number","!url":"http://nodejs.org/api/net.html#net_socket_buffersize","!doc":"net.Socket has the property that socket.write() always works. This is to help users get up and running quickly. The computer cannot always keep up with the amount of data that is written to a socket - the network connection simply might be too slow. Node will internally queue up the data written to a socket and send it out over the wire when it is possible. (Internally it is polling on the socket's file descriptor for being writable)."},setEncoding:{"!type":"fn(encoding?: string)","!url":"http://nodejs.org/api/net.html#net_socket_setencoding_encoding","!doc":"Set the encoding for the socket as a Readable Stream."},write:{"!type":"fn(data: +Buffer, encoding?: string, callback?: fn())","!url":"http://nodejs.org/api/net.html#net_socket_write_data_encoding_callback","!doc":"Sends data on the socket. The second parameter specifies the encoding in the case of a string--it defaults to UTF8 encoding."},end:{"!type":"fn(data?: +Buffer, encoding?: string)","!url":"http://nodejs.org/api/net.html#net_socket_end_data_encoding","!doc":"Half-closes the socket. i.e., it sends a FIN packet. It is possible the server will still send some data."},destroy:{"!type":"fn()","!url":"http://nodejs.org/api/net.html#net_socket_destroy","!doc":"Ensures that no more I/O activity happens on this socket. Only necessary in case of errors (parse error or so)."},pause:{"!type":"fn()","!url":"http://nodejs.org/api/net.html#net_socket_pause","!doc":"Pauses the reading of data. That is, 'data' events will not be emitted. Useful to throttle back an upload."},resume:{"!type":"fn()","!url":"http://nodejs.org/api/net.html#net_socket_resume","!doc":"Resumes reading after a call to pause()."},setTimeout:{"!type":"fn(timeout: number, callback?: fn())","!url":"http://nodejs.org/api/net.html#net_socket_settimeout_timeout_callback","!doc":"Sets the socket to timeout after timeout milliseconds of inactivity on the socket. By default net.Socket do not have a timeout."},setKeepAlive:{"!type":"fn(enable?: bool, initialDelay?: number)","!url":"http://nodejs.org/api/net.html#net_socket_setkeepalive_enable_initialdelay","!doc":"Enable/disable keep-alive functionality, and optionally set the initial delay before the first keepalive probe is sent on an idle socket. enable defaults to false."},address:{"!type":"fn() -> net.address","!url":"http://nodejs.org/api/net.html#net_socket_address","!doc":"Returns the bound address, the address family name and port of the socket as reported by the operating system. Returns an object with three properties, e.g. { port: 12346, family: 'IPv4', address: '127.0.0.1' }"},unref:{"!type":"fn()","!url":"http://nodejs.org/api/net.html#net_socket_unref","!doc":"Calling unref on a socket will allow the program to exit if this is the only active socket in the event system. If the socket is already unrefd calling unref again will have no effect."},ref:{"!type":"fn()","!url":"http://nodejs.org/api/net.html#net_socket_ref","!doc":"Opposite of unref, calling ref on a previously unrefd socket will not let the program exit if it's the only socket left (the default behavior). If the socket is refd calling ref again will have no effect."},remoteAddress:{"!type":"string","!url":"http://nodejs.org/api/net.html#net_socket_remoteaddress","!doc":"The string representation of the remote IP address. For example, '74.125.127.100' or '2001:4860:a005::68'."},remotePort:{"!type":"number","!url":"http://nodejs.org/api/net.html#net_socket_remoteport","!doc":"The numeric representation of the remote port. For example, 80 or 21."},localPort:{"!type":"number","!url":"http://nodejs.org/api/net.html#net_socket_localport","!doc":"The numeric representation of the local port. For example, 80 or 21."},bytesRead:{"!type":"number","!url":"http://nodejs.org/api/net.html#net_socket_bytesread","!doc":"The amount of received bytes."},bytesWritten:{"!type":"number","!url":"http://nodejs.org/api/net.html#net_socket_byteswritten","!doc":"The amount of bytes sent."},setNoDelay:{"!type":"fn(noDelay?: fn())","!url":"http://nodejs.org/api/net.html#net_socket_setnodelay_nodelay","!doc":"Disables the Nagle algorithm. By default TCP connections use the Nagle algorithm, they buffer data before sending it off. Setting true for noDelay will immediately fire off data each time socket.write() is called. noDelay defaults to true."},localAddress:{"!type":"string","!url":"http://nodejs.org/api/net.html#net_socket_localaddress","!doc":"The string representation of the local IP address the remote client is connecting on. For example, if you are listening on '0.0.0.0' and the client connects on '192.168.1.1', the value would be '192.168.1.1'."}},"!url":"http://nodejs.org/api/net.html#net_class_net_socket","!doc":"This object is an abstraction of a TCP or UNIX socket. net.Socket instances implement a duplex Stream interface. They can be created by the user and used as a client (with connect()) or they can be created by Node and passed to the user through the 'connection' event of a server."},connect:{"!type":"fn(options: ?, connectionListener?: fn()) -> +net.Socket","!url":"http://nodejs.org/api/net.html#net_net_connect_options_connectionlistener","!doc":"Constructs a new socket object and opens the socket to the given location. When the socket is established, the 'connect' event will be emitted."},createConnection:{"!type":"fn(options: ?, connectionListener?: fn()) -> +net.Socket","!url":"http://nodejs.org/api/net.html#net_net_createconnection_options_connectionlistener","!doc":"Constructs a new socket object and opens the socket to the given location. When the socket is established, the 'connect' event will be emitted."},isIP:{"!type":"fn(input: string) -> number","!url":"http://nodejs.org/api/net.html#net_net_isip_input","!doc":"Tests if input is an IP address. Returns 0 for invalid strings, returns 4 for IP version 4 addresses, and returns 6 for IP version 6 addresses."},isIPv4:{"!type":"fn(input: string) -> bool","!url":"http://nodejs.org/api/net.html#net_net_isipv4_input","!doc":"Returns true if input is a version 4 IP address, otherwise returns false."},isIPv6:{"!type":"fn(input: string) -> bool","!url":"http://nodejs.org/api/net.html#net_net_isipv6_input","!doc":"Returns true if input is a version 6 IP address, otherwise returns false."}},dgram:{createSocket:{"!type":"fn(type: string, callback?: fn()) -> +dgram.Socket","!url":"http://nodejs.org/api/dgram.html#dgram_dgram_createsocket_type_callback","!doc":"Creates a datagram Socket of the specified types. Valid types are udp4 and udp6."},Socket:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",send:{"!type":"fn(buf: +Buffer, offset: number, length: number, port: number, address: string, callback?: fn())","!url":"http://nodejs.org/api/dgram.html#dgram_socket_send_buf_offset_length_port_address_callback","!doc":"For UDP sockets, the destination port and IP address must be specified. A string may be supplied for the address parameter, and it will be resolved with DNS. An optional callback may be specified to detect any DNS errors and when buf may be re-used. Note that DNS lookups will delay the time that a send takes place, at least until the next tick. The only way to know for sure that a send has taken place is to use the callback."},bind:{"!type":"fn(port: number, address?: string)","!url":"http://nodejs.org/api/dgram.html#dgram_socket_bind_port_address_callback","!doc":"For UDP sockets, listen for datagrams on a named port and optional address. If address is not specified, the OS will try to listen on all addresses."},close:{"!type":"fn()","!url":"http://nodejs.org/api/dgram.html#dgram_socket_close","!doc":"Close the underlying socket and stop listening for data on it."},address:{address:"string",family:"string",port:"number","!url":"http://nodejs.org/api/dgram.html#dgram_socket_address","!doc":"Returns an object containing the address information for a socket. For UDP sockets, this object will contain address , family and port."},setBroadcast:{"!type":"fn(flag: bool)","!url":"http://nodejs.org/api/dgram.html#dgram_socket_setbroadcast_flag","!doc":"Sets or clears the SO_BROADCAST socket option. When this option is set, UDP packets may be sent to a local interface's broadcast address."},setTTL:{"!type":"fn(ttl: number)","!url":"http://nodejs.org/api/dgram.html#dgram_socket_setttl_ttl","!doc":'Sets the IP_TTL socket option. TTL stands for "Time to Live," but in this context it specifies the number of IP hops that a packet is allowed to go through. Each router or gateway that forwards a packet decrements the TTL. If the TTL is decremented to 0 by a router, it will not be forwarded. Changing TTL values is typically done for network probes or when multicasting.'},setMulticastTTL:{"!type":"fn(ttl: number)","!url":"http://nodejs.org/api/dgram.html#dgram_socket_setmulticastttl_ttl","!doc":'Sets the IP_MULTICAST_TTL socket option. TTL stands for "Time to Live," but in this context it specifies the number of IP hops that a packet is allowed to go through, specifically for multicast traffic. Each router or gateway that forwards a packet decrements the TTL. If the TTL is decremented to 0 by a router, it will not be forwarded.'},setMulticastLoopback:{"!type":"fn(flag: bool)","!url":"http://nodejs.org/api/dgram.html#dgram_socket_setmulticastloopback_flag","!doc":"Sets or clears the IP_MULTICAST_LOOP socket option. When this option is set, multicast packets will also be received on the local interface."},addMembership:{"!type":"fn(multicastAddress: string, multicastInterface?: string)","!url":"http://nodejs.org/api/dgram.html#dgram_socket_addmembership_multicastaddress_multicastinterface","!doc":"Tells the kernel to join a multicast group with IP_ADD_MEMBERSHIP socket option."},dropMembership:{"!type":"fn(multicastAddress: string, multicastInterface?: string)","!url":"http://nodejs.org/api/dgram.html#dgram_socket_dropmembership_multicastaddress_multicastinterface","!doc":"Opposite of addMembership - tells the kernel to leave a multicast group with IP_DROP_MEMBERSHIP socket option. This is automatically called by the kernel when the socket is closed or process terminates, so most apps will never need to call this."}},"!url":"http://nodejs.org/api/dgram.html#dgram_class_dgram_socket","!doc":"The dgram Socket class encapsulates the datagram functionality. It should be created via dgram.createSocket(type, [callback])."}},fs:{rename:{"!type":"fn(oldPath: string, newPath: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback","!doc":"Asynchronous rename(2). No arguments other than a possible exception are given to the completion callback."},renameSync:{"!type":"fn(oldPath: string, newPath: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_renamesync_oldpath_newpath","!doc":"Synchronous rename(2)."},ftruncate:{"!type":"fn(fd: number, len: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_ftruncate_fd_len_callback","!doc":"Asynchronous ftruncate(2). No arguments other than a possible exception are given to the completion callback."},ftruncateSync:{"!type":"fn(fd: number, len: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_ftruncatesync_fd_len","!doc":"Synchronous ftruncate(2)."},truncate:{"!type":"fn(path: string, len: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_truncate_path_len_callback","!doc":"Asynchronous truncate(2). No arguments other than a possible exception are given to the completion callback."},truncateSync:{"!type":"fn(path: string, len: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_truncatesync_path_len","!doc":"Synchronous truncate(2)."},chown:{"!type":"fn(path: string, uid: number, gid: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_chown_path_uid_gid_callback","!doc":"Asynchronous chown(2). No arguments other than a possible exception are given to the completion callback."},chownSync:{"!type":"fn(path: string, uid: number, gid: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_chownsync_path_uid_gid","!doc":"Synchronous chown(2)."},fchown:{"!type":"fn(fd: number, uid: number, gid: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_fchown_fd_uid_gid_callback","!doc":"Asynchronous fchown(2). No arguments other than a possible exception are given to the completion callback."},fchownSync:{"!type":"fn(fd: number, uid: number, gid: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_fchownsync_fd_uid_gid","!doc":"Synchronous fchown(2)."},lchown:{"!type":"fn(path: string, uid: number, gid: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_lchown_path_uid_gid_callback","!doc":"Asynchronous lchown(2). No arguments other than a possible exception are given to the completion callback."},lchownSync:{"!type":"fn(path: string, uid: number, gid: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_lchownsync_path_uid_gid","!doc":"Synchronous lchown(2)."},chmod:{"!type":"fn(path: string, mode: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_chmod_path_mode_callback","!doc":"Asynchronous chmod(2). No arguments other than a possible exception are given to the completion callback."},chmodSync:{"!type":"fn(path: string, mode: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_chmodsync_path_mode","!doc":"Synchronous chmod(2)."},fchmod:{"!type":"fn(fd: number, mode: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_fchmod_fd_mode_callback","!doc":"Asynchronous fchmod(2). No arguments other than a possible exception are given to the completion callback."},fchmodSync:{"!type":"fn(fd: number, mode: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_fchmodsync_fd_mode","!doc":"Synchronous fchmod(2)."},lchmod:{"!type":"fn(path: string, mode: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_lchmod_path_mode_callback","!doc":"Asynchronous lchmod(2). No arguments other than a possible exception are given to the completion callback."},lchmodSync:{"!type":"fn(path: string, mode: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_lchmodsync_path_mode","!doc":"Synchronous lchmod(2)."},stat:{"!type":"fn(path: string, callback?: fn(err: +Error, stats: +fs.Stats) -> ?) -> +fs.Stats","!url":"http://nodejs.org/api/fs.html#fs_fs_stat_path_callback","!doc":"Asynchronous stat(2). The callback gets two arguments (err, stats) where stats is a fs.Stats object."},lstat:{"!type":"fn(path: string, callback?: fn(err: +Error, stats: +fs.Stats) -> ?) -> +fs.Stats","!url":"http://nodejs.org/api/fs.html#fs_fs_lstat_path_callback","!doc":"Asynchronous lstat(2). The callback gets two arguments (err, stats) where stats is a fs.Stats object. lstat() is identical to stat(), except that if path is a symbolic link, then the link itself is stat-ed, not the file that it refers to."},fstat:{"!type":"fn(fd: number, callback?: fn(err: +Error, stats: +fs.Stats) -> ?) -> +fs.Stats","!url":"http://nodejs.org/api/fs.html#fs_fs_fstat_fd_callback","!doc":"Asynchronous fstat(2). The callback gets two arguments (err, stats) where stats is a fs.Stats object. fstat() is identical to stat(), except that the file to be stat-ed is specified by the file descriptor fd."},statSync:{"!type":"fn(path: string) -> +fs.Stats","!url":"http://nodejs.org/api/fs.html#fs_fs_statsync_path","!doc":"Synchronous stat(2). Returns an instance of fs.Stats."},lstatSync:{"!type":"fn(path: string) -> +fs.Stats","!url":"http://nodejs.org/api/fs.html#fs_fs_lstatsync_path","!doc":"Synchronous lstat(2). Returns an instance of fs.Stats."},fstatSync:{"!type":"fn(fd: number) -> +fs.Stats","!url":"http://nodejs.org/api/fs.html#fs_fs_fstatsync_fd","!doc":"Synchronous fstat(2). Returns an instance of fs.Stats."},link:{"!type":"fn(srcpath: string, dstpath: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_link_srcpath_dstpath_callback","!doc":"Asynchronous link(2). No arguments other than a possible exception are given to the completion callback."},linkSync:{"!type":"fn(srcpath: string, dstpath: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_linksync_srcpath_dstpath","!doc":"Synchronous link(2)."},symlink:{"!type":"fn(srcpath: string, dstpath: string, type?: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_symlink_srcpath_dstpath_type_callback","!doc":"Asynchronous symlink(2). No arguments other than a possible exception are given to the completion callback. type argument can be either 'dir', 'file', or 'junction' (default is 'file'). It is only used on Windows (ignored on other platforms). Note that Windows junction points require the destination path to be absolute. When using 'junction', the destination argument will automatically be normalized to absolute path."},symlinkSync:{"!type":"fn(srcpath: string, dstpath: string, type?: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_symlinksync_srcpath_dstpath_type","!doc":"Synchronous symlink(2)."},readlink:{"!type":"fn(path: string, callback?: fn(err: +Error, linkString: string))","!url":"http://nodejs.org/api/fs.html#fs_fs_readlink_path_callback","!doc":"Asynchronous readlink(2). The callback gets two arguments (err, linkString)."},readlinkSync:{"!type":"fn(path: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_readlinksync_path","!doc":"Synchronous readlink(2). Returns the symbolic link's string value."},realpath:{"!type":"fn(path: string, cache: string, callback: fn(err: +Error, resolvedPath: string))","!url":"http://nodejs.org/api/fs.html#fs_fs_realpath_path_cache_callback","!doc":"Asynchronous realpath(2). The callback gets two arguments (err, resolvedPath). May use process.cwd to resolve relative paths. cache is an object literal of mapped paths that can be used to force a specific path resolution or avoid additional fs.stat calls for known real paths."},realpathSync:{"!type":"fn(path: string, cache?: bool) -> string","!url":"http://nodejs.org/api/fs.html#fs_fs_realpathsync_path_cache","!doc":"Synchronous realpath(2). Returns the resolved path."},unlink:{"!type":"fn(path: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_unlink_path_callback","!doc":"Asynchronous unlink(2). No arguments other than a possible exception are given to the completion callback."},unlinkSync:{"!type":"fn(path: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_unlinksync_path","!doc":"Synchronous unlink(2)."},rmdir:{"!type":"fn(path: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_rmdir_path_callback","!doc":"Asynchronous rmdir(2). No arguments other than a possible exception are given to the completion callback."},rmdirSync:{"!type":"fn(path: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_rmdirsync_path","!doc":"Synchronous rmdir(2)."},mkdir:{"!type":"fn(path: string, mode?: ?, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_mkdir_path_mode_callback","!doc":"Asynchronous mkdir(2). No arguments other than a possible exception are given to the completion callback. mode defaults to 0777."},mkdirSync:{"!type":"fn(path: string, mode?: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_mkdirsync_path_mode","!doc":"Synchronous mkdir(2)."},readdir:{"!type":"fn(path: string, callback?: fn(err: +Error, files: [string]))","!url":"http://nodejs.org/api/fs.html#fs_fs_readdir_path_callback","!doc":"Asynchronous readdir(3). Reads the contents of a directory. The callback gets two arguments (err, files) where files is an array of the names of the files in the directory excluding '.' and '..'."},readdirSync:{"!type":"fn(path: string) -> [string]","!url":"http://nodejs.org/api/fs.html#fs_fs_readdirsync_path","!doc":"Synchronous readdir(3). Returns an array of filenames excluding '.' and '..'."},close:{"!type":"fn(fd: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_close_fd_callback","!doc":"Asynchronous close(2). No arguments other than a possible exception are given to the completion callback."},closeSync:{"!type":"fn(fd: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_closesync_fd","!doc":"Synchronous close(2)."},open:{"!type":"fn(path: string, flags: string, mode?: string, callback?: fn(err: +Error, fd: number))","!url":"http://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback","!doc":"Asynchronous file open."},openSync:{"!type":"fn(path: string, flags: string, mode?: string) -> number","!url":"http://nodejs.org/api/fs.html#fs_fs_opensync_path_flags_mode","!doc":"Synchronous open(2)."},utimes:{"!type":"fn(path: string, atime: number, mtime: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_utimes_path_atime_mtime_callback","!doc":"Change file timestamps of the file referenced by the supplied path."},utimesSync:{"!type":"fn(path: string, atime: number, mtime: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_utimessync_path_atime_mtime","!doc":"Change file timestamps of the file referenced by the supplied path."},futimes:{"!type":"fn(fd: number, atime: number, mtime: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_futimes_fd_atime_mtime_callback","!doc":"Change the file timestamps of a file referenced by the supplied file descriptor."},futimesSync:{"!type":"fn(fd: number, atime: number, mtime: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_futimessync_fd_atime_mtime","!doc":"Change the file timestamps of a file referenced by the supplied file descriptor."},fsync:{"!type":"fn(fd: number, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_fsync_fd_callback","!doc":"Asynchronous fsync(2). No arguments other than a possible exception are given to the completion callback."},fsyncSync:{"!type":"fn(fd: number)","!url":"http://nodejs.org/api/fs.html#fs_fs_fsyncsync_fd","!doc":"Synchronous fsync(2)."},write:{"!type":"fn(fd: number, buffer: +Buffer, offset: number, length: number, position: number, callback?: fn(err: +Error, written: number, buffer: +Buffer))","!url":"http://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback","!doc":"Write buffer to the file specified by fd."},writeSync:{"!type":"fn(fd: number, buffer: +Buffer, offset: number, length: number, position: number) -> number","!url":"http://nodejs.org/api/fs.html#fs_fs_writesync_fd_buffer_offset_length_position","!doc":"Synchronous version of fs.write(). Returns the number of bytes written."},read:{"!type":"fn(fd: number, buffer: +Buffer, offset: number, length: number, position: number, callback?: fn(err: +Error, bytesRead: number, buffer: +Buffer))","!url":"http://nodejs.org/api/fs.html#fs_fs_read_fd_buffer_offset_length_position_callback","!doc":"Read data from the file specified by fd."},readSync:{"!type":"fn(fd: number, buffer: +Buffer, offset: number, length: number, position: number) -> number","!url":"http://nodejs.org/api/fs.html#fs_fs_readsync_fd_buffer_offset_length_position","!doc":"Synchronous version of fs.read. Returns the number of bytesRead."},readFile:{"!type":"fn(filename: string, callback: fn(err: +Error, data: +Buffer))","!url":"http://nodejs.org/api/fs.html#fs_fs_readfile_filename_options_callback","!doc":"Asynchronously reads the entire contents of a file."},readFileSync:{"!type":"fn(filename: string, encoding: string) -> +Buffer","!url":"http://nodejs.org/api/fs.html#fs_fs_readfilesync_filename_options","!doc":"Synchronous version of fs.readFile. Returns the contents of the filename."},writeFile:{"!type":"fn(filename: string, data: +Buffer, encoding?: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_writefile_filename_data_options_callback","!doc":"Asynchronously writes data to a file, replacing the file if it already exists. data can be a string or a buffer."},writeFileSync:{"!type":"fn(filename: string, data: +Buffer, encoding?: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_writefilesync_filename_data_options","!doc":"The synchronous version of fs.writeFile."},appendFile:{"!type":"fn(filename: string, data: ?, encoding?: string, callback?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_appendfile_filename_data_options_callback","!doc":"Asynchronously append data to a file, creating the file if it not yet exists. data can be a string or a buffer."},appendFileSync:{"!type":"fn(filename: string, data: ?, encoding?: string)","!url":"http://nodejs.org/api/fs.html#fs_fs_appendfilesync_filename_data_options","!doc":"The synchronous version of fs.appendFile."},watchFile:{"!type":"fn(filename: string, options: ?, listener: fn(current: +fs.Stats, prev: +fs.Stats))","!url":"http://nodejs.org/api/fs.html#fs_fs_watchfile_filename_options_listener","!doc":"Watch for changes on filename. The callback listener will be called each time the file is accessed."},unwatchFile:{"!type":"fn(filename: string, listener?: fn())","!url":"http://nodejs.org/api/fs.html#fs_fs_unwatchfile_filename_listener","!doc":"Stop watching for changes on filename. If listener is specified, only that particular listener is removed. Otherwise, all listeners are removed and you have effectively stopped watching filename."},watch:{"!type":"fn(filename: string, options?: ?, listener?: fn(event: string, filename: string)) -> +fs.FSWatcher","!url":"http://nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener","!doc":"Watch for changes on filename, where filename is either a file or a directory. The returned object is a fs.FSWatcher."},exists:{"!type":"fn(path: string, callback?: fn(exists: bool))","!url":"http://nodejs.org/api/fs.html#fs_fs_exists_path_callback","!doc":"Test whether or not the given path exists by checking with the file system. Then call the callback argument with either true or false."},existsSync:{"!type":"fn(path: string) -> bool","!url":"http://nodejs.org/api/fs.html#fs_fs_existssync_path","!doc":"Synchronous version of fs.exists."},Stats:{"!type":"fn()",prototype:{isFile:"fn() -> bool",isDirectory:"fn() -> bool",isBlockDevice:"fn() -> bool",isCharacterDevice:"fn() -> bool",isSymbolicLink:"fn() -> bool",isFIFO:"fn() -> bool",isSocket:"fn() -> bool",dev:"number",ino:"number",mode:"number",nlink:"number",uid:"number",gid:"number",rdev:"number",size:"number",blksize:"number",blocks:"number",atime:"+Date",mtime:"+Date",ctime:"+Date"},"!url":"http://nodejs.org/api/fs.html#fs_class_fs_stats","!doc":"Objects returned from fs.stat(), fs.lstat() and fs.fstat() and their synchronous counterparts are of this type."},createReadStream:{"!type":"fn(path: string, options?: ?) -> +stream.Readable","!url":"http://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options","!doc":"Returns a new ReadStream object."},createWriteStream:{"!type":"fn(path: string, options?: ?) -> +stream.Writable","!url":"http://nodejs.org/api/fs.html#fs_fs_createwritestream_path_options","!doc":"Returns a new WriteStream object."},FSWatcher:{"!type":"fn()",prototype:{close:"fn()"},"!url":"http://nodejs.org/api/fs.html#fs_class_fs_fswatcher","!doc":"Objects returned from fs.watch() are of this type."}},path:{normalize:{"!type":"fn(p: string) -> string","!url":"http://nodejs.org/api/path.html#path_path_normalize_p","!doc":"Normalize a string path, taking care of '..' and '.' parts."},join:{"!type":"fn() -> string","!url":"http://nodejs.org/api/path.html#path_path_join_path1_path2","!doc":"Join all arguments together and normalize the resulting path."},resolve:{"!type":"fn(from: string, from2: string, from3: string, from4: string, from5: string, to: string) -> string","!url":"http://nodejs.org/api/path.html#path_path_resolve_from_to","!doc":"Resolves to to an absolute path."},relative:{"!type":"fn(from: string, to: string) -> string","!url":"http://nodejs.org/api/path.html#path_path_relative_from_to","!doc":"Solve the relative path from from to to."},dirname:{"!type":"fn(p: string) -> string","!url":"http://nodejs.org/api/path.html#path_path_dirname_p","!doc":"Return the directory name of a path. Similar to the Unix dirname command."},basename:{"!type":"fn(p: string, ext?: string) -> string","!url":"http://nodejs.org/api/path.html#path_path_basename_p_ext","!doc":"Return the last portion of a path. Similar to the Unix basename command."},extname:{"!type":"fn(p: string) -> string","!url":"http://nodejs.org/api/path.html#path_path_extname_p","!doc":"Return the extension of the path, from the last '.' to end of string in the last portion of the path. If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string."},sep:{"!type":"string","!url":"http://nodejs.org/api/path.html#path_path_sep","!doc":"The platform-specific file separator. '\\\\' or '/'."},delimiter:{"!type":"string","!url":"http://nodejs.org/api/path.html#path_path_delimiter","!doc":"The platform-specific path delimiter, ; or ':'."}},string_decoder:{StringDecoder:{"!type":"fn(encoding?: string)",prototype:{write:{"!type":"fn(buffer: +Buffer) -> string","!url":"http://nodejs.org/api/string_decoder.html#string_decoder_decoder_write_buffer","!doc":"Returns a decoded string."},end:{"!type":"fn()","!url":"http://nodejs.org/api/string_decoder.html#string_decoder_decoder_end","!doc":"Returns any trailing bytes that were left in the buffer."}},"!url":"http://nodejs.org/api/string_decoder.html#string_decoder_class_stringdecoder","!doc":"Accepts a single argument, encoding which defaults to utf8."}},tls:{CLIENT_RENEG_LIMIT:"number",CLIENT_RENEG_WINDOW:"number",SLAB_BUFFER_SIZE:"number",getCiphers:{"!type":"fn() -> [string]","!url":"http://nodejs.org/api/tls.html#tls_tls_getciphers","!doc":"Returns an array with the names of the supported SSL ciphers."},Server:{"!type":"fn()",prototype:{"!proto":"net.Server.prototype",listen:{"!type":"fn(port: number, host?: string, callback?: fn())","!url":"http://nodejs.org/api/tls.html#tls_server_listen_port_host_callback","!doc":"Begin accepting connections on the specified port and host. If the host is omitted, the server will accept connections directed to any IPv4 address (INADDR_ANY)."},close:{"!type":"fn()","!url":"http://nodejs.org/api/tls.html#tls_server_close","!doc":"Stops the server from accepting new connections. This function is asynchronous, the server is finally closed when the server emits a 'close' event."},addContext:{"!type":"fn(hostName: string, credentials: tls.Server.credentials)","!url":"http://nodejs.org/api/tls.html#tls_server_addcontext_hostname_credentials","!doc":"Add secure context that will be used if client request's SNI hostname is matching passed hostname (wildcards can be used). credentials can contain key, cert and ca."}},"!url":"http://nodejs.org/api/tls.html#tls_class_tls_server","!doc":"This class is a subclass of net.Server and has the same methods on it. Instead of accepting just raw TCP connections, this accepts encrypted connections using TLS or SSL."},createServer:{"!type":"fn(options?: ?, connectionListener?: fn(stream: +tls.CleartextStream)) -> +tls.Server","!url":"http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener","!doc":"Creates a new tls.Server. The connectionListener argument is automatically set as a listener for the secureConnection event."},CleartextStream:{"!type":"fn()",prototype:{"!proto":"stream.Duplex.prototype",authorized:{"!type":"bool","!url":"http://nodejs.org/api/tls.html#tls_cleartextstream_authorized","!doc":"A boolean that is true if the peer certificate was signed by one of the specified CAs, otherwise false"},authorizationError:{"!type":"+Error","!url":"http://nodejs.org/api/tls.html#tls_cleartextstream_authorizationerror","!doc":"The reason why the peer's certificate has not been verified. This property becomes available only when cleartextStream.authorized === false."},getPeerCertificate:{"!type":"fn() -> ?","!url":"http://nodejs.org/api/tls.html#tls_cleartextstream_getpeercertificate","!doc":"Returns an object representing the peer's certificate. The returned object has some properties corresponding to the field of the certificate."},getCipher:{"!type":"fn() -> tls.cipher","!url":"http://nodejs.org/api/tls.html#tls_cleartextstream_getcipher","!doc":"Returns an object representing the cipher name and the SSL/TLS protocol version of the current connection."},address:{"!type":"net.address","!url":"http://nodejs.org/api/tls.html#tls_cleartextstream_address","!doc":"Returns the bound address, the address family name and port of the underlying socket as reported by the operating system. Returns an object with three properties, e.g. { port: 12346, family: 'IPv4', address: '127.0.0.1' }"},remoteAddress:{"!type":"string","!url":"http://nodejs.org/api/tls.html#tls_cleartextstream_remoteaddress","!doc":"The string representation of the remote IP address. For example, '74.125.127.100' or '2001:4860:a005::68'."},remotePort:{"!type":"number","!url":"http://nodejs.org/api/tls.html#tls_cleartextstream_remoteport","!doc":"The numeric representation of the remote port. For example, 443."}},"!url":"http://nodejs.org/api/tls.html#tls_class_tls_cleartextstream","!doc":"This is a stream on top of the Encrypted stream that makes it possible to read/write an encrypted data as a cleartext data."},connect:{"!type":"fn(port: number, host?: string, options: ?, listener: fn()) -> +tls.CleartextStream","!url":"http://nodejs.org/api/tls.html#tls_tls_connect_options_callback","!doc":"Creates a new client connection to the given port and host (old API) or options.port and options.host. (If host is omitted, it defaults to localhost.)"},createSecurePair:{"!type":"fn(credentials?: crypto.credentials, isServer?: bool, requestCert?: bool, rejectUnauthorized?: bool) -> +tls.SecurePair","!url":"http://nodejs.org/api/tls.html#tls_tls_createsecurepair_credentials_isserver_requestcert_rejectunauthorized","!doc":"Creates a new secure pair object with two streams, one of which reads/writes encrypted data, and one reads/writes cleartext data. Generally the encrypted one is piped to/from an incoming encrypted data stream, and the cleartext one is used as a replacement for the initial encrypted stream."},SecurePair:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",cleartext:{"!type":"+tls.CleartextStream","!url":"http://nodejs.org/api/tls.html#tls_class_securepair","!doc":"Returned by tls.createSecurePair."},encrypted:{"!type":"+stream.Duplex","!url":"http://nodejs.org/api/tls.html#tls_class_securepair","!doc":"Returned by tls.createSecurePair."}},"!url":"http://nodejs.org/api/tls.html#tls_class_securepair","!doc":"Returned by tls.createSecurePair."}},crypto:{getCiphers:{"!type":"fn() -> [string]","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_getciphers","!doc":"Returns an array with the names of the supported ciphers."},getHashes:{"!type":"fn() -> [string]","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_gethashes","!doc":"Returns an array with the names of the supported hash algorithms."},createCredentials:{"!type":"fn(details?: ?) -> crypto.credentials","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createcredentials_details","!doc":"Creates a credentials object."},createHash:{"!type":"fn(algorithm: string) -> +crypto.Hash","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm","!doc":"Creates and returns a hash object, a cryptographic hash with the given algorithm which can be used to generate hash digests."},Hash:{"!type":"fn()",prototype:{"!proto":"stream.Duplex.prototype",update:{"!type":"fn(data: +Buffer, encoding?: string)","!url":"http://nodejs.org/api/crypto.html#crypto_hash_update_data_input_encoding","!doc":"Updates the hash content with the given data, the encoding of which is given in input_encoding and can be 'utf8', 'ascii' or 'binary'. If no encoding is provided, then a buffer is expected."},digest:{"!type":"fn(encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_hash_digest_encoding","!doc":"Calculates the digest of all of the passed data to be hashed. The encoding can be 'hex', 'binary' or 'base64'. If no encoding is provided, then a buffer is returned."}},"!url":"http://nodejs.org/api/crypto.html#crypto_class_hash","!doc":"The class for creating hash digests of data."},createHmac:{"!type":"fn(algorithm: string, key: string) -> +crypto.Hmac","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createhmac_algorithm_key","!doc":"Creates and returns a hmac object, a cryptographic hmac with the given algorithm and key."},Hmac:{"!type":"fn()",prototype:{update:{"!type":"fn(data: +Buffer)","!url":"http://nodejs.org/api/crypto.html#crypto_hmac_update_data","!doc":"Update the hmac content with the given data. This can be called many times with new data as it is streamed."},digest:{"!type":"fn(encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_hmac_digest_encoding","!doc":"Calculates the digest of all of the passed data to the hmac. The encoding can be 'hex', 'binary' or 'base64'. If no encoding is provided, then a buffer is returned."}},"!url":"http://nodejs.org/api/crypto.html#crypto_class_hmac","!doc":"Class for creating cryptographic hmac content."},createCipher:{"!type":"fn(algorithm: string, password: string) -> +crypto.Cipher","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createcipher_algorithm_password","!doc":"Creates and returns a cipher object, with the given algorithm and password."},createCipheriv:{"!type":"fn(algorithm: string, password: string, iv: string) -> +crypto.Cipher","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createcipheriv_algorithm_key_iv","!doc":"Creates and returns a cipher object, with the given algorithm, key and iv."},Cipher:{"!type":"fn()",prototype:{"!proto":"stream.Duplex.prototype",update:{"!type":"fn(data: +Buffer, input_encoding?: string, output_encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_cipher_update_data_input_encoding_output_encoding","!doc":"Updates the cipher with data, the encoding of which is given in input_encoding and can be 'utf8', 'ascii' or 'binary'. If no encoding is provided, then a buffer is expected."},"final":{"!type":"fn(output_encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_cipher_final_output_encoding","!doc":"Returns any remaining enciphered contents, with output_encoding being one of: 'binary', 'base64' or 'hex'. If no encoding is provided, then a buffer is returned."},setAutoPadding:{"!type":"fn(auto_padding: bool)","!url":"http://nodejs.org/api/crypto.html#crypto_cipher_setautopadding_auto_padding_true","!doc":"You can disable automatic padding of the input data to block size. If auto_padding is false, the length of the entire input data must be a multiple of the cipher's block size or final will fail. Useful for non-standard padding, e.g. using 0x0 instead of PKCS padding. You must call this before cipher.final."}},"!url":"http://nodejs.org/api/crypto.html#crypto_class_cipher","!doc":"Class for encrypting data."},createDecipher:{"!type":"fn(algorithm: string, password: string) -> +crypto.Decipher","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createdecipher_algorithm_password","!doc":"Creates and returns a decipher object, with the given algorithm and key. This is the mirror of the createCipher() above."},createDecipheriv:{"!type":"fn(algorithm: string, key: string, iv: string) -> +crypto.Decipher","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createdecipheriv_algorithm_key_iv","!doc":"Creates and returns a decipher object, with the given algorithm, key and iv. This is the mirror of the createCipheriv() above."},Decipher:{"!type":"fn()",prototype:{"!proto":"stream.Duplex.prototype",update:{"!type":"fn(data: +Buffer, input_encoding?: string, output_encoding?: string)","!url":"http://nodejs.org/api/crypto.html#crypto_decipher_update_data_input_encoding_output_encoding","!doc":"Updates the decipher with data, which is encoded in 'binary', 'base64' or 'hex'. If no encoding is provided, then a buffer is expected."},"final":{"!type":"fn(output_encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_decipher_final_output_encoding","!doc":"Returns any remaining plaintext which is deciphered, with output_encoding being one of: 'binary', 'ascii' or 'utf8'. If no encoding is provided, then a buffer is returned."},setAutoPadding:{"!type":"fn(auto_padding: bool)","!url":"http://nodejs.org/api/crypto.html#crypto_decipher_setautopadding_auto_padding_true","!doc":"You can disable auto padding if the data has been encrypted without standard block padding to prevent decipher.final from checking and removing it. Can only work if the input data's length is a multiple of the ciphers block size. You must call this before streaming data to decipher.update."}},"!url":"http://nodejs.org/api/crypto.html#crypto_class_decipher","!doc":"Class for decrypting data."},createSign:{"!type":"fn(algorithm: string) -> +crypto.Sign","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createsign_algorithm","!doc":"Creates and returns a signing object, with the given algorithm. On recent OpenSSL releases, openssl list-public-key-algorithms will display the available signing algorithms. Examples are 'RSA-SHA256'."},Sign:{"!type":"fn()",prototype:{"!proto":"stream.Writable.prototype",update:{"!type":"fn(data: +Buffer)","!url":"http://nodejs.org/api/crypto.html#crypto_sign_update_data","!doc":"Updates the sign object with data. This can be called many times with new data as it is streamed."},sign:{"!type":"fn(private_key: string, output_format: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_sign_sign_private_key_output_format","!doc":"Calculates the signature on all the updated data passed through the sign. private_key is a string containing the PEM encoded private key for signing."}},"!url":"http://nodejs.org/api/crypto.html#crypto_class_sign","!doc":"Class for generating signatures."},createVerify:{"!type":"fn(algorith: string) -> +crypto.Verify","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_createverify_algorithm","!doc":"Creates and returns a verification object, with the given algorithm. This is the mirror of the signing object above."},Verify:{"!type":"fn()",prototype:{"!proto":"stream.Writable.prototype",update:{"!type":"fn(data: +Buffer)","!url":"http://nodejs.org/api/crypto.html#crypto_verifier_update_data","!doc":"Updates the verifier object with data. This can be called many times with new data as it is streamed."},verify:{"!type":"fn(object: string, signature: string, signature_format?: string) -> bool","!url":"http://nodejs.org/api/crypto.html#crypto_verifier_verify_object_signature_signature_format","!doc":"Verifies the signed data by using the object and signature. object is a string containing a PEM encoded object, which can be one of RSA public key, DSA public key, or X.509 certificate. signature is the previously calculated signature for the data, in the signature_format which can be 'binary', 'hex' or 'base64'. If no encoding is specified, then a buffer is expected."}},"!url":"http://nodejs.org/api/crypto.html#crypto_class_verify","!doc":"Class for verifying signatures."},createDiffieHellman:{"!type":"fn(prime: number, encoding?: string) -> +crypto.DiffieHellman","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_creatediffiehellman_prime_length","!doc":"Creates a Diffie-Hellman key exchange object and generates a prime of the given bit length. The generator used is 2."},DiffieHellman:{"!type":"fn()",prototype:{generateKeys:{"!type":"fn(encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_generatekeys_encoding","!doc":"Generates private and public Diffie-Hellman key values, and returns the public key in the specified encoding. This key should be transferred to the other party. Encoding can be 'binary', 'hex', or 'base64'. If no encoding is provided, then a buffer is returned."},computeSecret:{"!type":"fn(other_public_key: +Buffer, input_encoding?: string, output_encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_computesecret_other_public_key_input_encoding_output_encoding","!doc":"Computes the shared secret using other_public_key as the other party's public key and returns the computed shared secret. Supplied key is interpreted using specified input_encoding, and secret is encoded using specified output_encoding. Encodings can be 'binary', 'hex', or 'base64'. If the input encoding is not provided, then a buffer is expected."},getPrime:{"!type":"fn(encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_getprime_encoding","!doc":"Returns the Diffie-Hellman prime in the specified encoding, which can be 'binary', 'hex', or 'base64'. If no encoding is provided, then a buffer is returned."},getGenerator:{"!type":"fn(encoding: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_getgenerator_encoding","!doc":"Returns the Diffie-Hellman prime in the specified encoding, which can be 'binary', 'hex', or 'base64'. If no encoding is provided, then a buffer is returned."},getPublicKey:{"!type":"fn(encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_getpublickey_encoding","!doc":"Returns the Diffie-Hellman public key in the specified encoding, which can be 'binary', 'hex', or 'base64'. If no encoding is provided, then a buffer is returned."},getPrivateKey:{"!type":"fn(encoding?: string) -> +Buffer","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_getprivatekey_encoding","!doc":"Returns the Diffie-Hellman private key in the specified encoding, which can be 'binary', 'hex', or 'base64'. If no encoding is provided, then a buffer is returned."},setPublicKey:{"!type":"fn(public_key: +Buffer, encoding?: string)","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_setpublickey_public_key_encoding","!doc":"Sets the Diffie-Hellman public key. Key encoding can be 'binary', 'hex' or 'base64'. If no encoding is provided, then a buffer is expected."},setPrivateKey:{"!type":"fn(public_key: +Buffer, encoding?: string)","!url":"http://nodejs.org/api/crypto.html#crypto_diffiehellman_setprivatekey_private_key_encoding","!doc":"Sets the Diffie-Hellman private key. Key encoding can be 'binary', 'hex' or 'base64'. If no encoding is provided, then a buffer is expected."}},"!url":"http://nodejs.org/api/crypto.html#crypto_class_diffiehellman","!doc":"The class for creating Diffie-Hellman key exchanges."},getDiffieHellman:{"!type":"fn(group_name: string) -> +crypto.DiffieHellman","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_getdiffiehellman_group_name","!doc":"Creates a predefined Diffie-Hellman key exchange object. The supported groups are: 'modp1', 'modp2', 'modp5' (defined in RFC 2412) and 'modp14', 'modp15', 'modp16', 'modp17', 'modp18' (defined in RFC 3526). The returned object mimics the interface of objects created by crypto.createDiffieHellman() above, but will not allow to change the keys (with diffieHellman.setPublicKey() for example). The advantage of using this routine is that the parties don't have to generate nor exchange group modulus beforehand, saving both processor and communication time."},pbkdf2:{"!type":"fn(password: string, salt: string, iterations: number, keylen: number, callback: fn(err: +Error, derivedKey: string))","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2_password_salt_iterations_keylen_callback","!doc":"Asynchronous PBKDF2 applies pseudorandom function HMAC-SHA1 to derive a key of given length from the given password, salt and iterations. The callback gets two arguments (err, derivedKey)."},pbkdf2Sync:{"!type":"fn(password: string, salt: string, iterations: number, keylen: number) -> string","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen","!doc":"Synchronous PBKDF2 function. Returns derivedKey or throws error."},randomBytes:{"!type":"fn(size: number, callback?: fn(err: +Error, buf: +Buffer))","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback","!doc":"Generates cryptographically strong pseudo-random data."},pseudoRandomBytes:{"!type":"fn(size: number, callback?: fn(err: +Error, buf: +Buffer))","!url":"http://nodejs.org/api/crypto.html#crypto_crypto_pseudorandombytes_size_callback","!doc":"Generates non-cryptographically strong pseudo-random data. The data returned will be unique if it is sufficiently long, but is not necessarily unpredictable. For this reason, the output of this function should never be used where unpredictability is important, such as in the generation of encryption keys."},DEFAULT_ENCODING:"string"},util:{format:{"!type":"fn(format: string) -> string","!url":"http://nodejs.org/api/util.html#util_util_format_format","!doc":"Returns a formatted string using the first argument as a printf-like format."},debug:{"!type":"fn(msg: string)","!url":"http://nodejs.org/api/util.html#util_util_debug_string","!doc":"A synchronous output function. Will block the process and output string immediately to stderr."},error:{"!type":"fn(msg: string)","!url":"http://nodejs.org/api/util.html#util_util_error","!doc":"Same as util.debug() except this will output all arguments immediately to stderr."},puts:{"!type":"fn(data: string)","!url":"http://nodejs.org/api/util.html#util_util_puts","!doc":"A synchronous output function. Will block the process and output all arguments to stdout with newlines after each argument."},print:{"!type":"fn(data: string)","!url":"http://nodejs.org/api/util.html#util_util_print","!doc":"A synchronous output function. Will block the process, cast each argument to a string then output to stdout. Does not place newlines after each argument."},log:{"!type":"fn(string: string)","!url":"http://nodejs.org/api/util.html#util_util_log_string","!doc":"Output with timestamp on stdout."},inspect:{"!type":"fn(object: ?, options: ?) -> string","!url":"http://nodejs.org/api/util.html#util_util_inspect_object_options","!doc":"Return a string representation of object, which is useful for debugging."},isArray:{"!type":"fn(object: ?) -> bool","!url":"http://nodejs.org/api/util.html#util_util_isarray_object","!doc":'Returns true if the given "object" is an Array. false otherwise.'},isRegExp:{"!type":"fn(object: ?) -> bool","!url":"http://nodejs.org/api/util.html#util_util_isregexp_object","!doc":'Returns true if the given "object" is a RegExp. false otherwise.'},isDate:{"!type":"fn(object: ?) -> bool","!url":"http://nodejs.org/api/util.html#util_util_isdate_object","!doc":'Returns true if the given "object" is a Date. false otherwise.'},isError:{"!type":"fn(object: ?) -> bool","!url":"http://nodejs.org/api/util.html#util_util_iserror_object","!doc":'Returns true if the given "object" is an Error. false otherwise.'},inherits:{"!type":"fn(constructor: ?, superConstructor: ?)","!url":"http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor","!doc":"Inherit the prototype methods from one constructor into another. The prototype of constructor will be set to a new object created from superConstructor."}},assert:{"!type":"fn(value: ?, message?: string)",fail:{"!type":"fn(actual: ?, expected: ?, message: string, operator: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_fail_actual_expected_message_operator","!doc":"Throws an exception that displays the values for actual and expected separated by the provided operator."},ok:{"!type":"fn(value: ?, message?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert","!doc":"This module is used for writing unit tests for your applications, you can access it with require('assert')."},equal:{"!type":"fn(actual: ?, expected: ?, message?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_equal_actual_expected_message","!doc":"Tests shallow, coercive equality with the equal comparison operator ( == )."},notEqual:{"!type":"fn(actual: ?, expected: ?, message?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_notequal_actual_expected_message","!doc":"Tests shallow, coercive non-equality with the not equal comparison operator ( != )."},deepEqual:{"!type":"fn(actual: ?, expected: ?, message?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_deepequal_actual_expected_message","!doc":"Tests for deep equality."},notDeepEqual:{"!type":"fn(acutal: ?, expected: ?, message?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_notdeepequal_actual_expected_message","!doc":"Tests for any deep inequality."},strictEqual:{"!type":"fn(actual: ?, expected: ?, message?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_strictequal_actual_expected_message","!doc":"Tests strict equality, as determined by the strict equality operator ( === )"},notStrictEqual:{"!type":"fn(actual: ?, expected: ?, message?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_notstrictequal_actual_expected_message","!doc":"Tests strict non-equality, as determined by the strict not equal operator ( !== )"},"throws":{"!type":"fn(block: fn(), error?: ?, messsage?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_throws_block_error_message","!doc":"Expects block to throw an error. error can be constructor, regexp or validation function."},doesNotThrow:{"!type":"fn(block: fn(), error?: ?, messsage?: string)","!url":"http://nodejs.org/api/assert.html#assert_assert_doesnotthrow_block_message","!doc":"Expects block not to throw an error."},ifError:{"!type":"fn(value: ?)","!url":"http://nodejs.org/api/assert.html#assert_assert_iferror_value","!doc":"Tests if value is not a false value, throws if it is a true value. Useful when testing the first argument, error in callbacks."},"!url":"http://nodejs.org/api/assert.html#assert_assert","!doc":"This module is used for writing unit tests for your applications, you can access it with require('assert')."},tty:{isatty:{"!type":"fn(fd: number) -> bool","!url":"http://nodejs.org/api/tty.html#tty_tty_isatty_fd","!doc":"Returns true or false depending on if the fd is associated with a terminal."}},domain:{create:{"!type":"fn() -> +events.EventEmitter","!url":"http://nodejs.org/api/domain.html#domain_domain_create","!doc":"Returns a new Domain object."},Domain:{"!type":"fn()",prototype:{"!proto":"events.EventEmitter.prototype",run:{"!type":"fn(fn: fn())","!url":"http://nodejs.org/api/domain.html#domain_domain_run_fn","!doc":"Run the supplied function in the context of the domain, implicitly binding all event emitters, timers, and lowlevel requests that are created in that context."},members:{"!type":"[+events.EventEmitter]","!url":"http://nodejs.org/api/domain.html#domain_domain_members","!doc":"An array of timers and event emitters that have been explicitly added to the domain."},add:{"!type":"fn(emitter: +events.EventEmitter)","!url":"http://nodejs.org/api/domain.html#domain_domain_add_emitter","!doc":"Explicitly adds an emitter to the domain. If any event handlers called by the emitter throw an error, or if the emitter emits an error event, it will be routed to the domain's error event, just like with implicit binding."},remove:{"!type":"fn(emitter: +events.EventEmitter)","!url":"http://nodejs.org/api/domain.html#domain_domain_remove_emitter","!doc":"The opposite of domain.add(emitter). Removes domain handling from the specified emitter."},bind:{"!type":"fn(callback: fn(err: +Error, data: ?)) -> !0","!url":"http://nodejs.org/api/domain.html#domain_domain_bind_callback","!doc":"The returned function will be a wrapper around the supplied callback function. When the returned function is called, any errors that are thrown will be routed to the domain's error event."},intercept:{"!type":"fn(cb: fn(data: ?)) -> !0","!url":"http://nodejs.org/api/domain.html#domain_domain_intercept_callback","!doc":"This method is almost identical to domain.bind(callback). However, in addition to catching thrown errors, it will also intercept Error objects sent as the first argument to the function."},dispose:{"!type":"fn()","!url":"http://nodejs.org/api/domain.html#domain_domain_dispose","!doc":"The dispose method destroys a domain, and makes a best effort attempt to clean up any and all IO that is associated with the domain. Streams are aborted, ended, closed, and/or destroyed. Timers are cleared. Explicitly bound callbacks are no longer called. Any error events that are raised as a result of this are ignored."}},"!url":"http://nodejs.org/api/domain.html#domain_class_domain","!doc":"The Domain class encapsulates the functionality of routing errors and uncaught exceptions to the active Domain object."}},"os.cpuSpec":{model:"string",speed:"number",times:{user:"number",nice:"number",sys:"number",idle:"number",irq:"number"}},"process.memoryUsage.type":{rss:"number",heapTotal:"?",number:"?",heapUsed:"number"},"net.address":{port:"number",family:"string",address:"string"},"url.type":{href:"string",protocol:"string",auth:"string",hostname:"string",port:"string",host:"string",pathname:"string",search:"string",query:"string",slashes:"bool",hash:"string"},"tls.Server.credentials":{key:"string",cert:"string",ca:"string"},"tls.cipher":{name:"string",version:"string"},"crypto.credentials":{pfx:"string",key:"string",passphrase:"string",cert:"string",ca:"string",crl:"string",ciphers:"string"},buffer:{Buffer:"Buffer",INSPECT_MAX_BYTES:"number",SlowBuffer:"Buffer"},module:{},timers:{setTimeout:{"!type":"fn(callback: fn(), ms: number) -> timers.Timer","!url":"http://nodejs.org/api/globals.html#globals_settimeout_cb_ms","!doc":"Run callback cb after at least ms milliseconds. The actual delay depends on external factors like OS timer granularity and system load."},clearTimeout:{"!type":"fn(id: timers.Timer)","!url":"http://nodejs.org/api/globals.html#globals_cleartimeout_t","!doc":"Stop a timer that was previously created with setTimeout(). The callback will not execute."},setInterval:{"!type":"fn(callback: fn(), ms: number) -> timers.Timer","!url":"http://nodejs.org/api/globals.html#globals_setinterval_cb_ms","!doc":"Run callback cb repeatedly every ms milliseconds. Note that the actual interval may vary, depending on external factors like OS timer granularity and system load. It's never less than ms but it may be longer."},clearInterval:{"!type":"fn(id: timers.Timer)","!url":"http://nodejs.org/api/globals.html#globals_clearinterval_t","!doc":"Stop a timer that was previously created with setInterval(). The callback will not execute."},setImmediate:{"!type":"fn(callback: fn()) -> timers.Timer","!url":"http://nodejs.org/api/timers.html#timers_setimmediate_callback_arg","!doc":"Schedule the 'immediate' execution of callback after I/O events callbacks."},clearImmediate:{"!type":"fn(id: timers.Timer)","!url":"http://nodejs.org/api/timers.html#timers_clearimmediate_immediateid","!doc":"Stops an immediate from triggering."},Timer:{unref:{"!type":"fn()","!url":"http://nodejs.org/api/timers.html#timers_unref","!doc":"Create a timer that is active but if it is the only item left in the event loop won't keep the program running."},ref:{"!type":"fn()","!url":"http://nodejs.org/api/timers.html#timers_unref","!doc":"Explicitly request the timer hold the program open (cancel the effect of 'unref')."}}}},process:{stdout:{"!type":"+stream.Writable","!url":"http://nodejs.org/api/process.html#process_process_stdout","!doc":"A Writable Stream to stdout."},stderr:{"!type":"+stream.Writable","!url":"http://nodejs.org/api/process.html#process_process_stderr","!doc":"A writable stream to stderr."},stdin:{"!type":"+stream.Readable","!url":"http://nodejs.org/api/process.html#process_process_stdin","!doc":"A Readable Stream for stdin. The stdin stream is paused by default, so one must call process.stdin.resume() to read from it."},argv:{"!type":"[string]","!url":"http://nodejs.org/api/process.html#process_process_argv","!doc":"An array containing the command line arguments. The first element will be 'node', the second element will be the name of the JavaScript file. The next elements will be any additional command line arguments."},execPath:{"!type":"string","!url":"http://nodejs.org/api/process.html#process_process_execpath","!doc":"This is the absolute pathname of the executable that started the process."},abort:{"!type":"fn()","!url":"http://nodejs.org/api/process.html#process_process_abort","!doc":"This causes node to emit an abort. This will cause node to exit and generate a core file."},chdir:{"!type":"fn(directory: string)","!url":"http://nodejs.org/api/process.html#process_process_chdir_directory","!doc":"Changes the current working directory of the process or throws an exception if that fails."},cwd:{"!type":"fn()","!url":"http://nodejs.org/api/process.html#process_process_cwd","!doc":"Returns the current working directory of the process."},env:{"!url":"http://nodejs.org/api/process.html#process_process_env","!doc":"An object containing the user environment."},exit:{"!type":"fn(code?: number)","!url":"http://nodejs.org/api/process.html#process_process_exit_code","!doc":"Ends the process with the specified code. If omitted, exit uses the 'success' code 0."},getgid:{"!type":"fn() -> number","!url":"http://nodejs.org/api/process.html#process_process_getgid","!doc":"Gets the group identity of the process. This is the numerical group id, not the group name."},setgid:{"!type":"fn(id: number)","!url":"http://nodejs.org/api/process.html#process_process_setgid_id","!doc":"Sets the group identity of the process. This accepts either a numerical ID or a groupname string. If a groupname is specified, this method blocks while resolving it to a numerical ID."},getuid:{"!type":"fn() -> number","!url":"http://nodejs.org/api/process.html#process_process_getuid","!doc":"Gets the user identity of the process. This is the numerical userid, not the username."},setuid:{"!type":"fn(id: number)","!url":"http://nodejs.org/api/process.html#process_process_setuid_id","!doc":"Sets the user identity of the process. This accepts either a numerical ID or a username string. If a username is specified, this method blocks while resolving it to a numerical ID."},version:{"!type":"string","!url":"http://nodejs.org/api/process.html#process_process_version","!doc":"A compiled-in property that exposes NODE_VERSION."},versions:{http_parser:"string",node:"string",v8:"string",ares:"string",uv:"string",zlib:"string",openssl:"string","!url":"http://nodejs.org/api/process.html#process_process_versions","!doc":"A property exposing version strings of node and its dependencies."},config:{target_defaults:{cflags:"[?]",default_configuration:"string",defines:"[string]",include_dirs:"[string]",libraries:"[string]"},variables:{clang:"number",host_arch:"string",node_install_npm:"bool",node_install_waf:"bool",node_prefix:"string",node_shared_openssl:"bool",node_shared_v8:"bool",node_shared_zlib:"bool",node_use_dtrace:"bool",node_use_etw:"bool",node_use_openssl:"bool",target_arch:"string",v8_no_strict_aliasing:"number",v8_use_snapshot:"bool",visibility:"string"},"!url":"http://nodejs.org/api/process.html#process_process_config","!doc":'An Object containing the JavaScript representation of the configure options that were used to compile the current node executable. This is the same as the "config.gypi" file that was produced when running the ./configure script.'},kill:{"!type":"fn(pid: number, signal?: string)","!url":"http://nodejs.org/api/process.html#process_process_kill_pid_signal","!doc":"Send a signal to a process. pid is the process id and signal is the string describing the signal to send. Signal names are strings like 'SIGINT' or 'SIGUSR1'. If omitted, the signal will be 'SIGTERM'."},pid:{"!type":"number","!url":"http://nodejs.org/api/process.html#process_process_pid","!doc":"The PID of the process."},title:{"!type":"string","!url":"http://nodejs.org/api/process.html#process_process_title","!doc":"Getter/setter to set what is displayed in 'ps'."},arch:{"!type":"string","!url":"http://nodejs.org/api/process.html#process_process_arch","!doc":"What processor architecture you're running on: 'arm', 'ia32', or 'x64'."},platform:{"!type":"string","!url":"http://nodejs.org/api/process.html#process_process_platform","!doc":"What platform you're running on: 'darwin', 'freebsd', 'linux', 'sunos' or 'win32'"},memoryUsage:{"!type":"fn() -> process.memoryUsage.type","!url":"http://nodejs.org/api/process.html#process_process_memoryusage","!doc":"Returns an object describing the memory usage of the Node process measured in bytes."},nextTick:{"!type":"fn(callback: fn())","!url":"http://nodejs.org/api/process.html#process_process_nexttick_callback","!doc":"On the next loop around the event loop call this callback. This is not a simple alias to setTimeout(fn, 0), it's much more efficient. It typically runs before any other I/O events fire, but there are some exceptions."},maxTickDepth:{"!type":"number","!url":"http://nodejs.org/api/process.html#process_process_maxtickdepth","!doc":"The maximum depth of nextTick-calling nextTick-callbacks that will be evaluated before allowing other forms of I/O to occur."},umask:{"!type":"fn(mask?: number) -> number","!url":"http://nodejs.org/api/process.html#process_process_umask_mask","!doc":"Sets or reads the process's file mode creation mask. Child processes inherit the mask from the parent process. Returns the old mask if mask argument is given, otherwise returns the current mask."},uptime:{"!type":"fn() -> number","!url":"http://nodejs.org/api/process.html#process_process_uptime","!doc":"Number of seconds Node has been running."},hrtime:{"!type":"fn() -> [number]","!url":"http://nodejs.org/api/process.html#process_process_hrtime","!doc":"Returns the current high-resolution real time in a [seconds, nanoseconds] tuple Array. It is relative to an arbitrary time in the past. It is not related to the time of day and therefore not subject to clock drift. The primary use is for measuring performance between intervals."},"!url":"http://nodejs.org/api/globals.html#globals_process","!doc":"The process object."},global:{"!type":"","!url":"http://nodejs.org/api/globals.html#globals_global","!doc":"In browsers, the top-level scope is the global scope. That means that in browsers if you're in the global scope var something will define a global variable. In Node this is different. The top-level scope is not the global scope; var something inside a Node module will be local to that module."},console:{log:{"!type":"fn(text: string)","!url":"http://nodejs.org/api/stdio.html#stdio_console_log_data","!doc":"Prints to stdout with newline. This function can take multiple arguments in a printf()-like way."},info:{"!type":"fn(text: string)","!url":"http://nodejs.org/api/stdio.html#stdio_console_info_data","!doc":"Same as console.log."},error:{"!type":"fn(text: string)","!url":"http://nodejs.org/api/stdio.html#stdio_console_error_data","!doc":"Same as console.log but prints to stderr."},warn:{"!type":"fn(text: string)","!url":"http://nodejs.org/api/stdio.html#stdio_console_warn_data","!doc":"Same as console.error."},dir:{"!type":"fn(obj: ?)","!url":"http://nodejs.org/api/stdio.html#stdio_console_dir_obj","!doc":"Uses util.inspect on obj and prints resulting string to stdout."},time:{"!type":"fn(label: string)","!url":"http://nodejs.org/api/stdio.html#stdio_console_time_label","!doc":"Mark a time."},timeEnd:{"!type":"fn(label: string)","!url":"http://nodejs.org/api/stdio.html#stdio_console_timeend_label","!doc":"Finish timer, record output."},trace:{"!type":"fn(label: string)","!url":"http://nodejs.org/api/stdio.html#stdio_console_trace_label","!doc":"Print a stack trace to stderr of the current position."},assert:{"!type":"fn(expression: bool)","!url":"http://nodejs.org/api/stdio.html#stdio_console_assert_expression_message","!doc":"Same as assert.ok() where if the expression evaluates as false throw an AssertionError with message."},"!url":"http://nodejs.org/api/globals.html#globals_console","!doc":"Used to print to stdout and stderr."},__filename:{"!type":"string","!url":"http://nodejs.org/api/globals.html#globals_filename","!doc":"The filename of the code being executed. This is the resolved absolute path of this code file. For a main program this is not necessarily the same filename used in the command line. The value inside a module is the path to that module file."},__dirname:{"!type":"string","!url":"http://nodejs.org/api/globals.html#globals_dirname","!doc":"The name of the directory that the currently executing script resides in."},setTimeout:"timers.setTimeout",clearTimeout:"timers.clearTimeout",setInterval:"timers.setInterval",clearInterval:"timers.clearInterval",module:{"!type":"+Module","!url":"http://nodejs.org/api/globals.html#globals_module","!doc":"A reference to the current module. In particular module.exports is the same as the exports object. module isn't actually a global but rather local to each module."},Buffer:{"!type":"fn(str: string, encoding?: string) -> +Buffer",prototype:{"!proto":"String.prototype",write:"fn(string: string, offset?: number, length?: number, encoding?: string) -> number",toString:"fn(encoding?: string, start?: number, end?: number) -> string",length:"number",copy:"fn(targetBuffer: +Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number)",slice:"fn(start?: number, end?: number) -> +Buffer",readUInt8:"fn(offset: number, noAssert?: bool) -> number",readUInt16LE:"fn(offset: number, noAssert?: bool) -> number",readUInt16BE:"fn(offset: number, noAssert?: bool) -> number",readUInt32LE:"fn(offset: number, noAssert?: bool) -> number",readUInt32BE:"fn(offset: number, noAssert?: bool) -> number",readInt8:"fn(offset: number, noAssert?: bool) -> number",readInt16LE:"fn(offset: number, noAssert?: bool) -> number",readInt16BE:"fn(offset: number, noAssert?: bool) -> number",readInt32LE:"fn(offset: number, noAssert?: bool) -> number",readInt32BE:"fn(offset: number, noAssert?: bool) -> number",readFloatLE:"fn(offset: number, noAssert?: bool) -> number",readFloatBE:"fn(offset: number, noAssert?: bool) -> number",readDoubleLE:"fn(offset: number, noAssert?: bool) -> number",readDoubleBE:"fn(offset: number, noAssert?: bool) -> number",writeUInt8:"fn(value: number, offset: number, noAssert?: bool)",writeUInt16LE:"fn(value: number, offset: number, noAssert?: bool)",writeUInt16BE:"fn(value: number, offset: number, noAssert?: bool)",writeUInt32LE:"fn(value: number, offset: number, noAssert?: bool)",writeUInt32BE:"fn(value: number, offset: number, noAssert?: bool)",writeInt8:"fn(value: number, offset: number, noAssert?: bool)",writeInt16LE:"fn(value: number, offset: number, noAssert?: bool)",writeInt16BE:"fn(value: number, offset: number, noAssert?: bool)",writeInt32LE:"fn(value: number, offset: number, noAssert?: bool)",writeInt32BE:"fn(value: number, offset: number, noAssert?: bool)",writeFloatLE:"fn(value: number, offset: number, noAssert?: bool)",writeFloatBE:"fn(value: number, offset: number, noAssert?: bool)",writeDoubleLE:"fn(value: number, offset: number, noAssert?: bool)",writeDoubleBE:"fn(value: number, offset: number, noAssert?: bool)",fill:"fn(value: ?, offset?: number, end?: number)"},isBuffer:"fn(obj: ?) -> bool",byteLength:"fn(string: string, encoding?: string) -> number",concat:"fn(list: [+Buffer], totalLength?: number) -> +Buffer","!url":"http://nodejs.org/api/globals.html#globals_class_buffer","!doc":"Used to handle binary data."}} +}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/orionPostgres",["../lib/infer","../lib/tern","./resolver"],e):void e(infer,tern,resolver)}(function(e,t,r){function n(n,s,a,i){var l=t.resolvePos(n,a),c=e.findExpressionAround(n.ast,null,l,n.scope),p=r.getTemplatesForNode(o,c);if(p&&p.length>0)for(var d=0;d Query",copyFrom:"fn(queryText: string) -> stream.Writable",copyTo:"fn(queryText: string) -> stream.Readable",pauseDrain:"fn()",resumeDrain:"fn()",on:"fn(event: string, listener: fn()) -> Client"}},Query:{prototype:{on:"fn(event: string, listener: fn(row: ?, result?: ResultBuilder)) -> Query"}},Events:{prototype:{on:"fn(event: string, listener: fn(err: Error, client: Client)) -> Events"}}},"!name":"pg","!define":{"!node":{pg:{connect:"fn(connection: string, callback: fn(err: Error, client: Client, done: fn()))",end:"fn()",Client:"pg.Client"}}}}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/orionRedis",["../lib/infer","../lib/tern","./resolver"],e):void e(infer,tern,resolver)}(function(e,t,r){function n(n,s,a,i){var l=t.resolvePos(n,a),c=e.findExpressionAround(n.ast,null,l,n.scope),p=r.getTemplatesForNode(o,c);if(p&&p.length>0)for(var d=0;d RedisClient",print:"fn(err: Error, reply: ?)",debug_mode:"bool",ClientOpts:"redis.ClientOpts"}}},ClientOpts:{parser:"string",return_buffers:"bool",detect_buffers:"bool",socket_nodelay:"bool",no_ready_check:"bool",enable_offline_queue:"bool",retry_max_delay:"number",connect_timeout:"number",max_attempts:"number",auth_pass:"string"},RedisClient:{connected:"bool",retry_delay:"number",retry_backoff:"number",command_queue:"[?]",offline_queue:"[?]",server_info:"ServerInfo",end:"fn()",auth:"fn(password: string, callback?: ?)",ping:"fn(callback?: ?)",append:"fn(key: string, value: string, callback?: ?)",bitcount:"fn(key: string, callback?: ?)",set:"fn(key: string, value: string, callback?: ?)",get:"fn(key: string, callback?: ?)",exists:"fn(key: string, value: string, callback?: ?)",publish:"fn(channel: string, value: ?)",subscribe:"fn(channel: string)",setnx:"fn(args: [?], callback?: ?)",setex:"fn(args: [?], callback?: ?)",strlen:"fn(args: [?], callback?: ?)",del:"fn(args: [?], callback?: ?)",setbit:"fn(args: [?], callback?: ?)",getbit:"fn(args: [?], callback?: ?)",setrange:"fn(args: [?], callback?: ?)",getrange:"fn(args: [?], callback?: ?)",substr:"fn(args: [?], callback?: ?)",incr:"fn(args: [?], callback?: ?)",decr:"fn(args: [?], callback?: ?)",mget:"fn(args: [?], callback?: ?)",rpush:"fn(args: [?])",lpush:"fn(args: [?], callback?: ?)",rpushx:"fn(args: [?], callback?: ?)",lpushx:"fn(args: [?], callback?: ?)",linsert:"fn(args: [?], callback?: ?)",rpop:"fn(args: [?], callback?: ?)",lpop:"fn(args: [?], callback?: ?)",brpop:"fn(args: [?], callback?: ?)",brpoplpush:"fn(args: [?], callback?: ?)",blpop:"fn(args: [?], callback?: ?)",llen:"fn(args: [?], callback?: ?)",lindex:"fn(args: [?], callback?: ?)",lset:"fn(args: [?], callback?: ?)",lrange:"fn(args: [?], callback?: ?)",ltrim:"fn(args: [?], callback?: ?)",lrem:"fn(args: [?], callback?: ?)",rpoplpush:"fn(args: [?], callback?: ?)",sadd:"fn(args: [?], callback?: ?)",srem:"fn(args: [?], callback?: ?)",smove:"fn(args: [?], callback?: ?)",sismember:"fn(args: [?], callback?: ?)",scard:"fn(args: [?], callback?: ?)",spop:"fn(args: [?], callback?: ?)",srandmember:"fn(args: [?], callback?: ?)",sinter:"fn(args: [?], callback?: ?)",sinterstore:"fn(args: [?], callback?: ?)",sunion:"fn(args: [?], callback?: ?)",sunionstore:"fn(args: [?], callback?: ?)",sdiff:"fn(args: [?], callback?: ?)",sdiffstore:"fn(args: [?], callback?: ?)",smembers:"fn(args: [?], callback?: ?)",zadd:"fn(args: [?], callback?: ?)",zincrby:"fn(args: [?], callback?: ?)",zrem:"fn(args: [?], callback?: ?)",zremrangebyscore:"fn(args: [?], callback?: ?)",zremrangebyrank:"fn(args: [?], callback?: ?)",zunionstore:"fn(args: [?], callback?: ?)",zinterstore:"fn(args: [?], callback?: ?)",zrange:"fn(args: [?], callback?: ?)",zrangebyscore:"fn(args: [?], callback?: ?)",zrevrangebyscore:"fn(args: [?], callback?: ?)",zcount:"fn(args: [?], callback?: ?)",zrevrange:"fn(args: [?], callback?: ?)",zcard:"fn(args: [?], callback?: ?)",zscore:"fn(args: [?], callback?: ?)",zrank:"fn(args: [?], callback?: ?)",zrevrank:"fn(args: [?], callback?: ?)",hset:"fn(args: [?], callback?: ?)",hsetnx:"fn(args: [?], callback?: ?)",hget:"fn(args: [?], callback?: ?)",hmset:"fn(args: [?], callback?: ?)",hmget:"fn(args: [?], callback?: ?)",hincrby:"fn(args: [?], callback?: ?)",hdel:"fn(args: [?], callback?: ?)",hlen:"fn(args: [?], callback?: ?)",hkeys:"fn(args: [?], callback?: ?)",hvals:"fn(args: [?], callback?: ?)",hgetall:"fn(args: [?], callback?: ?)",hexists:"fn(args: [?], callback?: ?)",incrby:"fn(args: [?], callback?: ?)",decrby:"fn(args: [?], callback?: ?)",getset:"fn(args: [?], callback?: ?)",mset:"fn(args: [?], callback?: ?)",msetnx:"fn(args: [?], callback?: ?)",randomkey:"fn(args: [?], callback?: ?)",select:"fn(args: [?], callback?: ?)",move:"fn(args: [?], callback?: ?)",rename:"fn(args: [?], callback?: ?)",renamenx:"fn(args: [?], callback?: ?)",expire:"fn(args: [?], callback?: ?)",expireat:"fn(args: [?], callback?: ?)",keys:"fn(args: [?], callback?: ?)",dbsize:"fn(args: [?], callback?: ?)",echo:"fn(args: [?], callback?: ?)",save:"fn(args: [?], callback?: ?)",bgsave:"fn(args: [?], callback?: ?)",bgrewriteaof:"fn(args: [?], callback?: ?)",shutdown:"fn(args: [?], callback?: ?)",lastsave:"fn(args: [?], callback?: ?)",type:"fn(args: [?], callback?: ?)",multi:"fn(args: [?], callback?: ?)",exec:"fn(args: [?], callback?: ?)",discard:"fn(args: [?], callback?: ?)",sync:"fn(args: [?], callback?: ?)",flushdb:"fn(args: [?], callback?: ?)",flushall:"fn(args: [?], callback?: ?)",sort:"fn(args: [?], callback?: ?)",info:"fn(args: [?], callback?: ?)",monitor:"fn(args: [?], callback?: ?)",ttl:"fn(args: [?], callback?: ?)",persist:"fn(args: [?], callback?: ?)",slaveof:"fn(args: [?], callback?: ?)",debug:"fn(args: [?], callback?: ?)",config:"fn(args: [?], callback?: ?)",unsubscribe:"fn(args: [?], callback?: ?)",psubscribe:"fn(args: [?], callback?: ?)",punsubscribe:"fn(args: [?], callback?: ?)",watch:"fn(args: [?], callback?: ?)",unwatch:"fn(args: [?], callback?: ?)",cluster:"fn(args: [?], callback?: ?)",restore:"fn(args: [?], callback?: ?)",migrate:"fn(args: [?], callback?: ?)",dump:"fn(args: [?], callback?: ?)",object:"fn(args: [?], callback?: ?)",client:"fn(args: [?], callback?: ?)",eval:"fn(args: [?], callback?: ?)",evalsha:"fn(args: [?], callback?: ?)",quit:"fn(args: [?], callback?: ?)"},createClient:"fn(port_arg: number, host_arg?: string, options?: ClientOpts) -> RedisClient",print:"fn(err: Error, reply: ?)",debug_mode:"bool",MessageHandler:{},ServerInfo:{redis_version:"string",versions:"[number]"}}}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern")):"function"==typeof define&&define.amd?define("tern/plugin/requirejs",["../lib/infer","../lib/tern","./resolver"],e):void e(tern,tern)}(function(e,t,r){"use strict";function n(t,r){r.push(t?t:e.ANull)}function o(t){return t.require||(t.require=new e.Fn("require",e.ANull,[e.cx().str],["module"],new e.AVal),t.require.computeRet=function(r,n,o){if(o.length&&"Literal"==o[0].type&&"string"==typeof o[0].value){var s=i(o[0].value,t);if(s)return s}return e.ANull}),t.require}function s(t,r){var n=new e.Obj(e.cx().definitions.requirejs.module,"module"),o=n.defProp("exports"),s=c(p(t.currentFile),t);return s&&o.propagate(s),r.propagate(o,m),n}function a(t){var r=new e.Obj(!0,"exports"),n=c(p(t.currentFile),t);return n&&n.addType(r,m),r}function i(t,r){if(r.options.override&&Object.prototype.hasOwnProperty.call(r.options.override,t)){var n=r.options.override[t];if("string"==typeof n&&"="==n.charAt(0))return e.def.parsePath(n.slice(1));if("object"==typeof n){var o=l(t,r);if(o)return o;var s=r.interfaces[p(t)]=new e.Obj(null,p(t));return e.def.load(n,s),s}t=n}return o=c(t,r),o&&r.server.addFile(o.origin,o.contents,r.currentFile),o}function l(e,t){var n=r.getResolved(e);return n&&n.file?t.interfaces[p(n.file)]:null}function c(t,n){var o=l(t,n);if(!o){var s=r.getResolved(t);s&&s.file&&(o=n.interfaces[p(s.file)]=new e.AVal,o.origin=s.file,o.contents=s.contents)}return o}function p(e){return e.replace(/\.js$/,"")}function d(e){switch(e.type){case"ArrayExpression":return e.elements.map(d);case"Literal":return e.value;case"ObjectExpression":var t={};return e.properties.forEach(function(e){var r=e.key.name||e.key.value;t[r]=d(e.value)}),t}}function u(t){var r=e.cx().parent._requireJS.interfaces,n=t.roots["!requirejs"]=new e.Obj(null);for(var o in r){var s=n.defProp(o.replace(/\./g,"`"));r[o].propagate(s),s.origin=r[o].origin}}function h(t){var r=e.cx(),n=r.definitions[t["!name"]]["!requirejs"],t=r.parent._requireJS;if(n)for(var o in n.props)n.props[o].propagate(i(o,t))}function f(e,t,r,n){if(!r||"Literal"!=r.node.type||"string"!=typeof r.node.value||!r.node.required)return n;n=Object.create(n);var o=r.node.required;return n.origin=o.origin,n.originNode=o.originNode,n}var m=50;e.registerFunction("requireJS",function(t,r,l){function c(e){return"require"==e?o(u):"exports"==e?g||(g=a(u)):"module"==e?b||(b=s(u,g||(g=a(u)))):i(e,u)}var d=e.cx().parent,u=d&&d._requireJS;if(!u||!r.length)return e.ANull;var h=u.currentFile,f=u.interfaces[p(h)]=new e.AVal;f.origin=h;var m,g,b,y=[];if(l&&r.length>1){var v=l[2==r.length?0:1];if("Literal"==v.type&&"string"==typeof v.value)n(c(v.value),y);else if("ArrayExpression"==v.type)for(var w=0;w ?"},config:{"!url":"http://requirejs.org/docs/api.html#config",baseUrl:{"!type":"string","!doc":"the root path to use for all module lookups","!url":"http://requirejs.org/docs/api.html#config-baseUrl"},paths:{"!type":"?","!doc":"path mappings for module names not found directly under baseUrl. The path settings are assumed to be relative to baseUrl, unless the paths setting starts with a '/' or has a URL protocol in it ('like http:').","!url":"http://requirejs.org/docs/api.html#config-paths"},shim:{"!type":"?","!doc":"Configure the dependencies, exports, and custom initialization for older, traditional 'browser globals' scripts that do not use define() to declare the dependencies and set a module value.","!url":"http://requirejs.org/docs/api.html#config-shim"},map:{"!type":"?","!doc":"For the given module prefix, instead of loading the module with the given ID, substitute a different module ID.","!url":"http://requirejs.org/docs/api.html#config-map"},config:{"!type":"?","!doc":"There is a common need to pass configuration info to a module. That configuration info is usually known as part of the application, and there needs to be a way to pass that down to a module. In RequireJS, that is done with the config option for requirejs.config(). Modules can then read that info by asking for the special dependency 'module' and calling module.config().","!url":"http://requirejs.org/docs/api.html#config-moduleconfig"},packages:{"!type":"?","!doc":"configures loading modules from CommonJS packages. See the packages topic for more information.","!url":"http://requirejs.org/docs/api.html#config-packages"},nodeIdCompat:{"!type":"?","!doc":"Node treats module ID example.js and example the same. By default these are two different IDs in RequireJS. If you end up using modules installed from npm, then you may need to set this config value to true to avoid resolution issues.","!url":"http://requirejs.org/docs/api.html#config-nodeIdCompat"},waitSeconds:{"!type":"number","!doc":"The number of seconds to wait before giving up on loading a script. Setting it to 0 disables the timeout. The default is 7 seconds.","!url":"http://requirejs.org/docs/api.html#config-waitSeconds"},context:{"!type":"number","!doc":"A name to give to a loading context. This allows require.js to load multiple versions of modules in a page, as long as each top-level require call specifies a unique context string. To use it correctly, see the Multiversion Support section.","!url":"http://requirejs.org/docs/api.html#config-context"},deps:{"!type":"?","!doc":"An array of dependencies to load. Useful when require is defined as a config object before require.js is loaded, and you want to specify dependencies to load as soon as require() is defined. Using deps is just like doing a require([]) call, but done as soon as the loader has processed the configuration. It does not block any other require() calls from starting their requests for modules, it is just a way to specify some modules to load asynchronously as part of a config block.","!url":"http://requirejs.org/docs/api.html#config-deps"},callback:{"!type":"fn()","!doc":"A function to execute after deps have been loaded. Useful when require is defined as a config object before require.js is loaded, and you want to specify a function to require after the configuration's deps array has been loaded.","!url":"http://requirejs.org/docs/api.html#config-callback"},enforceDefine:{"!type":"bool","!doc":"If set to true, an error will be thrown if a script loads that does not call define() or have a shim exports string value that can be checked. See Catching load failures in IE for more information.","!url":"http://requirejs.org/docs/api.html#config-enforceDefine"},xhtml:{"!type":"bool","!doc":"If set to true, document.createElementNS() will be used to create script elements.","!url":"http://requirejs.org/docs/api.html#config-xhtml"},urlArgs:{"!type":"string","!doc":"Extra query string arguments appended to URLs that RequireJS uses to fetch resources. Most useful to cache bust when the browser or server is not configured correctly.","!url":"http://requirejs.org/docs/api.html#config-urlArgs"},scriptType:{"!type":"string","!doc":"Specify the value for the type='' attribute used for script tags inserted into the document by RequireJS. Default is 'text/javascript'. To use Firefox's JavaScript 1.8 features, use 'text/javascript;version=1.8'.","!url":"http://requirejs.org/docs/api.html#config-scriptType"},skipDataMain:{"!type":"bool","!doc":"Introduced in RequireJS 2.1.9: If set to true, skips the data-main attribute scanning done to start module loading. Useful if RequireJS is embedded in a utility library that may interact with other RequireJS library on the page, and the embedded version should not do data-main loading.","!url":"http://requirejs.org/docs/api.html#config-skipDataMain"}},RequireJSError:{prototype:{"!proto":"Error.prototype",requireType:{"!type":"string","!doc":"A string value with a general classification, like 'timeout', 'nodefine', 'scripterror'.","!url":"http://requirejs.org/docs/api.html#errors"},requireModules:{"!type":"[string]","!doc":"An array of module names/URLs that timed out.","!url":"http://requirejs.org/docs/api.html#errors"}}}},requirejs:{"!type":"fn(deps: [string], callback: fn(), errback?: fn(err: +RequireJSError)) -> !custom:requireJS",onError:{"!type":"fn(err: +RequireJSError)","!doc":"To detect errors that are not caught by local errbacks, you can override requirejs.onError()","!url":"http://requirejs.org/docs/api.html#requirejsonerror"},load:{"!type":"fn(context: ?, moduleName: string, url: string)"},config:"fn(config: config) -> !custom:requireJSConfig",version:"string",isBrowser:"bool"},require:"requirejs",define:{"!type":"fn(deps: [string], callback: fn()) -> !custom:requireJS",amd:{jQuery:"bool"}}}}),define("tern/plugin/ternPlugins",["../lib/infer","../lib/tern","acorn/dist/walk"],function(e,t){t.registerPlugin("ternPlugins",function(){return{}}),t.defineQueryType("installed_plugins",{run:function(e){return e.options&&"object"==typeof e.options.plugins?e.options.plugins:null}}),t.defineQueryType("environments",{run:function(e){if(e.options&&"object"==typeof e.options.plugins){for(var t=e.options.plugins,r=Object.keys(t),n=Object.create(null),o=0;o>>1,s=o+r,t(e[s])?n=r:(o=s+1,n-=r+1);return o}function s(e,t){var r,n,o,s;for(n=e.length,o=0;n;)r=n>>>1,s=o+r,t(e[s])?(o=s+1,n-=r+1):n=r;return o}function a(e,t){return _(t).forEach(function(r){e[r]=t[r]}),e}function i(e,t){this.parent=e,this.key=t}function l(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function c(){}function p(e){return null==e?!1:"object"==typeof e&&"string"==typeof e.type}function d(e,t){return(e===g.ObjectExpression||e===g.ObjectPattern)&&"properties"===t}function u(e,t){var r=new c;return r.traverse(e,t)}function h(e,t){var r=new c;return r.replace(e,t)}function f(e,t){var r;return r=o(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),r-=1,r>=0&&(e.extendedRange[0]=t[r].range[1]),e}function m(e,t,n){var o,s,a,i,l=[];if(!e.range)throw new Error("attachComments needs range information");if(!n.length){if(t.length){for(a=0,s=t.length;s>a;a+=1)o=r(t[a]),o.extendedRange=[0,e.range[0]],l.push(o);e.leadingComments=l}return e}for(a=0,s=t.length;s>a;a+=1)l.push(f(r(t[a]),n));return i=0,u(e,{enter:function(e){for(var t;ie.range[0]));)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),l.splice(i,1)):i+=1;return i===l.length?y.Break:l[i].extendedRange[0]>e.range[1]?y.Skip:void 0}}),i=0,u(e,{leave:function(e){for(var t;ie.range[1]?y.Skip:void 0}}),e}var g,b,y,v,w,_,S,T,E;b=Array.isArray,b||(b=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t(n),t(s),w=Object.create||function(){function e(){}return function(t){return e.prototype=t,new e}}(),_=Object.keys||function(e){var t,r=[];for(t in e)r.push(t);return r},g={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportBatchSpecifier:"ExportBatchSpecifier",ExportDeclaration:"ExportDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},v={AssignmentExpression:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","defaults","rest","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","body","superClass"],ClassExpression:["id","body","superClass"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportBatchSpecifier:[],ExportDeclaration:["declaration","specifiers","source"],ExportSpecifier:["id","name"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","defaults","rest","body"],FunctionExpression:["id","params","defaults","rest","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["id"],ImportNamespaceSpecifier:["id"],ImportSpecifier:["id","name"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handlers","handler","guardedHandlers","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},S={},T={},E={},y={Break:S,Skip:T,Remove:E},i.prototype.replace=function(e){this.parent[this.key]=e},i.prototype.remove=function(){return b(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},c.prototype.path=function(){function e(e,t){if(b(t))for(n=0,o=t.length;o>n;++n)e.push(t[n]);else e.push(t)}var t,r,n,o,s,a;if(!this.__current.path)return null;for(s=[],t=2,r=this.__leavelist.length;r>t;++t)a=this.__leavelist[t],e(s,a.path);return e(s,this.__current.path),s},c.prototype.type=function(){var e=this.current();return e.type||this.__current.wrap},c.prototype.parents=function(){var e,t,r;for(r=[],e=1,t=this.__leavelist.length;t>e;++e)r.push(this.__leavelist[e].node);return r},c.prototype.current=function(){return this.__current.node},c.prototype.__execute=function(e,t){var r,n;return n=void 0,r=this.__current,this.__current=t,this.__state=null,e&&(n=e.call(this,t.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=r,n},c.prototype.notify=function(e){this.__state=e},c.prototype.skip=function(){this.notify(T)},c.prototype["break"]=function(){this.notify(S)},c.prototype.remove=function(){this.notify(E)},c.prototype.__initialize=function(e,t){this.visitor=t,this.root=e,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback="iteration"===t.fallback,this.__keys=v,t.keys&&(this.__keys=a(w(this.__keys),t.keys))},c.prototype.traverse=function(e,t){var r,n,o,s,a,i,c,u,h,f,m,g;for(this.__initialize(e,t),g={},r=this.__worklist,n=this.__leavelist,r.push(new l(e,null,null,null)),n.push(new l(null,null,null,null));r.length;)if(o=r.pop(),o!==g){if(o.node){if(i=this.__execute(t.enter,o),this.__state===S||i===S)return;if(r.push(g),n.push(o),this.__state===T||i===T)continue;if(s=o.node,a=o.wrap||s.type,f=this.__keys[a],!f){if(!this.__fallback)throw new Error("Unknown node type "+a+".");f=_(s)}for(u=f.length;(u-=1)>=0;)if(c=f[u],m=s[c])if(b(m)){for(h=m.length;(h-=1)>=0;)if(m[h]){if(d(a,f[u]))o=new l(m[h],[c,h],"Property",null);else{if(!p(m[h]))continue;o=new l(m[h],[c,h],null,null)}r.push(o)}}else p(m)&&r.push(new l(m,c,null,null))}}else if(o=n.pop(),i=this.__execute(t.leave,o),this.__state===S||i===S)return},c.prototype.replace=function(e,t){function r(e){var t,r,o,s;if(e.ref.remove())for(r=e.ref.key,s=e.ref.parent,t=n.length;t--;)if(o=n[t],o.ref&&o.ref.parent===s){if(o.ref.key=0;)if(w=m[h],g=s[w])if(b(g)){for(f=g.length;(f-=1)>=0;)if(g[f]){if(d(a,m[h]))u=new l(g[f],[w,f],"Property",new i(g,f));else{if(!p(g[f]))continue;u=new l(g[f],[w,f],null,new i(g,f))}n.push(u)}}else p(g)&&n.push(new l(g,w,null,new i(s,w)))}}else if(u=o.pop(),c=this.__execute(t.leave,u),void 0!==c&&c!==S&&c!==T&&c!==E&&u.ref.replace(c),(this.__state===E||c===E)&&r(u),this.__state===S||c===S)return v.root;return v.root},e.version="1.8.1-dev",e.Syntax=g,e.traverse=u,e.replace=h,e.attachComments=m,e.VisitorKeys=v,e.VisitorOption=y,e.Controller=c}),define("eslint/conf/globals",[],function(){return{builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,Date:!1,DataView:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},nonstandard:{escape:!1,unescape:!1},browser:{addEventListener:!1,alert:!1,applicationCache:!1,atob:!1,Audio:!1,AudioProcessingEvent:!1,BeforeUnloadEvent:!1,Blob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,crypto:!1,CSS:!1,CustomEvent:!1,DataView:!1,Debug:!1,defaultStatus:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DOMParser:!1,DragEvent:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FormData:!1,frameElement:!1,frames:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,history:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,Intl:!1,KeyboardEvent:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,navigator:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProgressEvent:!1,prompt:!1,Range:!1,removeEventListener:!1,requestAnimationFrame:!1,resizeBy:!1,resizeTo:!1,screen:!1,screenX:!1,screenY:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,self:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,showModalDialog:!1,status:!1,stop:!1,StorageEvent:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,TouchEvent:!1,UIEvent:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},worker:{importScripts:!0,postMessage:!0,self:!0},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,DataView:!1,exports:!0,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,"throws":!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,target:!1,tempdir:!1,test:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,ObjectId:!1,PlanCache:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1}} +}),define("eslint/conf/environments",["./globals"],function(e){var t={builtin:e.builtin,browser:{globals:e.browser},node:{globals:e.node,ecmaFeatures:{globalReturn:!0}},amd:{globals:e.amd},mocha:{globals:e.mocha},jasmine:{globals:e.jasmine},phantomjs:{globals:e.phantom},jquery:{globals:e.jquery},prototypejs:{globals:e.prototypejs},shelljs:{globals:e.shelljs},meteor:{globals:e.meteor}};return t}),define("javascript/finder",["estraverse/estraverse","eslint/conf/environments"],function(e,t){e.VisitorKeys.RecoveredNode||(e.VisitorKeys.RecoveredNode=[]);var r={visitor:null,punc:"\n \r (){}[]:;,.+=-*^&@!%~`'\"/\\",findWord:function(e,t){if(e&&t>-1){for(var r=this.punc.indexOf(e.charAt(t))>-1,n=r&&t>0?t-1:t;n>=0&&!(this.punc.indexOf(e.charAt(n))>-1);)n--;var o=n;for(n=t;n<=e.length&&!(this.punc.indexOf(e.charAt(n))>-1);)n++;return(o===t||r&&o===t-1)&&n===t?null:o===t?e.substring(o,n):e.substring(o+1,n)}return null},findNode:function(t,r,n){var o=null,s=n&&n.parents?[]:null,a=n&&n.next?n.next:!1;if(null!=t&&t>-1&&r&&e.traverse(r,{enter:function(r){if(r.type&&r.range){if(!a&&r.type===e.Syntax.Program&&te.range[1]&&s.pop()}}),o&&s&&s.length>0){var i=s[s.length-1];"Program"!==i.type&&i.range[0]===o.range[0]&&i.range[1]===o.range[1]&&s.pop(),o.parents=s}return o},findNodeAfterComment:function(t,r){var n=null,o=[];if(Array.isArray(t.range)&&r){var s=t.range[1];e.traverse(r,{enter:function(t,r){if(t.type&&t.range)if(r&&o.push(r),s>t.range[0])n=t;else if(n=t,t.type!==e.Syntax.Program)return e.VisitorOption.Break}})}return n&&(n.parents=o),n},findToken:function(e,t){if(null!=e&&e>-1&&t&&t.length>0){var r,n=0,o=t.length-1,s=0;if(r=t[0],e>=r.range[0]&&e=r.range[0])return r.index=o,r;for(r=null;o>=n;){if(s=Math.floor((n+o)/2),r=t[s],er.range[1])n=s+1;else if(e===r.range[1]){var a=t[s+1];if(a.range[0]!==r.range[1])return r.index=s,r;n=s+1}else if(e>=r.range[0]&&e=r.range[0]&&e<=r.range[1]?(r.index=n,r):null}}return null},findComment:function(e,t){if(t.comments){for(var r=t.comments,n=r.length,o=0;n>o;o++){var s=r[o];if(s.range[0]=e)return s;if(e===t.range[1]&&e===s.range[1])return s;if(e>t.range[1]&&e<=s.range[1])return s;if(s.range[0]>e)return null}return null}},findScriptBlocks:function(e,t){var r=[],n=null,o=/<\s*script([^>]*)(?:\/>|>((?:.|\r?\n)*?)<\s*\/script[^<>]*>)/gi,s=/(type|language)\s*=\s*"([^"]*)"/i,a=/src\s*=\s*"([^"]*)"/i,i=this.findHtmlCommentBlocks(e,t);e:for(;null!=(n=o.exec(e));){var l=n[1],c=n[2],p=null;if(l){var d=s.exec(l);if(d&&d[2]){var u=d[2];if("language"===d[1]&&(u="text/"+u),!/^(application|text)\/(ecmascript|javascript(\d.\d)?|livescript|jscript|x\-ecmascript|x\-javascript)$/gi.test(u))continue}var h=a.exec(l);h&&(p=h[1])}if(c||!p){var f=n.index+n[0].indexOf(">")+1;if(null==t||t>=f&&f+c.length>=t){for(var m=0;m=f)continue e;r.push({text:c,offset:f,dependencies:p})}}else r.push({text:"",offset:0,dependencies:p})}var g={blur:!0,change:!0,click:!0,dblclick:!0,focus:!0,keydown:!0,keypress:!0,keyup:!0,load:!0,mousedown:!0,mousemove:!0,mouseout:!0,mouseover:!0,mouseup:!0,reset:!0,select:!0,submit:!0,unload:!0},b=/\s+on(\w*)(\s*=\s*")([^"]*)"/gi,y=0;e:for(;null!=(n=b.exec(e));){y++;var v=n[1],w=n[2];if(c=n[3],v&&v in g){if(!c||!w)continue;if(f=n.index+2+v.length+w.length,null==t||t>=f&&f+c.length>=t){for(var _=0;_=f)continue e;r.push({text:c,offset:f,isWrappedFunctionCall:!0})}}}return r},findHtmlCommentBlocks:function(e,t){for(var r=[],n=null,o=//gi;null!=(n=o.exec(e));){var s=n[1];s.length<1||(null==t||n.index<=t&&n.index+s.length>=n.index)&&r.push({text:s,start:n.index,end:n.index+s.length})}return r},findESLintEnvForMember:function(e){var r=Object.keys(t);if(r)for(var n=r.length,o=0;n>o;o++){var s=t[r[o]];if("undefined"!=typeof s[e])return r[o];var a=s.globals;if(a&&"undefined"!=typeof a[e])return r[o]}return null},findDirective:function(e,t){if(e&&"undefined"!=typeof t)for(var r=e.comments.length,n=0;r>n;n++){var o=/^\s*(eslint-\w+|eslint|globals?)(\s|$)/.exec(e.comments[n].value);if(null!=o&&"undefined"!=typeof o&&o[1]===t)return e.comments[n]}return null},findCommentForNode:function n(e){var t=e.leadingComments,r=null;if(t&&t.length>0){if(r=t[t.length-1],"Block"===r.type)return r.node=e,r}else if("Property"===e.type){if(r=n(e.key))return r.node=e,r}else if("FunctionDeclaration"===e.type&&(r=n(e.id)))return r.node=e,r;return r=Object.create(null),r.node=e,r.value="",r},findParentFunction:function(e){if(e)if(e.parents)for(var t=e.parents,r=t.pop();r;){if("FunctionDeclaration"===r.type||"FunctionExpression"===r.type)return r;r=t.pop()}else if(e.parent)for(var r=e.parent;r;){if("FunctionDeclaration"===r.type||"FunctionExpression"===r.type)return r;r=r.parent}return null}};return r}),define("tern/plugin/refs",["../lib/infer","../lib/tern","acorn/dist/walk","javascript/finder"],function(e,t,r,n){function o(r,o,a,l){try{var c,p=n.findComment(r.end,o.ast);if(p)c={guess:!1,type:void 0,name:void 0,category:"Block"===p.type?"blockcomments":"linecomments"};else{var d,u,h,f=t.findExpr(o,r);try{u=t.findExprType(a,r,o,f),h=u,u=r.preferFunction?u.getFunctionType()||u.getType():u.getType(),f&&("Identifier"===f.node.type?d=f.node.name:"MemberExpression"!==f.node.type||f.node.computed||(d=f.node.property.name))}catch(m){}c={guess:e.didGuess(),type:e.toString(h),name:u&&u.name,exprName:d},s(r,o,c),u?t.storeTypeDocs(r,u,c):i(r,o,c),!c.doc&&h&&h.doc&&(c.doc=t.parseDoc(r,h.doc))}l(null,c)}catch(g){a.options.debug&&"TernError"!==g.name&&console.error(g.stack),l(g)}}function s(e,t,r){if(Array.isArray(t.ast.errors)&&t.ast.errors.length>0)return void(r.category="parseerrors");var o=n.findNode(e.end-1,t.ast,{parents:!0});if(o){if("Identifier"===o.type){var s=o.parents.pop();s.parents=o.parents,o=s}if("RecoveredNode"!==o.type)switch(o.type){case"Program":r.category="uncategorized";break;case"FunctionDeclaration":case"FunctionExpression":for(var i=0,l=o.params.length;l>i;i++)if(a(e.end,o.params[i])){r.category="vardecls";break}r.category||(r.category="funcdecls");break;case"Property":a(e.end,o.key)?r.category=o.value&&"FunctionExpression"===o.value.type?"funcdecl":"propwrite":a(e.end,o.value)&&(r.category="FunctionExpression"===o.value.type?"funcdecls":"Identifier"===o.value.type?"varaccess":"propwrite");break;case"CallExpression":if(a(e.end,o.callee)&&(r.category="funccalls"),o.arguments.length>0)for(i=0,l=o.arguments.length;l>i;i++){var c=o.arguments[i];a(e.end,c)&&("Identifier"===c.type?r.category="varaccess":"MemberExpression"===c.type&&(r.category="propaccess"))}break;case"AssignmentExpression":a(e.end,o.left)?r.category="Identifier"===o.left.type?"varwrite":"propwrite":a(e.end,o.right)&&("Identifier"===o.right.type?r.category="varaccess":"MemberExpression"===o.right.type&&(r.category="propaccess"));break;case"VariableDeclarator":a(e.end,o.id)?r.category="vardecls":a(e.end,o.init)&&(r.category="varaccess");break;case"Literal":o.regex?r.category="regex":"string"==typeof o.value&&(r.category="strings");break;case"NewExpression":o.callee&&a(e.end,o.callee)&&(r.category="funccalls");break;case"MemberExpression":if(o.object&&"Identifier"===o.object.type&&a(e.end,o.object)){r.category="varaccess";break}for(var p;"MemberExpression"===o.type;)p=o.property,s=o.parents.pop(),s.parents=o.parents,o=s;if(o&&("CallExpression"===o.type||"NewExpression"===o.type)&&a(e.end,p)){if(o.callee&&a(e.end,o.callee))r.category="funccalls";else if(o.arguments&&o.arguments.length>0)for(i=0,l=o.arguments.length;l>i;i++)a(e.end,o.arguments[i])&&(r.category="propaccess")}else r.category=o&&"AssignmentExpression"===o.type&&a(e.end,o.left)?o.right&&"FunctionExpression"===o.right.type?"funcdecls":a(e.end,p)?"propwrite":"propaccess":"propaccess";break;case"UpdateExpression":"Identifier"===o.argument.type?r.category="varaccess":"MemberExpression"===o.argument.type&&(r.category="propaccess");break;case"BinaryExpression":"Identifier"===o.left.type&&a(e.end,o.left)?r.category="varaccess":"Identifier"===o.right.type&&a(e.end,o.right)&&(r.category="varaccess");break;case"BreakStatement":case"ConditionalExpression":case"ContinueStatement":case"IfStatement":case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"LogicalExpression":case"SwitchStatement":case"SwitchCase":case"WithStatement":case"WhileStatement":r.category="varaccess";break;case"LetStatement":case"LabeledStatement":r.category="varwrite";break;case"Block":r.category="blockcomments";break;case"Line":r.category="linecomments";break;case"UnaryExpression":o.argument&&a(e.end,o.argument)&&(r.category="varaccess")}}r.category||(r.category="uncategorized")}function a(e,t){return t&&t.range[0]<=e&&e<=t.range[1]}function i(e,t,r){var o=n.findNode(e.end,t.ast,{parents:!0});o?l(e,o,r):r.staticCheck={confidence:0}}function l(e,t,r){switch(t.type){case"FunctionDeclaration":case"FucntionExpression":case"VariableDeclarator":case"Literal":r.staticCheck={confidence:0};break;case"Identifier":if(Array.isArray(t.parents)){var n=t.parents.slice(t.parents.length-1)[0];l(e,n,r)}else r.staticCheck={confidence:25};break;case"AssignmentExpression":r.staticCheck="Identifier"===t.left.type&&t.left.name===e.origin.type.exprName?{confidence:25}:"Identifier"===t.right.type&&t.right.name===e.origin.type.exprName?{confidence:25}:{confidence:5};break;case"MemberExpression":r.staticCheck={confidence:10};break;case"CallExpression":t.callee.name===e.origin.type.exprName&&(r.staticCheck="fn()"===e.origin.type.type?{confidence:25}:{confidence:0});for(var o=0,s=t.arguments.length;s>o;o++){var a=t.arguments[o];"Identifier"===a.type?r.staticCheck="fn()"===e.origin.type.type?{confidence:0}:{confidence:40}:"FunctionExpression"===a.type&&a.id===e.origin.type.exprName&&(r.staticCheck={confidence:0})}break;default:r.staticCheck={confidence:0}}}var c=Object.create(null);t.registerPlugin("refs",function(){return{}}),t.defineQueryType("checkRef",{run:function(){},runAsync:function(e,r,n,s){var a=t.resolveFile(e,e.fileMap,r.file);a?o(r,a,e,s):(e.addFile(r.file),c[r.file]={callback:s,query:r},e.on("afterLoad",function(t){if(t&&t.name){var r=c[t.name];r&&(delete c[t.name],o(r.query,t,e,r.callback))}}.bind(e)))}})}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern"),require):"function"==typeof define&&define.amd?define("tern/plugin/openImplementation",["../lib/infer","../lib/tern","./resolver","javascript/finder"],e):void e(infer,tern,resolver)}(function(e,t,r,n){t.registerPlugin("openImplementation",function(){return{}}),t.defineQueryType("implementation",{run:function(e,t){t.end&&!t.start&&(t.start=t.end);var r=e.fileMap[t.file];return this.findImplRecurse(t.end,r,{implementation:{}},e)},findImplRecurse:function(e,r,o,s){var a,i,l;if(r){var c=n.findNode(e,r.ast,{parents:!0});if(c&&"Identifier"===c.type){var p=c.parents[c.parents.length-1];if(p){"MemberExpression"===p.type&&c.parents.length>=2&&(p=c.parents[c.parents.length-2]);var d;if("VariableDeclarator"===p.type&&p.init?d=p.init:"AssignmentExpression"===p.type&&p.right?d=p.right:"Property"===p.type&&p.value&&(d=p.value),d){if("Literal"===d.type||"FunctionExpression"===d.type)return{implementation:{start:c.start,end:c.end,file:r.name}};if(a={start:d.start,end:d.end,file:r.name},i=t.findDef(s,a,r),i&&"number"==typeof i.start&&"number"==typeof i.end&&(i.start!==c.start||i.end!==c.end))return l=s.fileMap[i.file],this.findImplRecurse(i.end,l,{implementation:{start:i.start,end:i.end,file:i.file}},s)}}return a={start:c.start,end:c.end,file:r.name},i=t.findDef(s,a,r),!i||"number"!=typeof i.start||"number"!=typeof i.end||i.start===c.start&&i.end===c.end?{implementation:{start:c.start,end:c.end,file:r.name}}:(l=s.fileMap[i.file],this.findImplRecurse(i.end,l,{implementation:{start:i.start,end:i.end,file:i.file}},s))}}return o}})}),function(e,t){"function"==typeof define&&define.amd?define("orion/Deferred",t):"object"==typeof exports?module.exports=t():(e.orion=e.orion||{},e.orion.Deferred=t())}(this,function(){function e(){for(var e;e=s.shift();)e();a=!1}function t(e){s.push(e),a||(a=!0,i())}function r(e){return function(t){e(t)}}function n(e,t,n){try{var o=e(t),s=o&&("object"==typeof o||"function"==typeof o)&&o.then;if("function"==typeof s)if(o===n.promise)n.reject(new TypeError);else{var a=o.cancel;"function"==typeof a?n._parentCancel=a.bind(o):delete n._parentCancel,s.call(o,r(n.resolve),r(n.reject),r(n.progress))}else n.resolve(o)}catch(i){n.reject(i)}}function o(){function e(){for(var e;e=c.shift();){var t=e.deferred,r="fulfilled"===l?"resolve":"reject",o=e[r];"function"==typeof o?n(o,i,t):t[r](i)}}function r(r){delete p._parentCancel,l="rejected",i=r,c.length&&t(e)}function s(n){function a(e){return function(t){l&&"assumed"!==l||e(t)}}delete p._parentCancel;try{var d=n&&("object"==typeof n||"function"==typeof n)&&n.then;if("function"==typeof d)if(n===p)r(new TypeError);else{l="assumed";var u=n&&n.cancel;if("function"!=typeof u){var h=new o;n=h.promise;try{d(h.resolve,h.reject,h.progress)}catch(f){h.reject(f)}u=n.cancel,d=n.then}i=n,d.call(n,a(s),a(r)),p._parentCancel=u.bind(n)}else l="fulfilled",i=n,c.length&&t(e)}catch(m){a(r)(m)}}function a(){var e=p._parentCancel;if(e)delete p._parentCancel,e();else if(!l){var t=new Error("Cancel");t.name="Cancel",r(t)}}var i,l,c=[],p=this;this.resolve=function(e){return l||s(e),p},this.reject=function(e){return l||r(e),p},this.progress=function(e){return l||c.forEach(function(t){if(t.progress)try{t.progress(e)}catch(r){}}),p.promise},this.cancel=function(){return p._parentCancel?setTimeout(a,0):a(),p},this.then=function(r,n,s){var a=new o;return a._parentCancel=p.promise.cancel,c.push({resolve:r,reject:n,progress:s,deferred:a}),("fulfilled"===l||"rejected"===l)&&t(e),a.promise},this.promise={then:p.then,cancel:p.cancel}}var s=[],a=!1,i=function(){if("undefined"!=typeof process&&"function"==typeof process.nextTick){var t=process.nextTick;return function(){t(e)}}if("function"==typeof MutationObserver){var r=document.createElement("div"),n=new MutationObserver(e);return n.observe(r,{attributes:!0}),function(){r.setAttribute("class","_tick")}}return function(){setTimeout(e,0)}}();return o.all=function(e,t){function r(e,t){i||(a[e]=t,0===--s&&l.resolve(a))}function n(e,n){if(!i){if(t)try{return void r(e,t(n))}catch(o){n=o}l.reject(n)}}var s=e.length,a=[],i=!1,l=new o;return l.then(void 0,function(){i=!0,e.forEach(function(e){e.cancel&&e.cancel()})}),0===s?l.resolve(a):e.forEach(function(e,t){e.then(r.bind(void 0,t),n.bind(void 0,t))}),l.promise},o.when=function(e,t,r,n){var s,a;return e&&"function"==typeof e.then?s=e:(a=new o,a.resolve(e),s=a.promise),s.then(t,r,n)},o}),define("javascript/compilationUnit",["orion/Deferred"],function(e){function t(e,t,r){this._blocks=e,this._metadata=t,this._ec=r,this._deps=[]}return t.prototype._init=function(){var e="this.",t=0;this._source="",this._blocks.sort(function(e,t){var r=e.offset?e.offset:0,n=t.offset?t.offset:0;return r-n});for(var r=0;r0;)this._source+=" ",o--;this._source+=e,this._source+=n.text,n.text&&";"!==n.text.charAt(n.text.length-1)&&(this._source+=";")}else{for(;o>0;)this._source+=" ",o--;this._source+=n.text}t=this._source.length}},t.prototype.getSource=function(){return this._source||this._init(),this._source},t.prototype.validOffset=function(e){if(!this._blocks||this._blocks.length<1||0>e)return!1;for(var t=0;t=n&&e<=n+r.text.length)return!0}return!1},t.prototype.getEditorContext=function(){var t=Object.create(null),r=this;return t.getText=function(){return(new e).resolve(r.getSource())},t.getFileMetadata=function(){return(new e).resolve(r._metadata)},t.setText=function(t,n,o){return r._ec?r._ec.setText(t,n,o):(new e).resolve(null)},t},t.prototype.getDependencies=function(){return this._deps},t}),function(e){return"object"==typeof exports&&"object"==typeof module?e(require("../lib/infer"),require("../lib/tern")):"function"==typeof define&&define.amd?define("tern/plugin/htmlDependencies",["../lib/infer","../lib/tern","./resolver","javascript/compilationUnit","javascript/finder"],e):void e(tern,tern)}(function(e,t,r,n,o){"use strict";t.registerPlugin("orionHTML",function(t){function s(e){return/(?:html|htm|xhtml)$/g.test(e)}return t._htmlDeps=Object.create(null),t._htmlDeps.map=Object.create(null),t.on("beforeLoad",function(e){this._htmlDeps.file=e.name}),t.on("reset",function(){t._htmlDeps=Object.create(null),t._htmlDeps.map=Object.create(null)}),{passes:{postParse:function(n){if(s(n.sourceFile.name)){var o=t._htmlDeps.map[t._htmlDeps.file];Array.isArray(o)&&(n.dependencies=o.slice(0)),r.doPostParse(t,n,e.cx().definitions)}},preInfer:function(e){if(s(e.sourceFile.name)&&(r.doPreInfer(t),Array.isArray(e.dependencies)))for(var n=0;n/im,l=/]*>\s*([\s\S]+)\s*<\/body>/im,c="undefined"!=typeof location&&location.href,p=c&&location.protocol&&location.protocol.replace(/\:/,""),d=c&&location.hostname,u=c&&(location.port||void 0),h={},f=e.config&&e.config()||{};return t={version:"2.0.12",strip:function(e){if(e){e=e.replace(i,"");var t=e.match(l);t&&(e=t[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:f.createXhr||function(){var e,t,r;if("undefined"!=typeof XMLHttpRequest)return new XMLHttpRequest;if("undefined"!=typeof ActiveXObject)for(t=0;3>t;t+=1){r=a[t];try{e=new ActiveXObject(r)}catch(n){}if(e){a=[r];break}}return e},parseName:function(e){var t,r,n,o=!1,s=e.indexOf("."),a=0===e.indexOf("./")||0===e.indexOf("../");return-1!==s&&(!a||s>1)?(t=e.substring(0,s),r=e.substring(s+1,e.length)):t=e,n=r||t,s=n.indexOf("!"),-1!==s&&(o="strip"===n.substring(s+1),n=n.substring(0,s),r?r=n:t=n),{moduleName:t,ext:r,strip:o}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,r,n,o){var s,a,i,l=t.xdRegExp.exec(e);return l?(s=l[2],a=l[3],a=a.split(":"),i=a[1],a=a[0],!(s&&s!==r||a&&a.toLowerCase()!==n.toLowerCase()||(i||a)&&i!==o)):!0},finishLoad:function(e,r,n,o){n=r?t.strip(n):n,f.isBuild&&(h[e]=n),o(n)},load:function(e,r,n,o){if(o&&o.isBuild&&!o.inlineText)return void n();f.isBuild=o&&o.isBuild;var s=t.parseName(e),a=s.moduleName+(s.ext?"."+s.ext:""),i=r.toUrl(a),l=f.useXhr||t.useXhr;return 0===i.indexOf("empty:")?void n():void(!c||l(i,p,d,u)?t.get(i,function(r){t.finishLoad(e,s.strip,r,n)},function(e){n.error&&n.error(e)}):r([a],function(e){t.finishLoad(s.moduleName+"."+s.ext,s.strip,e,n)}))},write:function(e,r,n){if(h.hasOwnProperty(r)){var o=t.jsEscape(h[r]);n.asModule(e+"!"+r,"define(function () { return '"+o+"';});\n")}},writeFile:function(e,r,n,o,s){var a=t.parseName(r),i=a.ext?"."+a.ext:"",l=a.moduleName+i,c=n.toUrl(a.moduleName+i)+".js";t.load(l,n,function(){var r=function(e){return o(c,e)};r.asModule=function(e,t){return o.asModule(e,c,t)},t.write(e,l,r,s)},s)}},"node"===f.env||!f.env&&"undefined"!=typeof process&&process.versions&&process.versions.node&&!process.versions["node-webkit"]?(r=require.nodeRequire("fs"),t.get=function(e,t,n){try{var o=r.readFileSync(e,"utf8");0===o.indexOf("")&&(o=o.substring(1)),t(o)}catch(s){n&&n(s)}}):"xhr"===f.env||!f.env&&t.createXhr()?t.get=function(e,r,n,o){var s,a=t.createXhr();if(a.open("GET",e,!0),o)for(s in o)o.hasOwnProperty(s)&&a.setRequestHeader(s.toLowerCase(),o[s]);f.onXhr&&f.onXhr(a,e),a.onreadystatechange=function(){var t,o;4===a.readyState&&(t=a.status||0,t>399&&600>t?(o=new Error(e+" HTTP status: "+t),o.xhr=a,n&&n(o)):r(a.responseText),f.onXhrComplete&&f.onXhrComplete(a,e))},a.send(null)}:"rhino"===f.env||!f.env&&"undefined"!=typeof Packages&&"undefined"!=typeof java?t.get=function(e,t){var r,n,o="utf-8",s=new java.io.File(e),a=java.lang.System.getProperty("line.separator"),i=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(s),o)),l="";try{for(r=new java.lang.StringBuffer,n=i.readLine(),n&&n.length()&&65279===n.charAt(0)&&(n=n.substring(1)),null!==n&&r.append(n);null!==(n=i.readLine());)r.append(a),r.append(n);l=String(r.toString())}finally{i.close()}t(l)}:("xpconnect"===f.env||!f.env&&"undefined"!=typeof Components&&Components.classes&&Components.interfaces)&&(n=Components.classes,o=Components.interfaces,Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),s="@mozilla.org/windows-registry-key;1"in n,t.get=function(e,t){var r,a,i,l={};s&&(e=e.replace(/\//g,"\\")),i=new FileUtils.File(e);try{r=n["@mozilla.org/network/file-input-stream;1"].createInstance(o.nsIFileInputStream),r.init(i,1,0,!1),a=n["@mozilla.org/intl/converter-input-stream;1"].createInstance(o.nsIConverterInputStream),a.init(r,"utf-8",r.available(),o.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),a.readString(r.available(),l),a.close(),r.close(),t(l.value)}catch(c){throw new Error((i&&i.path||"")+": "+c)}}),t}),define("json",["requirejs/text"],function(e){var t=Object.create(null);return{load:function(r,n,o,s){e.get(n.toUrl(r),function(e){if(s.isBuild)t[r]=e,o(e);else{try{var n=JSON.parse(e)}catch(a){o.error(a)}o(n)}},o.error,{accept:"application/json"})},write:function(e,r,n){var o=t[r];o&&n('define("'+e+"!"+r+'", function(){ return '+o+";});\n")}}}),define("json!tern/defs/ecma5.json",function(){return{"!name":"ecma5","!define":{"Error.prototype":"Error.prototype"},Infinity:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Infinity","!doc":"A numeric value representing infinity."},undefined:{"!type":"?","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined","!doc":"The value undefined."},NaN:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/NaN","!doc":"A value representing Not-A-Number."},Object:{"!type":"fn()",getPrototypeOf:{"!type":"fn(obj: ?) -> ?","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getPrototypeOf","!doc":"Returns the prototype (i.e. the internal prototype) of the specified object."},create:{"!type":"fn(proto: ?) -> !custom:Object_create","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create","!doc":"Creates a new object with the specified prototype object and properties."},defineProperty:{"!type":"fn(obj: ?, prop: string, desc: ?) -> !custom:Object_defineProperty","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty","!doc":"Defines a new property directly on an object, or modifies an existing property on an object, and returns the object. If you want to see how to use the Object.defineProperty method with a binary-flags-like syntax, see this article."},defineProperties:{"!type":"fn(obj: ?, props: ?) -> !custom:Object_defineProperties","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty","!doc":"Defines a new property directly on an object, or modifies an existing property on an object, and returns the object. If you want to see how to use the Object.defineProperty method with a binary-flags-like syntax, see this article."},getOwnPropertyDescriptor:{"!type":"fn(obj: ?, prop: string) -> ?","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor","!doc":"Returns a property descriptor for an own property (that is, one directly present on an object, not present by dint of being along an object's prototype chain) of a given object."},keys:{"!type":"fn(obj: ?) -> [string]","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys","!doc":"Returns an array of a given object's own enumerable properties, in the same order as that provided by a for-in loop (the difference being that a for-in loop enumerates properties in the prototype chain as well)."},getOwnPropertyNames:{"!type":"fn(obj: ?) -> [string]","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames","!doc":"Returns an array of all properties (enumerable or not) found directly upon a given object."},seal:{"!type":"fn(obj: ?)","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/seal","!doc":"Seals an object, preventing new properties from being added to it and marking all existing properties as non-configurable. Values of present properties can still be changed as long as they are writable."},isSealed:{"!type":"fn(obj: ?) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/isSealed","!doc":"Determine if an object is sealed."},freeze:{"!type":"fn(obj: ?) -> !0","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/freeze","!doc":"Freezes an object: that is, prevents new properties from being added to it; prevents existing properties from being removed; and prevents existing properties, or their enumerability, configurability, or writability, from being changed. In essence the object is made effectively immutable. The method returns the object being frozen."},isFrozen:{"!type":"fn(obj: ?) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/isFrozen","!doc":"Determine if an object is frozen."},preventExtensions:{"!type":"fn(obj: ?)","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions","!doc":"Prevents new properties from ever being added to an object."},isExtensible:{"!type":"fn(obj: ?) -> bool","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible","!doc":"The Object.isExtensible() method determines if an object is extensible (whether it can have new properties added to it)."},prototype:{"!stdProto":"Object",toString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/toString","!doc":"Returns a string representing the object."},toLocaleString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/toLocaleString","!doc":"Returns a string representing the object. This method is meant to be overriden by derived objects for locale-specific purposes."},valueOf:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/valueOf","!doc":"Returns the primitive value of the specified object"},hasOwnProperty:{"!type":"fn(prop: string) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty","!doc":"Returns a boolean indicating whether the object has the specified property."},propertyIsEnumerable:{"!type":"fn(prop: string) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable","!doc":"Returns a Boolean indicating whether the specified property is enumerable."},isPrototypeOf:{"!type":"fn(obj: ?) -> bool","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf","!doc":"Tests for an object in another object's prototype chain."}},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object","!doc":"Creates an object wrapper."},Function:{"!type":"fn(body: string) -> fn()",prototype:{"!stdProto":"Function",apply:{"!type":"fn(this: ?, args: [?])","!effects":["call and return !this this=!0 !1. !1. !1."],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply","!doc":"Calls a function with a given this value and arguments provided as an array (or an array like object)."},call:{"!type":"fn(this: ?, args?: ?) -> !this.!ret","!effects":["call and return !this this=!0 !1 !2 !3 !4"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/call","!doc":"Calls a function with a given this value and arguments provided individually."},bind:{"!type":"fn(this: ?, args?: ?) -> !custom:Function_bind","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind","!doc":"Creates a new function that, when called, has its this keyword set to the provided value, with a given sequence of arguments preceding any provided when the new function was called."},prototype:"?"},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function","!doc":"Every function in JavaScript is actually a Function object."},Array:{"!type":"fn(size: number) -> !custom:Array_ctor",isArray:{"!type":"fn(value: ?) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/isArray","!doc":"Returns true if an object is an array, false if it is not."},prototype:{"!stdProto":"Array",length:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/length","!doc":"An unsigned, 32-bit integer that specifies the number of elements in an array."},concat:{"!type":"fn(other: [?]) -> !this","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/concat","!doc":"Returns a new array comprised of this array joined with other array(s) and/or value(s)."},join:{"!type":"fn(separator?: string) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/join","!doc":"Joins all elements of an array into a string."},splice:{"!type":"fn(pos: number, amount: number)","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/splice","!doc":"Changes the content of an array, adding new elements while removing old elements."},pop:{"!type":"fn() -> !this.","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/pop","!doc":"Removes the last element from an array and returns that element."},push:{"!type":"fn(newelt: ?) -> number","!effects":["propagate !0 !this."],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/push","!doc":"Mutates an array by appending the given elements and returning the new length of the array."},shift:{"!type":"fn() -> !this.","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/shift","!doc":"Removes the first element from an array and returns that element. This method changes the length of the array."},unshift:{"!type":"fn(newelt: ?) -> number","!effects":["propagate !0 !this."],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/unshift","!doc":"Adds one or more elements to the beginning of an array and returns the new length of the array."},slice:{"!type":"fn(from: number, to?: number) -> !this","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice","!doc":"Returns a shallow copy of a portion of an array."},reverse:{"!type":"fn()","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/reverse","!doc":"Reverses an array in place. The first array element becomes the last and the last becomes the first."},sort:{"!type":"fn(compare?: fn(a: ?, b: ?) -> number)","!effects":["call !0 !this. !this."],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort","!doc":"Sorts the elements of an array in place and returns the array."},indexOf:{"!type":"fn(elt: ?, from?: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf","!doc":"Returns the first index at which a given element can be found in the array, or -1 if it is not present."},lastIndexOf:{"!type":"fn(elt: ?, from?: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/lastIndexOf","!doc":"Returns the last index at which a given element can be found in the array, or -1 if it is not present. The array is searched backwards, starting at fromIndex."},every:{"!type":"fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> bool","!effects":["call !0 this=!1 !this. number"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/every","!doc":"Tests whether all elements in the array pass the test implemented by the provided function."},some:{"!type":"fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> bool","!effects":["call !0 this=!1 !this. number"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/some","!doc":"Tests whether some element in the array passes the test implemented by the provided function."},filter:{"!type":"fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> !this","!effects":["call !0 this=!1 !this. number"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/filter","!doc":"Creates a new array with all elements that pass the test implemented by the provided function."},forEach:{"!type":"fn(f: fn(elt: ?, i: number), context?: ?)","!effects":["call !0 this=!1 !this. number"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach","!doc":"Executes a provided function once per array element."},map:{"!type":"fn(f: fn(elt: ?, i: number) -> ?, context?: ?) -> [!0.!ret]","!effects":["call !0 this=!1 !this. number"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map","!doc":"Creates a new array with the results of calling a provided function on every element in this array."},reduce:{"!type":"fn(combine: fn(sum: ?, elt: ?, i: number) -> ?, init?: ?) -> !0.!ret","!effects":["call !0 !1 !this. number"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/Reduce","!doc":"Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value."},reduceRight:{"!type":"fn(combine: fn(sum: ?, elt: ?, i: number) -> ?, init?: ?) -> !0.!ret","!effects":["call !0 !1 !this. number"],"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/ReduceRight","!doc":"Apply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value."}},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array","!doc":"The JavaScript Array global object is a constructor for arrays, which are high-level, list-like objects."},String:{"!type":"fn(value: ?) -> string",fromCharCode:{"!type":"fn(code: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode","!doc":"Returns a string created by using the specified sequence of Unicode values."},prototype:{"!stdProto":"String",length:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/String/length","!doc":"Represents the length of a string."},"":"string",charAt:{"!type":"fn(i: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/charAt","!doc":"Returns the specified character from a string."},charCodeAt:{"!type":"fn(i: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/charCodeAt","!doc":"Returns the numeric Unicode value of the character at the given index (except for unicode codepoints > 0x10000)."},indexOf:{"!type":"fn(char: string, from?: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf","!doc":"Returns the index within the calling String object of the first occurrence of the specified value, starting the search at fromIndex,\nreturns -1 if the value is not found."},lastIndexOf:{"!type":"fn(char: string, from?: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/lastIndexOf","!doc":"Returns the index within the calling String object of the last occurrence of the specified value, or -1 if not found. The calling string is searched backward, starting at fromIndex."},substring:{"!type":"fn(from: number, to?: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring","!doc":"Returns a subset of a string between one index and another, or through the end of the string."},substr:{"!type":"fn(from: number, length?: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substr","!doc":"Returns the characters in a string beginning at the specified location through the specified number of characters."},slice:{"!type":"fn(from: number, to?: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/slice","!doc":"Extracts a section of a string and returns a new string."},trim:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim","!doc":"Removes whitespace from both ends of the string."},toUpperCase:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toUpperCase","!doc":"Returns the calling string value converted to uppercase."},toLowerCase:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLowerCase","!doc":"Returns the calling string value converted to lowercase."},toLocaleUpperCase:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase","!doc":"Returns the calling string value converted to upper case, according to any locale-specific case mappings."},toLocaleLowerCase:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase","!doc":"Returns the calling string value converted to lower case, according to any locale-specific case mappings."},split:{"!type":"fn(pattern: string) -> [string]","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split","!doc":"Splits a String object into an array of strings by separating the string into substrings."},concat:{"!type":"fn(other: string) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/concat","!doc":"Combines the text of two or more strings and returns a new string."},localeCompare:{"!type":"fn(other: string) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/localeCompare","!doc":"Returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order."},match:{"!type":"fn(pattern: +RegExp) -> [string]","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/match","!doc":"Used to retrieve the matches when matching a string against a regular expression."},replace:{"!type":"fn(pattern: string|+RegExp, replacement: string) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace","!doc":"Returns a new string with some or all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match."},search:{"!type":"fn(pattern: +RegExp) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/search","!doc":"Executes the search for a match between a regular expression and this String object."}},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String","!doc":"The String global object is a constructor for strings, or a sequence of characters."},Number:{"!type":"fn(value: ?) -> number",MAX_VALUE:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/MAX_VALUE","!doc":"The maximum numeric value representable in JavaScript."},MIN_VALUE:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/MIN_VALUE","!doc":"The smallest positive numeric value representable in JavaScript."},POSITIVE_INFINITY:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY","!doc":"A value representing the positive Infinity value."},NEGATIVE_INFINITY:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY","!doc":"A value representing the negative Infinity value."},prototype:{"!stdProto":"Number",toString:{"!type":"fn(radix?: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString","!doc":"Returns a string representing the specified Number object"},toFixed:{"!type":"fn(digits: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toFixed","!doc":"Formats a number using fixed-point notation"},toExponential:{"!type":"fn(digits: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toExponential","!doc":"Returns a string representing the Number object in exponential notation"},toPrecision:{"!type":"fn(digits: number) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toPrecision","!doc":"The toPrecision() method returns a string representing the number to the specified precision."}},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number","!doc":"The Number JavaScript object is a wrapper object allowing you to work with numerical values. A Number object is created using the Number() constructor."},Boolean:{"!type":"fn(value: ?) -> bool",prototype:{"!stdProto":"Boolean"},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Boolean","!doc":"The Boolean object is an object wrapper for a boolean value."},RegExp:{"!type":"fn(source: string, flags?: string)",prototype:{"!stdProto":"RegExp",exec:{"!type":"fn(input: string) -> [string]","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/exec","!doc":"Executes a search for a match in a specified string. Returns a result array, or null."},test:{"!type":"fn(input: string) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test","!doc":"Executes the search for a match between a regular expression and a specified string. Returns true or false."},global:{"!type":"bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp","!doc":"Creates a regular expression object for matching text with a pattern."},ignoreCase:{"!type":"bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp","!doc":"Creates a regular expression object for matching text with a pattern."},multiline:{"!type":"bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/multiline","!doc":"Reflects whether or not to search in strings across multiple lines.\n"},source:{"!type":"string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/source","!doc":"A read-only property that contains the text of the pattern, excluding the forward slashes.\n"},lastIndex:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/lastIndex","!doc":"A read/write integer property that specifies the index at which to start the next match."}},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp","!doc":"Creates a regular expression object for matching text with a pattern."},Date:{"!type":"fn(ms: number)",parse:{"!type":"fn(source: string) -> +Date","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/parse","!doc":"Parses a string representation of a date, and returns the number of milliseconds since January 1, 1970, 00:00:00 UTC."},UTC:{"!type":"fn(year: number, month: number, date: number, hour?: number, min?: number, sec?: number, ms?: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/UTC","!doc":"Accepts the same parameters as the longest form of the constructor, and returns the number of milliseconds in a Date object since January 1, 1970, 00:00:00, universal time."},now:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/now","!doc":"Returns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC."},prototype:{toUTCString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toUTCString","!doc":"Converts a date to a string, using the universal time convention."},toISOString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toISOString","!doc":"JavaScript provides a direct way to convert a date object into a string in ISO format, the ISO 8601 Extended Format."},toDateString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toDateString","!doc":"Returns the date portion of a Date object in human readable form in American English."},toTimeString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toTimeString","!doc":"Returns the time portion of a Date object in human readable form in American English."},toLocaleDateString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleDateString","!doc":"Converts a date to a string, returning the \"date\" portion using the operating system's locale's conventions.\n"},toLocaleTimeString:{"!type":"fn() -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString","!doc":'Converts a date to a string, returning the "time" portion using the current locale\'s conventions.'},getTime:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTime","!doc":"Returns the numeric value corresponding to the time for the specified date according to universal time."},getFullYear:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getFullYear","!doc":"Returns the year of the specified date according to local time."},getYear:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getYear","!doc":"Returns the year in the specified date according to local time."},getMonth:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getMonth","!doc":"Returns the month in the specified date according to local time."},getUTCMonth:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCMonth","!doc":"Returns the month of the specified date according to universal time.\n"},getDate:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getDate","!doc":"Returns the day of the month for the specified date according to local time."},getUTCDate:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCDate","!doc":"Returns the day (date) of the month in the specified date according to universal time.\n"},getDay:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getDay","!doc":"Returns the day of the week for the specified date according to local time."},getUTCDay:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCDay","!doc":"Returns the day of the week in the specified date according to universal time.\n"},getHours:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getHours","!doc":"Returns the hour for the specified date according to local time."},getUTCHours:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCHours","!doc":"Returns the hours in the specified date according to universal time.\n"},getMinutes:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getMinutes","!doc":"Returns the minutes in the specified date according to local time."},getUTCMinutes:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date","!doc":"Creates JavaScript Date instances which let you work with dates and times."},getSeconds:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getSeconds","!doc":"Returns the seconds in the specified date according to local time."},getUTCSeconds:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCSeconds","!doc":"Returns the seconds in the specified date according to universal time.\n"},getMilliseconds:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getMilliseconds","!doc":"Returns the milliseconds in the specified date according to local time."},getUTCMilliseconds:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds","!doc":"Returns the milliseconds in the specified date according to universal time.\n"},getTimezoneOffset:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset","!doc":"Returns the time-zone offset from UTC, in minutes, for the current locale."},setTime:{"!type":"fn(date: +Date) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setTime","!doc":"Sets the Date object to the time represented by a number of milliseconds since January 1, 1970, 00:00:00 UTC.\n"},setFullYear:{"!type":"fn(year: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setFullYear","!doc":"Sets the full year for a specified date according to local time.\n"},setUTCFullYear:{"!type":"fn(year: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCFullYear","!doc":"Sets the full year for a specified date according to universal time.\n"},setMonth:{"!type":"fn(month: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setMonth","!doc":"Set the month for a specified date according to local time."},setUTCMonth:{"!type":"fn(month: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCMonth","!doc":"Sets the month for a specified date according to universal time.\n"},setDate:{"!type":"fn(day: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setDate","!doc":"Sets the day of the month for a specified date according to local time."},setUTCDate:{"!type":"fn(day: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCDate","!doc":"Sets the day of the month for a specified date according to universal time.\n"},setHours:{"!type":"fn(hour: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setHours","!doc":"Sets the hours for a specified date according to local time, and returns the number of milliseconds since 1 January 1970 00:00:00 UTC until the time represented by the updated Date instance."},setUTCHours:{"!type":"fn(hour: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCHours","!doc":"Sets the hour for a specified date according to universal time.\n"},setMinutes:{"!type":"fn(min: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setMinutes","!doc":"Sets the minutes for a specified date according to local time."},setUTCMinutes:{"!type":"fn(min: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCMinutes","!doc":"Sets the minutes for a specified date according to universal time.\n"},setSeconds:{"!type":"fn(sec: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setSeconds","!doc":"Sets the seconds for a specified date according to local time."},setUTCSeconds:{"!type":"fn(sec: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCSeconds","!doc":"Sets the seconds for a specified date according to universal time.\n"},setMilliseconds:{"!type":"fn(ms: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setMilliseconds","!doc":"Sets the milliseconds for a specified date according to local time.\n"},setUTCMilliseconds:{"!type":"fn(ms: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds","!doc":"Sets the milliseconds for a specified date according to universal time.\n"}},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date","!doc":"Creates JavaScript Date instances which let you work with dates and times."},Error:{"!type":"fn(message: string)",prototype:{name:{"!type":"string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Error/name","!doc":"A name for the type of error."},message:{"!type":"string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Error/message","!doc":"A human-readable description of the error."}},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Error","!doc":"Creates an error object."},SyntaxError:{"!type":"fn(message: string)",prototype:"Error.prototype","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/SyntaxError","!doc":"Represents an error when trying to interpret syntactically invalid code."},ReferenceError:{"!type":"fn(message: string)",prototype:"Error.prototype","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/ReferenceError","!doc":"Represents an error when a non-existent variable is referenced."},URIError:{"!type":"fn(message: string)",prototype:"Error.prototype","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/URIError","!doc":"Represents an error when a malformed URI is encountered."},EvalError:{"!type":"fn(message: string)",prototype:"Error.prototype","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/EvalError","!doc":"Represents an error regarding the eval function."},RangeError:{"!type":"fn(message: string)",prototype:"Error.prototype","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RangeError","!doc":"Represents an error when a number is not within the correct range allowed."},TypeError:{"!type":"fn(message: string)",prototype:"Error.prototype","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/TypeError","!doc":"Represents an error an error when a value is not of the expected type."},parseInt:{"!type":"fn(string: string, radix?: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt","!doc":"Parses a string argument and returns an integer of the specified radix or base."},parseFloat:{"!type":"fn(string: string) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseFloat","!doc":"Parses a string argument and returns a floating point number."},isNaN:{"!type":"fn(value: number) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/isNaN","!doc":"Determines whether a value is NaN or not. Be careful, this function is broken. You may be interested in ECMAScript 6 Number.isNaN."},isFinite:{"!type":"fn(value: number) -> bool","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/isFinite","!doc":"Determines whether the passed value is a finite number."},eval:{"!type":"fn(code: string) -> ?","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/eval","!doc":"Evaluates JavaScript code represented as a string."},encodeURI:{"!type":"fn(uri: string) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI","!doc":'Encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).'},encodeURIComponent:{"!type":"fn(uri: string) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent","!doc":'Encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).'},decodeURI:{"!type":"fn(uri: string) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/decodeURI","!doc":"Decodes a Uniform Resource Identifier (URI) previously created by encodeURI or by a similar routine."},decodeURIComponent:{"!type":"fn(uri: string) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/decodeURIComponent","!doc":"Decodes a Uniform Resource Identifier (URI) component previously created by encodeURIComponent or by a similar routine."},Math:{E:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/E","!doc":"The base of natural logarithms, e, approximately 2.718."},LN2:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LN2","!doc":"The natural logarithm of 2, approximately 0.693."},LN10:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LN10","!doc":"The natural logarithm of 10, approximately 2.302."},LOG2E:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LOG2E","!doc":"The base 2 logarithm of E (approximately 1.442)."},LOG10E:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LOG10E","!doc":"The base 10 logarithm of E (approximately 0.434)."},SQRT1_2:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/SQRT1_2","!doc":"The square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707."},SQRT2:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/SQRT2","!doc":"The square root of 2, approximately 1.414."},PI:{"!type":"number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/PI","!doc":"The ratio of the circumference of a circle to its diameter, approximately 3.14159."},abs:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/abs","!doc":"Returns the absolute value of a number."},cos:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/cos","!doc":"Returns the cosine of a number."},sin:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/sin","!doc":"Returns the sine of a number."},tan:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/tan","!doc":"Returns the tangent of a number."},acos:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/acos","!doc":"Returns the arccosine (in radians) of a number."},asin:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/asin","!doc":"Returns the arcsine (in radians) of a number."},atan:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/atan","!doc":"Returns the arctangent (in radians) of a number."},atan2:{"!type":"fn(y: number, x: number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/atan2","!doc":"Returns the arctangent of the quotient of its arguments."},ceil:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/ceil","!doc":"Returns the smallest integer greater than or equal to a number."},floor:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/floor","!doc":"Returns the largest integer less than or equal to a number."},round:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/round","!doc":"Returns the value of a number rounded to the nearest integer."},exp:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/exp","!doc":"Returns Ex, where x is the argument, and E is Euler's constant, the base of the natural logarithms."},log:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/log","!doc":"Returns the natural logarithm (base E) of a number."},sqrt:{"!type":"fn(number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/sqrt","!doc":"Returns the square root of a number."},pow:{"!type":"fn(number, number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/pow","!doc":"Returns base to the exponent power, that is, baseexponent."},max:{"!type":"fn(number, number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/max","!doc":"Returns the largest of zero or more numbers."},min:{"!type":"fn(number, number) -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/min","!doc":"Returns the smallest of zero or more numbers."},random:{"!type":"fn() -> number","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random","!doc":"Returns a floating-point, pseudo-random number in the range [0, 1) that is, from 0 (inclusive) up to but not including 1 (exclusive), which you can then scale to your desired range."},"!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math","!doc":"A built-in object that has properties and methods for mathematical constants and functions."},JSON:{parse:{"!type":"fn(json: string) -> ?","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/parse","!doc":"Parse a string as JSON, optionally transforming the value produced by parsing."},stringify:{"!type":"fn(value: ?) -> string","!url":"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify","!doc":"Convert a value to JSON, optionally replacing values if a replacer function is specified, or optionally including only the specified properties if a replacer array is specified."},"!url":"https://developer.mozilla.org/en-US/docs/JSON","!doc":"JSON (JavaScript Object Notation) is a data-interchange format. It closely resembles a subset of JavaScript syntax, although it is not a strict subset. (See JSON in the JavaScript Reference for full details.) It is useful when writing any kind of JavaScript-based application, including websites and browser extensions. For example, you might store user information in JSON format in a cookie, or you might store extension preferences in JSON in a string-valued browser preference."}} +}),define("json!tern/defs/ecma6.json",function(){return{"!name":"ecma6","!define":{"Promise.prototype":{"catch":{"!doc":"The catch() method returns a Promise and deals with rejected cases only. It behaves the same as calling Promise.prototype.then(undefined, onRejected).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch","!type":"fn(onRejected: fn(reason: ?))"},then:{"!doc":"The then() method returns a Promise. It takes two arguments, both are callback functions for the success and failure cases of the Promise.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then","!type":"fn(onFulfilled: fn(value: ?), onRejected: fn(reason: ?))","!effects":["call !0 !this.value"]}},promiseReject:{"!type":"fn(reason: ?)"}},Array:{from:{"!type":"fn(arrayLike: [], mapFn?: fn(), thisArg?: ?) -> !custom:Array_ctor","!doc":"The Array.from() method creates a new Array instance from an array-like or iterable object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from"},of:{"!type":"fn(elementN: ?) -> !custom:Array_ctor","!doc":"The Array.of() method creates a new Array instance with a variable number of arguments, regardless of number or type of the arguments.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of"},prototype:{copyWithin:{"!type":"fn(target: number, start: number, end?: number) -> !custom:Array_ctor","!doc":"The copyWithin() method copies the sequence of array elements within the array to the position starting at target. The copy is taken from the index positions of the second and third arguments start and end. The end argument is optional and defaults to the length of the array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin"},entries:{"!type":"fn() -> TODO_ITERATOR","!doc":"The entries() method returns a new Array Iterator object that contains the key/value pairs for each index in the array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/entries"},fill:{"!type":"fn(value: ?, start?: number, end?: number)","!doc":"The fill() method fills all the elements of an array from a start index to an end index with a static value.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill"},find:{"!type":"fn(callback: fn(element: ?, index: number, array: []), thisArg?: ?) -> ?","!doc":"The find() method returns a value in the array, if an element in the array satisfies the provided testing function. Otherwise undefined is returned.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find"},findIndex:{"!type":"fn(callback: fn(element: ?, index: number, array: []), thisArg?: ?) -> number","!doc":"The findIndex() method returns an index in the array, if an element in the array satisfies the provided testing function. Otherwise -1 is returned.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex"},keys:{"!type":"fn() -> !custom:Array_ctor","!doc":"The keys() method returns a new Array Iterator that contains the keys for each index in the array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/keys"},values:{"!type":"fn() -> !custom:Array_ctor","!doc":"The values() method returns a new Array Iterator object that contains the values for each index in the array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/values"}}},ArrayBuffer:{"!type":"fn(length: number)","!doc":"The ArrayBuffer object is used to represent a generic, fixed-length raw binary data buffer. You can not directly manipulate the contents of an ArrayBuffer; instead, you create one of the typed array objects or a DataView object which represents the buffer in a specific format, and use that to read and write the contents of the buffer.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer",isView:{"!type":"fn(arg: ?) -> bool","!doc":"The ArrayBuffer.isView() method returns true if arg is a view one of the ArrayBuffer views, such as typed array objects or a DataView; false otherwise.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView"},transfer:{"!type":"fn(oldBuffer: ?, newByteLength: ?)","!doc":"The static ArrayBuffer.transfer() method returns a new ArrayBuffer whose contents are taken from the oldBuffer's data and then is either truncated or zero-extended by newByteLength. If newByteLength is undefined, the byteLength of the oldBuffer is used. This operation leaves oldBuffer in a detached state.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer"},prototype:{byteLength:{"!type":"number","!doc":"The byteLength accessor property represents the length of an ArrayBuffer in bytes.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength"},slice:{"!type":"fn(begin: number, end?: number) -> +ArrayBuffer","!doc":"The slice() method returns a new ArrayBuffer whose contents are a copy of this ArrayBuffer's bytes from begin, inclusive, up to end, exclusive.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice"}}},DataView:{"!type":"fn(buffer: +ArrayBuffer, byteOffset?: number, byteLength?: number)","!doc":"The DataView view provides a low-level interface for reading data from and writing it to an ArrayBuffer.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView",prototype:{buffer:{"!type":"+ArrayBuffer","!doc":"The buffer accessor property represents the ArrayBuffer referenced by the DataView at construction time.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/buffer"},byteLength:{"!type":"number","!doc":"The byteLength accessor property represents the length (in bytes) of this view from the start of its ArrayBuffer.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/byteLength"},byteOffset:{"!type":"number","!doc":"The byteOffset accessor property represents the offset (in bytes) of this view from the start of its ArrayBuffer.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/byteOffset"},getFloat32:{"!type":"fn(byteOffset: number, littleEndian?: bool) -> number","!doc":"The getFloat32() method gets a signed 32-bit integer (float) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getFloat32"},getFloat64:{"!type":"fn(byteOffset: number, littleEndian?: bool) -> number","!doc":"The getFloat64() method gets a signed 64-bit float (double) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getFloat64"},getInt16:{"!type":"fn(byteOffset: number, littleEndian?: bool) -> number","!doc":"The getInt16() method gets a signed 16-bit integer (short) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getInt16"},getInt32:{"!type":"fn(byteOffset: number, littleEndian?: bool) -> number","!doc":"The getInt32() method gets a signed 32-bit integer (long) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getInt32"},getInt8:{"!type":"fn(byteOffset: number, littleEndian?: bool) -> number","!doc":"The getInt8() method gets a signed 8-bit integer (byte) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getInt8"},getUint16:{"!type":"fn(byteOffset: number, littleEndian?: bool) -> number","!doc":"The getUint16() method gets an unsigned 16-bit integer (unsigned short) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getUint16"},getUint32:{"!type":"fn(byteOffset: number, littleEndian?: bool) -> number","!doc":"The getUint32() method gets an unsigned 32-bit integer (unsigned long) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getUint32"},getUint8:{"!type":"fn(byteOffset: number) -> number","!doc":"The getUint8() method gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getUint8"},setFloat32:{"!type":"fn(byteOffset: number, value: number, littleEndian?: bool)","!doc":"The setFloat32() method stores a signed 32-bit integer (float) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setFloat32"},setFloat64:{"!type":"fn(byteOffset: number, value: number, littleEndian?: bool)","!doc":"The setFloat64() method stores a signed 64-bit integer (double) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setFloat64"},setInt16:{"!type":"fn(byteOffset: number, value: number, littleEndian?: bool)","!doc":"The setInt16() method stores a signed 16-bit integer (short) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setInt16"},setInt32:{"!type":"fn(byteOffset: number, value: number, littleEndian?: bool)","!doc":"The setInt32() method stores a signed 32-bit integer (long) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setInt32"},setInt8:{"!type":"fn(byteOffset: number, value: number)","!doc":"The setInt8() method stores a signed 8-bit integer (byte) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setInt8"},setUint16:{"!type":"fn(byteOffset: number, value: number, littleEndian?: bool)","!doc":"The setUint16() method stores an unsigned 16-bit integer (unsigned short) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setUint16"},setUint32:{"!type":"fn(byteOffset: number, value: number, littleEndian?: bool)","!doc":"The setUint32() method stores an unsigned 32-bit integer (unsigned long) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setUint32"},setUint8:{"!type":"fn(byteOffset: number, value: number)","!doc":"The setUint8() method stores an unsigned 8-bit integer (byte) value at the specified byte offset from the start of the DataView.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setUint8"}}},Float32Array:{"!type":"fn(length: number)","!doc":"The Float32Array typed array represents an array of 32-bit floating point numbers (corresponding to the C float data type) in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array",prototype:{"!proto":"TypedArray.prototype"},length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of"},Float64Array:{"!type":"fn(length: number)","!doc":"The Float64Array typed array represents an array of 64-bit floating point numbers (corresponding to the C double data type) in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array",prototype:{"!proto":"TypedArray.prototype"},length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of"},Int16Array:{"!type":"fn(length: number)","!doc":"The Int16Array typed array represents an array of twos-complement 16-bit signed integers in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array",prototype:{"!proto":"TypedArray.prototype"},length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of"},Int32Array:{"!type":"fn(length: number)","!doc":"The Int32Array typed array represents an array of twos-complement 32-bit signed integers in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array",prototype:{"!proto":"TypedArray.prototype"},length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of"},Int8Array:{"!type":"fn(length: number)","!doc":"The Int8Array typed array represents an array of twos-complement 8-bit signed integers. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array",prototype:{"!proto":"TypedArray.prototype"},length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of"},Map:{"!type":"fn(iterable?: [])","!doc":"The Map object is a simple key/value map. Any value (both objects and primitive values) may be used as either a key or a value.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map",prototype:{clear:{"!type":"fn()","!doc":"The clear() method removes all elements from a Map object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/clear"},"delete":{"!type":"fn(key: ?)","!doc":"The delete() method removes the specified element from a Map object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/delete"},entries:{"!type":"fn() -> TODO_ITERATOR","!doc":"The entries() method returns a new Iterator object that contains the [key, value] pairs for each element in the Map object in insertion order.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries"},forEach:{"!type":"fn(callback: fn(value: ?, key: ?, map: +Map), thisArg?: ?)","!effects":["call !0 this=!1 !this. number !this"],"!doc":"The forEach() method executes a provided function once per each key/value pair in the Map object, in insertion order.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach"},get:{"!type":"fn(key: ?) -> !this.","!doc":"The get() method returns a specified element from a Map object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get"},has:{"!type":"fn(key: ?) -> bool","!doc":"The has() method returns a boolean indicating whether an element with the specified key exists or not.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/has"},keys:{"!type":"fn() -> TODO_ITERATOR","!doc":"The keys() method returns a new Iterator object that contains the keys for each element in the Map object in insertion order.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/keys"},set:{"!type":"fn(key: ?, value: ?) -> !this","!doc":"The set() method adds a new element with a specified key and value to a Map object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/set"},size:{"!type":"number","!doc":"The size accessor property returns the number of elements in a Map object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/size"},values:{"!type":"fn() -> TODO_ITERATOR","!doc":"The values() method returns a new Iterator object that contains the values for each element in the Map object in insertion order.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/values"},"prototype[@@iterator]":{"!type":"fn()","!doc":"The initial value of the @@iterator property is the same function object as the initial value of the entries property.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/@@iterator"}}},Math:{acosh:{"!type":"fn(x: number) -> number","!doc":"The Math.acosh() function returns the hyperbolic arc-cosine of a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/acosh"},asinh:{"!type":"fn(x: number) -> number","!doc":"The Math.asinh() function returns the hyperbolic arcsine of a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/asinh"},atanh:{"!type":"fn(x: number) -> number","!doc":"The Math.atanh() function returns the hyperbolic arctangent of a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atanh"},cbrt:{"!type":"fn(x: number) -> number","!doc":"The Math.cbrt() function returns the cube root of a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cbrt"},clz32:{"!type":"fn(x: number) -> number","!doc":"The Math.clz32() function returns the number of leading zero bits in the 32-bit binary representation of a number.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32"},cosh:{"!type":"fn(x: number) -> number","!doc":"The Math.cosh() function returns the hyperbolic cosine of a number, that can be expressed using the constant e:","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cosh"},expm1:{"!type":"fn(x: number) -> number","!doc":"The Math.expm1() function returns ex - 1, where x is the argument, and e the base of the natural logarithms.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/expm1"},fround:{"!type":"fn(x: number) -> number","!doc":"The Math.fround() function returns the nearest single precision float representation of a number.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround"},hypot:{"!type":"fn(value: number) -> number","!doc":"The Math.hypot() function returns the square root of the sum of squares of its arguments, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/hypot"},imul:{"!type":"fn(a: number, b: number) -> number","!doc":"The Math.imul() function returns the result of the C-like 32-bit multiplication of the two parameters.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul"},log10:{"!type":"fn(x: number) -> number","!doc":"The Math.log10() function returns the base 10 logarithm of a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10"},log1p:{"!type":"fn(x: number) -> number","!doc":"The Math.log1p() function returns the natural logarithm (base e) of 1 + a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log1p"},log2:{"!type":"fn(x: number) -> number","!doc":"The Math.log2() function returns the base 2 logarithm of a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2"},sign:{"!type":"fn(x: number) -> number","!doc":"The Math.sign() function returns the sign of a number, indicating whether the number is positive, negative or zero.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign"},sinh:{"!type":"fn(x: number) -> number","!doc":"The Math.sinh() function returns the hyperbolic sine of a number, that can be expressed using the constant e:","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sinh"},tanh:{"!type":"fn(x: number) -> number","!doc":"The Math.tanh() function returns the hyperbolic tangent of a number, that is","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/tanh"},trunc:{"!type":"fn(x: number) -> number","!doc":"The Math.trunc() function returns the integral part of a number by removing any fractional digits. It does not round any numbers. The function can be expressed with the floor() and ceil() function:","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc"}},Number:{EPSILON:{"!type":"number","!doc":"The Number.EPSILON property represents the difference between one and the smallest value greater than one that can be represented as a Number.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON"},MAX_SAFE_INTEGER:{"!type":"number","!doc":"The Number.MAX_SAFE_INTEGER constant represents the maximum safe integer in JavaScript (253 - 1).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER"},MIN_SAFE_INTEGER:{"!type":"number","!doc":"The Number.MIN_SAFE_INTEGER constant represents the minimum safe integer in JavaScript (-(253 - 1)).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER"},isFinite:{"!type":"fn(testValue: ?) -> bool","!doc":"The Number.isFinite() method determines whether the passed value is finite.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite"},isInteger:{"!type":"fn(testValue: ?) -> bool","!doc":"The Number.isInteger() method determines whether the passed value is an integer.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger"},isNaN:{"!type":"fn(testValue: ?) -> bool","!doc":"The Number.isNaN() method determines whether the passed value is NaN. More robust version of the original global isNaN().","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN"},isSafeInteger:{"!type":"fn(testValue: ?) -> bool","!doc":"The Number.isSafeInteger() method determines whether the provided value is a number that is a safe integer. A safe integer is an integer that","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger"},parseFloat:{"!type":"fn(string: string) -> number","!doc":"The Number.parseFloat() method parses a string argument and returns a floating point number. This method behaves identically to the global function parseFloat() and is part of ECMAScript 6 (its purpose is modularization of globals).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat"},parseInt:{"!type":"fn(string: string, radix?: number) -> number","!doc":"The Number.parseInt() method parses a string argument and returns an integer of the specified radix or base. This method behaves identically to the global function parseInt() and is part of ECMAScript 6 (its purpose is modularization of globals).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt"}},Object:{assign:{"!type":"fn(target: ?, sources: ?) -> ?","!doc":"The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign"},getOwnPropertySymbols:{"!type":"fn(obj: ?) -> [?]","!doc":"The Object.getOwnPropertySymbols() method returns an array of all symbol properties found directly upon a given object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols"},is:{"!type":"fn(value1: ?, value2: ?) -> bool","!doc":"The Object.is() method determines whether two values are the same value.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is"},setPrototypeOf:{"!type":"fn(obj: ?, prototype: ?)","!doc":"The Object.setPrototype() method sets the prototype (i.e., the internal [[Prototype]] property) of a specified object to another object or null.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf"}},Promise:{"!type":"fn(executor: fn(resolve: fn(value: ?), reject: promiseReject)) -> !custom:Promise_ctor","!doc":"The Promise object is used for deferred and asynchronous computations. A Promise is in one of the three states:","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise",all:{"!type":"fn(iterable: [+Promise]) -> !0.","!doc":"The Promise.all(iterable) method returns a promise that resolves when all of the promises in the iterable argument have resolved.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all"},race:{"!type":"fn(iterable: [+Promise]) -> !0.","!doc":"The Promise.race(iterable) method returns a promise that resolves or rejects as soon as one of the promises in the iterable resolves or rejects, with the value or reason from that promise.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/race"},reject:{"!type":"fn(reason: ?) -> !this","!doc":"The Promise.reject(reason) method returns a Promise object that is rejected with the given reason.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject"},resolve:{"!type":"fn(value: ?) -> +Promise[value=!0]","!doc":"The Promise.resolve(value) method returns a Promise object that is resolved with the given value. If the value is a thenable (i.e. has a then method), the returned promise will 'follow' that thenable, adopting its eventual state; otherwise the returned promise will be fulfilled with the value.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve"},prototype:"Promise.prototype"},Proxy:{"!type":"fn(target: ?, handler: ?)","!doc":"The Proxy object is used to define the custom behavior in JavaScript fundamental operation (e.g. property lookup, assignment, enumeration, function invocation, etc).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy",revocable:{"!doc":"The Proxy.revocable() method is used to create a revocable Proxy object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/revocable"}},RegExp:{prototype:{flags:{"!type":"string","!doc":"The flags property returns a string consisting of the flags of the current regular expression object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/flags"},sticky:{"!type":"bool","!doc":"The sticky property reflects whether or not the search is sticky (searches in strings only from the index indicated by the lastIndex property of this regular expression). sticky is a read-only property of an individual regular expression object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/sticky"}}},Set:{"!type":"fn(iterable: [?])","!doc":"The Set object lets you store unique values of any type, whether primitive values or object references.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set",length:{"!type":"number","!doc":"The value of the length property is 1."},prototype:{add:{"!type":"fn(value: ?) -> !this","!doc":"The add() method appends a new element with a specified�value to the end of a Set object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/add"},clear:{"!type":"fn()","!doc":"The clear() method removes all elements from a Set object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/clear"},"delete":{"!type":"fn(value: ?) -> bool","!doc":"The delete() method removes the specified element from a Set object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/delete"},entries:{"!type":"fn() -> TODO_ITERATOR","!doc":"The entries() method returns a new Iterator object that contains an array of [value, value] for each element in the Set object, in insertion order. For Set objects there is no key like in Map objects. However, to keep the API similar to the Map object, each entry has the same value for its key and value here, so that an array [value, value] is returned.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/entries"},forEach:{"!type":"fn(callback: fn(value: ?, value2: ?, set: +Set), thisArg?: ?)","!effects":["call !0 this=!1 !this. number !this"]},has:{"!type":"fn(value: ?) -> bool","!doc":"The has() method returns a boolean indicating whether an element with the specified value exists in a Set object or not.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/has"},keys:{"!type":"fn() -> TODO_ITERATOR","!doc":"The values() method returns a new Iterator object that contains the values for each element in the Set object in insertion order.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/keys"},size:{"!type":"number","!doc":"The size accessor property returns the number of elements in a Set object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/size"},values:{"!type":"fn() -> TODO_ITERATOR","!doc":"The values() method returns a new Iterator object that contains the values for each element in the Set object in insertion order.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/values"},"prototype[@@iterator]":{"!type":"fn()","!doc":"The initial value of the @@iterator property is the same function object as the initial value of the values property.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/@@iterator"}}},String:{fromCodePoint:{"!type":"fn(num1: ?) -> string","!doc":"The static String.fromCodePoint() method returns a string created by using the specified sequence of code points.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint"},raw:{"!type":"fn(callSite: ?, substitutions: ?, templateString: ?) -> string","!doc":"The static String.raw() method is a tag function of template strings, like the r prefix in Python or the @ prefix in C# for string literals, this function is used to get the raw string form of template strings.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw"},prototype:{codePointAt:{"!type":"fn(pos: number) -> number","!doc":"The codePointAt() method returns a non-negative integer that is the UTF-16 encoded code point value.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt"},endsWith:{"!type":"fn(searchString: string, position?: number) -> bool","!doc":"The endsWith() method determines whether a string ends with the characters of another string, returning true or false as appropriate.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith"},includes:{"!type":"fn(searchString: string, position?: number) -> bool","!doc":"The includes() method determines whether one string may be found within another string, returning true or false as appropriate.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains"},normalize:{"!type":"fn(form: string) -> string","!doc":"The normalize() method returns the Unicode Normalization Form of a given string (if the value isn't a string, it will be converted to one first).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize"},repeat:{"!type":"fn(count: number) -> string","!doc":"The repeat() method constructs and returns a new string which contains the specified number of copies of the string on which it was called, concatenated together.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat"},startsWith:{"!type":"fn(searchString: string, position?: number) -> bool","!doc":"The startsWith() method determines whether a string begins with the characters of another string, returning true or false as appropriate.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith"}}},Symbol:{"!type":"fn(description?: string)","!doc":"A symbol is a unique and immutable data type and may be used as an identifier for object properties. The symbol object is an implicit object wrapper for the symbol primitive data type.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol","for":{"!type":"fn(key: string) -> +Symbol","!doc":"The Symbol.for(key) method searches for existing symbols in a runtime-wide symbol registry with the given key and returns it if found. Otherwise a new symbol gets created in the global symbol registry with this key.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for"},keyFor:{"!type":"fn(sym: +Symbol) -> +Symbol","!doc":"The Symbol.keyFor(sym) method retrieves a shared symbol key from the global symbol registry for the given symbol.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/keyFor"},prototype:{toString:{"!type":"fn() -> string","!doc":"The toString() method returns a string representing the specified Symbol object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toString"},valueOf:{"!type":"fn() -> ?","!doc":"The valueOf() method returns the primitive value of a Symbol object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/valueOf"}}},TypedArray:{"!type":"fn(length: number)","!doc":"A TypedArray object describes an array-like view of an underlying binary data buffer. There is no global property named TypedArray, nor is there a directly visible TypedArray constructor. Instead, there are a number of different global properties, whose values are typed array constructors for specific element types, listed below. On the following pages you will find common properties and methods that can be used with any typed array containing elements of any type.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray",BYTES_PER_ELEMENT:{"!type":"number","!doc":"The TypedArray.BYTES_PER_ELEMENT property represents the size in bytes of each element in an typed array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT"},length:{"!type":"number","!doc":"The length accessor property represents the length (in elements) of a typed array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/length"},name:{"!type":"string","!doc":"The TypedArray.name property represents a string value of the typed array constructor name.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/name"},prototype:{buffer:{"!type":"+ArrayBuffer","!doc":"The buffer accessor property represents the ArrayBuffer referenced by a TypedArray at construction time.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/buffer"},byteLength:{"!type":"number","!doc":"The byteLength accessor property represents the length (in bytes) of a typed array from the start of its ArrayBuffer.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/byteLength"},byteOffset:{"!type":"number","!doc":"The byteOffset accessor property represents the offset (in bytes) of a typed array from the start of its ArrayBuffer.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/byteOffset"},copyWithin:{"!type":"fn(target: number, start: number, end?: number) -> ?","!doc":"The copyWithin() method copies the sequence of array elements within the array to the position starting at target. The copy is taken from the index positions of the second and third arguments start and end. The end argument is optional and defaults to the length of the array. This method has the same algorithm as Array.prototype.copyWithin. TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin"},entries:{"!type":"fn() -> TODO_ITERATOR","!doc":"The entries() method returns a new Array Iterator object that contains the key/value pairs for each index in the array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries"},every:{"!type":"fn(callback: fn(currentValue: ?, index: number, array: +TypedArray) -> bool, thisArg?: ?) -> bool","!effects":["call !0 this=!1 !this. number !this"],"!doc":"The every() method tests whether all elements in the typed array pass the test implemented by the provided function. This method has the same algorithm as Array.prototype.every(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/every"},fill:{"!type":"fn(value: ?, start?: number, end?: number)","!doc":"The fill() method fills all the elements of a typed array from a start index to an end index with a static value. This method has the same algorithm as Array.prototype.fill(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/fill"},filter:{"!type":"fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> !this","!effects":["call !0 this=!1 !this. number"],"!doc":"Creates a new array with all of the elements of this array for which the provided filtering function returns true. See also Array.prototype.filter().","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/filter"},find:{"!type":"fn(callback: fn(element: ?, index: number, array: +TypedArray) -> bool, thisArg?: ?) -> ?","!effects":["call !0 this=!1 !this. number !this"],"!doc":"The find() method returns a value in the typed array, if an element satisfies the provided testing function. Otherwise undefined is returned. TypedArray is one of the typed array types here.\nSee also the findIndex() method, which returns the index of a found element in the typed array instead of its value.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/find"},findIndex:{"!type":"fn(callback: fn(element: ?, index: number, array: +TypedArray) -> bool, thisArg?: ?) -> number","!effects":["call !0 this=!1 !this. number !this"],"!doc":"The findIndex() method returns an index in the typed array, if an element in the typed array satisfies the provided testing function. Otherwise -1 is returned.\nSee also the find() method, which returns the value of a found element in the typed array instead of its index.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findIndex"},forEach:{"!type":"fn(callback: fn(value: ?, key: ?, array: +TypedArray), thisArg?: ?)","!effects":["call !0 this=!1 !this. number !this"],"!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/forEach"},includes:{"!type":"fn(searchElement: ?, fromIndex?: number) -> bool","!doc":"The includes() method determines whether a typed array includes a certain element, returning true or false as appropriate. This method has the same algorithm as Array.prototype.includes(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/includes"},indexOf:{"!type":"fn(searchElement: ?, fromIndex?: number) -> number","!doc":"The indexOf() method returns the first index at which a given element can be found in the typed array, or -1 if it is not present. This method has the same algorithm as Array.prototype.indexOf(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/indexOf"},join:{"!type":"fn(separator?: string) -> string","!doc":"The join() method joins all elements of an array into a string. This method has the same algorithm as Array.prototype.join(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/join"},keys:{"!type":"fn() -> TODO_ITERATOR","!doc":"The keys() method returns a new Array Iterator object that contains the keys for each index in the array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/keys"},lastIndexOf:{"!type":"fn(searchElement: ?, fromIndex?: number) -> number","!doc":"The lastIndexOf() method returns the last index at which a given element can be found in the typed array, or -1 if it is not present. The typed array is searched backwards, starting at fromIndex. This method has the same algorithm as Array.prototype.lastIndexOf(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/lastIndexOf"},length:{"!type":"number","!doc":"Returns the number of elements hold in the typed array. Fixed at construction time and thus read only.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/length"},map:{"!type":"fn(f: fn(elt: ?, i: number) -> ?, context?: ?) -> [!0.!ret]","!effects":["call !0 this=!1 !this. number"],"!doc":"Creates a new array with the results of calling a provided function on every element in this array. See also Array.prototype.map().","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/map"},reduce:{"!type":"fn(combine: fn(sum: ?, elt: ?, i: number) -> ?, init?: ?) -> !0.!ret","!effects":["call !0 !1 !this. number"],"!doc":"Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value. See also Array.prototype.reduce().","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduce"},reduceRight:{"!type":"fn(combine: fn(sum: ?, elt: ?, i: number) -> ?, init?: ?) -> !0.!ret","!effects":["call !0 !1 !this. number"],"!doc":"Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value. See also Array.prototype.reduceRight().","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduceRight"},reverse:{"!type":"fn()","!doc":"The reverse() method reverses a typed array in place. The first typed array element becomes the last and the last becomes the first. This method has the same algorithm as Array.prototype.reverse(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reverse"},set:{"!type":"fn(array: [?], offset?: ?)","!doc":"The set() method stores multiple values in the typed array, reading input values from a specified array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set"},slice:{"!type":"fn(from: number, to?: number) -> !this","!type":"Extracts a section of an array and returns a new array. See also Array.prototype.slice().","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice"},some:{"!type":"fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> bool","!effects":["call !0 this=!1 !this. number"],"!doc":"The some() method tests whether some element in the typed array passes the test implemented by the provided function. This method has the same algorithm as Array.prototype.some(). TypedArray is one of the typed array types here.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/some"},sort:{"!type":"fn(compare?: fn(a: ?, b: ?) -> number)","!effects":["call !0 !this. !this."],"!doc":"Sorts the elements of an array in place and returns the array. See also Array.prototype.sort().","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/sort"},subarray:{"!type":"fn(begin?: number, end?: number) -> +TypedArray","!doc":"The subarray() method returns a new TypedArray on the same ArrayBuffer store and with the same element types as for this TypedArray object. The begin offset is inclusive and the end offset is exclusive. TypedArray is one of the typed array types.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray"},values:{"!type":"fn() -> TODO_ITERATOR","!doc":"The values() method returns a new Array Iterator object that contains the values for each index in the array.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/values"},"prototype[@@iterator]":{"!type":"fn()","!doc":"The initial value of the @@iterator property is the same function object as the initial value of the values property.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/@@iterator"}}},Uint16Array:{"!type":"fn()","!doc":"The Uint16Array typed array represents an array of 16-bit unsigned integers in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array",length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of",prototype:{"!proto":"TypedArray.prototype"}},Uint32Array:{"!type":"fn()","!doc":"The Uint32Array typed array represents an array of 32-bit unsigned integers in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array",length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of",prototype:{"!proto":"TypedArray.prototype"}},Uint8Array:{"!type":"fn()","!doc":"The Uint8Array typed array represents an array of 8-bit unsigned integers. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array",length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of",prototype:{"!proto":"TypedArray.prototype"}},Uint8ClampedArray:{"!type":"fn()","!doc":"The Uint8ClampedArray typed array represents an array of 8-bit unsigned integers clamped to 0-255. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray",length:"TypedArray.length",BYTES_PER_ELEMENT:"TypedArray.BYTES_PER_ELEMENT",name:"TypedArray.name",from:"TypedArray.from",of:"TypedArray.of",prototype:{"!proto":"TypedArray.prototype"}},WeakMap:{"!type":"fn(iterable: [?])","!doc":"The WeakMap object is a collection of key/value pairs in which the keys are objects and the values can be arbitrary values.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",prototype:{"delete":{"!type":"fn(key: ?) -> bool","!doc":"The delete() method removes the specified element from a WeakMap object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/delete"},get:{"!type":"fn(key: ?) !this.","!doc":"The get() method returns a specified element from a WeakMap object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/get"},has:{"!type":"fn(key: ?) -> bool","!doc":"The has() method returns a boolean indicating whether an element with the specified key exists in the WeakMap object or not.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/has"},set:{"!type":"fn(key: ?, value: ?)","!doc":"The set() method adds a new element with a specified key and value to a WeakMap object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/set"}}},WeakSet:{"!type":"fn(iterable: [?])","!doc":"The WeakSet object lets you store weakly held objects in a collection.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet",prototype:{add:{"!type":"fn(value: ?)","!doc":"The add() method appends a new object to the end of a WeakSet object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/add"},"delete":{"!type":"fn(value: ?) -> bool","!doc":"The delete() method removes the specified element from a WeakSet object.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/delete"},has:{"!type":"fn(value: ?) -> bool","!doc":"The has() method returns a boolean indicating whether an object exists in a WeakSet or not.","!url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/has"}}}} +}),define("json!tern/defs/browser.json",function(){return{"!name":"browser",location:{assign:{"!type":"fn(url: string)","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"Load the document at the provided URL."},replace:{"!type":"fn(url: string)","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"Replace the current document with the one at the provided URL. The difference from the assign() method is that after using replace() the current page will not be saved in session history, meaning the user won't be able to use the Back button to navigate to it."},reload:{"!type":"fn()","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"Reload the document from the current URL. forceget is a boolean, which, when it is true, causes the page to always be reloaded from the server. If it is false or not specified, the browser may reload the page from its cache."},origin:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The origin of the URL."},hash:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The part of the URL that follows the # symbol, including the # symbol."},search:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The part of the URL that follows the ? symbol, including the ? symbol."},pathname:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The path (relative to the host)."},port:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The port number of the URL."},hostname:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The host name (without the port number or square brackets)."},host:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The host name and port number."},protocol:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The protocol of the URL."},href:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"The entire URL."},"!url":"https://developer.mozilla.org/en/docs/DOM/window.location","!doc":"Returns a location object with information about the current location of the document. Assigning to the location property changes the current page to the new address."},Node:{"!type":"fn()",prototype:{parentElement:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.parentElement","!doc":"Returns the DOM node's parent Element, or null if the node either has no parent, or its parent isn't a DOM Element."},textContent:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.textContent","!doc":"Gets or sets the text content of a node and its descendants."},baseURI:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.baseURI","!doc":"The absolute base URI of a node or null if unable to obtain an absolute URI."},localName:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.localName","!doc":"Returns the local part of the qualified name of this node."},prefix:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.prefix","!doc":"Returns the namespace prefix of the specified node, or null if no prefix is specified. This property is read only."},namespaceURI:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.namespaceURI","!doc":"The namespace URI of the node, or null if the node is not in a namespace (read-only). When the node is a document, it returns the XML namespace for the current document."},ownerDocument:{"!type":"+Document","!url":"https://developer.mozilla.org/en/docs/DOM/Node.ownerDocument","!doc":"The ownerDocument property returns the top-level document object for this node."},attributes:{"!type":"+NamedNodeMap","!url":"https://developer.mozilla.org/en/docs/DOM/Node.attributes","!doc":"A collection of all attribute nodes registered to the specified node. It is a NamedNodeMap,not an Array, so it has no Array methods and the Attr nodes' indexes may differ among browsers."},nextSibling:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.nextSibling","!doc":"Returns the node immediately following the specified one in its parent's childNodes list, or null if the specified node is the last node in that list."},previousSibling:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.previousSibling","!doc":"Returns the node immediately preceding the specified one in its parent's childNodes list, null if the specified node is the first in that list."},lastChild:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.lastChild","!doc":"Returns the last child of a node."},firstChild:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.firstChild","!doc":"Returns the node's first child in the tree, or null if the node is childless. If the node is a Document, it returns the first node in the list of its direct children."},childNodes:{"!type":"+NodeList","!url":"https://developer.mozilla.org/en/docs/DOM/Node.childNodes","!doc":"Returns a collection of child nodes of the given element."},parentNode:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.parentNode","!doc":"Returns the parent of the specified node in the DOM tree."},nodeType:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/Node.nodeType","!doc":"Returns an integer code representing the type of the node."},nodeValue:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.nodeValue","!doc":"Returns or sets the value of the current node."},nodeName:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.nodeName","!doc":"Returns the name of the current node as a string."},tagName:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.nodeName","!doc":"Returns the name of the current node as a string."},insertBefore:{"!type":"fn(newElt: +Element, before: +Element) -> +Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.insertBefore","!doc":"Inserts the specified node before a reference element as a child of the current node."},replaceChild:{"!type":"fn(newElt: +Element, oldElt: +Element) -> +Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.replaceChild","!doc":"Replaces one child node of the specified element with another."},removeChild:{"!type":"fn(oldElt: +Element) -> +Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.removeChild","!doc":"Removes a child node from the DOM. Returns removed node."},appendChild:{"!type":"fn(newElt: +Element) -> +Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.appendChild","!doc":"Adds a node to the end of the list of children of a specified parent node. If the node already exists it is removed from current parent node, then added to new parent node."},hasChildNodes:{"!type":"fn() -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/Node.hasChildNodes","!doc":"Returns a Boolean value indicating whether the current Node has child nodes or not."},cloneNode:{"!type":"fn(deep: bool) -> +Element","!url":"https://developer.mozilla.org/en/docs/DOM/Node.cloneNode","!doc":"Returns a duplicate of the node on which this method was called."},normalize:{"!type":"fn()","!url":"https://developer.mozilla.org/en/docs/DOM/Node.normalize","!doc":'Puts the specified node and all of its subtree into a "normalized" form. In a normalized subtree, no text nodes in the subtree are empty and there are no adjacent text nodes.'},isSupported:{"!type":"fn(features: string, version: number) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/Node.isSupported","!doc":"Tests whether the DOM implementation implements a specific feature and that feature is supported by this node."},hasAttributes:{"!type":"fn() -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/Node.hasAttributes","!doc":"Returns a boolean value of true or false, indicating if the current element has any attributes or not."},lookupPrefix:{"!type":"fn(uri: string) -> string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.lookupPrefix","!doc":"Returns the prefix for a given namespaceURI if present, and null if not. When multiple prefixes are possible, the result is implementation-dependent."},isDefaultNamespace:{"!type":"fn(uri: string) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/Node.isDefaultNamespace","!doc":"Accepts a namespace URI as an argument and returns true if the namespace is the default namespace on the given node or false if not."},lookupNamespaceURI:{"!type":"fn(uri: string) -> string","!url":"https://developer.mozilla.org/en/docs/DOM/Node.lookupNamespaceURI","!doc":"Takes a prefix and returns the namespaceURI associated with it on the given node if found (and null if not). Supplying null for the prefix will return the default namespace."},addEventListener:{"!type":"fn(type: string, listener: fn(e: +Event), capture: bool)","!url":"https://developer.mozilla.org/en/docs/DOM/EventTarget.addEventListener","!doc":"Registers a single event listener on a single target. The event target may be a single element in a document, the document itself, a window, or an XMLHttpRequest."},removeEventListener:{"!type":"fn(type: string, listener: fn(), capture: bool)","!url":"https://developer.mozilla.org/en/docs/DOM/EventTarget.removeEventListener","!doc":"Allows the removal of event listeners from the event target."},isSameNode:{"!type":"fn(other: +Node) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/Node.isSameNode","!doc":"Tests whether two nodes are the same, that is they reference the same object."},isEqualNode:{"!type":"fn(other: +Node) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/Node.isEqualNode","!doc":"Tests whether two nodes are equal."},compareDocumentPosition:{"!type":"fn(other: +Node) -> number","!url":"https://developer.mozilla.org/en/docs/DOM/Node.compareDocumentPosition","!doc":"Compares the position of the current node against another node in any other document."},contains:{"!type":"fn(other: +Node) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/Node.contains","!doc":"Indicates whether a node is a descendent of a given node."},dispatchEvent:{"!type":"fn(event: +Event) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/EventTarget.dispatchEvent","!doc":"Dispatches an event into the event system. The event is subject to the same capturing and bubbling behavior as directly dispatched events."},ELEMENT_NODE:"number",ATTRIBUTE_NODE:"number",TEXT_NODE:"number",CDATA_SECTION_NODE:"number",ENTITY_REFERENCE_NODE:"number",ENTITY_NODE:"number",PROCESSING_INSTRUCTION_NODE:"number",COMMENT_NODE:"number",DOCUMENT_NODE:"number",DOCUMENT_TYPE_NODE:"number",DOCUMENT_FRAGMENT_NODE:"number",NOTATION_NODE:"number",DOCUMENT_POSITION_DISCONNECTED:"number",DOCUMENT_POSITION_PRECEDING:"number",DOCUMENT_POSITION_FOLLOWING:"number",DOCUMENT_POSITION_CONTAINS:"number",DOCUMENT_POSITION_CONTAINED_BY:"number",DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:"number"},"!url":"https://developer.mozilla.org/en/docs/DOM/Node","!doc":"A Node is an interface from which a number of DOM types inherit, and allows these various types to be treated (or tested) similarly."},Element:{"!type":"fn()",prototype:{"!proto":"Node.prototype",getAttribute:{"!type":"fn(name: string) -> string","!url":"https://developer.mozilla.org/en/docs/DOM/element.getAttribute","!doc":'Returns the value of the named attribute on the specified element. If the named attribute does not exist, the value returned will either be null or "" (the empty string).'},setAttribute:{"!type":"fn(name: string, value: string)","!url":"https://developer.mozilla.org/en/docs/DOM/element.setAttribute","!doc":"Adds a new attribute or changes the value of an existing attribute on the specified element."},removeAttribute:{"!type":"fn(name: string)","!url":"https://developer.mozilla.org/en/docs/DOM/element.removeAttribute","!doc":"Removes an attribute from the specified element."},getAttributeNode:{"!type":"fn(name: string) -> +Attr","!url":"https://developer.mozilla.org/en/docs/DOM/element.getAttributeNode","!doc":"Returns the specified attribute of the specified element, as an Attr node."},getElementsByTagName:{"!type":"fn(tagName: string) -> +NodeList","!url":"https://developer.mozilla.org/en/docs/DOM/element.getElementsByTagName","!doc":"Returns a list of elements with the given tag name. The subtree underneath the specified element is searched, excluding the element itself. The returned list is live, meaning that it updates itself with the DOM tree automatically. Consequently, there is no need to call several times element.getElementsByTagName with the same element and arguments."},getElementsByTagNameNS:{"!type":"fn(ns: string, tagName: string) -> +NodeList","!url":"https://developer.mozilla.org/en/docs/DOM/element.getElementsByTagNameNS","!doc":"Returns a list of elements with the given tag name belonging to the given namespace."},getAttributeNS:{"!type":"fn(ns: string, name: string) -> string","!url":"https://developer.mozilla.org/en/docs/DOM/element.getAttributeNS","!doc":'Returns the string value of the attribute with the specified namespace and name. If the named attribute does not exist, the value returned will either be null or "" (the empty string).'},setAttributeNS:{"!type":"fn(ns: string, name: string, value: string)","!url":"https://developer.mozilla.org/en/docs/DOM/element.setAttributeNS","!doc":"Adds a new attribute or changes the value of an attribute with the given namespace and name."},removeAttributeNS:{"!type":"fn(ns: string, name: string)","!url":"https://developer.mozilla.org/en/docs/DOM/element.removeAttributeNS","!doc":"removeAttributeNS removes the specified attribute from an element."},getAttributeNodeNS:{"!type":"fn(ns: string, name: string) -> +Attr","!url":"https://developer.mozilla.org/en/docs/DOM/element.getAttributeNodeNS","!doc":"Returns the Attr node for the attribute with the given namespace and name."},hasAttribute:{"!type":"fn(name: string) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/element.hasAttribute","!doc":"hasAttribute returns a boolean value indicating whether the specified element has the specified attribute or not."},hasAttributeNS:{"!type":"fn(ns: string, name: string) -> bool","!url":"https://developer.mozilla.org/en/docs/DOM/element.hasAttributeNS","!doc":"hasAttributeNS returns a boolean value indicating whether the current element has the specified attribute."},focus:{"!type":"fn()","!url":"https://developer.mozilla.org/en/docs/DOM/element.focus","!doc":"Sets focus on the specified element, if it can be focused."},blur:{"!type":"fn()","!url":"https://developer.mozilla.org/en/docs/DOM/element.blur","!doc":"The blur method removes keyboard focus from the current element."},scrollIntoView:{"!type":"fn(top: bool)","!url":"https://developer.mozilla.org/en/docs/DOM/element.scrollIntoView","!doc":"The scrollIntoView() method scrolls the element into view."},scrollByLines:{"!type":"fn(lines: number)","!url":"https://developer.mozilla.org/en/docs/DOM/window.scrollByLines","!doc":"Scrolls the document by the given number of lines."},scrollByPages:{"!type":"fn(pages: number)","!url":"https://developer.mozilla.org/en/docs/DOM/window.scrollByPages","!doc":"Scrolls the current document by the specified number of pages."},getElementsByClassName:{"!type":"fn(name: string) -> +NodeList","!url":"https://developer.mozilla.org/en/docs/DOM/document.getElementsByClassName","!doc":"Returns a set of elements which have all the given class names. When called on the document object, the complete document is searched, including the root node. You may also call getElementsByClassName on any element; it will return only elements which are descendants of the specified root element with the given class names."},querySelector:{"!type":"fn(selectors: string) -> +Element","!url":"https://developer.mozilla.org/en/docs/DOM/Element.querySelector","!doc":"Returns the first element that is a descendent of the element on which it is invoked that matches the specified group of selectors."},querySelectorAll:{"!type":"fn(selectors: string) -> +NodeList","!url":"https://developer.mozilla.org/en/docs/DOM/Element.querySelectorAll","!doc":"Returns a non-live NodeList of all elements descended from the element on which it is invoked that match the specified group of CSS selectors."},getClientRects:{"!type":"fn() -> [+ClientRect]","!url":"https://developer.mozilla.org/en/docs/DOM/element.getClientRects","!doc":"Returns a collection of rectangles that indicate the bounding rectangles for each box in a client."},getBoundingClientRect:{"!type":"fn() -> +ClientRect","!url":"https://developer.mozilla.org/en/docs/DOM/element.getBoundingClientRect","!doc":"Returns a text rectangle object that encloses a group of text rectangles."},setAttributeNode:{"!type":"fn(attr: +Attr) -> +Attr","!url":"https://developer.mozilla.org/en/docs/DOM/element.setAttributeNode","!doc":"Adds a new Attr node to the specified element."},removeAttributeNode:{"!type":"fn(attr: +Attr) -> +Attr","!url":"https://developer.mozilla.org/en/docs/DOM/element.removeAttributeNode","!doc":"Removes the specified attribute from the current element."},setAttributeNodeNS:{"!type":"fn(attr: +Attr) -> +Attr","!url":"https://developer.mozilla.org/en/docs/DOM/element.setAttributeNodeNS","!doc":"Adds a new namespaced attribute node to an element."},insertAdjacentHTML:{"!type":"fn(position: string, text: string)","!url":"https://developer.mozilla.org/en/docs/DOM/element.insertAdjacentHTML","!doc":"Parses the specified text as HTML or XML and inserts the resulting nodes into the DOM tree at a specified position. It does not reparse the element it is being used on and thus it does not corrupt the existing elements inside the element. This, and avoiding the extra step of serialization make it much faster than direct innerHTML manipulation."},children:{"!type":"+HTMLCollection","!url":"https://developer.mozilla.org/en/docs/DOM/Element.children","!doc":"Returns a collection of child elements of the given element."},childElementCount:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/Element.childElementCount","!doc":"Returns the number of child elements of the given element."},className:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/element.className","!doc":"Gets and sets the value of the class attribute of the specified element."},style:{cssText:"string",alignmentBaseline:"string",background:"string",backgroundAttachment:"string",backgroundClip:"string",backgroundColor:"string",backgroundImage:"string",backgroundOrigin:"string",backgroundPosition:"string",backgroundPositionX:"string",backgroundPositionY:"string",backgroundRepeat:"string",backgroundRepeatX:"string",backgroundRepeatY:"string",backgroundSize:"string",baselineShift:"string",border:"string",borderBottom:"string",borderBottomColor:"string",borderBottomLeftRadius:"string",borderBottomRightRadius:"string",borderBottomStyle:"string",borderBottomWidth:"string",borderCollapse:"string",borderColor:"string",borderImage:"string",borderImageOutset:"string",borderImageRepeat:"string",borderImageSlice:"string",borderImageSource:"string",borderImageWidth:"string",borderLeft:"string",borderLeftColor:"string",borderLeftStyle:"string",borderLeftWidth:"string",borderRadius:"string",borderRight:"string",borderRightColor:"string",borderRightStyle:"string",borderRightWidth:"string",borderSpacing:"string",borderStyle:"string",borderTop:"string",borderTopColor:"string",borderTopLeftRadius:"string",borderTopRightRadius:"string",borderTopStyle:"string",borderTopWidth:"string",borderWidth:"string",bottom:"string",boxShadow:"string",boxSizing:"string",captionSide:"string",clear:"string",clip:"string",clipPath:"string",clipRule:"string",color:"string",colorInterpolation:"string",colorInterpolationFilters:"string",colorProfile:"string",colorRendering:"string",content:"string",counterIncrement:"string",counterReset:"string",cursor:"string",direction:"string",display:"string",dominantBaseline:"string",emptyCells:"string",enableBackground:"string",fill:"string",fillOpacity:"string",fillRule:"string",filter:"string","float":"string",floodColor:"string",floodOpacity:"string",font:"string",fontFamily:"string",fontSize:"string",fontStretch:"string",fontStyle:"string",fontVariant:"string",fontWeight:"string",glyphOrientationHorizontal:"string",glyphOrientationVertical:"string",height:"string",imageRendering:"string",kerning:"string",left:"string",letterSpacing:"string",lightingColor:"string",lineHeight:"string",listStyle:"string",listStyleImage:"string",listStylePosition:"string",listStyleType:"string",margin:"string",marginBottom:"string",marginLeft:"string",marginRight:"string",marginTop:"string",marker:"string",markerEnd:"string",markerMid:"string",markerStart:"string",mask:"string",maxHeight:"string",maxWidth:"string",minHeight:"string",minWidth:"string",opacity:"string",orphans:"string",outline:"string",outlineColor:"string",outlineOffset:"string",outlineStyle:"string",outlineWidth:"string",overflow:"string",overflowWrap:"string",overflowX:"string",overflowY:"string",padding:"string",paddingBottom:"string",paddingLeft:"string",paddingRight:"string",paddingTop:"string",page:"string",pageBreakAfter:"string",pageBreakBefore:"string",pageBreakInside:"string",pointerEvents:"string",position:"string",quotes:"string",resize:"string",right:"string",shapeRendering:"string",size:"string",speak:"string",src:"string",stopColor:"string",stopOpacity:"string",stroke:"string",strokeDasharray:"string",strokeDashoffset:"string",strokeLinecap:"string",strokeLinejoin:"string",strokeMiterlimit:"string",strokeOpacity:"string",strokeWidth:"string",tabSize:"string",tableLayout:"string",textAlign:"string",textAnchor:"string",textDecoration:"string",textIndent:"string",textLineThrough:"string",textLineThroughColor:"string",textLineThroughMode:"string",textLineThroughStyle:"string",textLineThroughWidth:"string",textOverflow:"string",textOverline:"string",textOverlineColor:"string",textOverlineMode:"string",textOverlineStyle:"string",textOverlineWidth:"string",textRendering:"string",textShadow:"string",textTransform:"string",textUnderline:"string",textUnderlineColor:"string",textUnderlineMode:"string",textUnderlineStyle:"string",textUnderlineWidth:"string",top:"string",unicodeBidi:"string",unicodeRange:"string",vectorEffect:"string",verticalAlign:"string",visibility:"string",whiteSpace:"string",width:"string",wordBreak:"string",wordSpacing:"string",wordWrap:"string",writingMode:"string",zIndex:"string",zoom:"string","!url":"https://developer.mozilla.org/en/docs/DOM/element.style","!doc":"Returns an object that represents the element's style attribute."},classList:{"!type":"+DOMTokenList","!url":"https://developer.mozilla.org/en/docs/DOM/element.classList","!doc":"Returns a token list of the class attribute of the element."},contentEditable:{"!type":"bool","!url":"https://developer.mozilla.org/en/docs/DOM/Element.contentEditable","!doc":"Indicates whether or not the element is editable."},firstElementChild:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Element.firstElementChild","!doc":"Returns the element's first child element or null if there are no child elements."},lastElementChild:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Element.lastElementChild","!doc":"Returns the element's last child element or null if there are no child elements."},nextElementSibling:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Element.nextElementSibling","!doc":"Returns the element immediately following the specified one in its parent's children list, or null if the specified element is the last one in the list."},previousElementSibling:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/Element.previousElementSibling","!doc":"Returns the element immediately prior to the specified one in its parent's children list, or null if the specified element is the first one in the list."},tabIndex:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.tabIndex","!doc":"Gets/sets the tab order of the current element."},title:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/element.title","!doc":"Establishes the text to be displayed in a 'tool tip' popup when the mouse is over the displayed node."},width:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.offsetWidth","!doc":"Returns the layout width of an element."},height:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.offsetHeight","!doc":"Height of an element relative to the element's offsetParent."},getContext:{"!type":"fn(id: string) -> CanvasRenderingContext2D","!url":"https://developer.mozilla.org/en/docs/DOM/HTMLCanvasElement","!doc":"DOM canvas elements expose the HTMLCanvasElement interface, which provides properties and methods for manipulating the layout and presentation of canvas elements. The HTMLCanvasElement interface inherits the properties and methods of the element object interface."},supportsContext:"fn(id: string) -> bool",oncopy:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.oncopy","!doc":"The oncopy property returns the onCopy event handler code on the current element."},oncut:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.oncut","!doc":"The oncut property returns the onCut event handler code on the current element."},onpaste:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onpaste","!doc":"The onpaste property returns the onPaste event handler code on the current element."},onbeforeunload:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/HTML/Element/body","!doc":"The HTML element represents the main content of an HTML document. There is only one element in a document."},onfocus:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onfocus","!doc":"The onfocus property returns the onFocus event handler code on the current element."},onblur:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onblur","!doc":"The onblur property returns the onBlur event handler code, if any, that exists on the current element."},onchange:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onchange","!doc":"The onchange property sets and returns the onChange event handler code for the current element."},onclick:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onclick","!doc":"The onclick property returns the onClick event handler code on the current element."},ondblclick:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.ondblclick","!doc":"The ondblclick property returns the onDblClick event handler code on the current element."},onmousedown:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onmousedown","!doc":"The onmousedown property returns the onMouseDown event handler code on the current element."},onmouseup:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onmouseup","!doc":"The onmouseup property returns the onMouseUp event handler code on the current element."},onmousewheel:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/Mozilla_event_reference/wheel","!doc":"The wheel event is fired when a wheel button of a pointing device (usually a mouse) is rotated. This event deprecates the legacy mousewheel event."},onmouseover:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onmouseover","!doc":"The onmouseover property returns the onMouseOver event handler code on the current element."},onmouseout:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onmouseout","!doc":"The onmouseout property returns the onMouseOut event handler code on the current element."},onmousemove:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onmousemove","!doc":"The onmousemove property returns the mousemove event handler code on the current element."},oncontextmenu:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/window.oncontextmenu","!doc":'An event handler property for right-click events on the window. Unless the default behavior is prevented, the browser context menu will activate. Note that this event will occur with any non-disabled right-click event and does not depend on an element possessing the "contextmenu" attribute.'},onkeydown:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onkeydown","!doc":"The onkeydown property returns the onKeyDown event handler code on the current element."},onkeyup:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onkeyup","!doc":"The onkeyup property returns the onKeyUp event handler code for the current element."},onkeypress:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onkeypress","!doc":"The onkeypress property sets and returns the onKeyPress event handler code for the current element."},onresize:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onresize","!doc":"onresize returns the element's onresize event handler code. It can also be used to set the code to be executed when the resize event occurs."},onscroll:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/element.onscroll","!doc":"The onscroll property returns the onScroll event handler code on the current element."},ondragstart:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DragDrop/Drag_Operations","!doc":"The following describes the steps that occur during a drag and drop operation."},ondragover:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/Mozilla_event_reference/dragover","!doc":"The dragover event is fired when an element or text selection is being dragged over a valid drop target (every few hundred milliseconds)."},ondragleave:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/Mozilla_event_reference/dragleave","!doc":"The dragleave event is fired when a dragged element or text selection leaves a valid drop target."},ondragenter:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/Mozilla_event_reference/dragenter","!doc":"The dragenter event is fired when a dragged element or text selection enters a valid drop target."},ondragend:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/Mozilla_event_reference/dragend","!doc":"The dragend event is fired when a drag operation is being ended (by releasing a mouse button or hitting the escape key)."},ondrag:{"!type":"?","!url":"https://developer.mozilla.org/en/docs/DOM/Mozilla_event_reference/drag","!doc":"The drag event is fired when an element or text selection is being dragged (every few hundred milliseconds)."},offsetTop:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.offsetTop","!doc":"Returns the distance of the current element relative to the top of the offsetParent node."},offsetLeft:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.offsetLeft","!doc":"Returns the number of pixels that the upper left corner of the current element is offset to the left within the offsetParent node."},offsetHeight:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.offsetHeight","!doc":"Height of an element relative to the element's offsetParent."},offsetWidth:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.offsetWidth","!doc":"Returns the layout width of an element."},scrollTop:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.scrollTop","!doc":"Gets or sets the number of pixels that the content of an element is scrolled upward."},scrollLeft:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.scrollLeft","!doc":"Gets or sets the number of pixels that an element's content is scrolled to the left."},scrollHeight:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.scrollHeight","!doc":"Height of the scroll view of an element; it includes the element padding but not its margin."},scrollWidth:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.scrollWidth","!doc":"Read-only property that returns either the width in pixels of the content of an element or the width of the element itself, whichever is greater."},clientTop:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.clientTop","!doc":"The width of the top border of an element in pixels. It does not include the top margin or padding. clientTop is read-only."},clientLeft:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.clientLeft","!doc":"The width of the left border of an element in pixels. It includes the width of the vertical scrollbar if the text direction of the element is right-to-left and if there is an overflow causing a left vertical scrollbar to be rendered. clientLeft does not include the left margin or the left padding. clientLeft is read-only."},clientHeight:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.clientHeight","!doc":"Returns the inner height of an element in pixels, including padding but not the horizontal scrollbar height, border, or margin."},clientWidth:{"!type":"number","!url":"https://developer.mozilla.org/en/docs/DOM/element.clientWidth","!doc":"The inner width of an element in pixels. It includes padding but not the vertical scrollbar (if present, if rendered), border or margin."},innerHTML:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/element.innerHTML","!doc":"Sets or gets the HTML syntax describing the element's descendants."},createdCallback:{"!type":"fn()","!url":"http://w3c.github.io/webcomponents/spec/custom/index.html#dfn-created-callback","!doc":"This callback is invoked after custom element instance is created and its definition is registered. The actual timing of this callback is defined further in this specification."},attachedCallback:{"!type":"fn()","!url":"http://w3c.github.io/webcomponents/spec/custom/index.html#dfn-entered-view-callback","!doc":"Unless specified otherwise, this callback must be enqueued whenever custom element is inserted into a document and this document has a browsing context."},detachedCallback:{"!type":"fn()","!url":"http://w3c.github.io/webcomponents/spec/custom/index.html#dfn-left-view-callback","!doc":"Unless specified otherwise, this callback must be enqueued whenever custom element is removed from the document and this document has a browsing context."},attributeChangedCallback:{"!type":"fn()","!url":"http://w3c.github.io/webcomponents/spec/custom/index.html#dfn-attribute-changed-callback","!doc":"Unless specified otherwise, this callback must be enqueued whenever custom element's attribute is added, changed or removed."}},"!url":"https://developer.mozilla.org/en/docs/DOM/Element","!doc":"Represents an element in an HTML or XML document."},Text:{"!type":"fn()",prototype:{"!proto":"Node.prototype",wholeText:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/Text.wholeText","!doc":"Returns all text of all Text nodes logically adjacent to the node. The text is concatenated in document order. This allows you to specify any text node and obtain all adjacent text as a single string."},splitText:{"!type":"fn(offset: number) -> +Text","!url":"https://developer.mozilla.org/en/docs/DOM/Text.splitText","!doc":"Breaks the Text node into two nodes at the specified offset, keeping both nodes in the tree as siblings."}},"!url":"https://developer.mozilla.org/en/docs/DOM/Text","!doc":"In the DOM, the Text interface represents the textual content of an Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children."},Document:{"!type":"fn()",prototype:{"!proto":"Node.prototype",activeElement:{"!type":"+Element","!url":"https://developer.mozilla.org/en/docs/DOM/document.activeElement","!doc":"Returns the currently focused element, that is, the element that will get keystroke events if the user types any. This attribute is read only."},compatMode:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/document.compatMode","!doc":"Indicates whether the document is rendered in Quirks mode or Strict mode."},designMode:{"!type":"string","!url":"https://developer.mozilla.org/en/docs/DOM/document.designMode","!doc":"Can be used to make any document editable, for example in a