# further-cdi **Repository Path**: mirrors_andyglick/further-cdi ## Basic Information - **Project Name**: further-cdi - **Description**: 🔊 Going further with CDI presentation - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-16 - **Last Updated**: 2026-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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].