http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/core-bootstrap-assembly.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core-bootstrap-assembly.html 
b/content/java/develop/core-bootstrap-assembly.html
index 5cb31e7..7b15654 100644
--- a/content/java/develop/core-bootstrap-assembly.html
+++ b/content/java/develop/core-bootstrap-assembly.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>Core Bootstrap</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="core.html" title="Core" /><link rel="prev" 
href="core-api.html" title="Core API" /><link rel="next" 
href="core-testsupport.html" title="Core Test Support" />
+<!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>Core Bootstrap</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="core.html" title="Core" /><link rel="prev" 
href="core-api.html" title="Core API" /><link rel="next" 
href="core-testsupport.html" title="Core Test Support" />
 
 
 <!-- favicon -->
@@ -66,7 +66,7 @@
   })();
  </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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><span xmlns="" href="core-bootstrap-assembly.html">Core 
Bootstrap</span></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><a href="core-runtime.html">Core 
Runtime</a></span></dt></dl></div></div><div class="section" title="Core 
Bootstrap"><div class="titlepage"><div><div><h3 class="title"><a 
id="core-bootstrap-assembly"></a>Core Bootstrap</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p class="devsta
 tus-docs-brief">docs</p><p 
class="devstatus-tests-good">tests</p><p>Polygene™ has a distinct bootstrap 
phase, also known as the <span class="emphasis"><em>Assembly</em></span> of an 
application, where the applications structure
+  </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 
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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><span xmlns="" href="core-bootstrap-assembly.html">Core 
Bootstrap</span></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><a href="core-runtime.html">Core 
Runtime</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="core-bootstrap-assembly"></a>Core Bootstrap</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p class="devst
 atus-docs-brief">docs</p><p 
class="devstatus-tests-good">tests</p><p>Polygene™ has a distinct bootstrap 
phase, also known as the <span class="emphasis"><em>Assembly</em></span> of an 
application, where the applications structure
 is defined programmatically. Once all the layers, modules and all the 
composite types in each module have been defined
 the model is instantiated into an application. This enables the entire <span 
class="emphasis"><em>structure</em></span> system in Polygene, where types 
"belongs"
 to a module and visibility rules define default behaviors, enforcement of 
architectural integrity and much more.</p><p>The <span 
class="emphasis"><em>assembly</em></span> is preceeded by the creation of the 
<span class="emphasis"><em>Polygene Runtime</em></span>. The <span 
class="emphasis"><em>assembly</em></span> can be declared fully by defining
@@ -75,7 +75,7 @@ convenience assemblies, one for a <span 
class="emphasis"><em>pancake</em></span>
 in a single layer, useful for small applications, spikes and tests. The <code 
class="literal">bootstrap</code> system has several ways to acheive
 this, and they are listed below in <a class="xref" 
href="core-bootstrap-assembly.html#core-bootstrap-assembly-layered" 
title="Layered Application Assembler (RECOMMENDED!)">Layered Application 
Assembler</a>.</p><p>During <span class="emphasis"><em>assembly</em></span>, 
the application (JVM level) architecture and the application model is defined. 
You define which
 layers exist and how they relate to each other. For each layer, you define 
which modules it contains. And for each
-module, you define which composites are in it, and what are the visibility 
rules for each of these composites.</p><p>You can also;</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+module, you define which composites are in it, and what are the visibility 
rules for each of these composites.</p><p>You can also;</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
 Define default values for properties.
 </li><li class="listitem">
 Add additional interfaces to composites dynamically.
@@ -87,43 +87,43 @@ Set <span class="emphasis"><em>meta information</em></span> 
on defined types.
 Import external services to be available as Polygene™ services.
 </li><li class="listitem">
 Tag services with markers
-</li></ul></div><div class="section" title="Defining Objects"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_defining_objects"></a>Defining Objects</h4></div></div></div><pre 
class="programlisting brush: java">@Override
+</li></ul></div><div class="table"><a id="idm447727172640"></a><p 
class="title"><strong>Table 15. 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.bootstrap</p></td><td align="left" 
valign="top"><p>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_defining_objects"></a>Defining 
Objects</h4></div></div></div><pre class="programlisting brush: java">@Override
 public void assemble( ModuleAssembly module )
         throws AssemblyException
 {
     module.objects( MyObject.class ).visibleIn( Visibility.layer );
 }
-</pre></div><div class="section" title="Defining Transients"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_defining_transients"></a>Defining Transients</h4></div></div></div><pre 
class="programlisting brush: java">@Override
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_defining_transients"></a>Defining 
Transients</h4></div></div></div><pre class="programlisting brush: 
java">@Override
 public void assemble( ModuleAssembly module )
         throws AssemblyException
 {
     module.transients( MyTransient.class ).visibleIn( Visibility.layer );
 }
-</pre></div><div class="section" title="Defining Values"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_defining_values"></a>Defining Values</h4></div></div></div><pre 
class="programlisting brush: java">@Override
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_defining_values"></a>Defining 
Values</h4></div></div></div><pre class="programlisting brush: java">@Override
 public void assemble( ModuleAssembly module )
         throws AssemblyException
 {
     module.values( MyValue.class ).visibleIn( Visibility.layer );
 }
-</pre></div><div class="section" title="Defining Entities"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_defining_entities"></a>Defining Entities</h4></div></div></div><pre 
class="programlisting brush: java">@Override
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_defining_entities"></a>Defining 
Entities</h4></div></div></div><pre class="programlisting brush: java">@Override
 public void assemble( ModuleAssembly module )
         throws AssemblyException
 {
     module.entities( MyEntity.class ).visibleIn( Visibility.layer );
 }
-</pre></div><div class="section" title="Defining Services"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_defining_services"></a>Defining Services</h4></div></div></div><pre 
class="programlisting brush: java">@Override
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_defining_services"></a>Defining 
Services</h4></div></div></div><pre class="programlisting brush: java">@Override
 public void assemble( ModuleAssembly module )
         throws AssemblyException
 {
     module.services( MyService.class ).visibleIn( Visibility.layer );
 }
-</pre><div class="section" title="Tagging Services"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_tagging_services"></a>Tagging Services</h5></div></div></div><pre 
class="programlisting brush: java">@Override
+</pre><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_tagging_services"></a>Tagging 
Services</h5></div></div></div><pre class="programlisting brush: java">@Override
 public void assemble( ModuleAssembly module )
     throws AssemblyException
 {
     module.services( MyService.class ).taggedWith( "foo", "bar" );
 }
-</pre></div><div class="section" title="Importing external Services"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_importing_external_services"></a>Importing external 
Services</h5></div></div></div><pre class="programlisting brush: java">@Override
+</pre></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_importing_external_services"></a>Importing external 
Services</h5></div></div></div><pre class="programlisting brush: java">@Override
 public void assemble( ModuleAssembly module )
     throws AssemblyException
 {
@@ -137,7 +137,7 @@ public void assemble( ModuleAssembly module )
     module.importedServices( MyService.class ).
         importedBy( NewObjectImporter.class );
 }
-</pre></div></div><div class="section" title="Defining default values for 
Properties"><div class="titlepage"><div><div><h4 class="title"><a 
id="_defining_default_values_for_properties"></a>Defining default values for 
Properties</h4></div></div></div><pre class="programlisting brush: 
java">@Override
+</pre></div></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_defining_default_values_for_properties"></a>Defining 
default values for Properties</h4></div></div></div><pre class="programlisting 
brush: java">@Override
 public void assemble( ModuleAssembly module )
     throws AssemblyException
 {
@@ -149,7 +149,7 @@ public void assemble( ModuleAssembly module )
     MyEntity myEntityDefaults = module.forMixin( MyEntity.class 
).declareDefaults();
     myEntityDefaults.cathedral().set( "bazar" );
 }
-</pre></div><div class="section" title="Adding additional interfaces to 
composites"><div class="titlepage"><div><div><h4 class="title"><a 
id="_adding_additional_interfaces_to_composites"></a>Adding additional 
interfaces to composites</h4></div></div></div></div><div class="section" 
title="Adding concerns, mixins, constraints and side effects"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_adding_concerns_mixins_constraints_and_side_effects"></a>Adding concerns, 
mixins, constraints and side effects</h4></div></div></div></div><div 
class="section" title="Setting meta information on assembled types"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_setting_meta_information_on_assembled_types"></a>Setting meta information 
on assembled types</h4></div></div></div></div><div class="section" 
title="Using Assemblers"><div class="titlepage"><div><div><h4 class="title"><a 
id="_using_assemblers"></a>Using Assemblers</h4></div></div></div><p>Many <a 
class="link" href="libra
 ries.html" title="Libraries">libraries</a> and <a class="link" 
href="extensions.html" title="Extensions">extensions</a> provides a 
cookie-cutter <span class="emphasis"><em>Assembler</em></span>, to simplify the 
set up
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_adding_additional_interfaces_to_composites"></a>Adding 
additional interfaces to composites</h4></div></div></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_adding_concerns_mixins_constraints_and_side_effects"></a>Adding concerns, 
mixins, constraints and side effects</h4></div></div></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_setting_meta_information_on_assembled_types"></a>Setting meta information 
on assembled types</h4></div></div></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_using_assemblers"></a>Using Assemblers</h4></div></div></div><p>Many <a 
class="link" href="libraries.html" title="Libraries">libraries</a> and <a 
class="link" href="extensions.html" title="Extensions">extensions</a> provides 
a cookie-cutter <span class="emphasis"><em>Assembler</em></sp
 an>, to simplify the set up
 of such component. Often these are suitable, but sometimes they won’t fit 
the application in hand, in which case the
 source code at least provides information of what is needed for the component 
to be used.</p><p>Assemblers are typically just instantiated and then call the 
assemble() method with the ModuleAssembly instance,
 such as;</p><pre class="programlisting brush: java">@Override
@@ -159,7 +159,7 @@ public void assemble( ModuleAssembly module )
     RestServerAssembler assembler = new RestServerAssembler();
     assembler.assemble( module );
 }
-</pre></div><div class="section" title="Defining an Entity Store"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_defining_an_entity_store"></a>Defining an Entity 
Store</h4></div></div></div><p>Defining an <span class="emphasis"><em>Entity 
Store</em></span> is in principle as simple as defining a ServiceComposite 
implementing the EntityStore
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_defining_an_entity_store"></a>Defining an Entity 
Store</h4></div></div></div><p>Defining an <span class="emphasis"><em>Entity 
Store</em></span> is in principle as simple as defining a ServiceComposite 
implementing the EntityStore
 interface. The problem is that most Entity Stores require <a class="xref" 
href="core-api.html#core-api-service-configuration" title="Service 
Configuration">Service Configuration</a>, and configuration requires an
 Entity Store. This chicken-and-egg problem is resolved by having an entity 
store available that does not require any
 <a class="xref" href="core-api.html#core-api-service-configuration" 
title="Service Configuration">Service Configuration</a>. Many <span 
class="emphasis"><em>Assemblers</em></span> for entity store implementations 
uses the MemoryEntityStore, and
@@ -176,12 +176,12 @@ public void assemble( ModuleAssembly module )
 {
     new JdbmEntityStoreAssembler().assemble( module );
 }
-</pre></div><div class="section" title="Layered Application Assembler 
(RECOMMENDED!)"><div class="titlepage"><div><div><h4 class="title"><a 
id="core-bootstrap-assembly-layered"></a>Layered Application Assembler 
(RECOMMENDED!)</h4></div></div></div><p>In 2.1, a new way to instantiate 
Polygene™ applications was introduced. It starts with subclassing the
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="core-bootstrap-assembly-layered"></a>Layered Application 
Assembler (RECOMMENDED!)</h4></div></div></div><p>In 2.1, a new way to 
instantiate Polygene™ applications was introduced. It starts with subclassing 
the
 <code class="literal">LayeredApplicationAssembler</code>, and implementing the 
<code class="literal">assembleLayers()</code> method.</p><p>In the <code 
class="literal">assembleLayers()</code> method, one is epected to either call 
the <code class="literal">createLayer()</code> method in the super class
 with the Class of the LayerAssembler,</p><pre class="programlisting brush: 
java">    LayerAssembly domainLayer = createLayer( DomainLayer.class 
);</pre><p>OR manually instantiate and call the LayerAssembler.</p><pre 
class="programlisting brush: java">    LayerAssembly infraLayer = new 
InfrastructureLayer( configModule ).assemble( assembly.layer( 
InfrastructureLayer.NAME  ));</pre><p>This is to make the normal case as simple 
as possible, yet allow the special needs that occssionally surfaces.</p><p>Each 
LayerAssembler implementation may optionally extend the <code 
class="literal">LayeredLayerAssembler</code>, to get access to the
 <code class="literal">createModule()</code> method, which again simplifies the 
creation of modules in the <code class="literal">assemble()</code> 
method.</p><pre class="programlisting brush: java">    createModule( layer, 
InvoicingModule.class );</pre><p><code class="literal">ModuleAssembler</code> 
implementations typically use <code class="literal">Assembler</code> classes to 
put together, or call the <code class="literal">entities()</code>,
 <code class="literal">values()</code> methods described elsewhere on this 
page. There is no superclass to use.</p><p><code 
class="literal">ModuleAssembler</code> implementations should have a name 
ending with "Module" and the naming will insert a human-readable
-space within the module name, e.g. <code 
class="literal">InvoicingModule</code> will be named "Invoicing 
Module".</p><p>For example code, see the tutorial <a class="xref" 
href="howto-assemble-application.html" title="Assemble an Application">Assemble 
an Application</a>.</p></div><div class="section" title="Singleton 
Assembler"><div class="titlepage"><div><div><h4 class="title"><a 
id="_singleton_assembler"></a>Singleton 
Assembler</h4></div></div></div><p>Every Polygene™ runtime instance consist 
of One Application, with one or more Layers and one or more Modules in each 
Layer.
+space within the module name, e.g. <code 
class="literal">InvoicingModule</code> will be named "Invoicing 
Module".</p><p>For example code, see the tutorial <a class="xref" 
href="howto-assemble-application.html" title="Assemble an Application">Assemble 
an Application</a>.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_singleton_assembler"></a>Singleton 
Assembler</h4></div></div></div><p>Every Polygene™ runtime instance consist 
of One Application, with one or more Layers and one or more Modules in each 
Layer.
 So the minimal application is still one layer with one module. This is not 
recommended other than for testing purposes
 and really trivial applications.</p><p>Let’s take a closer look at how it is 
put together.</p><pre class="programlisting brush: java">SingletonAssembler 
assembler = new SingletonAssembler()
 {
@@ -199,10 +199,10 @@ and really trivial applications.</p><p>Let’s take a 
closer look at how it is p
 Module module = assembler.module();
 Stuff stuff = module.newObject( Stuff.class );
 </pre><p>Once the SingletonAssembler constructor returns, the Polygene™ 
application is up and running.</p><p>The SingletonAssembler also makes common 
system resources available from the bootstrap code, such as
-Module, UnitOfWorkFactory and others. This is possible since there is only one 
Module.</p></div><div class="section" title="Application Builder"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_application_builder"></a>Application Builder</h4></div></div></div><p>Some 
applications has no need for runtime determination of the exact application 
structure, and no need for
+Module, UnitOfWorkFactory and others. This is possible since there is only one 
Module.</p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_application_builder"></a>Application 
Builder</h4></div></div></div><p>Some applications has no need for runtime 
determination of the exact application structure, and no need for
 advanced alterations to a staright-forward layered application structure. By 
using the <code class="literal">ApplicationBuilder</code>
 it is possible to define the application structure from a JSON document, AND 
call the provided <code class="literal">main()</code> class,
-taking the JSON document as input on <code 
class="literal">System.in</code>.</p><p>The format of the JSON document, 
directly reflects the application structure, such as</p><pre 
class="programlisting brush: json">{
+taking the JSON document as input on <code 
class="literal">System.in</code>.</p><p>The format of the JSON document, 
directly reflects the application structure, such as</p><pre 
class="programlisting brush: javascript">{
     "name": "Build from JSON test.",
     "layers": [
         { "name": "service", "uses": [ "domain", "config"] },
@@ -220,7 +220,7 @@ taking the JSON document as input on <code 
class="literal">System.in</code>.</p>
         }
     ]
 }</pre><p>At the moment, the JSON format only support <code 
class="literal">Assembler</code> classes to do the work.</p><p>Another way to 
use the <code class="literal">ApplicationBuilder</code> is to subclass it, 
optionally use the <code class="literal">configureFromJSON()</code> method,
-and then programmatically enhance the structure before calling <code 
class="literal">newApplication()</code>.</p></div><div class="section" 
title="Pancake Assembly"><div class="titlepage"><div><div><h4 class="title"><a 
id="_pancake_assembly"></a>Pancake Assembly</h4></div></div></div><p>There is 
one case that stands out as a common case, and forms a reasonable 
middle-ground. It is where each layer sits
+and then programmatically enhance the structure before calling <code 
class="literal">newApplication()</code>.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_pancake_assembly"></a>Pancake Assembly</h4></div></div></div><p>There is 
one case that stands out as a common case, and forms a reasonable 
middle-ground. It is where each layer sits
 exactly on top of each other layer, like pancakes. Each layer will only use 
the layer directly below and only that
 layer. For this case we have a convenience setup. You create an 
Assembler[][][], where the outer-most array is each
 layer, the middle array is the modules in each layer, and the last array is a 
set of assemblers needed to put the
@@ -286,7 +286,7 @@ private static ApplicationDescriptor newApplication( final 
Assembler[][][] assem
 
     } );
 }
-</pre></div><div class="section" title="Full Assembly"><div 
class="titlepage"><div><div><h4 class="title"><a id="_full_assembly"></a>Full 
Assembly</h4></div></div></div><p>Full Assembly means that you have the 
opportunity to create any layer/module hierarchy that are within the rules of 
the
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_full_assembly"></a>Full 
Assembly</h4></div></div></div><p>Full Assembly means that you have the 
opportunity to create any layer/module hierarchy that are within the rules of 
the
 Polygene™ runtime. It requires more support in your code to be useful, and 
the example below is by no means a recommended way
 to organize large application assemblies.</p><p>In principle, you first start 
the Polygene™ runtime, call newApplication with an ApplicationAssembler 
instance and call
 activate() on the returned application. The ApplicationAssembler instance will 
be called with an

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/core-runtime.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core-runtime.html 
b/content/java/develop/core-runtime.html
index cb84d18..c280b17 100644
--- a/content/java/develop/core-runtime.html
+++ b/content/java/develop/core-runtime.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>Core Runtime</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="core.html" title="Core" /><link rel="prev" 
href="core-spi.html" title="Core Extension SPI" /><link rel="next" 
href="libraries.html" title="Libraries" />
+<!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>Core Runtime</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="core.html" title="Core" /><link rel="prev" 
href="core-spi.html" title="Core Extension SPI" /><link rel="next" 
href="libraries.html" title="Libraries" />
 
 
 <!-- favicon -->
@@ -66,10 +66,10 @@
   })();
  </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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><span xmlns="" 
href="core-runtime.html">Core Runtime</span></span></dt></dl></div></div><div 
class="section" title="Core Runtime"><div class="titlepage"><div><div><h3 
class="title"><a id="core-runtime"></a>Core Runtime</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p class="devstatus-docs-brief"
 >docs</p><p class="devstatus-tests-good">tests</p><p>First of all, your code 
 >should never, ever, have a dependency on Core Runtime. If you think you need 
 >this, you should
+  </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 
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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><span xmlns="" 
href="core-runtime.html">Core Runtime</span></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="core-runtime"></a>Core Runtime</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p class="devstatus-docs-bri
 ef">docs</p><p class="devstatus-tests-good">tests</p><p>First of all, your 
code should never, ever, have a dependency on Core Runtime. If you think you 
need this, you should
 probably contact <a class="ulink" href="mailto:[email protected]"; 
target="_top">[email protected]</a> mailing list and see if your 
usecase can either be solved in a existing way or
-perhaps that a new Core SPI Extension is needed.</p><p>Let’s repeat that; 
<span class="strong"><strong>Never, never, ever depend on Core 
Runtime</strong></span>. Make sure that the compile dependency does NOT include
-the <code class="literal">org.apache.polygene.core.runtime</code> jar.</p><div 
class="section" title="Custom AssemblyHelper"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_custom_assemblyhelper"></a>Custom 
AssemblyHelper</h4></div></div></div><p>BUT, there are super-rare cases, where 
a custom AssemblyHelper might be needed. One known use-case is tp introduce
+perhaps that a new Core SPI Extension is needed.</p><div class="table"><a 
id="idm447732819328"></a><p class="title"><strong>Table 18. 
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>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>Let’s repeat that; <span 
class="strong"><strong>Never, never, ever depend on Core 
Runtime</strong></span>. Make sure that the compile dependency does NOT include
+the <code class="literal">org.apache.polygene.core.runtime</code> jar.</p><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_custom_assemblyhelper"></a>Custom 
AssemblyHelper</h4></div></div></div><p>BUT, there are super-rare cases, where 
a custom AssemblyHelper might be needed. One known use-case is to introduce
 an alternative bytecode generation algorithm, either better than the one we 
have, or for a different system, such
 as Dalvik.</p><p>To do this, add the <code 
class="literal">AssemblyHelper</code> implementation instance as <code 
class="literal">metaInfo</code> to the <code 
class="literal">ApplicationAssembly</code></p><p>We think this is so rare, that 
the <code class="literal">AssemblyHelper</code> class will remain in the <code 
class="literal">core/runtime</code> module and has not
 been promoted to the <code class="literal">core/bootstrap</code> module. If 
you plan to use this feature, please contact the Polygene development

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/core-spi.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core-spi.html 
b/content/java/develop/core-spi.html
index e7bb9e6..5d0519d 100644
--- a/content/java/develop/core-spi.html
+++ b/content/java/develop/core-spi.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>Core Extension SPI</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="core.html" title="Core" /><link rel="prev" 
href="core-testsupport.html" title="Core Test Support" /><link rel="next" 
href="core-runtime.html" title="Core Runtime" />
+<!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>Core Extension SPI</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="core.html" title="Core" /><link rel="prev" 
href="core-testsupport.html" title="Core Test Support" /><link rel="next" 
href="core-runtime.html" title="Core Runtime" />
 
 
 <!-- favicon -->
@@ -66,10 +66,10 @@
   })();
  </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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><span xmlns="" href="core-spi.html">Core Extension 
SPI</span></span></dt><dt><span class="section"><a 
href="core-runtime.html">Core Runtime</a></span></dt></dl></div></div><div 
class="section" title="Core Extension SPI"><div class="titlepage"><div><div><h3 
class="title"><a id="core-spi"></a>Core Extension SPI</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p class="devstatus-doc
 s-brief">docs</p><p class="devstatus-tests-good">tests</p><p>The Polygene™ 
Core Runtime has a number of extension points, which we call the <span 
class="emphasis"><em>Polygene Core Extension SPI</em></span>. These are defined
+  </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 
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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><span xmlns="" href="core-spi.html">Core Extension 
SPI</span></span></dt><dt><span class="section"><a 
href="core-runtime.html">Core Runtime</a></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="core-spi"></a>Core Extension SPI</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p class="devstatus-docs-b
 rief">docs</p><p class="devstatus-tests-good">tests</p><p>The Polygene™ Core 
Runtime has a number of extension points, which we call the <span 
class="emphasis"><em>Polygene Core Extension SPI</em></span>. These are defined
 interfaces used <span class="strong"><strong>only</strong></span> by the Core 
Runtime and <span class="strong"><strong>never</strong></span> directly by 
application code. <a class="xref" href="extensions.html" 
title="Extensions">Extensions</a> are assembled in
-applications during the bootstrap phase.</p><p>There are currently 5 Core SPI 
extensions;</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
-<a class="xref" href="core-spi.html#core-spi-valueserialization" 
title="ValueSerialization SPI">ValueSerialization SPI</a>
+applications during the bootstrap phase.</p><div class="table"><a 
id="idm447732884208"></a><p class="title"><strong>Table 17. 
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.spi</p></td><td align="left" 
valign="top"><p>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>There are currently 5 Core SPI extensions;</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+<a class="xref" href="core-spi.html#core-spi-serialization" 
title="Serialization SPI">Serialization SPI</a>
 </li><li class="listitem">
 <a class="xref" href="core-spi.html#core-spi-entitystore" title="EntityStore 
SPI">EntityStore SPI</a>
 </li><li class="listitem">
@@ -81,42 +81,135 @@ applications during the bootstrap phase.</p><p>There are 
currently 5 Core SPI ex
 </li></ul></div><p>Polygene™ Runtime Extensions implementations may depend 
on Polygene™ Libraries, but Libraries are NOT ALLOWED to depend on
 Extensions. Applications code is NOT ALLOWED to depend on extensions. And 
application code SHOULD NOT depend on the
 Core Extension SPI. If you think that is needed, please contact <a 
class="ulink" href="mailto:[email protected]"; 
target="_top">[email protected]</a> mailing list, to see if your usecase
-can be solved in a support manner, or that we need to extend the Core API to 
support it.</p><div class="section" title="ValueSerialization SPI"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="core-spi-valueserialization"></a>ValueSerialization 
SPI</h4></div></div></div><div class="section" title="Overview"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_overview_4"></a>Overview</h5></div></div></div><p>The Polygene™ Core 
Runtime use ValueSerialization to provide string representation of 
ValueComposites via their <code class="literal">toString()</code>
-method, and, their instanciation from the very same representation via the 
<code class="literal">newValueFromSerializedState(..)</code> method of
-the ValueBuilderFactory API.</p><p>If no ValueSerialization service is 
visible, a default implementation supporting the JSON format used but note that 
it
-won’t be available as a Service. So, in order to use the full 
ValueSerialization API a ValueSerialization service must
-be explicitely assembled in the Application. See the <a class="xref" 
href="extensions.html" title="Extensions">Extensions</a> documentation for 
details.</p></div><div class="section" title="Implementation notes"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_implementation_notes"></a>Implementation 
notes</h5></div></div></div><p>Simply implement ValueSerialization to create an 
extension for the ValueSerialization SPI.
-The Core SPI module provides adapters to create pull-parsing capable 
ValueSerializers and pull-parsing and tree-parsing
-capable ValueDeserializers.</p><p>The behaviour described here apply to all 
ValueSerialization services implemented using the Core SPI adapters. Note that
-nothing stops you from implementing an extension for the ValueSerialization 
SPI without relying on theses adapters.</p><p>Theses adapters are tailored for 
serialization mechanisms that support the following two structures that can be 
nested:</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
+can be solved in a support manner, or that we need to extend the Core API to 
support it.</p><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="core-spi-serialization"></a>Serialization 
SPI</h4></div></div></div><div class="tip" style="margin-left: 0.5in; 
margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Find Serialization 
extensions in the <a class="xref" href="extensions.html" 
title="Extensions">Extensions</a> list.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_overview_4"></a>Overview</h5></div></div></div><p>The Polygene™ Core 
Runtime use Serialization to provide string representation of ValueComposites 
via their <code class="literal">toString()</code>
+method, and, their instantiation from the very same representation via the 
<code class="literal">newValueFromSerializedState(..)</code> method of
+the ValueBuilderFactory API.</p><pre class="programlisting brush: java">public 
interface SomeValue // (1)
+{
+    Property&lt;String&gt; foo();
+}
+
+@Override
+public void assemble( ModuleAssembly module )
+{
+    module.values( SomeValue.class ); // (2)
+}
+  [...snip...]
+
+public void defaultSerialization()
+{
+    SomeValue someValue = someNewValueInstance(); // (3)
+    String json = someValue.toString(); // (4)
+    SomeValue someNewValue = valueBuilderFactory.newValueFromSerializedState( 
SomeValue.class, json ); // (5)
+      [...snip...]
+
+}
+
+</pre><p>In each Module, if no Serialization service is assembled, a default 
one supporting the JSON format is used.</p><pre class="programlisting brush: 
java">public interface SomeValue // (1)
+{
+    Property&lt;String&gt; foo();
+}
+
+@Override
+public void assemble( ModuleAssembly module )
+{
+    module.values( SomeValue.class ); // (2)
+}
+  [...snip...]
+
+@Service
+private Serializer serializer; // (4)
+@Service
+private Deserializer deserializer; // (4)
+
+  [...snip...]
+
+public void assembledDefaultServiceSerialization()
+{
+    SomeValue someValue = someNewValueInstance(); // (5)
+    String json = serializer.serialize( someValue ); // (6)
+    SomeValue someNewValue = deserializer.deserialize( module, 
SomeValue.class, json ); // (7)
+      [...snip...]
+
+}
+</pre></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_text_or_binary"></a>Text or 
Binary?</h5></div></div></div><p>The Core SPI provides adapters for text or 
bytes based serialization, extends the following types to implement a custom
+serialization.</p><p>For text based serialization:</p><pre 
class="programlisting brush: java">/**
+ * Base Text Serializer.
+ *
+ * Implementations work on Strings, this base serializer encode these strings 
in UTF-8 to produce bytes.
+ *
+ * See {@link AbstractTextDeserializer}.
+ */
+public abstract class AbstractTextSerializer extends AbstractSerializer
+</pre><pre class="programlisting brush: java">/**
+ * Base Text Deserializer.
+ *
+ * Implementations work on Strings, this base deserializer decode bytes in 
UTF-8 to produce strings.
+ *
+ * See {@link AbstractTextSerializer}.
+ */
+public abstract class AbstractTextDeserializer extends AbstractDeserializer
+</pre><p>For bytes based serialization:</p><pre class="programlisting brush: 
java">/**
+ * Base Binary Serializer.
+ *
+ * Implementations work on bytes, this base serializer encode these bytes in 
Base64 to produce Strings.
+ *
+ * See {@link AbstractBinaryDeserializer}.
+ */
+public abstract class AbstractBinarySerializer extends AbstractSerializer
+</pre><pre class="programlisting brush: java">/**
+ * Base Binary Deserializer.
+ *
+ * Implementations work on bytes, this base deserializer decode Strings from 
Base64 to produce bytes.
+ *
+ * See {@link AbstractBinarySerializer}.
+ */
+public abstract class AbstractBinaryDeserializer extends AbstractDeserializer
+</pre></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_json_or_xml"></a>JSON or 
XML?</h5></div></div></div><p>The Core SPI provides JSON and XML serialization 
respectively based on <code class="literal">javax.json</code> and <code 
class="literal">javax.xml</code> types and APIs to
+work directly with these types so you can work with the actual object 
representations without serializing to text or
+bytes. They both rely on the text serialization adapters shown 
above.</p><p>Here is an example using the <code 
class="literal">JsonSerialization</code> service:</p><pre class="programlisting 
brush: java">@Service
+JsonSerialization jsonSerialization;
+  [...snip...]
+
+    try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork() )
+    {
+        Some valueInstance = buildSomeValue( moduleInstance, uow, "42" );
+
+        // Serialize using injected service
+        JsonValue serializedJson = jsonSerialization.toJson( valueInstance );
+        System.out.println( serializedJson.toString() );
+
+        // Deserialize using Module API
+        Some valueFromSerializedState = 
moduleInstance.newValueFromSerializedState( Some.class, 
serializedJson.toString() );
+        assertThat( "Deserialized Value equality", valueInstance, equalTo( 
valueFromSerializedState ) );
+          [...snip...]
+
+    }
+</pre><p>And another using the <code class="literal">XmlSerialization</code> 
service:</p><pre class="programlisting brush: java">@Service
+XmlSerialization xmlSerialization;
+  [...snip...]
+
+    try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork() )
+    {
+        Some valueInstance = buildSomeValue( moduleInstance, uow, "42" );
+
+        // Serialize using injected service
+        String serializedXml = xmlSerialization.serialize( valueInstance );
+        System.out.println( serializedXml );
+
+        // Deserialize using Module API
+        Some valueFromSerializedState = 
moduleInstance.newValueFromSerializedState( Some.class, serializedXml );
+        assertThat( "Deserialized Value equality", valueInstance, equalTo( 
valueFromSerializedState ) );
+          [...snip...]
+
+    }
+</pre></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_implementation_notes"></a>Implementation 
notes</h5></div></div></div><p>Simply implement Serialization to create an 
extension for the Serialization SPI.
+The Core SPI module provides adapters to create Serializers and 
Deserializers.</p><p>The behaviour described here apply to all Serialization 
services implemented using the Core SPI adapters. Note that
+nothing stops you from implementing an extension for the Serialization SPI 
without relying on theses adapters.</p><p>Theses adapters are tailored for 
serialization mechanisms that support the following two structures that can be 
nested:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li 
class="listitem">
 a collection of name/value pairs. In various languages, this is realized as an 
object, record, struct,
       dictionary, hash table, keyed list, or associative array,
 </li><li class="listitem">
 an ordered list of values. In most languages, this is realized as an array, 
vector, list, or sequence ;
-</li></ul></div><p>in other words, a JSON-like structure.</p><p>Special 
attention is taken when dealing with Maps. They are serialized as an ordered 
list of collections of
-name/value pairs to keep the Map order for least surprise. That way, even when 
the underlying serialization mechanism
-do not keep the collection of name/value pairs order we can rely on it being 
kept.</p><p>Here is a sample Map with two entries in JSON notation to make 
things clear:</p><pre class="programlisting brush: javascript">[
-    { "key": "foo",       "value": "bar"   },
-    { "key": "cathedral", "value": "bazar" }
-]</pre><p>Among Plain Values (see the <a class="link" 
href="core-api.html#core-api-value" title="ValueComposite">ValueSerialization 
API</a> section) some are considered primitives to
-underlying serialization mechanisms and by so handed/come without conversion 
to/from implementations.</p><p>Primitive values can be one of:</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
-String,
-</li><li class="listitem">
-Boolean or boolean,
-</li><li class="listitem">
-Integer or int,
-</li><li class="listitem">
-Long or long,
-</li><li class="listitem">
-Short or short,
-</li><li class="listitem">
-Byte or byte,
-</li><li class="listitem">
-Float or float,
-</li><li class="listitem">
-Double or double.
-</li></ul></div><p>Serialization is always done in a streaming manner using a 
pull-parsing based approach.</p><p>Deserialization is done in a streaming 
manner using a pull-parsing based approach except when encountering a
-ValueComposite. ValueComposite types are deserialized using a tree-parsing 
based approach.</p><p>All this means that you can serialize and deserialize 
large collections of values without filling the heap.</p></div></div><div 
class="section" title="EntityStore SPI"><div class="titlepage"><div><div><h4 
class="title"><a id="core-spi-entitystore"></a>EntityStore 
SPI</h4></div></div></div><div class="note" title="Note" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This SPI has no 
documentation yet. Learn how to contribute in <a class="xref" 
href="community-docs.html" title="Polygene™ Documentation">Writing 
Documentation</a>.</p></div></div><div class="section" title="Cache SPI"><div 
class="titlepage"><div><div><h4 class="title"><a id="core-spi-cache"></a>Cache 
SPI</h4></div></div></div><div class="note" title="Note" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This SPI has no 
documentation yet. Learn how to contribute i
 n <a class="xref" href="community-docs.html" title="Polygene™ 
Documentation">Writing Documentation</a>.</p></div></div><div class="section" 
title="Indexing/Query SPI"><div class="titlepage"><div><div><h4 
class="title"><a id="core-spi-indexing"></a>Indexing/Query 
SPI</h4></div></div></div><div class="note" title="Note" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This SPI has no 
documentation yet. Learn how to contribute in <a class="xref" 
href="community-docs.html" title="Polygene™ Documentation">Writing 
Documentation</a>.</p></div></div><div class="section" title="Metrics SPI"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="core-spi-metrics"></a>Metrics SPI</h4></div></div></div><p>It is very easy 
to create an extension for the Metrics SPI, simply by implementing the 
MetricsProvider. If only a
+</li></ul></div><p>in other words, a JSON-like structure.</p></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="core-spi-entitystore"></a>EntityStore SPI</h4></div></div></div><div 
class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>This SPI has no documentation yet. Learn how to 
contribute in <a class="xref" href="community-docs.html" title="Polygene™ 
Documentation">Writing Documentation</a>.</p></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="core-spi-cache"></a>Cache SPI</h4></div></div></div><div class="note" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>This SPI has no documentation yet. Learn how to 
contribute in <a class="xref" href="community-docs.html" title="Polygene™ 
Documentation">Writing Documentation</a>.</p></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="core-spi-indexi
 ng"></a>Indexing/Query SPI</h4></div></div></div><div class="note" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>This SPI has no documentation yet. Learn how to 
contribute in <a class="xref" href="community-docs.html" title="Polygene™ 
Documentation">Writing Documentation</a>.</p></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="core-spi-metrics"></a>Metrics SPI</h4></div></div></div><p>It is very easy 
to create an extension for the Metrics SPI, simply by implementing the 
MetricsProvider. If only a
 subset of the factories/types are supported, there is a convenience adapter 
call MetricsProviderAdapter in the Metrics
 SPI package.</p></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>.

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/core-testsupport.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core-testsupport.html 
b/content/java/develop/core-testsupport.html
index f85b059..3005598 100644
--- a/content/java/develop/core-testsupport.html
+++ b/content/java/develop/core-testsupport.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>Core Test Support</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="core.html" title="Core" /><link rel="prev" 
href="core-bootstrap-assembly.html" title="Core Bootstrap" /><link rel="next" 
href="core-spi.html" title="Core Extension SPI" />
+<!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>Core Test Support</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="core.html" title="Core" /><link rel="prev" 
href="core-bootstrap-assembly.html" title="Core Bootstrap" /><link rel="next" 
href="core-spi.html" title="Core Extension SPI" />
 
 
 <!-- favicon -->
@@ -66,10 +66,10 @@
   })();
  </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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><span xmlns="" 
href="core-testsupport.html">Core Test Support</span></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><a href="core-runtime.html">Core 
Runtime</a></span></dt></dl></div></div><div class="section" title="Core Test 
Support"><div class="titlepage"><div><div><h3 class="title"><a 
id="core-testsupport"></a>Core Test Support</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p class="devstat
 us-docs-brief">docs</p><p class="devstatus-tests-none">tests</p><p>Polygene™ 
comes with classes to help with testing. For general development, only a couple 
of classes are of interest as 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 
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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</a></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><span xmlns="" 
href="core-testsupport.html">Core Test Support</span></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><a href="core-runtime.html">Core 
Runtime</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a id="core-testsupport"></a>Core 
Test Support</h3></div></div></div><p class="remark"><em><span 
class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p 
class="devstatus
 -docs-brief">docs</p><p class="devstatus-tests-none">tests</p><p>Polygene™ 
comes with classes to help with testing. For general development, only a couple 
of classes are of interest as the
 others are mostly for EntityStore and Index/Query SPI implementations. There 
is also some mocking support, to allow
 some of Polygene’s unique aspects to be mocked, but since Polygene™ is so 
flexible at a fine-granular level, we have found that
-mocking is seldom, if ever, needed.</p><div class="section" title="Your First 
Testcase"><div class="titlepage"><div><div><h4 class="title"><a 
id="_your_first_testcase"></a>Your First Testcase</h4></div></div></div><p>In 
most cases, you will probably use the AbstractPolygeneTest class to simplify 
starting a Polygene™ test instance.</p><pre class="programlisting brush: 
java">public class HelloTest extends AbstractPolygeneTest
+mocking is seldom, if ever, needed.</p><div class="table"><a 
id="idm447727077024"></a><p class="title"><strong>Table 16. 
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.testsupport</p></td><td align="left" 
valign="top"><p>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_your_first_testcase"></a>Your First 
Testcase</h4></div></div></div><p>In most cases, you will probably use the 
AbstractPolygeneTest class to simplify starting a Polygene™ test instanc
 e.</p><pre class="programlisting brush: java">public class HelloTest extends 
AbstractPolygeneTest
 {
   [...snip...]
 
@@ -77,16 +77,15 @@ mocking is seldom, if ever, needed.</p><div class="section" 
title="Your First Te
 </pre><p>This will do all the initialization of a Polygene™ runtime instance 
and create a single layer with a single module in it.
 What goes into that module is declared in the assembly() method;</p><pre 
class="programlisting brush: java">@Override
 public void assemble( ModuleAssembly module )
-    throws AssemblyException
 {
     module.values( Hello.class );
 }
 </pre><p>In this case we declare that we have a ValueComposite of type 
org.apache.polygene.tutorials.hello.Hello which looks like</p><pre 
class="programlisting brush: java">
 /**
- * This Composite interface declares a simple "Hello World" interface with a 
single say() method. What is being
- * said is defined in the HelloWorldState interface, which is a private mixin.
+ * This Composite interface declares a simple "Hello World" interface with a 
single say() method.
+ * What is being said is defined in the HelloWorldState interface, which is a 
private mixin.
  */
-@Mixins( { Hello.HelloWorldMixin.class } )
+@Mixins( Hello.HelloWorldMixin.class )
 public interface Hello
 {
     String say();
@@ -94,10 +93,11 @@ public interface Hello
     /**
      * This is the implementation of the say() method.
      */
-    public abstract class HelloWorldMixin
+    class HelloWorldMixin
         implements Hello
     {
-        // @This reference the composite itself, and since HelloWorldState is 
not part of the public interface,
+        // @This reference the composite itself,
+        // and since HelloWorldState is not part of the public interface,
         // it is a private mixin.
         @This
         private State state;
@@ -112,14 +112,12 @@ public interface Hello
     /**
      * This interface contains only the state of the HelloWorld object.
      */
-    public interface State
+    interface State
     {
         @NotEmpty
-        @UseDefaults
         Property&lt;String&gt; phrase();
 
         @NotEmpty
-        @UseDefaults
         Property&lt;String&gt; name();
     }
 }

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/core.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core.html b/content/java/develop/core.html
index b658a60..37b8f1e 100644
--- a/content/java/develop/core.html
+++ b/content/java/develop/core.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>Core</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="sample-swing.html" 
title="Swing Bindings Sample" /><link rel="next" href="core-api.html" 
title="Core API" />
+<!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>Core</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="sample-swing.html" 
title="Swing Bindings Sample" /><link rel="next" href="core-api.html" 
title="Core API" />
 
 
 <!-- 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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</span></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><a href="core-runtime.html">Core 
Runtime</a></span></dt></dl></div></div><div class="section" title="Core"><div 
class="titlepage"><div><div><h2 class="title"><a 
id="core"></a>Core</h2></div></div></div><div class="section" 
title="Overview"><div class="titlepage"><div><div><h3 class="title"><a 
id="_overview_3"></a>Overview</h3></div></div></div><p>The Polyg
 ene™ Core is composed of several artifacts described in this 
section.</p><p>The following figure show the Core artifacts alongside <a 
class="link" href="libraries.html" title="Libraries">libraries</a> and <a 
class="link" href="extensions.html" title="Extensions">extensions</a>, and, in 
green,
+  </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 
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"><a 
href="tutorials.html">Tutorials</a></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"><span 
xmlns="" href="core.html">Core</span></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="core.html#_overview_3">Overview</span></span></dt><dt><span 
class="section"><a href="core-api.html">Core API</a></span></dt><dt><span 
class="section"><a href="core-bootstrap-assembly.html">Core 
Bootstrap</a></span></dt><dt><span class="section"><a 
href="core-testsupport.html">Core Test Support</a></span></dt><dt><span 
class="section"><a href="core-spi.html">Core Extension 
SPI</a></span></dt><dt><span class="section"><a href="core-runtime.html">Core 
Runtime</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h2 class="title"><a 
id="core"></a>Core</h2></div></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="_overview_3"></a>Overview</h3></div></div></div><p>The Polygene™
  Core is composed of several artifacts described in this section.</p><p>The 
following figure show the Core artifacts alongside <a class="link" 
href="libraries.html" title="Libraries">libraries</a> and <a class="link" 
href="extensions.html" title="Extensions">extensions</a>, and, in green,
 typical applications artifacts. This is not a full code dependency graph but 
should give you a good overview of how the
-pieces fit together. Find out more about each of the Polygene™ Core 
artifacts below.</p><div class="figure"><a id="idm478792164240"></a><p 
class="title"><strong>Figure 1. Polygene™ Core Overview</strong></p><div 
class="figure-contents"><a class="ulink" href="images/core-overview.png" 
target="_top">
+pieces fit together. Find out more about each of the Polygene™ Core 
artifacts below.</p><div class="figure"><a id="idm447732916080"></a><p 
class="title"><strong>Figure 1. Polygene™ Core Overview</strong></p><div 
class="figure-contents"><a class="ulink" href="images/core-overview.png" 
target="_top">
 <span class="inlinemediaobject"><img src="images/core-overview.png" 
alt="core-overview.png" /></span>
-</a></div></div><br class="figure-break" /><div class="section" title="Core 
API"><div class="titlepage"><div><div><h4 class="title"><a 
id="_core_api"></a>Core API</h4></div></div></div><p>The Polygene™ Core API 
is the primary interface for client application code during the main execution 
phase, i.e. after the
-application has been activated.</p><p><a class="link" href="core-api.html" 
title="Core API">Learn more</a></p></div><div class="section" title="Core 
Bootstrap"><div class="titlepage"><div><div><h4 class="title"><a 
id="_core_bootstrap"></a>Core Bootstrap</h4></div></div></div><p>Polygene™ 
has a distinct bootstrap phase, also known as the <span 
class="emphasis"><em>Assembly</em></span> of an application, where the 
applications structure
+</a></div></div><br class="figure-break" /><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_core_api"></a>Core 
API</h4></div></div></div><p>The Polygene™ Core API is the primary interface 
for client application code during the main execution phase, i.e. after the
+application has been activated.</p><p><a class="link" href="core-api.html" 
title="Core API">Learn more</a></p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_core_bootstrap"></a>Core 
Bootstrap</h4></div></div></div><p>Polygene™ has a distinct bootstrap phase, 
also known as the <span class="emphasis"><em>Assembly</em></span> of an 
application, where the applications structure
 is defined programmatically. Once all the layers, modules and all the 
composite types in each module have been defined
 the model is instantiated into an application. This enables the entire <span 
class="emphasis"><em>structure</em></span> system in Polygene, where types 
"belongs"
-to a module and visibility rules define default behaviors, enforcement of 
architectural integrity and much more.</p><p><a class="link" 
href="core-bootstrap-assembly.html" title="Core Bootstrap">Learn 
more</a></p></div><div class="section" title="Core Test Support"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_core_test_support"></a>Core Test 
Support</h4></div></div></div><p>Polygene™ comes with classes to help with 
testing. There is also some mocking support, to allow some of Polygene’s 
unique
+to a module and visibility rules define default behaviors, enforcement of 
architectural integrity and much more.</p><p><a class="link" 
href="core-bootstrap-assembly.html" title="Core Bootstrap">Learn 
more</a></p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_core_test_support"></a>Core Test 
Support</h4></div></div></div><p>Polygene™ comes with classes to help with 
testing. There is also some mocking support, to allow some of Polygene’s 
unique
 aspects to be mocked, but since Polygene™ is so flexible at a fine-granular 
level, we have found that mocking is seldom,
-if ever, needed.</p><p><a class="link" href="core-testsupport.html" 
title="Core Test Support">Learn more</a></p></div><div class="section" 
title="Core Extension SPI"><div class="titlepage"><div><div><h4 
class="title"><a id="_core_extension_spi"></a>Core Extension 
SPI</h4></div></div></div><p>The Polygene™ Core Runtime has a number of 
extension points, which we call the <span class="emphasis"><em>Polygene™ Core 
Extension SPI</em></span>. These are defined
+if ever, needed.</p><p><a class="link" href="core-testsupport.html" 
title="Core Test Support">Learn more</a></p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_core_extension_spi"></a>Core Extension SPI</h4></div></div></div><p>The 
Polygene™ Core Runtime has a number of extension points, which we call the 
<span class="emphasis"><em>Polygene™ Core Extension SPI</em></span>. These 
are defined
 interfaces used <span class="strong"><strong>only</strong></span> by the Core 
Runtime and <span class="strong"><strong>never</strong></span> directly by 
application code. <a class="xref" href="extensions.html" 
title="Extensions">Extensions</a> are assembled in
-applications during the bootstrap phase.</p><p><a class="link" 
href="core-spi.html" title="Core Extension SPI">Learn more</a></p></div><div 
class="section" title="Core Runtime"><div class="titlepage"><div><div><h4 
class="title"><a id="_core_runtime"></a>Core 
Runtime</h4></div></div></div><p>Your code should <span 
class="strong"><strong>never</strong></span>, <span 
class="strong"><strong>ever</strong></span>, have a dependency on Polygene™ 
Core Runtime. If you think you need this, you should
+applications during the bootstrap phase.</p><p><a class="link" 
href="core-spi.html" title="Core Extension SPI">Learn more</a></p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_core_runtime"></a>Core Runtime</h4></div></div></div><p>Your code should 
<span class="strong"><strong>never</strong></span>, <span 
class="strong"><strong>ever</strong></span>, have a dependency on Polygene™ 
Core Runtime. If you think you need this, you should
 probably contact <a class="ulink" href="mailto:[email protected]"; 
target="_top">[email protected]</a> and see if your usecase can either 
be solved in a existing way or
 perhaps that a new Core Extension SPI is needed.</p><p><a class="link" 
href="core-runtime.html" title="Core Runtime">Learn 
more</a></p></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>.

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/css/polygene.css
----------------------------------------------------------------------
diff --git a/content/java/develop/css/polygene.css 
b/content/java/develop/css/polygene.css
index d512429..72f73d2 100644
--- a/content/java/develop/css/polygene.css
+++ b/content/java/develop/css/polygene.css
@@ -823,3 +823,7 @@ h5 { font-size: 1em; margin-bottom: 0.5em; }
     font-family: Consolas, Monaco, monospace;
     background: #DEDEDE;
 }
+
+.glossterm {
+    font-weight: bold;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/css/style.css
----------------------------------------------------------------------
diff --git a/content/java/develop/css/style.css 
b/content/java/develop/css/style.css
index a42d538..8516dbd 100644
--- a/content/java/develop/css/style.css
+++ b/content/java/develop/css/style.css
@@ -79,7 +79,6 @@ h2.title
     margin: 0;
     margin-top: -7px;
     padding: 0;
-    height: 40px;
 }
 
 .top-nav .toc dl
@@ -162,7 +161,7 @@ h2.title
 {
 }
 
-.sub-nav .toc
+.sub-nav div.toc
 {
     position: absolute;
     top: 65px;

Reply via email to