http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/tut-composites.html
----------------------------------------------------------------------
diff --git a/content/java/develop/tut-composites.html 
b/content/java/develop/tut-composites.html
index 10a9c43..3f6cb44 100644
--- a/content/java/develop/tut-composites.html
+++ b/content/java/develop/tut-composites.html
@@ -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>Transient Composites 
Tutorial</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="howto-assemble-application.html" 
title="Assemble an Application" /><link rel="next" href="tut-services.html" 
title="Services Composites Tutorial" />
+<!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>Transient Composites 
Tutorial</title><link rel="stylesheet" type="text/css" href="css/style.css" 
/><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link 
rel="home" href="index.html" title="" /><link rel="up" href="tutorials.html" 
title="Tutorials" /><link rel="prev" href="howto-assemble-application.html" 
title="Assemble an Application" /><link rel="next" href="tut-services.html" 
title="Services Composites Tutorial" />
 
 
 <!-- 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">Polygene™</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.ht
 ml">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">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</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 
clas
 s="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="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt><dt><span class="sectio
 n"><a href="releasing-apache.html">Releasing 
Polygene™</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
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="top-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><a href="index.html#home">Polygene™</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">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 class="toc"><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</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-s
 ervices.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="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-doc
 s.html">Polygene™ Documentation</a></span></dt><dt><span class="section"><a 
href="releasing-apache.html">Releasing 
Polygene™</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="tut-composites"></a>Transient Composites 
Tutorial</h3></div></div></div><div class="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="https://polygene.apache.org/download.html"; 
target="_top">Polygene™ 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 Polygene™. We will refactor one HelloWorld class to 
take advantage of the various
 features in Polygene™. 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 Polygene™ that 
you can reuse
-so that you don’t have to write everything yourself.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+so that you don’t have to write everything yourself.</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><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">
 <a class="xref" href="tut-composites.html#tut-composites-step2" title="Step 2 
- Creating a Transient Composite">Step 2 - Creating a Transient Composite</a>
@@ -94,7 +94,7 @@ so that you don’t have to write everything 
yourself.</p><div class="itemizedli
 </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, and Core Bootstrap:</p><div class="table"><a 
id="idm229756812864"></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.apache.polygene.core</p></td><td align="left" 
valign="top"><p>org.apache.polygene.core.runtime</p></td><td align="left" 
valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-polygene.html" title="Depend on Polygene™">Depend on 
Polygene™</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 Polygene™
+on Core API, Core SPI, and Core Bootstrap:</p><div class="table"><a 
id="idm982"></a><p class="title"><strong>Table 5. Artifact</strong></p><div 
class="table-contents"><table class="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.apache.polygene.core</p></td><td align="left" 
valign="top"><p>org.apache.polygene.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-polygene.html" title="Depend on Polygene™">Depend on 
Polygene™</a> tutorial for details.</p><div class="section"><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"><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 
Polygene™
 Composite Oriented application. Here is the initial code of 
HelloWorld.</p><pre class="programlisting brush: java">
 /**
  * Initial HelloWorld implementation. Everything is mixed up
@@ -142,17 +142,17 @@ public class HelloWorld
         return phrase + " " + name;
     }
 }
-</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"
+</pre></div><div class="section"><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>Polygene™ 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
 then also separate the state into one interface and the behaviour into 
another. This will make things easier for us
-later when state and behaviour becomes implemented by separate 
Mixins.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+later when state and behaviour becomes implemented by separate 
Mixins.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 Refactor the class into interface and implementation.
 </li><li class="listitem">
 Refactor the interface so that it extends one interface called 
HelloWorldBehaviour with behaviour and one called HelloWorldState with state 
(get/set methods).
-</li></ul></div></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_2"></a>Solution</h5></div></div></div><p>If you have successfully 
completed the task, you should end up with the following artifacts;</p><p><span 
class="strong"><strong>HelloWorld.java</strong></span></p><pre 
class="programlisting brush: java">
+</li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_2"></a>Solution</h5></div></div></div><p>If you have successfully 
completed the task, you should end up with the following artifacts;</p><p><span 
class="strong"><strong>HelloWorld.java</strong></span></p><pre 
class="programlisting brush: java">
 /**
  * This interface aggregates the behaviour and state
  * of the HelloWorld sub-interfaces. To a client
@@ -246,17 +246,17 @@ public class HelloWorldMixin
         return name;
     }
 }
-</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step2" title="Step 2 - Creating a 
Transient Composite">Step 2 - Creating a Transient 
Composite</a></p></div></div><div class="section" title="Step 2 - Creating a 
Transient Composite"><div class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step2"></a>Step 2 - Creating a Transient 
Composite</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step1" title="Step 1 - Interface 
Refactoring">Step 1 - Interface Refactoring</a>.</p><p>In this step we will 
create a TransientComposite interface that ties all pieces together. The 
TransientComposite
+</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step2" title="Step 2 - Creating a 
Transient Composite">Step 2 - Creating a Transient 
Composite</a></p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step2"></a>Step 2 - Creating a Transient 
Composite</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step1" title="Step 1 - Interface 
Refactoring">Step 1 - Interface Refactoring</a>.</p><p>In this step we will 
create a TransientComposite interface that ties all pieces together. The 
TransientComposite
 interface is a regular Java interface which extends the interfaces you want to 
expose from your domain model, and which
 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 Polygene™ 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 Polygene™.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+checks in the Mixin. If a null value is passed in an exception will be thrown 
by Polygene™.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 Create an interface that extends the domain interface <code 
class="literal">HelloWorld</code>.
 </li><li class="listitem">
 Add a @Mixins annotation to it with the name of the Mixin as argument.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_3"></a>Solution</h5></div></div></div><p>These ones remain 
unchanged:</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_3"></a>Solution</h5></div></div></div><p>These 
ones remain unchanged:</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
 <code class="literal">HelloWorld.java</code>
 </li><li class="listitem">
 <code class="literal">HelloWorldBehaviour.java</code>
@@ -327,16 +327,16 @@ public class HelloWorldMixin
         return name;
     }
 }
-</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step3" title="Step 3 - Mixins">Step 3 
- Mixins</a></p></div></div><div class="section" title="Step 3 - Mixins"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step3"></a>Step 3 - Mixins</h4></div></div></div><p>Previous 
step was <a class="xref" href="tut-composites.html#tut-composites-step2" 
title="Step 2 - Creating a Transient Composite">Step 2 - Creating a Transient 
Composite</a>.</p><p>In this step we refactor the Mixin from the previous steps 
into two, one which serves the behaviour interface and
+</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step3" title="Step 3 - Mixins">Step 3 
- Mixins</a></p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step3"></a>Step 3 - Mixins</h4></div></div></div><p>Previous 
step was <a class="xref" href="tut-composites.html#tut-composites-step2" 
title="Step 2 - Creating a Transient Composite">Step 2 - Creating a Transient 
Composite</a>.</p><p>In this step we refactor the Mixin from the previous steps 
into two, one which serves the behaviour interface and
 one which serves the state interface. This makes it possible to reuse the 
interfaces independently and also makes it
 easier to exchange one interface implementation with another. This also allows 
us to specify the new Mixins as default
-implementations of the interfaces by adding @Mixins annotations on 
them.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+implementations of the interfaces by adding @Mixins annotations on 
them.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 Refactor the Mixin into one which implement the behaviour interface and one 
which implements the state interface. Use the @This injection annotation to 
allow the behaviour to access the state.
 </li><li class="listitem">
 Add a @Mixins annotations on the behaviour and state interfaces which declare 
the Mixins as default implementations.
 </li><li class="listitem">
 Remove the @Mixins annotation from the HelloWorldComposite interface.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_4"></a>Solution</h5></div></div></div><p>Only <span 
class="strong"><strong>HelloWorld.java</strong></span> remains 
unchanged.</p><p><span 
class="strong"><strong>HelloWorldComposite.java</strong></span></p><pre 
class="programlisting brush: java">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_4"></a>Solution</h5></div></div></div><p>Only 
<span class="strong"><strong>HelloWorld.java</strong></span> remains 
unchanged.</p><p><span 
class="strong"><strong>HelloWorldComposite.java</strong></span></p><pre 
class="programlisting brush: java">
 /**
  * This Composite interface declares all the Fragments
  * of the HelloWorld composite.
@@ -442,7 +442,7 @@ public class HelloWorldStateMixin
         this.name = name;
     }
 }
-</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step4" title="Step 4 - Concerns">Step 
4 - Concerns</a></p></div></div><div class="section" title="Step 4 - 
Concerns"><div class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step4"></a>Step 4 - 
Concerns</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step3" title="Step 3 - Mixins">Step 3 
- Mixins</a>.</p><p>In this step we refactor the mixin from the previous steps 
so that the result of the say() method is modified to be
+</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step4" title="Step 4 - Concerns">Step 
4 - Concerns</a></p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step4"></a>Step 4 - 
Concerns</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step3" title="Step 3 - Mixins">Step 3 
- Mixins</a>.</p><p>In this step we refactor the mixin from the previous steps 
so that the result of the say() method is modified to be
 prefixed with "Simon says:". To do this we need to implement a Concern for the 
say() method. Concerns are a type of
 Modifier which modify the behaviour of the methods in Mixins. They do this by 
intercepting the invocation of the
 TransientComposite. This allows them to change the invocation parameters, 
return their own values or throw their own
@@ -455,11 +455,11 @@ or method parameter, which has the same type as the 
interface the Concern implem
 invoked the Concern will be called, allowing it to perform it’s work. If the 
call should proceed, then invoke the
 method again on the injected object. The preferred way to do all of this is to 
subclass ConcernOf which does all of
 this for you.</p><p>Concerns are applied by adding an @Concerns annotation on 
the TransientComposite, the domain interface, or the Mixin
-implementation. Any of these works, and where to put it is a matter of design 
choice.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+implementation. Any of these works, and where to put it is a matter of design 
choice.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 Create a typed concern, implement the HelloWorldBehaviour and let it modify 
the result of the base method by prefix the result with "Simon says:".
 </li><li class="listitem">
 Add an @Concerns annotation on the HelloWorldBehaviourMixin which references 
the Concern class.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_5"></a>Solution</h5></div></div></div><p>If you have successfully 
completed the task, you should end up with the following artifacts;</p><p>These 
ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_5"></a>Solution</h5></div></div></div><p>If you 
have successfully completed the task, you should end up with the following 
artifacts;</p><p>These ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 <code class="literal">HelloWorld.java</code>
 </li><li class="listitem">
 <code class="literal">HelloWorldBehavior.java</code>
@@ -508,12 +508,12 @@ public class HelloWorldBehaviourConcern
         return "Simon says:" + next.say();
     }
 }
-</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
+</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"><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 Polygene™ 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,
+specific value fulfills the Constraint or not.</p><div class="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 Polygene™ which you can use. The null check of the 
original HelloWorld
 version is already handled by default since Polygene™ considers method 
parameters to be mandatory if not explicitly marked
@@ -522,9 +522,9 @@ as ensuring that the passed in string is not 
empty.</p><p>The only thing you hav
 way. The annotation has a default implementation declared in it by using the 
@Constraints annotation. You can either
 just use this, which is the common case, or override it by declaring your own 
@Constraints annotation in the
 TransientComposite type.</p><p>You can add as many Constraint annotations you 
want to a parameter. All of them will be checked whenever a method is
-called.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+called.</p><p>Steps for this tutorial:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 Add @NotEmpty to the state parameters.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_6"></a>Solution</h5></div></div></div><p>If you have successfully 
completed the task, you should end up with the following artifacts;</p><p>These 
ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_6"></a>Solution</h5></div></div></div><p>If you 
have successfully completed the task, you should end up with the following 
artifacts;</p><p>These ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 <code class="literal">HelloWorld.java</code>
 </li><li class="listitem">
 <code class="literal">HelloWorldComposite.java</code>
@@ -606,7 +606,7 @@ public interface HelloWorldState
 
     String getName();
 }
-</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step6" title="Step 6 - 
SideEffects">Step 6 - SideEffects</a></p></div></div><div class="section" 
title="Step 6 - SideEffects"><div class="titlepage"><div><div><h4 
class="title"><a id="tut-composites-step6"></a>Step 6 - 
SideEffects</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step5" title="Step 5 - 
Constraints">Step 5 - Constraints</a>.</p><p>The current say() method has a 
Concern that modifies its value. What if we instead want the value to be 
intact, but log
+</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step6" title="Step 6 - 
SideEffects">Step 6 - SideEffects</a></p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step6"></a>Step 6 - 
SideEffects</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step5" title="Step 5 - 
Constraints">Step 5 - Constraints</a>.</p><p>The current say() method has a 
Concern that modifies its value. What if we instead want the value to be 
intact, but log
 that value to System.out? That would be considered a side-effect of the say() 
method, and should hence not be done in a
 Concern. It would be better to implement this in a SideEffect. SideEffects are 
executed after the Mixin and all Concerns
 for a method are done, which means that the final result has been computed. A 
SideEffect can access this result value,
@@ -618,7 +618,7 @@ you want the code to be a side-effect of. Note that calling 
"next" does not actu
 value (or throws the exception, if one was thrown from the original method) 
that has already been computed. Similarly,
 since the method is already done, you can return anything from the SideEffect 
method. The framework will simply throw it
 away, and also ignore any exceptions that you throw in your code.</p><p>To 
declare that the SideEffect should be used you add the @SideEffects annotation 
to either the TransientComposite type,
-the Mixin type, or the Mixin implementation. Either works.</p><p>Steps for 
this tutorial:</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
+the Mixin type, or the Mixin implementation. Either works.</p><p>Steps for 
this tutorial:</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
 Create the SideEffect class that logs the result of say() to System.out.
 </li><li class="listitem">
 Add a @SideEffects annotation with the SideEffect to the HelloWorldComposite 
interface.
@@ -626,7 +626,7 @@ Add a @SideEffects annotation with the SideEffect to the 
HelloWorldComposite int
 Remove the Concern from the previous step.
 </li><li class="listitem">
 Move the HelloWorldStateMixin from the HelloWorldState to the 
HelloWorldComposite interface.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_7"></a>Solution</h5></div></div></div><p>If you have successfully 
completed the task, you should end up with the following artifacts;</p><p>These 
ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_7"></a>Solution</h5></div></div></div><p>If you 
have successfully completed the task, you should end up with the following 
artifacts;</p><p>These ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 <code class="literal">HelloWorld.java</code>
 </li><li class="listitem">
 <code class="literal">HelloWorldBehaviourMixin.java</code>
@@ -691,7 +691,7 @@ 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 Polygene™ 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"><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 Polygene™ 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
@@ -702,7 +702,7 @@ reducing Properties to one-liners!</p><p>In the Mixin 
implementation of the inte
 which is created for you by Polygene™. 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 Polygene™ 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">
+will be applied just as before when you call "set".</p><p>Steps for this 
tutorial:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li 
class="listitem">
 Remove JavaBeans properties from HelloWorldState.
 </li><li class="listitem">
 Remove HelloWorld and add the HelloWorldState and HelloWorldBehavior to the 
HelloWorldComposite interface.
@@ -714,7 +714,7 @@ Update the behaviour mixin to use the state interface 
accordingly.
 Add Property methods with the correct type and the @NotEmpty annotation.
 </li><li class="listitem">
 Update the state mixin to inject and return the properties as described above.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_8"></a>Solution</h5></div></div></div><p>If you have successfully 
completed the task, you should end up with the following artifacts;</p><p>Only 
<code class="literal">HelloWorldBehavior.java</code> remains 
unchanged.</p><p>Theses ones are deleted:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_8"></a>Solution</h5></div></div></div><p>If you 
have successfully completed the task, you should end up with the following 
artifacts;</p><p>Only <code class="literal">HelloWorldBehavior.java</code> 
remains unchanged.</p><p>Theses ones are deleted:</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
 <code class="literal">HelloWorld.java</code>
 </li><li class="listitem">
 <code class="literal">HelloWorldConcern.java</code>
@@ -790,7 +790,7 @@ public class HelloWorldStateMixin
         return name;
     }
 }
-</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step8" title="Step 8 - Generic 
Mixins">Step 8 - Generic Mixins</a></p></div></div><div class="section" 
title="Step 8 - Generic Mixins"><div class="titlepage"><div><div><h4 
class="title"><a id="tut-composites-step8"></a>Step 8 - Generic 
Mixins</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step7" title="Step 7 - 
Properties">Step 7 - Properties</a>.</p><p>In this step we will look at how to 
use generic Fragments. So far all Fragments, i.e. the Concerns, SideEffects,
+</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step8" title="Step 8 - Generic 
Mixins">Step 8 - Generic Mixins</a></p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step8"></a>Step 8 - Generic 
Mixins</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step7" title="Step 7 - 
Properties">Step 7 - Properties</a>.</p><p>In this step we will look at how to 
use generic Fragments. So far all Fragments, i.e. the Concerns, SideEffects,
 and Mixins, have directly implemented the domain interface. But sometimes it 
is useful to be able to provide a generic
 implementation of an interface. An example of this is the HelloWorldState 
interface. Since it only handles properties,
 and the old version used the JavaBean rules for naming getters and setters we 
could create a mixin that handles
@@ -799,7 +799,7 @@ java.lang.proxy.InvocationHandler. This has a single 
"invoke" method which is pa
 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 Polygene™ 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">
+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" type="disc"><li class="listitem">
 Remove the HelloWorldStateMixin
 </li><li class="listitem">
 Add a GenericPropertyMixin, and have it implement InvocationHandler
@@ -811,7 +811,7 @@ On call to invoke(), delegate to the StateHolder interface 
to get the Property f
 Add an @AppliesTo annotation to the Mixin and implement the AppliesToFilter 
with a rule that matches only methods that return Property values.
 </li><li class="listitem">
 Add the mixin to the TransientComposite.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_9"></a>Solution</h5></div></div></div><p>If you have successfully 
completed the task, you should end up with the following artifacts;</p><p>These 
ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_9"></a>Solution</h5></div></div></div><p>If you 
have successfully completed the task, you should end up with the following 
artifacts;</p><p>These ones remain unchanged:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
 <code class="literal">HelloWorldBehaviour.java</code>
 </li><li class="listitem">
 <code class="literal">HelloWorldState.java</code>
@@ -871,7 +871,7 @@ public interface HelloWorldComposite
     extends HelloWorldBehaviour, HelloWorldState
 {
 }
-</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step9" title="Step 9 - Private and 
Abstract Mixins">Step 9 - Private and Abstract Mixins</a></p></div></div><div 
class="section" title="Step 9 - Private and Abstract Mixins"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step9"></a>Step 9 - Private and Abstract 
Mixins</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step8" title="Step 8 - Generic 
Mixins">Step 8 - Generic Mixins</a>.</p><p>Now we’re going to turn around and 
see how we can reduce the code needed to implement the HelloWorld example. We 
will
+</pre><p>Next step is <a class="xref" 
href="tut-composites.html#tut-composites-step9" title="Step 9 - Private and 
Abstract Mixins">Step 9 - Private and Abstract Mixins</a></p></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="tut-composites-step9"></a>Step 9 - Private and Abstract 
Mixins</h4></div></div></div><p>Previous step was <a class="xref" 
href="tut-composites.html#tut-composites-step8" title="Step 8 - Generic 
Mixins">Step 8 - Generic Mixins</a>.</p><p>Now we’re going to turn around and 
see how we can reduce the code needed to implement the HelloWorld example. We 
will
 also look at how to hide the Properties from the client code, since Properties 
are often considered to be implementation
 details that should not be exposed to clients.</p><p>The first thing we will 
do is remove the behaviour interface, and move the say() method to the 
TransientComposite type.
 This forces the mixin to implement the TransientComposite type, which would 
normally mean that it would have to
@@ -890,7 +890,7 @@ either for encapsulation purposes, or for referencing 
utility mixins that help t
 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
 instantiating it you have to create a TransientBuilder first, then set the 
state using .prototypeFor(), and then call
 newInstance(). This ensures that the state can be set during construction, but 
not at any later point, other than
-through publicly exposed methods.</p><p>Steps for this tutorial:</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+through publicly exposed methods.</p><p>Steps for this tutorial:</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
 Move the say() method into the TransientComposite interface.
 </li><li class="listitem">
 Remove the behaviour interface.
@@ -902,7 +902,7 @@ Mark the HelloWorldMixin as abstract and implement only the 
say() method.
 Remove the HelloWorldState from the TransientComposite "extends" declaration.
 </li><li class="listitem">
 Remove the GenericPropertyMixin. The Property methods will be implemented by 
the standard PropertyMixin declared in the TransientComposite interface instead.
-</li></ul></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_solution_10"></a>Solution</h5></div></div></div><p>If you have 
successfully completed the task, you should end up with the following artifacts 
only;</p><p><span 
class="strong"><strong>HelloWorldComposite.java</strong></span></p><pre 
class="programlisting brush: java">
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_solution_10"></a>Solution</h5></div></div></div><p>If you 
have successfully completed the task, you should end up with the following 
artifacts only;</p><p><span 
class="strong"><strong>HelloWorldComposite.java</strong></span></p><pre 
class="programlisting brush: java">
 /**
  * This Composite interface declares transitively all the Fragments of the 
HelloWorld composite.
  * &lt;p&gt;

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/tut-services.html
----------------------------------------------------------------------
diff --git a/content/java/develop/tut-services.html 
b/content/java/develop/tut-services.html
index 43d9eac..b5ceec3 100644
--- a/content/java/develop/tut-services.html
+++ b/content/java/develop/tut-services.html
@@ -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>Services Composites 
Tutorial</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="tut-composites.html" 
title="Transient Composites Tutorial" /><link rel="next" 
href="howto-contextual-fragments.html" title="Use contextual fragments" />
+<!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>Services Composites 
Tutorial</title><link rel="stylesheet" type="text/css" href="css/style.css" 
/><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link 
rel="home" href="index.html" title="" /><link rel="up" href="tutorials.html" 
title="Tutorials" /><link rel="prev" href="tut-composites.html" 
title="Transient Composites Tutorial" /><link rel="next" 
href="howto-contextual-fragments.html" title="Use contextual fragments" />
 
 
 <!-- favicon -->
@@ -66,12 +66,12 @@
   })();
  </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">Polygene™</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.ht
 ml">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">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</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 clas
 s="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="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt><dt><span class="sectio
 n"><a href="releasing-apache.html">Releasing 
Polygene™</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
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="top-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><a href="index.html#home">Polygene™</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">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 class="toc"><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</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-serv
 ices.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="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-doc
 s.html">Polygene™ Documentation</a></span></dt><dt><span class="section"><a 
href="releasing-apache.html">Releasing 
Polygene™</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a id="tut-services"></a>Services 
Composites Tutorial</h3></div></div></div><div class="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://polygene.apache.org/download.html"; 
target="_top">Polygene™ 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 Polygene™. These 
refactorings will benefit from automatic Service
-activation and Configuration Entities management.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+activation and Configuration Entities management.</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><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">
 <a class="xref" href="tut-services.html#tut-services-step2" title="Step 2 - 
Hooking into the Service Activation">Step 2 - Hooking into the Service 
Activation</a>
@@ -80,13 +80,13 @@ activation and Configuration Entities management.</p><div 
class="itemizedlist"><
 </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, and Core Bootstrap:</p><div class="table"><a 
id="idm229756580032"></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.apache.polygene.core</p></td><td align="left" 
valign="top"><p>org.apache.polygene.core.runtime</p></td><td align="left" 
valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>See the <a class="xref" 
href="howto-depend-on-polygene.html" title="Depend on Polygene™">Depend on 
Polygene™</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-serv
 ices-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
+on Core API, Core SPI, and Core Bootstrap:</p><div class="table"><a 
id="idm1390"></a><p class="title"><strong>Table 6. Artifact</strong></p><div 
class="table-contents"><table class="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.apache.polygene.core</p></td><td align="left" 
valign="top"><p>org.apache.polygene.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-polygene.html" title="Depend on Polygene™">Depend on 
Polygene™</a> tutorial for details.</p><div class="section"><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>Polygene™ 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 
Polygene™ 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">
+We also want the Book to be a ValueComposite.</p><p>Steps for this 
tutorial:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li 
class="listitem">
 Make the Book into a ValueComposite.
 </li><li class="listitem">
 Make the Library an interface with the same methods. We call this a MixinType.
@@ -96,12 +96,12 @@ Create a LibraryMixin class, which implements the Library 
interface.
 Create a LibraryService that binds the LibraryMixin.
 </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
+</li></ul></div></div><div class="section"><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 Polygene™ 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
-copies are created in the activate method.</p><p>Steps to do:</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+copies are created in the activate method.</p><p>Steps to do:</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
 Add a createInitialData method to Library.
 </li><li class="listitem">
 In the implementation, create a couple of books of each title and store each 
copy in a HashMap&lt;String,ArrayList&lt;Book&gt;&gt;.
@@ -111,7 +111,7 @@ Write an Activator&lt;ServiceReference&lt;Library&gt;&gt; 
class extending Activa
 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 Polygene™. A
+</li></ul></div></div><div class="section"><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 Polygene™. 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>Polygene™ also handles the 
bootstrapping of configuration for the services. If the ConfigurationComposite 
is
@@ -120,7 +120,7 @@ service instance, read those properties into a 
ConfigurationComposite instance,
 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".
 The first two are a string with a comma separated list, and the "copies" is 
just an Integer with how many
-copies are made of each title.</p><p>Steps to do.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+copies are made of each title.</p><p>Steps to do.</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
 Create a LibraryConfiguration interface that extends ConfigurationComposite, 
and has three Property instances named "titles", "authors" and "copies", where 
the first two are of String type and the last is of Integer type.
 </li><li class="listitem">
 Delete the LibraryActivator and remove the @Activators annotation from the 
LibraryService and the corresponding createInitialData method.

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/tutorials.html
----------------------------------------------------------------------
diff --git a/content/java/develop/tutorials.html 
b/content/java/develop/tutorials.html
index 9aaa2a1..1c7a1e3 100644
--- a/content/java/develop/tutorials.html
+++ b/content/java/develop/tutorials.html
@@ -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="Polygene™ 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.79.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="Polygene™ in 2 minutes" />
 
 
 <!-- favicon -->
@@ -66,19 +66,19 @@
   })();
  </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">Polygene™</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.ht
 ml">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">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</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 
clas
 s="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="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt><dt><span class="sectio
 n"><a href="releasing-apache.html">Releasing 
Polygene™</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
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="top-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><a href="index.html#home">Polygene™</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">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 class="toc"><dt><span 
class="section"><span xmlns="" 
href="tutorials.html#_overview">Overview</span></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</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-s
 ervices.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="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-doc
 s.html">Polygene™ Documentation</a></span></dt><dt><span class="section"><a 
href="releasing-apache.html">Releasing 
Polygene™</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h2 class="title"><a 
id="tutorials"></a>Tutorials</h2></div></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="_overview"></a>Overview</h3></div></div></div><div class="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="https://polygene.apache.org/download.html"; 
target="_top">Polygene™ 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 Polygene™.</p><div class="section" title="Polygene™ in 42 
minutes"><div class="titlepage"><div><div><h4 class="title"><a 
id="tutorials-intro"></a>Polygene™ in 42 
minutes</h4></div></div></div><p>This quite long introduction to Polygene™ 
will start by brushing up an overview of the problems Polygene™ solve, teach 
you what
+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 Polygene™.</p><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="tutorials-intro"></a>Polygene™ in 42 
minutes</h4></div></div></div><p>This quite long introduction to Polygene™ 
will start by brushing up an overview of the problems Polygene™ 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">
+Hello World example.</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
 <a class="xref" href="two-minutes-intro.html" title="Polygene™ in 2 
minutes">Polygene™ in 2 minutes</a>
 </li><li class="listitem">
 <a class="xref" href="ten-minutes-intro.html" title="Polygene™ in 10 
minutes">Polygene™ in 10 minutes</a>
 </li><li class="listitem">
 <a class="xref" href="thirty-minutes-intro.html" title="Polygene™ in 30 
minutes">Polygene™ in 30 minutes</a>
-</li></ul></div></div><div class="section" title="Getting real with 
Polygene™"><div class="titlepage"><div><div><h4 class="title"><a 
id="_getting_real_with_polygene"></a>Getting real with 
Polygene™</h4></div></div></div><p>Throughout this set of tutorials it will 
be shown how to depend on Polygene™ in your build, how to assemble a complete
+</li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_getting_real_with_polygene"></a>Getting real with 
Polygene™</h4></div></div></div><p>Throughout this set of tutorials it will 
be shown how to depend on Polygene™ 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">
+properties.</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
 <a class="xref" href="howto-depend-on-polygene.html" title="Depend on 
Polygene™">Depend on Polygene™</a>
 </li><li class="listitem">
 <a class="xref" href="howto-assemble-application.html" title="Assemble an 
Application">Assemble an Application</a>
@@ -90,8 +90,8 @@ properties.</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="lis
 <a class="xref" href="howto-contextual-fragments.html" title="Use contextual 
fragments">Use Contextual Fragments</a>
 </li><li class="listitem">
 <a class="xref" href="howto-leverage-properties.html" title="Leverage 
Properties">Leverage Properties</a>
-</li></ul></div></div><div class="section" title="More tutorials"><div 
class="titlepage"><div><div><h4 class="title"><a id="_more_tutorials"></a>More 
tutorials</h4></div></div></div><p>In this other set of tutorials it will be 
shown how to achieve tasks that frequently arise during the development of a
-typical application.</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
+</li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_more_tutorials"></a>More 
tutorials</h4></div></div></div><p>In this other set of tutorials it will be 
shown how to achieve tasks that frequently arise during the development of a
+typical application.</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
 <a class="xref" href="howto-create-constraint.html" title="Create a 
Constraint">Create a Constraint</a>
 </li><li class="listitem">
 <a class="xref" href="howto-create-concern.html" title="Create a 
Concern">Create a Concern</a>
@@ -101,8 +101,8 @@ typical application.</p><div class="itemizedlist"><ul 
class="itemizedlist"><li c
 <a class="xref" href="howto-create-entity.html" title="Create an 
Entity">Create an Entity</a>
 </li><li class="listitem">
 <a class="xref" href="howto-configure-service.html" title="Configure a 
Service">Configure a Service</a>
-</li></ul></div></div><div class="section" title="Polygene™ 
Development"><div class="titlepage"><div><div><h4 class="title"><a 
id="_polygene_development"></a>Polygene™ 
Development</h4></div></div></div><p>This last set of tutorials you’ll learn 
how to build the Polygene™ SDK from sources including this very documentation 
website
-, the Polygene™ manual, binaries and sources distributions.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+</li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_polygene_development"></a>Polygene™ 
Development</h4></div></div></div><p>This last set of tutorials you’ll learn 
how to build the Polygene™ SDK from sources including this very documentation 
website
+, the Polygene™ manual, binaries and sources distributions.</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
 <a class="xref" href="build-system.html" title="Polygene™ Build 
System">Build System</a>
 </li><li class="listitem">
 <a class="xref" href="community-docs.html" title="Polygene™ 
Documentation">Writing Documentation</a>

Reply via email to