Take superclass into account for properties CTRL-click

See: https://github.com/spring-projects/sts4/issues/326
This commit is contained in:
Kris De Volder
2019-07-25 13:09:17 -07:00
parent ef63d13226
commit bd061a4ec3
10 changed files with 174 additions and 13 deletions

View File

@@ -140,7 +140,7 @@ public class ApplicationYamlEditorTest extends AbstractPropsEditorTest {
);
editor.assertProblems(/*NONE*/);
}
@Test public void bug_158348104() throws Exception {
//See: https://www.pivotaltracker.com/story/show/158348104
data("spring.activemq.close-timeout", "java.time.Duration", null, null);
@@ -542,6 +542,31 @@ public class ApplicationYamlEditorTest extends AbstractPropsEditorTest {
definitionLinkAsserts.assertLinkTargets(editor, "data", project, method("demo.FooProperties", "setData", "demo.ColorData"));
definitionLinkAsserts.assertLinkTargets(editor, "wavelen", project, method("demo.ColorData", "setWavelen", "double"));
}
@Test
public void testInheritedPropertyLinkTarget() throws Exception {
//See: https://github.com/spring-projects/sts4/issues/326
MavenJavaProject project = createPredefinedMavenProject("super-property-nav-sample");
useProject(project);
Editor editor = harness.newEditor(
"initializr:\n" +
" languages:\n" +
" - name: foo\n" +
" id: yada\n" +
" default: false\n" +
" bogus: whatever\n"
);
//io.spring.initializr.metadata.DefaultMetadataElement.setDefault(boolean)
//io.spring.initializr.metadata.MetadataElement.setId(String)
//io.spring.initializr.metadata.MetadataElement.setName(String)
definitionLinkAsserts.assertLinkTargets(editor, "name", project, method("io.spring.initializr.metadata.MetadataElement", "setName", "java.lang.String"));
definitionLinkAsserts.assertLinkTargets(editor, "id", project, method("io.spring.initializr.metadata.MetadataElement", "setId", "java.lang.String"));
definitionLinkAsserts.assertLinkTargets(editor, "default", project, method("io.spring.initializr.metadata.DefaultMetadataElement", "setDefault", "boolean"));
definitionLinkAsserts.assertLinkTargets(editor, "bogus", project /*NONE*/);
}
@Test public void testHyperlinkTargets() throws Exception {
IJavaProject p = createPredefinedMavenProject("tricky-getters-boot-1.3.1-app");

View File

@@ -0,0 +1,31 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>super-property-nav-sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>super-property-nav-sample</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<repositories>
<repository>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>io.spring.initializr</groupId>
<artifactId>initializr-generator-spring</artifactId>
<version>0.8.0.BUILD-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,13 @@
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SuperPropertyNavSampleApplication {
public static void main(String[] args) {
SpringApplication.run(SuperPropertyNavSampleApplication.class, args);
}
}

View File

@@ -0,0 +1,5 @@
initializr:
languages:
- name: ffo
id: yada
default: false

View File

@@ -0,0 +1,16 @@
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SuperPropertyNavSampleApplicationTests {
@Test
public void contextLoads() {
}
}