An example Quarkus Project suited for more complex examples. Using CDI, JPA, Logging, Configuration and Metering.
Not Java 11 yet, but the folks at GraalVM are working toward it.
Quarkus doesn't respect the test classpath with resources. This leads to resource loading constraints with application.properties and/or import.sql statements that should not be in production code bases.
Member variables are package level variable in order to facilitate the restricted CDI implementation and lack of reflection.
- Deployment Size: 57MB
- Start Up time: 0.1356 sec
- Initial Memory footprint: 12MB
- Max Memory Footprint: 256MB
- Build Time: ~ 3min (WSL); 1.5min (Linux); 2min (Mac)
[agroal, cdi, hibernate-orm, jdbc-postgresql, narayana-jta, resteasy, resteasy-jsonb, security, smallrye-jwt]
- Install docker-ce and docker-compose
- Install Maven into /opt/java/maven
- Install GraalVM into /opt/graalvm
- Make sure your developer tools are up-to-date
- sudo apt install build-essential
- sudo apt install zlib1g-dev
- Alter your .bashrc or .zshrc
export GRAALVM_HOME=/opt/graalvm
2.export JAVA_HOME=$GRAALVM_HOME
3.export PATH=$JAVA_HOME/bin:$PATH
- Install Docker
- Install Maven into /opt/java/maven
- Install GraalVM into
/Library/Java/JavaVirtualMachines/graalvm
- Alter .bash_profile or .zshrc to include
export GRAALVM_HOME=/Library/Java/JavaVirutalMachines/graalvm
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
- This only works if you don't have java 1.8 installed.- alternative:
export JAVA_HOME=$GRAALVM_HOME/Contents/Home
- alternative:
export PATH=$JAVA_HOME/bin:$PATH
- Install Windows Subsystem for Linux
- Install Maven
- From WSL
sudo apt-get install zlib1g-dev
- Install GraalVM into /opt/graalvm
- Update your .bashrc or .zshrc file
export GRAALVM_HOME=/opt/graalvm
export JAVA_HOME=$GRAALVM_HOME
export PATH=$JAVA_HOME/bin:$PATH
- Install Docker
- Start the docker database
docker-compose up --no-start db & docker-compose start db
from the project root. - Start the docker open trace instance:
docker run -e COLLECTOR_ZI:PKIN_HTTP_PORT=9411 -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 -p 9411:9411 jaegertracing/all-in-one:latest
- Start the server:
mvn clean compile quarkus:dev
- Test:
curl http://localhost:8080/api/users/test_load
Output (Similar):
[{"cr_dt":"2019-03-15T18:00:07.331Z","up_dt":"2019-03-15T18:00:07.331Z","ver":0,"id":1,"name":"test_load","verified":true}]
mvn clean package
This requires graalvm be installed and on your path.
mvn clean package -Pnative
for i in {1..1000}
do
curl http://localhost:8080/api/users/test_load
done