deltaspike-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rafab...@apache.org
Subject svn commit: r1645776 [3/7] - /deltaspike/site/trunk/content/documentation/
Date Mon, 15 Dec 2014 22:31:28 GMT
Modified: deltaspike/site/trunk/content/documentation/data.html
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/data.html?rev=1645776&r1=1645775&r2=1645776&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/data.html (original)
+++ deltaspike/site/trunk/content/documentation/data.html Mon Dec 15 22:31:27 2014
@@ -134,7 +134,7 @@ body {
 					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="http://deltaspike.apache.org/index.html">Apache DeltaSpike</a>
+					href="http://deltaspike.apache.org/index.html">Apache DeltaSpike []</a>
 				<div class="nav-collapse">
 					<ul class="nav">
 						<li class="active"><a
@@ -169,30 +169,32 @@ body {
 
 				<div id="toc" class="toc">
        	 		<ul class="sectlevel1">
-<li><a href="#_introduction">Introduction</a></li>
-<li><a href="#_installation">Installation</a>
+<li><a href="#_overview">Overview</a></li>
+<li><a href="#_configure_your_projects">Configure Your Projects</a>
 <ul class="sectlevel2">
-<li><a href="#_prerequisites">Prerequisites</a></li>
-<li><a href="#_maven_dependency_configuration">Maven Dependency Configuration</a></li>
-<li><a href="#_setup_your_application">Setup your application</a></li>
+<li><a href="#_1_declare_data_module_dependencies">1. Declare Data Module Dependencies</a></li>
+<li><a href="#_2_complete_additional_java_environment_configuration">2. Complete Additional Java Environment Configuration</a></li>
+<li><a href="#_3_complete_additional_project_configuration">3. Complete Additional Project Configuration</a></li>
 </ul>
 </li>
-<li><a href="#_core_concepts">Core Concepts</a>
+<li><a href="#_use_the_module_features">Use the Module Features</a>
 <ul class="sectlevel2">
-<li><a href="#_repositories">Repositories</a>
+<li><a href="#_core_concepts">Core Concepts</a>
 <ul class="sectlevel3">
-<li><a href="#_the_code_entityrepository_code_interface">The <code>EntityRepository</code> interface</a></li>
-<li><a href="#_the_code_abstractentityrepository_code_class">The <code>AbstractEntityRepository</code> class</a></li>
-<li><a href="#_deactivating_repositories">Deactivating Repositories</a></li>
+<li><a href="#_repositories">Repositories</a>
+<ul class="sectlevel4">
+<li><a href="#_the_code_entityrepository_code_interface">The <code>EntityRepository</code> Interface</a></li>
+<li><a href="#_the_code_abstractentityrepository_code_class">The <code>AbstractEntityRepository</code> Class</a></li>
 </ul>
 </li>
+<li><a href="#_deactivating_repositories">Deactivating Repositories</a></li>
 <li><a href="#_using_multiple_code_entitymanager_code">Using Multiple <code>EntityManager</code></a></li>
-<li><a href="#_other_code_entitymanager_code_methods">Other <code>EntityManager</code> methods</a></li>
+<li><a href="#_other_code_entitymanager_code_methods">Other <code>EntityManager</code> Methods</a></li>
 </ul>
 </li>
 <li><a href="#_query_method_expressions">Query Method Expressions</a>
-<ul class="sectlevel2">
-<li><a href="#_using_method_expressions">Using method expressions</a></li>
+<ul class="sectlevel3">
+<li><a href="#_using_method_expressions">Using Method Expressions</a></li>
 <li><a href="#_query_ordering">Query Ordering</a></li>
 <li><a href="#_nested_properties">Nested Properties</a></li>
 <li><a href="#_query_options">Query Options</a></li>
@@ -200,7 +202,7 @@ body {
 </ul>
 </li>
 <li><a href="#_query_annotations">Query Annotations</a>
-<ul class="sectlevel2">
+<ul class="sectlevel3">
 <li><a href="#_using_query_annotations">Using Query Annotations</a></li>
 <li><a href="#_annotation_options">Annotation Options</a></li>
 <li><a href="#_query_options_2">Query Options</a></li>
@@ -213,18 +215,18 @@ body {
 </li>
 <li><a href="#_transactions">Transactions</a></li>
 <li><a href="#_extensions">Extensions</a>
-<ul class="sectlevel2">
+<ul class="sectlevel3">
 <li><a href="#_query_delegates">Query Delegates</a></li>
 <li><a href="#_implementing_the_query_delegate">Implementing the Query Delegate</a></li>
 </ul>
 </li>
 <li><a href="#_mapping">Mapping</a>
-<ul class="sectlevel2">
+<ul class="sectlevel3">
 <li><a href="#_simple_mappings">Simple Mappings</a></li>
 </ul>
 </li>
 <li><a href="#_jpa_criteria_api_support">JPA Criteria API Support</a>
-<ul class="sectlevel2">
+<ul class="sectlevel3">
 <li><a href="#_api_usage">API Usage</a></li>
 <li><a href="#_joins">Joins</a></li>
 <li><a href="#_boolean_operators">Boolean Operators</a></li>
@@ -232,10 +234,10 @@ body {
 </ul>
 </li>
 <li><a href="#_auditing">Auditing</a>
-<ul class="sectlevel2">
+<ul class="sectlevel3">
 <li><a href="#_activating_auditing">Activating Auditing</a></li>
 <li><a href="#_using_auditing_annotations">Using Auditing Annotations</a>
-<ul class="sectlevel3">
+<ul class="sectlevel4">
 <li><a href="#_updating_timestamps">Updating Timestamps</a></li>
 <li><a href="#_who_s_changing_my_entities">Who&#8217;s Changing My Entities?</a></li>
 </ul>
@@ -243,29 +245,18 @@ body {
 </ul>
 </li>
 </ul>
+</li>
+</ul>
        	 		<hr>	
        	 		
 				<div class="sect1">
-<h2 id="_introduction">Introduction</h2>
+<h2 id="_overview">Overview</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>The repository pattern used to be one of the core J2EE patterns and
-could be found in most enterprise applications reading and writing data
-to persistent stores. While the Java Persistence API (JPA) as part of
-Java EE 5+ has replaced many aspects of the repository pattern, it is
-still a good approach to centralize complex query logic related to
-specific entities.</p>
-</div>
-<div class="paragraph">
-<p>The DeltaSpike Data module is intended to help you simplifying your
-repository layer. While you will have complex queries in a repository
-requiring your full attention, there will also be many simple ones often
-requiring boilerplate code and clutter. This is where the DeltaSpike
-Data module will help you keeping your repository lean so you can focus
-on the though things.</p>
+<p>The Data module provides capabilities for implementing repository patterns and thereby simplifying the repository layer. Repository patterns are ideal for simple queries that require boilerplate code, enabling cenertalization of query logic and consequently reducing code duplication and improving testability.</p>
 </div>
 <div class="paragraph">
-<p>The code sample below will give you a quick overview on the common usage
+<p>The code sample below gives you a quick overview on the common usage
 scenarios of the data module:</p>
 </div>
 <div class="listingblock">
@@ -314,40 +305,15 @@ chapters.</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_installation">Installation</h2>
+<h2 id="_configure_your_projects">Configure Your Projects</h2>
 <div class="sectionbody">
-<div class="sect2">
-<h3 id="_prerequisites">Prerequisites</h3>
 <div class="paragraph">
-<p>The simplest way using the DeltaSpike Data module is to run your
-application in a Java EE container supporting at least the Java EE 6 Web
-Profile. Other configurations like running it inside Tomcat or even a
-Java SE application should be possible - you need to include a JPA
-provider as well as a CDI container to your application manually.</p>
-</div>
-<div class="paragraph">
-<p>Also note that in order to use abstract classes as repositories, this
-currently requires the presence of the
-<a href="http://www.javassist.org">javassist</a> library in your classpath.</p>
-</div>
-<div class="paragraph">
-<p><strong>CAUTION:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>Using DeltaSpike Data in an EAR deployment is currently restricted to
-annotation-based entities.</p>
-</div>
-</blockquote>
-</div>
+<p>The configuration information provided here is for Maven-based projects and it assumes that you have already declared the DeltaSpike version and DeltaSpike Core module for your projects, as detailed in <a href="configure.html">Configure DeltaSpike in Your Projects</a>. For Maven-independent projects, see <a href="configure.html#config-maven-indep">Configure DeltaSpike in Maven-independent Projects</a>.</p>
 </div>
 <div class="sect2">
-<h3 id="_maven_dependency_configuration">Maven Dependency Configuration</h3>
+<h3 id="_1_declare_data_module_dependencies">1. Declare Data Module Dependencies</h3>
 <div class="paragraph">
-<p>If you are using Maven as your build tool, you can add the following
-dependencies to your <code>pom.xml</code> file to include the DeltaSpike data
-module:</p>
+<p>Add the Data module to the list of dependencies in the project <code>pom.xml</code> file using this code snippet:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -357,6 +323,7 @@ module:</p>
     <span class="tag">&lt;version&gt;</span>${deltaspike.version}<span class="tag">&lt;/version&gt;</span>
     <span class="tag">&lt;scope&gt;</span>compile<span class="tag">&lt;/scope&gt;</span>
 <span class="tag">&lt;/dependency&gt;</span>
+
 <span class="tag">&lt;dependency&gt;</span>
     <span class="tag">&lt;groupId&gt;</span>org.apache.deltaspike.modules<span class="tag">&lt;/groupId&gt;</span>
     <span class="tag">&lt;artifactId&gt;</span>deltaspike-data-module-impl<span class="tag">&lt;/artifactId&gt;</span>
@@ -365,36 +332,35 @@ module:</p>
 <span class="tag">&lt;/dependency&gt;</span></code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p><strong>TIP:</strong></p>
 </div>
-<div class="quoteblock">
-<blockquote>
+<div class="sect2">
+<h3 id="_2_complete_additional_java_environment_configuration">2. Complete Additional Java Environment Configuration</h3>
 <div class="paragraph">
-<p>Substitute the expression <code>${deltaspike.version}</code> with the most recent
-or appropriate version of DeltaSpike. Alternatively, you can create a
-Maven user-defined property to satisfy this substitution so you can
-centrally manage the version.</p>
+<p>The Data module requires a JPA implementation to be available in the Java environment where your projects are deployed.</p>
 </div>
-</blockquote>
+<div class="paragraph">
+<p>The simplest way using the DeltaSpike Data module is to run your
+application in a Java EE container supporting at least the Java EE6 Web
+Profile. Other configurations like running it inside Tomcat or even a
+Java SE application should be possible - you need to include a JPA
+provider as well as a CDI container to your application manually.</p>
 </div>
 <div class="paragraph">
-<p>Including the API at compile time and only include the implementation at
-runtime protects you from inadvertantly depending on an implementation
-class.</p>
+<p>Also note that in order to use abstract classes as repositories, this
+currently requires the presence of the
+<a href="http://www.javassist.org">javassist</a> library in your classpath.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_setup_your_application">Setup your application</h3>
+<h3 id="_3_complete_additional_project_configuration">3. Complete Additional Project Configuration</h3>
 <div class="paragraph">
 <p>DeltaSpike Data requires an <code>EntityManager</code> exposed via a CDI producer -
-which is common practice in Java EE 6 applications.</p>
+which is common practice in Java EE6 applications.</p>
 </div>
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">EntityManagerProducer</span>
 {
-
     <span class="annotation">@PersistenceUnit</span>
     <span class="directive">private</span> EntityManagerFactory emf;
 
@@ -411,7 +377,6 @@ which is common practice in Java EE 6 ap
             em.close();
         }
     }
-
 }</code></pre>
 </div>
 </div>
@@ -434,21 +399,33 @@ configure the <code>TransactionStrategy<
 <span class="tag">&lt;/beans&gt;</span></code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p>You&#8217;re now ready to use repositories in your application!</p>
-</div>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_core_concepts">Core Concepts</h2>
+<h2 id="_use_the_module_features">Use the Module Features</h2>
 <div class="sectionbody">
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">
+Using the DeltaSpike Data module in an EAR deployment is currently restricted to
+annotation-based entities.
+</td>
+</tr>
+</table>
+</div>
 <div class="sect2">
-<h3 id="_repositories">Repositories</h3>
+<h3 id="_core_concepts">Core Concepts</h3>
+<div class="sect3">
+<h4 id="_repositories">Repositories</h4>
 <div class="paragraph">
 <p>With the DeltaSpike Data module, it is possible to make a repository out
 of basically any abstract class or interface (using a concrete class
-will work too, but you won&#8217;t be able to use most of the CDI extension
+will work too, but you will not be able to use most of the CDI extension
 features). All that is required is to mark the type as such with a
 simple annotation:</p>
 </div>
@@ -474,8 +451,8 @@ classes or interfaces this is the only w
 entity the repository relates to. In order to simplify this, DeltaSpike
 Data provides several base types.</p>
 </div>
-<div class="sect3">
-<h4 id="_the_code_entityrepository_code_interface">The <code>EntityRepository</code> interface</h4>
+<div class="sect4">
+<h5 id="_the_code_entityrepository_code_interface">The <code>EntityRepository</code> Interface</h5>
 <div class="paragraph">
 <p>Although mainly intended to hold complex query logic, working with both
 a repository and an <code>EntityManager</code> in the service layer might
@@ -533,23 +510,25 @@ Person repository, this might look like
 }</code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p><strong>TIP:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>Annotations on interfaces do not inherit. If the <code>EntityRepository</code>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+Annotations on interfaces do not inherit. If the <code>EntityRepository</code>
 interface is extended by another interface adding some more common
 methods, it is not possible to simply add the annotation there. It needs
 to go on each concrete repository. The same is not true if a base class
-is introduced, as we see in the next chapter.</p>
-</div>
-</blockquote>
+is introduced, as we see in the next chapter.
+</td>
+</tr>
+</table>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_the_code_abstractentityrepository_code_class">The <code>AbstractEntityRepository</code> class</h4>
+<div class="sect4">
+<h5 id="_the_code_abstractentityrepository_code_class">The <code>AbstractEntityRepository</code> Class</h5>
 <div class="paragraph">
 <p>This class is an implementation of the <code>EntityRepository</code> interface and
 provides additional functionality when custom query logic needs also to
@@ -571,6 +550,7 @@ be implemented in the repository.</p>
 </div>
 </div>
 </div>
+</div>
 <div class="sect3">
 <h4 id="_deactivating_repositories">Deactivating Repositories</h4>
 <div class="paragraph">
@@ -596,9 +576,8 @@ be implemented in the repository.</p>
 </div>
 </div>
 </div>
-</div>
-<div class="sect2">
-<h3 id="_using_multiple_code_entitymanager_code">Using Multiple <code>EntityManager</code></h3>
+<div class="sect3">
+<h4 id="_using_multiple_code_entitymanager_code">Using Multiple <code>EntityManager</code></h4>
 <div class="paragraph">
 <p>While most applications will run just fine with a single
 <code>EntityManager</code>, there might be setups where multiple data sources are
@@ -627,19 +606,19 @@ used. This can be configured with the <c
 </div>
 </div>
 <div class="paragraph">
-<p>Again, note that annotations on interfaces do not inherit, so it&#8217;s not
+<p>Again, note that annotations on interfaces do not inherit, so it is not
 possible to create something like a base <code>CrmRepository</code> interface with
 the <code>@EntityManagerConfig</code> and then extending / implementing this
 interface.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_other_code_entitymanager_code_methods">Other <code>EntityManager</code> methods</h3>
+<div class="sect3">
+<h4 id="_other_code_entitymanager_code_methods">Other <code>EntityManager</code> Methods</h4>
 <div class="paragraph">
 <p>While the <code>EntityRepository</code> methods should cover most interactions
 normally done with an <code>EntityManager</code>, for some specific cases it might
 still be useful to have one or the other method available. For this
-case, it&#8217;s possible to extend / implement the <code>EntityManagerDelegate</code>
+case, it is possible to extend / implement the <code>EntityManagerDelegate</code>
 interface for repositories, which offers most other methods available in
 a JPA 2.0 <code>EntityManager</code>:</p>
 </div>
@@ -654,18 +633,16 @@ a JPA 2.0 <code>EntityManager</code>:</p
 </div>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="_query_method_expressions">Query Method Expressions</h2>
-<div class="sectionbody">
+<div class="sect2">
+<h3 id="_query_method_expressions">Query Method Expressions</h3>
 <div class="paragraph">
 <p>Good naming is a difficult aspects in software engineering. A good
 method name usually makes comments unnecessary and states exactly what
 the method does. And with method expressions, the method name is
 actually the implementation!</p>
 </div>
-<div class="sect2">
-<h3 id="_using_method_expressions">Using method expressions</h3>
+<div class="sect3">
+<h4 id="_using_method_expressions">Using Method Expressions</h4>
 <div class="paragraph">
 <p>Let&#8217;s start by looking at a (simplified for readability) example:</p>
 </div>
@@ -809,10 +786,10 @@ expressions:</p>
 you will notice early in case you have a typo in those expressions.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_query_ordering">Query Ordering</h3>
+<div class="sect3">
+<h4 id="_query_ordering">Query Ordering</h4>
 <div class="paragraph">
-<p>Beside comparators it&#8217;s also possible to sort queries by using the
+<p>Beside comparators it is also possible to sort queries by using the
 <code>OrderBy</code> keyword, followed by the attribute name and the direction
 (<code>Asc</code> or <code>Desc</code>).</p>
 </div>
@@ -828,8 +805,8 @@ you will notice early in case you have a
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_nested_properties">Nested Properties</h3>
+<div class="sect3">
+<h4 id="_nested_properties">Nested Properties</h4>
 <div class="paragraph">
 <p>To create a comparison on a nested property, the traversal parts can be
 separated by a <code>_</code>:</p>
@@ -846,8 +823,8 @@ separated by a <code>_</code>:</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_query_options">Query Options</h3>
+<div class="sect3">
+<h4 id="_query_options">Query Options</h4>
 <div class="paragraph">
 <p>DeltaSpike supports query options on method expressions. If you want to
 page a query, you can change the first result as well as the maximum
@@ -865,8 +842,8 @@ number of results returned:</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_method_prefix">Method Prefix</h3>
+<div class="sect3">
+<h4 id="_method_prefix">Method Prefix</h4>
 <div class="paragraph">
 <p>In case the <code>findBy</code> prefix does not comply with your team conventions,
 this can be adapted:</p>
@@ -884,10 +861,8 @@ this can be adapted:</p>
 </div>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="_query_annotations">Query Annotations</h2>
-<div class="sectionbody">
+<div class="sect2">
+<h3 id="_query_annotations">Query Annotations</h3>
 <div class="paragraph">
 <p>While method expressions are fine for simple queries, they will often
 reach their limit once things get slightly more complex. Another aspect
@@ -896,8 +871,8 @@ best performance is over named queries.
 cases, the DeltaSpike Data module supports also annotating methods for
 more control on the generated query.</p>
 </div>
-<div class="sect2">
-<h3 id="_using_query_annotations">Using Query Annotations</h3>
+<div class="sect3">
+<h4 id="_using_query_annotations">Using Query Annotations</h4>
 <div class="paragraph">
 <p>The simples way to define a specific query is by annotating a method and
 providing the JPQL query string which has to be executed. In code, this
@@ -954,16 +929,18 @@ in the method. If the named query requir
 this can be done by annotating the arguments with the <code>@QueryParam</code>
 annotation.</p>
 </div>
-<div class="paragraph">
-<p><strong>TIP:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>Java does not preserve method parameter names (yet), that&#8217;s why the
-annotation is needed.</p>
-</div>
-</blockquote>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+Java does not preserve method parameter names (yet), that&#8217;s why the
+annotation is needed.
+</td>
+</tr>
+</table>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -1007,8 +984,8 @@ not JPQL but plain SQL:</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_annotation_options">Annotation Options</h3>
+<div class="sect3">
+<h4 id="_annotation_options">Annotation Options</h4>
 <div class="paragraph">
 <p>Beside providing a query string or reference, the <code>@Query</code> annotation
 provides also two more attributes:</p>
@@ -1051,8 +1028,8 @@ provides also two more attributes:</p>
 <p>Note that these options can also be applied to method expressions.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_query_options_2">Query Options</h3>
+<div class="sect3">
+<h4 id="_query_options_2">Query Options</h4>
 <div class="paragraph">
 <p>All the query options you have seen so far are more or less static. But
 sometimes you might want to apply certain query options dynamically. For
@@ -1086,25 +1063,27 @@ the query:</p>
     .getResultList();</code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p><strong>CAUTION:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>Note that sorting is only applicable to method expressions or non-named
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">
+Note that sorting is only applicable to method expressions or non-named
 queries. For named queries it might be possible, but is currently only
-supported for Hibernate, EclipseLink and OpenJPA.</p>
-</div>
-</blockquote>
+supported for Hibernate, EclipseLink and OpenJPA.
+</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
 <p>Note that the <code>QueryResult</code> return type can also be used with method
 expressions.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_pagination">Pagination</h3>
+<div class="sect3">
+<h4 id="_pagination">Pagination</h4>
 <div class="paragraph">
 <p>We introduced the <code>QueryResult</code> type in the last chapter, which can also
 be used for pagination:</p>
@@ -1125,8 +1104,8 @@ QueryResult&lt;Person&gt; paged = person
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_bulk_operations">Bulk Operations</h3>
+<div class="sect3">
+<h4 id="_bulk_operations">Bulk Operations</h4>
 <div class="paragraph">
 <p>While reading entities and updating them one by one might be fine for
 many use cases, applying bulk updates or deletes is also a common usage
@@ -1151,8 +1130,8 @@ marking annotation <code>@Modifying</cod
 the number of entities affected by the bulk operation.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_optional_query_results">Optional Query Results</h3>
+<div class="sect3">
+<h4 id="_optional_query_results">Optional Query Results</h4>
 <div class="paragraph">
 <p>The JPA spec requires to throw exceptions in case the
 <code>getSingleResult()</code> method does either return no or more than one
@@ -1163,14 +1142,14 @@ might roll it back).</p>
 <div class="paragraph">
 <p>DeltaSpike Data gives the option to change this to the way it makes most
 sense for the current usecase. While the default behavior is still fully
-aligned with JPA, it&#8217;s also possible to request optional query results.</p>
+aligned with JPA, it is also possible to request optional query results.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_zero_or_one_result">Zero or One Result</h3>
+<div class="sect3">
+<h4 id="_zero_or_one_result">Zero or One Result</h4>
 <div class="paragraph">
 <p>With this option, the query returns <code>null</code> instead of throwing a
-<code>NoResultException</code> when there is no result returned. It&#8217;s usable with
+<code>NoResultException</code> when there is no result returned. It is usable with
 method expressions, <code>Query</code> annotations and <code>QueryResult&lt;E&gt;</code> calls.</p>
 </div>
 <div class="listingblock">
@@ -1197,10 +1176,10 @@ with the <code>SingleResultType.OPTIONAL
 <code>NonUniqueResultException</code> is still thrown.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_any_result">Any Result</h3>
+<div class="sect3">
+<h4 id="_any_result">Any Result</h4>
 <div class="paragraph">
-<p>If the caller does not really mind what kind if result is returned, it&#8217;s
+<p>If the caller does not really mind what kind if result is returned, it is
 also possible to request any result from the query. If there is no
 result, same as for optional queries <code>null</code> is returned. In case there
 is more than one result, any result is returned, or more concretely the
@@ -1230,10 +1209,8 @@ annotations, the <code>singleResult</cod
 </div>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="_transactions">Transactions</h2>
-<div class="sectionbody">
+<div class="sect2">
+<h3 id="_transactions">Transactions</h3>
 <div class="paragraph">
 <p>If you call any method expression, <code>@Query</code>-annotated method or a method
 from the <code>EntityRepository</code>, the repository will figure out if a
@@ -1242,29 +1219,33 @@ ongoing. The Data module uses the <code>
 <a href="http://deltaspike.apache.org/jpa">JPA Module</a> for this. See the JPA
 module documentation for more details.</p>
 </div>
-<div class="paragraph">
-<p><strong>CAUTION:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>Some containers do not support <code>BeanManagedUserTransactionStrategy</code>! As
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">
+Some containers do not support <code>BeanManagedUserTransactionStrategy</code>! As
 JTA has still some portability issues even in Java EE 7, it might be
 required that you implement your own <code>TransactionStrategy</code>. We will
-think about providing an acceptable solution for this.</p>
-</div>
-</blockquote>
-</div>
-<div class="paragraph">
-<p><strong>CAUTION:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>Annotating Repository methods with <code>@Transactional</code> is not yet
-supported, but will follow.</p>
+think about providing an acceptable solution for this.
+</td>
+</tr>
+</table>
 </div>
-</blockquote>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">
+Annotating Repository methods with <code>@Transactional</code> is not yet
+supported, but will follow.
+</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
 <p>If you need to open a transaction on a concrete repository method, we
@@ -1290,15 +1271,13 @@ currently recommend creating an extensio
 <div class="paragraph">
 <p>Repositories can then implement the <code>TxRepository</code> interface and call
 their queries in the <code>transactional</code> method (where the callback
-implementation can be e.g. in an anonymous class).</p>
+implementation can be, for example, in an anonymous class).</p>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="_extensions">Extensions</h2>
-<div class="sectionbody">
 <div class="sect2">
-<h3 id="_query_delegates">Query Delegates</h3>
+<h3 id="_extensions">Extensions</h3>
+<div class="sect3">
+<h4 id="_query_delegates">Query Delegates</h4>
 <div class="paragraph">
 <p>While repositories defines several base interfaces, there might still be
 the odd convenience method that is missing. This is actually intentional
@@ -1326,8 +1305,8 @@ repositories:</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_implementing_the_query_delegate">Implementing the Query Delegate</h3>
+<div class="sect3">
+<h4 id="_implementing_the_query_delegate">Implementing the Query Delegate</h4>
 <div class="paragraph">
 <p>The first step is to define an interface which contains the extra
 methods for your repositories (as shown above):</p>
@@ -1342,8 +1321,8 @@ methods for your repositories (as shown
 </div>
 <div class="paragraph">
 <p>As a next step, you need to provide an implementation for this interface
-once. It&#8217;s also important that this implementation implements the
-<code>DelegateQueryHandler</code> interface (don&#8217;t worry, this is just an empty
+once. It is also important that this implementation implements the
+<code>DelegateQueryHandler</code> interface (do not worry, this is just an empty
 marker interface):</p>
 </div>
 <div class="listingblock">
@@ -1375,14 +1354,12 @@ selected.</p>
 </div>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="_mapping">Mapping</h2>
-<div class="sectionbody">
+<div class="sect2">
+<h3 id="_mapping">Mapping</h3>
 <div class="paragraph">
 <p>While repositories are primarily intended to work with Entities, it
 might be preferable in some cases to have an additional mapping layer on
-top of them, e.g. because the Entities are quite complex but the service
+top of them, for example because the Entities are quite complex but the service
 layer needs only a limited view on it, or because the Entities are
 exposed over a remote interface and there should not be a 1:1 view on
 the domain model.</p>
@@ -1450,13 +1427,13 @@ extensions.</p>
 </div>
 <div class="paragraph">
 <p>Note that those mapper classes are treated as CDI Beans, so it is
-possible to use injection in those beans (you might e.g. inject an
+possible to use injection in those beans (e.g. you might inject an
 <code>EntityManager</code> or other mappers). As the <code>@MappingConfig</code> refers to the
 mapper class directly, the mapper must be uniquely identifiable by its
 class.</p>
 </div>
 <div class="paragraph">
-<p>It&#8217;s also possible to combine mappings with the base Repository classes:</p>
+<p>It is also possible to combine mappings with the base Repository classes:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -1474,10 +1451,10 @@ is mandatory. Also it is up to the mappe
 correctly (in this example, a conversion from a <code>PersonDto</code> parameter to
 <code>Person</code> entity and from <code>PersonId</code> to <code>Long</code> is necessary).</p>
 </div>
-<div class="sect2">
-<h3 id="_simple_mappings">Simple Mappings</h3>
+<div class="sect3">
+<h4 id="_simple_mappings">Simple Mappings</h4>
 <div class="paragraph">
-<p>In many cases it&#8217;s just required to map a DTO object back and forth. For
+<p>In many cases it is just required to map a DTO object back and forth. For
 this case, the <code>SimpleQueryInOutMapperBase</code> class can be subclassed,
 which only requires to override two methods:</p>
 </div>
@@ -1518,38 +1495,38 @@ entity).</p>
 </div>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="_jpa_criteria_api_support">JPA Criteria API Support</h2>
-<div class="sectionbody">
+<div class="sect2">
+<h3 id="_jpa_criteria_api_support">JPA Criteria API Support</h3>
 <div class="paragraph">
 <p>Beside automatic query generation, the DeltaSpike Data module also
 provides a DSL-like API to create JPA 2 Criteria queries. It takes
 advantage of the JPA 2 meta model, which helps creating type safe
 queries.</p>
 </div>
-<div class="paragraph">
-<p><strong>TIP:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>The JPA meta model can easily be generated with an annotation processor.
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+The JPA meta model can easily be generated with an annotation processor.
 Hibernate or EclipseLink provide such a processor, which can be
-integrated into your compile and build cycle.</p>
-</div>
-</blockquote>
+integrated into your compile and build cycle.
+</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
 <p>Note that this criteria API is not intended to replace the standard
-criteria API - it&#8217;s rather a utility API that should make life easier on
+criteria API - it is rather a utility API that should make life easier on
 the most common cases for a custom query. The JPA criteria API&#8217;s
 strongest point is certainly its type safety - which comes at the cost
 of readability. We&#8217;re trying to provide a middle way here. A less
 powerful API, but still type safe and readable.</p>
 </div>
-<div class="sect2">
-<h3 id="_api_usage">API Usage</h3>
+<div class="sect3">
+<h4 id="_api_usage">API Usage</h4>
 <div class="paragraph">
 <p>The API is centered around the Criteria class and is targeted to provide
 a fluent interface to write criteria queries:</p>
@@ -1681,8 +1658,8 @@ method is called. This creates a JPA Typ
 repository entity. If required, further processing can be applied here.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_joins">Joins</h3>
+<div class="sect3">
+<h4 id="_joins">Joins</h4>
 <div class="paragraph">
 <p>For simple cases, restricting on the repository entity only works out
 fine, but once the Data model gets more complicated, the query will have
@@ -1731,8 +1708,8 @@ are slighly simpler as seen in the next
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_boolean_operators">Boolean Operators</h3>
+<div class="sect3">
+<h4 id="_boolean_operators">Boolean Operators</h4>
 <div class="paragraph">
 <p>By default, all query operators are concatenated as an and conjunction
 to the query. The DeltaSpike criteria API also allows to add groups of
@@ -1761,8 +1738,8 @@ disjunctions.</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_selections">Selections</h3>
+<div class="sect3">
+<h4 id="_selections">Selections</h4>
 <div class="paragraph">
 <p>It might not always be appropriate to retrieve full entities - you might
 also be interested in scalar values or by modified entity attributes.
@@ -1872,27 +1849,27 @@ selection clause:</p>
 </table>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="_auditing">Auditing</h2>
-<div class="sectionbody">
+<div class="sect2">
+<h3 id="_auditing">Auditing</h3>
 <div class="paragraph">
 <p>A common requirement for entities is tracking what is being done with
 them. DeltaSpike provides a convenient way to support this requirement.</p>
 </div>
-<div class="paragraph">
-<p><strong>TIP:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>DeltaSpike does not support creating revisions of entities. If this is a
-requirement for your audits, have a look at Hibernate Envers.</p>
-</div>
-</blockquote>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+DeltaSpike does not support creating revisions of entities. If this is a
+requirement for your audits, have a look at Hibernate Envers.
+</td>
+</tr>
+</table>
 </div>
-<div class="sect2">
-<h3 id="_activating_auditing">Activating Auditing</h3>
+<div class="sect3">
+<h4 id="_activating_auditing">Activating Auditing</h4>
 <div class="paragraph">
 <p>DeltaSpike uses an entity listener to update auditing data before
 entities get created or update. The entity listener must be activated
@@ -1938,14 +1915,14 @@ module. Alternatively, also the per enti
 XML.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_using_auditing_annotations">Using Auditing Annotations</h3>
+<div class="sect3">
+<h4 id="_using_auditing_annotations">Using Auditing Annotations</h4>
 <div class="paragraph">
 <p>All that has to be done now is annotating the entity properties which
 are used to audit the entity.</p>
 </div>
-<div class="sect3">
-<h4 id="_updating_timestamps">Updating Timestamps</h4>
+<div class="sect4">
+<h5 id="_updating_timestamps">Updating Timestamps</h5>
 <div class="paragraph">
 <p>To keep track on creation and modification times, following annotations
 can be used:</p>
@@ -1981,10 +1958,10 @@ the annotation can be customized:</p>
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_who_s_changing_my_entities">Who&#8217;s Changing My Entities?</h4>
+<div class="sect4">
+<h5 id="_who_s_changing_my_entities">Who&#8217;s Changing My Entities?</h5>
 <div class="paragraph">
-<p>Beside keeping track of when a change has happened, it&#8217;s also often
+<p>Beside keeping track of when a change has happened, it is also often
 critical to track who&#8217;s responsible for the change. Annotate a user
 tracking field with the following annotation:</p>
 </div>
@@ -2028,20 +2005,23 @@ qualifier:</p>
 }</code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p><strong>TIP:</strong></p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p>The JPA Spec does not recommend to modify entity relations from within a
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+The JPA Spec does not recommend to modify entity relations from within a
 lifecycle callback. If you expose another entity here, make sure that
 your persistence provider supports this. Also you should ensure that the
 entity is attached to a persistent context. Also, be aware that the CDI
 container will proxy a scoped bean, which might confuse the persistence
-provider when persisting / updating the target entity.</p>
+provider when persisting / updating the target entity.
+</td>
+</tr>
+</table>
 </div>
-</blockquote>
 </div>
 </div>
 </div>

Added: deltaspike/site/trunk/content/documentation/external.html
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/external.html?rev=1645776&view=auto
==============================================================================
--- deltaspike/site/trunk/content/documentation/external.html (added)
+++ deltaspike/site/trunk/content/documentation/external.html Mon Dec 15 22:31:27 2014
@@ -0,0 +1,291 @@
+<!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">
+
+<title>External Examples and Templates</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 &quot;License&quot;); 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 &quot;AS IS&quot; 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">
+
+<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;
+}
+</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="http://deltaspike.apache.org/index.html">Apache DeltaSpike []</a>
+				<div class="nav-collapse">
+					<ul class="nav">
+						<li class="active"><a
+							href="index.html">Home</a></li>
+						<li><a href="../documentation">Documentation</a></li>
+						<li><a href="../javadoc.html">Javadoc</a></li>
+						<li><a href="../documentation/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>
+						<li><a href="../migration-guide.html">Migration</a></li>
+					</ul>
+				</div>
+				<!--/.nav-collapse -->
+				<form id="search-form" action="http://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">
+			<div class="span12">
+				<div class="page-title">
+			    <h1>External Examples and Templates</h1>
+                </div>
+
+				<div id="toc" class="toc">
+       	 		<ul class="sectlevel1">
+<li><a href="#_examples">Examples</a>
+<ul class="sectlevel2">
+<li><a href="#_confess_2012_workshop_demo">Confess 2012 Workshop Demo</a></li>
+<li><a href="#_fullstack_ee6_with_deltaspike">Fullstack EE6+ with DeltaSpike</a></li>
+<li><a href="#_fullstack_codi_to_deltaspike">Fullstack CODI to DeltaSpike</a></li>
+<li><a href="#_jboss_quickstarts">JBoss Quickstarts</a></li>
+</ul>
+</li>
+<li><a href="#_templates">Templates</a>
+<ul class="sectlevel2">
+<li><a href="#_java_se_cdi_ds">Java SE + CDI + DS</a></li>
+<li><a href="#_jsf_cdi_ds_servlet_container">JSF + CDI + DS (Servlet-Container)</a></li>
+<li><a href="#_ejb_cdi_ds_module">EJB + CDI + DS (Module)</a></li>
+<li><a href="#_jsf_ejb_cdi_ds_ee_server">JSF + EJB + CDI + DS (EE-Server)</a></li>
+</ul>
+</li>
+</ul>
+       	 		<hr>	
+       	 		
+				<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>A number of DeltaSpike examples and templates have been developed external to the DeltaSpike project. These extend the DeltaSpike resources from which you can see DeltaSpike in action. Brief information is given here about the examples and templates, with details of where they can be obtained from.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_examples">Examples</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_confess_2012_workshop_demo">Confess 2012 Workshop Demo</h3>
+<div class="paragraph">
+<p>This example was prepared for the Confess workshop and demonstrates how to use DeltaSpike instead of and side-by-side with MyFaces CODI. The secured web application demonstrates presenting users with differentiating content based on their account status.</p>
+</div>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/confess/confess2012_deltaspike" class="bare">https://github.com/confess/confess2012_deltaspike</a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_fullstack_ee6_with_deltaspike">Fullstack EE6+ with DeltaSpike</h3>
+<div class="paragraph">
+<p>Simple example based on Java EE6+ and DeltaSpike (tested with EE6 and EE7).</p>
+</div>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/os890/ee6-ds-demo" class="bare">https://github.com/os890/ee6-ds-demo</a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_fullstack_codi_to_deltaspike">Fullstack CODI to DeltaSpike</h3>
+<div class="paragraph">
+<p>This pair of examples show how to achieve the most important MyFaces CODI features with DeltaSpike and also how to migrate a CODI project to DeltaSpike. The examples are basic, compacting core CODI features into just a few JSF pages, and are intended for deployment with TomEE.</p>
+</div>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/os890/tomee_mf_stack_001" class="bare">https://github.com/os890/tomee_mf_stack_001</a></p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>CODI version in master branch</p>
+</li>
+<li>
+<p>Migrated DeltaSpike version in codi2ds branch</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_jboss_quickstarts">JBoss Quickstarts</h3>
+<div class="paragraph">
+<p>The JBoss quickstarts are small working examples that demonstrate recommended practices for specific Java EE technology use cases. A subset of these quickstarts are dedicated to demonstrating DeltaSpike, including custom authorization restrictions using annotations, constructing and modifying beans, extending the influence of CDI using BeanManager, and deactivating DeltaSpike features.</p>
+</div>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/jboss-developer/jboss-wfk-quickstarts" class="bare">https://github.com/jboss-developer/jboss-wfk-quickstarts</a></p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_templates">Templates</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_java_se_cdi_ds">Java SE + CDI + DS</h3>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/os890/javase-cdi-ds-project-template" class="bare">https://github.com/os890/javase-cdi-ds-project-template</a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_jsf_cdi_ds_servlet_container">JSF + CDI + DS (Servlet-Container)</h3>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/os890/javaweb-cdi-ds-project-template" class="bare">https://github.com/os890/javaweb-cdi-ds-project-template</a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_ejb_cdi_ds_module">EJB + CDI + DS (Module)</h3>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/os890/javaee_cdi_ejb_ds_project_template" class="bare">https://github.com/os890/javaee_cdi_ejb_ds_project_template</a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_jsf_ejb_cdi_ds_ee_server">JSF + EJB + CDI + DS (EE-Server)</h3>
+<div class="paragraph">
+<p><strong>Source code:</strong> <a href="https://github.com/os890/javaee_jsf_cdi_ejb_ds_project_template" class="bare">https://github.com/os890/javaee_jsf_cdi_ejb_ds_project_template</a></p>
+</div>
+</div>
+</div>
+</div>
+			</div>
+
+			<hr>
+
+			<footer>
+				<p>Copyright © 2011-2014 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>
+		<!-- /.container -->
+
+</body>
+</html>
\ No newline at end of file



Mime
View raw message