https://github.com/astefanutti/further-cdi
🔊 Going further with CDI presentation
https://github.com/astefanutti/further-cdi
camel cdi dropwizard java javaee metrics
Last synced: 6 months ago
JSON representation
🔊 Going further with CDI presentation
- Host: GitHub
- URL: https://github.com/astefanutti/further-cdi
- Owner: astefanutti
- Created: 2014-08-16T13:01:41.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T18:33:31.000Z (over 2 years ago)
- Last Synced: 2025-03-28T00:01:31.469Z (6 months ago)
- Topics: camel, cdi, dropwizard, java, javaee, metrics
- Language: Java
- Homepage: http://astefanutti.github.io/further-cdi
- Size: 30 MB
- Stars: 30
- Watchers: 7
- Forks: 7
- Open Issues: 7
-
Metadata Files:
- Readme: README.adoc
Awesome Lists containing this project
README
= Going Further with CDI
image:https://travis-ci.org/astefanutti/further-cdi.svg[Travis CI build, link="https://travis-ci.org/astefanutti/further-cdi"]
Presentation material about advanced features and use cases of http://www.cdi-spec.org/[CDI], the Contexts and Dependency Injection standard for the Java platform.
== About
This presentation introduces the CDI type and metadata SPI. It then focuses on the concept of http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#spi[portable extensions] and covers the complete bean manager lifecycle, depicted in the diagram below. Lastly, it illustrates the use of these concepts through practical examples like the https://github.com/astefanutti/camel-cdi[Camel CDI] and https://github.com/astefanutti/metrics-cdi[Metrics CDI] extensions.
.Application initialization and shutdown lifecycle
image::http://astefanutti.github.io/further-cdi/lifecycle.svg[].Container lifecycle events
image::http://astefanutti.github.io/further-cdi/events.svg[]== History
This presentation has been used as material for the following sessions:
|===
| Conference | Session | Commit [/ Branch] | Slides
| http://www.devoxx.ma[Devoxx MA] 2016 | Going further with CDI 2.0 | https://github.com/astefanutti/further-cdi/tree/25bcd4d7ece45b7d5a022decfd17e4fcf457778a[`25bcd4d`] | http://astefanutti.github.io/further-cdi/going-further-with-cdi-devoxxma-2016.html[html], http://astefanutti.github.io/further-cdi/going-further-with-cdi-devoxxma-2016.pdf[pdf]
| https://www.oracle.com/javaone/[JavaOne] 2015 | https://events.rainfocus.com/oow15/catalog/oracle.jsp?event=javaone&search=TUT2376[Advanced CDI in Live Coding [TUT2376\]] | https://github.com/astefanutti/further-cdi/tree/d8ce65f6fac56c2f0b654b3126d62aa8150acbdb[`d8ce65f`] | http://astefanutti.github.io/further-cdi/advanced-cdi-in-live-coding-javaone-2015.html[html], http://astefanutti.github.io/further-cdi/advanced-cdi-in-live-coding-javaone-2015.pdf[pdf], https://www.youtube.com/watch?v=OgfLlupOWZY[video]
| http://www.devoxx.fr/[Devoxx FR] 2015 | Allons plus loin avec CDI 1.2 [OGT-5265] | https://github.com/astefanutti/further-cdi/tree/b490b41747b70b0e5a28f05ba3e5ef20ec5dcd3c[`b490b41`] | http://astefanutti.github.io/further-cdi/going-further-with-cdi-devoxxfr-2015.html[html], http://astefanutti.github.io/further-cdi/going-further-with-cdi-devoxxfr-2015.pdf[pdf]
| http://www.devoxx.be/[Devoxx BE] 2014 | Going Further with CDI 1.2 [CSX-3476] | https://github.com/astefanutti/further-cdi/tree/6aa51e7230cd5177ab30135c21b0d17b428565e9[`6aa51e7`] | http://astefanutti.github.io/further-cdi/going-further-with-cdi-devoxxbe-2014.html[html]
| https://www.oracle.com/javaone/[JavaOne] 2014 | https://oracleus.activeevents.com/2014/connect/sessionDetail.ww?SESSION_ID=5585[Going Further with CDI 1.2 [CON5585\]] | https://github.com/astefanutti/further-cdi/tree/6fd80dd792e325729b6b8724f50b93475d5dc3be[`6fd80dd`] / https://github.com/astefanutti/further-cdi/tree/javaone[`javaone`] | http://astefanutti.github.io/further-cdi/going-further-with-cdi-javaone-2014.html[html]|===
== Build
=== Environment
. Install http://rvm.io[RVM]:
+
----
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby
----. Install http://bundler.io/[Bundler]:
+
----
$ gem install bundler
----. Install http://www.graphviz.org/[Graphviz] and have the `dot` executable in the path
=== Instructions
. Initialise and check out the `asciidoctor-backends` and `dzslides` submodules:
+
----
$ git submodule update --init
----. Install the required gems:
+
----
$ bundle install
----. Generate the HTML presentation:
+
----
$ asciidoctor -r asciidoctor-diagram -T asciidoctor-backends/slim -a data-uri -a linkcss! slides.adoc
----. Generate the PDF presentation:
.. Install https://github.com/astefanutti/decktape[DeckTape]
.. Export the HTML presentation:
+
----
$ decktape dzslides slides.html slides.pdf
----=== LiveReload
With http://guardgem.org/[Guard] and http://livereload.com/[LiveReload], you can modify the content of the presentation and have the files automatically generated and reloaded into your Web browser.
. Install the http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-[LiveReload plugin] for your Web browser (Chrome, Firefox and Safari are supported)
. Launch Guard:
+
----
$ bundle exec guard
----. Browse to the generated file you want to refresh and activate the LiveReload plugin (don't forget to configure the plugin to accept refreshing local files)
=== Docker
Alternatively to installing Ruby and Graphviz, you can use the https://hub.docker.com/r/asciidoctor/docker-asciidoctor/[`asciidoctor/docker-asciidoctor`] Docker image available on https://hub.docker.com[Docker Hub]:
. Run an interactive container with the `documents` volume bind-mounted to the working directory:
+
----
$ docker run --rm -it -v `pwd`:/documents/ asciidoctor/docker-asciidoctor
----. Generate the HTML presentation:
+
----
[root@... documents]# asciidoctor -r asciidoctor-diagram -T asciidoctor-backends/slim -a data-uri -a linkcss! slides.adoc
----== License
The content of this project is licensed under the http://creativecommons.org/licenses/by/4.0/[Creative Commons Attribution 4.0 license], and the underlying source code used for the examples is licensed under the http://opensource.org/licenses/mit-license.php[MIT license].