{"id":18854780,"url":"https://github.com/astefanutti/further-cdi","last_synced_at":"2025-04-14T10:42:54.947Z","repository":{"id":19760533,"uuid":"23018087","full_name":"astefanutti/further-cdi","owner":"astefanutti","description":"🔊 Going further with CDI presentation","archived":false,"fork":false,"pushed_at":"2023-01-24T18:33:31.000Z","size":31495,"stargazers_count":30,"open_issues_count":7,"forks_count":7,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-28T00:01:31.469Z","etag":null,"topics":["camel","cdi","dropwizard","java","javaee","metrics"],"latest_commit_sha":null,"homepage":"http://astefanutti.github.io/further-cdi","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astefanutti.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-16T13:01:41.000Z","updated_at":"2023-05-10T13:54:29.000Z","dependencies_parsed_at":"2023-02-14T00:31:13.771Z","dependency_job_id":null,"html_url":"https://github.com/astefanutti/further-cdi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astefanutti%2Ffurther-cdi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astefanutti%2Ffurther-cdi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astefanutti%2Ffurther-cdi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astefanutti%2Ffurther-cdi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astefanutti","download_url":"https://codeload.github.com/astefanutti/further-cdi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248867509,"owners_count":21174748,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camel","cdi","dropwizard","java","javaee","metrics"],"created_at":"2024-11-08T03:51:17.802Z","updated_at":"2025-04-14T10:42:54.927Z","avatar_url":"https://github.com/astefanutti.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Going Further with CDI\n\nimage:https://travis-ci.org/astefanutti/further-cdi.svg[Travis CI build, link=\"https://travis-ci.org/astefanutti/further-cdi\"]\n\nPresentation material about advanced features and use cases of http://www.cdi-spec.org/[CDI], the Contexts and Dependency Injection standard for the Java platform.\n\n== About\n\nThis 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.\n\n.Application initialization and shutdown lifecycle\nimage::http://astefanutti.github.io/further-cdi/lifecycle.svg[]\n\n.Container lifecycle events\nimage::http://astefanutti.github.io/further-cdi/events.svg[]\n\n== History\n\nThis presentation has been used as material for the following sessions:\n\n|===\n\n| Conference | Session | Commit [/ Branch]  | Slides\n\n| 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]\n| https://www.oracle.com/javaone/[JavaOne] 2015 | https://events.rainfocus.com/oow15/catalog/oracle.jsp?event=javaone\u0026search=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]\n| 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]\n| 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]\n| 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]\n\n|===\n\n== Build\n\n=== Environment\n\n. Install http://rvm.io[RVM]:\n+\n----\n$ \\curl -sSL https://get.rvm.io | bash -s stable --ruby\n----\n\n. Install http://bundler.io/[Bundler]:\n+\n----\n$ gem install bundler\n----\n\n. Install http://www.graphviz.org/[Graphviz] and have the `dot` executable in the path\n\n=== Instructions\n\n. Initialise and check out the `asciidoctor-backends` and `dzslides` submodules:\n+\n----\n$ git submodule update --init\n----\n\n. Install the required gems:\n+\n----\n$ bundle install\n----\n\n. Generate the HTML presentation:\n+\n----\n$ asciidoctor -r asciidoctor-diagram -T asciidoctor-backends/slim -a data-uri -a linkcss! slides.adoc\n----\n\n. Generate the PDF presentation:\n.. Install https://github.com/astefanutti/decktape[DeckTape]\n.. Export the HTML presentation:\n+\n----\n$ decktape dzslides slides.html slides.pdf\n----\n\n=== LiveReload\n\nWith 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.\n\n. 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)\n\n. Launch Guard:\n+\n----\n$ bundle exec guard\n----\n\n. 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)\n\n=== Docker\n\nAlternatively 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]:\n\n. Run an interactive container with the `documents` volume bind-mounted to the working directory:\n+\n----\n$ docker run --rm -it -v `pwd`:/documents/ asciidoctor/docker-asciidoctor\n----\n\n. Generate the HTML presentation:\n+\n----\n[root@... documents]# asciidoctor -r asciidoctor-diagram -T asciidoctor-backends/slim -a data-uri -a linkcss! slides.adoc\n----\n\n== License\n\nThe 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].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastefanutti%2Ffurther-cdi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastefanutti%2Ffurther-cdi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastefanutti%2Ffurther-cdi/lists"}