diff --git a/STATUS.adoc b/STATUS.adoc index 8b1cb2a8..e0228769 100644 --- a/STATUS.adoc +++ b/STATUS.adoc @@ -168,6 +168,12 @@ h|nativeTest | | +|xml-config +|image:https://ci.spring.io/api/v1/teams/spring-aot-smoke-tests/pipelines/spring-aot-smoke-tests-1.0.x/jobs/xml-config-app-test/badge[link=https://ci.spring.io/teams/spring-aot-smoke-tests/pipelines/spring-aot-smoke-tests-1.0.x/jobs/xml-config-app-test] +|image:https://ci.spring.io/api/v1/teams/spring-aot-smoke-tests/pipelines/spring-aot-smoke-tests-1.0.x/jobs/xml-config-native-app-test/badge[link=https://ci.spring.io/teams/spring-aot-smoke-tests/pipelines/spring-aot-smoke-tests-1.0.x/jobs/xml-config-native-app-test] +| +| + 5+^h|Cloud h|Smoke Test diff --git a/boot/xml-config/README.adoc b/boot/xml-config/README.adoc new file mode 100644 index 00000000..52053a1d --- /dev/null +++ b/boot/xml-config/README.adoc @@ -0,0 +1 @@ +Tests if the XML configuration works diff --git a/boot/xml-config/build.gradle b/boot/xml-config/build.gradle new file mode 100644 index 00000000..499b7ed9 --- /dev/null +++ b/boot/xml-config/build.gradle @@ -0,0 +1,14 @@ +plugins { + id 'java' + id 'org.springframework.boot' + id 'org.springframework.aot.smoke-test' + id 'org.graalvm.buildtools.native' +} + +dependencies { + implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)) + implementation("org.springframework.boot:spring-boot-starter") + + appTestImplementation(project(":aot-smoke-test-support")) + appTestImplementation("org.awaitility:awaitility:4.2.0") +} diff --git a/boot/xml-config/src/appTest/java/com/example/xmlconfig/XmlConfigApplicationAotTests.java b/boot/xml-config/src/appTest/java/com/example/xmlconfig/XmlConfigApplicationAotTests.java new file mode 100644 index 00000000..232ea79e --- /dev/null +++ b/boot/xml-config/src/appTest/java/com/example/xmlconfig/XmlConfigApplicationAotTests.java @@ -0,0 +1,23 @@ +package com.example.xmlconfig; + +import java.time.Duration; + +import org.awaitility.Awaitility; +import org.junit.jupiter.api.Test; + +import org.springframework.aot.smoketest.support.assertj.AssertableOutput; +import org.springframework.aot.smoketest.support.junit.ApplicationTest; + +import static org.assertj.core.api.Assertions.assertThat; + +@ApplicationTest +class XmlConfigApplicationAotTests { + + @Test + void expectedLoggingIsProduced(AssertableOutput output) { + Awaitility.await().atMost(Duration.ofSeconds(10)).untilAsserted(() -> { + assertThat(output).hasSingleLineContaining("Hello from MyServiceImpl"); + }); + } + +} diff --git a/boot/xml-config/src/main/java/com/example/xmlconfig/CLR.java b/boot/xml-config/src/main/java/com/example/xmlconfig/CLR.java new file mode 100644 index 00000000..7d7215b1 --- /dev/null +++ b/boot/xml-config/src/main/java/com/example/xmlconfig/CLR.java @@ -0,0 +1,22 @@ +package com.example.xmlconfig; + +import com.example.xmlconfig.service.MyService; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +@Component +public class CLR implements CommandLineRunner { + + private final MyService myService; + + public CLR(MyService myService) { + this.myService = myService; + } + + @Override + public void run(String... args) { + this.myService.sayHello(); + } + +} diff --git a/boot/xml-config/src/main/java/com/example/xmlconfig/XmlConfigApplication.java b/boot/xml-config/src/main/java/com/example/xmlconfig/XmlConfigApplication.java new file mode 100644 index 00000000..1df9e1b8 --- /dev/null +++ b/boot/xml-config/src/main/java/com/example/xmlconfig/XmlConfigApplication.java @@ -0,0 +1,19 @@ +package com.example.xmlconfig; + +import java.util.Collections; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class XmlConfigApplication { + + private static final String CONTEXT_XML = "classpath:/application-context.xml"; + + public static void main(String[] args) { + SpringApplication application = new SpringApplication(); + application.setSources(Collections.singleton(CONTEXT_XML)); + application.run(args); + } + +} diff --git a/boot/xml-config/src/main/java/com/example/xmlconfig/service/MyService.java b/boot/xml-config/src/main/java/com/example/xmlconfig/service/MyService.java new file mode 100644 index 00000000..b06bae85 --- /dev/null +++ b/boot/xml-config/src/main/java/com/example/xmlconfig/service/MyService.java @@ -0,0 +1,7 @@ +package com.example.xmlconfig.service; + +public interface MyService { + + void sayHello(); + +} diff --git a/boot/xml-config/src/main/java/com/example/xmlconfig/service/MyServiceImpl.java b/boot/xml-config/src/main/java/com/example/xmlconfig/service/MyServiceImpl.java new file mode 100644 index 00000000..ba2d5d5a --- /dev/null +++ b/boot/xml-config/src/main/java/com/example/xmlconfig/service/MyServiceImpl.java @@ -0,0 +1,10 @@ +package com.example.xmlconfig.service; + +class MyServiceImpl implements MyService { + + @Override + public void sayHello() { + System.out.println("Hello from MyServiceImpl"); + } + +} diff --git a/boot/xml-config/src/main/resources/application-context.xml b/boot/xml-config/src/main/resources/application-context.xml new file mode 100644 index 00000000..98e2eb74 --- /dev/null +++ b/boot/xml-config/src/main/resources/application-context.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/ci/smoke-tests.yml b/ci/smoke-tests.yml index c87cec5c..7fac1fae 100644 --- a/ci/smoke-tests.yml +++ b/ci/smoke-tests.yml @@ -81,6 +81,9 @@ groups: - name: tracing-brave-zipkin app_test: true test: false + - name: xml-config + app_test: true + test: false - name: cloud smoke_tests: - name: cloud-config-client