You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2017/07/28 07:32:19 UTC

[48/51] [partial] polygene-website git commit: publish java/develop/ as 3.1.0 development version

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/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 7b15654..7ab56b5 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.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" />
+<!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" />
 
 
 <!-- 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 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
+  </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
 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" type="disc"><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"><li class="listitem">
 Define default values for properties.
 </li><li class="listitem">
 Add additional interfaces to composites dynamically.
@@ -87,60 +87,23 @@ 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="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"><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"><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"><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"><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"><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"><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
-{
-    module.importedServices( MyService.class ).
-        importedBy( InstanceImporter.class ).
-        setMetaInfo( new MyService() );
-
-    // OR
-
+</li></ul></div><div class="table"><a id="idm229755150672"></a><p class="title"><strong>Table 15. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.core</p></td><td align="left" valign="top"><p>org.apache.polygene.core.bootstrap</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><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">( ModuleAssembly module ) -&gt; 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">( ModuleAssembly module ) -&gt; 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">( ModuleAssembly module ) -&gt; 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">( ModuleAssembly module ) -&gt; 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">( ModuleAssembly module ) -&gt; 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">( ModuleAssembly module ) -&gt; 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">( ModuleAssembly module ) -&gt; module.importedServices( MyService.class )
+                                   .importedBy( InstanceImporter.class )
+                                   .setMetaInfo( new MyService() ),
+
+// OR
+
+( ModuleAssembly module ) -&gt; {
     module.objects( MyService.class );
-    module.importedServices( MyService.class ).
-        importedBy( NewObjectImporter.class );
+    module.importedServices( MyService.class ).importedBy( NewObjectImporter.class );
 }
-</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
-{
+</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">( ModuleAssembly module ) -&gt; {
     module.values( MyValue.class );
     MyValue myValueDefaults = module.forMixin( MyValue.class ).declareDefaults();
     myValueDefaults.foo().set( "bar" );
@@ -149,7 +112,7 @@ public void assemble( ModuleAssembly module )
     MyEntity myEntityDefaults = module.forMixin( MyEntity.class ).declareDefaults();
     myEntityDefaults.cathedral().set( "bazar" );
 }
-</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
+</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
 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 +122,7 @@ public void assemble( ModuleAssembly module )
     RestServerAssembler assembler = new RestServerAssembler();
     assembler.assemble( module );
 }
-</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
+</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
 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,30 +139,24 @@ public void assemble( ModuleAssembly module )
 {
     new JdbmEntityStoreAssembler().assemble( module );
 }
-</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
+</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
 <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"><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" title="Singleton Assembler"><div class="titlepage"><div><div><h4 class="title"><a id="_singleton_assembler_2"></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()
-{
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
+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(
+    module -&gt; {
         module.services( MyService.class ).identifiedBy( "Foo" );
         module.services( MyService.class ).identifiedBy( "Bar" );
         module.objects( Stuff.class );
     }
-
-};
+);
 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"><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" 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
 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: javascript">{
@@ -220,50 +177,50 @@ 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"><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" 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
 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
 things togather.</p><p>Let’s look at an example;</p><pre class="programlisting brush: java">public static void main( String[] args )
-        throws Exception
+    throws Exception
 {
     polygene = new Energy4Java();
-    Assembler[][][] assemblers = new Assembler[][][]{
+    Assembler[][][] assemblers = new Assembler[][][] {
         { // View Layer
-            { // Login Module
-                new LoginAssembler()
+          { // Login Module
+            new LoginAssembler()
             // :
-            },
-            { // Main Workbench Module
-                new MenuAssembler(),
-                new PerspectivesAssembler(),
-                new ViewsAssembler()
+          },
+          { // Main Workbench Module
+            new MenuAssembler(),
+            new PerspectivesAssembler(),
+            new ViewsAssembler()
             // :
-            },
-            { // Printing Module
-                new ReportingAssembler(),
-                new PdfAssembler()
+          },
+          { // Printing Module
+            new ReportingAssembler(),
+            new PdfAssembler()
             // :
-            }
+          }
         },
         { // Application Layer
-            { // Accounting Module
-                new BookkeepingAssembler(),
-                new CashFlowAssembler(),
-                new BalanceSheetAssembler()
+          { // Accounting Module
+            new BookkeepingAssembler(),
+            new CashFlowAssembler(),
+            new BalanceSheetAssembler()
             // :
-            },
-            { // Inventory Module
-                new PricingAssembler(),
-                new ProductAssembler()
+          },
+          { // Inventory Module
+            new PricingAssembler(),
+            new ProductAssembler()
             // :
-            }
+          }
         },
         { // Domain Layer
-        // :
+          // :
         },
         { // Infrastructure Layer
-        // :
+          // :
         }
     };
     ApplicationDescriptor model = newApplication( assemblers );
@@ -272,21 +229,11 @@ things togather.</p><p>Let’s look at an example;</p><pre class="programlisting
 }
 
 private static ApplicationDescriptor newApplication( final Assembler[][][] assemblers )
-        throws AssemblyException
+    throws AssemblyException
 {
-    return polygene.newApplicationModel( new ApplicationAssembler()
-    {
-
-        @Override
-        public ApplicationAssembly assemble( ApplicationAssemblyFactory appFactory )
-                throws AssemblyException
-        {
-            return appFactory.newApplicationAssembly( assemblers );
-        }
-
-    } );
+    return polygene.newApplicationModel( factory -&gt; factory.newApplicationAssembly( assemblers ) );
 }
-</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
+</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
 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
@@ -295,28 +242,17 @@ ApplicationAssemblyFactory, which is used to create an ApplicationAssembly descr
 private static Application application;
 
 public static void main( String[] args )
-        throws Exception
+    throws Exception
 {
     // Create a Polygene Runtime
     polygene = new Energy4Java();
-    application = polygene.newApplication( new ApplicationAssembler()
-    {
-
-        @Override
-        public ApplicationAssembly assemble( ApplicationAssemblyFactory appFactory )
-                throws AssemblyException
-        {
-            ApplicationAssembly assembly = appFactory.newApplicationAssembly();
-            buildAssembly( assembly );
-            return assembly;
-        }
-
-    } );
-    // activate the application
+    // Create the application
+    application = polygene.newApplication( factory -&gt; buildAssembly( factory.newApplicationAssembly() ) );
+    // Activate the application
     application.activate();
 }
 
-static void buildAssembly( ApplicationAssembly app ) throws AssemblyException
+static ApplicationAssembly buildAssembly( ApplicationAssembly app ) throws AssemblyException
 {
     LayerAssembly webLayer = createWebLayer( app );
     LayerAssembly domainLayer = createDomainLayer( app );
@@ -328,6 +264,8 @@ static void buildAssembly( ApplicationAssembly app ) throws AssemblyException
     domainLayer.uses( authLayer );
     domainLayer.uses( persistenceLayer );
     domainLayer.uses( messagingLayer );
+
+    return app;
 }
 
 static LayerAssembly createWebLayer( ApplicationAssembly app ) throws AssemblyException

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/core-runtime.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core-runtime.html b/content/java/develop/core-runtime.html
index c280b17..1554475 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.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" />
+<!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" />
 
 
 <!-- favicon -->
@@ -66,15 +66,52 @@
   })();
  </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 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
+  </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
 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><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
+perhaps that a new Core SPI Extension is needed.</p><div class="table"><a id="idm229754966528"></a><p class="title"><strong>Table 18. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.core</p></td><td align="left" valign="top"><p>org.apache.polygene.core.runtime</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><p>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 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
-team at <code class="literal">dev@polygene.apache.org</code> to ensure we can make this a better supported, backed by real usecases.</p><p>Fictitious example of using a hypothetical Dalvik capable classloader;</p><pre class="programlisting brush: java">source=core/runtime/src/test/java/org/apache/polygene/runtime/bootstrap/docs/DocumentationSupport.java
-tag=customAssemblyHelper</pre></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p>
+team at <code class="literal">dev@polygene.apache.org</code> to ensure we can make this a better supported, backed by real usecases.</p><p>Fictitious example of using a hypothetical Dalvik capable classloader;</p><pre class="programlisting brush: java">private static Energy4Java polygene;
+
+private static Application application;
+
+public static void main( String[] args )
+    throws Exception
+{
+    // Create a Polygene Runtime
+    polygene = new Energy4Java();
+    // Create the application
+    application = polygene.newApplication( factory -&gt; {
+        ApplicationAssembly assembly = factory.newApplicationAssembly();
+        assembly.setMetaInfo( new DalvikAssemblyHelper() );
+          [...snip...]
+
+        return assembly;
+    } );
+    // Activate the application
+    application.activate();
+}
+
+public static class DalvikAssemblyHelper extends AssemblyHelper
+{
+    @Override
+    protected FragmentClassLoader instantiateFragmentClassLoader( ClassLoader parent )
+    {
+        return new DalvikFragmentClassLoader( parent );
+    }
+}
+
+public static class DalvikFragmentClassLoader extends FragmentClassLoader
+{
+
+    public DalvikFragmentClassLoader( ClassLoader parent )
+    {
+        super( parent );
+    }
+}
+</pre></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p>
         Copyright © 2015 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/" target="_blank">Apache License, Version 2.0</a>.
         <br /><small>
             Apache Polygene, Polygene, Apache, the Apache feather logo, and the Apache Polygene project logo are trademarks of The Apache Software Foundation.<br />

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/core-spi.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core-spi.html b/content/java/develop/core-spi.html
index 5d0519d..af85b34 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.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" />
+<!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" />
 
 
 <!-- favicon -->
@@ -66,9 +66,9 @@
   })();
  </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 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
+  </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
 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><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">
+applications during the bootstrap phase.</p><div class="table"><a id="idm229755031600"></a><p class="title"><strong>Table 17. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.core</p></td><td align="left" valign="top"><p>org.apache.polygene.core.spi</p></td><td align="left" valign="top"><p>3.1.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"><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>
@@ -81,7 +81,7 @@ applications during the bootstrap phase.</p><div class="table"><a id="idm4477328
 </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"><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>
+can be solved in a support manner, or that we need to extend the Core API to support it.</p><div class="section" title="Serialization SPI"><div class="titlepage"><div><div><h4 class="title"><a id="core-spi-serialization"></a>Serialization SPI</h4></div></div></div><div class="tip" title="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" 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 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)
 {
@@ -92,14 +92,19 @@ the ValueBuilderFactory API.</p><pre class="programlisting brush: java">public i
 public void assemble( ModuleAssembly module )
 {
     module.values( SomeValue.class ); // (2)
+      [...snip...]
+
+    module.defaultServices(); // (3)
+      [...snip...]
+
 }
   [...snip...]
 
 public void defaultSerialization()
 {
-    SomeValue someValue = someNewValueInstance(); // (3)
-    String json = someValue.toString(); // (4)
-    SomeValue someNewValue = valueBuilderFactory.newValueFromSerializedState( SomeValue.class, json ); // (5)
+    SomeValue someValue = someNewValueInstance(); // (4)
+    String json = someValue.toString(); // (5)
+    SomeValue someNewValue = valueBuilderFactory.newValueFromSerializedState( SomeValue.class, json ); // (6)
       [...snip...]
 
 }
@@ -113,6 +118,11 @@ public void defaultSerialization()
 public void assemble( ModuleAssembly module )
 {
     module.values( SomeValue.class ); // (2)
+      [...snip...]
+
+    new JavaxJsonSerializationAssembler().assemble( module ); // (3)
+      [...snip...]
+
 }
   [...snip...]
 
@@ -131,7 +141,7 @@ public void assembledDefaultServiceSerialization()
       [...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
+</pre></div><div class="section" title="Text or Binary?"><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.
  *
@@ -164,7 +174,7 @@ public abstract class AbstractBinarySerializer extends AbstractSerializer
  * 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
+</pre></div><div class="section" title="JSON or XML?"><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;
@@ -202,14 +212,14 @@ XmlSerialization xmlSerialization;
           [...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.
+</pre></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 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">
+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"><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></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
+</li></ul></div><p>in other words, a JSON-like structure.</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 in <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
 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/2d44da7d/content/java/develop/core-testsupport.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core-testsupport.html b/content/java/develop/core-testsupport.html
index 3005598..c764c38 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.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" />
+<!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" />
 
 
 <!-- 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 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
+  </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
 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="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
+mocking is seldom, if ever, needed.</p><div class="table"><a id="idm229755060144"></a><p class="title"><strong>Table 16. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.core</p></td><td align="left" valign="top"><p>org.apache.polygene.core.testsupport</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><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
 {
   [...snip...]
 

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/core.html
----------------------------------------------------------------------
diff --git a/content/java/develop/core.html b/content/java/develop/core.html
index 37b8f1e..da0fc9a 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.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" />
+<!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" />
 
 
 <!-- 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 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,
+  </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,
 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="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">
+pieces fit together. Find out more about each of the Polygene™ Core artifacts below.</p><div class="figure"><a id="idm229755749216"></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"><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
+</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
 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"><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" 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
 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"><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" 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
 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"><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" 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
 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>.