diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/build.properties b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/build.properties new file mode 100644 index 000000000..64f93a9f0 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/feature.xml b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/feature.xml new file mode 100644 index 000000000..f4ff2fe3b --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/feature.xml @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/pom.xml b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/pom.xml new file mode 100644 index 000000000..30683f0ce --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server.feature/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + org.springframework.boot.ide + org.springframework.boot.ide + 4.0.0-SNAPSHOT + ../pom.xml + + + org.springframework.boot.ide.cloudfoundry.server.feature + eclipse-feature + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + second-generate-p2-metadata + + p2-metadata + + verify + + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.classpath b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.classpath new file mode 100644 index 000000000..eca7bdba8 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.project b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.project new file mode 100644 index 000000000..cb78231dc --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.project @@ -0,0 +1,28 @@ + + + org.springframework.boot.ide.cloudfoundry.server + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.settings/org.eclipse.jdt.core.prefs b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..0c68a61dc --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/META-INF/MANIFEST.MF new file mode 100644 index 000000000..caffeba3a --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Server +Bundle-SymbolicName: org.springframework.boot.ide.cloudfoundry.server +Bundle-Version: 4.0.0.qualifier +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/build.properties b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/build.properties new file mode 100644 index 000000000..34d2e4d2d --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/pom.xml b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/pom.xml new file mode 100644 index 000000000..276937df8 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + + org.springframework.boot.ide + org.springframework.boot.ide + 4.0.0-SNAPSHOT + ../pom.xml + + + org.springframework.boot.ide.cloudfoundry.server + eclipse-plugin + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + second-generate-p2-metadata + + p2-metadata + + verify + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/build.properties b/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/build.properties new file mode 100644 index 000000000..64f93a9f0 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/feature.xml b/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/feature.xml new file mode 100644 index 000000000..47529ea86 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/feature.xml @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/pom.xml b/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/pom.xml new file mode 100644 index 000000000..057d44655 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers.feature/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + org.springframework.boot.ide + org.springframework.boot.ide + 4.0.0-SNAPSHOT + ../pom.xml + + + org.springframework.boot.ide.properties.servers.feature + eclipse-feature + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + second-generate-p2-metadata + + p2-metadata + + verify + + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.classpath b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.classpath new file mode 100644 index 000000000..eca7bdba8 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.project b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.project new file mode 100644 index 000000000..5eed86bdb --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.project @@ -0,0 +1,28 @@ + + + org.springframework.boot.ide.properties.servers + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.settings/org.eclipse.jdt.core.prefs b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..0c68a61dc --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/META-INF/MANIFEST.MF new file mode 100644 index 000000000..e6beb5246 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Servers +Bundle-SymbolicName: org.springframework.boot.ide.properties.servers;singleton:=true +Bundle-Version: 4.0.0.qualifier +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.eclipse.languageserver;bundle-version="0.1.0", + org.eclipse.jdt.launching;bundle-version="3.9.0", + org.eclipse.core.runtime;bundle-version="3.12.0" +Import-Package: org.osgi.framework diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/build.properties b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/build.properties new file mode 100644 index 000000000..3b7db0f69 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + servers/ diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/plugin.xml b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/plugin.xml new file mode 100644 index 000000000..b09031b94 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/plugin.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/pom.xml b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/pom.xml new file mode 100644 index 000000000..fe5bd336b --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + + org.springframework.boot.ide + org.springframework.boot.ide.servers + 4.0.0-SNAPSHOT + ../pom.xml + + + org.springframework.boot.ide.properties.servers + eclipse-plugin + + + + org.springframework.ide.vscode + vscode-application-properties + 0.0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.10 + + + copy + prepare-package + + copy + + + + + org.springframework.ide.vscode + vscode-application-properties + true + ${project.build.directory}/../servers + + + true + true + + + + + + + + diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/Constants.java b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/Constants.java new file mode 100644 index 000000000..7ab0e31d5 --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/Constants.java @@ -0,0 +1,7 @@ +package org.springframework.boot.ide.properties.servers; + +public class Constants { + + public static final String PLUGIN_ID = "org.springframework.boot.ide.properties.servers"; + +} diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/SpringBootPropertiesLanguageServer.java b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/SpringBootPropertiesLanguageServer.java new file mode 100644 index 000000000..791f09b0c --- /dev/null +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/SpringBootPropertiesLanguageServer.java @@ -0,0 +1,83 @@ +/******************************************************************************* + * Copyright (c) 2016 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.boot.ide.properties.servers; + +import java.io.File; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jdt.internal.launching.StandardVMType; +import org.eclipse.jdt.launching.IVMInstall; +import org.eclipse.jdt.launching.JavaRuntime; +import org.eclipse.languageserver.ProcessStreamConnectionProvider; +import org.osgi.framework.Bundle; + +/** + * @author Martin Lippert + */ +@SuppressWarnings("restriction") +public class SpringBootPropertiesLanguageServer extends ProcessStreamConnectionProvider { + + public SpringBootPropertiesLanguageServer() { + List commands = new ArrayList<>(); + commands.add(getJDKLocation()); + commands.add("-jar"); + commands.add(getLanguageServerJARLocation()); + + String workingDir = getWorkingDirLocation(); + + setCommands(commands); + setWorkingDirectory(workingDir); + } + + protected String getJDKLocation() { + IVMInstall jdk = JavaRuntime.getDefaultVMInstall(); + File javaExecutable = StandardVMType.findJavaExecutable(jdk.getInstallLocation()); + return javaExecutable.getAbsolutePath(); + } + + protected String getLanguageServerJARLocation() { + String languageServer = "vscode-application-properties-0.0.1-SNAPSHOT.jar"; + + Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); + File dataFile = bundle.getDataFile(languageServer); + if (!dataFile.exists()) { + try { + copyLanguageServerJAR(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + return dataFile.getAbsolutePath(); + } + + protected String getWorkingDirLocation() { + // TODO: identify a reasonable working directory for the language server process + return System.getProperty("user.dir"); + } + + protected void copyLanguageServerJAR() throws Exception { + Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); + InputStream stream = FileLocator.openStream( bundle, new Path("servers/vscode-application-properties-0.0.1-SNAPSHOT.jar"), false ); + + File dataFile = bundle.getDataFile("vscode-application-properties-0.0.1-SNAPSHOT.jar"); + Files.copy(stream, dataFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + } + +} diff --git a/eclipse-language-servers/pom.xml b/eclipse-language-servers/pom.xml new file mode 100644 index 000000000..eddf3729f --- /dev/null +++ b/eclipse-language-servers/pom.xml @@ -0,0 +1,325 @@ + + + 4.0.0 + + org.springframework.boot.ide + org.springframework.boot.ide.servers + 4.0.0-SNAPSHOT + pom + + + Pivotal Software, Inc. + https://spring.io + + https://spring.io/tools/sts + 2007 + + + 3.0 + + + + + Eclipse Public License + http://www.eclipse.org/legal/epl-v10.html + + + + + org.springframework.boot.ide.properties.servers + + + + + SNAPSHOT + false + Spring Boot IDE Language Server + + + true + pivotal + ~/.keytool/pivotal.jks + + + true + + 0.26.0 + UTF-8 + + + + + e47 + + e4.7 + e4.7 + Oxygen + Oxygen (4.7) + oxygen + 4.7 + e47 + + + + oxygen + p2 + http://download.eclipse.org/releases/oxygen/ + + + staging + p2 + http://download.eclipse.org/staging/oxygen/ + + + oxygen-nightly + p2 + http://download.eclipse.org/eclipse/updates/4.7-N-builds/ + + + orbit + p2 + http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/ + + + + + + build.springsource.com + + + bamboo.buildNumber + + + + + CI-B${bamboo.buildNumber} + true + + + + + + + bamboo-signing + + ${env.bamboo_signing_store_password} + ${env.bamboo_signing_store_password} + + + + + + + + eclipse-language-server-local-repo + p2 + file:///${basedir}/../../../eclipse-language-service/repository/target/repository + + + + + + tycho-snapshots + https://repo.eclipse.org/content/repositories/tycho-snapshots/ + + + + spring-maven-release + Spring Maven Release Repository + http://maven.springframework.org/release + + + springsource-maven-release + SpringSource Maven Release Repository + http://repository.springsource.com/maven/bundles/release + + + sonatype.snapshots + https://repository.sonatype.org/content/repositories/snapshots/ + + + + + + + org.springframework.build.aws + org.springframework.build.aws.maven + 3.1.0.RELEASE + + + + + + + maven-deploy-plugin + 2.5 + + true + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + p2 + + + + + org.apache.maven.plugins + maven-jarsigner-plugin + 1.2 + + + sign + + sign + + + + + ${signing.skip} + ${signing.alias} + ${signing.keystore} + ${signing.store.password} + ${signing.key.password} + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + second-generate-p2-metadata + + p2-metadata + + verify + + + + + + + + + org.eclipse.tycho + tycho-compiler-plugin + ${tycho-version} + + UTF-8 + -err:-forbidden + + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + p2 + consider + true + + ignore + + + + macosx + cocoa + x86_64 + + + win32 + win32 + x86_64 + + + linux + gtk + x86_64 + + + + + java-package + javax.servlet + + eclipse-plugin + javax.servlet + + + + + + + org.eclipse.tycho + tycho-packaging-plugin + ${tycho-version} + + yyyyMMddHHmm-'${p2.qualifier}' + true + + false + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.4.3 + + ISO-8859-1 + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.6 + + + ant-contrib + ant-contrib + 1.0b3 + + + ant + ant + + + + + org.apache.ant + ant-nodeps + 1.8.1 + + + org.springframework.build + org.springframework.build.aws.ant + 3.1.0.RELEASE + + + net.java.dev.jets3t + jets3t + 0.8.1 + + + + + + + + diff --git a/vscode-extensions/vscode-application-properties/scripts/preinstall.sh b/vscode-extensions/vscode-application-properties/scripts/preinstall.sh index 7eed017ff..1bc932668 100755 --- a/vscode-extensions/vscode-application-properties/scripts/preinstall.sh +++ b/vscode-extensions/vscode-application-properties/scripts/preinstall.sh @@ -2,4 +2,4 @@ set -e (cd ../commons-vscode ; npm install) npm install ../commons-vscode -../mvnw -f ../pom.xml -pl vscode-application-properties -am clean package +../mvnw -f ../pom.xml -pl vscode-application-properties -am clean install