You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by bu...@apache.org on 2014/11/26 21:18:15 UTC

svn commit: r930647 [8/10] - in /websites/staging/deltaspike/trunk/content: ./ documentation-staging/

Added: websites/staging/deltaspike/trunk/content/documentation-staging/overview.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/documentation-staging/overview.html (added)
+++ websites/staging/deltaspike/trunk/content/documentation-staging/overview.html Wed Nov 26 20:18:14 2014
@@ -0,0 +1,365 @@
+<!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>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 &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="http://deltaspike.apache.org/index.html">Home</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation">Documentation</a></li>
+						<li><a href="http://deltaspike.apache.org/javadoc.html">Javadoc</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation/source.html">Source</a></li>
+						<li><a href="http://deltaspike.apache.org/download.html">Download</a></li>
+						<li><a href="http://deltaspike.apache.org/community.html">Community</a></li>
+						<!-- <li><a href="./support.html">Support</a></li>  -->
+						<li><a href="http://deltaspike.apache.org/news.html">News</a></li>
+						<li><a
+							href="http://deltaspike.apache.org/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>Overview of DeltaSpike</h1>
+                </div>
+
+				<div id="toc" class="toc">
+       	 		<ul class="sectlevel1">
+<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="#_about_apache_deltaspike">About Apache DeltaSpike</a></li>
+<li><a href="#_features_of_deltaspike">Features of DeltaSpike</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="#_next">Next</a></li>
+</ul>
+       	 		<hr>	
+       	 		
+				<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 to CDI, was introduced as part of Java EE6. 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 inheritence 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 EE6 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 EE6 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 extenstion 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="_about_apache_deltaspike">About Apache DeltaSpike</h2>
+<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 optional modules 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, and a transactional context and scope. 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 has been tested on a range of application servers and containers that utilize these CDI implementations, such as Apache TomEE, JBoss AS, WildFly, Oracle GlassFish, and Jetty.</p>
+</div>
+<div class="paragraph">
+<p>In addition to the portable CDI extension modules, DeltaSpike provides a number of examples to show you how to use and get the most from this technology.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_features_of_deltaspike">Features of DeltaSpike</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 @Transactional in Java EE 7.</p>
+</div>
+<div class="paragraph">
+<p><strong>Injectable Servlet objects:</strong> Allows the developer to inject CDI beans on Servlets on Java EE 6/CDI 1.0 environments</p>
+</div>
+<div class="paragraph">
+<p><strong>Injectable resources:</strong> Configuration, resource bundles,&#8230;&#8203; are easy to inject when using CDI and Apache DeltaSpike.</p>
+</div>
+<div class="paragraph">
+<p><strong>@Exclude annotation:</strong> it&#8217;s possible to annotate beans which should be ignored by CDI even if they are in a CDI enabled archive on Java EE 6/CDI 1.0 environment where you can&#8217;t use @Vetoed or a veto based on project-stages or expressions is needed.</p>
+</div>
+<div class="paragraph">
+<p><strong>Scheduling tasks</strong>: Async processes in a non Java EE 7 environment.</p>
+</div>
+<div class="paragraph">
+<p><strong>Bean Validation integration:</strong> Allows to inject CDI beans and EJB in to 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> Allows to manage logical windows for batches,&#8230;&#8203; or in case of JSF it offers proper separation of browser-tabs.</p>
+</div>
+<div class="paragraph">
+<p><strong>Type-safe view-config:</strong> It allows to bind meta-data (e.g. for security) to views with a type-safe, but flexible 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 on Converters and Validators:</strong> Allows to inject CDI beans and EJB in to 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 conversion scope</p>
+</div>
+<div class="paragraph">
+<p><strong>Container Control &amp; 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> Allows to do exception handling in one location similar to CDI Observers.</p>
+</div>
+<div class="paragraph">
+<p><strong>JMX integration:</strong> Any CDI bean can be exposed via JMX easily with one 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 Project-Stages:</strong> Compared to project-stages 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="_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>.</p>
+</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

Added: websites/staging/deltaspike/trunk/content/documentation-staging/partial-bean.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/documentation-staging/partial-bean.html (added)
+++ websites/staging/deltaspike/trunk/content/documentation-staging/partial-bean.html Wed Nov 26 20:18:14 2014
@@ -0,0 +1,237 @@
+<!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>Partial-Bean</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="http://deltaspike.apache.org/index.html">Home</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation">Documentation</a></li>
+						<li><a href="http://deltaspike.apache.org/javadoc.html">Javadoc</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation/source.html">Source</a></li>
+						<li><a href="http://deltaspike.apache.org/download.html">Download</a></li>
+						<li><a href="http://deltaspike.apache.org/community.html">Community</a></li>
+						<!-- <li><a href="./support.html">Support</a></li>  -->
+						<li><a href="http://deltaspike.apache.org/news.html">News</a></li>
+						<li><a
+							href="http://deltaspike.apache.org/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>Partial-Bean</h1>
+                </div>
+
+				<div id="toc" class="toc">
+       	 		<ul class="sectlevel1">
+<li><a href="#_usage">Usage</a></li>
+</ul>
+       	 		<hr>	
+       	 		
+				<div class="sect1">
+<h2 id="_usage">Usage</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Partial beans allow you to implement a generic handler to replace manual
+implementations of interfaces (or abstract classes).</p>
+</div>
+<div class="paragraph">
+<p><code>@PartialBeanBinding</code> is the binding-annotation for creating a custom
+interface (/abstract class) to generic handler binding.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@PartialBeanBinding</span>
+
+<span class="annotation">@Retention</span>(RUNTIME)
+<span class="annotation">@Target</span>(TYPE)
+<span class="directive">public</span> <span class="annotation">@interface</span> MyPartialBeanBinding {}
+
+<span class="annotation">@MyPartialBeanBinding</span>
+<span class="comment">//scope is optional</span>
+<span class="directive">public</span> <span class="type">interface</span> <span class="class">PartialBean</span>
+{
+    <span class="predefined-type">String</span> getValue();
+}
+
+<span class="annotation">@MyPartialBeanBinding</span>
+<span class="annotation">@Dependent</span>
+<span class="directive">public</span> <span class="type">class</span> <span class="class">MyPartialBeanHandler</span> <span class="directive">implements</span> java.lang.reflect.InvocationHandler
+{
+    <span class="directive">public</span> <span class="predefined-type">Object</span> invoke(<span class="predefined-type">Object</span> proxy, <span class="predefined-type">Method</span> method, <span class="predefined-type">Object</span><span class="type">[]</span> args) <span class="directive">throws</span> <span class="predefined-type">Throwable</span>
+    {
+        <span class="comment">//generic handler logic</span>
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Using an abstract class as partial-bean requires javassist as an
+additional dependency and allows to implement some methods manually.</p>
+</div>
+<div class="paragraph">
+<p>Attention: Currently CDI-Interceptors can&#8217;t be used for partial-beans.</p>
+</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

Added: websites/staging/deltaspike/trunk/content/documentation-staging/projectstage.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/documentation-staging/projectstage.html (added)
+++ websites/staging/deltaspike/trunk/content/documentation-staging/projectstage.html Wed Nov 26 20:18:14 2014
@@ -0,0 +1,333 @@
+<!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>DeltaSpike ProjectStage</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="http://deltaspike.apache.org/index.html">Home</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation">Documentation</a></li>
+						<li><a href="http://deltaspike.apache.org/javadoc.html">Javadoc</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation/source.html">Source</a></li>
+						<li><a href="http://deltaspike.apache.org/download.html">Download</a></li>
+						<li><a href="http://deltaspike.apache.org/community.html">Community</a></li>
+						<!-- <li><a href="./support.html">Support</a></li>  -->
+						<li><a href="http://deltaspike.apache.org/news.html">News</a></li>
+						<li><a
+							href="http://deltaspike.apache.org/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>DeltaSpike ProjectStage</h1>
+                </div>
+
+				<div id="toc" class="toc">
+       	 		<ul class="sectlevel1">
+<li><a href="#_introduction">Introduction</a>
+<ul class="sectlevel2">
+<li><a href="#_custom_project_stages">Custom Project Stages</a></li>
+<li><a href="#_projectstageproducer_for_3rd_party_portable_extensions">ProjectStageProducer (for 3rd party portable extensions)</a>
+<ul class="sectlevel3">
+<li><a href="#_setting_the_active_projectstage">Setting the active ProjectStage</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+       	 		<hr>	
+       	 		
+				<div class="sect1">
+<h2 id="_introduction">Introduction</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Project stages allow to use implementations depending on the current
+environment. E.g. you can implement a bean which creates sample-data for
+system tests which gets activated only in case of project-stage
+<code>SystemTest</code>.</p>
+</div>
+<div class="paragraph">
+<p><em>Besides custom project-stages</em> it&#8217;s possible to use the following
+pre-defined project-stages:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>UnitTest</p>
+</li>
+<li>
+<p>Development</p>
+</li>
+<li>
+<p>SystemTest</p>
+</li>
+<li>
+<p>IntegrationTest</p>
+</li>
+<li>
+<p>Staging</p>
+</li>
+<li>
+<p>Production</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The core provides a pluggable and type-safe approach for using project
+stages in a project (it&#8217;s also used within the framework). Furthermore,
+<code>@Exclude</code> allows to use e.g. i mplementations annotated with
+<code>javax.enterprise.inject.Alternative</code> for specific project-stages.
+Besides the out-of-the-box project-stages it&#8217;s possible to implement
+<em>custom but type-safe</em> project-stages which will be exposed by
+DeltaSpike.</p>
+</div>
+<div class="paragraph">
+<p>Resolving and using the Project-Stage:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Inject</span>
+<span class="directive">private</span> ProjectStage projectStage;
+
+<span class="comment">//...</span>
+
+<span class="type">boolean</span> isDevProjectStage = ProjectStage.Development.equals(<span class="local-variable">this</span>.projectStage);</code></pre>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_custom_project_stages">Custom Project Stages</h3>
+<div class="paragraph">
+<p>It&#8217;s possible to provide custom project stage implementations.
+Therefore, you have to provide an implementation of the
+<code>ProjectStageHolder</code> interface. In this class you nest the custom
+project-stage implementations which have to be
+<code>public static final class</code> and it&#8217;s required to extend <code>ProjectStage</code>.
+It&#8217;s required to provide a <code>public static final</code> instance even though,
+you won&#8217;t use it directly.</p>
+</div>
+<div class="paragraph">
+<p>ProjectStageHolder for custom project stage implementations:</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">CustomProjectStageHolder</span> <span class="directive">implements</span> ProjectStageHolder
+{
+    <span class="directive">public</span> <span class="directive">static</span> <span class="directive">final</span> <span class="type">class</span> <span class="class">CustomProjectStage</span> <span class="directive">extends</span> ProjectStage
+    {
+        <span class="directive">private</span> <span class="directive">static</span> <span class="directive">final</span> <span class="type">long</span> serialVersionUID = <span class="integer">1029094387976167179L</span>;
+    }
+
+    <span class="directive">public</span> <span class="directive">static</span> <span class="directive">final</span> CustomProjectStage CustomProjectStage = <span class="keyword">new</span> CustomProjectStage();
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Configure your custom <code>ProjectStageHolder</code> in
+<code>META-INF/services/org.apache.deltaspike.core.api.projectstage.ProjectStageHolder</code>.
+The file has to provide the <em>fully qualified</em> class name of the custom
+implementation of the <code>ProjectStageHolder</code> interface.</p>
+</div>
+<div class="paragraph">
+<p>Usage of a custom project stage:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java">ProjectStage customProjectStage;
+customProjectStage = ProjectStage.valueOf(<span class="string"><span class="delimiter">&quot;</span><span class="content">CustomProjectStage</span><span class="delimiter">&quot;</span></span>);
+<span class="comment">//or</span>
+customProjectStage = CustomProjectStageHolder.CustomProjectStage;
+<span class="comment">//or</span>
+<span class="annotation">@Exclude</span>(ifProjectStage = CustomProjectStageHolder.CustomProjectStage.class)</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_projectstageproducer_for_3rd_party_portable_extensions">ProjectStageProducer (for 3rd party portable extensions)</h3>
+<div class="paragraph">
+<p><code>ProjectStageProducer</code> provides the producer method which allows to
+inject the current project-stage. However, in some cases it&#8217;s needed to
+use project-stages also during the bootstrapping process of the CDI
+container and you can&#8217;t use injection. In such cases you can use
+<code>ProjectStageProducer.getInstance().getProjectStage()</code> to resolve the
+current project-stage. This helper also contains helpers for unit-tests
+- e.g. <code>#setProjectStage</code>. However, those methods shouldn&#8217;t be needed
+for users (we just need them for testing different project-stage
+scenarios).</p>
+</div>
+<div class="sect3">
+<h4 id="_setting_the_active_projectstage">Setting the active ProjectStage</h4>
+<div class="paragraph">
+<p>For setting the ProjectStage which shall get used in your application
+you can specify it in a few ways. The underlying mechanism used to
+determine the string is the ConfigResolver. E.g.:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>-Dorg.apache.deltaspike.ProjectStage=Development</pre>
+</div>
+</div>
+</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

Added: websites/staging/deltaspike/trunk/content/documentation-staging/scheduler.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/documentation-staging/scheduler.html (added)
+++ websites/staging/deltaspike/trunk/content/documentation-staging/scheduler.html Wed Nov 26 20:18:14 2014
@@ -0,0 +1,361 @@
+<!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>Scheduler Module</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="http://deltaspike.apache.org/index.html">Home</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation">Documentation</a></li>
+						<li><a href="http://deltaspike.apache.org/javadoc.html">Javadoc</a></li>
+						<li><a href="http://deltaspike.apache.org/documentation/source.html">Source</a></li>
+						<li><a href="http://deltaspike.apache.org/download.html">Download</a></li>
+						<li><a href="http://deltaspike.apache.org/community.html">Community</a></li>
+						<!-- <li><a href="./support.html">Support</a></li>  -->
+						<li><a href="http://deltaspike.apache.org/news.html">News</a></li>
+						<li><a
+							href="http://deltaspike.apache.org/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>Scheduler Module</h1>
+                </div>
+
+				<div id="toc" class="toc">
+       	 		<ul class="sectlevel1">
+<li><a href="#_intro">Intro</a></li>
+<li><a href="#_external_dependencies">External Dependencies</a></li>
+<li><a href="#__scheduled">@Scheduled</a></li>
+<li><a href="#_manual_scheduler_control">Manual Scheduler Control</a></li>
+<li><a href="#_custom_scheduler">Custom Scheduler</a></li>
+</ul>
+       	 		<hr>	
+       	 		
+				<div class="sect1">
+<h2 id="_intro">Intro</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This module provides a simple integration with Quartz v2 (per default)
+or any other scheduler which supports cron-expressions for job-classes.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_external_dependencies">External Dependencies</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>If you would like to use the default-integration with quartz (which is
+optional), you have to add quartz 2.x.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;dependency&gt;</span>
+    <span class="tag">&lt;groupId&gt;</span>org.quartz-scheduler<span class="tag">&lt;/groupId&gt;</span>
+    <span class="tag">&lt;artifactId&gt;</span>quartz<span class="tag">&lt;/artifactId&gt;</span>
+    <span class="tag">&lt;version&gt;</span>2.2.1<span class="tag">&lt;/version&gt;</span>
+<span class="tag">&lt;/dependency&gt;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="__scheduled">@Scheduled</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Just annotate your Quartz-Jobs with <code>@Scheduled</code> and they will get
+picked up and passed to the scheduler automatically (during the
+bootstrapping process).</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Scheduled</span>(cronExpression = <span class="string"><span class="delimiter">&quot;</span><span class="content">0 0/10 * * * ?</span><span class="delimiter">&quot;</span></span>)
+<span class="directive">public</span> <span class="type">class</span> <span class="class">CdiAwareQuartzJob</span> <span class="directive">implements</span> org.quartz.Job
+{
+    <span class="annotation">@Inject</span>
+    <span class="directive">private</span> MyService service;
+
+    <span class="annotation">@Override</span>
+    <span class="directive">public</span> <span class="type">void</span> execute(JobExecutionContext context) <span class="directive">throws</span> JobExecutionException
+    {
+        <span class="comment">//...</span>
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>In such Quartz-jobs CDI based dependency-injection is enabled.
+Furthermore, the request- and session-scope get started (and stopped)
+per job-execution. Therefore, the container-control module (of
+DeltaSpike) is required. That can be controlled via
+<code>@Scheduled#startScopes</code> (possible values: all scopes supported by the
+container-control module as well as <code>{}</code> for 'no scopes').</p>
+</div>
+<div class="paragraph">
+<p>With 'false' for <code>@Scheduled#onStartup</code> it&#8217;s even possible to
+schedule/install jobs dynamically - e.g.:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ApplicationScoped</span>
+<span class="directive">public</span> <span class="type">class</span> <span class="class">ProjectStageAwareSchedulerController</span>
+{
+    <span class="annotation">@Inject</span>
+    <span class="directive">private</span> Scheduler&lt;Job&gt; jobScheduler;
+
+    <span class="annotation">@Inject</span>
+    <span class="directive">private</span> ProjectStage projectStage;
+
+    <span class="directive">public</span> <span class="type">void</span> registerJobs()
+    {
+        <span class="keyword">if</span> (ProjectStage.Production.equals(<span class="local-variable">this</span>.projectStage))
+        {
+            <span class="comment">//see 'false' for @Scheduled#onStartup</span>
+            <span class="local-variable">this</span>.jobScheduler.scheduleJob(ManualCdiAwareQuartzJob.class);
+        }
+    }
+
+    <span class="annotation">@Scheduled</span>(cronExpression = <span class="string"><span class="delimiter">&quot;</span><span class="content">0 0/10 * * * ?</span><span class="delimiter">&quot;</span></span>, onStartup = <span class="predefined-constant">false</span>)
+    <span class="directive">public</span> <span class="type">class</span> <span class="class">ManualCdiAwareQuartzJob</span> <span class="directive">implements</span> org.quartz.Job
+    {
+        <span class="annotation">@Inject</span>
+        <span class="directive">private</span> MyService service;
+
+        <span class="annotation">@Override</span>
+        <span class="directive">public</span> <span class="type">void</span> execute(JobExecutionContext context) <span class="directive">throws</span> JobExecutionException
+        {
+            <span class="comment">//...</span>
+        }
+    }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_manual_scheduler_control">Manual Scheduler Control</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This SPI allows to control the scheduler (or integrate any other
+compatible scheduler as an alternative to Quartz2)</p>
+</div>
+<div class="paragraph">
+<p>Via std. injection like</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Inject</span>
+<span class="directive">private</span> Scheduler&lt;Job&gt; jobScheduler;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>it&#8217;s possible to manually start/stop the scheduler,
+pause/resume/interrupt/check scheduled jobs, register jobs manually or
+start a job once (without registering it permanently).</p>
+</div>
+<div class="paragraph">
+<p><strong>Attention</strong>:</p>
+</div>
+<div class="paragraph">
+<p>With some versions of Weld you have to use</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">QuartzSchedulerProducer</span>
+{
+    <span class="annotation">@Produces</span>
+    <span class="annotation">@ApplicationScoped</span>
+    <span class="directive">protected</span> Scheduler&lt;Job&gt; produceScheduler(Scheduler scheduler)
+    {
+        <span class="keyword">return</span> scheduler;
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>or</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;alternatives&gt;</span>
+  <span class="tag">&lt;class&gt;</span>org.apache.deltaspike.scheduler.impl.QuartzSchedulerProducer<span class="tag">&lt;/class&gt;</span>
+<span class="tag">&lt;/alternatives&gt;</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>to use a typed injection-point. Otherwise the deployment will fail.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_custom_scheduler">Custom Scheduler</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>It&#8217;s possible to replace the default integration with Quartz. Any other
+scheduler which supports cron-expressions for job-classes can be used.
+Please have a look at <code>org.apache.deltaspike.test.scheduler.custom</code> for
+further details.</p>
+</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