Modified: zest/site/content/java/develop/tut-composites.html
URL: 
http://svn.apache.org/viewvc/zest/site/content/java/develop/tut-composites.html?rev=1689843&r1=1689842&r2=1689843&view=diff
==============================================================================
--- zest/site/content/java/develop/tut-composites.html (original)
+++ zest/site/content/java/develop/tut-composites.html Wed Jul  8 11:08:41 2015
@@ -66,13 +66,13 @@
   })();
  </script>
 
-  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Qi4j</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.html">Glo
 ssary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Qi4j in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Qi4j in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Qi4j in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Qi4j in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Qi4j in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><span xmlns="" 
href="tut-composites.html">Transient Composites 
Tutorial</span></span></dt><dt><span class="section"><a href="tut-services
 .html">Services Composites Tutorial</a></span></dt><dt><span 
class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a href="build-system.html">Build System</
 a></span></dt><dt><span class="section"><a href="community-docs.html">Writing 
Qi4j Documentation</a></span></dt></dl></div></div><div class="section" 
title="Transient Composites Tutorial"><div class="titlepage"><div><div><h3 
class="title"><a id="tut-composites"></a>Transient Composites 
Tutorial</h3></div></div></div><div class="tip" title="Tip" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Theses tutorials are 
based on actual code found in the <code class="literal">tutorials/</code> 
directory of the
-<a class="ulink" href="http://qi4j.org/downloads.html"; target="_top">Qi4j SDK 
sources</a>. You should start your favorite editor and find the code related to
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Zest™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.htm
 l">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Zest™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Zest™ in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Zest™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Zest™ in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Zest™ in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><span xmlns="" 
href="tut-composites.html">Transient Composites 
Tutorial</span></span></dt><dt><span c
 lass="section"><a href="tut-services.html">Services Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a hre
 f="build-system.html">Build System</a></span></dt><dt><span class="section"><a 
href="community-docs.html">Writing Zest™ 
Documentation</a></span></dt></dl></div></div><div class="section" 
title="Transient Composites Tutorial"><div class="titlepage"><div><div><h3 
class="title"><a id="tut-composites"></a>Transient Composites 
Tutorial</h3></div></div></div><div class="tip" title="Tip" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Theses tutorials are 
based on actual code found in the <code class="literal">tutorials/</code> 
directory of the
+<a class="ulink" href="http://qi4j.org/downloads.html"; target="_top">Zest™ 
SDK sources</a>. You should start your favorite editor and find the code 
related to
 this tutorial, run it and play with it.</p></div><p>Throughout this set of 
tutorials it will be shown how to create and work with Composites, which
-is the basic element in Qi4j. We will refactor one HelloWorld class to take 
advantage of the various
-features in Qi4j. These refactorings will make it easier to reuse parts of the 
class,
+is the basic element in Zest™. We will refactor one HelloWorld class to take 
advantage of the various
+features in Zest™. These refactorings will make it easier to reuse parts of 
the class,
 and introduce new features without having to change existing code. We will 
also look
-at some of the existing classes, or Fragments, available in Qi4j that you can 
reuse
+at some of the existing classes, or Fragments, available in Zest™ that you 
can reuse
 so that you don’t have to write everything yourself.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
 <a class="xref" href="tut-composites.html#tut-composites-step1" title="Step 1 
- Interface Refactoring">Step 1 - Interface Refactoring</a>
 </li><li class="listitem">
@@ -94,7 +94,7 @@ so that you don’t have to write eve
 </li></ul></div><p>Each tutorial step in this series starts with the result 
from the previous tutorial, so you can
 always look at the next tutorial step for guidance on what to do.</p><p>At the 
bottom of each tutorial step, the is Solutions section, which list the files 
you should have come to if you
 have followed the instructions.</p><p>If you want to reproduce what’s 
explained in this tutorial, remember to depend on the Core Runtime artifact 
that depends
-on Core API, Core SPI, Core Bootstrap and Core Functional &amp; I/O 
APIs:</p><div class="table"><a id="idm78349097200"></a><p 
class="title"><strong>Table 5. Artifact</strong></p><div 
class="table-contents"><table summary="Artifact" border="1"><colgroup><col 
class="col_1" /><col class="col_2" /><col class="col_3" 
/></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th 
align="left" valign="top">Artifact ID</th><th align="left" 
valign="top">Version</th></tr></thead><tbody><tr><td align="left" 
valign="top"><p>org.qi4j.core</p></td><td align="left" 
valign="top"><p>org.qi4j.core.runtime</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-qi4j.html" title="Depend on Qi4j in your build">Depend on 
Qi4j in your build</a> tutorial for details.</p><div class="section" 
title="Step 1 - Interface Refactoring"><div class="titlepage"><div><div><h4 
class="title"><a id="tut-c
 omposites-step1"></a>Step 1 - Interface Refactoring</h4></div></div></div><div 
class="section" title="Initial Hello World"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_initial_hello_world"></a>Initial Hello World</h5></div></div></div><p>This 
whole tutorial describes how to step-by-step modify a typical HelloWorld 
"application" into a full-fledged Qi4j
+on Core API, Core SPI, Core Bootstrap and Core Functional &amp; I/O 
APIs:</p><div class="table"><a id="idm415579078816"></a><p 
class="title"><strong>Table 5. Artifact</strong></p><div 
class="table-contents"><table summary="Artifact" border="1"><colgroup><col 
class="col_1" /><col class="col_2" /><col class="col_3" 
/></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th 
align="left" valign="top">Artifact ID</th><th align="left" 
valign="top">Version</th></tr></thead><tbody><tr><td align="left" 
valign="top"><p>org.qi4j.core</p></td><td align="left" 
valign="top"><p>org.qi4j.core.runtime</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-qi4j.html" title="Depend on Zest™ in your build">Depend 
on Zest™ in your build</a> tutorial for details.</p><div class="section" 
title="Step 1 - Interface Refactoring"><div class="titlepage"><div><div><h4 
class="title"
 ><a id="tut-composites-step1"></a>Step 1 - Interface 
 >Refactoring</h4></div></div></div><div class="section" title="Initial Hello 
 >World"><div class="titlepage"><div><div><h5 class="title"><a 
 >id="_initial_hello_world"></a>Initial Hello 
 >World</h5></div></div></div><p>This whole tutorial describes how to 
 >step-by-step modify a typical HelloWorld "application" into a full-fledged 
 >Zest™
 Composite Oriented application. Here is the initial code of 
HelloWorld.</p><pre class="programlisting brush: java">
 /**
  * Initial HelloWorld implementation. Everything is mixed up
@@ -143,7 +143,7 @@ public class HelloWorld
     }
 }
 </pre></div><div class="section" title="Interface refactoring"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_interface_refactoring"></a>Interface 
refactoring</h5></div></div></div><p>In this step we start with a basic Java 
class, which when invoked will concatenate the two properties "phrase"
-and "name". If invoked with the properties set to "Hello" and "World" 
respectively it will hence return "Hello World".</p><p>Qi4j relies heavily on 
the use of interfaces. This makes it possible for an object to externally 
implement a number of
+and "name". If invoked with the properties set to "Hello" and "World" 
respectively it will hence return "Hello World".</p><p>Zest™ relies heavily 
on the use of interfaces. This makes it possible for an object to externally 
implement a number of
 interfaces which internally is backed by a number of Mixins, some of which you 
may have written yourself, and some of
 which may have been reused. This also makes it easy to introduce Modifiers 
(aka "interceptors", aka "advice"), which
 are Fragments which execute before and/or after the method on the Mixin is 
invoked.</p><p>The first task is therefore to refactor the code so that the 
method is implemented from an interface instead. We should
@@ -251,8 +251,8 @@ interface is a regular Java interface wh
 uses various annotations to declare what Fragments to include. Fragments 
include Mixins, Concerns, SideEffects and
 Constraints. In this tutorial we will only use Mixins. When a 
TransientComposite is instantiated at runtime the
 framework will inspect the interface to determine what the TransientComposite 
instance should look like in terms of
-used Fragments.</p><p>In Qi4j all method parameters are considered mandatory 
unless marked as @Optional. Therefore you can remove the null
-checks in the Mixin. If a null value is passed in an exception will be thrown 
by Qi4j.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+used Fragments.</p><p>In Zest™ all method parameters are considered 
mandatory unless marked as @Optional. Therefore you can remove the null
+checks in the Mixin. If a null value is passed in an exception will be thrown 
by Zest™.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
 Create an interface that extends the domain interface HelloWorld and 
org.qi4j.api.composite.TransientComposite.
 </li><li class="listitem">
 Add a @Mixins annotation to it with the name of the Mixin as argument.
@@ -511,12 +511,12 @@ public class HelloWorldBehaviourConcern
 </pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step5" title="Step 5 - 
Constraints">Step 5 - Constraints</a></p></div></div><div class="section" 
title="Step 5 - Constraints"><div class="titlepage"><div><div><h4 
class="title"><a id="tut-composites-step5"></a>Step 5 - 
Constraints</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step4" title="Step 4 - Concerns">Step 
4 - Concerns</a>.</p><p>In this step we will look at how to use Constraints. 
When we pass parameters to methods in regular Java code the only
 restriction we can make is to denote a type. Any other constraints on the 
input value, such as whether the parameter is
 optional, integer ranges, string regular expressions, and so on, cannot be 
expressed, and so we have to put this into
-Javadoc, and then manually add these checks in the implementation 
class.</p><p>In Qi4j there is the option to use Constraints, which are further 
restrictions on the parameters. This is implemented
+Javadoc, and then manually add these checks in the implementation 
class.</p><p>In Zest™ there is the option to use Constraints, which are 
further restrictions on the parameters. This is implemented
 by having an annotation that describes what the Constraint does, and then an 
implementation class that checks whether a
 specific value fulfills the Constraint or not.</p><div class="note" 
title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>The previous steps had a dependency to the <a 
class="xref" href="core-api.html" title="Core API"> Core API</a> only. The 
constraints you’ve used in this step,
 introduce a new dependency to the <a class="xref" 
href="library-constraints.html" title="Constraints">Constraints Library</a>, 
where all the constraint related classes reside. So
-update your classpath settings accordingly.</p></div><p>There are a number of 
pre-written constraints in Qi4j which you can use. The null check of the 
original HelloWorld
-version is already handled by default since Qi4j considers method parameters 
to be mandatory if not explicitly marked
+update your classpath settings accordingly.</p></div><p>There are a number of 
pre-written constraints in Zest™ which you can use. The null check of the 
original HelloWorld
+version is already handled by default since Zest™ considers method 
parameters to be mandatory if not explicitly marked
 with the @Optional annotation. So, instead of doing that check we will add 
other checks that are useful to make, such
 as ensuring that the passed in string is not empty.</p><p>The only thing you 
have to do is add the annotation @NotEmpty to the method parameters you want to 
constrain in this
 way. The annotation has a default implementation declared in it by using the 
@Constraints annotation. You can either
@@ -691,15 +691,15 @@ public interface HelloWorldState
 
     String getName();
 }
-</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step7" title="Step 7 - 
Properties">Step 7 - Properties</a></p></div></div><div class="section" 
title="Step 7 - Properties"><div class="titlepage"><div><div><h4 
class="title"><a id="tut-composites-step7"></a>Step 7 - 
Properties</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step6" title="Step 6 - 
SideEffects">Step 6 - SideEffects</a>.</p><p>One of the goals of Qi4j is to 
give you domain modeling tools that allow you to more concisely use domain 
concepts in
+</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step7" title="Step 7 - 
Properties">Step 7 - Properties</a></p></div></div><div class="section" 
title="Step 7 - Properties"><div class="titlepage"><div><div><h4 
class="title"><a id="tut-composites-step7"></a>Step 7 - 
Properties</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step6" title="Step 6 - 
SideEffects">Step 6 - SideEffects</a>.</p><p>One of the goals of Zest™ is to 
give you domain modeling tools that allow you to more concisely use domain 
concepts in
 code. One of the things we do rather often is model Properties of objects as 
getters and setters. But this is a very
 weak model, and does not give you any access to metadata about the property, 
and also makes common tasks like UI binding
 non-trivial. There is also a lot of repetition of code, which is unnecessary. 
Using JavaBeans conventions one typically
-have to have code in five places for one property, whereas in Qi4j the same 
thing can be achieved with one line of code.</p><p>But lets start out easy. To 
declare a property you have to make a method in a mixin type that returns a 
value of the
+have to have code in five places for one property, whereas in Zest™ the same 
thing can be achieved with one line of code.</p><p>But lets start out easy. To 
declare a property you have to make a method in a mixin type that returns a 
value of the
 type Property, and which does not take any parameters. Here’s a simple 
example:</p><pre class="programlisting brush: java">Property&lt;String&gt; 
name();</pre><p>This declares a Property of type String with the name "name". 
The Property interface has methods "get" and "set" to
 access and mutate the value, respectively.</p><p>For now you will be 
responsible for implementing these methods, but later on these will be handled 
automatically, thus
 reducing Properties to one-liners!</p><p>In the Mixin implementation of the 
interface with the Property declaration you should have an injection of the 
Property,
-which is created for you by Qi4j. The injection can be done in a field like 
this:</p><pre class="programlisting brush: java">@State Property&lt;String&gt; 
name;</pre><p>The State dependency injection annotation means that Qi4j will 
inject the Property for you. The field has the name
+which is created for you by Zest™. The injection can be done in a field like 
this:</p><pre class="programlisting brush: java">@State Property&lt;String&gt; 
name;</pre><p>The State dependency injection annotation means that Zest™ will 
inject the Property for you. The field has the name
 "name", which matches the name in the interface, and therefore that Property 
is injected. You can then implement the
 method trivially by just returning the "name" field.</p><p>Properties can have 
Constraints just like method parameters. Simply set them on the Property method 
instead, and they
 will be applied just as before when you call "set".</p><p>Steps for this 
tutorial:</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
@@ -797,14 +797,14 @@ and the old version used the JavaBean ru
 invocations of such methods automatically for us by storing the properties in 
a map and use the methods to look them up.</p><p>Implementing a generic 
Fragment is done by creating a class that implements the interface
 java.lang.proxy.InvocationHandler. This has a single "invoke" method which is 
passed the object that was invoked (the
 TransientComposite in this case), the method, and the arguments. The Fragment 
is then allowed to implement the method
-any way it wants.</p><p>Since interfaces with only Properties is such a common 
case Qi4j already has a generic Mixin that implements the
+any way it wants.</p><p>Since interfaces with only Properties is such a common 
case Zest™ already has a generic Mixin that implements the
 Properties management described above, but for the builtin Property type 
instead of the getter/setter variant. The
 class is aptly named PropertyMixin.</p><p>While we could use it, for now we 
will implement it ourselves to get a feel for how generic Mixins 
work.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
 Remove the HelloWorldStateMixin
 </li><li class="listitem">
 Add a GenericPropertyMixin, and have it implement InvocationHandler
 </li><li class="listitem">
-Inject "@State StateHolder state" in the mixin. The StateHolder interface will 
give you access to the Properties for the TransientComposite which Qi4j manages 
for you
+Inject "@State StateHolder state" in the mixin. The StateHolder interface will 
give you access to the Properties for the TransientComposite which Zest™ 
manages for you
 </li><li class="listitem">
 On call to invoke(), delegate to the StateHolder interface to get the Property 
for the invoked method
 </li><li class="listitem">
@@ -878,13 +878,13 @@ This forces the mixin to implement the T
 implement all methods, including those found in the TransientComposite 
interface. However, since we are only really
 interested in implementing the say() method we will mark this by declaring 
that the Mixin "implements" the
 TransientComposite type, but is also "abstract". This, using pure Java 
semantics, makes it possible to avoid having to
-implement all methods. Qi4j will during the initialization phase detect that 
the Mixin only handles the say() method,
+implement all methods. Zest™ will during the initialization phase detect 
that the Mixin only handles the say() method,
 and therefore only map it to that specific method. In order to instantiate the 
Mixin it will generate a subclass which
 implements the remaining methods in the TransientComposite type, as no-ops. 
These will never be called however, and is
 there purely for the purpose of being able to instantiate the Mixin. The Mixin 
is considered to be an Abstract Fragment.</p><p>To hide the state from the 
client we need to use what is called Private Mixins. A Private Mixin is any 
mixin that is
 referenced by another Mixin by using the @This injection, but which is not 
included in the TransientComposite type. As
 long as there is a Mixin implementation declared for the interface specified 
by the @This injection it will work, since
-Qi4j can know how to implement the interface. But since it is not extended by 
the TransientComposite type there is no
+Zest™ can know how to implement the interface. But since it is not extended 
by the TransientComposite type there is no
 way for a user of the TransientComposite to access it. That Mixin becomes an 
implementation detail. This can be used
 either for encapsulation purposes, or for referencing utility mixins that help 
the rest of the code implement some
 interface, but which itself should not be exposed.</p><p>Since the state is 
now hidden the initialization of the TransientComposite is a bit more tricky. 
Instead of just

Modified: zest/site/content/java/develop/tut-services.html
URL: 
http://svn.apache.org/viewvc/zest/site/content/java/develop/tut-services.html?rev=1689843&r1=1689842&r2=1689843&view=diff
==============================================================================
--- zest/site/content/java/develop/tut-services.html (original)
+++ zest/site/content/java/develop/tut-services.html Wed Jul  8 11:08:41 2015
@@ -66,11 +66,11 @@
   })();
  </script>
 
-  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Qi4j</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.html">Glo
 ssary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Qi4j in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Qi4j in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Qi4j in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Qi4j in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Qi4j in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><span xmlns="" 
href="tut-services.ht
 ml">Services Composites Tutorial</span></span></dt><dt><span 
class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a href="build-system.html">Build System</
 a></span></dt><dt><span class="section"><a href="community-docs.html">Writing 
Qi4j Documentation</a></span></dt></dl></div></div><div class="section" 
title="Services Composites Tutorial"><div class="titlepage"><div><div><h3 
class="title"><a id="tut-services"></a>Services Composites 
Tutorial</h3></div></div></div><div class="tip" title="Tip" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Theses tutorials are 
based on actual code found in the <code class="literal">tutorials/</code> 
directory of the
-<a class="ulink" href="http://qi4j.org/downloads.html"; target="_top">Qi4j SDK 
sources</a>. You should start your favorite editor and find the code related to
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Zest™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.htm
 l">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Zest™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Zest™ in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Zest™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Zest™ in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Zest™ in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section">
 <span xmlns="" href="tut-services.html">Services Composites 
Tutorial</span></span></dt><dt><span class="section"><a 
href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a hre
 f="build-system.html">Build System</a></span></dt><dt><span class="section"><a 
href="community-docs.html">Writing Zest™ 
Documentation</a></span></dt></dl></div></div><div class="section" 
title="Services Composites Tutorial"><div class="titlepage"><div><div><h3 
class="title"><a id="tut-services"></a>Services Composites 
Tutorial</h3></div></div></div><div class="tip" title="Tip" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Theses tutorials are 
based on actual code found in the <code class="literal">tutorials/</code> 
directory of the
+<a class="ulink" href="http://zest.apache.org/download.html"; 
target="_top">Zest™ SDK sources</a>. You should start your favorite editor 
and find the code related to
 this tutorial, run it and play with it.</p></div><p>In this other set of 
tutorials it will be shown how to create and work with Service Composites, 
which are composites
 that extends from the ServiceComposite class. We will refactor one a very 
simple Library where you can borrow and
-return books to take advantage of the various features in Qi4j. These 
refactorings will benefit from automatic Service
+return books to take advantage of the various features in Zest™. These 
refactorings will benefit from automatic Service
 activation and Configuration Entities management.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
 <a class="xref" href="tut-services.html#tut-services-step1" title="Step 1 - 
Creating a ServiceComposite">Step 1 - Creating a ServiceComposite</a>
 </li><li class="listitem">
@@ -80,12 +80,12 @@ activation and Configuration Entities ma
 </li></ul></div><p>Each tutorial step in this series starts with the result 
from the previous tutorial, so you can
 always look at the next tutorial step for guidance on what to do.</p><p>At the 
bottom of each tutorial step, the is Solutions section, which list the files 
you should have come to if you
 have followed the instructions.</p><p>If you want to reproduce what’s 
explained in this tutorial, remember to depend on the Core Runtime artifact 
that depends
-on Core API, Core SPI, Core Bootstrap and Core Functional &amp; I/O 
APIs:</p><div class="table"><a id="idm78348888832"></a><p 
class="title"><strong>Table 6. Artifact</strong></p><div 
class="table-contents"><table summary="Artifact" border="1"><colgroup><col 
class="col_1" /><col class="col_2" /><col class="col_3" 
/></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th 
align="left" valign="top">Artifact ID</th><th align="left" 
valign="top">Version</th></tr></thead><tbody><tr><td align="left" 
valign="top"><p>org.qi4j.core</p></td><td align="left" 
valign="top"><p>org.qi4j.core.runtime</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-qi4j.html" title="Depend on Qi4j in your build">Depend on 
Qi4j in your build</a> tutorial for details.</p><div class="section" 
title="Step 1 - Creating a ServiceComposite"><div 
class="titlepage"><div><div><h4 class="title"><a id=
 "tut-services-step1"></a>Step 1 - Creating a 
ServiceComposite</h4></div></div></div><p>In this tutorial we start with basic 
Java classes, to simulate a very simple Library where you can borrow
-and return books.</p><p>Qi4j relies heavily on the use of interfaces. This 
makes it possible for an object
+on Core API, Core SPI, Core Bootstrap and Core Functional &amp; I/O 
APIs:</p><div class="table"><a id="idm415578835952"></a><p 
class="title"><strong>Table 6. Artifact</strong></p><div 
class="table-contents"><table summary="Artifact" border="1"><colgroup><col 
class="col_1" /><col class="col_2" /><col class="col_3" 
/></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th 
align="left" valign="top">Artifact ID</th><th align="left" 
valign="top">Version</th></tr></thead><tbody><tr><td align="left" 
valign="top"><p>org.qi4j.core</p></td><td align="left" 
valign="top"><p>org.qi4j.core.runtime</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-qi4j.html" title="Depend on Zest™ in your build">Depend 
on Zest™ in your build</a> tutorial for details.</p><div class="section" 
title="Step 1 - Creating a ServiceComposite"><div 
class="titlepage"><div><div><h4 class="
 title"><a id="tut-services-step1"></a>Step 1 - Creating a 
ServiceComposite</h4></div></div></div><p>In this tutorial we start with basic 
Java classes, to simulate a very simple Library where you can borrow
+and return books.</p><p>Zest™ relies heavily on the use of interfaces. This 
makes it possible for an object
 to externally implement a number of interfaces which internally is backed by a 
number
 of Mixins, some of which you may have written yourself, and some of which may 
have been
 reused. This is also true for services, which we are to cover in this 
tutorial.</p><p>The first task is therefore to refactor the code so that the 
methods are implemented from an
-interface instead, and to essentially make the identical "application" into a 
Qi4j application.
+interface instead, and to essentially make the identical "application" into a 
Zest™ application.
 We also want the Book to be a ValueComposite.</p><p>Steps for this 
tutorial:</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
 Make the Book into a ValueComposite.
 </li><li class="listitem">
@@ -97,7 +97,7 @@ Create a LibraryService that binds the L
 </li><li class="listitem">
 The LibraryMixin will need to be injected with the ValueBuilderFactory in the 
@Structure scope.
 </li></ul></div></div><div class="section" title="Step 2 - Hooking into the 
Service Activation"><div class="titlepage"><div><div><h4 class="title"><a 
id="tut-services-step2"></a>Step 2 - Hooking into the Service 
Activation</h4></div></div></div><p>Services can be "activated" and 
"passivated". Applications can be notified of this occurring
-by Qi4j runtime by assembling them with an Activator.</p><p>Activators methods 
are called around "activation" and "passivation": beforeActivation,
+by Zest™ runtime by assembling them with an Activator.</p><p>Activators 
methods are called around "activation" and "passivation": beforeActivation,
 afterActivation, beforeActivation, afterPassivation. The
 ActivatorAdapter class help you keeping your code short when you only need one 
or two hooks.</p><p>To showcase how this works, we refactor the code to create 
a number of copies of the books, to be lend out
 upon call to the borrowBook method, which will return null if no copy is 
available. The book
@@ -111,11 +111,11 @@ Write an Activator&lt;ServiceReference&l
 Override the afterActivation method, use the ServiceReference to get a handle 
on the Library and call its createInitialData method.
 </li><li class="listitem">
 Add the @Activators annotation to the LibraryService declaring the new 
LibraryActivator.
-</li></ul></div></div><div class="section" title="Step 3 - Reading the Service 
Configuration"><div class="titlepage"><div><div><h4 class="title"><a 
id="tut-services-step3"></a>Step 3 - Reading the Service 
Configuration</h4></div></div></div><p>Services typically have configuration. 
Configurations are directly supported in Qi4j. A
+</li></ul></div></div><div class="section" title="Step 3 - Reading the Service 
Configuration"><div class="titlepage"><div><div><h4 class="title"><a 
id="tut-services-step3"></a>Step 3 - Reading the Service 
Configuration</h4></div></div></div><p>Services typically have configuration. 
Configurations are directly supported in Zest™. A
 ConfigurationComposite is a subtype of EntityComposite. That is because
 configurations are stored in EntityStores, can be modified in runtime by 
client code and has
-the same semantics as regular entities.</p><p>Qi4j also handles the 
bootstrapping of configuration for the services. If the ConfigurationComposite 
is
-not found in the configured entity store, then Qi4j will automatically locate 
a properties file for each
+the same semantics as regular entities.</p><p>Zest™ also handles the 
bootstrapping of configuration for the services. If the ConfigurationComposite 
is
+not found in the configured entity store, then Zest™ will automatically 
locate a properties file for each
 service instance, read those properties into a ConfigurationComposite 
instance, save that to the
 entity store and provide the values to the service. The properties file must 
be with the same name as
 the service instance with the extension "properties" in the same package as 
the service.</p><p>For this exercise, create a LibraryConfiguration that 
contains "titles", "authors" and "copies".

Modified: zest/site/content/java/develop/tutorials.html
URL: 
http://svn.apache.org/viewvc/zest/site/content/java/develop/tutorials.html?rev=1689843&r1=1689842&r2=1689843&view=diff
==============================================================================
--- zest/site/content/java/develop/tutorials.html (original)
+++ zest/site/content/java/develop/tutorials.html Wed Jul  8 11:08:41 2015
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Tutorials</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="index.html" title="" /><link rel="prev" 
href="related.html" title="Related publications &amp; projects" /><link 
rel="next" href="two-minutes-intro.html" title="Qi4j in 2 minutes" />
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Tutorials</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="index.html" title="" /><link rel="prev" 
href="related.html" title="Related publications &amp; projects" /><link 
rel="next" href="two-minutes-intro.html" title="Zest™ in 2 minutes" />
 
 
 <!-- favicon -->
@@ -66,22 +66,22 @@
   })();
  </script>
 
-  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Qi4j</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.html">Glo
 ssary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><span xmlns="" 
href="tutorials.html#_overview">Overview</span></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Qi4j in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Qi4j in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Qi4j in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Qi4j in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Qi4j in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a href="tut-services
 .html">Services Composites Tutorial</a></span></dt><dt><span 
class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a href="build-system.html">Build System</
 a></span></dt><dt><span class="section"><a href="community-docs.html">Writing 
Qi4j Documentation</a></span></dt></dl></div></div><div class="section" 
title="Tutorials"><div class="titlepage"><div><div><h2 class="title"><a 
id="tutorials"></a>Tutorials</h2></div></div></div><div class="section" 
title="Overview"><div class="titlepage"><div><div><h3 class="title"><a 
id="_overview"></a>Overview</h3></div></div></div><div class="tip" title="Tip" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Tip</h3><p>Theses tutorials are based on actual code found in the 
<code class="literal">tutorials/</code> directory of the
-<a class="ulink" href="http://qi4j.org/downloads.html"; target="_top">Qi4j SDK 
sources</a>. You should start your favorite editor and find the code related to
-this tutorial, run it and play with it.</p></div><p>In this section you will 
find a comprehensive set of tutorials about Composite Oriented Programming 
using Qi4j.</p><div class="section" title="Qi4j in 2 hours 42 minutes"><div 
class="titlepage"><div><div><h4 class="title"><a id="tutorials-intro"></a>Qi4j 
in 2 hours 42 minutes</h4></div></div></div><p>This quite long introduction to 
Qi4j will start by brushing up an overview of the problems Qi4j solve, teach 
you what
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Zest™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.htm
 l">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><span xmlns="" 
href="tutorials.html#_overview">Overview</span></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Zest™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Zest™ in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Zest™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Zest™ in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Zest™ in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span c
 lass="section"><a href="tut-services.html">Services Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a hre
 f="build-system.html">Build System</a></span></dt><dt><span class="section"><a 
href="community-docs.html">Writing Zest™ 
Documentation</a></span></dt></dl></div></div><div class="section" 
title="Tutorials"><div class="titlepage"><div><div><h2 class="title"><a 
id="tutorials"></a>Tutorials</h2></div></div></div><div class="section" 
title="Overview"><div class="titlepage"><div><div><h3 class="title"><a 
id="_overview"></a>Overview</h3></div></div></div><div class="tip" title="Tip" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Tip</h3><p>Theses tutorials are based on actual code found in the 
<code class="literal">tutorials/</code> directory of the
+<a class="ulink" href="http://qi4j.org/downloads.html"; target="_top">Zest™ 
SDK sources</a>. You should start your favorite editor and find the code 
related to
+this tutorial, run it and play with it.</p></div><p>In this section you will 
find a comprehensive set of tutorials about Composite Oriented Programming 
using Zest™.</p><div class="section" title="Zest™ in 2 hours 42 
minutes"><div class="titlepage"><div><div><h4 class="title"><a 
id="tutorials-intro"></a>Zest™ in 2 hours 42 
minutes</h4></div></div></div><p>This quite long introduction to Zest™ will 
start by brushing up an overview of the problems Zest™ solve, teach you what
 Composite Oriented Programming is and guide you through the process of writing 
a complete Application around an adapted
 Hello World example.</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
-<a class="xref" href="two-minutes-intro.html" title="Qi4j in 2 minutes">Qi4j 
in 2 minutes</a>
+<a class="xref" href="two-minutes-intro.html" title="Zest™ in 2 
minutes">Zest™ in 2 minutes</a>
 </li><li class="listitem">
-<a class="xref" href="ten-minutes-intro.html" title="Qi4j in 10 minutes">Qi4j 
in 10 minutes</a>
+<a class="xref" href="ten-minutes-intro.html" title="Zest™ in 10 
minutes">Zest™ in 10 minutes</a>
 </li><li class="listitem">
-<a class="xref" href="thirty-minutes-intro.html" title="Qi4j in 30 
minutes">Qi4j in 30 minutes</a>
+<a class="xref" href="thirty-minutes-intro.html" title="Zest™ in 30 
minutes">Zest™ in 30 minutes</a>
 </li><li class="listitem">
-<a class="xref" href="two-hours-intro.html" title="Qi4j in 2 hours">Qi4j in 2 
hours</a>
-</li></ul></div></div><div class="section" title="Getting real with Qi4j"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_getting_real_with_qi4j"></a>Getting real with 
Qi4j</h4></div></div></div><p>Throughout this set of tutorials it will be shown 
how to depend on Qi4j in your build, how to assemble a complete
+<a class="xref" href="two-hours-intro.html" title="Zest™ in 2 hours">Zest™ 
in 2 hours</a>
+</li></ul></div></div><div class="section" title="Getting real with 
Zest™"><div class="titlepage"><div><div><h4 class="title"><a 
id="_getting_real_with_zest"></a>Getting real with 
Zest™</h4></div></div></div><p>Throughout this set of tutorials it will be 
shown how to depend on Zest™ in your build, how to assemble a complete
 application, how to create and work with Composites and Services, how to use 
contextual fragments and leverage
 properties.</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
-<a class="xref" href="howto-depend-on-qi4j.html" title="Depend on Qi4j in your 
build">Depend on Qi4j in your build</a>
+<a class="xref" href="howto-depend-on-qi4j.html" title="Depend on Zest™ in 
your build">Depend on Zest™ in your build</a>
 </li><li class="listitem">
 <a class="xref" href="howto-assemble-application.html" title="Assemble an 
Application">Assemble an Application</a>
 </li><li class="listitem">
@@ -105,11 +105,11 @@ typical application.</p><div class="item
 <a class="xref" href="howto-configure-service.html" title="Configure a 
Service">Configure a Service</a>
 </li><li class="listitem">
 <a class="xref" href="howto-use-io.html" title="Use I/O API">Use I/O API</a>
-</li></ul></div></div><div class="section" title="Qi4j Development"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_qi4j_development"></a>Qi4j Development</h4></div></div></div><p>This last 
set of tutorials you’ll learn how to build the Qi4j SDK from sources 
including this very documentation website
-, the Qi4j manual, binaries and sources distributions.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+</li></ul></div></div><div class="section" title="Zest™ Development"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_zest_development"></a>Zest™ Development</h4></div></div></div><p>This 
last set of tutorials you’ll learn how to build the Zest™ SDK from sources 
including this very documentation website
+, the Zest™ manual, binaries and sources distributions.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
 <a class="xref" href="build-system.html" title="Build System">Build System</a>
 </li><li class="listitem">
-<a class="xref" href="community-docs.html" title="Writing Qi4j 
Documentation">Writing Documentation</a>
+<a class="xref" href="community-docs.html" title="Writing Zest™ 
Documentation">Writing Documentation</a>
 </li></ul></div></div></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="footer"><p>
         Copyright © 2015 The Apache Software Foundation, Licensed under the 
<a href="http://www.apache.org/licenses/"; target="_blank">Apache License, 
Version 2.0</a>.
         <br /><small>

Modified: zest/site/content/java/develop/two-hours-intro.html
URL: 
http://svn.apache.org/viewvc/zest/site/content/java/develop/two-hours-intro.html?rev=1689843&r1=1689842&r2=1689843&view=diff
==============================================================================
--- zest/site/content/java/develop/two-hours-intro.html (original)
+++ zest/site/content/java/develop/two-hours-intro.html Wed Jul  8 11:08:41 2015
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Qi4j in 2 hours</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="thirty-minutes-intro.html" title="Qi4j in 30 minutes" /><link 
rel="next" href="howto-depend-on-qi4j.html" title="Depend on Qi4j in your 
build" />
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Zest™ in 2 hours</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="thirty-minutes-intro.html" title="Zest™ in 30 minutes" 
/><link rel="next" href="howto-depend-on-qi4j.html" title="Depend on Zest™ in 
your build" />
 
 
 <!-- favicon -->
@@ -66,14 +66,14 @@
   })();
  </script>
 
-  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Qi4j</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.html">Glo
 ssary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Qi4j in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Qi4j in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Qi4j in 30 
minutes</a></span></dt><dt><span class="section"><span xmlns="" 
href="two-hours-intro.html">Qi4j in 2 hours</span></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Qi4j in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a href="tut-services
 .html">Services Composites Tutorial</a></span></dt><dt><span 
class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a href="build-system.html">Build System</
 a></span></dt><dt><span class="section"><a href="community-docs.html">Writing 
Qi4j Documentation</a></span></dt></dl></div></div><div class="section" 
title="Qi4j in 2 hours"><div class="titlepage"><div><div><h3 class="title"><a 
id="two-hours-intro"></a>Qi4j in 2 hours</h3></div></div></div><div 
class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>This tutorial is not written yet. Learn how to 
contribute in <a class="xref" href="community-docs.html" title="Writing Qi4j 
Documentation">Writing Documentation</a>.</p></div><p>This introduction assumes 
that the "Qi4j in 10 minutes" and "Qi4j in 30 minutes" introductions has been 
read and
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Zest™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.htm
 l">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Zest™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Zest™ in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Zest™ in 30 
minutes</a></span></dt><dt><span class="section"><span xmlns="" 
href="two-hours-intro.html">Zest™ in 2 hours</span></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Zest™ in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span c
 lass="section"><a href="tut-services.html">Services Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a hre
 f="build-system.html">Build System</a></span></dt><dt><span class="section"><a 
href="community-docs.html">Writing Zest™ 
Documentation</a></span></dt></dl></div></div><div class="section" 
title="Zest™ in 2 hours"><div class="titlepage"><div><div><h3 
class="title"><a id="two-hours-intro"></a>Zest™ in 2 
hours</h3></div></div></div><div class="note" title="Note" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This tutorial is not 
written yet. Learn how to contribute in <a class="xref" 
href="community-docs.html" title="Writing Zest™ Documentation">Writing 
Documentation</a>.</p></div><p>This introduction assumes that the "Zest™ in 
10 minutes" and "Zest™ in 30 minutes" introductions has been read and
 understood.</p><p>In this introduction we will touch on the core concepts of 
UnitOfWork, Application structure and Bootstrap API.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
 Persistence and UnitOfWork -
 </li></ul></div><p>We have previously seen that it is easy to declare that a 
Composite should be persisted, but not touched on how to
 interact with the underlying persistence system. This is done via 
EntitySessions.</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem"><p class="simpara">
 Application Structure -
 </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
-There are one Application per Qi4j instance.
+There are one Application per Zest™ instance.
 </li><li class="listitem">
 An Application consists of one or more Layers.
 </li><li class="listitem">

Modified: zest/site/content/java/develop/two-minutes-intro.html
URL: 
http://svn.apache.org/viewvc/zest/site/content/java/develop/two-minutes-intro.html?rev=1689843&r1=1689842&r2=1689843&view=diff
==============================================================================
--- zest/site/content/java/develop/two-minutes-intro.html (original)
+++ zest/site/content/java/develop/two-minutes-intro.html Wed Jul  8 11:08:41 
2015
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Qi4j in 2 minutes</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="tutorials.html" title="Tutorials" /><link rel="next" 
href="ten-minutes-intro.html" title="Qi4j in 10 minutes" />
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Zest™ in 2 minutes</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="tutorials.html" title="Tutorials" /><link rel="next" 
href="ten-minutes-intro.html" title="Zest™ in 10 minutes" />
 
 
 <!-- favicon -->
@@ -66,11 +66,11 @@
   })();
  </script>
 
-  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Qi4j</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.html">Glo
 ssary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><span xmlns="" href="two-minutes-intro.html">Qi4j in 2 
minutes</span></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Qi4j in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Qi4j in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Qi4j in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Qi4j in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a href="tut-services
 .html">Services Composites Tutorial</a></span></dt><dt><span 
class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a href="build-system.html">Build System</
 a></span></dt><dt><span class="section"><a href="community-docs.html">Writing 
Qi4j Documentation</a></span></dt></dl></div></div><div class="section" 
title="Qi4j in 2 minutes"><div class="titlepage"><div><div><h3 class="title"><a 
id="two-minutes-intro"></a>Qi4j in 2 minutes</h3></div></div></div><div 
class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Tip</h3><p>Theses tutorials are based on actual code found in the 
<code class="literal">tutorials/</code> directory of the
-<a class="ulink" href="http://qi4j.org/downloads.html"; target="_top">Qi4j SDK 
sources</a>. You should start your favorite editor and find the code related to
-this tutorial, run it and play with it.</p></div><p>To show that Qi4j is not 
necessarily complex, not hard to get going with and easy to deploy, we are 
first showing the
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Zest™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.htm
 l">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><span xmlns="" href="two-minutes-intro.html">Zest™ in 2 
minutes</span></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Zest™ in 10 minutes</a></span></dt><dt><span 
class="section"><a href="thirty-minutes-intro.html">Zest™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="two-hours-intro.html">Zest™ in 2 hours</a></span></dt><dt><span 
class="section"><a href="howto-depend-on-qi4j.html">Depend on Zest™ in your 
build</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span c
 lass="section"><a href="tut-services.html">Services Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="howto-use-io.html">Use I/O API</a></span></dt><dt><span 
class="section"><a hre
 f="build-system.html">Build System</a></span></dt><dt><span class="section"><a 
href="community-docs.html">Writing Zest™ 
Documentation</a></span></dt></dl></div></div><div class="section" 
title="Zest™ in 2 minutes"><div class="titlepage"><div><div><h3 
class="title"><a id="two-minutes-intro"></a>Zest™ in 2 
minutes</h3></div></div></div><div class="tip" title="Tip" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Theses tutorials are 
based on actual code found in the <code class="literal">tutorials/</code> 
directory of the
+<a class="ulink" href="http://qi4j.org/downloads.html"; target="_top">Zest™ 
SDK sources</a>. You should start your favorite editor and find the code 
related to
+this tutorial, run it and play with it.</p></div><p>To show that Zest™ is 
not necessarily complex, not hard to get going with and easy to deploy, we are 
first showing the
 classic HelloWorld, as small as it can get and still be Composite Oriented 
Programming and not only standard OOP.</p><p>If you want to reproduce what’s 
explained in this tutorial, remember to depend on the Core Runtime artifact 
that depends
-on Core API, Core SPI, Core Bootstrap and Core Functional &amp; I/O 
APIs:</p><div class="table"><a id="idm78349316320"></a><p 
class="title"><strong>Table 1. Artifact</strong></p><div 
class="table-contents"><table summary="Artifact" border="1"><colgroup><col 
class="col_1" /><col class="col_2" /><col class="col_3" 
/></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th 
align="left" valign="top">Artifact ID</th><th align="left" 
valign="top">Version</th></tr></thead><tbody><tr><td align="left" 
valign="top"><p>org.qi4j.core</p></td><td align="left" 
valign="top"><p>org.qi4j.core.runtime</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-qi4j.html" title="Depend on Qi4j in your build">Depend on 
Qi4j in your build</a> tutorial for details.</p><p>Ready, Set, 
Go!</p><p>Let’s say we want to do the common HelloWorld example, but with a 
more domain-oriented settin
 g.
+on Core API, Core SPI, Core Bootstrap and Core Functional &amp; I/O 
APIs:</p><div class="table"><a id="idm415643313424"></a><p 
class="title"><strong>Table 1. Artifact</strong></p><div 
class="table-contents"><table summary="Artifact" border="1"><colgroup><col 
class="col_1" /><col class="col_2" /><col class="col_3" 
/></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th 
align="left" valign="top">Artifact ID</th><th align="left" 
valign="top">Version</th></tr></thead><tbody><tr><td align="left" 
valign="top"><p>org.qi4j.core</p></td><td align="left" 
valign="top"><p>org.qi4j.core.runtime</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-qi4j.html" title="Depend on Zest™ in your build">Depend 
on Zest™ in your build</a> tutorial for details.</p><p>Ready, Set, 
Go!</p><p>Let’s say we want to do the common HelloWorld example, but with a 
more domain-or
 iented setting.
 We have a Speaker interface that does the talking.
 But we also need an implementation for Speaker, which we declare here via the 
<code class="literal">@Mixins( SpeakerMixin.class )</code>.</p><pre 
class="programlisting brush: java">@Mixins( SpeakerMixin.class )
 public interface Speaker
@@ -106,7 +106,7 @@ In this case, return a String with the c
     }
 }
 </pre><div class="orderedlist"><ol class="orderedlist" type="1"><li 
class="listitem">
-The SingletonAssembler is a convenience class that creates a Qi4j Runtime 
instance and an application with one layer
+The SingletonAssembler is a convenience class that creates a Zest™ Runtime 
instance and an application with one layer
   and one module in it.
 </li><li class="listitem">
 We declare a TransientComposite of type <code class="literal">Speaker</code>.


Reply via email to