GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing daggerok.github.io — JavaEE examples java-ee-examples (0.0.1) JavaEE examples java-ee-examples (0.0.1)
Table of Contents
IntroductionThis documentation contains some help to examples from java-ee-examples repository. It’s contains some JavaEE playground projects build run and test
1. jboss-eap-postgresjboss-eap-6.4/standalone/configuration/standalone.xml
jboss-eap-6.4/modules/org/postgresql/main/module.xml
persistence.xml
Entity
JPA EntityManager CDI integration
build, run and test
1.1. jax-rs-hateoas-linksbuild
docker redeploy
links: Initially generated by using generator-jvm yeoman generator (java-ee) 1.2. aop-loggerbuild run and test (required: docker)
JAX-RS ping-pong resource
business service
interceptor
Initially generated by using generator-jvm yeoman generator (java-ee) 1.3. jax-rs-regex-pathexample, how to handle
ping, pong and health paths by single resource method
Initially generated by using generator-jvm yeoman generator (java-ee) 2. Async2.1. async-jax-rs-resourcesasync resource
RESTEeasy dto
Initially generated by using generator-jvm yeoman generator (kotlin-ee) 2.2. porcupine-bulkhead-jee8build, run and test
entity
repo
write resource
read resource
Initially generated by using generator-jvm yeoman generator (kotlin-ee) 3. Micro ProfileMicroProfile 1.0 (CDI + JAX-RS + JSON-P)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>bom-all</artifactId>
<version>${version.wildfly.swarm}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
4. JBOSS 4 | JAX-RSbuild
./mvnw clean package com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down ./gradlew clean build composeUp ./gradlew composeDown generated by daggerok-fatjar yeoman generator in fucking progress… kafka
cd /tmp wget -O kafka.jar https://github.com/daggerok/embedded-kafka/raw/mvn-repo/daggerok/embedded-kafka/0.0.1/embedded-kafka-0.0.1.jar java -jar kafka.jar gradle
./gradlew bash build/libs/*jar ./gradlew build composeUp ./gradlew composeDown 5. maven is not working properlyactually working but with hack (see src/main/webapp/WEB-INF/classes/README) maven
./mvnw java -jar target/*.jar ./mvnw; ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down generated using daggerok-fatjar yeoman generator inside:
./gradlew bash build/libs/*jar ./gradlew build composeUp ./gradlew composeDown ./mvnw java -jar target/*.jar ./mvnw; ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down generated using daggerok-fatjar yeoman generator inside:
build
./mvnw clean package com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down ./gradlew clean build composeUp ./gradlew composeDown 6. JavaEE Wildfly-Swarm Micro-Profile using Gradle6.1. wildfly-swarm-gradleThis repository contains simple JavaEE JAX-RS Wildfly Swarm Micro-profile example playground application using gradle / java microprofile
bash gradlew clean build java -Djava.net.preferIPv4Stack=true -jar build/libs/wildfly-swarm-gradle-swarm.jar http :8080 using docker
docker build --force-rm -f ./docker/src/Dockerfile -t docker-java-ee-examples . docker run -d -p 8080:8080 --rm --name wildfly-swarm-gradle docker-java-ee-examples http :8080 docker rm -f -v wildfly-swarm-gradle using docker-compose
docker-compose -f ./docker/src/docker-compose.yml up -d http :8080 docker-compose -f ./docker/src/docker-compose.yml down -v using docker swarm stack deploy
docker swarm init
docker service create --detach=false --name registry --publish 5000:5000 registry:2
docker build -f ./docker/src/Dockerfile -t 127.0.0.1:5000/app .
docker push 127.0.0.1:5000/app
#docker-compose -f ./docker/src/stack-deploy.yml build --force-rm --no-cache --pull
#docker-compose -f ./docker/src/stack-deploy.yml push
docker stack deploy --compose-file ./docker/src/stack-deploy.yml java-ee
docker stack services --filter name="java-ee_app" --format="{{.Name}} {{.Replicas}}" java-ee
docker service scale --detach=false java-ee_app=2
sleep 15
docker stack services java-ee
http :8080
docker swarm leave --force
docker system prune -af
links: 7. JavaEE Wildfly-Swarm Micro-Profile using Maven7.1. wildfly-swarm-mavenThis repository contains simple JavaEE JAX-RS Wildfly Swarm Micro-profile example playground application using maven
mvn -Djava.net.preferIPv4Stack=true wildfly-swarm:run http :8080 using wildfly swarm microprofile
mvn clean package java -Djava.net.preferIPv4Stack=true -jar target/java-ee-examples-0.0.0-swarm.jar http :8080 using docker
docker build --force-rm -f ./docker/src/Dockerfile -t docker-java-ee-examples . docker run -d -p 8080:8080 --rm --name wildfly-swarm-maven docker-java-ee-examples http :8080 docker stop wildfly-swarm-maven using docker-compose
docker-compose -f ./docker/src/docker-compose.yml up -d http :8080 docker-compose -f ./docker/src/docker-compose.yml down -v using docker swarm stack deploy
docker swarm init
docker service create --detach=false --name registry --publish 5000:5000 registry:2
docker build -f ./docker/src/Dockerfile -t 127.0.0.1:5000/app .
docker push 127.0.0.1:5000/app
#docker-compose -f ./docker/src/stack-deploy.yml build --force-rm --no-cache --pull
#docker-compose -f ./docker/src/stack-deploy.yml push
docker stack deploy --compose-file ./docker/src/stack-deploy.yml java-ee
docker stack services --filter name="java-ee_app" --format="{{.Name}} {{.Replicas}}" java-ee
docker service scale --detach=false java-ee_app=2
sleep 30
docker stack services java-ee
http :8080
docker swarm leave --force
docker system prune -af
links: 9. JavaEE Kubernetes9.1. java-kube-eeThis repository contains simple JavaEE JAX-RS Wildfly Swarm Micro-profile example playground application prepare kubernetes cluster, build docker image, push into local registry
minikube start --cpus=4 --memory=4096 eval (minikube docker-env) docker run -d --rm --name registry -p 5000:5000 registry:2 docker build -t 127.0.0.1:5000/app -f ./docker/src/Dockerfile . docker push 127.0.0.1:5000/app create kubernete yaml file
vim ./docker/k8s/app.yml
kubectl apply -f ./docker/k8s/app.yml --validate=false
kubectl get svc -o wide 23:51:57
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
app NodePort 10.0.0.189 <none> 8080:32464/TCP 3m app=app
curl 192.168.99.100:32464
# or
http (minikube service app --url) 22:21:09
[
"one",
"two",
"three",
"kubeee"
]
now update code and redeploy app deploy app
bash gradlew clean build docker build -t 127.0.0.1:5000/app:v2 -f ./docker/src/Dockerfile . docker push 127.0.0.1:5000/app:v2 vim ./docker/k8s/app.yml # update image: 127.0.0.1:5000/app:v2 kubectl apply -f ./docker/k8s --validate=false terminal 1
kubectl get pods -w 23:59:35 NAME READY STATUS RESTARTS AGE app-1515935557-411m1 1/1 Running 0 10m app-1515935557-4d3gf 1/1 Terminating 0 4m app-1515935557-4d3gf 0/1 Terminating 0 4m app-3366916455-bw6m9 0/1 Pending 0 0s app-3366916455-bw6m9 0/1 ContainerCreating 0 0s app-3366916455-bw6m9 1/1 Running 0 1s terminal 2
while true; curl (minikube service app --url); echo""; sleep 1; end ["one","two","three","kubeee"] ["one","two","three","kubeee"] Waiting, endpoint for service is not ready yet... ["one","two","three","kubeee","2017-10-02T21:12:34.095Z"] ["one","two","three","kubeee","2017-10-02T21:12:36.182Z"] second test but using ip, not minikube service redeploy app prev version
vim ./docker/k8s/app.yml # update image: 127.0.0.1:5000/app kubectl apply -f ./docker/k8s --validate=false terminal 1
kubectl get pods -w 23:59:35 NAME READY STATUS RESTARTS AGE app-1515935557-411m1 1/1 Running 0 10m ... app-1515935557-4d3gf 1/1 Terminating 0 4m app-1515935557-4d3gf 0/1 Terminating 0 4m ... app-3366916455-bw6m9 0/1 Pending 0 0s app-3366916455-bw6m9 0/1 ContainerCreating 0 0s app-3366916455-bw6m9 1/1 Running 0 1s terminal 2
while true; curl 192.168.99.100:32161; echo""; sleep 1; end ["one","two","three","kubeee"] ["one","two","three","kubeee"] Waiting, endpoint for service is not ready yet... ["one","two","three","kubeee","172.17.0.5"] ["one","two","three","kubeee","172.17.0.6"] autoscale
kubectl autoscale deployment app --min=2 --max=3 scale down
kubectl scale deployment app --replicas=3 cleanup
kubectl delete all -l name=app # or kubectl delete service app; kubectl delete deployment app minikube stop; minikube delete 9.2. oldusing gradle / java microprofile
bash gradlew clean build java -Djava.net.preferIPv4Stack=true -jar build/libs/java-kube-ee-swarm.jar http :8080 e2e tests using bash scripts)
bash ./docker/bin/test-dockerfile.bash # docker bash ./docker/bin/test-docker-compose.bash # docker compose bash ./docker/bin/test-stack-deploy.bash # docker swarm cluster links 10. JavaEE using Kotlin10.1. java-kube-eeThis repository contains simple JavaEE JAX-RS Wildfly Swarm Micro-profile example playground application prepare kubernetes cluster, build docker image, push into local registry
minikube start --cpus=4 --memory=4096 eval (minikube docker-env) docker run -d --rm --name registry -p 5000:5000 registry:2 docker build -t 127.0.0.1:5000/app -f ./docker/src/Dockerfile . docker push 127.0.0.1:5000/app create kubernete yaml file
vim ./docker/k8s/app.yml
kubectl apply -f ./docker/k8s/app.yml --validate=false
kubectl get svc -o wide 23:51:57
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
app NodePort 10.0.0.189 <none> 8080:32464/TCP 3m app=app
curl 192.168.99.100:32464
# or
http (minikube service app --url) 22:21:09
[
"one",
"two",
"three",
"kubeee"
]
now update code and redeploy app deploy app
bash gradlew clean build docker build -t 127.0.0.1:5000/app:v2 -f ./docker/src/Dockerfile . docker push 127.0.0.1:5000/app:v2 vim ./docker/k8s/app.yml # update image: 127.0.0.1:5000/app:v2 kubectl apply -f ./docker/k8s --validate=false terminal 1
kubectl get pods -w 23:59:35 NAME READY STATUS RESTARTS AGE app-1515935557-411m1 1/1 Running 0 10m app-1515935557-4d3gf 1/1 Terminating 0 4m app-1515935557-4d3gf 0/1 Terminating 0 4m app-3366916455-bw6m9 0/1 Pending 0 0s app-3366916455-bw6m9 0/1 ContainerCreating 0 0s app-3366916455-bw6m9 1/1 Running 0 1s terminal 2
while true; curl (minikube service app --url); echo""; sleep 1; end ["one","two","three","kubeee"] ["one","two","three","kubeee"] Waiting, endpoint for service is not ready yet... ["one","two","three","kubeee","2017-10-02T21:12:34.095Z"] ["one","two","three","kubeee","2017-10-02T21:12:36.182Z"] second test but using ip, not minikube service redeploy app prev version
vim ./docker/k8s/app.yml # update image: 127.0.0.1:5000/app kubectl apply -f ./docker/k8s --validate=false terminal 1
kubectl get pods -w 23:59:35 NAME READY STATUS RESTARTS AGE app-1515935557-411m1 1/1 Running 0 10m ... app-1515935557-4d3gf 1/1 Terminating 0 4m app-1515935557-4d3gf 0/1 Terminating 0 4m ... app-3366916455-bw6m9 0/1 Pending 0 0s app-3366916455-bw6m9 0/1 ContainerCreating 0 0s app-3366916455-bw6m9 1/1 Running 0 1s terminal 2
while true; curl 192.168.99.100:32161; echo""; sleep 1; end ["one","two","three","kubeee"] ["one","two","three","kubeee"] Waiting, endpoint for service is not ready yet... ["one","two","three","kubeee","172.17.0.5"] ["one","two","three","kubeee","172.17.0.6"] autoscale
kubectl autoscale deployment app --min=2 --max=3 scale down
kubectl scale deployment app --replicas=3 cleanup
kubectl delete all -l name=app # or kubectl delete service app; kubectl delete deployment app minikube stop; minikube delete 10.2. oldusing gradle / java microprofile
bash gradlew clean build java -Djava.net.preferIPv4Stack=true -jar build/libs/java-kube-ee-swarm.jar http :8080 e2e tests using bash scripts)
bash ./docker/bin/test-dockerfile.bash # docker bash ./docker/bin/test-docker-compose.bash # docker compose bash ./docker/bin/test-stack-deploy.bash # docker swarm cluster links 10.3. kotlin-plugins-java-eeThis repository contains simple JavaEE JAX-RS Wildfly Swarm Micro-profile example using Kotlin bash gradlew clean build bash build/libs/*-swarm.jar http :8080 http :8080/max 10.4. main-swarm-rest-apiThis repository contains simple JavaEE JAX-RS Wildfly Swarm Micro-profile example playground application using gradle / java microprofile
bash gradlew clean build java -Djava.net.preferIPv4Stack=true -jar build/libs/wildfly-swarm-gradle-swarm.jar http :8080 http :8080/api http :8080/api/max 10.5. main-swarm-static-contentThis repository contains simple JavaEE Wildfly Swarm Micro-profile example - serving static content using gradle / java microprofile
bash gradlew clean build java -Djava.net.preferIPv4Stack=true -jar build/libs/wildfly-swarm-gradle-swarm.jar http :8080 10.6. kotlin-java-ee-payara-dockerThis repository contains simple JavaEE JAX-RS Wildfly Swarm Micro-profile example using Kotlin ./gradlew clean war docker-compose up --force-recreate --build --remove-orphans http :8080/payara-app/ http :8080/payara-app/max docker-compose down -v 10.7. kotlin-javaee-cdi-h2according to default ${JBOSS_HOME}/standalone/configuration/standalone.xml
build and test
Just JBoss EAP in Docker 11. JBoss EAP in Docker11.1. facesbuild
./mvnw clean package com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down http :8080/app/ ./gradlew clean build composeUp ./gradlew composeDown links: generated by daggerok-fatjar yeoman generator === facelets-example build
./mvnw clean package com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up ./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down http :8080/app/ http :8080/app/health http :8080/app/faces/index.xhtml ./gradlew clean build composeUp ./gradlew composeDown links: generated by daggerok-fatjar yeoman generator 11.2. jboss-eap-ext.jspackaging two WARs into jboss AS Using JBoss EAP 6.4 in docker
./mvnw clean install -U -T 4; docker-compose up --build --force-recreate open localhost:8080/ui/ docker-compose down -v 11.3. xmlrpcApache XML-RPC (org.apache.xmlrpc) variations: build and test
docker-compose down -v; ./mvnw clean package; docker-compose up --build 11.4. earbuild
./mvnw clean package -U docker
docker-compose up --build --force-recreate --remove-orphans
docker-compose down -v
# docker rm -f -v (docker ps -a|grep -v CONTAINER|awk '{print $1}')
testing
http :8080/module-1/ http :8080/module-2/ http :8080/module-3/ http :8080/module-4/ lombok for java 7 (maven)
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.2</version> <scope>provided</scope> </dependency> lombok for java 7 (gradle)
dependencies {
compileOnly 'org.projectlombok:lombok:1.14.2'
}
11.5. ejb-2build
./mvnw clean package -U docker
docker-compose up --build --force-recreate --remove-orphans
docker-compose down -v
# docker rm -f -v (docker ps -a|grep -v CONTAINER|awk '{print $1}')
testing (remote ejb call)
http :8080/greeter-remote-client/ http :8080/remote-only-client/ http :8080/goodbyer-local-client/ links: 11.6. timerbuild and test
docker-compose down -v; ./mvnw; docker-compose up --build http :8080/client/start http :8080/client/stop 11.7. timer-async-ejbbuild and test
docker-compose down -v; ./mvnw; docker-compose up --build http :8080/client/start; sleep 3; http :8080/client/stop http :8080/client/max\?name=bax http :8080/client/max http :8080/client 11.8. ejb-3-java-ee-7build and test
docker-compose down -v; ./mvnw; docker-compose up --build http :8080/client/start; sleep 3; http :8080/client/stop http :8080/client/fax\?name=max http :8080/client/bax http :8080/client 11.9. ejb-stateful-singletonbuild and test
docker-compose down -v; ./mvnw; docker-compose up --build http :8080/client/ http :8080/client/get\?key=EJB http post :8080/client/set\?key=EJB\&value=some-value http :8080/client/get\?key=EJB http post :8080/client/counter/increment http post :8080/client/counter/decr http post :8080/client/counter/incr http :8080/client/get\?key=EJB http post :8080/client/reset 11.10. jboss-eap-h2-ejbaccording to default ${JBOSS_HOME}/standalone/configuration/standalone.xml
build and test
links: 11.11. plain HTTP ServletJBOSS EAP 7.1 build and run using docker
docker-compose down -v; ./mvnw clean package; ./gradlew clean build; docker-compose up --build --force-recreate --remove-orphans http :8081/plain-http-servlet/ http :8082/plain-http-servlet/ project structure
mkdir -p src/main/java/daggerok \
src/main/webapp/WEB-INF
touch src/main/java/daggerok/AppServlet.java \
src/main/webapp/WEB-INF/web.xml \
build.gradle \
pom.xml
vim src/main/java/daggerok/AppServlet.java
vim src/main/webapp/WEB-INF/web.xml
vim build.gradle
vim pom.xml
14. JBoss WildFly (mvnw / gradlew) in Docker14.1. forge-wsinit new maven project using forge cli
forge project-new \ --named forge-ws2 \ --top-level-package daggerok \ --final-name forge-ws \ --type war add maven wrapper
cd maven-forge-project/ mvn -N io.takari:maven:wrapper build
./mvnw clean package -U -T 4 docker - see docker-compose and src/main/docker/Dockerfile
docker-compose up --build --force-recreate --remove-orphans
docker-compose down -v
# docker rm -f -v (docker ps -a|grep -v CONTAINER|awk '{print $1}')
testing
http :8080/app/v1/api http :8080/app/UserService\?wsdl curl -XPOST http://localhost:8080/app/User --header "content-type:text/xml" -d @./src/test/resources/empty-request.xml | xmllint --format - curl -XPOST http://localhost:8080/app/User --header "content-type:text/xml" -d @src/test/resources/named-request.xml | xmllint --format - lombok for java 7 (maven)
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.2</version> <scope>provided</scope> </dependency> lombok for java 7 (gradle)
dependencies {
compileOnly 'org.projectlombok:lombok:1.14.2'
}
links: 15. JBoss forge / WildFly Java EE 6 / JAX-WS15.1. forge-javaee-6-wsup and running
./mvnw clean package -U -T 2; docker-compose up --build --force-recreate --remove-orphans http :8080/app/health http :8080/app/AppEndpoint\?wsdl curl -XPOST http://localhost:8080/app/AppEndpoint --header "content-type:text/xml" -d @request.xml | xmllint --format - MicroProfile 1.1.0 (CDI + JAX-RS + JSON-P) TODO MicroProfile 1.2 (CDI + JAX-RS + JSON-P) 17. Kumuluzee MicroProfile 2.0 (JAX-WS)17.1. kumuluzee-mp-2.0-jax-wsin progress… up and running
./mvnw clean package -U; java -jar target/*.jar http :8000 http :8000/api/v1/ws http :8000/api/v1/ws?WSDL curl -XPOST http://localhost:8000/api/v1/ws --header "content-type: text/xml" -d @./request.xml | xmllint --format - docker / docker-compose
./mvnw docker-compose up --force-recreate --remove-orphans http :8000 http :8000/api/v1/ws http :8000/api/v1/ws?WSDL curl -XPOST http://localhost:8000/api/v1/ws --header "content-type: text/xml" -d @./request.xml | xmllint --format - docker-compose down -v |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |