Modified: websites/staging/deltaspike/trunk/content/documentation/modules.html ============================================================================== --- websites/staging/deltaspike/trunk/content/documentation/modules.html (original) +++ websites/staging/deltaspike/trunk/content/documentation/modules.html Wed Feb 5 11:59:54 2020 @@ -1,350 +1,350 @@ -<!DOCTYPE html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta name="description" content="deltaspike-generate-pages"> - <meta name="author" content="chm"> - <!-- No caching headers --> - <meta http-equiv="cache-control" content="no-cache"/> - <meta http-equiv="pragma" content="no-cache"/> - <meta http-equiv="expires" content="-1"/> - - <title>Overview of DeltaSpike Modules</title> - - <!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - --> - - <!-- Styles --> - <link href="https://deltaspike.apache.org/resources/css/bootstrap.css" rel="stylesheet"> - <link href="https://deltaspike.apache.org/resources/css/bootstrap-responsive.css" rel="stylesheet"> - <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.1.0/css/font-awesome.min.css" rel="stylesheet"> - - - - - - <style type="text/css"> - /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */ -/*pre.CodeRay {background-color:#f7f7f8;}*/ -.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em} -.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)} -.CodeRay .line-numbers strong{font-weight: normal} -table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none} -table.CodeRay td{vertical-align: top} -table.CodeRay td.line-numbers{text-align:right} -table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)} -table.CodeRay td.code{padding:0 0 0 .5em} -table.CodeRay td.code>pre{padding:0} -.CodeRay .debug{color:#fff !important;background:#000080 !important} -.CodeRay .annotation{color:#007} -.CodeRay .attribute-name{color:#000080} -.CodeRay .attribute-value{color:#700} -.CodeRay .binary{color:#509} -.CodeRay .comment{color:#998;font-style:italic} -.CodeRay .char{color:#04d} -.CodeRay .char .content{color:#04d} -.CodeRay .char .delimiter{color:#039} -.CodeRay .class{color:#458;font-weight:bold} -.CodeRay .complex{color:#a08} -.CodeRay .constant,.CodeRay .predefined-constant{color:#008080} -.CodeRay .color{color:#099} -.CodeRay .class-variable{color:#369} -.CodeRay .decorator{color:#b0b} -.CodeRay .definition{color:#099} -.CodeRay .delimiter{color:#000} -.CodeRay .doc{color:#970} -.CodeRay .doctype{color:#34b} -.CodeRay .doc-string{color:#d42} -.CodeRay .escape{color:#666} -.CodeRay .entity{color:#800} -.CodeRay .error{color:#808} -.CodeRay .exception{color:inherit} -.CodeRay .filename{color:#099} -.CodeRay .function{color:#900;font-weight:bold} -.CodeRay .global-variable{color:#008080} -.CodeRay .hex{color:#058} -.CodeRay .integer,.CodeRay .float{color:#099} -.CodeRay .include{color:#555} -.CodeRay .inline{color:#00} -.CodeRay .inline .inline{background:#ccc} -.CodeRay .inline .inline .inline{background:#bbb} -.CodeRay .inline .inline-delimiter{color:#d14} -.CodeRay .inline-delimiter{color:#d14} -.CodeRay .important{color:#555;font-weight:bold} -.CodeRay .interpreted{color:#b2b} -.CodeRay .instance-variable{color:#008080} -.CodeRay .label{color:#970} -.CodeRay .local-variable{color:#963} -.CodeRay .octal{color:#40e} -.CodeRay .predefined{color:#369} -.CodeRay .preprocessor{color:#579} -.CodeRay .pseudo-class{color:#555} -.CodeRay .directive{font-weight:bold} -.CodeRay .type{font-weight:bold} -.CodeRay .predefined-type{color:inherit} -.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold} -.CodeRay .key{color:#808} -.CodeRay .key .delimiter{color:#606} -.CodeRay .key .char{color:#80f} -.CodeRay .value{color:#088} -.CodeRay .regexp .delimiter{color:#808} -.CodeRay .regexp .content{color:#808} -.CodeRay .regexp .modifier{color:#808} -.CodeRay .regexp .char{color:#d14} -.CodeRay .regexp .function{color:#404;font-weight:bold} -.CodeRay .string{color:#d20} -.CodeRay .string .string .string{background:#ffd0d0} -.CodeRay .string .content{color:#d14} -.CodeRay .string .char{color:#d14} -.CodeRay .string .delimiter{color:#d14} -.CodeRay .shell{color:#d14} -.CodeRay .shell .delimiter{color:#d14} -.CodeRay .symbol{color:#990073} -.CodeRay .symbol .content{color:#a60} -.CodeRay .symbol .delimiter{color:#630} -.CodeRay .tag{color:#008080} -.CodeRay .tag-special{color:#d70} -.CodeRay .variable{color:#036} -.CodeRay .insert{background:#afa} -.CodeRay .delete{background:#faa} -.CodeRay .change{color:#aaf;background:#007} -.CodeRay .head{color:#f8f;background:#505} -.CodeRay .insert .insert{color:#080} -.CodeRay .delete .delete{color:#800} -.CodeRay .change .change{color:#66f} -.CodeRay .head .head{color:#f4f} - - body { - padding-top: 60px; - padding-bottom: 40px; - } - - .toc-like { - border-radius: 6px; - border: 1px solid #ccc; - } - - .toc-like li { - line-height: 30px; - text-indent: 10px; - } - - .toc-like li.custom-toc-header { - font-weight: bold; - background: #666; - color: white; - cursor: initial !important; - padding: 5px; - } - - .toc-like li.custom-toc-header a { - color: white; - font-style: normal; - text-shadow: none; - padding: 0; - } - - .toc-like li.custom-toc-header:hover a { - background: #666; - } - - .page-title { - text-align: left; - } - - #doc-content h2, - #doc-content h3, - #doc-content h4, - #doc-content h5, - #doc-content h6 { - padding-top: 0; - margin-top: 25px; - margin-bottom: 10px; - line-height: 1.4em; - } - - #doc-content h2 { - border-bottom: 1px solid lightgrey; - } - - - </style> - - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-36103647-1']); - _gaq.push(['_trackPageview']); - - (function () { - var ga = document.createElement('script'); - ga.type = 'text/javascript'; - ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; - s.parentNode.insertBefore(ga, s); - })(); - - </script> -</head> - -<body> - -<div class="navbar navbar-fixed-top"> - <div class="navbar-inner"> - <div class="container"> - <a class="btn btn-navbar" data-toggle="collapse" - data-target=".nav-collapse"> <span class="icon-bar"></span> <span - class="icon-bar"></span> <span class="icon-bar"></span> - </a> - <a class="brand logocolor" href="../index.html">Apache DeltaSpike</a> - - <div class="nav-collapse"> - - - <ul class="nav"> - <li><a href="../index.html">Home</a></li> - <li class="active"><a href="../documentation">Documentation</a></li> - <li ><a href="../javadoc.html">Javadoc</a></li> - <li ><a href="../source.html">Source</a></li> - <li ><a href="../download.html">Download</a></li> - <li ><a href="../community.html">Community</a></li> - <!-- <li><a href="./support.html">Support</a></li> --> - <li ><a href="../news.html">News</a></li> - </ul> - </div> - <!--/.nav-collapse --> - <form id="search-form" action="https://www.google.com/search" - method="get" class="navbar-search pull-right"> - <input value="deltaspike.apache.org" name="sitesearch" - type="hidden"> <input class="search-query" name="q" - id="query" type="text"> - </form> - </div> - </div> -</div> - -<div class="container"> - <div class="row-fluid"> - - - - <div class="span12"> - <div class="page-title"> - <h1>Overview of DeltaSpike Modules</h1> - </div> - - <div id="doc-content"> - <div class="paragraph"> -<p>DeltaSpike consists of ready-to-use modules. These include a core module and a number of optional modules for providing additional enterprise functionality to your applications. An overview of each module is provided here and for more information see the linked individual module pages.</p> -</div> -<table class="tableblock frame-all grid-all spread"> -<colgroup> -<col style="width: 25%;"> -<col style="width: 75%;"> -</colgroup> -<tbody> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="core.html">Core</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For fundamental and defining DeltaSpike API and utility classes</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="bean-validation.html">Bean Validation</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For adding CDI support in Bean Validation, enabling creation of CDI aware <code>ConstraintValidator</code> methods that can use business objects (EJBs, ManagedBeans) to support validation needs</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="container-control.html">Container Control</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For CDI container booting and shutdown and associated context lifecycle management</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="data.html">Data</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For an enhanced JPA experience with declarative queries, reducing boilerplate to a minimum</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="jpa.html">JPA</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For transactional context and scope</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="jsf.html">JSF</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For CDI integration with JSF, with type-safe view config, multi-window handling, new scopes (WindowScoped, ViewScope, ViewAccessScoped, GroupedConversationScoped) and integration with DeltaSpike âcoreâ messages and exception handling</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="partial-bean.html">Partial-Bean</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For implementing a generic handler to replace manual implementations of interfaces (or abstract classes)</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="scheduler.html">Scheduler</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For simple integration with Quartz v2 (default) or any other scheduler that supports cron-expressions for job-classes</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="security.html">Security</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For intercept and security checking on method calls</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="servlet.html">Servlet</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For integration with the Java Servlet API, enabling injection of common servlet objects and propagation of servlet events to the CDI event bus</p> -</div></div></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="test-control.html">Test-Control</a></p></td> -<td class="tableblock halign-left valign-top"><div><div class="paragraph"> -<p>For writing CDI-based tests easily</p> -</div></div></td> -</tr> -</tbody> -</table> - </div> - </div> - - - - </div> - <div class="row"> - <hr> - <footer> - <p>Copyright © 2011-2016 The Apache Software Foundation, - Licensed under the Apache License, Version 2.0.</p> - - <p>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p> - </footer> - </div> -</div> - -</body> +<!DOCTYPE html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="deltaspike-generate-pages"> + <meta name="author" content="chm"> + <!-- No caching headers --> + <meta http-equiv="cache-control" content="no-cache"/> + <meta http-equiv="pragma" content="no-cache"/> + <meta http-equiv="expires" content="-1"/> + + <title>Overview of DeltaSpike Modules</title> + + <!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + --> + + <!-- Styles --> + <link href="https://deltaspike.apache.org/resources/css/bootstrap.css" rel="stylesheet"> + <link href="https://deltaspike.apache.org/resources/css/bootstrap-responsive.css" rel="stylesheet"> + <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.1.0/css/font-awesome.min.css" rel="stylesheet"> + + + + + + <style type="text/css"> + /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */ +/*pre.CodeRay {background-color:#f7f7f8;}*/ +.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em} +.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)} +.CodeRay .line-numbers strong{font-weight: normal} +table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none} +table.CodeRay td{vertical-align: top} +table.CodeRay td.line-numbers{text-align:right} +table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)} +table.CodeRay td.code{padding:0 0 0 .5em} +table.CodeRay td.code>pre{padding:0} +.CodeRay .debug{color:#fff !important;background:#000080 !important} +.CodeRay .annotation{color:#007} +.CodeRay .attribute-name{color:#000080} +.CodeRay .attribute-value{color:#700} +.CodeRay .binary{color:#509} +.CodeRay .comment{color:#998;font-style:italic} +.CodeRay .char{color:#04d} +.CodeRay .char .content{color:#04d} +.CodeRay .char .delimiter{color:#039} +.CodeRay .class{color:#458;font-weight:bold} +.CodeRay .complex{color:#a08} +.CodeRay .constant,.CodeRay .predefined-constant{color:#008080} +.CodeRay .color{color:#099} +.CodeRay .class-variable{color:#369} +.CodeRay .decorator{color:#b0b} +.CodeRay .definition{color:#099} +.CodeRay .delimiter{color:#000} +.CodeRay .doc{color:#970} +.CodeRay .doctype{color:#34b} +.CodeRay .doc-string{color:#d42} +.CodeRay .escape{color:#666} +.CodeRay .entity{color:#800} +.CodeRay .error{color:#808} +.CodeRay .exception{color:inherit} +.CodeRay .filename{color:#099} +.CodeRay .function{color:#900;font-weight:bold} +.CodeRay .global-variable{color:#008080} +.CodeRay .hex{color:#058} +.CodeRay .integer,.CodeRay .float{color:#099} +.CodeRay .include{color:#555} +.CodeRay .inline{color:#00} +.CodeRay .inline .inline{background:#ccc} +.CodeRay .inline .inline .inline{background:#bbb} +.CodeRay .inline .inline-delimiter{color:#d14} +.CodeRay .inline-delimiter{color:#d14} +.CodeRay .important{color:#555;font-weight:bold} +.CodeRay .interpreted{color:#b2b} +.CodeRay .instance-variable{color:#008080} +.CodeRay .label{color:#970} +.CodeRay .local-variable{color:#963} +.CodeRay .octal{color:#40e} +.CodeRay .predefined{color:#369} +.CodeRay .preprocessor{color:#579} +.CodeRay .pseudo-class{color:#555} +.CodeRay .directive{font-weight:bold} +.CodeRay .type{font-weight:bold} +.CodeRay .predefined-type{color:inherit} +.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold} +.CodeRay .key{color:#808} +.CodeRay .key .delimiter{color:#606} +.CodeRay .key .char{color:#80f} +.CodeRay .value{color:#088} +.CodeRay .regexp .delimiter{color:#808} +.CodeRay .regexp .content{color:#808} +.CodeRay .regexp .modifier{color:#808} +.CodeRay .regexp .char{color:#d14} +.CodeRay .regexp .function{color:#404;font-weight:bold} +.CodeRay .string{color:#d20} +.CodeRay .string .string .string{background:#ffd0d0} +.CodeRay .string .content{color:#d14} +.CodeRay .string .char{color:#d14} +.CodeRay .string .delimiter{color:#d14} +.CodeRay .shell{color:#d14} +.CodeRay .shell .delimiter{color:#d14} +.CodeRay .symbol{color:#990073} +.CodeRay .symbol .content{color:#a60} +.CodeRay .symbol .delimiter{color:#630} +.CodeRay .tag{color:#008080} +.CodeRay .tag-special{color:#d70} +.CodeRay .variable{color:#036} +.CodeRay .insert{background:#afa} +.CodeRay .delete{background:#faa} +.CodeRay .change{color:#aaf;background:#007} +.CodeRay .head{color:#f8f;background:#505} +.CodeRay .insert .insert{color:#080} +.CodeRay .delete .delete{color:#800} +.CodeRay .change .change{color:#66f} +.CodeRay .head .head{color:#f4f} + + body { + padding-top: 60px; + padding-bottom: 40px; + } + + .toc-like { + border-radius: 6px; + border: 1px solid #ccc; + } + + .toc-like li { + line-height: 30px; + text-indent: 10px; + } + + .toc-like li.custom-toc-header { + font-weight: bold; + background: #666; + color: white; + cursor: initial !important; + padding: 5px; + } + + .toc-like li.custom-toc-header a { + color: white; + font-style: normal; + text-shadow: none; + padding: 0; + } + + .toc-like li.custom-toc-header:hover a { + background: #666; + } + + .page-title { + text-align: left; + } + + #doc-content h2, + #doc-content h3, + #doc-content h4, + #doc-content h5, + #doc-content h6 { + padding-top: 0; + margin-top: 25px; + margin-bottom: 10px; + line-height: 1.4em; + } + + #doc-content h2 { + border-bottom: 1px solid lightgrey; + } + + + </style> + + <script type="text/javascript"> + + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-36103647-1']); + _gaq.push(['_trackPageview']); + + (function () { + var ga = document.createElement('script'); + ga.type = 'text/javascript'; + ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; + s.parentNode.insertBefore(ga, s); + })(); + + </script> +</head> + +<body> + +<div class="navbar navbar-fixed-top"> + <div class="navbar-inner"> + <div class="container"> + <a class="btn btn-navbar" data-toggle="collapse" + data-target=".nav-collapse"> <span class="icon-bar"></span> <span + class="icon-bar"></span> <span class="icon-bar"></span> + </a> + <a class="brand logocolor" href="../index.html">Apache DeltaSpike</a> + + <div class="nav-collapse"> + + + <ul class="nav"> + <li><a href="../index.html">Home</a></li> + <li class="active"><a href="../documentation">Documentation</a></li> + <li ><a href="../javadoc.html">Javadoc</a></li> + <li ><a href="../source.html">Source</a></li> + <li ><a href="../download.html">Download</a></li> + <li ><a href="../community.html">Community</a></li> + <!-- <li><a href="./support.html">Support</a></li> --> + <li ><a href="../news.html">News</a></li> + </ul> + </div> + <!--/.nav-collapse --> + <form id="search-form" action="https://www.google.com/search" + method="get" class="navbar-search pull-right"> + <input value="deltaspike.apache.org" name="sitesearch" + type="hidden"> <input class="search-query" name="q" + id="query" type="text"> + </form> + </div> + </div> +</div> + +<div class="container"> + <div class="row-fluid"> + + + + <div class="span12"> + <div class="page-title"> + <h1>Overview of DeltaSpike Modules</h1> + </div> + + <div id="doc-content"> + <div class="paragraph"> +<p>DeltaSpike consists of ready-to-use modules. These include a core module and a number of optional modules for providing additional enterprise functionality to your applications. An overview of each module is provided here and for more information see the linked individual module pages.</p> +</div> +<table class="tableblock frame-all grid-all spread"> +<colgroup> +<col style="width: 25%;"> +<col style="width: 75%;"> +</colgroup> +<tbody> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="core.html">Core</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For fundamental and defining DeltaSpike API and utility classes</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="bean-validation.html">Bean Validation</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For adding CDI support in Bean Validation, enabling creation of CDI aware <code>ConstraintValidator</code> methods that can use business objects (EJBs, ManagedBeans) to support validation needs</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="container-control.html">Container Control</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For CDI container booting and shutdown and associated context lifecycle management</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="data.html">Data</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For an enhanced JPA experience with declarative queries, reducing boilerplate to a minimum</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="jpa.html">JPA</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For transactional context and scope</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="jsf.html">JSF</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For CDI integration with JSF, with type-safe view config, multi-window handling, new scopes (WindowScoped, ViewScope, ViewAccessScoped, GroupedConversationScoped) and integration with DeltaSpike âcoreâ messages and exception handling</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="partial-bean.html">Partial-Bean</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For implementing a generic handler to replace manual implementations of interfaces (or abstract classes)</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="scheduler.html">Scheduler</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For simple integration with Quartz v2 (default) or any other scheduler that supports cron-expressions for job-classes</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="security.html">Security</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For intercept and security checking on method calls</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="servlet.html">Servlet</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For integration with the Java Servlet API, enabling injection of common servlet objects and propagation of servlet events to the CDI event bus</p> +</div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="test-control.html">Test-Control</a></p></td> +<td class="tableblock halign-left valign-top"><div><div class="paragraph"> +<p>For writing CDI-based tests easily</p> +</div></div></td> +</tr> +</tbody> +</table> + </div> + </div> + + + + </div> + <div class="row"> + <hr> + <footer> + <p>Copyright © 2011-2016 The Apache Software Foundation, + Licensed under the Apache License, Version 2.0.</p> + + <p>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p> + </footer> + </div> +</div> + +</body> </html> \ No newline at end of file
Modified: websites/staging/deltaspike/trunk/content/documentation/overview.html ============================================================================== --- websites/staging/deltaspike/trunk/content/documentation/overview.html (original) +++ websites/staging/deltaspike/trunk/content/documentation/overview.html Wed Feb 5 11:59:54 2020 @@ -1,503 +1,503 @@ -<!DOCTYPE html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta name="description" content="deltaspike-generate-pages"> - <meta name="author" content="chm"> - <!-- No caching headers --> - <meta http-equiv="cache-control" content="no-cache"/> - <meta http-equiv="pragma" content="no-cache"/> - <meta http-equiv="expires" content="-1"/> - - <title>Overview of DeltaSpike</title> - - <!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - --> - - <!-- Styles --> - <link href="https://deltaspike.apache.org/resources/css/bootstrap.css" rel="stylesheet"> - <link href="https://deltaspike.apache.org/resources/css/bootstrap-responsive.css" rel="stylesheet"> - <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.1.0/css/font-awesome.min.css" rel="stylesheet"> - - - - - <!-- Tocify - nice dynamic autoscrolling TOC --> - <link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tocify/1.9.0/stylesheets/jquery.tocify.min.css" rel="stylesheet"> - <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tocify/1.9.0/javascripts/jquery.tocify.min.js"></script> - - - <script type="text/javascript"> - $(function () { - $("#toc").tocify({ - scrollTo: 50, - extendPage: true, - context: "#doc-content", - selectors: "h2,h3,h4,h5" - }); - $(".fallback-toc").hide(); - }); - </script> - - - <style type="text/css"> - /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */ -/*pre.CodeRay {background-color:#f7f7f8;}*/ -.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em} -.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)} -.CodeRay .line-numbers strong{font-weight: normal} -table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none} -table.CodeRay td{vertical-align: top} -table.CodeRay td.line-numbers{text-align:right} -table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)} -table.CodeRay td.code{padding:0 0 0 .5em} -table.CodeRay td.code>pre{padding:0} -.CodeRay .debug{color:#fff !important;background:#000080 !important} -.CodeRay .annotation{color:#007} -.CodeRay .attribute-name{color:#000080} -.CodeRay .attribute-value{color:#700} -.CodeRay .binary{color:#509} -.CodeRay .comment{color:#998;font-style:italic} -.CodeRay .char{color:#04d} -.CodeRay .char .content{color:#04d} -.CodeRay .char .delimiter{color:#039} -.CodeRay .class{color:#458;font-weight:bold} -.CodeRay .complex{color:#a08} -.CodeRay .constant,.CodeRay .predefined-constant{color:#008080} -.CodeRay .color{color:#099} -.CodeRay .class-variable{color:#369} -.CodeRay .decorator{color:#b0b} -.CodeRay .definition{color:#099} -.CodeRay .delimiter{color:#000} -.CodeRay .doc{color:#970} -.CodeRay .doctype{color:#34b} -.CodeRay .doc-string{color:#d42} -.CodeRay .escape{color:#666} -.CodeRay .entity{color:#800} -.CodeRay .error{color:#808} -.CodeRay .exception{color:inherit} -.CodeRay .filename{color:#099} -.CodeRay .function{color:#900;font-weight:bold} -.CodeRay .global-variable{color:#008080} -.CodeRay .hex{color:#058} -.CodeRay .integer,.CodeRay .float{color:#099} -.CodeRay .include{color:#555} -.CodeRay .inline{color:#00} -.CodeRay .inline .inline{background:#ccc} -.CodeRay .inline .inline .inline{background:#bbb} -.CodeRay .inline .inline-delimiter{color:#d14} -.CodeRay .inline-delimiter{color:#d14} -.CodeRay .important{color:#555;font-weight:bold} -.CodeRay .interpreted{color:#b2b} -.CodeRay .instance-variable{color:#008080} -.CodeRay .label{color:#970} -.CodeRay .local-variable{color:#963} -.CodeRay .octal{color:#40e} -.CodeRay .predefined{color:#369} -.CodeRay .preprocessor{color:#579} -.CodeRay .pseudo-class{color:#555} -.CodeRay .directive{font-weight:bold} -.CodeRay .type{font-weight:bold} -.CodeRay .predefined-type{color:inherit} -.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold} -.CodeRay .key{color:#808} -.CodeRay .key .delimiter{color:#606} -.CodeRay .key .char{color:#80f} -.CodeRay .value{color:#088} -.CodeRay .regexp .delimiter{color:#808} -.CodeRay .regexp .content{color:#808} -.CodeRay .regexp .modifier{color:#808} -.CodeRay .regexp .char{color:#d14} -.CodeRay .regexp .function{color:#404;font-weight:bold} -.CodeRay .string{color:#d20} -.CodeRay .string .string .string{background:#ffd0d0} -.CodeRay .string .content{color:#d14} -.CodeRay .string .char{color:#d14} -.CodeRay .string .delimiter{color:#d14} -.CodeRay .shell{color:#d14} -.CodeRay .shell .delimiter{color:#d14} -.CodeRay .symbol{color:#990073} -.CodeRay .symbol .content{color:#a60} -.CodeRay .symbol .delimiter{color:#630} -.CodeRay .tag{color:#008080} -.CodeRay .tag-special{color:#d70} -.CodeRay .variable{color:#036} -.CodeRay .insert{background:#afa} -.CodeRay .delete{background:#faa} -.CodeRay .change{color:#aaf;background:#007} -.CodeRay .head{color:#f8f;background:#505} -.CodeRay .insert .insert{color:#080} -.CodeRay .delete .delete{color:#800} -.CodeRay .change .change{color:#66f} -.CodeRay .head .head{color:#f4f} - - body { - padding-top: 60px; - padding-bottom: 40px; - } - - .toc-like { - border-radius: 6px; - border: 1px solid #ccc; - } - - .toc-like li { - line-height: 30px; - text-indent: 10px; - } - - .toc-like li.custom-toc-header { - font-weight: bold; - background: #666; - color: white; - cursor: initial !important; - padding: 5px; - } - - .toc-like li.custom-toc-header a { - color: white; - font-style: normal; - text-shadow: none; - padding: 0; - } - - .toc-like li.custom-toc-header:hover a { - background: #666; - } - - .page-title { - text-align: left; - } - - #doc-content h2, - #doc-content h3, - #doc-content h4, - #doc-content h5, - #doc-content h6 { - padding-top: 0; - margin-top: 25px; - margin-bottom: 10px; - line-height: 1.4em; - } - - #doc-content h2 { - border-bottom: 1px solid lightgrey; - } - - - </style> - - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-36103647-1']); - _gaq.push(['_trackPageview']); - - (function () { - var ga = document.createElement('script'); - ga.type = 'text/javascript'; - ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; - s.parentNode.insertBefore(ga, s); - })(); - - </script> -</head> - -<body> - -<div class="navbar navbar-fixed-top"> - <div class="navbar-inner"> - <div class="container"> - <a class="btn btn-navbar" data-toggle="collapse" - data-target=".nav-collapse"> <span class="icon-bar"></span> <span - class="icon-bar"></span> <span class="icon-bar"></span> - </a> - <a class="brand logocolor" href="../index.html">Apache DeltaSpike</a> - - <div class="nav-collapse"> - - - <ul class="nav"> - <li><a href="../index.html">Home</a></li> - <li class="active"><a href="../documentation">Documentation</a></li> - <li ><a href="../javadoc.html">Javadoc</a></li> - <li ><a href="../source.html">Source</a></li> - <li ><a href="../download.html">Download</a></li> - <li ><a href="../community.html">Community</a></li> - <!-- <li><a href="./support.html">Support</a></li> --> - <li ><a href="../news.html">News</a></li> - </ul> - </div> - <!--/.nav-collapse --> - <form id="search-form" action="https://www.google.com/search" - method="get" class="navbar-search pull-right"> - <input value="deltaspike.apache.org" name="sitesearch" - type="hidden"> <input class="search-query" name="q" - id="query" type="text"> - </form> - </div> - </div> -</div> - -<div class="container"> - <div class="row-fluid"> - - - - <div class="span8"> - <div class="page-title"> - <h1>Overview of DeltaSpike</h1> - </div> - - <div id="doc-content"> - <div id="preamble"> -<div class="sectionbody"> -<div class="paragraph"> -<p>Apache DeltaSpike is a collection of portable CDI extensions. These ready-to-use modules enable you to integrate tested API extensions into your Java projects.</p> -</div> -<div class="paragraph"> -<p>DeltaSpike consists of a core module and a number of <a href="modules.html">optional modules</a> for providing additional -enterprise functionality to your applications. The modules include features for enhanced security with type-safe -control over method invocations, integration with schedulers, injection of CDI objects into validators, a -transactional context and scope, and much more. DeltaSpike also provides boot and shutdown control over CDI containers -in Java SE applications.</p> -</div> -<div class="paragraph"> -<p>As a CDI extension, DeltaSpike must be used in conjunction with a CDI implementation and supports both JBoss Weld -and Apache OpenWebBeans. DeltaSpike is tested on a range of application servers and CDI-enabled containers -including Apache TomEE, JBoss AS, WildFly, Oracle GlassFish, and Jetty.</p> -</div> -<div class="paragraph"> -<p>DeltaSpike provides a number of <a href="http://deltaspike.apache.org/examples.html">examples</a> to show you how to use and get -the most from this technology.</p> -</div> -</div> -</div> -<div class="sect1"> -<h2 id="_features">Features</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_java_ee_7_without_java_ee_7">Java EE 7 without Java EE 7!</h3> -<div class="paragraph"> -<p><strong>Transactional support for non-EJB beans:</strong> The Transactional Interceptor in DeltaSpike paved the way for -<code>@Transactional</code> in Java EE 7.</p> -</div> -<div class="paragraph"> -<p><strong>Injectable Servlet objects:</strong> Enables CDI injection in Servlets in Java EE 6/CDI 1.0 environments</p> -</div> -<div class="paragraph"> -<p><strong>Injectable resources:</strong> Configuration, resource bundles,…​ are easy to inject when using CDI and Apache DeltaSpike.</p> -</div> -<div class="paragraph"> -<p><strong>@Exclude annotation:</strong> Lets you prevent classes from being treated as CDI beans even if they are in a CDI-enabled -archive in a Java EE 6/CDI 1.0 environment where <code>@Vetoed</code> is unavailable or when you need to veto based on -ProjectStages or expressions.</p> -</div> -<div class="paragraph"> -<p><strong>Scheduling tasks</strong>: Async processes in a non-EE7 environment.</p> -</div> -<div class="paragraph"> -<p><strong>Bean Validation integration:</strong> Injection of CDI beans and EJBs into Constraint Validators.</p> -</div> -<div class="paragraph"> -<p><strong>BeanProvider:</strong> Access the BeanManager and CDI beans even in non-managed classes like JPA 2.0 EntityListeners or -Spring Beans.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_jsf_improvements">JSF Improvements</h3> -<div class="paragraph"> -<p><strong>Multi-window handling:</strong> Management of logical windows for batch jobs, browser tab separation in JSF and more.</p> -</div> -<div class="paragraph"> -<p><strong>Type-safe view-config:</strong> Lets you bind metadata (e.g. for security) to views with a flexible type-safe approach. It -provides a more solid navigation in case of JSF and helps a lot in the maintenance phase.</p> -</div> -<div class="paragraph"> -<p><strong>View-Controller:</strong> Based on type-safe view-configs, view-controller annotations provide a type-safe alternative to -standard tags.</p> -</div> -<div class="paragraph"> -<p><strong>Injection in Converters and Validators:</strong> Inject CDI beans and EJBs into JSF Converters and Validators.</p> -</div> -<div class="paragraph"> -<p><strong>JSF event broadcasting to CDI:</strong> Allows CDI to be notified about JSF events</p> -</div> -</div> -<div class="sect2"> -<h3 id="_productivity_improvements">Productivity Improvements</h3> -<div class="paragraph"> -<p><strong>Security based on annotations:</strong> The foundation for building a robust, capable and non-invasive security solution.</p> -</div> -<div class="paragraph"> -<p><strong>New CDI scopes:</strong> TransactionScoped, WindowScoped, ViewScoped, ViewAccess scope, Grouped conversation scope.</p> -</div> -<div class="paragraph"> -<p><strong>Container Control and Test Control:</strong> Java SE with CDI, all with a unifying API. Start, stop, add classes to a running CDI container.</p> -</div> -<div class="paragraph"> -<p><strong>Data Module:</strong> An out of the box entity framework solution complete with support for container or application managed persistence contexts, as well as JDBC.</p> -</div> -<div class="paragraph"> -<p><strong>Decoupled Exception handling:</strong> Event-based exception handling framework, similar to the CDI event observer mechanism.</p> -</div> -<div class="paragraph"> -<p><strong>JMX integration:</strong> Any CDI bean can be exposed via JMX easily with a single annotation.</p> -</div> -<div class="paragraph"> -<p><strong>Type-safe i18n messages:</strong> Localized messages are easy to use with an interface and a resource bundle, no more boilerplate and your messages now have context within the code.</p> -</div> -<div class="paragraph"> -<p><strong>Type-safe ProjectStages:</strong> Compared to ProjectStages in JSF, DeltaSpike provides a type-safe, but still extensible -approach which can be used in CDI-based applications.</p> -</div> -</div> -</div> -</div> -<div class="sect1"> -<h2 id="_background">Background</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_cdi">CDI</h3> -<div class="paragraph"> -<p>Java Contexts and Dependency Injection for the Java EE platform (<a href="https://jcp.org/en/jsr/detail?id=299">JSR 299</a>), - abbreviated <em>CDI</em> was introduced as part of Java EE 6. The core features of CDI are as follows:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>improved stateful object lifecycles with an additional context named <em>Conversation</em> that encompasses a series of requests within one session and lifecycle management by the container according to well-defined contexts</p> -</li> -<li> -<p>dependency injection conducted in a type-safe manner, with type checking conducted at compilation time so errors are exposed earlier and debugging is easier</p> -</li> -<li> -<p>event notification facility for object interaction</p> -</li> -<li> -<p>a better approach for interceptors with annotations binding interceptors to objects and with a new interceptor -named <em>decorator</em> that knows about individual bean attributes through inheritance and is more appropriate for use in - solving business problems</p> -</li> -<li> -<p>a Service Provider Interface (SPI) for developing portable extensions to the CDI container</p> -</li> -</ul> -</div> -<div class="paragraph"> -<p>CDI is a <a href="https://jcp.org/en/home/index">Java Community Process (JCP)</a> standard. All Java EE 6 compliant -application servers must provide support for CDI. <a href="http://weld.cdi-spec.org/">JBoss Weld</a> is a reference -implementation of the CDI specification and other spec-compliant implementations exist such as <a href="http://openwebbeans.apache.org/">Apache OpenWebBeans (OWB)</a>. While CDI is a Java EE 6 essential, CDI can also be used in Java SE environments with the aid of standalone CDI implementations.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_portable_cdi_extensions">Portable CDI Extensions</h3> -<div class="paragraph"> -<p>The CDI Service Provider Interface (SPI) is exposed to enable extension of the CDI feature set by third parties. -Portable CDI extensions extend CDI implementations and improve existing Java EE APIs by enabling integration of different technologies.</p> -</div> -<div class="paragraph"> -<p>As set out in the CDI specification, a portable CDI extension may integrate with a CDI container as follows:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>providing its own beans, interceptors and decorators to the container</p> -</li> -<li> -<p>injecting dependencies into its own objects using the dependency injection service</p> -</li> -<li> -<p>providing a context implementation for a custom scope</p> -</li> -<li> -<p>augmenting or overriding the annotation-based metadata with metadata from some other source</p> -</li> -</ul> -</div> -<div class="paragraph"> -<p>As indicated by the name, <em>portable</em> CDI extensions can be used with any spec-compliant CDI implementation.</p> -</div> -</div> -</div> -</div> -<div class="sect1"> -<h2 id="_next">Next</h2> -<div class="sectionbody"> -<div class="paragraph"> -<p>For instructions on how to start using DeltaSpike, see <a href="configure.html">Configure DeltaSpike in Your Projects</a> and <a href="cdiimp.html">Enable CDI For Your Java Environment</a>.</p> -</div> -</div> -</div> - </div> - </div> - - - <div class="span4"> - <div id="toc"> - <div class="moduledeps"> - <ul class="toc-like nav nav-list"> - - - - </ul> - </div> - </div> - - <div class="fallback-toc"> - <ul class="sectlevel1"> -<li><a href="#_features">Features</a> -<ul class="sectlevel2"> -<li><a href="#_java_ee_7_without_java_ee_7">Java EE 7 without Java EE 7!</a></li> -<li><a href="#_jsf_improvements">JSF Improvements</a></li> -<li><a href="#_productivity_improvements">Productivity Improvements</a></li> -</ul> -</li> -<li><a href="#_background">Background</a> -<ul class="sectlevel2"> -<li><a href="#_cdi">CDI</a></li> -<li><a href="#_portable_cdi_extensions">Portable CDI Extensions</a></li> -</ul> -</li> -<li><a href="#_next">Next</a></li> -</ul> - </div> - - </div> - - - </div> - <div class="row"> - <hr> - <footer> - <p>Copyright © 2011-2016 The Apache Software Foundation, - Licensed under the Apache License, Version 2.0.</p> - - <p>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p> - </footer> - </div> -</div> - -</body> +<!DOCTYPE html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="deltaspike-generate-pages"> + <meta name="author" content="chm"> + <!-- No caching headers --> + <meta http-equiv="cache-control" content="no-cache"/> + <meta http-equiv="pragma" content="no-cache"/> + <meta http-equiv="expires" content="-1"/> + + <title>Overview of DeltaSpike</title> + + <!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + --> + + <!-- Styles --> + <link href="https://deltaspike.apache.org/resources/css/bootstrap.css" rel="stylesheet"> + <link href="https://deltaspike.apache.org/resources/css/bootstrap-responsive.css" rel="stylesheet"> + <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.1.0/css/font-awesome.min.css" rel="stylesheet"> + + + + + <!-- Tocify - nice dynamic autoscrolling TOC --> + <link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tocify/1.9.0/stylesheets/jquery.tocify.min.css" rel="stylesheet"> + <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tocify/1.9.0/javascripts/jquery.tocify.min.js"></script> + + + <script type="text/javascript"> + $(function () { + $("#toc").tocify({ + scrollTo: 50, + extendPage: true, + context: "#doc-content", + selectors: "h2,h3,h4,h5" + }); + $(".fallback-toc").hide(); + }); + </script> + + + <style type="text/css"> + /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */ +/*pre.CodeRay {background-color:#f7f7f8;}*/ +.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em} +.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)} +.CodeRay .line-numbers strong{font-weight: normal} +table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none} +table.CodeRay td{vertical-align: top} +table.CodeRay td.line-numbers{text-align:right} +table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)} +table.CodeRay td.code{padding:0 0 0 .5em} +table.CodeRay td.code>pre{padding:0} +.CodeRay .debug{color:#fff !important;background:#000080 !important} +.CodeRay .annotation{color:#007} +.CodeRay .attribute-name{color:#000080} +.CodeRay .attribute-value{color:#700} +.CodeRay .binary{color:#509} +.CodeRay .comment{color:#998;font-style:italic} +.CodeRay .char{color:#04d} +.CodeRay .char .content{color:#04d} +.CodeRay .char .delimiter{color:#039} +.CodeRay .class{color:#458;font-weight:bold} +.CodeRay .complex{color:#a08} +.CodeRay .constant,.CodeRay .predefined-constant{color:#008080} +.CodeRay .color{color:#099} +.CodeRay .class-variable{color:#369} +.CodeRay .decorator{color:#b0b} +.CodeRay .definition{color:#099} +.CodeRay .delimiter{color:#000} +.CodeRay .doc{color:#970} +.CodeRay .doctype{color:#34b} +.CodeRay .doc-string{color:#d42} +.CodeRay .escape{color:#666} +.CodeRay .entity{color:#800} +.CodeRay .error{color:#808} +.CodeRay .exception{color:inherit} +.CodeRay .filename{color:#099} +.CodeRay .function{color:#900;font-weight:bold} +.CodeRay .global-variable{color:#008080} +.CodeRay .hex{color:#058} +.CodeRay .integer,.CodeRay .float{color:#099} +.CodeRay .include{color:#555} +.CodeRay .inline{color:#00} +.CodeRay .inline .inline{background:#ccc} +.CodeRay .inline .inline .inline{background:#bbb} +.CodeRay .inline .inline-delimiter{color:#d14} +.CodeRay .inline-delimiter{color:#d14} +.CodeRay .important{color:#555;font-weight:bold} +.CodeRay .interpreted{color:#b2b} +.CodeRay .instance-variable{color:#008080} +.CodeRay .label{color:#970} +.CodeRay .local-variable{color:#963} +.CodeRay .octal{color:#40e} +.CodeRay .predefined{color:#369} +.CodeRay .preprocessor{color:#579} +.CodeRay .pseudo-class{color:#555} +.CodeRay .directive{font-weight:bold} +.CodeRay .type{font-weight:bold} +.CodeRay .predefined-type{color:inherit} +.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold} +.CodeRay .key{color:#808} +.CodeRay .key .delimiter{color:#606} +.CodeRay .key .char{color:#80f} +.CodeRay .value{color:#088} +.CodeRay .regexp .delimiter{color:#808} +.CodeRay .regexp .content{color:#808} +.CodeRay .regexp .modifier{color:#808} +.CodeRay .regexp .char{color:#d14} +.CodeRay .regexp .function{color:#404;font-weight:bold} +.CodeRay .string{color:#d20} +.CodeRay .string .string .string{background:#ffd0d0} +.CodeRay .string .content{color:#d14} +.CodeRay .string .char{color:#d14} +.CodeRay .string .delimiter{color:#d14} +.CodeRay .shell{color:#d14} +.CodeRay .shell .delimiter{color:#d14} +.CodeRay .symbol{color:#990073} +.CodeRay .symbol .content{color:#a60} +.CodeRay .symbol .delimiter{color:#630} +.CodeRay .tag{color:#008080} +.CodeRay .tag-special{color:#d70} +.CodeRay .variable{color:#036} +.CodeRay .insert{background:#afa} +.CodeRay .delete{background:#faa} +.CodeRay .change{color:#aaf;background:#007} +.CodeRay .head{color:#f8f;background:#505} +.CodeRay .insert .insert{color:#080} +.CodeRay .delete .delete{color:#800} +.CodeRay .change .change{color:#66f} +.CodeRay .head .head{color:#f4f} + + body { + padding-top: 60px; + padding-bottom: 40px; + } + + .toc-like { + border-radius: 6px; + border: 1px solid #ccc; + } + + .toc-like li { + line-height: 30px; + text-indent: 10px; + } + + .toc-like li.custom-toc-header { + font-weight: bold; + background: #666; + color: white; + cursor: initial !important; + padding: 5px; + } + + .toc-like li.custom-toc-header a { + color: white; + font-style: normal; + text-shadow: none; + padding: 0; + } + + .toc-like li.custom-toc-header:hover a { + background: #666; + } + + .page-title { + text-align: left; + } + + #doc-content h2, + #doc-content h3, + #doc-content h4, + #doc-content h5, + #doc-content h6 { + padding-top: 0; + margin-top: 25px; + margin-bottom: 10px; + line-height: 1.4em; + } + + #doc-content h2 { + border-bottom: 1px solid lightgrey; + } + + + </style> + + <script type="text/javascript"> + + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-36103647-1']); + _gaq.push(['_trackPageview']); + + (function () { + var ga = document.createElement('script'); + ga.type = 'text/javascript'; + ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; + s.parentNode.insertBefore(ga, s); + })(); + + </script> +</head> + +<body> + +<div class="navbar navbar-fixed-top"> + <div class="navbar-inner"> + <div class="container"> + <a class="btn btn-navbar" data-toggle="collapse" + data-target=".nav-collapse"> <span class="icon-bar"></span> <span + class="icon-bar"></span> <span class="icon-bar"></span> + </a> + <a class="brand logocolor" href="../index.html">Apache DeltaSpike</a> + + <div class="nav-collapse"> + + + <ul class="nav"> + <li><a href="../index.html">Home</a></li> + <li class="active"><a href="../documentation">Documentation</a></li> + <li ><a href="../javadoc.html">Javadoc</a></li> + <li ><a href="../source.html">Source</a></li> + <li ><a href="../download.html">Download</a></li> + <li ><a href="../community.html">Community</a></li> + <!-- <li><a href="./support.html">Support</a></li> --> + <li ><a href="../news.html">News</a></li> + </ul> + </div> + <!--/.nav-collapse --> + <form id="search-form" action="https://www.google.com/search" + method="get" class="navbar-search pull-right"> + <input value="deltaspike.apache.org" name="sitesearch" + type="hidden"> <input class="search-query" name="q" + id="query" type="text"> + </form> + </div> + </div> +</div> + +<div class="container"> + <div class="row-fluid"> + + + + <div class="span8"> + <div class="page-title"> + <h1>Overview of DeltaSpike</h1> + </div> + + <div id="doc-content"> + <div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"> +<p>Apache DeltaSpike is a collection of portable CDI extensions. These ready-to-use modules enable you to integrate tested API extensions into your Java projects.</p> +</div> +<div class="paragraph"> +<p>DeltaSpike consists of a core module and a number of <a href="modules.html">optional modules</a> for providing additional +enterprise functionality to your applications. The modules include features for enhanced security with type-safe +control over method invocations, integration with schedulers, injection of CDI objects into validators, a +transactional context and scope, and much more. DeltaSpike also provides boot and shutdown control over CDI containers +in Java SE applications.</p> +</div> +<div class="paragraph"> +<p>As a CDI extension, DeltaSpike must be used in conjunction with a CDI implementation and supports both JBoss Weld +and Apache OpenWebBeans. DeltaSpike is tested on a range of application servers and CDI-enabled containers +including Apache TomEE, JBoss AS, WildFly, Oracle GlassFish, and Jetty.</p> +</div> +<div class="paragraph"> +<p>DeltaSpike provides a number of <a href="http://deltaspike.apache.org/examples.html">examples</a> to show you how to use and get +the most from this technology.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_features">Features</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_java_ee_7_without_java_ee_7">Java EE 7 without Java EE 7!</h3> +<div class="paragraph"> +<p><strong>Transactional support for non-EJB beans:</strong> The Transactional Interceptor in DeltaSpike paved the way for +<code>@Transactional</code> in Java EE 7.</p> +</div> +<div class="paragraph"> +<p><strong>Injectable Servlet objects:</strong> Enables CDI injection in Servlets in Java EE 6/CDI 1.0 environments</p> +</div> +<div class="paragraph"> +<p><strong>Injectable resources:</strong> Configuration, resource bundles,…​ are easy to inject when using CDI and Apache DeltaSpike.</p> +</div> +<div class="paragraph"> +<p><strong>@Exclude annotation:</strong> Lets you prevent classes from being treated as CDI beans even if they are in a CDI-enabled +archive in a Java EE 6/CDI 1.0 environment where <code>@Vetoed</code> is unavailable or when you need to veto based on +ProjectStages or expressions.</p> +</div> +<div class="paragraph"> +<p><strong>Scheduling tasks</strong>: Async processes in a non-EE7 environment.</p> +</div> +<div class="paragraph"> +<p><strong>Bean Validation integration:</strong> Injection of CDI beans and EJBs into Constraint Validators.</p> +</div> +<div class="paragraph"> +<p><strong>BeanProvider:</strong> Access the BeanManager and CDI beans even in non-managed classes like JPA 2.0 EntityListeners or +Spring Beans.</p> +</div> +</div> +<div class="sect2"> +<h3 id="_jsf_improvements">JSF Improvements</h3> +<div class="paragraph"> +<p><strong>Multi-window handling:</strong> Management of logical windows for batch jobs, browser tab separation in JSF and more.</p> +</div> +<div class="paragraph"> +<p><strong>Type-safe view-config:</strong> Lets you bind metadata (e.g. for security) to views with a flexible type-safe approach. It +provides a more solid navigation in case of JSF and helps a lot in the maintenance phase.</p> +</div> +<div class="paragraph"> +<p><strong>View-Controller:</strong> Based on type-safe view-configs, view-controller annotations provide a type-safe alternative to +standard tags.</p> +</div> +<div class="paragraph"> +<p><strong>Injection in Converters and Validators:</strong> Inject CDI beans and EJBs into JSF Converters and Validators.</p> +</div> +<div class="paragraph"> +<p><strong>JSF event broadcasting to CDI:</strong> Allows CDI to be notified about JSF events</p> +</div> +</div> +<div class="sect2"> +<h3 id="_productivity_improvements">Productivity Improvements</h3> +<div class="paragraph"> +<p><strong>Security based on annotations:</strong> The foundation for building a robust, capable and non-invasive security solution.</p> +</div> +<div class="paragraph"> +<p><strong>New CDI scopes:</strong> TransactionScoped, WindowScoped, ViewScoped, ViewAccess scope, Grouped conversation scope.</p> +</div> +<div class="paragraph"> +<p><strong>Container Control and Test Control:</strong> Java SE with CDI, all with a unifying API. Start, stop, add classes to a running CDI container.</p> +</div> +<div class="paragraph"> +<p><strong>Data Module:</strong> An out of the box entity framework solution complete with support for container or application managed persistence contexts, as well as JDBC.</p> +</div> +<div class="paragraph"> +<p><strong>Decoupled Exception handling:</strong> Event-based exception handling framework, similar to the CDI event observer mechanism.</p> +</div> +<div class="paragraph"> +<p><strong>JMX integration:</strong> Any CDI bean can be exposed via JMX easily with a single annotation.</p> +</div> +<div class="paragraph"> +<p><strong>Type-safe i18n messages:</strong> Localized messages are easy to use with an interface and a resource bundle, no more boilerplate and your messages now have context within the code.</p> +</div> +<div class="paragraph"> +<p><strong>Type-safe ProjectStages:</strong> Compared to ProjectStages in JSF, DeltaSpike provides a type-safe, but still extensible +approach which can be used in CDI-based applications.</p> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_background">Background</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_cdi">CDI</h3> +<div class="paragraph"> +<p>Java Contexts and Dependency Injection for the Java EE platform (<a href="https://jcp.org/en/jsr/detail?id=299">JSR 299</a>), + abbreviated <em>CDI</em> was introduced as part of Java EE 6. The core features of CDI are as follows:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p>improved stateful object lifecycles with an additional context named <em>Conversation</em> that encompasses a series of requests within one session and lifecycle management by the container according to well-defined contexts</p> +</li> +<li> +<p>dependency injection conducted in a type-safe manner, with type checking conducted at compilation time so errors are exposed earlier and debugging is easier</p> +</li> +<li> +<p>event notification facility for object interaction</p> +</li> +<li> +<p>a better approach for interceptors with annotations binding interceptors to objects and with a new interceptor +named <em>decorator</em> that knows about individual bean attributes through inheritance and is more appropriate for use in + solving business problems</p> +</li> +<li> +<p>a Service Provider Interface (SPI) for developing portable extensions to the CDI container</p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>CDI is a <a href="https://jcp.org/en/home/index">Java Community Process (JCP)</a> standard. All Java EE 6 compliant +application servers must provide support for CDI. <a href="http://weld.cdi-spec.org/">JBoss Weld</a> is a reference +implementation of the CDI specification and other spec-compliant implementations exist such as <a href="http://openwebbeans.apache.org/">Apache OpenWebBeans (OWB)</a>. While CDI is a Java EE 6 essential, CDI can also be used in Java SE environments with the aid of standalone CDI implementations.</p> +</div> +</div> +<div class="sect2"> +<h3 id="_portable_cdi_extensions">Portable CDI Extensions</h3> +<div class="paragraph"> +<p>The CDI Service Provider Interface (SPI) is exposed to enable extension of the CDI feature set by third parties. +Portable CDI extensions extend CDI implementations and improve existing Java EE APIs by enabling integration of different technologies.</p> +</div> +<div class="paragraph"> +<p>As set out in the CDI specification, a portable CDI extension may integrate with a CDI container as follows:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p>providing its own beans, interceptors and decorators to the container</p> +</li> +<li> +<p>injecting dependencies into its own objects using the dependency injection service</p> +</li> +<li> +<p>providing a context implementation for a custom scope</p> +</li> +<li> +<p>augmenting or overriding the annotation-based metadata with metadata from some other source</p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>As indicated by the name, <em>portable</em> CDI extensions can be used with any spec-compliant CDI implementation.</p> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_next">Next</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>For instructions on how to start using DeltaSpike, see <a href="configure.html">Configure DeltaSpike in Your Projects</a> and <a href="cdiimp.html">Enable CDI For Your Java Environment</a>.</p> +</div> +</div> +</div> + </div> + </div> + + + <div class="span4"> + <div id="toc"> + <div class="moduledeps"> + <ul class="toc-like nav nav-list"> + + + + </ul> + </div> + </div> + + <div class="fallback-toc"> + <ul class="sectlevel1"> +<li><a href="#_features">Features</a> +<ul class="sectlevel2"> +<li><a href="#_java_ee_7_without_java_ee_7">Java EE 7 without Java EE 7!</a></li> +<li><a href="#_jsf_improvements">JSF Improvements</a></li> +<li><a href="#_productivity_improvements">Productivity Improvements</a></li> +</ul> +</li> +<li><a href="#_background">Background</a> +<ul class="sectlevel2"> +<li><a href="#_cdi">CDI</a></li> +<li><a href="#_portable_cdi_extensions">Portable CDI Extensions</a></li> +</ul> +</li> +<li><a href="#_next">Next</a></li> +</ul> + </div> + + </div> + + + </div> + <div class="row"> + <hr> + <footer> + <p>Copyright © 2011-2016 The Apache Software Foundation, + Licensed under the Apache License, Version 2.0.</p> + + <p>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p> + </footer> + </div> +</div> + +</body> </html> \ No newline at end of file
