Quarkus

From Chorke Wiki
Jump to navigation Jump to search
export GRAALVM_HOME=/d/opt/cli/mandrel-java11-21.2.0.0-Final
export PATH=$JAVA11_HOME/bin:$PATH:$GRAALVM_HOME/bin
export JAVA_HOME=$JAVA11_HOME

OR

export GRAALVM_HOME=/d/opt/cli/graalvm-ce-java11-21.2.0
export PATH=$JAVA11_HOME/bin:$PATH:$GRAALVM_HOME/bin
export JAVA_HOME=$JAVA11_HOME
gu install native-image
set GRAALVM_HOME=D:\opt\cli\mandrel-java11-21.2.0.0-Final
set PATH=%JAVA11_HOME%/bin;%PATH%;%GRAALVM_HOME%/bin
set JAVA_HOME=%JAVA11_HOME%

OR

set GRAALVM_HOME=D:\opt\cli\graalvm-ce-java11-21.2.0
set PATH=%JAVA11_HOME%/bin;%PATH%;%GRAALVM_HOME%/bin
set JAVA_HOME=%JAVA11_HOME%
gu install native-image

Quarkus Build

git clone https://github.com/quarkusio/quarkus-quickstarts.git
cd ./quarkus-quickstarts/getting-started
# for windows 10 we should avoid symbolic link. instead of symbolic link
# we should use absolute project path either from command or gitbash
mvn package -Pnative -Dquarkus.native.container-runtime=docker -e
mvn package -Pnative -Dquarkus.native.container-build=true

mvn verify -Pnative -Dquarkus.native.container-runtime=docker -e
mvn verify -Pnative -Dquarkus.native.container-build=true
mvn compile  quarkus:dev
mvn package -Pnative
mvn verify  -Pnative
mvn package

Maven Artifact

mvn io.quarkus:quarkus-maven-plugin:2.1.3.Final:create \
    -DprojectGroupId=org.chorke.academia.rest \
    -DprojectArtifactId=getting-started \
    -DclassName="org.chorke.academia.rest.getting.started.GreetingResource" \
    -Dpath="/hello"
cd getting-started

After Build

: '
 ./quarkus-quickstarts/getting-started/target/
 ─────────────────────────────────────────────
   ├─ quarkus/bootstrap/test-app-model.dat
   ├─ quarkus-artifact.properties
   └─ quarkus-app/
      ├─ app/getting-started-1.0.0-SNAPSHOT.jar
      ├─ quarkus-app-dependencies.txt
      ├─ quarkus-run.jar
      ├─ quarkus/
      │  ├─ generated-bytecode.jar
      │  ├─ quarkus-application.dat
      │  └─ transformed-bytecode.jar

      └─ lib/
         ├─ main/
         └─ boot/
            ├─ io.quarkus.quarkus-development-mode-spi-2.1.3.Final.jar
            ├─ io.smallrye.common.smallrye-common-io-1.6.0.jar
            ├─ org.graalvm.sdk.graal-sdk-21.1.0.jar
            ├─ org.jboss.logging.jboss-logging-3.4.2.Final.jar
            ├─ org.jboss.logmanager.jboss-logmanager-embedded-1.0.9.jar
            └─ org.wildfly.common.wildfly-common-1.5.4.Final-format-001.jar
'

java -jar target/quarkus-app/quarkus-run.jar

Configuring

quarkus.banner.path=/META-INF/chorke/academia.txt
quarkus.banner.enabled=false

Knowledge

mvn package -Pnative -Dquarkus.native.container-build=true\
 -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:21.1-java11

mvn package -Pnative -Dquarkus.native.container-build=true\
 -Dquarkus.native.container-runtime=docker

mvn package -Pnative -Dquarkus.native.container-build=true\
 -Dquarkus.native.container-runtime=podman

mvn package -Pnative -Dquarkus.native.container-build=true\
 -Dquarkus.container-image.build=true
docker build -f src/main/docker/Dockerfile.native\
 -t quarkus-quickstart/getting-started .

docker run -i --rm -p 8080:8080\
 quarkus-quickstart/getting-started
AAA : Authentication Authorization & Accounting
LDAP: Lightweight Directory Access protocol
SAML: Security Assertion Markup Language
RBAC: Role-Based Access Control
AoT : Ahead of Time Compilation
CDI : Central Programming Model
IdP : Identity Provider
SP  : Service Provider
OIDC: OpenID Connect

References