# hello-quarkus **Repository Path**: feuyeux/hello-quarkus ## Basic Information - **Project Name**: hello-quarkus - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-03-08 - **Last Updated**: 2024-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: hello ## README ## Hello Quarkus [Quarkus](https://quarkus.io) offers unequaled performance ![](https://quarkus.io/assets/images/quarkus_metrics_graphic_bootmem_wide.png) > https://quarkus.io/assets/images/quarkus_metrics_graphic_bootmem_wide.png ### 1 Prepare GraalVM - [graalvm doc](https://www.graalvm.org/docs/getting-started/macos) - [graalvm releases](https://github.com/graalvm/graalvm-ce-builds/releases) ```bash $ export jdk_version=17 $ export graalvm_version=22.0.0.2 # https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/graalvm-ce-java17-darwin-amd64-22.0.0.2.tar.gz # https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/graalvm-ce-java17-windows-amd64-22.0.0.2.zip $ tar -xzf graalvm-ce-java${jdk_version}-darwin-amd64-${graalvm_version}.tar.gz $ sudo mv graalvm-ce-java${jdk_version}-${graalvm_version} /Library/Java/JavaVirtualMachines # remove the quarantine attribute from the bits $ sudo xattr -r -d com.apple.quarantine /Library/Java/JavaVirtualMachines/graalvm-ce-java${jdk_version}-${graalvm_version} ``` ```bash $ vi ~/.zshrc export GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.0.0.2/Contents/Home export PATH=$GRAALVM_HOME/bin:$PATH alias graal='export JAVA_HOME=$GRAALVM_HOME' ``` ### 2 Quick start [quarkus-cheat-sheet](https://lordofthejars.github.io/quarkus-cheat-sheet) #### Coding ```bash $ mvn io.quarkus:quarkus-maven-plugin:2.7.0.Final:create \ -DprojectGroupId=org.feuyeux.quarkus \ -DprojectArtifactId=quarkus-server \ -DclassName="org.feuyeux.quarkus.hello.GreetingResource" \ -Dpath="/hello" ``` Or generate on ```bash $ cd quarkus-server $ mvn clean package ``` #### Building & Testing ```bash $ mvn compile quarkus:dev: ``` Or: ```bash $ export JAVA_HOME=$GRAALVM_HOME $ mvn clean package -DskipTests $ java -jar target/quarkus-app/quarkus-run.jar ``` ```bash $ curl localhost:9000/hello Hello RESTEasy ``` ```bash $ curl localhost:9000/hello/DwenDwen Good morning DwenDwen ``` #### Building & Testing (in native) ```bash $ $GRAALVM_HOME/bin/gu install native-image $ mvn clean package -Pnative ``` ```bash $ target/hello-quarkus-1.0.0-SNAPSHOT-runner ``` ```bash $ curl localhost:9000/hello/DwenDwen $ curl localhost:9000/hello ``` ### 3 With Dapr [Dapr](https://dapr.io) is a portable, event-driven runtime that makes it easy for any developer to build resilient, stateless and stateful applications that run on the cloud and edge and embraces the diversity of languages and developer frameworks. > https://dapr.io/images/service-invocation.png ```bash # install via bash curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash # install via brew brew install dapr/tap/dapr-cli ``` ```bash # init locally dapr init dapr --version docker ps ``` #### Start service with dapr ```bash $ cd quarkus-server $ export JAVA_HOME=$GRAALVM_HOME $ mvn clean package -DskipTests $ dapr run --app-id quarkus_svc --app-port 9000 --dapr-http-port 3500 -- java -jar target/quarkus-app/quarkus-run.jar ``` #### Invoke service by CLI > troubleshooting for 'couldn't find service': > https://github.com/dapr/quickstarts/issues/361#issuecomment-1062585717 ```bash $ dapr list $ export dapr_port=3500 $ export application_id=quarkus_svc $ export method_name=hello $ curl "http://localhost:$dapr_port/v1.0/invoke/$application_id/method/$method_name/BingDwenDwen" Good morning BingDwenDwen $ curl "http://localhost:$dapr_port/v1.0/invoke/$application_id/method/$method_name?name=ShueyRhonRhon" Hello ShueyRhonRhon $ dapr invoke --app-id quarkus_svc --method hello --verb GET $ dapr invoke --app-id quarkus_svc --method hello/BingDwenDwen --verb GET $ dapr invoke --app-id quarkus_svc --method hello\?name=ShueyRhonRhon --verb GET ``` #### Invoke service by API ```bash $ cd dapr-client $ export JAVA_HOME=$JAVA_17_HOME $ mvn clean package -DskipTests $ dapr run -- java -jar target/hello-dapr.jar ``` #### Observability ```bash dapr run --app-id quarkus_dapr_client -- java -jar target/hello-dapr.jar 100 10 ``` ```bash dapr dashboard -p 9999 ```