Compare commits
2 commits
0ce74443fc
...
9b251cab9f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b251cab9f | ||
|
|
cc5b47b426 |
13 changed files with 677 additions and 0 deletions
|
|
@ -17,6 +17,7 @@
|
||||||
<quarkus.platform.group-id>com.redhat.quarkus</quarkus.platform.group-id>
|
<quarkus.platform.group-id>com.redhat.quarkus</quarkus.platform.group-id>
|
||||||
<quarkus.platform.version>1.11.6.Final-redhat-00001</quarkus.platform.version>
|
<quarkus.platform.version>1.11.6.Final-redhat-00001</quarkus.platform.version>
|
||||||
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
|
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
|
||||||
|
<!-- Property to force using Deployments over DeploymentConfig objects goes here. -->
|
||||||
</properties>
|
</properties>
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
@ -135,6 +136,7 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<!-- Adding the jkube plugin configuration here -->
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
<properties>
|
<properties>
|
||||||
|
|
|
||||||
5
todo-api/.dockerignore
Normal file
5
todo-api/.dockerignore
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
*
|
||||||
|
!target/*-runner
|
||||||
|
!target/*-runner.jar
|
||||||
|
!target/lib/*
|
||||||
|
!target/quarkus-app/*
|
||||||
39
todo-api/.gitignore
vendored
Normal file
39
todo-api/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
#Maven
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
release.properties
|
||||||
|
|
||||||
|
# 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
|
||||||
50
todo-api/README.md
Normal file
50
todo-api/README.md
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
# todo-api project
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
## Packaging and running the application
|
||||||
|
|
||||||
|
The application can be packaged using:
|
||||||
|
```shell script
|
||||||
|
./mvnw package
|
||||||
|
```
|
||||||
|
It produces the `todo-api-1.0.0-SNAPSHOT-runner.jar` file in the `/target` directory.
|
||||||
|
Be aware that it’s not an _über-jar_ as the dependencies are copied into the `target/lib` directory.
|
||||||
|
|
||||||
|
If you want to build an _über-jar_, execute the following command:
|
||||||
|
```shell script
|
||||||
|
./mvnw package -Dquarkus.package.type=uber-jar
|
||||||
|
```
|
||||||
|
|
||||||
|
The application is now runnable using `java -jar target/todo-api-1.0.0-SNAPSHOT-runner.jar`.
|
||||||
|
|
||||||
|
## Creating a native executable
|
||||||
|
|
||||||
|
You can create a native executable using:
|
||||||
|
```shell script
|
||||||
|
./mvnw package -Pnative
|
||||||
|
```
|
||||||
|
|
||||||
|
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
|
||||||
|
```shell script
|
||||||
|
./mvnw package -Pnative -Dquarkus.native.container-build=true
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then execute your native executable with: `./target/todo-api-1.0.0-SNAPSHOT-runner`
|
||||||
|
|
||||||
|
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.html.
|
||||||
|
|
||||||
|
# RESTEasy JAX-RS
|
||||||
|
|
||||||
|
<p>A Hello World RESTEasy resource</p>
|
||||||
|
|
||||||
|
Guide: https://quarkus.io/guides/rest-json
|
||||||
171
todo-api/pom.xml
Normal file
171
todo-api/pom.xml
Normal file
|
|
@ -0,0 +1,171 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>com.redhat.training.openshift.todoapi</groupId>
|
||||||
|
<artifactId>todo-api</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
<properties>
|
||||||
|
<compiler-plugin.version>3.8.1</compiler-plugin.version>
|
||||||
|
<maven.compiler.parameters>true</maven.compiler.parameters>
|
||||||
|
<maven.compiler.source>11</maven.compiler.source>
|
||||||
|
<maven.compiler.target>11</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
<quarkus-plugin.version>1.11.7.Final-redhat-00009</quarkus-plugin.version>
|
||||||
|
<quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id>
|
||||||
|
<quarkus.platform.group-id>com.redhat.quarkus</quarkus.platform.group-id>
|
||||||
|
<quarkus.platform.version>1.11.7.Final-redhat-00009</quarkus.platform.version>
|
||||||
|
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
|
||||||
|
<jkube.build.switchToDeployment>true</jkube.build.switchToDeployment>
|
||||||
|
</properties>
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>${quarkus.platform.group-id}</groupId>
|
||||||
|
<artifactId>${quarkus.platform.artifact-id}</artifactId>
|
||||||
|
<version>${quarkus.platform.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-arc</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-resteasy</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-junit5</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.rest-assured</groupId>
|
||||||
|
<artifactId>rest-assured</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-resteasy-jsonb</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-hibernate-orm-panache</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-hibernate-orm</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-jdbc-mysql</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-hibernate-orm-rest-data-panache</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
<id>redhat</id>
|
||||||
|
<url>https://maven.repository.redhat.com/ga</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<pluginRepositories>
|
||||||
|
<pluginRepository>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
<id>redhat</id>
|
||||||
|
<url>https://maven.repository.redhat.com/ga</url>
|
||||||
|
</pluginRepository>
|
||||||
|
</pluginRepositories>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-maven-plugin</artifactId>
|
||||||
|
<version>${quarkus-plugin.version}</version>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>build</goal>
|
||||||
|
<goal>generate-code</goal>
|
||||||
|
<goal>generate-code-tests</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${compiler-plugin.version}</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>${surefire-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<systemPropertyVariables>
|
||||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||||
|
<maven.home>${maven.home}</maven.home>
|
||||||
|
</systemPropertyVariables>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.jkube</groupId>
|
||||||
|
<artifactId>openshift-maven-plugin</artifactId>
|
||||||
|
<version>1.2.0</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>native</id>
|
||||||
|
<activation>
|
||||||
|
<property>
|
||||||
|
<name>native</name>
|
||||||
|
</property>
|
||||||
|
</activation>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
<version>${surefire-plugin.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>integration-test</goal>
|
||||||
|
<goal>verify</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<systemPropertyVariables>
|
||||||
|
<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
|
||||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||||
|
<maven.home>${maven.home}</maven.home>
|
||||||
|
</systemPropertyVariables>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<properties>
|
||||||
|
<quarkus.package.type>native</quarkus.package.type>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</project>
|
||||||
54
todo-api/src/main/docker/Dockerfile.fast-jar
Normal file
54
todo-api/src/main/docker/Dockerfile.fast-jar
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
####
|
||||||
|
# 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.type=fast-jar
|
||||||
|
#
|
||||||
|
# Then, build the image with:
|
||||||
|
#
|
||||||
|
# docker build -f src/main/docker/Dockerfile.fast-jar -t quarkus/todo-api-fast-jar .
|
||||||
|
#
|
||||||
|
# Then run the container using:
|
||||||
|
#
|
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/todo-api-fast-jar
|
||||||
|
#
|
||||||
|
# If you want to include the debug port into your docker image
|
||||||
|
# you will have to expose the debug port (default 5005) like this : EXPOSE 8080 5050
|
||||||
|
#
|
||||||
|
# Then run the container using :
|
||||||
|
#
|
||||||
|
# docker run -i --rm -p 8080:8080 -p 5005:5005 -e JAVA_ENABLE_DEBUG="true" quarkus/todo-api-fast-jar
|
||||||
|
#
|
||||||
|
###
|
||||||
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3
|
||||||
|
|
||||||
|
ARG JAVA_PACKAGE=java-11-openjdk-headless
|
||||||
|
ARG RUN_JAVA_VERSION=1.3.8
|
||||||
|
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
|
||||||
|
# Install java and the run-java script
|
||||||
|
# Also set up permissions for user `1001`
|
||||||
|
RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \
|
||||||
|
&& microdnf update \
|
||||||
|
&& microdnf clean all \
|
||||||
|
&& mkdir /deployments \
|
||||||
|
&& chown 1001 /deployments \
|
||||||
|
&& chmod "g+rwX" /deployments \
|
||||||
|
&& chown 1001:root /deployments \
|
||||||
|
&& curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
|
||||||
|
&& chown 1001 /deployments/run-java.sh \
|
||||||
|
&& chmod 540 /deployments/run-java.sh \
|
||||||
|
&& echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security
|
||||||
|
|
||||||
|
# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
|
||||||
|
ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
|
||||||
|
# We make four distinct layers so if there are application changes the library layers can be re-used
|
||||||
|
COPY --chown=1001 target/quarkus-app/lib/ /deployments/lib/
|
||||||
|
COPY --chown=1001 target/quarkus-app/*.jar /deployments/
|
||||||
|
COPY --chown=1001 target/quarkus-app/app/ /deployments/app/
|
||||||
|
COPY --chown=1001 target/quarkus-app/quarkus/ /deployments/quarkus/
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
USER 1001
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/deployments/run-java.sh" ]
|
||||||
51
todo-api/src/main/docker/Dockerfile.jvm
Normal file
51
todo-api/src/main/docker/Dockerfile.jvm
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
####
|
||||||
|
# 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/todo-api-jvm .
|
||||||
|
#
|
||||||
|
# Then run the container using:
|
||||||
|
#
|
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/todo-api-jvm
|
||||||
|
#
|
||||||
|
# If you want to include the debug port into your docker image
|
||||||
|
# you will have to expose the debug port (default 5005) like this : EXPOSE 8080 5050
|
||||||
|
#
|
||||||
|
# Then run the container using :
|
||||||
|
#
|
||||||
|
# docker run -i --rm -p 8080:8080 -p 5005:5005 -e JAVA_ENABLE_DEBUG="true" quarkus/todo-api-jvm
|
||||||
|
#
|
||||||
|
###
|
||||||
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3
|
||||||
|
|
||||||
|
ARG JAVA_PACKAGE=java-11-openjdk-headless
|
||||||
|
ARG RUN_JAVA_VERSION=1.3.8
|
||||||
|
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
|
||||||
|
# Install java and the run-java script
|
||||||
|
# Also set up permissions for user `1001`
|
||||||
|
RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \
|
||||||
|
&& microdnf update \
|
||||||
|
&& microdnf clean all \
|
||||||
|
&& mkdir /deployments \
|
||||||
|
&& chown 1001 /deployments \
|
||||||
|
&& chmod "g+rwX" /deployments \
|
||||||
|
&& chown 1001:root /deployments \
|
||||||
|
&& curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
|
||||||
|
&& chown 1001 /deployments/run-java.sh \
|
||||||
|
&& chmod 540 /deployments/run-java.sh \
|
||||||
|
&& echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security
|
||||||
|
|
||||||
|
# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
|
||||||
|
ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
|
||||||
|
COPY target/lib/* /deployments/lib/
|
||||||
|
COPY target/*-runner.jar /deployments/app.jar
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
USER 1001
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/deployments/run-java.sh" ]
|
||||||
27
todo-api/src/main/docker/Dockerfile.native
Normal file
27
todo-api/src/main/docker/Dockerfile.native
Normal file
|
|
@ -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 -Pnative
|
||||||
|
#
|
||||||
|
# Then, build the image with:
|
||||||
|
#
|
||||||
|
# docker build -f src/main/docker/Dockerfile.native -t quarkus/todo-api .
|
||||||
|
#
|
||||||
|
# Then run the container using:
|
||||||
|
#
|
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/todo-api
|
||||||
|
#
|
||||||
|
###
|
||||||
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3
|
||||||
|
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
|
||||||
|
|
||||||
|
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.redhat.training.openshift.todoapi;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
|
||||||
|
import io.quarkus.hibernate.orm.panache.PanacheEntity;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public class Item extends PanacheEntity {
|
||||||
|
public String description;
|
||||||
|
public boolean done;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.redhat.training.openshift.todoapi;
|
||||||
|
|
||||||
|
|
||||||
|
import io.quarkus.hibernate.orm.rest.data.panache.PanacheEntityResource;
|
||||||
|
import io.quarkus.rest.data.panache.MethodProperties;
|
||||||
|
import io.quarkus.rest.data.panache.ResourceProperties;
|
||||||
|
|
||||||
|
|
||||||
|
@ResourceProperties(path = "/todo/api/items")
|
||||||
|
public interface ItemResource extends PanacheEntityResource<Item, Long> {
|
||||||
|
@MethodProperties(exposed = false)
|
||||||
|
Item add(Item item);
|
||||||
|
|
||||||
|
@MethodProperties(exposed = false)
|
||||||
|
Item update(Long id, Item existingItem);
|
||||||
|
|
||||||
|
@MethodProperties(exposed = false)
|
||||||
|
boolean delete(Long id);
|
||||||
|
}
|
||||||
0
todo-api/src/main/jkube/.gitkeep
Normal file
0
todo-api/src/main/jkube/.gitkeep
Normal file
242
todo-api/src/main/resources/META-INF/resources/index.html
Normal file
242
todo-api/src/main/resources/META-INF/resources/index.html
Normal file
|
|
@ -0,0 +1,242 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>todo-api - 1.0.0-SNAPSHOT</title>
|
||||||
|
<style>
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.75rem
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.5rem
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1.25rem
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 1rem
|
||||||
|
}
|
||||||
|
|
||||||
|
.lead {
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner {
|
||||||
|
font-size: 2.7rem;
|
||||||
|
margin: 0;
|
||||||
|
padding: 2rem 1rem;
|
||||||
|
background-color: #0d1c2c;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 87.5%;
|
||||||
|
color: #e83e8c;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-column {
|
||||||
|
padding: .75rem;
|
||||||
|
max-width: 75%;
|
||||||
|
min-width: 55%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-column {
|
||||||
|
padding: .75rem;
|
||||||
|
max-width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-section {
|
||||||
|
margin-left: 1rem;
|
||||||
|
padding-left: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-section h3 {
|
||||||
|
padding-top: 0;
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-section ul {
|
||||||
|
border-left: 0.3rem solid #71aeef;
|
||||||
|
list-style-type: none;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.examples {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin: 20px 0 20px -40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example {
|
||||||
|
display: flex;
|
||||||
|
margin-left: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #205894;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example code {
|
||||||
|
color: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-header {
|
||||||
|
padding: 20px;
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-header h4 {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
flex-grow: 1;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-description {
|
||||||
|
padding: 0 20px;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-paths {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-paths a {
|
||||||
|
display: block;
|
||||||
|
background-color: transparent;
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
color: white;
|
||||||
|
padding: 10px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-paths a:before {
|
||||||
|
content: '⇨';
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-paths a:hover {
|
||||||
|
background-color: #0d1c2c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-link {
|
||||||
|
background-color: #71aeef;
|
||||||
|
position: absolute;
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
padding: 7px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-link:hover {
|
||||||
|
background-color: #0d1c2c;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="banner lead">
|
||||||
|
Your new Cloud-Native application is ready!
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="left-column">
|
||||||
|
<p class="lead"> Congratulations, you have created a new Quarkus cloud application.</p>
|
||||||
|
|
||||||
|
<h2>Why do you see this?</h2>
|
||||||
|
|
||||||
|
<p>This page is served by Quarkus. The source is in
|
||||||
|
<code>src/main/resources/META-INF/resources/index.html</code>.</p>
|
||||||
|
|
||||||
|
<h2>What can I do from here?</h2>
|
||||||
|
|
||||||
|
<p>If not already done, run the application in <em>dev mode</em> using: <code>./mvnw compile quarkus:dev</code>.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Play with your example code in <code>src/main/java</code>:
|
||||||
|
<div class="examples">
|
||||||
|
<div class="example">
|
||||||
|
<div class="example-header">
|
||||||
|
<h4>RESTEasy JAX-RS</h4>
|
||||||
|
<a href="https://quarkus.io/guides/rest-json" target="_blank" class="guide-link">Guide</a>
|
||||||
|
</div>
|
||||||
|
<div class="example-description">
|
||||||
|
<p>A Hello World RESTEasy resource</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="example-paths">
|
||||||
|
<a href="/todo/api/items" class="path-link" target="_blank">GET /todo/api/items</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>Your static assets are located in <code>src/main/resources/META-INF/resources</code>.</li>
|
||||||
|
<li>Configure your application in <code>src/main/resources/application.properties</code>.</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Do you like Quarkus?</h2>
|
||||||
|
<p>Go give it a star on <a href="https://github.com/quarkusio/quarkus">GitHub</a>.</p>
|
||||||
|
</div>
|
||||||
|
<div class="right-column">
|
||||||
|
<div class="right-section">
|
||||||
|
<h3>Application</h3>
|
||||||
|
<ul>
|
||||||
|
<li>GroupId: com.redhat.training.openshift.todoapi</li>
|
||||||
|
<li>ArtifactId: todo-api</li>
|
||||||
|
<li>Version: 1.0.0-SNAPSHOT</li>
|
||||||
|
<li>Quarkus Version: 1.11.7.Final-redhat-00009</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="right-section">
|
||||||
|
<h3>Next steps</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://quarkus.io/guides/maven-tooling.html" target="_blank">Setup your IDE</a></li>
|
||||||
|
<li><a href="https://quarkus.io/guides/getting-started.html" target="_blank">Getting started</a></li>
|
||||||
|
<li><a href="https://quarkus.io" target="_blank">Quarkus Web Site</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
5
todo-api/src/main/resources/application.properties
Normal file
5
todo-api/src/main/resources/application.properties
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
quarkus.datasource.db-kind = mysql
|
||||||
|
quarkus.datasource.username = ${DATABASE_USER}
|
||||||
|
quarkus.datasource.password = ${DATABASE_PASSWORD}
|
||||||
|
quarkus.datasource.jdbc.url = jdbc:mysql://${DATABASE_SVC_HOSTNAME}:3306/${DATABASE_NAME}
|
||||||
Loading…
Add table
Reference in a new issue