http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ea4d77b0/content/java/latest/extension-vs-orgjson.html ---------------------------------------------------------------------- diff --git a/content/java/latest/extension-vs-orgjson.html b/content/java/latest/extension-vs-orgjson.html deleted file mode 100644 index b6cc68a..0000000 --- a/content/java/latest/extension-vs-orgjson.html +++ /dev/null @@ -1,81 +0,0 @@ -<?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>org.json ValueSerialization</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="extensions.html" title="Extensions" /><link rel="prev" href="extensions.html" title="Extensions" /><link rel="next" href="extension-vs-jackson.html" title="Jackson ValueSerialization" /> - - -<!-- favicon --> - -<link rel="shortcut icon" href="http://qi4j.org/favicon.ico" type="image/vnd.microsoft.icon" /> -<link rel="icon" href="http://qi4j.org/favicon.ico" type="image/x-icon" /> - -<!-- style --> - -<link href="css/shCore.css" rel="stylesheet" type="text/css" /> -<link href="css/shCoreEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/shThemeEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/qi4j.css" rel="stylesheet" type="text/css" /> - -<!-- Syntax Highlighter --> - -<script type="text/javascript" src="js/shCore.js"></script> -<script type="text/javascript" src="js/shBrushJava.js"></script> -<script type="text/javascript" src="js/shBrushScala.js"></script> -<script type="text/javascript" src="js/shBrushJScript.js"></script> -<script type="text/javascript" src="js/shBrushBash.js"></script> -<script type="text/javascript" src="js/shBrushPlain.js"></script> -<script type="text/javascript" src="js/shBrushXml.js"></script> -<script type="text/javascript" src="js/shBrushGroovy.js"></script> -<script type="text/javascript" src="js/shBrushPython.js"></script> -<script type="text/javascript" src="js/shBrushRuby.js"></script> -<script type="text/javascript" src="js/shBrushCSharp.js"></script> - -<script type="text/javascript"> - SyntaxHighlighter.defaults['tab-size'] = 4; - SyntaxHighlighter.defaults['gutter'] = false; - SyntaxHighlighter.defaults['toolbar'] = false; - SyntaxHighlighter.all() -</script> - -<!-- JQuery --> - -<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script> - -<!-- Image Scaler --> - -<script type="text/javascript" src="js/imagescaler.js"></script> - -<!-- Table Styler --> - -<script type="text/javascript" src="js/tablestyler.js"></script> - -<!-- Qi4j WebSite Progressive Enhancement --> - -<link href="css/progressive-enhancement.css" rel="stylesheet" type="text/css" /> -<script type="text/javascript" src="js/jquery.scrollTo-1.4.2.js"></script> -<script type="text/javascript" src="js/progressive-enhancement.js"></script> - -<!-- Analytics --> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-89723617-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Zestâ¢</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"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></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><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><span xmlns="" href="extension-vs-orgjson.html">org.json ValueSerialization</span></span></dt><dt><span class="section"><a href="extension-vs-jackson.html">Jackson ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-stax.html">StAX ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-cache-ehcache.html">Ehcache Cache</a></span></dt><dt><span class="section"><a href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extensio n-es-hazelcast.html">Hazelcast EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jdbm.html">JDBM EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-mongodb.html">MongoDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-preferences.html">Preferences EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-riak.html">Riak EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-sql.html">SQL EntityStore</a></span></dt><dt><span class="section"><a href="extension-index-elasticsearch.html">ElasticSearch Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-rdf.html">OpenRD F Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-yammer.html">Yammer Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section" title="org.json ValueSerialization"><div class="titlepage"><div><div><h3 class="title"><a id="extension-vs-orgjson"></a>org.json ValueSerialization</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-good">docs</p><p class="devstatus-tests-complete">tests</p><p>ValueSerialization Service backed by <a class="ulink" href="https://github.com/douglascrockford/JSON-java" t arget="_top">org.json</a>.</p><div class="table"><a id="idm371057447440"></a><p class="title"><strong>Table 55. 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.qi4j.extension</p></td><td align="left" valign="top"><p>org.qi4j.extension.valueserialization-orgjson</p></td><td align="left" valign="top"><p>2.1</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Assembly"><div class="titlepage"><div><div><h4 class="title"><a id="_assembly_5"></a>Assembly</h4></div></div></div><p>Assembly is done as follows:</p><pre class="programlisting brush: java">@Override -public void assemble( ModuleAssembly module ) - throws AssemblyException -{ - new OrgJsonValueSerializationAssembler().assemble( module ); -} -</pre><p>See the ValueSerialization <a class="link" href="core-api.html#core-api-value" title="ValueComposite">API</a> and <a class="link" href="core-spi.html#core-spi-valueserialization" title="ValueSerialization SPI">SPI</a> documentation for details and -usage.</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> - Apache Zest, Zest, Apache, the Apache feather logo, and the Apache Zest project logo are trademarks of The Apache Software Foundation.<br /> - All other marks mentioned may be trademarks or registered trademarks of their respective owners. - </small></p></div></body></html> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ea4d77b0/content/java/latest/extension-vs-stax.html ---------------------------------------------------------------------- diff --git a/content/java/latest/extension-vs-stax.html b/content/java/latest/extension-vs-stax.html deleted file mode 100644 index 0000597..0000000 --- a/content/java/latest/extension-vs-stax.html +++ /dev/null @@ -1,81 +0,0 @@ -<?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>StAX ValueSerialization</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="extensions.html" title="Extensions" /><link rel="prev" href="extension-vs-jackson.html" title="Jackson ValueSerialization" /><link rel="next" href="extension-cache-ehcache.html" title="Ehcache Cache" /> - - -<!-- favicon --> - -<link rel="shortcut icon" href="http://qi4j.org/favicon.ico" type="image/vnd.microsoft.icon" /> -<link rel="icon" href="http://qi4j.org/favicon.ico" type="image/x-icon" /> - -<!-- style --> - -<link href="css/shCore.css" rel="stylesheet" type="text/css" /> -<link href="css/shCoreEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/shThemeEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/qi4j.css" rel="stylesheet" type="text/css" /> - -<!-- Syntax Highlighter --> - -<script type="text/javascript" src="js/shCore.js"></script> -<script type="text/javascript" src="js/shBrushJava.js"></script> -<script type="text/javascript" src="js/shBrushScala.js"></script> -<script type="text/javascript" src="js/shBrushJScript.js"></script> -<script type="text/javascript" src="js/shBrushBash.js"></script> -<script type="text/javascript" src="js/shBrushPlain.js"></script> -<script type="text/javascript" src="js/shBrushXml.js"></script> -<script type="text/javascript" src="js/shBrushGroovy.js"></script> -<script type="text/javascript" src="js/shBrushPython.js"></script> -<script type="text/javascript" src="js/shBrushRuby.js"></script> -<script type="text/javascript" src="js/shBrushCSharp.js"></script> - -<script type="text/javascript"> - SyntaxHighlighter.defaults['tab-size'] = 4; - SyntaxHighlighter.defaults['gutter'] = false; - SyntaxHighlighter.defaults['toolbar'] = false; - SyntaxHighlighter.all() -</script> - -<!-- JQuery --> - -<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script> - -<!-- Image Scaler --> - -<script type="text/javascript" src="js/imagescaler.js"></script> - -<!-- Table Styler --> - -<script type="text/javascript" src="js/tablestyler.js"></script> - -<!-- Qi4j WebSite Progressive Enhancement --> - -<link href="css/progressive-enhancement.css" rel="stylesheet" type="text/css" /> -<script type="text/javascript" src="js/jquery.scrollTo-1.4.2.js"></script> -<script type="text/javascript" src="js/progressive-enhancement.js"></script> - -<!-- Analytics --> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-89723617-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Zestâ¢</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"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></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><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><a href="extension-vs-orgjson.html">org.json ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-jackson.html">Jackson ValueSerialization</a></span></dt><dt><span class="section"><span xmlns="" href="extension-vs-stax.html">StAX ValueSerialization</span></span></dt><dt><span class="section"><a href="extension-cache-ehcache.html">Ehcache Cache</a></span></dt><dt><span class="section"><a href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extensio n-es-hazelcast.html">Hazelcast EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jdbm.html">JDBM EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-mongodb.html">MongoDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-preferences.html">Preferences EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-riak.html">Riak EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-sql.html">SQL EntityStore</a></span></dt><dt><span class="section"><a href="extension-index-elasticsearch.html">ElasticSearch Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-rdf.html">OpenRD F Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-yammer.html">Yammer Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section" title="StAX ValueSerialization"><div class="titlepage"><div><div><h3 class="title"><a id="extension-vs-stax"></a>StAX ValueSerialization</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-beta">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-complete">tests</p><p>ValueSerialization Service backed by <a class="ulink" href="http://jcp.org/en/jsr/detail?id=173" target="_top">StAX</a>.< /p><div class="table"><a id="idm371057405392"></a><p class="title"><strong>Table 57. 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.qi4j.extension</p></td><td align="left" valign="top"><p>org.qi4j.extension.valueserialization-stax</p></td><td align="left" valign="top"><p>2.1</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Assembly"><div class="titlepage"><div><div><h4 class="title"><a id="_assembly_7"></a>Assembly</h4></div></div></div><p>Assembly is done as follows:</p><pre class="programlisting brush: java">@Override -public void assemble( ModuleAssembly module ) - throws AssemblyException -{ - new StaxValueSerializationAssembler().assemble( module ); -} -</pre><p>See the ValueSerialization <a class="link" href="core-api.html#core-api-value" title="ValueComposite">API</a> and <a class="link" href="core-spi.html#core-spi-valueserialization" title="ValueSerialization SPI">SPI</a> documentation for details and -usage.</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> - Apache Zest, Zest, Apache, the Apache feather logo, and the Apache Zest project logo are trademarks of The Apache Software Foundation.<br /> - All other marks mentioned may be trademarks or registered trademarks of their respective owners. - </small></p></div></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ea4d77b0/content/java/latest/extensions.html ---------------------------------------------------------------------- diff --git a/content/java/latest/extensions.html b/content/java/latest/extensions.html deleted file mode 100644 index 89c8475..0000000 --- a/content/java/latest/extensions.html +++ /dev/null @@ -1,94 +0,0 @@ -<?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>Extensions</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="library-uowfile.html" title="UoWFile" /><link rel="next" href="extension-vs-orgjson.html" title="org.json ValueSerialization" /> - - -<!-- favicon --> - -<link rel="shortcut icon" href="http://qi4j.org/favicon.ico" type="image/vnd.microsoft.icon" /> -<link rel="icon" href="http://qi4j.org/favicon.ico" type="image/x-icon" /> - -<!-- style --> - -<link href="css/shCore.css" rel="stylesheet" type="text/css" /> -<link href="css/shCoreEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/shThemeEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/qi4j.css" rel="stylesheet" type="text/css" /> - -<!-- Syntax Highlighter --> - -<script type="text/javascript" src="js/shCore.js"></script> -<script type="text/javascript" src="js/shBrushJava.js"></script> -<script type="text/javascript" src="js/shBrushScala.js"></script> -<script type="text/javascript" src="js/shBrushJScript.js"></script> -<script type="text/javascript" src="js/shBrushBash.js"></script> -<script type="text/javascript" src="js/shBrushPlain.js"></script> -<script type="text/javascript" src="js/shBrushXml.js"></script> -<script type="text/javascript" src="js/shBrushGroovy.js"></script> -<script type="text/javascript" src="js/shBrushPython.js"></script> -<script type="text/javascript" src="js/shBrushRuby.js"></script> -<script type="text/javascript" src="js/shBrushCSharp.js"></script> - -<script type="text/javascript"> - SyntaxHighlighter.defaults['tab-size'] = 4; - SyntaxHighlighter.defaults['gutter'] = false; - SyntaxHighlighter.defaults['toolbar'] = false; - SyntaxHighlighter.all() -</script> - -<!-- JQuery --> - -<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script> - -<!-- Image Scaler --> - -<script type="text/javascript" src="js/imagescaler.js"></script> - -<!-- Table Styler --> - -<script type="text/javascript" src="js/tablestyler.js"></script> - -<!-- Qi4j WebSite Progressive Enhancement --> - -<link href="css/progressive-enhancement.css" rel="stylesheet" type="text/css" /> -<script type="text/javascript" src="js/jquery.scrollTo-1.4.2.js"></script> -<script type="text/javascript" src="js/progressive-enhancement.js"></script> - -<!-- Analytics --> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-89723617-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Zestâ¢</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"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></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><dt><span class="section"><span xmlns="" href="extensions.html#_overview_7">Overview</span></span></dt><dt><span class="section"><a href="extension-vs-orgjson.html">org.json ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-jackson.html">Jackson ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-stax.html">StAX ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-cache-ehcache.html">Ehcache Cache</a></span></dt><dt><span class="section"><a href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extensio n-es-hazelcast.html">Hazelcast EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jdbm.html">JDBM EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-mongodb.html">MongoDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-preferences.html">Preferences EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-riak.html">Riak EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-sql.html">SQL EntityStore</a></span></dt><dt><span class="section"><a href="extension-index-elasticsearch.html">ElasticSearch Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-rdf.html">OpenRD F Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-yammer.html">Yammer Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section" title="Extensions"><div class="titlepage"><div><div><h2 class="title"><a id="extensions"></a>Extensions</h2></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h3 class="title"><a id="_overview_7"></a>Overview</h3></div></div></div><p>We try to keep the Zest⢠Core Runtime as lean as possible, and a lot of the power to the Zest⢠Platform comes via its -Extension SPI, which defines clear ways to extend the platform. There are currently the following Extensions types, -each with possibly more than one implementation;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -Value Serialization -</li><li class="listitem"> -Entity Stores -</li><li class="listitem"> -Index / Query Engines -</li><li class="listitem"> -Entity Caches -</li><li class="listitem"> -Metrics Gathering -</li><li class="listitem"> -Reindexing -</li><li class="listitem"> -Migration -</li></ul></div><p>This section will go through each of the available extensions. -The Zest⢠Extensions are of varying maturity level and we try to maintain a STATUS (dev-status.xml) file indicating -how good the codebase, documentation and unit tests are for each of the libraries. This is highly subjective and -potentially different individuals will judge this differently, but at least it gives a ballpark idea of the situation -for our users.</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> - Apache Zest, Zest, Apache, the Apache feather logo, and the Apache Zest project logo are trademarks of The Apache Software Foundation.<br /> - All other marks mentioned may be trademarks or registered trademarks of their respective owners. - </small></p></div></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ea4d77b0/content/java/latest/glossary.html ---------------------------------------------------------------------- diff --git a/content/java/latest/glossary.html b/content/java/latest/glossary.html deleted file mode 100644 index 326f0b1..0000000 --- a/content/java/latest/glossary.html +++ /dev/null @@ -1,257 +0,0 @@ -<?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>Glossary </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="tools-envisage.html" title="Envisage" /> - - -<!-- favicon --> - -<link rel="shortcut icon" href="http://qi4j.org/favicon.ico" type="image/vnd.microsoft.icon" /> -<link rel="icon" href="http://qi4j.org/favicon.ico" type="image/x-icon" /> - -<!-- style --> - -<link href="css/shCore.css" rel="stylesheet" type="text/css" /> -<link href="css/shCoreEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/shThemeEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/qi4j.css" rel="stylesheet" type="text/css" /> - -<!-- Syntax Highlighter --> - -<script type="text/javascript" src="js/shCore.js"></script> -<script type="text/javascript" src="js/shBrushJava.js"></script> -<script type="text/javascript" src="js/shBrushScala.js"></script> -<script type="text/javascript" src="js/shBrushJScript.js"></script> -<script type="text/javascript" src="js/shBrushBash.js"></script> -<script type="text/javascript" src="js/shBrushPlain.js"></script> -<script type="text/javascript" src="js/shBrushXml.js"></script> -<script type="text/javascript" src="js/shBrushGroovy.js"></script> -<script type="text/javascript" src="js/shBrushPython.js"></script> -<script type="text/javascript" src="js/shBrushRuby.js"></script> -<script type="text/javascript" src="js/shBrushCSharp.js"></script> - -<script type="text/javascript"> - SyntaxHighlighter.defaults['tab-size'] = 4; - SyntaxHighlighter.defaults['gutter'] = false; - SyntaxHighlighter.defaults['toolbar'] = false; - SyntaxHighlighter.all() -</script> - -<!-- JQuery --> - -<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script> - -<!-- Image Scaler --> - -<script type="text/javascript" src="js/imagescaler.js"></script> - -<!-- Table Styler --> - -<script type="text/javascript" src="js/tablestyler.js"></script> - -<!-- Qi4j WebSite Progressive Enhancement --> - -<link href="css/progressive-enhancement.css" rel="stylesheet" type="text/css" /> -<script type="text/javascript" src="js/jquery.scrollTo-1.4.2.js"></script> -<script type="text/javascript" src="js/progressive-enhancement.js"></script> - -<!-- Analytics --> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-89723617-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Zestâ¢</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"><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"><span xmlns="" href="glossary.html">Glo ssary </span></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"></div><div class="section" title="Glossary "><div class="titlepage"><div><div><h2 class="title"><a id="glossary"></a>Glossary </h2></div></div></div><div class="glossary" title="Glossary"><div class="titlepage"><div><div><h3 class="title"><a id="_glossary"></a>Glossary</h3></div></div></div><p>There are a lot of concepts in Zest⢠which may have different meanings in other contexts. So in true DDD-style -ubiquitous language, we are here listing the definitions of the terms and concepts that are being used.</p><dl><dt> -<a id="def-abstract-mixin"></a>Abstract Mixin -</dt><dd><p>An Abstract Mixin is an implementation of the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> interface, but is an abstract class and has not -implemented all the methods.</p><p>The Zest⢠runtime can use multiple <a class="link" href="glossary.html#def-mixin">Mixins</a> for each <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> interface. It is also possible to let -a <a class="xref" href="glossary.html#def-generic-mixin">Generic Mixin</a> handle the remaining missing methods.</p></dd><dt> -<a id="def-abstract-modifier"></a>Abstract Modifier -</dt><dd><p>Abstract Modifiers are <a class="link" href="glossary.html#def-modifier">Modifiers</a> that do not implement all the methods of the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> -interface.</p><p>This works essentially in the same manner as the <a class="xref" href="glossary.html#def-abstract-mixin">Abstract Mixin</a>. And the methods that are not implemented -will not be part of the <a class="xref" href="glossary.html#def-invocation-stack">Invocation Stack</a> of those methods.</p></dd><dt> -<a id="def-application"></a>Application -</dt><dd><p>Application is the top level concept handled by the Zest⢠runtime instance. It holds the information about the -<a class="link" href="glossary.html#def-layer">Layers</a> in the application architecture. See <a class="xref" href="glossary.html#def-structure">Structure</a> for more information.</p><p>There is one and only one Application instance per Zest⢠Runtime instance.</p></dd><dt> -<a id="def-application-mode"></a>Application Mode -</dt><dd><p>During the Bootstrap phase an <a class="xref" href="glossary.html#def-application">Application</a> is given a Mode that can be <span class="emphasis"><em>test</em></span>, <span class="emphasis"><em>development</em></span>, <span class="emphasis"><em>staging</em></span> or -<span class="emphasis"><em>production</em></span>.</p><p>See <a class="xref" href="core-bootstrap-assembly.html" title="Core Bootstrap">Assembly</a>.</p></dd><dt> -<a id="def-association"></a>Association -</dt><dd><p>An Association is a reference to an <a class="xref" href="glossary.html#def-entitycomposite">Entity Composite</a>.</p><p>References to <a class="link" href="glossary.html#def-entitycomposite">Entities</a> must be maintained in <a class="link" href="glossary.html#def-association">Associations</a>. It is illegal to -define a <a class="xref" href="glossary.html#def-property">Property</a> with an <a class="xref" href="glossary.html#def-entitycomposite">Entity Composite</a> as its type.</p></dd><dt> -<a id="def-composite"></a>Composite -</dt><dd><p>A Composite is an instance of a <a class="xref" href="glossary.html#def-composite-type">Composite Type</a>.</p><p>However, we often speak of Composites when we actually mean CompositeType, similarly as we often speak of objects -when we really are talking of classes in OOP.</p></dd><dt> -<a id="def-composite-context"></a>Composite Context -</dt><dd><p>A Composite Context is a mechanism to separate the state of a <a class="xref" href="glossary.html#def-transientcomposite">TransientComposite</a> across two or more threads. -If a thread modifies a value, only that thread will see the changes, another thread will have its values protected -by the thread boundaries. Use-cases for this include user credentials on which behalf the thread is executing.</p></dd><dt> -<a id="def-composite-metatype"></a>Composite Meta Type -</dt><dd><p>There are 5 Composite Meta Types defined in Zest, which each share the composition features but have distinct -semantic differences.</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -<a class="xref" href="glossary.html#def-entitycomposite">Entity Composite</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-valuecomposite">ValueComposite</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-servicecomposite">Service composite</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-configurationcomposite">Configuration Composite</a> (subtype of EntityComposite) -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-transientcomposite">TransientComposite</a> -</li></ul></div></dd><dt> -<a id="def-composite-type"></a>Composite Type -</dt><dd><p>CompositeType is the Java interface that declares the composition, from which <a class="xref" href="glossary.html#def-composite">Composite</a> instances can be -created.</p><p>Composite Type interfaces must be a sub-type of one of the 5 <a class="link" href="glossary.html#def-composite-metatype">Composite Meta Types</a> defined in -Zest⢠otherwise it can not be instantiated.</p></dd><dt> -<a id="def-concern"></a>Concern -</dt><dd><p>A concern is a stateless <a class="xref" href="glossary.html#def-fragment">Fragment</a>, shared between invocations, that acts as an interceptor of the call to -the <a class="xref" href="glossary.html#def-mixin">Mixin</a>. The Concern is a Java class, that either implements the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> it can be used on, or -java.lang.reflect.InvocationHandler which allows it to be used on any arbitrary <a class="xref" href="glossary.html#def-mixin-type">MixinType</a>.</p><p>Concerns have many purposes, but they are not intended to produce side effects (see <a class="xref" href="glossary.html#def-sideeffect">SideEffect</a>). Use-cases -involves;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -Transaction handling. -</li><li class="listitem"> -Call Tracing. -</li><li class="listitem"> -User security. -</li></ul></div><p>Concerns are established by the use of the @Concerns annotation on composites.</p><p>Concern is one of the 3 kinds of <a class="link" href="glossary.html#def-modifier">Modifiers</a> defined in Zest.</p></dd><dt> -<a id="def-configurationcomposite"></a>Configuration Composite -</dt><dd><p>Service Composites can have configuration associated to it and that is done via -<a class="link" href="glossary.html#def-configurationcomposite">Configuration Composites</a>, which are a subtype of <a class="xref" href="glossary.html#def-entitycomposite">Entity Composite</a>, as they are -stored permanently in configured Entity Stores. Configuration Composites are also initialized automatically from -properties files first time. Note that on consequent start-ups the properties file is not read, as the configuration is -read from the EntityStore.</p><p>ConfigurationComposite is one of the 5 <a class="link" href="glossary.html#def-composite-metatype">Composite Meta Types</a> defined in Zest.</p><p>See <a class="xref" href="howto-configure-service.html" title="Configure a Service">Configure a Service</a> to learn how to use Configuration Composites.</p></dd><dt> -<a id="def-constraint"></a>Constraint -</dt><dd><p>Constraints are a kind of validators, which are consulted prior to invoking the method call. Zest⢠currently only -supports ParameterConstraints on methods and value constraints on <a class="link" href="glossary.html#def-property">Properties</a>, but future versions will -include Constraint types for checking complete method calls and return values.</p><p>See <a class="xref" href="core-api.html#core-api-constraint" title="Constraint">Constraint</a> for better understanding of its details.</p><p>See <a class="xref" href="library-constraints.html" title="Constraints">Constraints Library</a> for ready to use Constraints.</p><p>See <a class="xref" href="howto-create-constraint.html" title="Create a Constraint">Create a Constraint</a> to learn how to write your own Constraints.</p><p>Constraint is one of the 3 kinds of <a class="link" href="glossary.html#def-modifier">Modifiers</a> defined in Zest.</p></dd><dt> -<a id="def-entitycomposite"></a>Entity Composite -</dt><dd><p>An Entity Composite, or just Entity for short, is a persisted composite with an <a class="xref" href="glossary.html#def-identity">Identity</a>. An entity only has -scope within an <a class="xref" href="glossary.html#def-unitofwork">UnitOfWork</a> and is therefor inherently thread-safe.</p><p>EntityComposite is one of the 5 <a class="link" href="glossary.html#def-composite-metatype">Composite Meta Types</a> defined in Zest.</p></dd><dt> -<a id="def-fragment"></a>Fragment -</dt><dd><p>A part of the implementation of a <a class="xref" href="glossary.html#def-composite">Composite</a>. There are 4 fragment types:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -<a class="xref" href="glossary.html#def-mixin">Mixin</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-concern">Concern</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-constraint">Constraint</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-sideeffect">SideEffect</a>. -</li></ul></div></dd><dt> -<a id="def-generic-fragment"></a>Generic Fragment -</dt><dd><p>Generic Fragments are <a class="link" href="glossary.html#def-fragment">Fragments</a> that implements java.lang.reflect.InvocationHandler and potentially -capable of being used for all <a class="link" href="glossary.html#def-mixin-type">MixinTypes</a>. This is the direct opposite of the Typed Fragments, which -implements the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> interface.</p></dd><dt> -<a id="def-generic-mixin"></a>Generic Mixin -</dt><dd><p>A Generic Mixin implements the java.lang.reflect.InvocationHandler. The invoke() method will be called for all -<a class="xref" href="glossary.html#def-mixin-type">MixinType</a> methods that the <a class="xref" href="glossary.html#def-mixin">Mixin</a> has been matched with, through the matching rules.</p><p>It is potentially possible that the Generic Mixin also implements the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> interface. In that case, the -concrete methods will be called, but if the <a class="xref" href="glossary.html#def-mixin">Mixin</a> is also an abstract class, then the invoke() method will be -called for the methods that has been match but are not present.</p></dd><dt> -<a id="def-identity"></a>Identity -</dt><dd><p>TODO</p><p>This term has no definition yet. Learn how to contribute in <a class="xref" href="community-docs.html" title="Writing Zest⢠Documentation">Writing Documentation</a>.</p></dd><dt> -<a id="def-invocation-stack"></a>Invocation Stack -</dt><dd><p>For each method, Qi4J will create and re-use an Invocation Stack. It will be built with the sequence of -<a class="link" href="glossary.html#def-modifier">Modifiers</a> and an end-point that will link into the stateful <a class="xref" href="glossary.html#def-mixin">Mixin</a>.</p><p>It is important to recognize that, for memory footprint reasons, Invocation Stacks are shared across -<a class="link" href="glossary.html#def-composite">Composites</a> of the same <a class="xref" href="glossary.html#def-composite-type">Composite Type</a>. They are however thread-safe, in that Zest⢠will never -bind the same Invocation Stack to more than one <a class="xref" href="glossary.html#def-composite">Composite</a> instance during a method call, but that between method -invocations the <a class="link" href="glossary.html#def-modifier">Modifiers</a> in the Invocation Stack can not assume that it is bound to the same -<a class="xref" href="glossary.html#def-composite">Composite</a> instance. Therefor, <a class="link" href="glossary.html#def-modifier">Modifiers</a> are not expected to keep state between method -invocations, and when it needs to do that, then it should reference a <a class="xref" href="glossary.html#def-mixin">Mixin</a> via the @This annotation. Zest⢠will -during the binding of the Invocation Stack to the <a class="xref" href="glossary.html#def-composite">Composite</a>, also ensure that all referenced -<a class="link" href="glossary.html#def-mixin">Mixins</a> are correctly injected in the Invocation Stack.</p></dd><dt> -<a id="def-layer"></a>Layer -</dt><dd><p>Zest⢠promotes a Layered application design, where Layers can only access lower Layers and not higher Layers or Layers at -the same level.</p></dd><dt> -<a id="def-manyassociation"></a>ManyAssociation -</dt><dd><p>TODO</p><p>This term has no definition yet. Learn how to contribute in <a class="xref" href="community-docs.html" title="Writing Zest⢠Documentation">Writing Documentation</a>.</p></dd><dt> -<a id="def-metainfo"></a>MetaInfo -</dt><dd><p>TODO</p><p>This term has no definition yet. Learn how to contribute in <a class="xref" href="community-docs.html" title="Writing Zest⢠Documentation">Writing Documentation</a>.</p></dd><dt> -<a id="def-mixin"></a>Mixin -</dt><dd><p>The Mixin is the instance providing the stateful representation of the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a>. This can either be a class -implementing the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> or a java.lang.reflect.InvocationHandler that is generic to handle any or a subset -of <a class="xref" href="glossary.html#def-mixin-type">MixinType</a>.</p></dd><dt> -<a id="def-mixin-type"></a>MixinType -</dt><dd><p>The MixinType is the static type of a part of the <a class="xref" href="glossary.html#def-composite">Composite</a>. The MixinType is an interface that defines the methods -to be exposed in the <a class="xref" href="glossary.html#def-composite">Composite</a>.</p></dd><dt> -<a id="def-modifier"></a>Modifier -</dt><dd><p>Modifiers are stateless interceptors of method calls, that forms an <a class="xref" href="glossary.html#def-invocation-stack">Invocation Stack</a>. The top of the -<a class="xref" href="glossary.html#def-invocation-stack">Invocation Stack</a> is linked to the <a class="xref" href="glossary.html#def-composite">Composite</a> invocation handler and the bottom of the -<a class="xref" href="glossary.html#def-invocation-stack">Invocation Stack</a> is linked to the <a class="link" href="glossary.html#def-mixin">Mixins</a>. <a class="link" href="glossary.html#def-invocation-stack">Invocation Stacks</a> are shared, -so Modifiers must assume that the member fields will only be valid within a single method invocation.</p><p>There are 3 kinds of Modifiers;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -<a class="xref" href="glossary.html#def-constraint">Constraint</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-concern">Concern</a> -</li><li class="listitem"> -<a class="xref" href="glossary.html#def-sideeffect">SideEffect</a> -</li></ul></div></dd><dt> -<a id="def-module"></a>Module -</dt><dd><p>Modules defines the scope of the <a class="link" href="glossary.html#def-composite">Composites</a>. Modules are wired with Assemblies, and can expose -<a class="link" href="glossary.html#def-composite">Composites</a> as visible. Non-visible <a class="link" href="glossary.html#def-composite">Composites</a> are not reachable from other Modules.</p></dd><dt> -<a id="def-namedassociation"></a>NamedAssociation -</dt><dd><p>TODO</p><p>This term has no definition yet. Learn how to contribute in <a class="xref" href="community-docs.html" title="Writing Zest⢠Documentation">Writing Documentation</a>.</p></dd><dt> -<a id="def-private-mixin"></a>Private Mixin -</dt><dd><p>When a @This injection refers to a <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> which is not extended by the <a class="xref" href="glossary.html#def-composite-type">Composite Type</a> the former -becomes a private <a class="xref" href="glossary.html#def-mixin-type">MixinType</a>.</p></dd><dt> -<a id="def-property"></a>Property -</dt><dd><p>TODO</p><p>This term has no definition yet. Learn how to contribute in <a class="xref" href="community-docs.html" title="Writing Zest⢠Documentation">Writing Documentation</a>.</p><p>See the <a class="xref" href="howto-leverage-properties.html" title="Leverage Properties">Leverage Properties</a> how-to.</p></dd><dt> -<a id="def-servicecomposite"></a>Service Composite -</dt><dd><p>Service Composite is a subtype of <a class="xref" href="glossary.html#def-composite">Composite</a>, and has a range of features built into it.</p><p>ServiceComposite is one of the 5 <a class="link" href="glossary.html#def-composite-metatype">Composite Meta Types</a> defined in Zest.</p><p>See the <a class="link" href="core-api.html#core-api-service" title="Service Composite">Service Composite chapter</a>.</p></dd><dt> -<a id="def-sideeffect"></a>SideEffect -</dt><dd><p>A side effect is a stateless <a class="xref" href="glossary.html#def-fragment">Fragment</a>, shared between invocations, that acts as an interceptor of the call to -the <a class="xref" href="glossary.html#def-mixin">Mixin</a>. The SideEffect is a Java class, that either implements the <a class="xref" href="glossary.html#def-mixin-type">MixinType</a> it can be used on, or -java.lang.reflect.InvocationHandler which allows it to be used on any arbitrary <a class="xref" href="glossary.html#def-mixin-type">MixinType</a>.</p><p>SideEffects are executed after the completion of the method invocation and therefore cannot change parameters nor -eventually returned object.</p><p>SideEffects have many purposes. Use-cases -involves;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -Sending emails. -</li><li class="listitem"> -Call Tracing. -</li><li class="listitem"> -Domain side effects modeling. -</li></ul></div><p>SideEffects are established by the use of the @SideEffects annotation on composites.</p><p>SideEffect is one of the 3 kinds of <a class="link" href="glossary.html#def-modifier">Modifiers</a> defined in Zest.</p></dd><dt> -<a id="def-structure"></a>Structure -</dt><dd><p>Zest⢠promotes a conventional view of application structure, that computer science has been using for decades.</p><p>The definition is as follows;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -One <a class="xref" href="glossary.html#def-application">Application</a> per Zest⢠runtime instance. -</li><li class="listitem"> -One or more <a class="link" href="glossary.html#def-layer">Layers</a> per <a class="xref" href="glossary.html#def-application">Application</a>. -</li><li class="listitem"> -Zero, one or more <a class="link" href="glossary.html#def-module">Modules</a> per <a class="xref" href="glossary.html#def-layer">Layer</a>. -</li><li class="listitem"> -Zero, one or more Assemblies per <a class="xref" href="glossary.html#def-module">Module</a>. -</li></ul></div><p>The principle of this Structure is to assist the programmer to create well modularized applications, that are easily -extended and maintained. Zest⢠will restrict access between <a class="link" href="glossary.html#def-module">Modules</a>, so that code can only reach -<a class="link" href="glossary.html#def-composite">Composites</a> and Objects in <a class="link" href="glossary.html#def-module">Modules</a> (including itself) of the same or lower -<a class="link" href="glossary.html#def-layer">Layers</a>.</p><p>Each <a class="xref" href="glossary.html#def-layer">Layer</a> has to be declared which lower <a class="link" href="glossary.html#def-layer">Layer(s)</a> it uses, and it is not allowed that a lower -<a class="xref" href="glossary.html#def-layer">Layer</a> uses a higher <a class="xref" href="glossary.html#def-layer">Layer</a>, i.e. cyclic references.</p></dd><dt> -<a id="def-transientcomposite"></a>TransientComposite -</dt><dd><p>TransientComposite is a <a class="xref" href="glossary.html#def-composite-metatype">Composite Meta Type</a> for all other cases. The main characteristics are;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -It can not be serialized nor persisted. -</li><li class="listitem"> -hashcode/equals are not treated specially and will be delegated to <a class="link" href="glossary.html#def-fragment">Fragment(s)</a> implementing those methods. -</li><li class="listitem"> -It can not be used as a <a class="xref" href="glossary.html#def-property">Property</a> type. -</li></ul></div></dd><dt> -<a id="def-unitofwork"></a>UnitOfWork -</dt><dd><p>TODO</p><p>This term has no definition yet. Learn how to contribute in <a class="xref" href="community-docs.html" title="Writing Zest⢠Documentation">Writing Documentation</a>.</p></dd><dt> -<a id="def-valuecomposite"></a>ValueComposite -</dt><dd><p>Usage of value objects is one of the most ignored and best return-on-investment the programmer can do. Values are -immutable and can be compared by value instead of memory reference. Concurrency is suddenly not an issue, since either -the value exists or it doesnât, no need for synchronization. Values are typically very easy to test and very robust to -refactoring.</p><p>Zest⢠defines values as a primary meta type through the ValueComposite, as we think the benefits of values are great. -The ValueComposite is very light-weight compared to the <a class="xref" href="glossary.html#def-entitycomposite">Entity Composite</a>, and its value can still be persisted as -part of an <a class="xref" href="glossary.html#def-entitycomposite">Entity Composite</a> via a <a class="xref" href="glossary.html#def-property">Property</a>.</p><p>The characteristics of a ValueComposite compared to other <a class="link" href="glossary.html#def-composite-metatype">Composite Meta Types</a> are;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -It is Immutable. -</li><li class="listitem"> -Its equals/hashCode works on the values of the ValueComposite. -</li><li class="listitem"> -Can be used as <a class="xref" href="glossary.html#def-property">Property</a> types, but will not be indexed and searchable. -</li></ul></div></dd></dl></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 Zest, Zest, Apache, the Apache feather logo, and the Apache Zest project logo are trademarks of The Apache Software Foundation.<br /> - All other marks mentioned may be trademarks or registered trademarks of their respective owners. - </small></p></div></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ea4d77b0/content/java/latest/howto-assemble-application.html ---------------------------------------------------------------------- diff --git a/content/java/latest/howto-assemble-application.html b/content/java/latest/howto-assemble-application.html deleted file mode 100644 index 5754602..0000000 --- a/content/java/latest/howto-assemble-application.html +++ /dev/null @@ -1,228 +0,0 @@ -<?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>Assemble an Application</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-depend-on-zest.html" title="Depend on Zest⢠in your build" /><link rel="next" href="tut-composites.html" title="Transient Composites Tutorial" /> - - -<!-- favicon --> - -<link rel="shortcut icon" href="http://qi4j.org/favicon.ico" type="image/vnd.microsoft.icon" /> -<link rel="icon" href="http://qi4j.org/favicon.ico" type="image/x-icon" /> - -<!-- style --> - -<link href="css/shCore.css" rel="stylesheet" type="text/css" /> -<link href="css/shCoreEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/shThemeEclipse.css" rel="stylesheet" type="text/css" /> -<link href="css/qi4j.css" rel="stylesheet" type="text/css" /> - -<!-- Syntax Highlighter --> - -<script type="text/javascript" src="js/shCore.js"></script> -<script type="text/javascript" src="js/shBrushJava.js"></script> -<script type="text/javascript" src="js/shBrushScala.js"></script> -<script type="text/javascript" src="js/shBrushJScript.js"></script> -<script type="text/javascript" src="js/shBrushBash.js"></script> -<script type="text/javascript" src="js/shBrushPlain.js"></script> -<script type="text/javascript" src="js/shBrushXml.js"></script> -<script type="text/javascript" src="js/shBrushGroovy.js"></script> -<script type="text/javascript" src="js/shBrushPython.js"></script> -<script type="text/javascript" src="js/shBrushRuby.js"></script> -<script type="text/javascript" src="js/shBrushCSharp.js"></script> - -<script type="text/javascript"> - SyntaxHighlighter.defaults['tab-size'] = 4; - SyntaxHighlighter.defaults['gutter'] = false; - SyntaxHighlighter.defaults['toolbar'] = false; - SyntaxHighlighter.all() -</script> - -<!-- JQuery --> - -<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script> - -<!-- Image Scaler --> - -<script type="text/javascript" src="js/imagescaler.js"></script> - -<!-- Table Styler --> - -<script type="text/javascript" src="js/tablestyler.js"></script> - -<!-- Qi4j WebSite Progressive Enhancement --> - -<link href="css/progressive-enhancement.css" rel="stylesheet" type="text/css" /> -<script type="text/javascript" src="js/jquery.scrollTo-1.4.2.js"></script> -<script type="text/javascript" src="js/progressive-enhancement.js"></script> - -<!-- Analytics --> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-89723617-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Zestâ¢</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><dt><span class="section"><a href="tutorials.html#_overview">Overview</a></span></dt><dt><span class="section"><a href="two-minutes-intro.html">Zest⢠in 2 minutes</a></span></dt><dt><span class="section"><a href="ten-minutes-intro.html">Zest⢠in 10 minutes</a></span></dt><dt><span class="section"><a href="thirty-minutes-intro.html">Zest⢠in 30 minutes</a></span></dt><dt><span class="section"><a href="howto-depend-on-zest.html">Depend on Zest⢠in your build</a></span></dt><dt><span class="section"><span xmlns="" href="howto-assemble-application.html">Assemble an Application</span></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="howto-use-io.html">Use I/O API</a></span></dt><dt><span class="section"><a href="build-system.html">Zest⢠Build System</a></span></dt><dt><span class="section"><a href="community-docs.htm l">Writing Zest⢠Documentation</a></span></dt><dt><span class="section"><a href="releasing-apache.html">Releasing Zestâ¢</a></span></dt></dl></div></div><div class="section" title="Assemble an Application"><div class="titlepage"><div><div><h3 class="title"><a id="howto-assemble-application"></a>Assemble an Application</h3></div></div></div><p>We receive a lot of questions about how applications should be assembled, and since we donât have any XML to "fill in" -and everything is to be done programmatically, it escalates the need to provide more hands-on explanation of how this is -done.</p><p>If you want to reproduce whatâs explained in this tutorial, remember to depend on the Core Bootstrap artifact:</p><div class="table"><a id="idm371060324944"></a><p class="title"><strong>Table 4. 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.qi4j.core</p></td><td align="left" valign="top"><p>org.qi4j.core.bootstrap</p></td><td align="left" valign="top"><p>2.1</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-zest.html" title="Depend on Zest⢠in your build">Depend on Zest⢠in your build</a> tutorial for details.</p><div clas s="section" title="Basics"><div class="titlepage"><div><div><h4 class="title"><a id="_basics"></a>Basics</h4></div></div></div><p>First letâs recap the structural requirements of Zest;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -There is one and only one Application instance per Zest⢠Runtime. -</li><li class="listitem"> -Every Application must contain one or more Layers. -</li><li class="listitem"> -All Composites must be declared in one or more Modules. -</li><li class="listitem"> -Each Module belong to a Layer. -</li><li class="listitem"> -Layers are ordered in hierarchies, from simple to complex. -</li><li class="listitem"> -Access to Composites are limited by visibility rules. -</li></ul></div><p>Ok, that was quite a handful. Letâs look at them one by one.</p></div><div class="section" title="Application"><div class="titlepage"><div><div><h4 class="title"><a id="_application"></a>Application</h4></div></div></div><p>The first one means that for each Zest⢠Runtime you start, there will be exactly one application. As far as we know, Zest -is fully isolated, meaning there are no static members being populated and such.</p></div><div class="section" title="Layers"><div class="titlepage"><div><div><h4 class="title"><a id="_layers"></a>Layers</h4></div></div></div><p>Layers are the super-structures of an application. We have been talking about them for decades, drawn them on paper and -whiteboards (or even black boards for those old enough), and sometimes organized the codebases along such boundaries. -But, there has been little effort to enforce the Layer mechanism in code, although it is an extremely powerful -construct. First of all it implies directional dependency and a high degree of order, spagetti code is reduced if -successfully implemented. For Zest, it means that we can restrict access to Composite and Object declarations, so that -higher layers can not reach them incidentally. You can enforce architecture to a high degree. You can require all -creation of composites to go through an exposed Factory, which doesnât require the Composite to be public. And so on. -Layers have hierarchy, i.e. one layer is top of one or more layers, and is below one or more layers, except for the -layers at the top and bottom. You could have disjoint layers, which canât access each other, meaning a couple of layers -that are both the top and bottom.</p></div><div class="section" title="Modules"><div class="titlepage"><div><div><h4 class="title"><a id="_modules"></a>Modules</h4></div></div></div><p>The Module concept has also been around forever. And in Zest⢠we also makes the Modules explicit. Each Module belong to a -Layer, and for each Module you declare the Composite and Object types for that Module, together with a Visibility rule, -one of; application, layer, module.</p></div><div class="section" title="Visibility"><div class="titlepage"><div><div><h4 class="title"><a id="_visibility"></a>Visibility</h4></div></div></div><p>The Visibility rules are perhaps the most powerful aspect of the above. Visibility is a mechanism that kicks in whenever -a Composite type need to be looked up. It defines both the scoping rules of the client as well as the provider. A lookup -is either a direct reference, such as</p><pre class="programlisting brush: java">UnitOfWork unitOfWork = module.currentUnitOfWork(); -PersonEntity person = unitOfWork.newEntity( PersonEntity.class ); -</pre><p>or an indirect lookup, such as</p><pre class="programlisting brush: java">UnitOfWork unitOfWork = module.currentUnitOfWork(); -Person person = unitOfWork.newEntity( Person.class ); -</pre><p>where it will first map the Person to a reachable PersonEntity. -The algorithm is as follows;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> -Look in the callers Module, if there is one and only one Composite type matching, use it. If there are two or more - Composite types matching, then throw an ambiguity exception. If there are zero, proceed to the next step. -</li><li class="listitem"> -Look in all Modules in the callers Layer. If there is one and only one Composite type that matches and is either - Visibility.layer, then use it. If there are two or more Composite types matching, then throw an ambiguity - exception. If there are zero, proceed to the next step. -</li><li class="listitem"> -Look in all Layers that callerâs Layer uses. If there is one and only one Composite type that matches and is - either Visibility.application, then use it. If there are two or more Composite types matching, then throw an - ambiguity exception. If there are zero, proceed to the next step. -</li><li class="listitem"> -Throw a CompositeNotFoundException. -</li></ul></div><p>The underlying principle comes down to Rickardâs "Speaker Analogy", you can hear him (and not the other speakers at the -conference) because you are in the same room. I.e. if something is really close by, it is very likely that this is what -we want to use, and then the search expands outwards.</p></div><div class="section" title="Combining The Above"><div class="titlepage"><div><div><h4 class="title"><a id="_combining_the_above"></a>Combining The Above</h4></div></div></div><p>Ok, that was a whole lot of theory and probably take you more than one read-through to fully get into your veins (slow -acting addiction). -How to structure your code is beyond the scope of this section. If you are an experienced designer, you will have done -that before, and you may have started out with good intentions at times only to find yourself in a spaghetti swamp -later, or perhaps in the also famous "Clear as Clay" or "Ball (bowl?) of Mud". Either way, you need to draw on your -experience and come up with good structure that Zest⢠lets you enforce.</p><p>So, for the sake of education, we are going to look at an application that consists of many layers, each with a few -modules. See picture below.</p><p>Image of Example of Layers</p><p>Figure 1. Example of Layers</p><p>So, lets see how we code up this bit in the actual code first.</p><pre class="programlisting brush: java">public class Main -{ - private static Energy4Java qi4j; - private static Application application; - - public static void main( String[] args ) - throws Exception - { - // Bootstrap Zest Runtime - // Create a Zest Runtime - qi4j = new Energy4Java(); - - // Instantiate the Application Model. - application = qi4j.newApplication( new ApplicationAssembler() - { - public ApplicationAssembly assemble( - ApplicationAssemblyFactory factory ) - throws AssemblyException - { - ApplicationAssembly assembly = - factory.newApplicationAssembly(); - LayerAssembly runtime = createRuntimeLayer( assembly ); - LayerAssembly designer = createDesignerLayer( assembly ); - LayerAssembly domain = createDomainLayer( assembly ); - LayerAssembly messaging= createMessagingLayer( assembly ); - LayerAssembly persistence = createPersistenceLayer( assembly ); - - // declare structure between layers - domain.uses( messaging ); - domain.uses( persistence ); - designer.uses( persistence ); - designer.uses( domain ); - runtime.uses( domain ); - - return assembly; - } - } ); - - // We need to handle shutdown. - installShutdownHook(); - - // Activate the Application Runtime. - application.activate(); - } - - [...snip...] - -} - -</pre><p>The above is the basic setup on how to structure a real-world applicaton, unless you intend to mess with the -implementations of various Zest⢠systems (yes there are hooks for that too), but that is definitely beyond the scope of -this tutorial.</p><p>Now, the createXyzLayer() methods were excluded to keep the sample crisp and easy to follow. Letâs take a look at what -it could be to create the Domain Layer.</p><pre class="programlisting brush: java">private static LayerAssembly createDomainLayer( ApplicationAssembly app ) -{ - LayerAssembly layer = app.layer("domain-layer"); - createAccountModule( layer ); - createInventoryModule( layer ); - createReceivablesModule( layer ); - createPayablesModule( layer ); - return layer; -} - -</pre><p>We just call the layerAssembly() method, which will return either an existing Layer with that name or create a new one -if one doesnât already exist, and then delegate to methods for creating the ModuleAssembly instances. In those method -we need to declare which Composites, Entities, Services and Objects that is in each Module.</p><pre class="programlisting brush: java">private static void createAccountModule( LayerAssembly layer ) -{ - ModuleAssembly module = layer.module("account-module"); - - module.entities(AccountEntity.class, EntryEntity.class); - - module.addServices( - AccountRepositoryService.class, - AccountFactoryService.class, - EntryFactoryService.class, - EntryRepositoryService.class - ).visibleIn( Visibility.layer ); -} - -</pre><p>We also need to handle the shutdown case, so in the main() method we have a installShutdownHook() method call. It is -actually very, very simple;</p><pre class="programlisting brush: java">private static void installShutdownHook() -{ - Runtime.getRuntime().addShutdownHook( new Thread( new Runnable() - { - public void run() - { - if( application != null ) - { - try - { - application.passivate(); - } - catch( Exception e ) - { - e.printStackTrace(); - } - } - } - }) ); -} -</pre><p>This concludes this tutorial. We have looked how to get the initial Zest⢠runtime going, how to declare the assembly -for application model creation and finally the activation of the model itself.</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> - Apache Zest, Zest, Apache, the Apache feather logo, and the Apache Zest project logo are trademarks of The Apache Software Foundation.<br /> - All other marks mentioned may be trademarks or registered trademarks of their respective owners. - </small></p></div></body></html> \ No newline at end of file
