polygene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From paulmer...@apache.org
Subject [48/51] [partial] polygene-website git commit: Update java/develop/
Date Sun, 21 May 2017 15:06:25 GMT
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:users@polygene.apache.org" target="_top">users@polygene.apache.org</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:users@dev.apache.org" target="_top">users@dev.apache.org</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:dev@polygene.apache.org" target="_top">dev@polygene.apache.org</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;


Mime
View raw message