diff --git a/src/it/java/org/eclipse/microprofile/starter/APITest.java b/src/it/java/org/eclipse/microprofile/starter/APITest.java index 9badad27..370b22f5 100644 --- a/src/it/java/org/eclipse/microprofile/starter/APITest.java +++ b/src/it/java/org/eclipse/microprofile/starter/APITest.java @@ -51,6 +51,8 @@ public class APITest { final Client client = ClientBuilder.newBuilder().build(); private WebTarget target; + private File v7Matrix; + private File v7MatrixServers; private File v6Matrix; private File v6MatrixServers; private File v5Matrix; @@ -63,6 +65,8 @@ public class APITest { @Before public void before() { target = client.target(API_URL); + v7Matrix = new File(getClass().getClassLoader().getResource("json_examples/v7/supportMatrix.json.segments").getFile()); + v7MatrixServers = new File(getClass().getClassLoader().getResource("json_examples/v7/supportMatrix_servers.json.segments").getFile()); v6Matrix = new File(getClass().getClassLoader().getResource("json_examples/v6/supportMatrix.json.segments").getFile()); v6MatrixServers = new File(getClass().getClassLoader().getResource("json_examples/v6/supportMatrix_servers.json.segments").getFile()); v5Matrix = new File(getClass().getClassLoader().getResource("json_examples/v5/supportMatrix.json.segments").getFile()); @@ -87,6 +91,8 @@ public void test(File segments, String uri) throws FileNotFoundException { @Test @RunAsClient public void supportMatrix() throws FileNotFoundException { + test(v7Matrix, "/7/supportMatrix"); + test(v7MatrixServers, "/7/supportMatrix/servers"); test(v6Matrix, "/6/supportMatrix"); test(v6MatrixServers, "/6/supportMatrix/servers"); test(v5Matrix, "/5/supportMatrix"); diff --git a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/MicroprofileSpec.java b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/MicroprofileSpec.java index 113f1203..857027df 100755 --- a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/MicroprofileSpec.java +++ b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/MicroprofileSpec.java @@ -35,42 +35,42 @@ public enum MicroprofileSpec { Arrays.asList(MicroProfileVersion.MP12, MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50)) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50, MicroProfileVersion.MP60)) , FAULT_TOLERANCE("fault_tolerance", "Fault Tolerance", "Fault Tolerance - all about bulkheads, timeouts, circuit breakers, retries, etc. for your microservices", "https://github.com/eclipse/microprofile-fault-tolerance/releases/tag/%s", Arrays.asList(MicroProfileVersion.MP12, MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50)) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50, MicroProfileVersion.MP60)) , JWT_AUTH("JWT_auth", "JWT Auth", "JWT Propagation - propagate security across your microservices", "https://github.com/eclipse/microprofile-jwt-auth/releases/tag/%s", Arrays.asList(MicroProfileVersion.MP12, MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50)) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50, MicroProfileVersion.MP60)) , METRICS("metrics", "Metrics", "Metrics - Gather and create operational and business measurements for your microservices", "https://github.com/eclipse/microprofile-metrics/releases/tag/%s", Arrays.asList(MicroProfileVersion.MP12, MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50)) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50, MicroProfileVersion.MP60)) , HEALTH_CHECKS("health_checks", "Health", "Health - Verify the health of your microservices with custom verifications", "https://github.com/eclipse/microprofile-metrics/releases/tag/%s", Arrays.asList(MicroProfileVersion.MP12, MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50)) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50, MicroProfileVersion.MP60)) , OPEN_API("open_API", "OpenAPI", "Open API - Generate OpenAPI-compliant API documentation for your microservices", "https://github.com/eclipse/microprofile-open-api/releases/tag/%s", Arrays.asList(MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50)) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50, MicroProfileVersion.MP60)) , OPEN_TRACING("open_tracing", "OpenTracing", "Open Tracing - trace the flow of requests as they traverse your microservices", "https://github.com/eclipse/microprofile-opentracing/releases/tag/%s", @@ -84,7 +84,10 @@ public enum MicroprofileSpec { Arrays.asList(MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50)) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50, MicroProfileVersion.MP60)) + ,TELEMETRY("telemetry","Telemetry" + ,"Telemetry - pulls in OpenTelemetry Tracing and integrate with CDI and Jakarta RESTful Web Services", + "https://github.com/eclipse/microprofile-telemetry/releases/tag/%s", Arrays.asList( MicroProfileVersion.MP60)); ; // @formatter:on diff --git a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/SupportedServer.java b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/SupportedServer.java index 16d349bd..4545dc24 100755 --- a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/SupportedServer.java +++ b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/SupportedServer.java @@ -68,7 +68,7 @@ public enum SupportedServer { Arrays.asList(MicroProfileVersion.MP12, MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22, MicroProfileVersion.MP30, MicroProfileVersion.MP32, MicroProfileVersion.MP33, - MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50) + MicroProfileVersion.MP40, MicroProfileVersion.MP41, MicroProfileVersion.MP50,MicroProfileVersion.MP60) , "%s.jar" //jarFileName , "" //jarParameters // Hard coded in server.xml since no way of overriding a default. , "9080" //portServiceA @@ -88,7 +88,8 @@ public enum SupportedServer { , PAYARA_MICRO("payara-micro", "Payara Micro", Arrays.asList(MicroProfileVersion.MP12, MicroProfileVersion.MP13, MicroProfileVersion.MP14, MicroProfileVersion.MP20, MicroProfileVersion.MP21, MicroProfileVersion.MP22 - , MicroProfileVersion.MP32, MicroProfileVersion.MP33, MicroProfileVersion.MP40) + , MicroProfileVersion.MP32, MicroProfileVersion.MP33, MicroProfileVersion.MP40, + MicroProfileVersion.MP50) , "%s-microbundle.jar" //jarFileName , "--port 8180" //jarParameters , "8080" //portServiceA diff --git a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionSpecMatrix.java b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionSpecMatrix.java index 5aea7070..4227fadc 100644 --- a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionSpecMatrix.java +++ b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionSpecMatrix.java @@ -164,6 +164,16 @@ private void init() { .add(MicroprofileSpec.REST_CLIENT, "3.0.0") .add(MicroprofileSpec.OPEN_TRACING, "3.0") .add(MicroprofileSpec.METRICS, "4.0")); + data.put(MicroProfileVersion.MP60, + new EnumMapBuilder() + .add(MicroprofileSpec.CONFIG, "3.0") + .add(MicroprofileSpec.FAULT_TOLERANCE, "4.0") + .add(MicroprofileSpec.JWT_AUTH, "2.1") + .add(MicroprofileSpec.HEALTH_CHECKS, "4.0") + .add(MicroprofileSpec.OPEN_API, "3.1") + .add(MicroprofileSpec.REST_CLIENT, "3.0.0") + .add(MicroprofileSpec.METRICS, "5.0") + .add(MicroprofileSpec.TELEMETRY,"1.0")); } public Map getSpecData(MicroProfileVersion version) { diff --git a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionStandaloneMatrix.java b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionStandaloneMatrix.java index 91c178f9..8884963e 100644 --- a/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionStandaloneMatrix.java +++ b/src/main/java/org/eclipse/microprofile/starter/addon/microprofile/servers/model/VersionStandaloneMatrix.java @@ -73,6 +73,9 @@ private void init() { data.put(MicroProfileVersion.MP50, new VersionStandaloneMatrix.EnumMapBuilder() .add(StandaloneMPSpec.GRAPHQL, "2.0")); + data.put(MicroProfileVersion.MP60, + new VersionStandaloneMatrix.EnumMapBuilder() + .add(StandaloneMPSpec.GRAPHQL, "2.0")); } public Map getSpecData(MicroProfileVersion version) { diff --git a/src/main/java/org/eclipse/microprofile/starter/core/TemplateVariableProvider.java b/src/main/java/org/eclipse/microprofile/starter/core/TemplateVariableProvider.java index 70a75303..943985cf 100755 --- a/src/main/java/org/eclipse/microprofile/starter/core/TemplateVariableProvider.java +++ b/src/main/java/org/eclipse/microprofile/starter/core/TemplateVariableProvider.java @@ -64,13 +64,20 @@ public Map determineVariables(JessieModel model) { result.put("se_version", seVersion.getCode()); } - if (model.getSpecification().getMicroProfileVersion() == MicroProfileVersion.MP50) { + if (model.getSpecification().getMicroProfileVersion() == MicroProfileVersion.MP50 + || model.getSpecification().getMicroProfileVersion() == MicroProfileVersion.MP60) { result.put("jakarta_ee_package", "jakarta"); } else { result.put("jakarta_ee_package", "javax"); } + if (model.getSpecification().getMicroProfileVersion() == MicroProfileVersion.MP50 + || model.getSpecification().getMicroProfileVersion() == MicroProfileVersion.MP60) { + result.put("microprofile_health", "Liveness"); + } else { + result.put("microprofile_health", "Health"); + } return result; } } diff --git a/src/main/java/org/eclipse/microprofile/starter/core/model/MicroProfileVersion.java b/src/main/java/org/eclipse/microprofile/starter/core/model/MicroProfileVersion.java index 7f319013..e8230e24 100755 --- a/src/main/java/org/eclipse/microprofile/starter/core/model/MicroProfileVersion.java +++ b/src/main/java/org/eclipse/microprofile/starter/core/model/MicroProfileVersion.java @@ -32,6 +32,7 @@ public enum MicroProfileVersion { // Order is important as it determines the order in the Dropdown on the screen. // @formatter:off NONE(null, "") + , MP60("6.0", "MP 6.0", Collections.singletonList(Constants.MP6X_ALTERNATIVE)) , MP50("5.0", "MP 5.0", Collections.singletonList(Constants.MP5X_ALTERNATIVE)) , MP41("4.1", "MP 4.1", Collections.singletonList(Constants.MP41_ALTERNATIVE)) , MP40("4.0", "MP 4.0", "4.0.1", Collections.singletonList(Constants.MP3X_ALTERNATIVE)) @@ -101,5 +102,7 @@ public static class Constants { public static final String MP3X_ALTERNATIVE = "mp3_x"; public static final String MP41_ALTERNATIVE = "mp4_1"; public static final String MP5X_ALTERNATIVE = "mp5_x"; + public static final String MP6X_ALTERNATIVE = "mp6_x"; + public static final String MP61_ALTERNATIVE = "mp6_1"; } } diff --git a/src/main/java/org/eclipse/microprofile/starter/rest/APIEndpointV7.java b/src/main/java/org/eclipse/microprofile/starter/rest/APIEndpointV7.java new file mode 100644 index 00000000..854d1e7a --- /dev/null +++ b/src/main/java/org/eclipse/microprofile/starter/rest/APIEndpointV7.java @@ -0,0 +1,8 @@ +package org.eclipse.microprofile.starter.rest; + +import javax.ws.rs.Path; + +@Path("/7") +public class APIEndpointV7 extends APIEndpointLatest { + // The current latest version +} diff --git a/src/main/resources/files/ServiceHealthCheck.java.tpl b/src/main/resources/files/ServiceHealthCheck.java.tpl index 7a9d5229..0f79ffd1 100755 --- a/src/main/resources/files/ServiceHealthCheck.java.tpl +++ b/src/main/resources/files/ServiceHealthCheck.java.tpl @@ -1,12 +1,14 @@ package [# th:text="${java_package}"/].health; -import org.eclipse.microprofile.health.Health; +import org.eclipse.microprofile.health.[# th:text="${microprofile_health}"/]; import org.eclipse.microprofile.health.HealthCheck; import org.eclipse.microprofile.health.HealthCheckResponse; import [# th:text="${jakarta_ee_package}"/].enterprise.context.ApplicationScoped; -@Health + + +@[# th:text="${microprofile_health}"/] @ApplicationScoped public class ServiceHealthCheck implements HealthCheck { diff --git a/src/test/resources/json_examples/v7/supportMatrix.json.segments b/src/test/resources/json_examples/v7/supportMatrix.json.segments new file mode 100644 index 00000000..97b9ea2c --- /dev/null +++ b/src/test/resources/json_examples/v7/supportMatrix.json.segments @@ -0,0 +1,3 @@ +{"configs":{" +"MP60":{"supportedServers":["]}}, +"descriptions":{"CONFIG":"Configuration - externalize and manage your configuration parameters outside your microservices","OPEN_API":"Open API - Generate OpenAPI-compliant API documentation for your microservices","HEALTH_CHECKS":"Health - Verify the health of your microservices with custom verifications","REST_CLIENT":"Rest Client - Invoke RESTful services in a type-safe manner","FAULT_TOLERANCE":"Fault Tolerance - all about bulkheads, timeouts, circuit breakers, retries, etc. for your microservices","JWT_AUTH":"JWT Propagation - propagate security across your microservices","TELEMETRY":" Telemetry - pulls in Telemetry Tracing and integrate with CDI and Jakarta RESTful Web Services","METRICS":"Metrics - Gather and create operational and business measurements for your microservices","GRAPHQL":"GraphQL - GraphQL is a query language for APIs and a library for fulfilling those queries with your existing data."}} \ No newline at end of file diff --git a/src/test/resources/json_examples/v7/supportMatrix_servers.json.segments b/src/test/resources/json_examples/v7/supportMatrix_servers.json.segments new file mode 100644 index 00000000..48a60b00 --- /dev/null +++ b/src/test/resources/json_examples/v7/supportMatrix_servers.json.segments @@ -0,0 +1 @@ +"LIBERTY":[{"mpVersion":"MP60","mpSpecs":["CONFIG","FAULT_TOLERANCE","JWT_AUTH","METRICS","HEALTH_CHECKS","GRAPHQL","TELEMETRY"],"javaSEVersions":["SE8","SE11"],"buildTools":["MAVEN","GRADLE"]}] \ No newline at end of file