From 9338ef5688589b121530faba5ea600729a2f3ca8 Mon Sep 17 00:00:00 2001 From: Dingmeng Xue Date: Wed, 18 Sep 2024 22:24:41 +0800 Subject: [PATCH] Add java 17 sample --- config-server-yaml-samples/README.md | 5 +- java-17-sample/.gitignore | 38 ------------- java-17-sample/README.md | 20 +++---- java-17-sample/pom.xml | 34 +++++++++--- .../azure/asa/sample/EurekaController.java | 54 +++++++++++++++++++ .../com/azure/asa/sample/HelloController.java | 3 +- .../src/main/resources/application.properties | 6 ++- 7 files changed, 97 insertions(+), 63 deletions(-) delete mode 100644 java-17-sample/.gitignore create mode 100644 java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java diff --git a/config-server-yaml-samples/README.md b/config-server-yaml-samples/README.md index 6ed90bd..253f06b 100644 --- a/config-server-yaml-samples/README.md +++ b/config-server-yaml-samples/README.md @@ -20,7 +20,4 @@ The more complex like pattern matching on the application and profile name is al ### Reference -1. https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.1.4.RELEASE/single/spring-cloud-config.html#_git_backend -2. https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.1.4.RELEASE/single/spring-cloud-config.html#_authentication -3. https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.1.4.RELEASE/single/spring-cloud-config.html#_git_ssh_configuration_using_properties -4. https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.1.4.RELEASE/single/spring-cloud-config.html#_pattern_matching_and_multiple_repositories +1. https://docs.spring.io/spring-cloud-config/reference/server/environment-repository/git-backend.html \ No newline at end of file diff --git a/java-17-sample/.gitignore b/java-17-sample/.gitignore deleted file mode 100644 index 5ff6309..0000000 --- a/java-17-sample/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### IntelliJ IDEA ### -.idea/modules.xml -.idea/jarRepositories.xml -.idea/compiler.xml -.idea/libraries/ -*.iws -*.iml -*.ipr - -### Eclipse ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ - -### Mac OS ### -.DS_Store \ No newline at end of file diff --git a/java-17-sample/README.md b/java-17-sample/README.md index 521c169..17a9898 100644 --- a/java-17-sample/README.md +++ b/java-17-sample/README.md @@ -1,25 +1,25 @@ +# Local Development + +```shell +docker run --rm -p 8761:8761 springcloud/demo-eureka-server +``` + # Prepare Variables ```shell -SUBSCRIPTION=6c933f90-8115-4392-90f2-7077c9fa5dbd -LOCATION=westus2 -RESOURCE_GROUP=dixue-asas-vnet-prod -SERVICE_NAME=dixue-asas-vnet-prod +SUBSCRIPTION= +LOCATION= +RESOURCE_GROUP= +SERVICE_NAME= az account set --subscription $SUBSCRIPTION ``` # Standard Plan -## Provision ASA Service Instance -```shell -``` ## Deploy Application ```shell mvn clean package az spring app create -n java17sample --service $SERVICE_NAME -g $RESOURCE_GROUP --runtime-version Java_17 --assign-endpoint true az spring app deploy -n java17sample --service $SERVICE_NAME -g $RESOURCE_GROUP --artifact-path ./target/java-17-sample-1.0-SNAPSHOT.jar ``` -# Enterprise Plan -## Provision ASA Service Instance -## Deploy Application diff --git a/java-17-sample/pom.xml b/java-17-sample/pom.xml index a652304..91d74ee 100644 --- a/java-17-sample/pom.xml +++ b/java-17-sample/pom.xml @@ -8,17 +8,10 @@ java-17-sample 1.0-SNAPSHOT - - org.springframework.boot - spring-boot-starter-parent - 3.3.2 - - 17 17 UTF-8 - 2023.0.3 @@ -42,14 +35,31 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-client + + org.apache.httpcomponents + httpclient + 4.5.14 + + + com.fasterxml.woodstox + woodstox-core + 6.4.0 + + + org.springframework.boot + spring-boot-dependencies + 3.3.3 + pom + import + org.springframework.cloud spring-cloud-dependencies - ${spring-cloud.version} + 2023.0.3 pom import @@ -61,6 +71,14 @@ org.springframework.boot spring-boot-maven-plugin + 3.3.3 + + + + repackage + + + diff --git a/java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java b/java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java new file mode 100644 index 0000000..00f7610 --- /dev/null +++ b/java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java @@ -0,0 +1,54 @@ +package com.azure.asa.sample; + +import com.netflix.appinfo.InstanceInfo; +import com.netflix.discovery.EurekaClient; +import com.netflix.discovery.shared.Application; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Set; + +@RestController +public class EurekaController { + + @Autowired + private EurekaClient discoveryClient; + + @GetMapping("/eureka") + public String getEurekaState() { + StringBuilder sb = new StringBuilder(); + + sb.append("

Known Regions

"); + sb.append("
    "); + Set regions = discoveryClient.getAllKnownRegions(); + for(String region : regions) { + sb.append("
  • ").append(region).append("
  • "); + } + sb.append("
"); + + List apps = discoveryClient.getApplications().getRegisteredApplications(); + sb.append("

Registered Applications

"); + sb.append("
    "); + for(Application app : apps) { + sb.append("

    Application=").append(app.getName()).append("

    "); + sb.append("
      "); + List instances = app.getInstances(); + for(InstanceInfo instance : instances) { + sb.append("
        "); + sb.append("
      • InstanceId=").append(instance.getInstanceId()).append("
      • "); + sb.append("
      • Status=").append(instance.getStatus().toString()).append("
      • "); + sb.append("
      • IPAddr=").append(instance.getIPAddr()).append("
      • "); + sb.append("
      "); + } + sb.append("
    "); + } + sb.append("
"); + + sb.append("

Client Configuration

"); + sb.append("
    ").append(discoveryClient.getEurekaClientConfig().toString()).append("
"); + + return sb.toString(); + } +} diff --git a/java-17-sample/src/main/java/com/azure/asa/sample/HelloController.java b/java-17-sample/src/main/java/com/azure/asa/sample/HelloController.java index 19fa35a..a409f9e 100644 --- a/java-17-sample/src/main/java/com/azure/asa/sample/HelloController.java +++ b/java-17-sample/src/main/java/com/azure/asa/sample/HelloController.java @@ -1,6 +1,5 @@ package com.azure.asa.sample; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,7 +12,7 @@ public class HelloController { @GetMapping("/") public String index() { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.append("

Greetings from Spring Boot!

"); return sb.toString(); diff --git a/java-17-sample/src/main/resources/application.properties b/java-17-sample/src/main/resources/application.properties index 293cf65..cf07a6a 100644 --- a/java-17-sample/src/main/resources/application.properties +++ b/java-17-sample/src/main/resources/application.properties @@ -1,2 +1,6 @@ +spring.application.name=java-17-sample management.endpoints.web.exposure.include=* -management.endpoint.env.show-values=ALWAYS \ No newline at end of file +management.endpoint.env.show-values=ALWAYS +eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ +eureka.client.healthcheck.enabled=true +spring.cloud.config.enabled=false \ No newline at end of file