An open API service indexing awesome lists of open source software.

https://github.com/daggerok/cdi-example

Simple java main method using CDI
https://github.com/daggerok/cdi-example

capsule-maven-plugin cdi cdi-event cdi-injection cdi2 fat-jar fatjar fatjar-generator maven-assembly-plugin uber-jar uberjar uberjar-generation

Last synced: 10 months ago
JSON representation

Simple java main method using CDI

Awesome Lists containing this project

README

          

= cdi-example image:https://travis-ci.org/daggerok/cdi-example.svg?branch=master["Build Status", link="https://travis-ci.org/daggerok/cdi-example"]

//tag::content[]

Maven java main CDI example

Read link:https://daggerok.github.io/cdi-example[project reference documentation]

- add proper dependencies

[source,xml]
----

org.jboss.weld.se
weld-se-core
3.0.5.Final


javax.enterprise
cdi-api
2.0


org.jboss
jandex
2.0.5.Final

----

- add minial required bootstrap configuration

[source,java]
----
public class App {
public static void main(String[] args) {
SeContainer container = SeContainerInitializer.newInstance()
.setClassLoader(App.class.getClassLoader())
.addPackages(App.class,
BeanManager.class)
.initialize();
// happy hacking!
}
}
----

- build, run abd test

There are 2 options for fat jar available:

- maven-assembly-plugin
- capsule-maven-plugin

[source,bash]
----
# jar
./mvnw -Passembly ; java -jar target/*-all.jar

# docker
./mvnw -Pcapsule ; ./mvnw docker-compose:up -P docker
----

//end::content[]

//tag::other[]

== maven profiles

.qualifiersmore
[source, bash]
----
./mvnw -Pcapsule,alternatives
java -jar target/*-all.jar
----

.qualifiersmore
[source, bash]
----
./mvnw -Pdependent,assembly
java -jar target/*-all.jar
----

.qualifiersmore
[source, bash]
----
./mvnw -Pany,capsule
java -jar target/*-all.jar
----

.qualifiersmore
[source, bash]
----
./mvnw -Pqualifiersmore,assembly
java -jar target/*-all.jar
----

.getting-started
[source, bash]
----
./mvnw -Pgetting-started,assembly
java -jar target/*-all.jar
----

.interceptors
[source, bash]
----
./mvnw -Pinterceptors,capsule
java -jar target/*-all.jar
----

.logs
[source, bash]
----
./mvnw -Plogs,capsule
java -jar target/*-all.jar
----

.qualifiers
[source, bash]
----
./mvnw -Pqualifiers,assembly
java -jar target/*-all.jar
----

.default (simple)
[source, bash]
----
./mvnw
./mvnw -Psimple,assembly
java -jar target/*-all.jar
----

//end::other[]

//tag::links[]

other repositories:

- link:https://github.com/daggerok/vertx-cdi-view[GitHub: daggerok/vertx-cdi-view]

links:

- youtube.com/watch?v=LYKMaj4XKvg
- https://docs.jboss.org/weld/reference/latest/en-US/html/environments.html#_bootstrapping_cdi_se
- https://docs.jboss.org/weld/reference/latest/en-US/html/environments.html
- link:https://docs.jboss.org/weld/reference/latest/en-US/html_single/[Weld CDI reference]
- link:https://eclipse-ee4j.github.io/jakartaee-tutorial/toc.html[Learn more from JakartaEE tutorials]
- link:https://docs.jboss.org/weld/reference/latest/en-US/html/interceptors.html[JBoss weld reference]
- https://docs.jboss.org/cdi/spec/2.0/cdi-spec.html#default_bean_discovery

TODO:

- link:https://github.com/daggerok/java-mp-smallrye-kafka-example/blob/master/src/main/java/com/github/daggerok/App.java#L19[Check other options for Weld CDI configuration]

//end::links[]

Initially generated by using link:https://github.com/daggerok/generator-jvm/[generator-jvm] yeoman generator (java)