http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/library-rest-common.html
----------------------------------------------------------------------
diff --git a/content/java/2017/library-rest-common.html 
b/content/java/2017/library-rest-common.html
new file mode 100644
index 0000000..1756197
--- /dev/null
+++ b/content/java/2017/library-rest-common.html
@@ -0,0 +1,103 @@
+<?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>ReST Common</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="libraries.html" 
title="Libraries" /><link rel="prev" href="library-rest-client-primer.html" 
title="ReST - HATEOAS Primer" /><link rel="next" 
href="library-rest-server.html" title="ReST Server" />
+
+
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="../../favicon.ico">
+
+    <title>Starter Template for Bootstrap</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="css/polygene-ng.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+
+<!-- favicon -->
+
+<link rel="shortcut icon" href="http://polygene.apache.org/favicon.ico"; 
type="image/vnd.microsoft.icon" />
+<link rel="icon" href="http://polygene.apache.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/polygene.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>
+
+<!-- Apache Polygene 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-62007352-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><nav xmlns="" xmlns:exsl="http://exslt.org/common"; class="navbar 
navbar-inverse navbar-fixed-top"><div class="container"><div 
class="navbar-header"><a class="navbar-brand" href="#">Apache<br />Polygene
+          </a></div><div id="navbar" class="collapse navbar-collapse"><span 
class="nav navbar-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><a 
href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a 
href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a 
href="samples.html">Samples</a></span></dt><dt><span class="section"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" 
href="libraries.html">Libraries</span></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></span></div></div></nav><div xmlns="" 
xmlns:exsl="http://exslt
 .org/common" class="sidenav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="libraries.html#_overview_5">Overview</a></span></dt><dt><span 
class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span 
class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span 
class="section"><a href="library-circuitbreaker.html">Circuit 
Breaker</a></span></dt><dt><span class="section"><a 
href="library-constraints.html">Constraints</a></span></dt><dt><span 
class="section"><a 
href="library-fileconfig.html">FileConfig</a></span></dt><dt><span 
class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span 
class="section"><a href="library-invocation-cache.html">Invocation 
Cache</a></span></dt><dt><span class="section"><a 
href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a 
href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a 
href="library-logging.html">Logging<
 /a></span></dt><dt><span class="section"><a 
href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a 
href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a 
href="library-rest-client.html">ReST Client</a></span></dt><dt><span 
class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS 
Primer</a></span></dt><dt><span class="section"><span xmlns="" 
href="library-rest-common.html">ReST Common</span></span></dt><dt><span 
class="section"><a href="library-rest-server.html">ReST 
Server</a></span></dt><dt><span class="section"><a 
href="library-restlet.html">Restlet Support</a></span></dt><dt><span 
class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span 
class="section"><a href="library-shiro.html">Shiro 
Security</a></span></dt><dt><span class="section"><a 
href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span 
class="section"><a href="library-spring.html">Spring 
Integration</a></span></dt><dt><span class=
 "section"><a href="library-sql.html">SQL</a></span></dt><dt><span 
class="section"><a href="library-uid.html">UID</a></span></dt><dt><span 
class="section"><a 
href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="library-rest-common"></a>ReST Common</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-none">docs</p><p 
class="devstatus-tests-none">tests</p><p>ReST Common Library</p><div 
class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>This Library has no documentation yet. Learn how to 
contribute in <a class="xref" href="community-docs.html" title="Polygene™ 
Documentation">Writing Documentation</a>.</p></div><div class="table"><a 
id="idm4977"></a><p class="title"><strong>Table 35. 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.libraries</p></td><td align="left" 
valign="top"><p>org.apache.polygene.library.rest-common</p></td><td 
align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /></div><footer xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="footer"><div class="container"><p 
class="text-muted">Copyright © 2017 The Apache Software Foundation, Licensed 
under the <a href="http://www.apache.org/licenses/"; target="_blank">Apache 
License, Version 2.0</a>.
+          Apache Polygene, Polygene, Apache, the Apache feather logo, and the 
Apache Polygene project logo are
+          trademarks of The Apache Software Foundation.
+          All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.
+        </p></div></footer><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";></script><script
 xmlns="" xmlns:exsl="http://exslt.org/common";>window.jQuery || 
document.write('&lt;script 
src="js/jquery-1.6.4.min.js"&gt;&lt;/script&gt;')</script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"; 
integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
 crossorigin="anonymous"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="bootstrap-3.3.7/js/bootstrap.min.js"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="js/ie10-viewport-bug-workaround.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/library-rest-server.html
----------------------------------------------------------------------
diff --git a/content/java/2017/library-rest-server.html 
b/content/java/2017/library-rest-server.html
new file mode 100644
index 0000000..500cad5
--- /dev/null
+++ b/content/java/2017/library-rest-server.html
@@ -0,0 +1,103 @@
+<?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>ReST Server</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="libraries.html" 
title="Libraries" /><link rel="prev" href="library-rest-common.html" 
title="ReST Common" /><link rel="next" href="library-restlet.html" 
title="Restlet Support" />
+
+
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="../../favicon.ico">
+
+    <title>Starter Template for Bootstrap</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="css/polygene-ng.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+
+<!-- favicon -->
+
+<link rel="shortcut icon" href="http://polygene.apache.org/favicon.ico"; 
type="image/vnd.microsoft.icon" />
+<link rel="icon" href="http://polygene.apache.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/polygene.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>
+
+<!-- Apache Polygene 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-62007352-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><nav xmlns="" xmlns:exsl="http://exslt.org/common"; class="navbar 
navbar-inverse navbar-fixed-top"><div class="container"><div 
class="navbar-header"><a class="navbar-brand" href="#">Apache<br />Polygene
+          </a></div><div id="navbar" class="collapse navbar-collapse"><span 
class="nav navbar-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><a 
href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a 
href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a 
href="samples.html">Samples</a></span></dt><dt><span class="section"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" 
href="libraries.html">Libraries</span></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></span></div></div></nav><div xmlns="" 
xmlns:exsl="http://exslt
 .org/common" class="sidenav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="libraries.html#_overview_5">Overview</a></span></dt><dt><span 
class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span 
class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span 
class="section"><a href="library-circuitbreaker.html">Circuit 
Breaker</a></span></dt><dt><span class="section"><a 
href="library-constraints.html">Constraints</a></span></dt><dt><span 
class="section"><a 
href="library-fileconfig.html">FileConfig</a></span></dt><dt><span 
class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span 
class="section"><a href="library-invocation-cache.html">Invocation 
Cache</a></span></dt><dt><span class="section"><a 
href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a 
href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a 
href="library-logging.html">Logging<
 /a></span></dt><dt><span class="section"><a 
href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a 
href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a 
href="library-rest-client.html">ReST Client</a></span></dt><dt><span 
class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS 
Primer</a></span></dt><dt><span class="section"><a 
href="library-rest-common.html">ReST Common</a></span></dt><dt><span 
class="section"><span xmlns="" href="library-rest-server.html">ReST 
Server</span></span></dt><dt><span class="section"><a 
href="library-restlet.html">Restlet Support</a></span></dt><dt><span 
class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span 
class="section"><a href="library-shiro.html">Shiro 
Security</a></span></dt><dt><span class="section"><a 
href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span 
class="section"><a href="library-spring.html">Spring 
Integration</a></span></dt><dt><span class=
 "section"><a href="library-sql.html">SQL</a></span></dt><dt><span 
class="section"><a href="library-uid.html">UID</a></span></dt><dt><span 
class="section"><a 
href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="library-rest-server"></a>ReST Server</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-none">docs</p><p 
class="devstatus-tests-none">tests</p><p>ReST Server Library</p><div 
class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>This Library has no documentation yet. Learn how to 
contribute in <a class="xref" href="community-docs.html" title="Polygene™ 
Documentation">Writing Documentation</a>.</p></div><div class="table"><a 
id="idm5006"></a><p class="title"><strong>Table 36. 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.libraries</p></td><td align="left" 
valign="top"><p>org.apache.polygene.library.rest-server</p></td><td 
align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /></div><footer xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="footer"><div class="container"><p 
class="text-muted">Copyright © 2017 The Apache Software Foundation, Licensed 
under the <a href="http://www.apache.org/licenses/"; target="_blank">Apache 
License, Version 2.0</a>.
+          Apache Polygene, Polygene, Apache, the Apache feather logo, and the 
Apache Polygene project logo are
+          trademarks of The Apache Software Foundation.
+          All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.
+        </p></div></footer><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";></script><script
 xmlns="" xmlns:exsl="http://exslt.org/common";>window.jQuery || 
document.write('&lt;script 
src="js/jquery-1.6.4.min.js"&gt;&lt;/script&gt;')</script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"; 
integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
 crossorigin="anonymous"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="bootstrap-3.3.7/js/bootstrap.min.js"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="js/ie10-viewport-bug-workaround.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/library-restlet.html
----------------------------------------------------------------------
diff --git a/content/java/2017/library-restlet.html 
b/content/java/2017/library-restlet.html
new file mode 100644
index 0000000..b981c00
--- /dev/null
+++ b/content/java/2017/library-restlet.html
@@ -0,0 +1,115 @@
+<?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>Restlet Support</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="libraries.html" 
title="Libraries" /><link rel="prev" href="library-rest-server.html" 
title="ReST Server" /><link rel="next" href="library-servlet.html" 
title="Servlet" />
+
+
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="../../favicon.ico">
+
+    <title>Starter Template for Bootstrap</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="css/polygene-ng.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+
+<!-- favicon -->
+
+<link rel="shortcut icon" href="http://polygene.apache.org/favicon.ico"; 
type="image/vnd.microsoft.icon" />
+<link rel="icon" href="http://polygene.apache.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/polygene.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>
+
+<!-- Apache Polygene 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-62007352-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><nav xmlns="" xmlns:exsl="http://exslt.org/common"; class="navbar 
navbar-inverse navbar-fixed-top"><div class="container"><div 
class="navbar-header"><a class="navbar-brand" href="#">Apache<br />Polygene
+          </a></div><div id="navbar" class="collapse navbar-collapse"><span 
class="nav navbar-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><a 
href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a 
href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a 
href="samples.html">Samples</a></span></dt><dt><span class="section"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" 
href="libraries.html">Libraries</span></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></span></div></div></nav><div xmlns="" 
xmlns:exsl="http://exslt
 .org/common" class="sidenav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="libraries.html#_overview_5">Overview</a></span></dt><dt><span 
class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span 
class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span 
class="section"><a href="library-circuitbreaker.html">Circuit 
Breaker</a></span></dt><dt><span class="section"><a 
href="library-constraints.html">Constraints</a></span></dt><dt><span 
class="section"><a 
href="library-fileconfig.html">FileConfig</a></span></dt><dt><span 
class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span 
class="section"><a href="library-invocation-cache.html">Invocation 
Cache</a></span></dt><dt><span class="section"><a 
href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a 
href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a 
href="library-logging.html">Logging<
 /a></span></dt><dt><span class="section"><a 
href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a 
href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a 
href="library-rest-client.html">ReST Client</a></span></dt><dt><span 
class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS 
Primer</a></span></dt><dt><span class="section"><a 
href="library-rest-common.html">ReST Common</a></span></dt><dt><span 
class="section"><a href="library-rest-server.html">ReST 
Server</a></span></dt><dt><span class="section"><span xmlns="" 
href="library-restlet.html">Restlet Support</span></span></dt><dt><span 
class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span 
class="section"><a href="library-shiro.html">Shiro 
Security</a></span></dt><dt><span class="section"><a 
href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span 
class="section"><a href="library-spring.html">Spring 
Integration</a></span></dt><dt><span class=
 "section"><a href="library-sql.html">SQL</a></span></dt><dt><span 
class="section"><a href="library-uid.html">UID</a></span></dt><dt><span 
class="section"><a 
href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="library-restlet"></a>Restlet Support</h3></div></div></div><p 
class="remark"><em><span class="comment"></span></em></p><p 
class="devstatus-code-stable">code</p><p 
class="devstatus-docs-brief">docs</p><p 
class="devstatus-tests-none">tests</p><p>The Restlet Support Library has 
support to expose CRUD operations directly
+as well as regular Rest resources.</p><div class="table"><a 
id="idm5032"></a><p class="title"><strong>Table 37. 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.libraries</p></td><td align="left" 
valign="top"><p>org.apache.polygene.library.restlet</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><p>This library leverages <code 
class="literal">restlet.org</code> which has a very neat way to map resources
+to URIs, and flexible ways to be served the requests. This library defines
+all the plumbing needed to set up Restlet, map resources to URIs, convert
+Polygene ValueComposites to resource representations (such as JSON) and
+create a fully HATEOAS environment, with single bookmarkable URI.</p><p>To set 
up the Restlet Connectivity Module, it is recommended to use the provided
+<code class="literal">Assembler</code> for it;</p><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="library-restlet-resource-binding"></a>Resource 
Binding</h4></div></div></div><p>REST defines that all URLs are <span 
class="strong"><strong>resources</strong></span> and that a known, small set of
+operations can be done on those resources.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_crud_repository"></a>CRUD 
Repository</h4></div></div></div><p>This library provides a <code 
class="literal">CrudRepository</code> which simplifies accessing entities
+directly from the Rest module. This is implemented by using the
+<a class="link" href="library-restlet.html#library-restlet-resource-binding" 
title="Resource Binding">Resource Binding</a> above.</p><p>It also requires 
that one or more Crud Modules are defined. These are typically
+either in the domain layer directly, or in the layer above (some call that the
+service layer). There is a RestletCrudModuleAssembler that helps set up such
+module. Typical setup is like this;</p></div></div><footer xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="footer"><div class="container"><p 
class="text-muted">Copyright © 2017 The Apache Software Foundation, Licensed 
under the <a href="http://www.apache.org/licenses/"; target="_blank">Apache 
License, Version 2.0</a>.
+          Apache Polygene, Polygene, Apache, the Apache feather logo, and the 
Apache Polygene project logo are
+          trademarks of The Apache Software Foundation.
+          All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.
+        </p></div></footer><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";></script><script
 xmlns="" xmlns:exsl="http://exslt.org/common";>window.jQuery || 
document.write('&lt;script 
src="js/jquery-1.6.4.min.js"&gt;&lt;/script&gt;')</script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"; 
integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
 crossorigin="anonymous"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="bootstrap-3.3.7/js/bootstrap.min.js"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="js/ie10-viewport-bug-workaround.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/library-servlet.html
----------------------------------------------------------------------
diff --git a/content/java/2017/library-servlet.html 
b/content/java/2017/library-servlet.html
new file mode 100644
index 0000000..208cfd7
--- /dev/null
+++ b/content/java/2017/library-servlet.html
@@ -0,0 +1,134 @@
+<?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>Servlet</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="libraries.html" 
title="Libraries" /><link rel="prev" href="library-restlet.html" title="Restlet 
Support" /><link rel="next" href="library-shiro.html" title="Shiro Security" />
+
+
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="../../favicon.ico">
+
+    <title>Starter Template for Bootstrap</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="css/polygene-ng.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+
+<!-- favicon -->
+
+<link rel="shortcut icon" href="http://polygene.apache.org/favicon.ico"; 
type="image/vnd.microsoft.icon" />
+<link rel="icon" href="http://polygene.apache.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/polygene.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>
+
+<!-- Apache Polygene 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-62007352-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><nav xmlns="" xmlns:exsl="http://exslt.org/common"; class="navbar 
navbar-inverse navbar-fixed-top"><div class="container"><div 
class="navbar-header"><a class="navbar-brand" href="#">Apache<br />Polygene
+          </a></div><div id="navbar" class="collapse navbar-collapse"><span 
class="nav navbar-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><a 
href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a 
href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a 
href="samples.html">Samples</a></span></dt><dt><span class="section"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" 
href="libraries.html">Libraries</span></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></span></div></div></nav><div xmlns="" 
xmlns:exsl="http://exslt
 .org/common" class="sidenav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="libraries.html#_overview_5">Overview</a></span></dt><dt><span 
class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span 
class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span 
class="section"><a href="library-circuitbreaker.html">Circuit 
Breaker</a></span></dt><dt><span class="section"><a 
href="library-constraints.html">Constraints</a></span></dt><dt><span 
class="section"><a 
href="library-fileconfig.html">FileConfig</a></span></dt><dt><span 
class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span 
class="section"><a href="library-invocation-cache.html">Invocation 
Cache</a></span></dt><dt><span class="section"><a 
href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a 
href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a 
href="library-logging.html">Logging<
 /a></span></dt><dt><span class="section"><a 
href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a 
href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a 
href="library-rest-client.html">ReST Client</a></span></dt><dt><span 
class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS 
Primer</a></span></dt><dt><span class="section"><a 
href="library-rest-common.html">ReST Common</a></span></dt><dt><span 
class="section"><a href="library-rest-server.html">ReST 
Server</a></span></dt><dt><span class="section"><a 
href="library-restlet.html">Restlet Support</a></span></dt><dt><span 
class="section"><span xmlns="" 
href="library-servlet.html">Servlet</span></span></dt><dt><span 
class="section"><a href="library-shiro.html">Shiro 
Security</a></span></dt><dt><span class="section"><a 
href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span 
class="section"><a href="library-spring.html">Spring 
Integration</a></span></dt><dt><span class=
 "section"><a href="library-sql.html">SQL</a></span></dt><dt><span 
class="section"><a href="library-uid.html">UID</a></span></dt><dt><span 
class="section"><a 
href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="library-servlet"></a>Servlet</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-good">tests</p><p>This library provide the necessary 
boilerplate code to bootstrap a Polygene™ Application in a Servlet container 
plus some
+facilities. It aims at a very simple need and is provided as an example 
integration.</p><p>If instead you want to run a servlet container inside a 
Polygene™ Application, see <a class="xref" href="library-http.html" 
title="HTTP"> HTTP Library</a>.</p><div class="table"><a id="idm5074"></a><p 
class="title"><strong>Table 38. 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.libraries</p></td><td align="left" 
valign="top"><p>org.apache.polygene.library.servlet</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_app
 lication_bootstrap"></a>Application Bootstrap</h4></div></div></div><p>Extends 
<code class="literal">AbstractPolygeneServletBootstrap</code> to easily bind a 
Polygene™ <code class="literal">Application</code> activation/passivation to 
your webapp
+lifecycle.</p><p>Use <code 
class="literal">PolygeneServletSupport#application(javax.servlet.ServletContext)</code>
 to get a handle on the <code class="literal">Application</code> from the
+<code class="literal">ServletContext</code>.</p><p>Here is an example 
ServletContextListener:</p><pre class="programlisting brush: java">public 
static class FooServletContextListener
+        extends AbstractPolygeneServletBootstrap
+{
+
+    public ApplicationAssembly assemble( ApplicationAssemblyFactory 
applicationFactory )
+            throws AssemblyException
+    {
+        ApplicationAssembly appass = 
applicationFactory.newApplicationAssembly();
+          [...snip...]
+
+        return appass;
+    }
+
+}
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_facilities"></a>Facilities</h4></div></div></div><p><code 
class="literal">PolygeneServlet</code> and <code 
class="literal">PolygeneFilter</code> respectively provide base class for easy 
access to the <code class="literal">Application</code> from the
+<code class="literal">ServletContext</code>.</p><p>Here is a sample servlet 
that simply output the assembled Application name:</p><pre 
class="programlisting brush: java">public static class FooServlet
+        extends PolygeneServlet
+{
+
+    @Override
+    protected void doGet( HttpServletRequest req, HttpServletResponse resp )
+            throws ServletException, IOException
+    {
+        // Output the assembled Application's name as an example
+        resp.getWriter().println( application().name() );
+    }
+
+}
+</pre></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_logging_2"></a>Logging</h4></div></div></div><p>The SLF4J 
logger used by this library is named 
"org.apache.polygene.library.servlet".</p></div></div><footer xmlns="" 
xmlns:exsl="http://exslt.org/common"; class="footer"><div class="container"><p 
class="text-muted">Copyright © 2017 The Apache Software Foundation, Licensed 
under the <a href="http://www.apache.org/licenses/"; target="_blank">Apache 
License, Version 2.0</a>.
+          Apache Polygene, Polygene, Apache, the Apache feather logo, and the 
Apache Polygene project logo are
+          trademarks of The Apache Software Foundation.
+          All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.
+        </p></div></footer><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";></script><script
 xmlns="" xmlns:exsl="http://exslt.org/common";>window.jQuery || 
document.write('&lt;script 
src="js/jquery-1.6.4.min.js"&gt;&lt;/script&gt;')</script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"; 
integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
 crossorigin="anonymous"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="bootstrap-3.3.7/js/bootstrap.min.js"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="js/ie10-viewport-bug-workaround.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/library-shiro-web.html
----------------------------------------------------------------------
diff --git a/content/java/2017/library-shiro-web.html 
b/content/java/2017/library-shiro-web.html
new file mode 100644
index 0000000..8bdc028
--- /dev/null
+++ b/content/java/2017/library-shiro-web.html
@@ -0,0 +1,116 @@
+<?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>Shiro Web Security</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="libraries.html" 
title="Libraries" /><link rel="prev" href="library-shiro.html" title="Shiro 
Security" /><link rel="next" href="library-spring.html" title="Spring 
Integration" />
+
+
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="../../favicon.ico">
+
+    <title>Starter Template for Bootstrap</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="css/polygene-ng.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+
+<!-- favicon -->
+
+<link rel="shortcut icon" href="http://polygene.apache.org/favicon.ico"; 
type="image/vnd.microsoft.icon" />
+<link rel="icon" href="http://polygene.apache.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/polygene.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>
+
+<!-- Apache Polygene 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-62007352-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><nav xmlns="" xmlns:exsl="http://exslt.org/common"; class="navbar 
navbar-inverse navbar-fixed-top"><div class="container"><div 
class="navbar-header"><a class="navbar-brand" href="#">Apache<br />Polygene
+          </a></div><div id="navbar" class="collapse navbar-collapse"><span 
class="nav navbar-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><a 
href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a 
href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a 
href="samples.html">Samples</a></span></dt><dt><span class="section"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" 
href="libraries.html">Libraries</span></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></span></div></div></nav><div xmlns="" 
xmlns:exsl="http://exslt
 .org/common" class="sidenav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="libraries.html#_overview_5">Overview</a></span></dt><dt><span 
class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span 
class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span 
class="section"><a href="library-circuitbreaker.html">Circuit 
Breaker</a></span></dt><dt><span class="section"><a 
href="library-constraints.html">Constraints</a></span></dt><dt><span 
class="section"><a 
href="library-fileconfig.html">FileConfig</a></span></dt><dt><span 
class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span 
class="section"><a href="library-invocation-cache.html">Invocation 
Cache</a></span></dt><dt><span class="section"><a 
href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a 
href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a 
href="library-logging.html">Logging<
 /a></span></dt><dt><span class="section"><a 
href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a 
href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a 
href="library-rest-client.html">ReST Client</a></span></dt><dt><span 
class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS 
Primer</a></span></dt><dt><span class="section"><a 
href="library-rest-common.html">ReST Common</a></span></dt><dt><span 
class="section"><a href="library-rest-server.html">ReST 
Server</a></span></dt><dt><span class="section"><a 
href="library-restlet.html">Restlet Support</a></span></dt><dt><span 
class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span 
class="section"><a href="library-shiro.html">Shiro 
Security</a></span></dt><dt><span class="section"><span xmlns="" 
href="library-shiro-web.html">Shiro Web Security</span></span></dt><dt><span 
class="section"><a href="library-spring.html">Spring 
Integration</a></span></dt><dt><span class=
 "section"><a href="library-sql.html">SQL</a></span></dt><dt><span 
class="section"><a href="library-uid.html">UID</a></span></dt><dt><span 
class="section"><a 
href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="library-shiro-web"></a>Shiro Web Security</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-good">tests</p><p>This library provides integration with 
the <a class="ulink" href="http://shiro.apache.org/"; target="_top">Apache 
Shiro</a> Java Security Framework.</p><div class="note" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This library only 
contains web related information. Most of the documentation can be found in the
+<a class="xref" href="library-shiro.html" title="Shiro Security"> Shiro 
Security Library</a> that this very library leverages.</p></div><p>“Apache 
Shiro is a powerful and easy-to-use Java security framework that performs 
authentication, authorization,
+cryptography, and session management. With Shiro’s easy-to-understand API, 
you can quickly and easily secure any
+application – from the smallest mobile applications to the largest web and 
enterprise applications.” says the Apache
+Shiro website.</p><p>We invite you to read the comprehensive <a class="ulink" 
href="http://shiro.apache.org/documentation.html"; target="_top">Apache Shiro 
documentation</a>, we will
+mostly discuss Polygene™ related matters here.</p><div class="table"><a 
id="idm5251"></a><p class="title"><strong>Table 40. 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.libraries</p></td><td align="left" 
valign="top"><p>org.apache.polygene.library.shiro-web</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_servlet_context"></a>Servlet 
Context</h4></div></div></div><p>In a servlet context, being through the <a 
class="xref" href="library-servlet.html" title="Servlet">Servlet Library</a>, 
the <a class="xref
 " href="library-http.html" title="HTTP"> HTTP Library</a> or your custom 
Polygene™ application
+bootstrap, plain Shiro is usable. A WebEnvironment must be globally available 
and ShiroFilter must be registered.</p><p>If you use a custom Polygene™ 
application boostrap or the <a class="xref" href="library-servlet.html" 
title="Servlet">Servlet Library</a> you can directly use Shiro’s provided
+EnvironmentLoaderListener and ShiroFilter.</p><p>If you use the <a 
class="xref" href="library-http.html" title="HTTP"> HTTP Library</a> you can 
either directly use Shiro classes or use the assembly API as follows:</p><pre 
class="programlisting brush: java">new JettyServiceAssembler().withConfig( 
configModule, Visibility.layer ).assemble( module );
+  [...snip...]
+
+new HttpShiroAssembler()
+    .withConfig( configModule, Visibility.layer )
+    .assemble( module );
+</pre></div></div><footer xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="footer"><div class="container"><p class="text-muted">Copyright © 2017 
The Apache Software Foundation, Licensed under the <a 
href="http://www.apache.org/licenses/"; target="_blank">Apache License, Version 
2.0</a>.
+          Apache Polygene, Polygene, Apache, the Apache feather logo, and the 
Apache Polygene project logo are
+          trademarks of The Apache Software Foundation.
+          All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.
+        </p></div></footer><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";></script><script
 xmlns="" xmlns:exsl="http://exslt.org/common";>window.jQuery || 
document.write('&lt;script 
src="js/jquery-1.6.4.min.js"&gt;&lt;/script&gt;')</script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"; 
integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
 crossorigin="anonymous"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="bootstrap-3.3.7/js/bootstrap.min.js"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="js/ie10-viewport-bug-workaround.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/library-shiro.html
----------------------------------------------------------------------
diff --git a/content/java/2017/library-shiro.html 
b/content/java/2017/library-shiro.html
new file mode 100644
index 0000000..2b1b140
--- /dev/null
+++ b/content/java/2017/library-shiro.html
@@ -0,0 +1,364 @@
+<?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>Shiro Security</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="libraries.html" 
title="Libraries" /><link rel="prev" href="library-servlet.html" 
title="Servlet" /><link rel="next" href="library-shiro-web.html" title="Shiro 
Web Security" />
+
+
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="../../favicon.ico">
+
+    <title>Starter Template for Bootstrap</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="css/polygene-ng.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+
+<!-- favicon -->
+
+<link rel="shortcut icon" href="http://polygene.apache.org/favicon.ico"; 
type="image/vnd.microsoft.icon" />
+<link rel="icon" href="http://polygene.apache.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/polygene.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>
+
+<!-- Apache Polygene 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-62007352-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><nav xmlns="" xmlns:exsl="http://exslt.org/common"; class="navbar 
navbar-inverse navbar-fixed-top"><div class="container"><div 
class="navbar-header"><a class="navbar-brand" href="#">Apache<br />Polygene
+          </a></div><div id="navbar" class="collapse navbar-collapse"><span 
class="nav navbar-nav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="index.html#home">Polygene™</a></span></dt><dt><span class="section"><a 
href="intro.html">Introduction</a></span></dt><dt><span class="section"><a 
href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a 
href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a 
href="samples.html">Samples</a></span></dt><dt><span class="section"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" 
href="libraries.html">Libraries</span></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></span></div></div></nav><div xmlns="" 
xmlns:exsl="http://exslt
 .org/common" class="sidenav"><div xmlns="http://www.w3.org/1999/xhtml"; 
class="toc"><dl class="toc"><dt><span class="section"><a 
href="libraries.html#_overview_5">Overview</a></span></dt><dt><span 
class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span 
class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span 
class="section"><a href="library-circuitbreaker.html">Circuit 
Breaker</a></span></dt><dt><span class="section"><a 
href="library-constraints.html">Constraints</a></span></dt><dt><span 
class="section"><a 
href="library-fileconfig.html">FileConfig</a></span></dt><dt><span 
class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span 
class="section"><a href="library-invocation-cache.html">Invocation 
Cache</a></span></dt><dt><span class="section"><a 
href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a 
href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a 
href="library-logging.html">Logging<
 /a></span></dt><dt><span class="section"><a 
href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a 
href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a 
href="library-rest-client.html">ReST Client</a></span></dt><dt><span 
class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS 
Primer</a></span></dt><dt><span class="section"><a 
href="library-rest-common.html">ReST Common</a></span></dt><dt><span 
class="section"><a href="library-rest-server.html">ReST 
Server</a></span></dt><dt><span class="section"><a 
href="library-restlet.html">Restlet Support</a></span></dt><dt><span 
class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span 
class="section"><span xmlns="" href="library-shiro.html">Shiro 
Security</span></span></dt><dt><span class="section"><a 
href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span 
class="section"><a href="library-spring.html">Spring 
Integration</a></span></dt><dt><span class=
 "section"><a href="library-sql.html">SQL</a></span></dt><dt><span 
class="section"><a href="library-uid.html">UID</a></span></dt><dt><span 
class="section"><a 
href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="library-shiro"></a>Shiro Security</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-good">tests</p><p>This library provides integration with 
the <a class="ulink" href="http://shiro.apache.org/"; target="_top">Apache 
Shiro</a> Java Security Framework.</p><div class="note" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you are working 
on a HTTP based application, see the <a class="xref" 
href="library-shiro-web.html" title="Shiro Web Security"> Shiro Web Security 
Library</a> that leverages this very library
+and is directly usable with the <a class="xref" href="library-http.html" 
title="HTTP"> HTTP Library</a>, the <a class="xref" href="library-servlet.html" 
title="Servlet">Servlet Library</a> or any other Servlet based 
stack.</p></div><p>“Apache Shiro is a powerful and easy-to-use Java security 
framework that performs authentication, authorization,
+cryptography, and session management. With Shiro’s easy-to-understand API, 
you can quickly and easily secure any
+application – from the smallest mobile applications to the largest web and 
enterprise applications.” says the Apache
+Shiro website.</p><p>Altough Apache Shiro can be used as-is with Polygene™ 
Applications, this library provides integrations that can come in
+handy. If your use case do not fit any of theses integrations, look at their 
respective code. You should find out
+pretty easily how to compose the provided code to write your integration. 
Don’t hesitate to contribute interesting
+integrations to this very library.</p><p>We invite you to read the 
comprehensive <a class="ulink" 
href="http://shiro.apache.org/documentation.html"; target="_top">Apache Shiro 
documentation</a>, we will
+mostly discuss Polygene™ related matters here.</p><div class="table"><a 
id="idm5133"></a><p class="title"><strong>Table 39. 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.libraries</p></td><td align="left" 
valign="top"><p>org.apache.polygene.library.shiro-core</p></td><td align="left" 
valign="top"><p>0</p></td></tr></tbody></table></div></div><br 
class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_basic_usage"></a>Basic usage</h4></div></div></div><p>For 
standalone applications, you can use plain Shiro easily. The only thing to do 
is to register a configured
+SecurityManager when activating your Polygene™ Application. It can be done 
outside the application, before its activation,
+"à là" by-hand ;</p><pre class="programlisting brush: 
java">IniSecurityManagerFactory factory = new IniSecurityManagerFactory( 
"classpath:standalone-shiro.ini" );
+SecurityManager securityManager = factory.getInstance();
+SecurityUtils.setSecurityManager( securityManager );
+</pre><p>note that this example code register the SecurityManager as a VM 
static singleton.</p><p>However we recommend to use the provided 
IniSecurityManagerService that does exactly this when activated and unregister
+the SecurityManager when passivated:</p><pre class="programlisting brush: 
java">new StandaloneShiroAssembler().
+    withConfig( configModule, Visibility.layer ).
+    assemble( module );
+
+</pre><p>You can change the INI resource path through the 
ShiroIniConfiguration:</p><pre class="programlisting brush: java">public 
interface ShiroIniConfiguration
+        extends ConfigurationComposite
+{
+
+    /**
+     * Resource path of the ini configuration file.
+     * "classpath:", "file": and "url:" prefixes are supported.
+     * Defaulted to "classpath:shiro.ini".
+     */
+    @Optional
+    Property&lt;String&gt; iniResourcePath();
+
+}
+</pre><p>Remember that this setup use a ThreadLocal SecurityManager singleton. 
Among other things it means that, althoug the
+IniSecurityManagerService is activated on Application activation, if you need 
to use Shiro in other Services that are
+activated on Application activation you should tell Polygene™ about this 
dependency by injecting the SecurityManagerService
+in the laters.</p><p>Once started you must remember to register the 
SecurityManager in Shiro’s ThreadContext ;</p><pre class="programlisting 
brush: java">
+@Service
+private IniSecurityManagerService securityManagerService;
+
+  [...snip...]
+
+public void interactionBegins()
+{
+    ThreadContext.bind( securityManagerService.getSecurityManager() );
+}
+
+  [...snip...]
+
+public void interactionEnds()
+{
+    ThreadContext.unbindSubject();
+    ThreadContext.unbindSecurityManager();
+}
+</pre><p>that’s how Shiro works.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_security_concern"></a>Security Concern</h4></div></div></div><p>This 
library provides the <code class="literal">SecurityConcern</code> that should 
be used alongside the provided method annotations that mimic
+Apache Shiro annotations:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
+The <code class="literal">@RequiresAuthentication</code> annotation requires 
the current Subject to have been authenticated during their current
+  session for the annotated class/instance/method to be accessed or invoked.
+</li><li class="listitem">
+The <code class="literal">@RequiresGuest</code> annotation requires the 
current Subject to be a "guest", that is, they are not authenticated or
+  remembered from a previous session for the annotated class/instance/method 
to be accessed or invoked.
+</li><li class="listitem">
+The <code class="literal">@RequiresPermissions</code> annotation requires the 
current Subject be permitted one or more permissions in order to
+  execute the annotated method.
+</li><li class="listitem">
+The <code class="literal">@RequiresRoles</code> annotation requires the 
current Subject to have all of the specified roles. If they do not have
+  the role(s), the method will not be executed and an AuthorizationException 
is thrown.
+</li><li class="listitem">
+The <code class="literal">@RequiresUser</code> annotation requires the current 
Subject to be an application user for the annotated
+  class/instance/method to be accessed or invoked. An <span 
class="emphasis"><em>application user</em></span> is defined as a Subject that 
has a known
+  identity, either known due to being authenticated during the current session 
or remembered from <span class="emphasis"><em>RememberMe</em></span> services
+  from a previous session.
+</li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_realms_services"></a>Realms Services</h4></div></div></div><p>All the 
above is sufficient as long as you use the ini file to store user credentials 
and permissions or a Realm that
+has no dependency on your application code and can be specified in the ini 
file to be instanciated by Shiro outside the
+Polygene™ scope.</p><p>One usecase where it’s not sufficient comes quickly 
as you would like to provide user credentials and permissions
+from Entities stored in an EntityStore or perform any custom logic involving 
your Polygene™ Application.</p><p>Let’s look at a complete example using a 
Realm Service that extends one of the Shiro provided Realm which use in-memory
+credientials and configuring it ;</p><pre class="programlisting brush: 
java">@Mixins( MyRealmMixin.class )
+public interface MyRealmService
+        extends Realm, ServiceComposite, ServiceActivation
+{
+}
+
+  [...snip...]
+
+public class MyRealmMixin
+        extends SimpleAccountRealm
+        implements ServiceActivation
+{
+
+    private final PasswordService passwordService;
+
+    public MyRealmMixin()
+    {
+        super();
+        passwordService = new DefaultPasswordService();
+        PasswordMatcher matcher = new PasswordMatcher();
+        matcher.setPasswordService( passwordService );
+        setCredentialsMatcher( matcher );
+    }
+
+    public void activateService()
+            throws Exception
+    {
+        // Create a test account
+        addAccount( "foo", passwordService.encryptPassword( "bar" ) );
+    }
+
+      [...snip...]
+
+
+}
+
+@Override
+public void assemble( ModuleAssembly module )
+        throws AssemblyException
+{
+  [...snip...]
+
+    new StandaloneShiroAssembler().
+        withConfig( configModule, Visibility.layer ).
+        assemble( module );
+    module.services( MyRealmService.class );
+
+      [...snip...]
+
+}
+
+</pre><p>We start by defining a Realm Service and its Mixin that’s based on 
SimpleAccountRealm that we configure to handle hashed
+passwords. For the sake of the example it is shown how to hash a password 
using Shiro built in mecanisms. Then comes
+the Assembly where we simply reuse the Standalone Shiro Assembly and declare 
our Realm as a Service. It works the same
+way when using the <a class="xref" href="library-shiro-web.html" title="Shiro 
Web Security"> Shiro Web Security Library</a>.</p><p>Note that under the hood, 
assembled Realm Services are added to the ones configured in the INI 
file.</p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_security_domain"></a>Security 
Domain</h4></div></div></div><p>Going further, if you want to persist 
credentials and permissions in an EntityStore, the Shiro Security Library
+provides skeletons to easily setup some usecases consisting of Shiro setup 
facilities and base state model for you to
+compose with.</p><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a 
id="_passwords"></a>Passwords</h5></div></div></div><p>Password storage is not 
a simple subject. Shiro provide best practice mecanisms using salt and 
repeated-hashing out of
+the box. It is possible to setup your Realm so that hashed passwords are 
stored in a future proof manner, meaning that
+you can change the used algorithms while retaining compatibility with 
passwords already stored.</p><p>Shiro use the
+<a class="ulink" 
href="http://shiro.apache.org/static/current/apidocs/org/apache/shiro/crypto/hash/format/Shiro1CryptFormat.html";
 target="_top">Shiro1CryptFormat</a>
+which is a fully reversible <a class="ulink" 
href="http://packages.python.org/passlib/modular_crypt_format.html"; 
target="_top">Modular Crypt Format</a> (MCF).</p><p>This library provides a 
<code class="literal">PasswordRealmService</code> to be used with a <code 
class="literal">PasswordSecurable</code>. Let’s look at a complete
+example.</p><p>First you need to define your User (or Account, or whatever 
fits your domain), for the sake of the example we define a
+UserFactory too. Note that the factory uses the PasswordService implemented by 
the PasswordRealm to hash the password:</p><pre class="programlisting brush: 
java">public interface User
+        extends PasswordSecurable
+{
+}
+
+  [...snip...]
+
+@Mixins( UserFactoryMixin.class )
+public interface UserFactory
+{
+
+    User createNewUser( String username, String password );
+
+}
+
+  [...snip...]
+
+public static class UserFactoryMixin
+        implements UserFactory
+{
+
+    @Structure
+    private UnitOfWorkFactory uowf;
+
+    @Service
+    private PasswordService passwordService;
+
+    @Override
+    public User createNewUser( String username, String password )
+    {
+        EntityBuilder&lt;User&gt; userBuilder = 
uowf.currentUnitOfWork().newEntityBuilder( User.class );
+        User user = userBuilder.instance();
+        user.subjectIdentifier().set( username );
+        user.password().set( passwordService.encryptPassword( password ) );
+        return userBuilder.newInstance();
+    }
+
+}
+
+</pre><p>Now comes the assembly that reuse what’s described above and add 
both the password domain assembly plus your custom User
+entity and its factory:</p><pre class="programlisting brush: java">@Override
+public void assemble( ModuleAssembly module )
+        throws AssemblyException
+{
+  [...snip...]
+
+    new StandaloneShiroAssembler().
+        withConfig( configModule, Visibility.layer ).
+        assemble( module );
+    new PasswordDomainAssembler().
+        withConfig( configModule, Visibility.layer ).
+        assemble( module );
+
+    module.entities( User.class );
+    module.services( UserFactory.class );
+
+      [...snip...]
+
+}
+
+</pre><p>And finally here is how to create a new user and below how to perform 
a login:</p><pre class="programlisting brush: java">User user = 
userFactory.createNewUser( "foo", "bar" );
+
+  [...snip...]
+
+Subject currentUser = SecurityUtils.getSubject();
+currentUser.login( new UsernamePasswordToken( "foo", "bar" ) );
+
+</pre><p>In this setup, password hashing use the Shiro’s default (Salted 
SHA-256 with 500.000 iterations). If you <span 
class="emphasis"><em>need</em></span> to
+change this you can do it using PasswordRealmConfiguration properties:</p><pre 
class="programlisting brush: java">/**
+ * Sets the name of the MessageDigest algorithm that will be used to compute 
hashes.
+ */
+@Optional
+Property&lt;String&gt; hashAlgorithmName();
+
+/**
+ * Sets the number of hash iterations that will be performed during hash 
computation.
+ */
+@Optional
+Property&lt;Integer&gt; hashIterationsCount();
+</pre></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_permissions_amp_roles"></a>Permissions &amp; 
Roles</h5></div></div></div><p>In the same vein, this library provide a domain 
state skeleton with support in <code 
class="literal">PasswordRealmService</code>. It allows you to
+easily store roles, permissions and assignment to your accounts.</p><p>Let’s 
look at the previous example with permissions added.</p><p>First you need to 
add the RoleAssignee type to your account:</p><pre class="programlisting brush: 
java">public interface User
+        extends PasswordSecurable, RoleAssignee
+{
+}
+
+</pre><p>Assembly is straight forward:</p><pre class="programlisting brush: 
java">new StandaloneShiroAssembler().
+    withConfig( configModule, Visibility.layer ).
+    assemble( module );
+new PasswordDomainAssembler().
+    withConfig( configModule, Visibility.layer ).
+    assemble( module );
+new PermissionsDomainAssembler().
+    assemble( module );
+
+module.entities( User.class );
+module.services( UserFactory.class );
+
+</pre><p>And here is how to use all this:</p><pre class="programlisting brush: 
java">UnitOfWork uow = unitOfWorkFactory.newUnitOfWork();
+
+User user = userFactory.createNewUser( "foo", "bar" );
+Role role = roleFactory.create( "role-one", "permission-one", "permission-two" 
);
+role.assignTo( user );
+
+uow.complete();
+
+  [...snip...]
+
+uow = unitOfWorkFactory.newUnitOfWork();
+
+Subject currentUser = SecurityUtils.getSubject();
+currentUser.login( new UsernamePasswordToken( "foo", "bar" ) );
+
+if ( !currentUser.hasRole( "role-one" ) ) {
+    fail( "User 'foo' must have 'role-one' role." );
+}
+
+if ( !currentUser.isPermitted( "permission-one" ) ) {
+    fail( "User 'foo' must have 'permission-one' permission." );
+}
+
+  [...snip...]
+
+uow.discard();
+</pre></div></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_other_authentication_mecanisms"></a>Other authentication 
mecanisms</h4></div></div></div><p>For other authentication mecanisms you can 
leverage Shiro extensions available in the Shiro distribution or as external
+libraries. There’s support for text files, simple JDBC, LDAP, CAS SSO, 
OAuth, OpenID, X.509 Certificates etc…</p><p>Take the PasswordRealmService as 
a start and extend/rewrite it to suit your needs.</p><p>If you happen to come 
with a Polygene™ integration that could be valuable in this very library, 
don’t hesitate to
+contribute.</p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_logging_3"></a>Logging</h4></div></div></div><p>All code 
from this library use the <code 
class="literal">org.apache.polygene.library.shiro</code> 
logger.</p></div></div><footer xmlns="" xmlns:exsl="http://exslt.org/common"; 
class="footer"><div class="container"><p class="text-muted">Copyright © 2017 
The Apache Software Foundation, Licensed under the <a 
href="http://www.apache.org/licenses/"; target="_blank">Apache License, Version 
2.0</a>.
+          Apache Polygene, Polygene, Apache, the Apache feather logo, and the 
Apache Polygene project logo are
+          trademarks of The Apache Software Foundation.
+          All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.
+        </p></div></footer><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";></script><script
 xmlns="" xmlns:exsl="http://exslt.org/common";>window.jQuery || 
document.write('&lt;script 
src="js/jquery-1.6.4.min.js"&gt;&lt;/script&gt;')</script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"; 
integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
 crossorigin="anonymous"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="bootstrap-3.3.7/js/bootstrap.min.js"></script><script xmlns="" 
xmlns:exsl="http://exslt.org/common"; 
src="js/ie10-viewport-bug-workaround.js"></script></body></html>
\ No newline at end of file

Reply via email to