diff --git a/vscode-extensions/commons/commons-maven/src/main/java/org/springframework/ide/vscode/commons/maven/java/MavenJavaProject.java b/vscode-extensions/commons/commons-maven/src/main/java/org/springframework/ide/vscode/commons/maven/java/MavenJavaProject.java index 98005bf58..211a146ba 100644 --- a/vscode-extensions/commons/commons-maven/src/main/java/org/springframework/ide/vscode/commons/maven/java/MavenJavaProject.java +++ b/vscode-extensions/commons/commons-maven/src/main/java/org/springframework/ide/vscode/commons/maven/java/MavenJavaProject.java @@ -11,7 +11,6 @@ package org.springframework.ide.vscode.commons.maven.java; import java.io.File; -import java.net.URI; import java.nio.file.Path; import java.nio.file.Paths; @@ -67,7 +66,7 @@ public class MavenJavaProject implements IJavaProject { } public Path getOutputFolder() { - return Paths.get(URI.create(mavenProject.getBuild().getOutputDirectory())); + return Paths.get(new File(mavenProject.getBuild().getOutputDirectory()).toURI()); } } diff --git a/vscode-extensions/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java b/vscode-extensions/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java index c7ca212e2..c4d43c09a 100644 --- a/vscode-extensions/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java +++ b/vscode-extensions/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java @@ -1,6 +1,8 @@ package org.springframework.ide.vscode.languageserver.testharness; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import java.io.File; import java.nio.charset.Charset; @@ -256,6 +258,8 @@ public class LanguageServerHarness { public void assertCompletion(String textBefore, String expectTextAfter) throws Exception { Editor editor = newEditor(textBefore); + assertNotNull(editor.getCompletions()); + assertFalse(editor.getCompletions().isEmpty()); CompletionItem completion = editor.getFirstCompletion(); editor.apply(completion); assertEquals(expectTextAfter, editor.getText()); diff --git a/vscode-extensions/commons/project-test-harness/src/main/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java b/vscode-extensions/commons/project-test-harness/src/main/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java index 8c52d3b94..68b0230e6 100644 --- a/vscode-extensions/commons/project-test-harness/src/main/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java +++ b/vscode-extensions/commons/project-test-harness/src/main/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.springframework.ide.vscode.project.harness; +import java.net.URISyntaxException; +import java.net.URL; import java.nio.file.Path; import java.nio.file.Paths; @@ -43,7 +45,7 @@ public class ProjectsHarness { public IJavaProject project(ProjectType type, String name) throws Exception { return cache.get(type + "/" + name, () -> { - Path testProjectPath = Paths.get(ProjectsHarness.class.getResource("/" + name).toURI()); + Path testProjectPath = getProjectPath(name); switch (type) { case MAVEN: return new MavenJavaProject(testProjectPath.resolve(MavenCore.POM_XML).toFile()); @@ -55,6 +57,12 @@ public class ProjectsHarness { } }); } + + protected Path getProjectPath(String name) throws URISyntaxException { + URL sourceLocation = ProjectsHarness.class.getProtectionDomain().getCodeSource().getLocation(); + // file:/Users/aboyko/git/sts4/vscode-extensions/commons/project-test-harness/target/project-test-harness-0.0.1-SNAPSHOT.jar + return Paths.get(sourceLocation.toURI()).getParent().getParent().resolve("test-projects").resolve(name); + } public MavenJavaProject mavenProject(String name) throws Exception { return (MavenJavaProject) project(ProjectType.MAVEN, name); diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.jar b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.jar rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/.mvn/wrapper/maven-wrapper.jar diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.properties b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.properties rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/.mvn/wrapper/maven-wrapper.properties diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/mvnw b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/mvnw similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/mvnw rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/mvnw diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/mvnw.cmd b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/mvnw.cmd similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/mvnw.cmd rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/mvnw.cmd diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/pom.xml new file mode 100644 index 000000000..92c921a66 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/pom.xml @@ -0,0 +1,66 @@ + + + 4.0.0 + + org.test + demo-live-metadata + 0.0.1-SNAPSHOT + jar + + demo + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 1.2.0.RELEASE + + + + + + libs-snapshot + http://repo.spring.io/libs-snapshot + + true + + + + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.boot + spring-boot-configuration-processor + 1.2.1.BUILD-SNAPSHOT + true + + + + + UTF-8 + demo.Application + 1.7 + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/java/demo/Application.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/java/demo/Application.java new file mode 100644 index 000000000..7ac985beb --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/java/demo/Application.java @@ -0,0 +1,16 @@ +package demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan +@EnableAutoConfiguration +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/java/demo/FooProperties.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/java/demo/FooProperties.java new file mode 100644 index 000000000..756830a28 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/java/demo/FooProperties.java @@ -0,0 +1,44 @@ +package demo; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * + * @author Stephane Nicoll + */ +@ConfigurationProperties("foo") +public class FooProperties { + + private String name; + + private String description; + + /** + * A nice counter description. + */ + private Integer counter = 0; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getCounter() { + return counter; + } + + public void setCounter(Integer counter) { + this.counter = counter; + } +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/resources/application.properties b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/resources/application.properties new file mode 100644 index 000000000..194512978 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/main/resources/application.properties @@ -0,0 +1,5 @@ +foo.name=test + +foo.description=a description + +foo \ No newline at end of file diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/test/java/demo/ApplicationTests.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/test/java/demo/ApplicationTests.java new file mode 100644 index 000000000..bcd0010ef --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.0-properties-live-metadta/src/test/java/demo/ApplicationTests.java @@ -0,0 +1,16 @@ +package demo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = Application.class) +public class ApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.jar b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.jar rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/.mvn/wrapper/maven-wrapper.jar diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.properties b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.properties rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/.mvn/wrapper/maven-wrapper.properties diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/mvnw b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/mvnw similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/mvnw rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/mvnw diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/mvnw.cmd b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/mvnw.cmd similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/mvnw.cmd rename to vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/mvnw.cmd diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/pom.xml new file mode 100644 index 000000000..d92c1a510 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/pom.xml @@ -0,0 +1,90 @@ + + + 4.0.0 + + org.test + demo + 0.0.1-SNAPSHOT + jar + + demo + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 1.2.1.RELEASE + + + + + UTF-8 + demo.DemoApplication + 1.7 + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-configuration-processor + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + + + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/DemoApplication.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/DemoApplication.java new file mode 100644 index 000000000..0ec9b8cd4 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/DemoApplication.java @@ -0,0 +1,32 @@ +package demo; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; + +@SpringBootApplication +@EnableConfigurationProperties +public class DemoApplication implements CommandLineRunner { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + + @Autowired + FooProperties props; + + @Override + public void run(String... args) throws Exception { + System.out.println("Hello world!"); + for (Foo foo : props.getList()) { + System.out.println("==================="); + System.out.println("name = "+foo.getName()); + System.out.println("desc = "+foo.getDescription()); + for (String string : foo.getRoles()) { + System.out.println(" role: "+string); + } + } + } +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/Foo.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/Foo.java new file mode 100644 index 000000000..6c2dd2328 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/Foo.java @@ -0,0 +1,31 @@ +package demo; + +import java.util.List; + +public class Foo { + + private String name; + private String description; + private List roles; + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + + public List getRoles() { + return roles; + } + public void setRoles(List roles) { + this.roles = roles; + } + +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/FooProperties.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/FooProperties.java new file mode 100644 index 000000000..3fe1cb83f --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/java/demo/FooProperties.java @@ -0,0 +1,23 @@ +package demo; + +import java.util.List; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@ConfigurationProperties("volder.foo") +@Configuration +public class FooProperties { + + private List list; + + public List getList() { + return list; + } + + public void setList(List foo) { + this.list = foo; + } + +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/resources/application.properties b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/resources/application.properties new file mode 100644 index 000000000..faa4d251d --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/main/resources/application.properties @@ -0,0 +1,8 @@ +logging.level.com.acme.bragger=INFO + +volder.foo.list[0].name=Kris +volder.foo.list[0].description=Good Guy +volder.foo.list[0].bogus=bad +volder.foo.list[0].roles[0]=Bad-ass + + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/test/java/demo/DemoApplicationTests.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/test/java/demo/DemoApplicationTests.java new file mode 100644 index 000000000..ad7230bb3 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.2.1-app-properties-list-of-pojo/src/test/java/demo/DemoApplicationTests.java @@ -0,0 +1,16 @@ +package demo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = DemoApplication.class) +public class DemoApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.gitignore b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.gitignore new file mode 100644 index 000000000..f75fb4133 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.gitignore @@ -0,0 +1,5 @@ +/.apt_generated/ +.project +.factorypath +.classpath +.settings \ No newline at end of file diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.mvn/wrapper/maven-wrapper.jar b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 000000000..c6feb8bb6 Binary files /dev/null and b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.mvn/wrapper/maven-wrapper.jar differ diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.mvn/wrapper/maven-wrapper.properties b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 000000000..6637cedb2 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip \ No newline at end of file diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/mvnw b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/mvnw new file mode 100755 index 000000000..6ecc150ae --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/mvnw @@ -0,0 +1,236 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # + # Look for the Apple JDKs first to preserve the existing behaviour, and then look + # for the new JDKs provided by Oracle. + # + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then + # + # Oracle JDKs + # + export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then + # + # Apple JDKs + # + export JAVA_HOME=`/usr/libexec/java_home` + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + local basedir=$(pwd) + local wdir=$(pwd) + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + wdir=$(cd "$wdir/.."; pwd) + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in $@ +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/mvnw.cmd b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/mvnw.cmd new file mode 100644 index 000000000..8bb827541 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/mvnw.cmd @@ -0,0 +1,146 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %* + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" + +set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in %* +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/pom.xml new file mode 100644 index 000000000..e9da3684a --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + + com.example + demo-sts-4335 + 0.0.1-SNAPSHOT + jar + + demo + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 1.3.3.RELEASE + + + + + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/DemoApplication.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/DemoApplication.java new file mode 100644 index 000000000..6fce78941 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/DemoApplication.java @@ -0,0 +1,12 @@ +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/Runner.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/Runner.java new file mode 100644 index 000000000..c419abba1 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/Runner.java @@ -0,0 +1,37 @@ +package com.example; + +import java.util.Map.Entry; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +import com.wellsfargo.lendingplatform.web.config.TestObjectWithList; + +@Component +public class Runner implements CommandLineRunner { + + @Autowired + TestMap props; + + @Override + public void run(String... arg0) throws Exception { + p(">>> test map"); + for (Entry e : props.getTestMap().entrySet()) { + p(e.getKey() + " -> "); + String[] strings = e.getValue().getStringList(); + if (strings==null) { + p(" null"); + } else { + for (String string : strings) { + p(" '"+string+"'"); + } + } + } + } + + private void p(String string) { + System.out.println(string); + } + +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/TestMap.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/TestMap.java new file mode 100644 index 000000000..f896c9f18 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/example/TestMap.java @@ -0,0 +1,25 @@ +package com.example; + +import java.util.LinkedHashMap; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import com.wellsfargo.lendingplatform.web.config.TestObjectWithList; + +@Component +@ConfigurationProperties +public class TestMap { + + private LinkedHashMap testMap; + + public LinkedHashMap getTestMap() { + return testMap; + } + + public void setTestMap(LinkedHashMap testMap) { + this.testMap = testMap; + } + +} + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/wellsfargo/lendingplatform/web/config/Color.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/wellsfargo/lendingplatform/web/config/Color.java new file mode 100644 index 000000000..d808bd990 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/wellsfargo/lendingplatform/web/config/Color.java @@ -0,0 +1,5 @@ +package com.wellsfargo.lendingplatform.web.config; + +public enum Color { + RED, GREEN, BLUE +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/wellsfargo/lendingplatform/web/config/TestObjectWithList.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/wellsfargo/lendingplatform/web/config/TestObjectWithList.java new file mode 100644 index 000000000..d73447268 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/java/com/wellsfargo/lendingplatform/web/config/TestObjectWithList.java @@ -0,0 +1,33 @@ +package com.wellsfargo.lendingplatform.web.config; + +import java.util.List; + +public class TestObjectWithList { + private String[] stringList; + private Color[] colorList; + private List list; + + public String[] getStringList() { + return stringList; + } + + public void setStringList(String[] stringList) { + this.stringList = stringList; + } + + public Color[] getColorList() { + return colorList; + } + + public void setColorList(Color[] colorList) { + this.colorList = colorList; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } +} \ No newline at end of file diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/resources/application.properties b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/resources/application.properties new file mode 100644 index 000000000..73b813d27 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/main/resources/application.properties @@ -0,0 +1,4 @@ +test-map.test-list-object.string-list[0]=not-a-color +test-map.test-list-object.string-list[1]=RED +test-map.test-list-object.string-list[2]=GREEN +test-map.some-key.list[0]=something diff --git a/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/test/java/com/example/DemoApplicationTests.java b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/test/java/com/example/DemoApplicationTests.java new file mode 100644 index 000000000..0c4330fa0 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/boot-1.3.3-sts-4335/src/test/java/com/example/DemoApplicationTests.java @@ -0,0 +1,18 @@ +package com.example; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = DemoApplication.class) +@WebAppConfiguration +public class DemoApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.jar b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.jar rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.jar diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.properties b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.properties rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/.mvn/wrapper/maven-wrapper.properties diff --git a/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/classpath.txt b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/classpath.txt new file mode 100644 index 000000000..21a1209d8 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/classpath.txt @@ -0,0 +1 @@ +/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-starter-web/1.4.0.RELEASE/spring-boot-starter-web-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-starter/1.4.0.RELEASE/spring-boot-starter-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot/1.4.0.RELEASE/spring-boot-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.4.0.RELEASE/spring-boot-autoconfigure-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.4.0.RELEASE/spring-boot-starter-logging-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/ch/qos/logback/logback-classic/1.1.7/logback-classic-1.1.7.jar:/Users/aboyko/.m2/repository/ch/qos/logback/logback-core/1.1.7/logback-core-1.1.7.jar:/Users/aboyko/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.21/jcl-over-slf4j-1.7.21.jar:/Users/aboyko/.m2/repository/org/slf4j/jul-to-slf4j/1.7.21/jul-to-slf4j-1.7.21.jar:/Users/aboyko/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.21/log4j-over-slf4j-1.7.21.jar:/Users/aboyko/.m2/repository/org/yaml/snakeyaml/1.17/snakeyaml-1.17.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/1.4.0.RELEASE/spring-boot-starter-tomcat-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.4/tomcat-embed-core-8.5.4.jar:/Users/aboyko/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.5.4/tomcat-embed-el-8.5.4.jar:/Users/aboyko/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.4/tomcat-embed-websocket-8.5.4.jar:/Users/aboyko/.m2/repository/org/hibernate/hibernate-validator/5.2.4.Final/hibernate-validator-5.2.4.Final.jar:/Users/aboyko/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/Users/aboyko/.m2/repository/org/jboss/logging/jboss-logging/3.3.0.Final/jboss-logging-3.3.0.Final.jar:/Users/aboyko/.m2/repository/com/fasterxml/classmate/1.3.1/classmate-1.3.1.jar:/Users/aboyko/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.8.1/jackson-databind-2.8.1.jar:/Users/aboyko/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.8.1/jackson-annotations-2.8.1.jar:/Users/aboyko/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.1/jackson-core-2.8.1.jar:/Users/aboyko/.m2/repository/org/springframework/spring-web/4.3.2.RELEASE/spring-web-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/spring-aop/4.3.2.RELEASE/spring-aop-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/spring-beans/4.3.2.RELEASE/spring-beans-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/spring-context/4.3.2.RELEASE/spring-context-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/spring-webmvc/4.3.2.RELEASE/spring-webmvc-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/spring-expression/4.3.2.RELEASE/spring-expression-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-starter-test/1.4.0.RELEASE/spring-boot-starter-test-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-test/1.4.0.RELEASE/spring-boot-test-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/1.4.0.RELEASE/spring-boot-test-autoconfigure-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/com/jayway/jsonpath/json-path/2.2.0/json-path-2.2.0.jar:/Users/aboyko/.m2/repository/net/minidev/json-smart/2.2.1/json-smart-2.2.1.jar:/Users/aboyko/.m2/repository/net/minidev/accessors-smart/1.1/accessors-smart-1.1.jar:/Users/aboyko/.m2/repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar:/Users/aboyko/.m2/repository/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar:/Users/aboyko/.m2/repository/junit/junit/4.12/junit-4.12.jar:/Users/aboyko/.m2/repository/org/assertj/assertj-core/2.5.0/assertj-core-2.5.0.jar:/Users/aboyko/.m2/repository/org/mockito/mockito-core/1.10.19/mockito-core-1.10.19.jar:/Users/aboyko/.m2/repository/org/objenesis/objenesis/2.1/objenesis-2.1.jar:/Users/aboyko/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/aboyko/.m2/repository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar:/Users/aboyko/.m2/repository/org/skyscreamer/jsonassert/1.3.0/jsonassert-1.3.0.jar:/Users/aboyko/.m2/repository/org/springframework/spring-core/4.3.2.RELEASE/spring-core-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/spring-test/4.3.2.RELEASE/spring-test-4.3.2.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-configuration-processor/1.4.0.RELEASE/spring-boot-configuration-processor-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/json/json/20140107/json-20140107.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/1.4.0.RELEASE/spring-boot-starter-actuator-1.4.0.RELEASE.jar:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-actuator/1.4.0.RELEASE/spring-boot-actuator-1.4.0.RELEASE.jar \ No newline at end of file diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/mvnw b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/mvnw similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/mvnw rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/mvnw diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/mvnw.cmd b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/mvnw.cmd similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/mvnw.cmd rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/mvnw.cmd diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/pom.xml similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/pom.xml rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/pom.xml diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/java/com/example/Demo1Application.java b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/java/com/example/Demo1Application.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/java/com/example/Demo1Application.java rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/java/com/example/Demo1Application.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/java/com/example/DemoProperties.java b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/java/com/example/DemoProperties.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/java/com/example/DemoProperties.java rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/java/com/example/DemoProperties.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/java/com/example/RestApi.java b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/java/com/example/RestApi.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/java/com/example/RestApi.java rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/java/com/example/RestApi.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/resources/application.properties b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/resources/application.properties similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/main/resources/application.properties rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/main/resources/application.properties diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/test/java/com/example/Demo1ApplicationTests.java b/vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/test/java/com/example/Demo1ApplicationTests.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/custom-properties-boot-project/src/test/java/com/example/Demo1ApplicationTests.java rename to vscode-extensions/commons/project-test-harness/test-projects/custom-properties-boot-project/src/test/java/com/example/Demo1ApplicationTests.java diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/.gitignore b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/.gitignore new file mode 100644 index 000000000..3da7554b4 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/.gitignore @@ -0,0 +1,4 @@ +.classpath +.project +.settings + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/pom.xml new file mode 100644 index 000000000..93f4858f5 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + com.example + demo + 0.0.1-SNAPSHOT + jar + + boot13 + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 1.3.2.RELEASE + + + + + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/java/com/example/Boot13Application.java b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/java/com/example/Boot13Application.java new file mode 100644 index 000000000..044418641 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/java/com/example/Boot13Application.java @@ -0,0 +1,12 @@ +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Boot13Application { + + public static void main(String[] args) { + SpringApplication.run(Boot13Application.class, args); + } +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/application.properties b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/application.properties new file mode 100644 index 000000000..02bef719e --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/application.properties @@ -0,0 +1,3 @@ +logging.pattern.level= + + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/application.yml b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/application.yml new file mode 100644 index 000000000..ac4763779 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/application.yml @@ -0,0 +1,4 @@ +logging: + level: + auto + \ No newline at end of file diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/manifest.yml b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/stuff/test-resource.txt similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/manifest.yml rename to vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/stuff/test-resource.txt diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application-prod.yml b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/stuff/wordlist.txt similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application-prod.yml rename to vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/main/resources/stuff/wordlist.txt diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/test/java/com/example/Boot13ApplicationTests.java b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/test/java/com/example/Boot13ApplicationTests.java new file mode 100644 index 000000000..4d7b35dfc --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-app/src/test/java/com/example/Boot13ApplicationTests.java @@ -0,0 +1,18 @@ +package com.example; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = Boot13Application.class) +@WebAppConfiguration +public class Boot13ApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/pom.xml new file mode 100644 index 000000000..91bed2db1 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/pom.xml @@ -0,0 +1,57 @@ + + + 4.0.0 + + com.example + boot13_with_mongo + 0.0.1-SNAPSHOT + jar + + demo + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 1.3.5.RELEASE + + + + + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-mongodb + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/java/com/example/DemoApplication.java b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/java/com/example/DemoApplication.java new file mode 100644 index 000000000..6fce78941 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/java/com/example/DemoApplication.java @@ -0,0 +1,12 @@ +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/java/com/example/MyController.java b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/java/com/example/MyController.java new file mode 100644 index 000000000..43ff05924 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/java/com/example/MyController.java @@ -0,0 +1,14 @@ +package com.example; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class MyController { + + @RequestMapping("/") + public String hello() { + return "Hello"; + } + +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/resources/application.yml b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/resources/application.yml new file mode 100644 index 000000000..ab7259e3d --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/main/resources/application.yml @@ -0,0 +1,9 @@ +logging: + level: + +spring: + data: + mongodb: + field-naming-strategy: + + \ No newline at end of file diff --git a/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/test/java/com/example/DemoApplicationTests.java b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/test/java/com/example/DemoApplicationTests.java new file mode 100644 index 000000000..c7695cdc2 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/empty-boot-1.3.0-with-mongo/src/test/java/com/example/DemoApplicationTests.java @@ -0,0 +1,16 @@ +package com.example; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = DemoApplication.class) +public class DemoApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.jar b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 000000000..c6feb8bb6 Binary files /dev/null and b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.jar differ diff --git a/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.properties b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 000000000..6637cedb2 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip \ No newline at end of file diff --git a/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/manifest.yml b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/manifest.yml new file mode 100644 index 000000000..e69de29bb diff --git a/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/mvnw b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/mvnw new file mode 100755 index 000000000..6ecc150ae --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/mvnw @@ -0,0 +1,236 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # + # Look for the Apple JDKs first to preserve the existing behaviour, and then look + # for the new JDKs provided by Oracle. + # + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then + # + # Oracle JDKs + # + export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then + # + # Apple JDKs + # + export JAVA_HOME=`/usr/libexec/java_home` + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + local basedir=$(pwd) + local wdir=$(pwd) + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + wdir=$(cd "$wdir/.."; pwd) + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in $@ +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/mvnw.cmd b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/mvnw.cmd new file mode 100644 index 000000000..8bb827541 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/mvnw.cmd @@ -0,0 +1,146 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %* + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" + +set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in %* +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/pom.xml similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/pom.xml rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/pom.xml diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/ClothingSize.java b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/ClothingSize.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/ClothingSize.java rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/ClothingSize.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/Color.java b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/Color.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/Color.java rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/Color.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/ColorData.java b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/ColorData.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/ColorData.java rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/ColorData.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/DemoEnumApplication.java b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/DemoEnumApplication.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/DemoEnumApplication.java rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/DemoEnumApplication.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/FooProperties.java b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/FooProperties.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/java/demo/FooProperties.java rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/java/demo/FooProperties.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application-prod.properties b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application-prod.properties similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application-prod.properties rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application-prod.properties diff --git a/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application-prod.yml b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application-prod.yml new file mode 100644 index 000000000..e69de29bb diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application.properties b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application.properties similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application.properties rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application.properties diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application.yml b/vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application.yml similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/enums-boot-1.3.2-app/src/main/resources/application.yml rename to vscode-extensions/commons/project-test-harness/test-projects/enums-boot-1.3.2-app/src/main/resources/application.yml diff --git a/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.jar b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 000000000..c6feb8bb6 Binary files /dev/null and b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.jar differ diff --git a/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.properties b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 000000000..6637cedb2 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip \ No newline at end of file diff --git a/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/mvnw b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/mvnw new file mode 100755 index 000000000..6ecc150ae --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/mvnw @@ -0,0 +1,236 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # + # Look for the Apple JDKs first to preserve the existing behaviour, and then look + # for the new JDKs provided by Oracle. + # + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then + # + # Oracle JDKs + # + export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then + # + # Apple JDKs + # + export JAVA_HOME=`/usr/libexec/java_home` + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + local basedir=$(pwd) + local wdir=$(pwd) + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + wdir=$(cd "$wdir/.."; pwd) + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in $@ +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/mvnw.cmd b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/mvnw.cmd new file mode 100644 index 000000000..8bb827541 --- /dev/null +++ b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/mvnw.cmd @@ -0,0 +1,146 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %* + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" + +set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in %* +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/pom.xml b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/pom.xml similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/pom.xml rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/pom.xml diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/CamelCaser.java b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/CamelCaser.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/CamelCaser.java rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/CamelCaser.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/DemoApplication.java b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/DemoApplication.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/DemoApplication.java rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/DemoApplication.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/Deprecater.java b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/Deprecater.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/Deprecater.java rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/Deprecater.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/TrickyGetters.java b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/TrickyGetters.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/java/demo/TrickyGetters.java rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/java/demo/TrickyGetters.java diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/resources/application.properties b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/resources/application.properties similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/resources/application.properties rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/resources/application.properties diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/resources/application.yml b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/resources/application.yml similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/main/resources/application.yml rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/main/resources/application.yml diff --git a/vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/test/java/demo/DemoApplicationTests.java b/vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/test/java/demo/DemoApplicationTests.java similarity index 100% rename from vscode-extensions/commons/application-properties-metadata/src/test/resources/tricky-getters-boot-1.3.1-app/src/test/java/demo/DemoApplicationTests.java rename to vscode-extensions/commons/project-test-harness/test-projects/tricky-getters-boot-1.3.1-app/src/test/java/demo/DemoApplicationTests.java diff --git a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/DuplicateNameChecker.java b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/DuplicateNameChecker.java index c6a896763..81fc72ffe 100644 --- a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/DuplicateNameChecker.java +++ b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/DuplicateNameChecker.java @@ -7,7 +7,8 @@ import java.util.HashMap; import java.util.Map; import org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector; -import org.springframework.ide.vscode.java.properties.parser.PropertiesAst.Key; +import org.springframework.ide.vscode.commons.languageserver.util.DocumentRegion; +import org.springframework.ide.vscode.java.properties.parser.PropertiesFileEscapes; /** * Instance of this class is fed the regions of names in a properties file, checks them for duplicates and @@ -24,7 +25,7 @@ public class DuplicateNameChecker { * This is used so that the first occurrence can still be reported retroactively * when the second occurrence is encountered. */ - private Map seen = new HashMap<>(); + private Map seen = new HashMap<>(); IProblemCollector problems; @@ -32,11 +33,11 @@ public class DuplicateNameChecker { this.problems = problems; } - public void check(Key nameRegion) { - String name = nameRegion.decode(); + public void check(DocumentRegion nameRegion) throws Exception { + String name = PropertiesFileEscapes.unescape(nameRegion.toString()); if (!name.isEmpty()) { if (seen.containsKey(name)) { - Key pending = seen.get(name); + DocumentRegion pending = seen.get(name); if (pending!=null) { reportDuplicate(pending); seen.put(name, null); @@ -48,8 +49,8 @@ public class DuplicateNameChecker { } } - private void reportDuplicate(Key nameRegion) { - String decodedKey = nameRegion.decode(); + private void reportDuplicate(DocumentRegion nameRegion) throws Exception { + String decodedKey = PropertiesFileEscapes.unescape(nameRegion.toString()); problems.accept(problem(PROP_DUPLICATE_KEY, "Duplicate property '"+decodedKey+"'", nameRegion)); } diff --git a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/PropertyNavigator.java b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/PropertyNavigator.java index 34cf3617f..4d7238d85 100644 --- a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/PropertyNavigator.java +++ b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/PropertyNavigator.java @@ -1,7 +1,7 @@ package org.springframework.ide.vscode.application.properties.reconcile; -import static org.springframework.ide.vscode.application.properties.reconcile.SpringPropertyProblem.problem; import static org.springframework.ide.vscode.application.properties.metadata.types.TypeUtil.isBracketable; +import static org.springframework.ide.vscode.application.properties.reconcile.SpringPropertyProblem.problem; import java.util.List; @@ -13,10 +13,10 @@ import org.springframework.ide.vscode.application.properties.metadata.types.Type import org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector; import org.springframework.ide.vscode.commons.languageserver.reconcile.ReconcileProblem; import org.springframework.ide.vscode.commons.languageserver.util.BadLocationException; +import org.springframework.ide.vscode.commons.languageserver.util.DocumentRegion; import org.springframework.ide.vscode.commons.languageserver.util.IDocument; import org.springframework.ide.vscode.commons.util.StringUtil; import org.springframework.ide.vscode.commons.util.ValueParser; -import org.springframework.ide.vscode.java.properties.parser.PropertiesAst.Node; /** * Helper class for {@link SpringPropertiesReconcileEngine} and {@link SpringPropertiesCompletionEngine}. @@ -43,16 +43,16 @@ public class PropertyNavigator { private TypeUtil typeUtil; - private Node region; + private DocumentRegion region; private String regionText; - public PropertyNavigator(IDocument doc, IProblemCollector problemCollector, TypeUtil typeUtil, Node region) throws BadLocationException { + public PropertyNavigator(IDocument doc, IProblemCollector problemCollector, TypeUtil typeUtil, DocumentRegion region) throws BadLocationException { this.doc = doc; this.problemCollector = problemCollector==null?IProblemCollector.NULL:problemCollector; this.typeUtil = typeUtil; this.region = region; - this.regionText = doc.get(region.getOffset(), region.getLength()); + this.regionText = doc.get(region.getStart(), region.getLength()); } /** @@ -65,26 +65,26 @@ public class PropertyNavigator { */ public Type navigate(int offset, Type type) { if (type!=null) { - if (offset=0) { return found+offset; @@ -134,7 +134,7 @@ public class PropertyNavigator { Integer.parseInt(indexStr); } catch (Exception e) { problemCollector.accept(problem(ApplicationPropertiesProblemType.PROP_NON_INTEGER_IN_BRACKETS, - "Expecting 'Integer' for '[...]' notation '"+textBetween(region.getOffset(), lbrack)+"'", + "Expecting 'Integer' for '[...]' notation '"+textBetween(region.getStart(), lbrack)+"'", lbrack+1, rbrack-lbrack-1 )); } @@ -183,7 +183,7 @@ public class PropertyNavigator { int keyStart = offset+1; int keyEnd = nextNavOp(".[", offset+1); if (keyEnd<0) { - keyEnd = getEnd(region); + keyEnd = region.getEnd(); } String key = StringUtil.camelCaseToHyphens(textBetween(keyStart, keyEnd)); @@ -232,7 +232,7 @@ public class PropertyNavigator { * @return position of next navop if found, or the position at the end of the region if not found. */ private int nextNavOp(String navops, int pos) { - int end = getEnd(region); + int end = region.getEnd(); while (pos < end && navops.indexOf(getChar(pos))<0) { pos++; } @@ -248,7 +248,4 @@ public class PropertyNavigator { } } - private int getEnd(Node region) { - return region.getOffset()+region.getLength(); - } } diff --git a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertiesReconcileEngine.java b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertiesReconcileEngine.java index 647eca2cf..c5dc5fdcf 100644 --- a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertiesReconcileEngine.java +++ b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertiesReconcileEngine.java @@ -19,8 +19,6 @@ import static org.springframework.ide.vscode.commons.util.StringUtil.commonPrefi import java.util.regex.Pattern; -import javax.inject.Provider; - import org.springframework.ide.vscode.application.properties.metadata.PropertyInfo; import org.springframework.ide.vscode.application.properties.metadata.SpringPropertyIndex; import org.springframework.ide.vscode.application.properties.metadata.SpringPropertyIndexProvider; @@ -32,6 +30,7 @@ import org.springframework.ide.vscode.application.properties.metadata.util.Fuzzy import org.springframework.ide.vscode.application.properties.quickfix.ReplaceDeprecatedPropertyQuickfix; import org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector; import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine; +import org.springframework.ide.vscode.commons.languageserver.util.BadLocationException; import org.springframework.ide.vscode.commons.languageserver.util.DocumentRegion; import org.springframework.ide.vscode.commons.languageserver.util.IDocument; import org.springframework.ide.vscode.commons.util.Log; @@ -39,7 +38,6 @@ import org.springframework.ide.vscode.commons.util.ValueParser; import org.springframework.ide.vscode.java.properties.antlr.parser.AntlrParser; import org.springframework.ide.vscode.java.properties.parser.ParseResults; import org.springframework.ide.vscode.java.properties.parser.Parser; -import org.springframework.ide.vscode.java.properties.parser.PropertiesAst.Key; import org.springframework.ide.vscode.java.properties.parser.PropertiesAst.KeyValuePair; import org.springframework.ide.vscode.java.properties.parser.PropertiesAst.Node; import org.springframework.ide.vscode.java.properties.parser.PropertiesFileEscapes; @@ -53,7 +51,6 @@ import org.springframework.ide.vscode.java.properties.parser.PropertiesFileEscap * * @author Kris De Volder */ -@SuppressWarnings("restriction") public class SpringPropertiesReconcileEngine implements IReconcileEngine { /** @@ -102,29 +99,31 @@ public class SpringPropertiesReconcileEngine implements IReconcileEngine { } results.ast.getNodes(KeyValuePair.class).forEach(pair -> { - Key fullName = pair.getKey(); - String keyName = fullName.decode(); - duplicateNameChecker.check(fullName); - PropertyInfo validProperty = SpringPropertyIndex.findLongestValidProperty(index, keyName); +// Key fullName = pair.getKey(); +// String keyName = fullName.decode(); try { + DocumentRegion propertyNameRegion = createRegion(doc, pair.getKey()); + String keyName = PropertiesFileEscapes.unescape(propertyNameRegion.toString()); + duplicateNameChecker.check(propertyNameRegion); + PropertyInfo validProperty = SpringPropertyIndex.findLongestValidProperty(index, keyName); if (validProperty!=null) { //TODO: Remove last remnants of 'IRegion trimmedRegion' here and replace // it all with just passing around 'fullName' DocumentRegion. This may require changes // in PropertyNavigator (probably these changes are also for the better making it simpler as well) if (validProperty.isDeprecated()) { - problemCollector.accept(problemDeprecated(fullName, validProperty)); + problemCollector.accept(problemDeprecated(propertyNameRegion, validProperty)); } - int offset = validProperty.getId().length() + fullName.getOffset(); - PropertyNavigator navigator = new PropertyNavigator(doc, problemCollector, typeUtilProvider.getTypeUtil(doc), fullName); + int offset = validProperty.getId().length() + propertyNameRegion.getStart(); + PropertyNavigator navigator = new PropertyNavigator(doc, problemCollector, typeUtilProvider.getTypeUtil(doc), propertyNameRegion); Type valueType = navigator.navigate(offset, TypeParser.parse(validProperty.getType())); if (valueType!=null) { reconcileType(doc, valueType, pair.getValue(), problemCollector); } } else { //validProperty==null //The name is invalid, with no 'prefix' of the name being a valid property name. - PropertyInfo similarEntry = index.findLongestCommonPrefixEntry(fullName.toString()); + PropertyInfo similarEntry = index.findLongestCommonPrefixEntry(propertyNameRegion.toString()); CharSequence validPrefix = commonPrefix(similarEntry.getId(), keyName); - problemCollector.accept(problemUnkownProperty(createRegion(doc, fullName), similarEntry, validPrefix)); + problemCollector.accept(problemUnkownProperty(propertyNameRegion, similarEntry, validPrefix)); } //end: validProperty==null } catch (Exception e) { Log.log(e); @@ -137,14 +136,14 @@ public class SpringPropertiesReconcileEngine implements IReconcileEngine { } } - protected SpringPropertyProblem problemDeprecated(Key key, PropertyInfo property) { + protected SpringPropertyProblem problemDeprecated(DocumentRegion region, PropertyInfo property) { SpringPropertyProblem p = problem(PROP_DEPRECATED, TypeUtil.deprecatedPropertyMessage( property.getId(), null, property.getDeprecationReplacement(), property.getDeprecationReason() ), - key + region ); p.setPropertyName(property.getId()); p.setMetadata(property); @@ -180,7 +179,14 @@ public class SpringPropertiesReconcileEngine implements IReconcileEngine { } private DocumentRegion createRegion(IDocument doc, Node value) { - return new DocumentRegion(doc, value.getOffset(), value.getOffset() + value.getLength()); + // Trim trailing spaces (there is no leading white space already) + int length = value.getLength(); + try { + length = doc.get(value.getOffset(), value.getLength()).trim().length(); + } catch (BadLocationException e) { + // ignore + } + return new DocumentRegion(doc, value.getOffset(), value.getOffset() + length); } private void reconcileType(DocumentRegion region, Type expectType, IProblemCollector problems) { diff --git a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertyProblem.java b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertyProblem.java index 1a8b60853..a62e3f7bc 100644 --- a/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertyProblem.java +++ b/vscode-extensions/vscode-application-properties/src/main/java/org/springframework/ide/vscode/application/properties/reconcile/SpringPropertyProblem.java @@ -5,7 +5,6 @@ import org.springframework.ide.vscode.commons.languageserver.quickfix.ProblemFix import org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemType; import org.springframework.ide.vscode.commons.languageserver.reconcile.ReconcileProblemImpl; import org.springframework.ide.vscode.commons.languageserver.util.DocumentRegion; -import org.springframework.ide.vscode.java.properties.parser.PropertiesAst.Node; // TODO: Move to a common project shared between YAML and Properties @@ -23,10 +22,6 @@ public class SpringPropertyProblem extends ReconcileProblemImpl { return new SpringPropertyProblem(type, msg, offset, len); } - public static SpringPropertyProblem problem(ApplicationPropertiesProblemType type, String msg, Node region) { - return new SpringPropertyProblem(type, msg, region.getOffset(), region.getLength()); - } - public static SpringPropertyProblem problem(ApplicationPropertiesProblemType type, String msg, DocumentRegion region) { return new SpringPropertyProblem(type, msg, region.getStart(), region.getLength()); } diff --git a/vscode-extensions/vscode-application-properties/src/test/java/org/springframework/ide/vscode/application/properties/test/ApplicationPropertiesEditorTest.java b/vscode-extensions/vscode-application-properties/src/test/java/org/springframework/ide/vscode/application/properties/test/ApplicationPropertiesEditorTest.java index 25b9edd62..d78c8a358 100644 --- a/vscode-extensions/vscode-application-properties/src/test/java/org/springframework/ide/vscode/application/properties/test/ApplicationPropertiesEditorTest.java +++ b/vscode-extensions/vscode-application-properties/src/test/java/org/springframework/ide/vscode/application/properties/test/ApplicationPropertiesEditorTest.java @@ -30,7 +30,6 @@ import org.springframework.ide.vscode.commons.java.IType; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness; import org.springframework.ide.vscode.properties.editor.test.harness.AbstractPropsEditorTest; import org.springframework.ide.vscode.properties.editor.test.harness.StyledStringMatcher; @@ -53,7 +52,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { editor.assertProblems("key|extraneous input"); } - @Test public void linterRunsOnDocumentOpenAndChange() throws Exception { + public void linterRunsOnDocumentOpenAndChange() throws Exception { Editor editor = newEditor("key"); editor.assertProblems("key|mismatched input"); @@ -67,7 +66,6 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { editor.assertProblems("problem|extraneous input", "another|mismatched input"); } - @Ignore @Test public void testServerPortCompletion() throws Exception { data("server.port", INTEGER, 8080, "Port where server listens for http."); assertCompletion("ser<*>", "server.port=<*>"); @@ -216,13 +214,13 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testPredefinedProject() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo"); + IJavaProject p = createPredefinedMavenProject("tricky-getters-boot-1.3.1-app"); IType type = p.findType("demo.DemoApplication"); assertNotNull(type); } @Ignore @Test public void testEnableApt() throws Throwable { - MavenJavaProject p = createPredefinedMavenProject("demo-live-metadata"); + MavenJavaProject p = createPredefinedMavenProject("boot-1.2.0-properties-live-metadta"); //Check some assumptions about the initial state of the test project (if these checks fail then // the test may be 'vacuous' since the things we are testing for already exist beforehand. @@ -233,7 +231,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testHyperlinkTargets() throws Exception { System.out.println(">>> testHyperlinkTargets"); - IJavaProject p = createPredefinedMavenProject("demo"); + IJavaProject p = createPredefinedMavenProject("tricky-getters-boot-1.3.1-app"); useProject(p); Editor editor = newEditor( @@ -257,7 +255,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testHyperlinkTargetsLoggingLevel() throws Exception { System.out.println(">>> testHyperlinkTargetsLoggingLevel"); - IJavaProject p = createPredefinedMavenProject("demo"); + IJavaProject p = createPredefinedMavenProject("tricky-getters-boot-1.3.1-app"); useProject(p); @@ -270,7 +268,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { System.out.println("<<< testHyperlinkTargetsLoggingLevel"); } - @Ignore @Test public void testReconcile() throws Exception { + @Test public void testReconcile() throws Exception { defaultTestData(); Editor editor = newEditor( "server.port=8080\n" + @@ -288,7 +286,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testReconcilePojoArray() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-list-of-pojo"); + IJavaProject p = createPredefinedMavenProject("boot-1.2.1-app-properties-list-of-pojo"); useProject(p); assertNotNull(p.findType("demo.Foo")); @@ -313,7 +311,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testPojoArrayCompletions() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-list-of-pojo"); + IJavaProject p = createPredefinedMavenProject("boot-1.2.1-app-properties-list-of-pojo"); useProject(p); assertNotNull(p.findType("demo.Foo")); @@ -335,7 +333,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { ); } - @Ignore @Test public void testReconcileArrayNotation() throws Exception { + @Test public void testReconcileArrayNotation() throws Exception { defaultTestData(); Editor editor = newEditor( "borked=bad+\n" + //token problem, to make sure reconciler is working @@ -348,7 +346,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { ); } - @Ignore @Test public void testReconcileArrayNotationError() throws Exception { + @Test public void testReconcileArrayNotationError() throws Exception { defaultTestData(); Editor editor = newEditor( "security.user.role[bork]=foo\n" + @@ -366,7 +364,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { ); } - @Ignore @Test public void testRelaxedNameReconciling() throws Exception { + @Test public void testRelaxedNameReconciling() throws Exception { data("connection.remote-host", "java.lang.String", "service.net", null); data("foo-bar.name", "java.lang.String", null, null); Editor editor = newEditor( @@ -382,7 +380,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { ); } - @Ignore @Test public void testRelaxedNameReconcilingErrors() throws Exception { + @Test public void testRelaxedNameReconcilingErrors() throws Exception { //Tricky with relaxec names: the error positions have to be moved // around because the relaxed names aren't same length as the // canonical ids. @@ -402,7 +400,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { assertCompletion("fooBar<*>", "foo-bar-zor.enabled=<*>"); } - @Ignore @Test public void testReconcileValues() throws Exception { + @Test public void testReconcileValues() throws Exception { defaultTestData(); Editor editor = newEditor( "server.port=badPort\n" + @@ -414,7 +412,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { ); } - @Ignore @Test public void testNoReconcileInterpolatedValues() throws Exception { + @Test public void testNoReconcileInterpolatedValues() throws Exception { defaultTestData(); Editor editor = newEditor( "server.port=${port}\n" + @@ -426,7 +424,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { ); } - @Ignore @Test public void testReconcileValuesWithSpaces() throws Exception { + @Test public void testReconcileValuesWithSpaces() throws Exception { defaultTestData(); Editor editor = newEditor( "server.port = badPort\n" + @@ -442,7 +440,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } - @Ignore @Test public void testReconcileWithExtraSpaces() throws Exception { + @Test public void testReconcileWithExtraSpaces() throws Exception { defaultTestData(); //Same test as previous but with extra spaces to make things more confusing Editor editor = newEditor( @@ -461,7 +459,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumPropertyCompletionInsideCommaSeparateList() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -484,7 +482,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumPropertyCompletion() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -503,7 +501,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testEnumPropertyReconciling() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -526,7 +524,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumMapValueCompletion() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -543,7 +541,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumMapValueReconciling() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); data("foo.name-colors", "java.util.Map", null, "Map with colors in its values"); @@ -562,7 +560,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumMapKeyCompletion() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); data("foo.color-names", "java.util.Map", null, "Map with colors in its keys"); @@ -600,7 +598,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumMapKeyReconciling() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -620,7 +618,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testPojoCompletions() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -655,7 +653,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testPojoReconciling() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -690,7 +688,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { //Interpretation of '.' changes depending on the domain type (i.e. when domain type is //is a simple type got which '.' navigation is invalid then the '.' is 'eaten' by the key. - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -730,7 +728,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { //Similar to testMapKeyDotInterpretation but this time maps are not attached to property // directly but via a pojo property - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -756,7 +754,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumsInLowerCaseReconciling() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.ClothingSize")); @@ -800,7 +798,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumsInLowerCaseContentAssist() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.ClothingSize")); @@ -843,7 +841,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testNavigationProposalAfterRelaxedPropertyName() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); @@ -852,7 +850,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testValueProposalAssignedToRelaxedPropertyName() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); @@ -951,7 +949,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testDeprecatedBeanPropertyReconcile() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo"); + IJavaProject p = createPredefinedMavenProject("tricky-getters-boot-1.3.1-app"); useProject(p); data("foo", "demo.Deprecater", null, "A Bean with deprecated properties"); @@ -968,7 +966,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testDeprecatedBeanPropertyCompletions() throws Exception { - IJavaProject p = createPredefinedMavenProject("demo"); + IJavaProject p = createPredefinedMavenProject("tricky-getters-boot-1.3.1-app"); useProject(p); data("foo", "demo.Deprecater", null, "A Bean with deprecated properties"); @@ -1024,7 +1022,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { // map property value // list property value - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); assertCompletionsDisplayString( "spring.http.converters.preferred-json-mapper=<*>\n" , //=> @@ -1034,7 +1032,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testPropertyListHintCompletions() throws Exception { - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); assertCompletion( "management.health.status.ord<*>" @@ -1062,7 +1060,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testPropertyMapValueCompletions() throws Exception { - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); assertCompletionsDisplayString( "logging.level.some: <*>" @@ -1090,7 +1088,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testPropertyMapKeyCompletions() throws Exception { - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); assertCompletionWithLabel( "logging.level.<*>" , //============== @@ -1155,7 +1153,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void test_STS_3335_reconcile_list_nested_in_Map_of_String() throws Exception { Editor editor; - useProject(createPredefinedMavenProject("demo-sts-4335")); + useProject(createPredefinedMavenProject("boot-1.3.3-sts-4335")); editor = newEditor( "test-map.test-list-object.color-list[0]=not-a-color\n"+ @@ -1176,7 +1174,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void test_STS_3335_completions_list_nested_in_Map_of_String() throws Exception { - useProject(createPredefinedMavenProject("demo-sts-4335")); + useProject(createPredefinedMavenProject("boot-1.3.3-sts-4335")); assertCompletions( "test-map.some-string-key.col<*>" @@ -1200,7 +1198,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testSimpleResourceCompletion() throws Exception { CachingValueProvider.TIMEOUT = Duration.ofSeconds(20); - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); data("my.nice.resource", "org.springframework.core.io.Resource", null, "A very nice resource."); @@ -1224,7 +1222,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testClasspathResourceCompletion() throws Exception { CachingValueProvider.TIMEOUT = Duration.ofSeconds(20); - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); data("my.nice.resource", "org.springframework.core.io.Resource", null, "A very nice resource."); data("my.nice.list", "java.util.List", null, "A nice list of resources."); @@ -1294,7 +1292,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testClasspathResourceCompletionInCommaList() throws Exception { CachingValueProvider.TIMEOUT = Duration.ofSeconds(20); - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); data("my.nice.list", "java.util.List", null, "A nice list of resources."); data("my.nice.array", "org.springframework.core.io.Resource[]", null, "A nice array of resources."); @@ -1330,7 +1328,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testClassReferenceCompletion() throws Exception { CachingValueProvider.TIMEOUT = Duration.ofSeconds(20); - useProject(createPredefinedMavenProject("boot13_with_mongo")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-with-mongo")); assertCompletion( "spring.data.mongodb.field-na<*>" @@ -1356,7 +1354,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { ); //Test what happens when 'target' type isn't on the classpath: - useProject(createPredefinedMavenProject("boot13")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-app")); assertCompletionsDisplayString( "spring.data.mongodb.field-naming-strategy=<*>" // => @@ -1366,7 +1364,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testClassReferenceInValueLink() throws Exception { Editor editor; - useProject(createPredefinedMavenProject("boot13_with_mongo")); + useProject(createPredefinedMavenProject("empty-boot-1.3.0-with-mongo")); editor = newEditor( "#stuff\n" + @@ -1386,7 +1384,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testCommaListReconcile() throws Exception { Editor editor; - IJavaProject p = createPredefinedMavenProject("demo-enum"); + IJavaProject p = createPredefinedMavenProject("enums-boot-1.3.2-app"); useProject(p); assertNotNull(p.findType("demo.Color")); @@ -1453,7 +1451,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { editor.assertProblems( " |demo.Color"); } - @Ignore @Test public void testReconcileDuplicateKey() throws Exception { + @Test public void testReconcileDuplicateKey() throws Exception { Editor editor; data("some.property", "java.lang.String", null, "yada"); data("some.other.property", "java.lang.String", null, "yada"); @@ -1504,7 +1502,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumJavaDocShownInValueContentAssist() throws Exception { - useProject(createPredefinedMavenProject("demo-enum")); + useProject(createPredefinedMavenProject("enums-boot-1.3.2-app")); data("my.background", "demo.Color", null, "Color to use as default background."); assertCompletionWithInfoHover( @@ -1517,7 +1515,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { } @Ignore @Test public void testEnumJavaDocShownInValueHover() throws Exception { - useProject(createPredefinedMavenProject("demo-enum")); + useProject(createPredefinedMavenProject("enums-boot-1.3.2-app")); data("my.background", "demo.Color", null, "Color to use as default background."); Editor editor; @@ -1536,7 +1534,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Ignore @Test public void testEnumInValueLink() throws Exception { - useProject(createPredefinedMavenProject("demo-enum")); + useProject(createPredefinedMavenProject("enums-boot-1.3.2-app")); data("my.background", "demo.Color", null, "Color to use as default background."); Editor editor;