Thursday, October 25, 2018

Getting started with Microprofile


MicroProfile

https://microprofile.io/

https://openliberty.io/docs/ref/microprofile/1.3/

List of microprofile implementations
https://wiki.eclipse.org/MicroProfile/Implementation

Payara 


https://blog.payara.fish/building-your-next-microservice-with-eclipse-microprofile

https://github.com/OndrejM/getting-started-microprofile

OpenLiberty

https://www.phillip-kruger.com/post/fatjars_thinwars_and_why_openliberty_is_cool/

OpenLiberty guides
https://openliberty.io/guides/

Install OpenLiberty via Maven
https://openliberty.io/blog/2018/07/27/installing-features-from-maven-dependencies.html

http://www.adam-bien.com/roller/abien/entry/microprofile_java_ee_8_thinner

http://javaeemicro.services/


Thorntail ( previously JBoss  Wildfly Swarm)


https://thorntail.io/

https://developers.redhat.com/blog/2017/08/24/the-skinny-on-fat-thin-hollow-and-uber/


https://developers.redhat.com/blog/2018/08/23/eclipse-microprofile-and-red-hat-update-thorntail-and-smallrye/


Sample project

Start application HOWTO
 https://openliberty.io/guides/maven-intro.html


Compile the project

mvn install

jar tvf target/ServletSample-1.0-SNAPSHOT.war
    97 Thu Oct 25 11:12:26 CEST 2018 META-INF/MANIFEST.MF
     0 Thu Oct 25 11:12:26 CEST 2018 META-INF/
     0 Thu Oct 25 11:12:26 CEST 2018 WEB-INF/
     0 Thu Oct 25 11:12:26 CEST 2018 WEB-INF/classes/
     0 Thu Oct 25 11:12:26 CEST 2018 WEB-INF/classes/io/
     0 Thu Oct 25 11:12:26 CEST 2018 WEB-INF/classes/io/openliberty/
     0 Thu Oct 25 11:12:26 CEST 2018 WEB-INF/classes/io/openliberty/guides/
     0 Thu Oct 25 11:12:26 CEST 2018 WEB-INF/classes/io/openliberty/guides/hello/
     0 Thu Oct 25 11:12:26 CEST 2018 WEB-INF/lib/
   431 Thu Oct 25 11:08:56 CEST 2018 WEB-INF/web.xml
1047863 Thu Oct 25 11:11:42 CEST 2018 WEB-INF/lib/jaxb-impl-2.2.11.jar
  1222 Thu Oct 25 11:11:44 CEST 2018 WEB-INF/classes/io/openliberty/guides/hello/HelloServlet.class
   575 Thu Oct 25 11:08:56 CEST 2018 index.html
  6330 Thu Oct 25 11:08:56 CEST 2018 META-INF/maven/io.openliberty.guides/ServletSample/pom.xml
   107 Thu Oct 25 11:12:26 CEST 2018 META-INF/maven/io.openliberty.guides/ServletSample/pom.properties
102244 Thu Oct 25 11:11:42 CEST 2018 WEB-INF/lib/jaxb-api-2.2.11.jar
 69409 Thu Oct 25 11:11:42 CEST 2018 WEB-INF/lib/activation-1.1.1.jar
252336 Thu Oct 25 11:11:42 CEST 2018 WEB-INF/lib/jaxb-core-2.2.11.jar


Maven build log

mvn install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ServletSample 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ServletSample ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /git/openliberty-maven-intro/finish/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ ServletSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ ServletSample ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /git/openliberty-maven-intro/finish/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ ServletSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ ServletSample ---
[INFO]
[INFO] --- liberty-maven-plugin:2.6.1:install-server (create-server) @ ServletSample ---
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-runtime:null:RELEASE:zip.
[INFO] CWWKM2102I: Using installDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : ServletSampleServer.
[INFO] CWWKM2102I: Using serverDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2185I: The liberty-maven-plugin configuration parameter "appsDirectory" value defaults to "apps".
[INFO] CWWKM2112I: Re-using previously installed assembly.
[INFO]
[INFO] --- liberty-maven-plugin:2.6.1:create-server (create-server) @ ServletSample ---
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-runtime:null:RELEASE:zip.
[INFO] CWWKM2102I: Using installDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : ServletSampleServer.
[INFO] CWWKM2102I: Using serverDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2185I: The liberty-maven-plugin configuration parameter "appsDirectory" value defaults to "apps".
[INFO] CWWKM2112I: Re-using previously installed assembly.
[INFO] Copying 1 file to /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer
[INFO] CWWKM2144I: Update server configuration file server.xml from /git/openliberty-maven-intro/finish/src/main/liberty/config/server.xml.
[INFO] CWWKM2144I: Update server configuration file bootstrap.properties from inlined configuration.
[INFO]
[INFO] --- maven-war-plugin:3.2.2:war (default-war) @ ServletSample ---
[INFO] Packaging webapp
[INFO] Assembling webapp [ServletSample] in [/git/openliberty-maven-intro/finish/target/ServletSample-1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp resources [/git/openliberty-maven-intro/finish/src/main/webapp]
[INFO] Webapp assembled in [47 msecs]
[INFO] Building war: /git/openliberty-maven-intro/finish/target/ServletSample-1.0-SNAPSHOT.war
[INFO]
[INFO] --- liberty-maven-plugin:2.6.1:install-apps (install-apps) @ ServletSample ---
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-runtime:null:RELEASE:zip.
[INFO] CWWKM2102I: Using installDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : ServletSampleServer.
[INFO] CWWKM2102I: Using serverDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] Copying 1 file to /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer
[INFO] CWWKM2144I: Update server configuration file server.xml from /git/openliberty-maven-intro/finish/src/main/liberty/config/server.xml.
[INFO] CWWKM2144I: Update server configuration file bootstrap.properties from inlined configuration.
[INFO] CWWKM2185I: The liberty-maven-plugin configuration parameter "appsDirectory" value defaults to "apps".
[INFO] CWWKM2160I: Installing application ServletSample.war.xml.
[INFO]
[INFO] --- liberty-maven-plugin:2.6.1:package-server (package-server) @ ServletSample ---
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-runtime:null:RELEASE:zip.
[INFO] CWWKM2102I: Using installDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : ServletSampleServer.
[INFO] CWWKM2102I: Using serverDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2112I: Re-using previously installed assembly.
[INFO] CWWKM2134I: Packaging server ServletSampleServer.
[INFO] Copying 1 file to /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer
[INFO] CWWKM2144I: Update server configuration file server.xml from /git/openliberty-maven-intro/finish/src/main/liberty/config/server.xml.
[INFO] CWWKM2144I: Update server configuration file bootstrap.properties from inlined configuration.
[INFO] CWWKM2136I: Package file location is /git/openliberty-maven-intro/finish/target/ServletSample.zip.
[INFO] CWWKM2001I: server.config.dir is /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2001I: server.output.dir is /git/openliberty-maven-intro/finish/target/wlp-package/ServletSampleServer.
[INFO] CWWKM2001I: Invoke command is [/git/openliberty-maven-intro/finish/target/liberty/wlp/bin/server, package, ServletSampleServer, --archive=/git/openliberty-maven-intro/finish/target/ServletSample.zip, --include=usr].
[INFO] Packaging server ServletSampleServer.
[INFO] Server ServletSampleServer package complete in /git/openliberty-maven-intro/finish/target/ServletSample.zip.
[INFO]
[INFO] --- liberty-maven-plugin:2.6.1:test-start-server (test-start-server) @ ServletSample ---
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-runtime:null:RELEASE:zip.
[INFO] CWWKM2102I: Using installDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : ServletSampleServer.
[INFO] CWWKM2102I: Using serverDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2112I: Re-using previously installed assembly.
[INFO] Copying 1 file to /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer
[INFO] CWWKM2144I: Update server configuration file server.xml from /git/openliberty-maven-intro/finish/src/main/liberty/config/server.xml.
[INFO] CWWKM2144I: Update server configuration file bootstrap.properties from inlined configuration.
[INFO] CWWKM2001I: server.config.dir is /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2001I: server.output.dir is /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2001I: Invoke command is [/git/openliberty-maven-intro/finish/target/liberty/wlp/bin/server, start, ServletSampleServer].
[INFO] Server ServletSampleServer is already running with process ID 28763.
[INFO] Waiting up to 30 seconds for server confirmation:  CWWKF0011I to be found in /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer/logs/messages.log
[INFO] CWWKM2010I: Searching for CWWKF0011I in /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer/logs/messages.log. This search will timeout after 30 seconds.
[INFO] CWWKM2015I: Match number: 1 is [10/25/18 11:13:40:556 CEST] 00000019 com.ibm.ws.kernel.feature.internal.FeatureManager            A CWWKF0011I: The server ServletSampleServer is ready to run a smarter planet..
[INFO]
[INFO] --- maven-failsafe-plugin:2.19.1:integration-test (default) @ ServletSample ---


Tests 

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running io.openliberty.guides.hello.it.EndpointIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.373 sec - in io.openliberty.guides.hello.it.EndpointIT

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- liberty-maven-plugin:2.6.1:test-stop-server (test-stop-server) @ ServletSample ---
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-runtime:null:RELEASE:zip.
[INFO] CWWKM2102I: Using installDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : ServletSampleServer.
[INFO] CWWKM2102I: Using serverDirectory : /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2152I: Stopping server ServletSampleServer.
[INFO] CWWKM2001I: server.config.dir is /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2001I: server.output.dir is /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer.
[INFO] CWWKM2001I: Invoke command is [/git/openliberty-maven-intro/finish/target/liberty/wlp/bin/server, stop, ServletSampleServer].
[INFO] Stopping server ServletSampleServer.
[INFO] Server ServletSampleServer stopped.
[INFO]
[INFO] --- maven-failsafe-plugin:2.19.1:verify (default) @ ServletSample ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ServletSample ---
[INFO] Installing /git/openliberty-maven-intro/finish/target/ServletSample-1.0-SNAPSHOT.war to /home/centos/.m2/io/openliberty/guides/ServletSample/1.0-SNAPSHOT/ServletSample-1.0-SNAPSHOT.war
[INFO] Installing /git/openliberty-maven-intro/finish/pom.xml to /home/centos/.m2/io/openliberty/guides/ServletSample/1.0-SNAPSHOT/ServletSample-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS


Run server

mvn liberty:start-server

Server log

tail -500f ./target/liberty/wlp/usr/servers/ServletSampleServer/logs/messages.log
********************************************************************************
product = Open Liberty 18.0.0.3 (wlp-1.0.22.cl180320180905-2337)
wlp.install.dir = /git/openliberty-maven-intro/finish/target/liberty/wlp/
java.home = /usr/java/jdk1.8.0_144/jre
java.version = 1.8.0_144
java.runtime = Java(TM) SE Runtime Environment (1.8.0_144-b01)
os = Linux (3.10.0-693.21.1.el7.x86_64; amd64) (en_US)
process = 28763@ip-10-112-45-153.eu-central-1.compute.internal
********************************************************************************
[10/25/18 11:13:37:833 CEST] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           A CWWKE0001I: The server ServletSampleServer has been launched.
[10/25/18 11:13:38:923 CEST] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           I CWWKE0002I: The kernel started after 1.322 seconds
[10/25/18 11:13:38:962 CEST] 00000019 com.ibm.ws.kernel.feature.internal.FeatureManager            I CWWKF0007I: Feature update started.
[10/25/18 11:13:39:643 CEST] 00000011 com.ibm.ws.app.manager.internal.monitor.DropinMonitor        A CWWKZ0058I: Monitoring dropins for applications.
[10/25/18 11:13:39:652 CEST] 0000001c com.ibm.ws.tcpchannel.internal.TCPChannel                    I CWWKO0219I: TCP Channel defaultHttpEndpoint has been started and is now listening for requests on host *  (IPv6) port 9080.
[10/25/18 11:13:39:853 CEST] 00000021 com.ibm.ws.app.manager.AppMessageHelper                      I CWWKZ0018I: Starting application ServletSample.
[10/25/18 11:13:39:932 CEST] 00000021 m.ibm.ws.container.service.app.deploy.ManifestClassPathUtils W SRVE9967W: The manifest class path jaxb-api.jar can not be found in jar file file:/home/centos/.m2/com/sun/xml/bind/jaxb-core/2.2.11/jaxb-core-2.2.11.jar or its parent.
[10/25/18 11:13:39:944 CEST] 00000021 m.ibm.ws.container.service.app.deploy.ManifestClassPathUtils W SRVE9967W: The manifest class path jaxb-core.jar can not be found in jar file file:/home/centos/.m2/com/sun/xml/bind/jaxb-impl/2.2.11/jaxb-impl-2.2.11.jar or its parent.
[10/25/18 11:13:40:106 CEST] 00000021 m.ibm.ws.container.service.app.deploy.ManifestClassPathUtils W SRVE9967W: The manifest class path jaxb-api.jar can not be found in jar file file:/home/centos/.m2/com/sun/xml/bind/jaxb-core/2.2.11/jaxb-core-2.2.11.jar or its parent.
[10/25/18 11:13:40:109 CEST] 00000021 m.ibm.ws.container.service.app.deploy.ManifestClassPathUtils W SRVE9967W: The manifest class path jaxb-core.jar can not be found in jar file file:/home/centos/.m2/com/sun/xml/bind/jaxb-impl/2.2.11/jaxb-impl-2.2.11.jar or its parent.
[10/25/18 11:13:40:484 CEST] 00000021 com.ibm.ws.session.WASSessionCore                            I SESN8501I: The session manager did not find a persistent storage location; HttpSession objects will be stored in the local application server's memory.
[10/25/18 11:13:40:506 CEST] 00000021 com.ibm.ws.webcontainer.osgi.webapp.WebGroup                 I SRVE0169I: Loading Web Module: Hello Servlet.
[10/25/18 11:13:40:508 CEST] 00000021 com.ibm.ws.webcontainer                                      I SRVE0250I: Web Module Hello Servlet has been bound to default_host.
[10/25/18 11:13:40:510 CEST] 00000021 com.ibm.ws.http.internal.VirtualHostImpl                     A CWWKT0016I: Web application available (default_host): http://rdfadm:9080/ServletSample/
[10/25/18 11:13:40:514 CEST] 00000021 com.ibm.ws.app.manager.AppMessageHelper                      A CWWKZ0001I: Application ServletSample started in 0.661 seconds.
[10/25/18 11:13:40:555 CEST] 00000019 com.ibm.ws.kernel.feature.internal.FeatureManager            A CWWKF0012I: The server installed the following features: [servlet-3.1].
[10/25/18 11:13:40:556 CEST] 00000019 com.ibm.ws.kernel.feature.internal.FeatureManager            I CWWKF0008I: Feature update completed in 1.633 seconds.
[10/25/18 11:13:40:556 CEST] 00000019 com.ibm.ws.kernel.feature.internal.FeatureManager            A CWWKF0011I: The server ServletSampleServer is ready to run a smarter planet.
[10/25/18 11:13:40:566 CEST] 00000025 com.ibm.ws.session.WASSessionCore                            I SESN0176I: A new session context will be created for application key default_host/ServletSample
[10/25/18 11:13:40:582 CEST] 00000025 com.ibm.ws.util                                              I SESN0172I: The session manager is using the Java default SecureRandom implementation for session ID generation.
[10/25/18 11:13:40:803 CEST] 00000021 com.ibm.ws.webcontainer.osgi.mbeans.PluginGenerator          I SRVE9103I: A configuration file for a web server plugin was automatically generated for this server at /git/openliberty-maven-intro/finish/target/liberty/wlp/usr/servers/ServletSampleServer/logs/state/plugin-cfg.xml.

No comments:

Post a Comment