http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/howto-depend-on-polygene.html
----------------------------------------------------------------------
diff --git a/content/java/develop/howto-depend-on-polygene.html 
b/content/java/develop/howto-depend-on-polygene.html
index 34262f5..d8df773 100644
--- a/content/java/develop/howto-depend-on-polygene.html
+++ b/content/java/develop/howto-depend-on-polygene.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>Depend on Polygene™</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="thirty-minutes-intro.html" title="Polygene™ in 30 minutes" 
/><link rel="next" href="howto-assemble-application.html" title="Assemble an 
Application" />
+<!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>Depend on Polygene™</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="thirty-minutes-intro.html" title="Polygene™ in 30 minutes" 
/><link rel="next" href="howto-assemble-application.html" title="Assemble an 
Application" />
 
 
 <!-- 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"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href=
 "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><span xmlns="" 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</span></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="tut-services.html">Services Composites Tutorial</a></
 span></dt><dt><span class="section"><a 
href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt
 ><dt><span class="section"><a href="releasing-apache.html">Releasing 
 >Polygene™</a></span></dt></dl></div></div><div class="section"><div 
 >class="titlepage"><div><div><h3 class="title"><a 
 >id="howto-depend-on-polygene"></a>Depend on 
 >Polygene™</h3></div></div></div><div class="note" style="margin-left: 
 >0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Some of the <a 
 >class="xref" href="libraries.html" title="Libraries">Libraries</a> and <a 
 >class="xref" href="extensions.html" title="Extensions">Extensions</a> depend 
 >on artifacts that are not deployed in central, you’ll need to
-add other repositories to your build scripts accordingly.</p></div><p>Release 
artifacts, including sources and javadoc, are deployed to Maven 
Central:</p><p><a class="ulink" href="http://repo1.maven.org/maven2/"; 
target="_top">http://repo1.maven.org/maven2/</a> (US)</p><p><a class="ulink" 
href="http://uk.maven.org/maven2/"; 
target="_top">http://uk.maven.org/maven2/</a> (Europe)</p><p>Snapshot 
artifacts, including sources and javadoc, are built against the <code 
class="literal">develop</code> branch and deployed weekly to the Apache 
SNAPSHOTS repository:</p><p><a class="ulink" 
href="http://repository.apache.org/snapshots/"; 
target="_top">http://repository.apache.org/snapshots/</a></p><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_manually"></a>Manually</h4></div></div></div><p>If you don’t rely on 
your build scripts dependency resolution mechanism you should
-<a class="ulink" href="https://polygene.apache.org/download.html"; 
target="_top">download</a> the SDK distribution.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_using_maven"></a>Using Maven</h4></div></div></div><p>You simply declare 
dependencies on Polygene™ artifacts:</p><pre class="programlisting brush: 
xml">&lt;dependencies&gt;
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.ht
 ml">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><span xmlns="" 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</span></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="tut-services.html">Services Composites Tutorial</a></span></dt><dt><span 
clas
 s="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt><dt><span class="sectio
 n"><a href="releasing-apache.html">Releasing 
Polygene™</a></span></dt></dl></div></div><div class="section" title="Depend 
on Polygene™"><div class="titlepage"><div><div><h3 class="title"><a 
id="howto-depend-on-polygene"></a>Depend on 
Polygene™</h3></div></div></div><div class="note" title="Note" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>Some of the <a class="xref" href="libraries.html" 
title="Libraries">Libraries</a> and <a class="xref" href="extensions.html" 
title="Extensions">Extensions</a> depend on artifacts that are not deployed in 
central, you’ll need to
+add other repositories to your build scripts accordingly.</p></div><p>Release 
artifacts, including sources and javadoc, are deployed to Maven 
Central:</p><p><a class="ulink" href="http://repo1.maven.org/maven2/"; 
target="_top">http://repo1.maven.org/maven2/</a> (US)</p><p><a class="ulink" 
href="http://uk.maven.org/maven2/"; 
target="_top">http://uk.maven.org/maven2/</a> (Europe)</p><p>Snapshot 
artifacts, including sources and javadoc, are built against the <code 
class="literal">develop</code> branch and deployed weekly to the Apache 
SNAPSHOTS repository:</p><p><a class="ulink" 
href="http://repository.apache.org/snapshots/"; 
target="_top">http://repository.apache.org/snapshots/</a></p><div 
class="section" title="Manually"><div class="titlepage"><div><div><h4 
class="title"><a id="_manually"></a>Manually</h4></div></div></div><p>If you 
don’t rely on your build scripts dependency resolution mechanism you should
+<a class="ulink" href="https://polygene.apache.org/download.html"; 
target="_top">download</a> the SDK distribution.</p></div><div class="section" 
title="Using Maven"><div class="titlepage"><div><div><h4 class="title"><a 
id="_using_maven"></a>Using Maven</h4></div></div></div><p>You simply declare 
dependencies on Polygene™ artifacts:</p><pre class="programlisting brush: 
xml">&lt;dependencies&gt;
     &lt;dependency&gt;
         &lt;groupId&gt;org.apache.polygene.core&lt;/groupId&gt;
         &lt;artifactId&gt;org.apache.polygene.core.bootstrap&lt;/artifactId&gt;
@@ -93,15 +93,15 @@ add other repositories to your build scripts 
accordingly.</p></div><p>Release ar
         &lt;releases&gt;&lt;enabled&gt;false&lt;/enabled&gt;&lt;/releases&gt;
         &lt;snapshots&gt;&lt;enabled&gt;true&lt;/enabled&gt;&lt;/snapshots&gt;
     &lt;/repository&gt;
-&lt;/repositories&gt;</pre></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_using_gradle"></a>Using 
Gradle</h4></div></div></div><p>You simply declare dependencies on Polygene™ 
artifacts:</p><pre class="programlisting brush: groovy">dependencies {
+&lt;/repositories&gt;</pre></div><div class="section" title="Using 
Gradle"><div class="titlepage"><div><div><h4 class="title"><a 
id="_using_gradle"></a>Using Gradle</h4></div></div></div><p>You simply declare 
dependencies on Polygene™ artifacts:</p><pre class="programlisting brush: 
groovy">dependencies {
     compile     
"org.apache.polygene.core:org.apache.polygene.core.bootstrap:POLYGENE_VERSION"
     runtime     
"org.apache.polygene.core:org.apache.polygene.core.runtime:POLYGENE_VERSION"
     testCompile 
"org.apache.polygene.core:org.apache.polygene.core.testsupport:POLYGENE_VERSION"
 }</pre><p>Where <code class="literal">POLYGENE_VERSION</code> is the 
Polygene™ version you want to use.</p><p>If you want to use <code 
class="literal">-SNAPSHOT</code> versions, you need to register the Apache 
Snapshots repository:</p><pre class="programlisting brush: groovy">repositories 
{
     maven { name 'apache-snapshots'; url 
"https://repository.apache.org/snapshots/"; }
-}</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_using_buildr"></a>Using 
Buildr</h4></div></div></div><p>You simply declare dependencies on Polygene™ 
artifacts:</p><pre class="programlisting brush: ruby">compile.with 
'org.apache.polygene.core:org.apache.polygene.core.bootstrap:POLYGENE_VERSION'
+}</pre></div><div class="section" title="Using Buildr"><div 
class="titlepage"><div><div><h4 class="title"><a id="_using_buildr"></a>Using 
Buildr</h4></div></div></div><p>You simply declare dependencies on Polygene™ 
artifacts:</p><pre class="programlisting brush: ruby">compile.with 
'org.apache.polygene.core:org.apache.polygene.core.bootstrap:POLYGENE_VERSION'
 package(:war).with :libs =&gt; 
'org.apache.polygene.core:org.apache.polygene.core.runtime:POLYGENE_VERSION'
-test.with 
'org.apache.polygene.core:org.apache.polygene.core.testsupport:POLYGENE_VERSION'</pre><p>Where
 <code class="literal">POLYGENE_VERSION</code> is the Polygene™ version you 
want to use.</p><p>If you want to use <code class="literal">-SNAPSHOT</code> 
versions, you need to register the Apache Snapshots repository:</p><pre 
class="programlisting brush: ruby">repositories.remote &lt;&lt; 
'https://repository.apache.org/snapshots/'</pre></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_using_sbt"></a>Using 
SBT</h4></div></div></div><p>You simply declare dependencies on Polygene™ 
artifacts:</p><pre class="programlisting brush: scala">libraryDependencies += \
+test.with 
'org.apache.polygene.core:org.apache.polygene.core.testsupport:POLYGENE_VERSION'</pre><p>Where
 <code class="literal">POLYGENE_VERSION</code> is the Polygene™ version you 
want to use.</p><p>If you want to use <code class="literal">-SNAPSHOT</code> 
versions, you need to register the Apache Snapshots repository:</p><pre 
class="programlisting brush: ruby">repositories.remote &lt;&lt; 
'https://repository.apache.org/snapshots/'</pre></div><div class="section" 
title="Using SBT"><div class="titlepage"><div><div><h4 class="title"><a 
id="_using_sbt"></a>Using SBT</h4></div></div></div><p>You simply declare 
dependencies on Polygene™ artifacts:</p><pre class="programlisting brush: 
scala">libraryDependencies += \
     "org.apache.polygene.core" % "org.apache.polygene.core.bootstrap" % 
"POLYGENE_VERSION" \
     withSources() withJavadoc()
 libraryDependencies += \
@@ -109,7 +109,7 @@ libraryDependencies += \
     withSources() withJavadoc()
 libraryDependencies += \
     "org.apache.polygene.core" % "org.apache.polygene.core.testsupport" % 
"POLYGENE_VERSION" % "test" \
-    withSources() withJavadoc()</pre><p>Where <code 
class="literal">POLYGENE_VERSION</code> is the Polygene™ version you want to 
use.</p><p>If you want to use <code class="literal">-SNAPSHOT</code> versions, 
you need to register the Apache Snapshots repository:</p><pre 
class="programlisting brush: scala">resolvers += "apache-snapshots" at 
"https://repository.apache.org/snapshots/";</pre></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_using_ivy"></a>Using 
Ivy</h4></div></div></div><p>You simply declare dependencies on Polygene™ 
artifacts:</p><pre class="programlisting brush: xml">&lt;ivy-module&gt;
+    withSources() withJavadoc()</pre><p>Where <code 
class="literal">POLYGENE_VERSION</code> is the Polygene™ version you want to 
use.</p><p>If you want to use <code class="literal">-SNAPSHOT</code> versions, 
you need to register the Apache Snapshots repository:</p><pre 
class="programlisting brush: scala">resolvers += "apache-snapshots" at 
"https://repository.apache.org/snapshots/";</pre></div><div class="section" 
title="Using Ivy"><div class="titlepage"><div><div><h4 class="title"><a 
id="_using_ivy"></a>Using Ivy</h4></div></div></div><p>You simply declare 
dependencies on Polygene™ artifacts:</p><pre class="programlisting brush: 
xml">&lt;ivy-module&gt;
     &lt;dependencies&gt;
         &lt;dependency org="org.apache.polygene.core" 
name="org.apache.polygene.core.bootstrap"
                     rev="POLYGENE_VERSION"  conf="default" /&gt;

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/howto-invocation-annotation.html
----------------------------------------------------------------------
diff --git a/content/java/develop/howto-invocation-annotation.html 
b/content/java/develop/howto-invocation-annotation.html
index 1a4d18b..1765b4a 100644
--- a/content/java/develop/howto-invocation-annotation.html
+++ b/content/java/develop/howto-invocation-annotation.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>Use @Invocation</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="howto-configure-service.html" title="Configure a Service" 
/><link rel="next" href="build-system.html" title="Polygene™ Build System" />
+<!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>Use @Invocation</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="howto-configure-service.html" title="Configure a Service" 
/><link rel="next" href="build-system.html" title="Polygene™ Build System" />
 
 
 <!-- favicon -->
@@ -66,11 +66,11 @@
   })();
  </script>
 
-  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl 
class="toc"><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href=
 "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="tut-services.html">Services Composites Tutorial</a></span></dt><dt><
 span class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><span xmlns="" 
href="howto-invocation-annotation.html">Use 
@Invocation</span></span></dt><dt><span class="section"><a 
href="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt
 ><dt><span class="section"><a href="releasing-apache.html">Releasing 
 >Polygene™</a></span></dt></dl></div></div><div class="section"><div 
 >class="titlepage"><div><div><h3 class="title"><a 
 >id="howto-invocation-annotation"></a>Use 
 >@Invocation</h3></div></div></div><p>The @Invocation annotation is relatively 
 >unknown but can be rather powerful to use, especially when creating
+  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.ht
 ml">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="tut-services.html">Services Composites Tutorial</a></span></dt><dt><span 
class="section"><a 
 href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><a 
href="howto-leverage-properties.html">Leverage 
Properties</a></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><span xmlns="" 
href="howto-invocation-annotation.html">Use 
@Invocation</span></span></dt><dt><span class="section"><a 
href="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt><dt><span class="sectio
 n"><a href="releasing-apache.html">Releasing 
Polygene™</a></span></dt></dl></div></div><div class="section" title="Use 
@Invocation"><div class="titlepage"><div><div><h3 class="title"><a 
id="howto-invocation-annotation"></a>Use 
@Invocation</h3></div></div></div><p>The @Invocation annotation is relatively 
unknown but can be rather powerful to use, especially when creating
 libraries that needs to be flexible of what the user needs to 
do.</p><p>@Invocation is a different <code 
class="literal">InjectionScope</code>, which is a concept to tell Polygene 
runtime where to look for the
 instances to be injected. Other, more well-known, <code 
class="literal">InjectionScope</code> annotations are <code 
class="literal">@This</code>, <code class="literal">@Structure</code> and
 <code class="literal">@Service</code>.</p><p>The <code 
class="literal">@Invocation</code> injection scope can provide the following 
types, all related to the on-going method invocation,
-which is especially useful in Generic Concerns or Generic Mixins;</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+which is especially useful in Generic Concerns or Generic Mixins;</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
 <code class="literal">java.lang.reflect.Method</code> - The current method 
being invoked.
 </li><li class="listitem">
 <code class="literal">java.lang.reflect.AnnotatedElement</code> - An 
descriptor for all annotations of the Method.
@@ -78,11 +78,11 @@ which is especially useful in Generic Concerns or Generic 
Mixins;</p><div class=
 <span class="emphasis"><em>Custom Annotations</em></span> - Your own 
annotation type.
 </li><li class="listitem">
 <code class="literal">java.util.Iterable&lt;Method&gt;</code> - An iterable of 
all declared methods of the composite type.
-</li></ul></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a 
id="_java_lang_reflect_method"></a>java.lang.reflect.Method</h4></div></div></div><p>This
 injection will simply provide the <code 
class="literal">java.lang.reflect.Method</code> of the on-going call. For 
generic fragments that
+</li></ul></div><div class="section" title="java.lang.reflect.Method"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_java_lang_reflect_method"></a>java.lang.reflect.Method</h4></div></div></div><p>This
 injection will simply provide the <code 
class="literal">java.lang.reflect.Method</code> of the on-going call. For 
generic fragments that
 will be the same as the second argument in the <code 
class="literal">java.lang.reflect.InvocationHandler.invoke()</code> method. 
Sometimes
-it is useful to obtain this for typed fragment as well, to reduce names in 
Strings.</p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a 
id="_java_lang_reflect_annotatedelement"></a>java.lang.reflect.AnnotatedElement</h4></div></div></div><p>This
 Reflection API class encapsulates the annotation aspect of any element that 
can be annotated. Polygene implements
+it is useful to obtain this for typed fragment as well, to reduce names in 
Strings.</p></div><div class="section" 
title="java.lang.reflect.AnnotatedElement"><div class="titlepage"><div><div><h4 
class="title"><a 
id="_java_lang_reflect_annotatedelement"></a>java.lang.reflect.AnnotatedElement</h4></div></div></div><p>This
 Reflection API class encapsulates the annotation aspect of any element that 
can be annotated. Polygene implements
 this interface for the Composite. That means that annotations for both the 
method as well as the composite is provided
-through this injection.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_custom_annotations"></a>Custom Annotations</h4></div></div></div><p>It is 
often useful to introduce one’s own annotations, especially for libraries, 
and use these annotations to direct
+through this injection.</p></div><div class="section" title="Custom 
Annotations"><div class="titlepage"><div><div><h4 class="title"><a 
id="_custom_annotations"></a>Custom Annotations</h4></div></div></div><p>It is 
often useful to introduce one’s own annotations, especially for libraries, 
and use these annotations to direct
 the runtime to do different things. Many of the "built-in" features in 
Polygene is actually done by this mechanism and
 not directly implemented in the Core Runtime.</p><p>First create an annotation 
of your own liking, it must have <code 
class="literal">java.lang.annotation.Retention</code> set to <code 
class="literal">RUNTIME</code></p><pre class="programlisting brush: 
java">@Retention( RUNTIME )
 @interface Foo
@@ -100,7 +100,7 @@ not directly implemented in the Core Runtime.</p><p>First 
create an annotation o
 {
     @Invocation
     Foo foo;
-</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a 
id="_java_util_iterable_lt_method_gt"></a>java.util.Iterable&lt;Method&gt;</h4></div></div></div><p>This
 injection will provide all the declared methods of the current composite. This 
is particularly useful for mixins
+</pre></div><div class="section" title="java.util.Iterable&lt;Method&gt;"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_java_util_iterable_lt_method_gt"></a>java.util.Iterable&lt;Method&gt;</h4></div></div></div><p>This
 injection will provide all the declared methods of the current composite. This 
is particularly useful for mixins
 or concerns that builds information about the composite they belong 
to.</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>.
         <br /><small>

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/howto-leverage-properties.html
----------------------------------------------------------------------
diff --git a/content/java/develop/howto-leverage-properties.html 
b/content/java/develop/howto-leverage-properties.html
index c2b47a1..aefa087 100644
--- a/content/java/develop/howto-leverage-properties.html
+++ b/content/java/develop/howto-leverage-properties.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>Leverage Properties</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="howto-contextual-fragments.html" title="Use contextual 
fragments" /><link rel="next" href="howto-create-constraint.html" title="Create 
a Constraint" />
+<!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>Leverage Properties</title><link 
rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" 
content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" 
title="" /><link rel="up" href="tutorials.html" title="Tutorials" /><link 
rel="prev" href="howto-contextual-fragments.html" title="Use contextual 
fragments" /><link rel="next" href="howto-create-constraint.html" title="Create 
a Constraint" />
 
 
 <!-- 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"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href=
 "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="tut-services.html">Services Composites Tutorial</a></span></dt><dt><
 span class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><span xmlns="" 
href="howto-leverage-properties.html">Leverage 
Properties</span></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt
 ><dt><span class="section"><a href="releasing-apache.html">Releasing 
 >Polygene™</a></span></dt></dl></div></div><div class="section"><div 
 >class="titlepage"><div><div><h3 class="title"><a 
 >id="howto-leverage-properties"></a>Leverage 
 >Properties</h3></div></div></div><p>Polygene™ does not follow the JavaBeans 
 >standard for property support. Instead, a much more explicit concept is in 
 >place. 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"><span 
xmlns="" href="tutorials.html">Tutorials</span></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.ht
 ml">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="tut-services.html">Services Composites Tutorial</a></span></dt><dt><span 
class="section"><a 
 href="howto-contextual-fragments.html">Use contextual 
fragments</a></span></dt><dt><span class="section"><span xmlns="" 
href="howto-leverage-properties.html">Leverage 
Properties</span></span></dt><dt><span class="section"><a 
href="howto-create-constraint.html">Create a 
Constraint</a></span></dt><dt><span class="section"><a 
href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
class="section"><a href="howto-create-sideeffect.html">Create a 
SideEffect</a></span></dt><dt><span class="section"><a 
href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
class="section"><a href="howto-configure-service.html">Configure a 
Service</a></span></dt><dt><span class="section"><a 
href="howto-invocation-annotation.html">Use 
@Invocation</a></span></dt><dt><span class="section"><a 
href="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
class="section"><a href="community-docs.html">Polygene™ 
Documentation</a></span></dt><dt><span class="sectio
 n"><a href="releasing-apache.html">Releasing 
Polygene™</a></span></dt></dl></div></div><div class="section" 
title="Leverage Properties"><div class="titlepage"><div><div><h3 
class="title"><a id="howto-leverage-properties"></a>Leverage 
Properties</h3></div></div></div><p>Polygene™ does not follow the JavaBeans 
standard for property support. Instead, a much more explicit concept is in 
place. The
 advantages are enormous, and the only real downside is that people are already 
destroyed, thinking in so called POJO
-terms.</p><p>If you want to reproduce what’s explained in this tutorial, 
remember to depend on the Core API artifact:</p><div class="table"><a 
id="idm447728115904"></a><p class="title"><strong>Table 8. 
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.api</p></td><td align="left" 
valign="top"><p>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>At runtime you will need the Core Runtime artifact 
too. See the <a class="xref" href="howto-depend-on-polygene.html" title="Depend 
on Polygene™">Depend on Polygene™</a> tutorial for d
 etails.</p><p>So in Polygene, instead of writing;</p><pre 
class="programlisting brush: java">public interface Book
+terms.</p><p>If you want to reproduce what’s explained in this tutorial, 
remember to depend on the Core API artifact:</p><div class="table"><a 
id="idm229756515376"></a><p class="title"><strong>Table 8. 
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.api</p></td><td align="left" 
valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>At runtime you will need the Core Runtime artifact 
too. See the <a class="xref" href="howto-depend-on-polygene.html" title="Depend 
on Polygene™">Depend on Polygene™</a> tutorial for details.</p><p>
 So in Polygene, instead of writing;</p><pre class="programlisting brush: 
java">public interface Book
 {
     String getTitle();
     String getAuthor();
@@ -91,7 +91,7 @@ like this;</p><pre class="programlisting brush: java">public 
interface Book
     @Immutable
     Property&lt;String&gt; author();
 }
-</pre><p>There is more to this than meets the eye.</p><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+</pre><p>There is more to this than meets the eye.</p><div 
class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
 @Immutable annotation signals that this can’t change.
 </li><li class="listitem">
 Property still have a set() method, which can be used during the 
initialization only.
@@ -108,10 +108,10 @@ Module module;
     Book book = builder.newInstance();
     String title = book.title().get();     // Retrieves the title.
     book.title().set( "Long Live POJOs" ); // throws an IllegalStateException
-</pre><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_persistence"></a>Persistence</h4></div></div></div><p>The 
Property concept also allows a much better defined persistence model. In 
Polygene, only Property and Association
+</pre><div class="section" title="Persistence"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_persistence"></a>Persistence</h4></div></div></div><p>The Property concept 
also allows a much better defined persistence model. In Polygene, only Property 
and Association
 instances are persisted, and that makes the semantics around the persistence 
system very clear.</p><p>Properties reference values only, and these values 
must be Serializable, which means that Properties can not contain
 Entities, since Entities are not Serializable. Associations are the opposite, 
as they must only reference Entities and
-nothing else.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_metainfo"></a>MetaInfo</h4></div></div></div><p>Properties can also have 
typed, custom meta information associated with them. Meta information is 
declared once per
+nothing else.</p></div><div class="section" title="MetaInfo"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_metainfo"></a>MetaInfo</h4></div></div></div><p>Properties can also have 
typed, custom meta information associated with them. Meta information is 
declared once per
 Property per Module. A Property is identified by its method name and the 
interface it is declared in.</p><p>Let’s say we want to create a generic 
Swing client that can show and navigate the domain model, without knowing the
 actual domain model. Such Swing client will utilize a SwingInfo property info 
if it is available.</p><pre class="programlisting brush: java">public interface 
SwingInfo
 {

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/index.html
----------------------------------------------------------------------
diff --git a/content/java/develop/index.html b/content/java/develop/index.html
index 206a9b5..faf3c19 100644
--- a/content/java/develop/index.html
+++ b/content/java/develop/index.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></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="next" href="intro.html" title="Introduction" />
+<!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></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="next" href="intro.html" title="Introduction" />
 
 
 <!-- favicon -->
@@ -66,13 +66,13 @@
   })();
  </script>
 
-  </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="logo"><a href="index.html"><img src="images/logo-standard.png" 
/></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl 
class="toc"><dt><span class="section"><span xmlns="" 
href="index.html#home">Polygene™</span></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"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href=
 "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"></div><div xml:lang="en" 
class="article" lang="en"><div class="titlepage"><hr /></div><div 
class="section"><div class="titlepage"><div><div><h2 class="title"><a 
id="home"></a>Polygene™</h2></div></div></div><div class="important" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">3.0.0-SNAPSHOT</h3><p>This is the documentation for <span 
class="strong"><strong>Polygene™ 3.0.0-SNAPSHOT</strong></span>. Use the 
version switcher on the left to browse other
-versions documentation.</p></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="_what_is_apache_polygene"></a>What is Apache Polygene™ 
?</h3></div></div></div><p>The short answer is that Apache Polygene™ is a 
framework for domain centric application development, including evolved
+  </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"><span xmlns="" 
href="index.html#home">Polygene™</span></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"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.ht
 ml">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"></div><div xml:lang="en" 
class="article" lang="en"><div class="titlepage"><hr /></div><div 
class="section" title="Polygene™"><div class="titlepage"><div><div><h2 
class="title"><a id="home"></a>Polygene™</h2></div></div></div><div 
class="important" title="3.1.0-SNAPSHOT" style="margin-left: 0.5in; 
margin-right: 0.5in;"><h3 class="title">3.1.0-SNAPSHOT</h3><p>This is the 
documentation for <span class="strong"><strong>Polygene™ 
3.1.0-SNAPSHOT</strong></span>. Use the version switcher on the left to browse 
other
+versions documentation.</p></div><div class="section" title="What is Apache 
Polygene™ ?"><div class="titlepage"><div><div><h3 class="title"><a 
id="_what_is_apache_polygene"></a>What is Apache Polygene™ 
?</h3></div></div></div><p>The short answer is that Apache Polygene™ is a 
framework for domain centric application development, including evolved
 concepts from <a class="ulink" 
href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"; 
target="_top">AOP</a>,
 <a class="ulink" href="http://en.wikipedia.org/wiki/Dependency_injection"; 
target="_top">DI</a> and <a class="ulink" 
href="http://en.wikipedia.org/wiki/Domain-driven_design"; 
target="_top">DDD</a>.</p><p>Polygene™ is an implementation of Composite 
Oriented Programming, using the standard Java platform, without the use of
 any pre-processors or new language elements. Everything you know from Java 
still applies and you can leverage both
 your experience and toolkits to become more productive with Composite Oriented 
Programming today.</p><p>Moreover, Polygene™ enables Composite Oriented 
Programming on the Java platform, including both Java and Scala as primary
-languages as well as many of the plethora of languages running on the JVM as 
bridged languages.</p><p>We strongly recommend the <a class="link" 
href="intro.html" title="Introduction">introduction</a> section.</p></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="_brief_history"></a>Brief History</h3></div></div></div><p>Apache 
Polygene™ started its life in 2007 as Qi4j™, initially at OPS4J’s 
infrastructure and later on GitHub.
+languages as well as many of the plethora of languages running on the JVM as 
bridged languages.</p><p>We strongly recommend the <a class="link" 
href="intro.html" title="Introduction">introduction</a> section.</p></div><div 
class="section" title="Brief History"><div class="titlepage"><div><div><h3 
class="title"><a id="_brief_history"></a>Brief 
History</h3></div></div></div><p>Apache Polygene™ started its life in 2007 as 
Qi4j™, initially at OPS4J’s infrastructure and later on GitHub.
 In March 2015, Apache Polygene™ was created with the Qi4j™ codebase as the 
base, existing Apache Members as the
 bootstrap Project Management Committee (PMC).</p><p><span 
class="inlinemediaobject"><img src="images/intro-qi.png" alt="Qi" 
/></span></p><p>Qi4j™ is pronounced "chee for jay". This website is out of 
scope to explain the many
 facets and history of Qi, so we refer the interested to read the <a 
class="ulink" href="http://en.wikipedia.org/wiki/Qi"; target="_top">lengthy 
article</a> at

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/intro.html
----------------------------------------------------------------------
diff --git a/content/java/develop/intro.html b/content/java/develop/intro.html
index 056518a..ef96ec3 100644
--- a/content/java/develop/intro.html
+++ b/content/java/develop/intro.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>Introduction</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="index.html" title="" /><link rel="next" 
href="introduction-background.html" title="Background" />
+<!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>Introduction</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="index.html" title="" /><link rel="next" 
href="introduction-background.html" title="Background" />
 
 
 <!-- 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"><span xmlns="" 
href="intro.html">Introduction</span></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"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><a 
href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a 
href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a 
href="tools.html">Tools</a></span></dt><dt><span class="section"><a href=
 "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><span xmlns="" 
href="intro.html#highlights">Highlights</span></span></dt><dt><span 
class="section"><a 
href="introduction-background.html">Background</a></span></dt><dt><span 
class="section"><a href="what-is-cop.html">What is 
COP?</a></span></dt><dt><span class="section"><a 
href="what-s-an-object-anyway.html">What’s an Object 
anyway?</a></span></dt><dt><span class="section"><a 
href="state-modeling.html">Polygene™ and state 
modeling</a></span></dt><dt><span class="section"><a 
href="related.html">Related publications &amp; 
projects</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h2 class="title"><a 
id="intro"></a>Introduction</h2></div></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a id="
 highlights"></a>Highlights</h3></div></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_principles"></a>Principles</h4></div></div></div><p>Composite Oriented 
Programming builds on some principles that are not addressed by Object Oriented 
Programming at all.</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
+  </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"><span xmlns="" 
href="intro.html">Introduction</span></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"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><a 
href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a 
href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a 
href="tools.html">Tools</a></span></dt><dt><span class="section"><a 
href="glossary.ht
 ml">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><span xmlns="" 
href="intro.html#highlights">Highlights</span></span></dt><dt><span 
class="section"><a 
href="introduction-background.html">Background</a></span></dt><dt><span 
class="section"><a href="what-is-cop.html">What is 
COP?</a></span></dt><dt><span class="section"><a 
href="what-s-an-object-anyway.html">What’s an Object 
anyway?</a></span></dt><dt><span class="section"><a 
href="state-modeling.html">Polygene™ and state 
modeling</a></span></dt><dt><span class="section"><a 
href="related.html">Related publications &amp; 
projects</a></span></dt></dl></div></div><div class="section" 
title="Introduction"><div class="titlepage"><div><div><h2 class="title"><a 
id="intro"></a>Introduction</h2></div></div></div><div class="section" 
title="Highlights"><div class="titlepage"><div><div><h3 class
 ="title"><a id="highlights"></a>Highlights</h3></div></div></div><div 
class="section" title="Principles"><div class="titlepage"><div><div><h4 
class="title"><a 
id="_principles"></a>Principles</h4></div></div></div><p>Composite Oriented 
Programming builds on some principles that are not addressed by Object Oriented 
Programming at all.</p><div class="itemizedlist"><ul class="itemizedlist"><li 
class="listitem">
 Behavior depends on Context
 </li><li class="listitem">
 Decoupling is a virtue
@@ -74,8 +74,8 @@ Decoupling is a virtue
 Business Rules matters more.
 </li><li class="listitem">
 Classes are dead, long live interfaces.
-</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_behavior_depends_on_context"></a>Behavior Depends on 
Context</h5></div></div></div><p>Many objects has life cycles that are more 
extensive than the simple model that Object Oriented Programming model wants
-us to believe. A few simple examples;</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
+</li></ul></div><div class="section" title="Behavior Depends on Context"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_behavior_depends_on_context"></a>Behavior Depends on 
Context</h5></div></div></div><p>Many objects has life cycles that are more 
extensive than the simple model that Object Oriented Programming model wants
+us to believe. A few simple examples;</p><div class="itemizedlist"><ul 
class="itemizedlist"><li class="listitem">
 An egg becomes a chicken which in turn becomes food.
 </li><li class="listitem">
 I am a programmer at work, a father+husband at home, a victim in a traffic 
accident and hunter and pray in the jungle.
@@ -89,13 +89,13 @@ that Person may live on for a long time. In a OOP system, 
we would need to trans
 LivingPerson class to a DeadPerson class. In Composite Oriented Programming, 
it is the same object with different
 behavior.</p><p>We think that one of the the main flaws in OOP is that it is 
not object oriented at all, but in fact class oriented.
 Class is the first class citizen that objects are derived from. Not objects 
being the first-class citizen to which
-one or many classes are assigned.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_decoupling_is_virtue"></a>Decoupling is 
Virtue</h5></div></div></div><p>Decoupling is more important than developers in 
general think. If you could have every OOP class decoupled from all
+one or many classes are assigned.</p></div><div class="section" 
title="Decoupling is Virtue"><div class="titlepage"><div><div><h5 
class="title"><a id="_decoupling_is_virtue"></a>Decoupling is 
Virtue</h5></div></div></div><p>Decoupling is more important than developers in 
general think. If you could have every OOP class decoupled from all
 other classes, it is easy to re-use that class. But when that class references 
another class and the chain never ends,
 your chances of re-use diminishes quickly.</p><p>Object Oriented Programming 
is suffering a lot from this, and many mechanisms have been introduced over 
time to counter
 this problem. But in reality, the best we can manage is subsystems of 
functionality, which client code can re-use. And
 these subsystems tend to be infrastructure related, since domain models are 
less prone to be similar enough from one
 project to the next, and since OOP in reality constrains the the re-use of 
individual domain classes, we need to re-do
-the domain model from scratch ever time.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_business_rules_matters_more"></a>Business Rules matters 
more</h5></div></div></div><p>Smart developers often think that low-level, 
infrastructure and framework code is more important and more cool to work
+the domain model from scratch ever time.</p></div><div class="section" 
title="Business Rules matters more"><div class="titlepage"><div><div><h5 
class="title"><a id="_business_rules_matters_more"></a>Business Rules matters 
more</h5></div></div></div><p>Smart developers often think that low-level, 
infrastructure and framework code is more important and more cool to work
 with, than the simple domain model. But in reality, it is the Domain Model 
that reflects the actual need  and pays the
 bills. Infrastructure is just a necessary evil to get things done.</p><p>If 
most developers could focus on the Business Rules and Domain Model, and not 
having to worry about any infrastructure
 issues, such as persistence, transactions, security or the framework housing 
it all, the productivity would surge. Eric

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/2d44da7d/content/java/develop/introduction-background.html
----------------------------------------------------------------------
diff --git a/content/java/develop/introduction-background.html 
b/content/java/develop/introduction-background.html
index 12a8f4e..09ba614 100644
--- a/content/java/develop/introduction-background.html
+++ b/content/java/develop/introduction-background.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>Background</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="intro.html" title="Introduction" /><link 
rel="prev" href="intro.html" title="Introduction" /><link rel="next" 
href="what-is-cop.html" title="What is COP?" />
+<!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>Background</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="intro.html" title="Introduction" /><link 
rel="prev" href="intro.html" title="Introduction" /><link rel="next" 
href="what-is-cop.html" title="What is COP?" />
 
 
 <!-- favicon -->
@@ -66,33 +66,33 @@
   })();
  </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"><span xmlns="" 
href="intro.html">Introduction</span></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"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><a 
href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a 
href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a 
href="tools.html">Tools</a></span></dt><dt><span class="section"><a href=
 "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl class="toc"><dt><span 
class="section"><a 
href="intro.html#highlights">Highlights</a></span></dt><dt><span 
class="section"><span xmlns="" 
href="introduction-background.html">Background</span></span></dt><dt><span 
class="section"><a href="what-is-cop.html">What is 
COP?</a></span></dt><dt><span class="section"><a 
href="what-s-an-object-anyway.html">What’s an Object 
anyway?</a></span></dt><dt><span class="section"><a 
href="state-modeling.html">Polygene™ and state 
modeling</a></span></dt><dt><span class="section"><a 
href="related.html">Related publications &amp; 
projects</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="introduction-background"></a>Background</h3></div></div></div><p>Polygene™
 is the first Composite Oriented Programming impl
 ementation leveraging the Java 5 platform, so that everything you
+  </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"><span xmlns="" 
href="intro.html">Introduction</span></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"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><a 
href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a 
href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a 
href="tools.html">Tools</a></span></dt><dt><span class="section"><a 
href="glossary.ht
 ml">Glossary </a></span></dt></dl></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="sub-nav"><div 
xmlns="http://www.w3.org/1999/xhtml"; class="toc"><dl><dt><span 
class="section"><a 
href="intro.html#highlights">Highlights</a></span></dt><dt><span 
class="section"><span xmlns="" 
href="introduction-background.html">Background</span></span></dt><dt><span 
class="section"><a href="what-is-cop.html">What is 
COP?</a></span></dt><dt><span class="section"><a 
href="what-s-an-object-anyway.html">What’s an Object 
anyway?</a></span></dt><dt><span class="section"><a 
href="state-modeling.html">Polygene™ and state 
modeling</a></span></dt><dt><span class="section"><a 
href="related.html">Related publications &amp; 
projects</a></span></dt></dl></div></div><div class="section" 
title="Background"><div class="titlepage"><div><div><h3 class="title"><a 
id="introduction-background"></a>Background</h3></div></div></div><p>Polygene™
 is the first Composite Oriented Programming implement
 ation leveraging the Java 5 platform, so that everything you
 know from Java 5 still applies. You can mix Polygene™ with your ordinary 
Java code as much as you want. All your existing
 Java tools works just like before, and Polygene™ does not introduce any new 
programming language, no special development
-tools needed and no XML is required.</p><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_purpose"></a>Purpose</h4></div></div></div><p>Polygene™ addresses the 
programming problems from the top-down, starting with the Domain Model and 
Business Rules needs,
+tools needed and no XML is required.</p><div class="section" 
title="Purpose"><div class="titlepage"><div><div><h4 class="title"><a 
id="_purpose"></a>Purpose</h4></div></div></div><p>Polygene™ addresses the 
programming problems from the top-down, starting with the Domain Model and 
Business Rules needs,
 and let those requirements flow downwards in the software stack and dictate 
the requirements for underlying layers
 such as persistence, messaging, querying and more. This means that the 
business value developer is left to
 concentrate on the domain models and the actual application bringing the 
value, instead of creating massive amounts
-of glue code to tie underlying technologies together.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_problem_descriptions"></a>Problem 
Descriptions</h4></div></div></div><p>Polygene™ didn’t appear out of the 
blue, when the founders of the project had nothing better to do. It is the 
result of
+of glue code to tie underlying technologies together.</p></div><div 
class="section" title="Problem Descriptions"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_problem_descriptions"></a>Problem 
Descriptions</h4></div></div></div><p>Polygene™ didn’t appear out of the 
blue, when the founders of the project had nothing better to do. It is the 
result of
 observation of problems in real applications, and the experience from previous 
attempts to address or correct these
-problems, that has led to the Polygene™ vision.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_object_oriented_programming_oop"></a>Object Oriented Programming 
(OOP)</h4></div></div></div><p>How can OOP be a problem? We and others have 
observed that there is a fundamental flaw in the OOP model. In fact, we
+problems, that has led to the Polygene™ vision.</p></div><div 
class="section" title="Object Oriented Programming (OOP)"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_object_oriented_programming_oop"></a>Object Oriented Programming 
(OOP)</h4></div></div></div><p>How can OOP be a problem? We and others have 
observed that there is a fundamental flaw in the OOP model. In fact, we
 would like to even state that OOP as it is commonly practiced today is not 
object oriented at all. The object is not
 the primary citizen, instead the class is the primary artifact. In most 
mainstream OOP languages, Objects are derived
 from classes, not that classes are assigned to created objects. Therefore, we 
think it should have been called Class
 Oriented Programming. We can also see this class focus in many of the 
technologies in Java today: in Spring you declare
-class names in application contexts, JSP uses class names to declare beans and 
so forth.</p><p>This in turn leads to that there is no good OOP solution for 
the problem we describe below.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_behavior_depends_on_context_2"></a>Behavior depends on 
Context</h4></div></div></div><p>Once you start thinking of "Behavior depends 
on Context", you have a hard time understanding how people for the last 20
-years or so of Object Oriented Programming (OOP) has ignored this 
fact.</p><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_who_am_i"></a>Who am I?</h5></div></div></div><p>When I 
sitting in front of the computer, I am a software developer, but if I go out in 
the jungle, I am suddenly
+class names in application contexts, JSP uses class names to declare beans and 
so forth.</p><p>This in turn leads to that there is no good OOP solution for 
the problem we describe below.</p></div><div class="section" title="Behavior 
depends on Context"><div class="titlepage"><div><div><h4 class="title"><a 
id="_behavior_depends_on_context_2"></a>Behavior depends on 
Context</h4></div></div></div><p>Once you start thinking of "Behavior depends 
on Context", you have a hard time understanding how people for the last 20
+years or so of Object Oriented Programming (OOP) has ignored this 
fact.</p><div class="section" title="Who am I?"><div 
class="titlepage"><div><div><h5 class="title"><a id="_who_am_i"></a>Who am 
I?</h5></div></div></div><p>When I sitting in front of the computer, I am a 
software developer, but if I go out in the jungle, I am suddenly
 hunter-gatherer and prey. A large set of me is the same, but my interaction 
with the surroundings, i.e. the context, is
 very different. I need different interfaces, so to speak, in these two 
different contexts.</p><p>Now, the above example is perhaps a bit extreme, but 
we see it in everyday life of the developer. When an object is
 stored in the database it is of a different class, than when it is transported 
to the client and possibly when it is
 displayed in the GUI. We see the effect of this problem in many of the design 
patterns and so called "best practices"
-in Java EE development. Facades, delegation, data transport objects and many 
more.</p></div></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_coupling"></a>Coupling</h4></div></div></div><p>The OOP 
proponents once proclaimed that classes can be re-used, since the code is 
encapsulated with the class, so the
+in Java EE development. Facades, delegation, data transport objects and many 
more.</p></div></div><div class="section" title="Coupling"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_coupling"></a>Coupling</h4></div></div></div><p>The OOP proponents once 
proclaimed that classes can be re-used, since the code is encapsulated with the 
class, so the
 class is an independent unit which lends itself well to re-use. In reality, 
however, we have found that classes becomes
 tightly coupled with many other classes in their neighborhood, leading to 
impossibilities of single class re-use. Many
 tricks are introduced to minimize the "Coupling Hell", such as Inversion of 
Control and Dependency Injection. Although
 those tools are good, the underlying problem remains.</p><p>Why do we end up 
with large coupled class network graphs?</p><p>Essentially, it boils down to 
"scope". Classes are too large, their scope is too large, and for each small 
functional
 unit within the class, there will be additional coupling to other classes. And 
this often progresses to the full
-boundary of the entire domain the class remains in.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_application_layer_impedance_mismatch"></a>Application layer impedance 
mismatch</h4></div></div></div><p>Almost all technologies used in modern 
software development, starts by looking at an infrastructural problem and try to
+boundary of the entire domain the class remains in.</p></div><div 
class="section" title="Application layer impedance mismatch"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_application_layer_impedance_mismatch"></a>Application layer impedance 
mismatch</h4></div></div></div><p>Almost all technologies used in modern 
software development, starts by looking at an infrastructural problem and try to
 solve that the best way. This is often done in a vacuum and layers on top will 
be struggling to map or translate the
 solution into the higher abstraction, and the higher up we get, the harder it 
becomes to ignore the assumptions,
 problems and limitations of the underlying technologies. It is also common 
that the underlying technologies "bleeds"
@@ -102,25 +102,25 @@ often, the most skilled developers end up doing the 
bottom layers, leaving the h
 Another interesting consequence is that each layer needs to anticipate every 
single use-case - real, potential or
 perceived - and deal with it in a specifiable and useful manner. This leads to 
overly complex solutions, compared to if
 the system is built from the top layer down, where each layer beneath knows 
exactly what is expected from it, and only
-needs to handle those use-cases.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_abstracting_away_meaning"></a>Abstracting away 
meaning.</h4></div></div></div><p>To paraphrase a famous proverb about a 
hammer: "If all you have are objects, everything looks like a dependency."
+needs to handle those use-cases.</p></div><div class="section" 
title="Abstracting away meaning."><div class="titlepage"><div><div><h4 
class="title"><a id="_abstracting_away_meaning"></a>Abstracting away 
meaning.</h4></div></div></div><p>To paraphrase a famous proverb about a 
hammer: "If all you have are objects, everything looks like a dependency."
 We think that increasing abstraction often also increases complexity, and that 
the abstraction benefits are somewhat
 linear whereas the complexity negatives are exponential. So, our conclusion is 
that by making no distinction between
 different kinds of objects, many sound technologies run into incredibly 
difficult problems. The implementation of the
 programming platform (e.g. Java) is of course easier to implement with a hefty 
amount of scope reduction into as few as
 possible abstractions. But that is not the situation for the user. The 
abstraction is then required to be reversed when
 the rubber hits the road, e.g. ORM mapping must be declared explicitly by the 
programmer, often using separate tools
-and languages.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_solution"></a>Solution</h4></div></div></div><p>We think the solution was 
expressed more than 2500 years ago, first by Indian scholars and slightly later 
by Leucippus
+and languages.</p></div><div class="section" title="Solution"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_solution"></a>Solution</h4></div></div></div><p>We think the solution was 
expressed more than 2500 years ago, first by Indian scholars and slightly later 
by Leucippus
 and Democritus. We are of course talking about atoms, and by using really 
small building blocks, we can express
 arbitrarily complex structures.
 By reducing the classes into what we in Composite Oriented Programming call 
Fragments, we limit the coupling network
 graph substantially. Re-use of Fragments becomes a reality, and by combination 
of Fragments, we compose larger
-structures, the Composites.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_composition"></a>Composition</h4></div></div></div><p>Composite Oriented 
Programming also view the object, we call it the Composite instance, as the 
first class citizen. The
+structures, the Composites.</p></div><div class="section" 
title="Composition"><div class="titlepage"><div><div><h4 class="title"><a 
id="_composition"></a>Composition</h4></div></div></div><p>Composite Oriented 
Programming also view the object, we call it the Composite instance, as the 
first class citizen. The
 Composite instance can be cast to any context, meaning a different behavior 
can be applied to the Composite instance,
 without affecting its underlying state. And back. This in turn means that we 
can for instance create a
 ServerContextualInvoiceEntity, transport that across to a client, cast it to a 
GuiContextualInvoiceEntity do the
 modifications to the underlying state, possibly using extra interfaces and 
methods for interacting with the GUI
 environment, and then transport the modified object back to the server, cast 
it back to the
-ServerContextualInvoiceEntity, and then persist the changes.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_domain_driven_design_focus"></a>Domain Driven Design 
focus</h4></div></div></div><p>Composite Oriented Programming is heavily 
influenced by the book "Domain Driven Design" by Eric Evans. And we are
+ServerContextualInvoiceEntity, and then persist the changes.</p></div><div 
class="section" title="Domain Driven Design focus"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_domain_driven_design_focus"></a>Domain Driven Design 
focus</h4></div></div></div><p>Composite Oriented Programming is heavily 
influenced by the book "Domain Driven Design" by Eric Evans. And we are
 trying to use his analysis of the problem to provide the mechanisms needed to 
get the job done quicker and more
 reliably. Mr Evans talks about Applications, Layers, Modules, Specifications, 
SideEffects and so forth, and all of
 these should be present in a Composite Oriented Programming implementation, 
and to a large extent it is in Polygene™.</p></div></div><div xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="footer"><p>

Reply via email to