-
Notifications
You must be signed in to change notification settings - Fork 86
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #168 from redhat-developer-demos/swapi
Replace Fruit with Movie and FruityVice with Swapi.dev
- Loading branch information
Showing
29 changed files
with
1,070 additions
and
401 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
* | ||
!target/*-runner | ||
!target/*-runner.jar | ||
!target/lib/* | ||
!target/quarkus-app/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
#Maven | ||
target/ | ||
pom.xml.tag | ||
pom.xml.releaseBackup | ||
pom.xml.versionsBackup | ||
release.properties | ||
.flattened-pom.xml | ||
|
||
# Eclipse | ||
.project | ||
.classpath | ||
.settings/ | ||
bin/ | ||
|
||
# IntelliJ | ||
.idea | ||
*.ipr | ||
*.iml | ||
*.iws | ||
|
||
# NetBeans | ||
nb-configuration.xml | ||
|
||
# Visual Studio Code | ||
.vscode | ||
.factorypath | ||
|
||
# OSX | ||
.DS_Store | ||
|
||
# Vim | ||
*.swp | ||
*.swo | ||
|
||
# patch | ||
*.orig | ||
*.rej | ||
|
||
# Local environment | ||
.env | ||
|
||
# Plugin directory | ||
/.quarkus/cli/plugins/ | ||
# TLS Certificates | ||
.certs/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# quarkus1and2 | ||
|
||
This project uses Quarkus, the Supersonic Subatomic Java Framework. | ||
|
||
If you want to learn more about Quarkus, please visit its website: <https://quarkus.io/>. | ||
|
||
## Running the application in dev mode | ||
|
||
You can run your application in dev mode that enables live coding using: | ||
|
||
```shell script | ||
./mvnw compile quarkus:dev | ||
``` | ||
|
||
> **_NOTE:_** Quarkus now ships with a Dev UI, which is available in dev mode only at <http://localhost:8080/q/dev/>. | ||
## Packaging and running the application | ||
|
||
The application can be packaged using: | ||
|
||
```shell script | ||
./mvnw package | ||
``` | ||
|
||
It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory. | ||
Be aware that it’s not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory. | ||
|
||
The application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`. | ||
|
||
If you want to build an _über-jar_, execute the following command: | ||
|
||
```shell script | ||
./mvnw package -Dquarkus.package.jar.type=uber-jar | ||
``` | ||
|
||
The application, packaged as an _über-jar_, is now runnable using `java -jar target/*-runner.jar`. | ||
|
||
## Creating a native executable | ||
|
||
You can create a native executable using: | ||
|
||
```shell script | ||
./mvnw package -Dnative | ||
``` | ||
|
||
Or, if you don't have GraalVM installed, you can run the native executable build in a container using: | ||
|
||
```shell script | ||
./mvnw package -Dnative -Dquarkus.native.container-build=true | ||
``` | ||
|
||
You can then execute your native executable with: `./target/quarkus1and2-1.0-SNAPSHOT-runner` | ||
|
||
If you want to learn more about building native executables, please consult <https://quarkus.io/guides/maven-tooling>. | ||
|
||
## Related Guides | ||
|
||
- REST ([guide](https://quarkus.io/guides/rest)): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it. | ||
|
||
## Provided Code | ||
|
||
### REST | ||
|
||
Easily start your REST Web Services | ||
|
||
[Related guide section...](https://quarkus.io/guides/getting-started-reactive#reactive-jax-rs-resources) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
#### | ||
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode | ||
# | ||
# Before building the container image run: | ||
# | ||
# ./mvnw package | ||
# | ||
# Then, build the image with: | ||
# | ||
# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/quarkus1and2-jvm . | ||
# | ||
# Then run the container using: | ||
# | ||
# docker run -i --rm -p 8080:8080 quarkus/quarkus1and2-jvm | ||
# | ||
# If you want to include the debug port into your docker image | ||
# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. | ||
# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 | ||
# when running the container | ||
# | ||
# Then run the container using : | ||
# | ||
# docker run -i --rm -p 8080:8080 quarkus/quarkus1and2-jvm | ||
# | ||
# This image uses the `run-java.sh` script to run the application. | ||
# This scripts computes the command line to execute your Java application, and | ||
# includes memory/GC tuning. | ||
# You can configure the behavior using the following environment properties: | ||
# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") | ||
# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options | ||
# in JAVA_OPTS (example: "-Dsome.property=foo") | ||
# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is | ||
# used to calculate a default maximal heap memory based on a containers restriction. | ||
# If used in a container without any memory constraints for the container then this | ||
# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio | ||
# of the container available memory as set here. The default is `50` which means 50% | ||
# of the available memory is used as an upper boundary. You can skip this mechanism by | ||
# setting this value to `0` in which case no `-Xmx` option is added. | ||
# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This | ||
# is used to calculate a default initial heap memory based on the maximum heap memory. | ||
# If used in a container without any memory constraints for the container then this | ||
# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio | ||
# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` | ||
# is used as the initial heap size. You can skip this mechanism by setting this value | ||
# to `0` in which case no `-Xms` option is added (example: "25") | ||
# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. | ||
# This is used to calculate the maximum value of the initial heap memory. If used in | ||
# a container without any memory constraints for the container then this option has | ||
# no effect. If there is a memory constraint then `-Xms` is limited to the value set | ||
# here. The default is 4096MB which means the calculated value of `-Xms` never will | ||
# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") | ||
# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output | ||
# when things are happening. This option, if set to true, will set | ||
# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). | ||
# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: | ||
# true"). | ||
# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). | ||
# - CONTAINER_CORE_LIMIT: A calculated core limit as described in | ||
# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") | ||
# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). | ||
# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. | ||
# (example: "20") | ||
# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. | ||
# (example: "40") | ||
# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. | ||
# (example: "4") | ||
# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus | ||
# previous GC times. (example: "90") | ||
# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") | ||
# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") | ||
# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should | ||
# contain the necessary JRE command-line options to specify the required GC, which | ||
# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). | ||
# - HTTPS_PROXY: The location of the https proxy. (example: "[email protected]:8080") | ||
# - HTTP_PROXY: The location of the http proxy. (example: "[email protected]:8080") | ||
# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be | ||
# accessed directly. (example: "foo.example.com,bar.example.com") | ||
# | ||
### | ||
FROM registry.access.redhat.com/ubi8/openjdk-21:1.20 | ||
|
||
ENV LANGUAGE='en_US:en' | ||
|
||
|
||
# We make four distinct layers so if there are application changes the library layers can be re-used | ||
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ | ||
COPY --chown=185 target/quarkus-app/*.jar /deployments/ | ||
COPY --chown=185 target/quarkus-app/app/ /deployments/app/ | ||
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/ | ||
|
||
EXPOSE 8080 | ||
USER 185 | ||
ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" | ||
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" | ||
|
||
ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
#### | ||
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode | ||
# | ||
# Before building the container image run: | ||
# | ||
# ./mvnw package -Dquarkus.package.jar.type=legacy-jar | ||
# | ||
# Then, build the image with: | ||
# | ||
# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/quarkus1and2-legacy-jar . | ||
# | ||
# Then run the container using: | ||
# | ||
# docker run -i --rm -p 8080:8080 quarkus/quarkus1and2-legacy-jar | ||
# | ||
# If you want to include the debug port into your docker image | ||
# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. | ||
# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 | ||
# when running the container | ||
# | ||
# Then run the container using : | ||
# | ||
# docker run -i --rm -p 8080:8080 quarkus/quarkus1and2-legacy-jar | ||
# | ||
# This image uses the `run-java.sh` script to run the application. | ||
# This scripts computes the command line to execute your Java application, and | ||
# includes memory/GC tuning. | ||
# You can configure the behavior using the following environment properties: | ||
# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") | ||
# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options | ||
# in JAVA_OPTS (example: "-Dsome.property=foo") | ||
# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is | ||
# used to calculate a default maximal heap memory based on a containers restriction. | ||
# If used in a container without any memory constraints for the container then this | ||
# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio | ||
# of the container available memory as set here. The default is `50` which means 50% | ||
# of the available memory is used as an upper boundary. You can skip this mechanism by | ||
# setting this value to `0` in which case no `-Xmx` option is added. | ||
# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This | ||
# is used to calculate a default initial heap memory based on the maximum heap memory. | ||
# If used in a container without any memory constraints for the container then this | ||
# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio | ||
# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` | ||
# is used as the initial heap size. You can skip this mechanism by setting this value | ||
# to `0` in which case no `-Xms` option is added (example: "25") | ||
# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. | ||
# This is used to calculate the maximum value of the initial heap memory. If used in | ||
# a container without any memory constraints for the container then this option has | ||
# no effect. If there is a memory constraint then `-Xms` is limited to the value set | ||
# here. The default is 4096MB which means the calculated value of `-Xms` never will | ||
# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") | ||
# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output | ||
# when things are happening. This option, if set to true, will set | ||
# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). | ||
# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: | ||
# true"). | ||
# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). | ||
# - CONTAINER_CORE_LIMIT: A calculated core limit as described in | ||
# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") | ||
# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). | ||
# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. | ||
# (example: "20") | ||
# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. | ||
# (example: "40") | ||
# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. | ||
# (example: "4") | ||
# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus | ||
# previous GC times. (example: "90") | ||
# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") | ||
# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") | ||
# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should | ||
# contain the necessary JRE command-line options to specify the required GC, which | ||
# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). | ||
# - HTTPS_PROXY: The location of the https proxy. (example: "[email protected]:8080") | ||
# - HTTP_PROXY: The location of the http proxy. (example: "[email protected]:8080") | ||
# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be | ||
# accessed directly. (example: "foo.example.com,bar.example.com") | ||
# | ||
### | ||
FROM registry.access.redhat.com/ubi8/openjdk-21:1.20 | ||
|
||
ENV LANGUAGE='en_US:en' | ||
|
||
|
||
COPY target/lib/* /deployments/lib/ | ||
COPY target/*-runner.jar /deployments/quarkus-run.jar | ||
|
||
EXPOSE 8080 | ||
USER 185 | ||
ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" | ||
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" | ||
|
||
ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#### | ||
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. | ||
# | ||
# Before building the container image run: | ||
# | ||
# ./mvnw package -Dnative | ||
# | ||
# Then, build the image with: | ||
# | ||
# docker build -f src/main/docker/Dockerfile.native -t quarkus/quarkus1and2 . | ||
# | ||
# Then run the container using: | ||
# | ||
# docker run -i --rm -p 8080:8080 quarkus/quarkus1and2 | ||
# | ||
### | ||
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.10 | ||
WORKDIR /work/ | ||
RUN chown 1001 /work \ | ||
&& chmod "g+rwX" /work \ | ||
&& chown 1001:root /work | ||
COPY --chown=1001:root target/*-runner /work/application | ||
|
||
EXPOSE 8080 | ||
USER 1001 | ||
|
||
ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#### | ||
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. | ||
# It uses a micro base image, tuned for Quarkus native executables. | ||
# It reduces the size of the resulting container image. | ||
# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image. | ||
# | ||
# Before building the container image run: | ||
# | ||
# ./mvnw package -Dnative | ||
# | ||
# Then, build the image with: | ||
# | ||
# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/quarkus1and2 . | ||
# | ||
# Then run the container using: | ||
# | ||
# docker run -i --rm -p 8080:8080 quarkus/quarkus1and2 | ||
# | ||
### | ||
FROM quay.io/quarkus/quarkus-micro-image:2.0 | ||
WORKDIR /work/ | ||
RUN chown 1001 /work \ | ||
&& chmod "g+rwX" /work \ | ||
&& chown 1001:root /work | ||
COPY --chown=1001:root target/*-runner /work/application | ||
|
||
EXPOSE 8080 | ||
USER 1001 | ||
|
||
ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] |
23 changes: 23 additions & 0 deletions
23
apps/tutorial_app/src/main/java/com/redhat/developers/CustomHealthCheck.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package com.redhat.developers; | ||
|
||
import io.smallrye.health.checks.UrlHealthCheck; | ||
import org.eclipse.microprofile.config.inject.ConfigProperty; | ||
import org.eclipse.microprofile.health.HealthCheck; | ||
import org.eclipse.microprofile.health.Readiness; | ||
|
||
import jakarta.enterprise.context.ApplicationScoped; | ||
import jakarta.ws.rs.HttpMethod; | ||
|
||
@ApplicationScoped | ||
public class CustomHealthCheck { | ||
|
||
@ConfigProperty(name = "quarkus.rest-client.\"com.redhat.developers.SwapiService\".url") | ||
String externalURL; | ||
|
||
@Readiness | ||
HealthCheck checkURL() { | ||
return new UrlHealthCheck(externalURL+"/api/films/") | ||
.name("ExternalURL health check").requestMethod(HttpMethod.GET).statusCode(200); | ||
} | ||
|
||
} |
Oops, something went wrong.