http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/related.html
----------------------------------------------------------------------
diff --git a/content/java/2017/related.html b/content/java/2017/related.html
new file mode 100644
index 0000000..9378779
--- /dev/null
+++ b/content/java/2017/related.html
@@ -0,0 +1,224 @@
+<?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>Related publications &amp; 
projects</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.78.1" /><link rel="home" href="index.html" title="" /><link rel="up" 
href="intro.html" title="Introduction" /><link rel="prev" 
href="state-modeling.html" title="Polygene™ and state modeling" /><link 
rel="next" href="tutorials.html" title="Tutorials" />
+
+
+    <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"><span xmlns="" 
href="intro.html">Introduction</span></span></dt><dt><span class="section"><a 
href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a 
href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a 
href="samples.html">Samples</a></span></dt><dt><span class="section"><a 
href="core.html">Core</a></span></dt><dt><span class="section"><a 
href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a 
href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a 
href="tools.html">Tools</a></span></dt><dt><span class="section"><a 
href="glossary.html">Glossary 
</a></span></dt></dl></div></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="intro.html#highlights">Highlights</a></span></dt><dt><span 
class="section"><a href="tools-shell.html">Polygene 
Generator</a></span></dt><dt><span class="section"><a 
href="introduction-background.html">Background</a></span></dt><dt><span 
class="section"><a href="what-is-cop.html">What is 
COP?</a></span></dt><dt><span class="section"><a 
href="what-s-an-object-anyway.html">What’s an Object 
anyway?</a></span></dt><dt><span class="section"><a 
href="state-modeling.html">Polygene™ and state 
modeling</a></span></dt><dt><span class="section"><span xmlns="" 
href="related.html">Related publications &amp; 
projects</span></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a id="related"></a>Related 
publications &amp; projects</h3></div></div></div><p>Polygene™ addresses a 
wide range of concepts, the related p
 ublications and projects you’ll find in this section span accross
+all theses concepts. Please note that this is not an exhaustive list but only 
some pointers to help you understand which
+principles Polygene™ is based on.</p><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_publications"></a>Publications</h4></div></div></div><p>In chronological 
order, related publications:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem"><p class="simpara">
+<span class="strong"><strong>Object-oriented Software 
Construction</strong></span>
+</p><p class="simpara">by Bertrand Meyer - 1988</p><p class="simpara">"<span 
class="emphasis"><em>The comprehensive reference on all aspects of object 
technology, from design principles to O-O techniques, Design by
+Contract, O-O analysis, concurrency, persistence, abstract data types and many 
more. Written by a pioneer in the field,
+contains an in-depth analysis of both methodological and technical 
issues.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://se.ethz.ch/~meyer/publications/index_kind.html#POOSC2"; 
target="_top">http://se.ethz.ch/~meyer/publications/index_kind.html#POOSC2</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Object-Oriented Programming: An Objective Sense 
of Style</strong></span>
+</p><p class="simpara">by K.  Lieberherr,  I.  IIolland,  A.  Riel - 
1988</p><p class="simpara">"<span class="emphasis"><em>The "Law of Demeter" (or 
LoD) as it is commonly called, is really more precisely the "Law of Demeter for
+Functions/Methods" (LoD-F). It is a design-style rule for object-oriented 
programs. Its essence is the "principle of
+least knowledge" regarding the object instances used within a 
method.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.ccs.neu.edu/research/demeter/papers/law-of-demeter/oopsla88-law-of-demeter.pdf";
 
target="_top">http://www.ccs.neu.edu/research/demeter/papers/law-of-demeter/oopsla88-law-of-demeter.pdf</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Designing Reusable Classes</strong></span>
+</p><p class="simpara">by Ralph E. Johnson &amp; Brian Foote - 1988</p><p 
class="simpara">"<span class="emphasis"><em>Object-oriented programming is as 
much a different way of designing programs as it is a different way of designing
+programming languages. […] In particular, since a major motivation for 
object-oriented programming is software reuse,
+this paper describes how classes are developed so that they will be 
reusable.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.laputan.org/drc/drc.html"; 
target="_top">http://www.laputan.org/drc/drc.html</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>The Open/Closed Principle</strong></span>
+</p><p class="simpara">by Robert C. Martin - 1996</p><p class="simpara">"<span 
class="emphasis"><em>As Ivar Jacobson said: “All systems change during their 
life cycles. This must be borne in mind when developing
+systems expected to last longer than the first version.” How can we create 
designs that are stable in the face of
+change and that will last longer than the first version?</em></span>"</p><p 
class="simpara"><a class="ulink" 
href="http://www.objectmentor.com/resources/articles/ocp.pdf"; 
target="_top">http://www.objectmentor.com/resources/articles/ocp.pdf</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>The Liskov Substitution Principle</strong></span>
+</p><p class="simpara">by Robert C. Martin - 1996</p><p class="simpara">"<span 
class="emphasis"><em>Substitutability is a principle in object-oriented 
programming. It states that, in a computer program, if S is a
+subtype of T, then objects of type T may be replaced with objects of type S 
(i.e., objects of type S may be substituted
+for objects of type T) without altering any of the desirable properties of 
that program (correctness, task performed,
+etc.)..</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.objectmentor.com/resources/articles/lsp.pdf"; 
target="_top">http://www.objectmentor.com/resources/articles/lsp.pdf</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>The Dependency Inversion Principle</strong></span>
+</p><p class="simpara">by Robert C. Martin - 1996</p><p class="simpara">"<span 
class="emphasis"><em>In this column, we discuss the structural implications of 
the Open-Closed and the Liskov Substitution principles.
+The structure that results from rigorous use of these principles can be 
generalized into a principle all by itself.
+I call it “The Dependency Inversion Principle” (DIP).</em></span>"</p><p 
class="simpara"><a class="ulink" 
href="http://www.objectmentor.com/resources/articles/dip.pdf"; 
target="_top">http://www.objectmentor.com/resources/articles/dip.pdf</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Aspect-Oriented Programming</strong></span>
+</p><p class="simpara">by Kiczales, Gregor; John Lamping, Anurag Mendhekar, 
Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin - 1997</p><p 
class="simpara">"<span class="emphasis"><em>We have found many programming 
problems for which neither procedural nor object-oriented programming 
techniques are
+sufficient to clearly capture some of the important design decisions the 
program must implement. This forces the
+implementation of those design decisions to be scattered throughout the code, 
resulting in “tangled” code that is
+excessively difficult to develop and maintain. We present an analysis of why 
certain design decisions have been so
+difficult to clearly capture in actual code. We call the properties these 
decisions address aspects, and show that the
+reason they have been hard to capture is that they crosscut the system’s 
basic functionality. We present the basis for
+a new programming technique, called aspect-oriented programming, that makes it 
possible to clearly express programs
+involving such aspects, including appropriate isolation, composition and reuse 
of the aspect code. The discussion is
+rooted in systems we have built using aspect-oriented 
programming.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.115.8660"; 
target="_top">http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.115.8660</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Domain-Driven Design: Tackling Complexity in the 
Heart of Software</strong></span>
+</p><p class="simpara">by Eric Evans - 2003</p><p class="simpara">"<span 
class="emphasis"><em>This book provides a broad framework for making design 
decisions and a technical vocabulary for discussing domain
+design. It is a synthesis of widely accepted best practices along with the 
author’s own insights and experiences.
+Projects facing complex domains can use this framework to approach 
domain-driven design systematically.
+Many people have employed domain-driven design in some form, but it will be 
made more effective with a systematic
+approach and a shared vocabulary.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://domaindrivendesign.org/books/evans_2003"; 
target="_top">http://domaindrivendesign.org/books/evans_2003</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Tell, Don’t Ask</strong></span>
+</p><p class="simpara">by Andy Hunt and the Pragmatic Programmers - 2003</p><p 
class="simpara">"<span class="emphasis"><em>Procedural code gets information 
then makes decisions. Object-oriented code tells objects to do things. - Alec 
Sharp</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://pragprog.com/articles/tell-dont-ask"; 
target="_top">http://pragprog.com/articles/tell-dont-ask</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Inversion of Control Containers and the 
Dependency Injection pattern</strong></span>
+</p><p class="simpara">by Martin Fowler - 2004</p><p class="simpara">"<span 
class="emphasis"><em>In the Java community there’s been a rush of lightweight 
containers that help to assemble components from different
+projects into a cohesive application. Underlying these containers is a common 
pattern to how they perform the wiring,
+a concept they refer under the very generic name of "Inversion of Control". In 
this article I dig into how this pattern
+works, under the more specific name of "Dependency Injection", and contrast it 
with the Service Locator alternative.
+The choice between them is less important than the principle of separating 
configuration from use.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://martinfowler.com/articles/injection.html"; 
target="_top">http://martinfowler.com/articles/injection.html</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Inversion of Control</strong></span>
+</p><p class="simpara">by Martin Fowler - 2005</p><p class="simpara">"<span 
class="emphasis"><em>Inversion of Control is a key part of what makes a 
framework different to a library.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://martinfowler.com/bliki/InversionOfControl.html"; 
target="_top">http://martinfowler.com/bliki/InversionOfControl.html</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Applying Domain-Driven Design and 
Patterns</strong></span>
+</p><p class="simpara">by Jimmy Nilsson - 2006</p><p class="simpara">"<span 
class="emphasis"><em>While Eric’s book is the definitive treatment of DDD, 
this book by Jimmy Nilsson takes a fresh approach to this
+difficult topic. Pragmatic and full of examples, this book digs into the 
nitty-gritty of applying DDD.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://domaindrivendesign.org/books/nilsson_2006"; 
target="_top">http://domaindrivendesign.org/books/nilsson_2006</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Domain-Driven Design Quickly</strong></span>
+</p><p class="simpara">by Abel Avram &amp; Floyd Marinescu - 2007</p><p 
class="simpara">"<span class="emphasis"><em>Domain-Driven Design Quickly, is a 
104 page condensed explanation of the basic principles of DDD, drawing heavily 
on
+the content of Evans and Nilsson.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://domaindrivendesign.org/books/avram_marinescu_2007"; 
target="_top">http://domaindrivendesign.org/books/avram_marinescu_2007</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Putting model to work</strong></span>
+</p><p class="simpara">by Eric Evans - 2007</p><p class="simpara">"<span 
class="emphasis"><em>This talk will outline some of the foundations of 
domain-driven design: How models are chosen and evaluated; How
+multiple models coexist; How the patterns help avoid the common pitfalls, such 
as overly interconnected models; How
+developers and domain experts together in a DDD team engage in deeper 
exploration of their problem domain and make that
+understanding tangible as a practical software design.</em></span>"</p><p 
class="simpara"><a class="ulink" 
href="http://www.infoq.com/presentations/model-to-work-evans"; 
target="_top">http://www.infoq.com/presentations/model-to-work-evans</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Strategic design</strong></span>
+</p><p class="simpara">by Eric Evans - 2007</p><p class="simpara">"<span 
class="emphasis"><em>This talk introduces two broad principles for strategic 
design. <span class="emphasis"><em>Context mapping</em></span> addresses the 
fact that different
+groups model differently. <span class="emphasis"><em>Core domain</em></span> 
distills a shared vision of the system’s "core domain" and provides a 
systematic
+guide to when "good enough" is good enough versus when to push for 
excellence.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.infoq.com/presentations/strategic-design-evans"; 
target="_top">http://www.infoq.com/presentations/strategic-design-evans</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Clarified CQRS</strong></span>
+</p><p class="simpara">by Udi Dahan - 2009</p><p class="simpara">"<span 
class="emphasis"><em>After listening how the community has interpreted 
Command-Query Responsibility Segregation I think that the time has
+come for some clarification. Some have been tying it together to Event 
Sourcing. Most have been overlaying their
+previous layered architecture assumptions on it. Here I hope to identify CQRS 
itself, and describe in which places it
+can connect to other patterns.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://www.udidahan.com/2009/12/09/clarified-cqrs/"; 
target="_top">http://www.udidahan.com/2009/12/09/clarified-cqrs/</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>The DCI Architecture: A New Vision of 
Object-Oriented Programming</strong></span>
+</p><p class="simpara">by Trygve Reenskaug and James O. Coplien - 2009</p><p 
class="simpara">"<span class="emphasis"><em>Object-oriented programming was 
supposed to unify the perspectives of the programmer and the end user in 
computer
+code: a boon both to usability and program comprehension. While objects 
capture structure well, they fail to capture
+system action. DCI is a vision to capture the end user cognitive model of 
roles and interactions between them.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://www.artima.com/articles/dci_vision.html"; 
target="_top">artima.com/articles/dci_vision.html</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Command and Query Responsibility 
Segregation</strong></span>
+</p><p class="simpara">by Greg Young - 2010</p><p class="simpara">"<span 
class="emphasis"><em>Command and Query Responsibility Segregation uses the same 
definition of Commands and Queries that Meyer used and
+maintains the viewpoint that they should be pure. The fundamental difference 
is that in CQRS objects are split into two
+objects, one containing the Commands one containing the 
Queries.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf"; 
target="_top">http://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>Polyglot Persistence</strong></span>
+</p><p class="simpara">by Martin Fowler - 2011</p><p class="simpara">"<span 
class="emphasis"><em>If you’re working in the enterprise application world, 
now is the time to start familiarizing yourself with
+alternative data storage options. This won’t be a fast revolution, but I do 
believe the next decade will see the
+database thaw progress rapidly.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://martinfowler.com/bliki/PolyglotPersistence.html"; 
target="_top">http://martinfowler.com/bliki/PolyglotPersistence.html</a></p></li><li
 class="listitem"><p class="simpara">
+<span class="strong"><strong>CQRS</strong></span>
+</p><p class="simpara">by Martin Fowler - 2011</p><p class="simpara">"<span 
class="emphasis"><em>CQRS stands for Command Query Responsibility Segregation. 
It’s a pattern that I first heard described by Greg Young.
+At its heart is a simple notion that you can use a different model to update 
information than the model you use to read
+information. This simple notion leads to some profound consequences for the 
design of information systems.</em></span>"</p><p class="simpara"><a 
class="ulink" href="http://martinfowler.com/bliki/CQRS.html"; 
target="_top">http://martinfowler.com/bliki/CQRS.html</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Domain Event</strong></span>
+</p><p class="simpara">by Martin Fowler - WIP</p><p class="simpara">"<span 
class="emphasis"><em>Captures the memory of something interesting which affects 
the domain.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://martinfowler.com/eaaDev/DomainEvent.html"; 
target="_top">http://martinfowler.com/eaaDev/DomainEvent.html</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Event Sourcing</strong></span>
+</p><p class="simpara">by Martin Fowler - WIP</p><p class="simpara">"<span 
class="emphasis"><em>Capture all changes to an application state as a sequence 
of events.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://martinfowler.com/eaaDev/EventSourcing.html"; 
target="_top">http://martinfowler.com/eaaDev/EventSourcing.html</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Event Collaboration</strong></span>
+</p><p class="simpara">by Martin Fowler - WIP</p><p class="simpara">"<span 
class="emphasis"><em>Multiple components work together by communicating with 
each other by sending events when their internal state
+changes.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://martinfowler.com/eaaDev/EventCollaboration.html"; 
target="_top">http://martinfowler.com/eaaDev/EventCollaboration.html</a></p></li></ul></div></div><div
 class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_projects"></a>Projects</h4></div></div></div><p><span 
class="emphasis"><em>Pêle-mêle</em></span>, inspiring, inspired, alternatives 
or simply related:</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem"><p class="simpara">
+<span class="strong"><strong>AspectJ</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>An aspect-oriented 
extension to the Java programming language.</em></span>"</p><p 
class="simpara"><a class="ulink" href="http://www.eclipse.org/aspectj/"; 
target="_top">eclipse.org/aspectj</a></p></li><li class="listitem"><p 
class="simpara">
+<span class="strong"><strong>Spring Framework</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>The Spring Framework is an 
application framework and Inversion of Control container for the Java 
platform.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.springsource.org/"; 
target="_top">springsource.org</a></p></li><li class="listitem"><p 
class="simpara">
+<span class="strong"><strong>Google Guice</strong></span>
+</p><p class="simpara">"Guice alleviates the need for factories and the use of 
new in your Java code"</p><p class="simpara"><a class="ulink" 
href="http://code.google.com/p/google-guice/"; 
target="_top">code.google.com/p/google-guice</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Java Enterprise Edition (EJBs, 
CDI)</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>Java EE provides component 
development, web services, management, and communications 
APIs.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://docs.oracle.com/javaee/"; 
target="_top">docs.oracle.com/javaee</a></p></li><li class="listitem"><p 
class="simpara">
+<span class="strong"><strong>Chaplin ACT</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>Chaplin ACT is a Java class 
transformer which modifies classes in such a way that their instances can form 
composites
+at runtime.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.iquality.org/chaplin/"; 
target="_top">iquality.org/chaplin</a></p></li><li class="listitem"><p 
class="simpara">
+<span class="strong"><strong>JavATE</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>JavATE, the Java Domain 
Driven Design Framework, is a set of open source Java libraries that enables 
application
+development using a domain driven approach.</em></span>"</p><p 
class="simpara"><a class="ulink" href="http://www.javate.amattioli.it/"; 
target="_top">http://www.javate.amattioli.it/</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>Bastion Framework</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>Bastion is a Java framework 
for implementing Domain-Driven Designed (DDD) applications.</em></span>"</p><p 
class="simpara"><a class="ulink" href="http://bastionframework.org/"; 
target="_top">bastionframework.org</a></p></li><li class="listitem"><p 
class="simpara">
+<span class="strong"><strong>Axon Framework</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>The axon framework is 
focussed on making life easier for developers that want to create a java 
application based on
+the CQRS principles.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.axonframework.org/"; 
target="_top">axonframework.org</a></p></li><li class="listitem"><p 
class="simpara">
+<span class="strong"><strong>Jdon Framework</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>Jdon Framework is a DDD( 
Domain-Driven Design ) + DCI + Domain Events(Event Sourcing/CQRS) framework for 
java.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://www.jdon.org/"; target="_top">jdon.org</a></p></li><li 
class="listitem"><p class="simpara">
+<span class="strong"><strong>The Fractal Project</strong></span>
+</p><p class="simpara">"<span class="emphasis"><em>Fractal is a modular, 
extensible and programming language agnostic component model that can be used 
to design,
+implement, deploy and reconfigure systems and applications, from operating 
systems to middleware platforms and to
+graphical user interfaces.</em></span>"</p><p class="simpara"><a class="ulink" 
href="http://fractal.ow2.org/"; 
target="_top">fractal.ow2.org</a></p></li></ul></div></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/releasing-apache.html
----------------------------------------------------------------------
diff --git a/content/java/2017/releasing-apache.html 
b/content/java/2017/releasing-apache.html
new file mode 100644
index 0000000..dbd40a9
--- /dev/null
+++ b/content/java/2017/releasing-apache.html
@@ -0,0 +1,382 @@
+<?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>Releasing Polygene™</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="tutorials.html" 
title="Tutorials" /><link rel="prev" href="community-docs.html" 
title="Polygene™ Documentation" /><link rel="next" href="javadocs.html" 
title="Javadoc" />
+
+
+    <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"><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></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="tutorials.html#_overview">Overview</a></span></dt><dt><span 
class="section"><a href="two-minutes-intro.html">Polygene™ in 2 
minutes</a></span></dt><dt><span class="section"><a 
href="ten-minutes-intro.html">Polygene™ in 10 
minutes</a></span></dt><dt><span class="section"><a 
href="thirty-minutes-intro.html">Polygene™ in 30 
minutes</a></span></dt><dt><span class="section"><a 
href="howto-depend-on-polygene.html">Depend on 
Polygene™</a></span></dt><dt><span class="section"><a 
href="howto-assemble-application.html">Assemble an 
Application</a></span></dt><dt><span class="section"><a 
href="tut-composites.html">Transient Composites 
Tutorial</a></span></dt><dt><span class="section"><a 
href="tut-services.html">Services Composites Tutorial</a></span></dt><dt><span 
class="section"><a href="howto-contextual-fragments.html">Use contextual 
fragments</a></span
 ></dt><dt><span class="section"><a 
 >href="howto-leverage-properties.html">Leverage 
 >Properties</a></span></dt><dt><span class="section"><a 
 >href="howto-create-constraint.html">Create a 
 >Constraint</a></span></dt><dt><span class="section"><a 
 >href="howto-create-concern.html">Create a Concern</a></span></dt><dt><span 
 >class="section"><a href="howto-create-sideeffect.html">Create a 
 >SideEffect</a></span></dt><dt><span class="section"><a 
 >href="howto-create-entity.html">Create an Entity</a></span></dt><dt><span 
 >class="section"><a href="howto-configure-service.html">Configure a 
 >Service</a></span></dt><dt><span class="section"><a 
 >href="howto-invocation-annotation.html">Use 
 >@Invocation</a></span></dt><dt><span class="section"><a 
 >href="build-system.html">Polygene™ Build System</a></span></dt><dt><span 
 >class="section"><a href="community-docs.html">Polygene™ 
 >Documentation</a></span></dt><dt><span class="section"><span xmlns="" 
 >href="releasing-apache.html">Releasing Polygene™</span></span></dt><
 /dl></div></div><div class="section"><div class="titlepage"><div><div><h3 
class="title"><a id="releasing-apache"></a>Releasing 
Polygene™</h3></div></div></div><div class="warning" style="margin-left: 
0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>You need a 
unix-like environment to actually perform the release process.
+This tutorial is known to work on Linux and Mac.</p></div><p>This tutorial is 
intended for Apache Polygene™ commiters who want to release a new version of 
Apache Polygene™ (Java Edition) at The Apache Software Foundation.
+It describes the tools and processes of a typical release.</p><p>It is 
intended to be a recommendation of best practices for the Apache Polygene™ 
project.
+The instructions provided here are consistent with, but not a replacement for 
the <a class="ulink" href="https://www.apache.org/dev/release.html"; 
target="_top">ASF Release Guidelines</a>.</p><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_preparing_a_release"></a>Preparing a release</h4></div></div></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_select_a_release_manager"></a>Select a Release 
Manager</h5></div></div></div><p>A Polygene committer (normally one of the 
development team) should post an email to the development list proposing that a 
release be made and nominating a release manager.
+Typically, the proposer volunteers as the release manager and it passes by <a 
class="ulink" 
href="https://www.apache.org/foundation/glossary.html#LazyConsensus"; 
target="_top">lazy consensus</a>.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_clone_checkout_all_repositories"></a>Clone/Checkout all 
repositories</h5></div></div></div><p>Clone/checkout all needed repositories, 
next to each other:</p><pre class="programlisting brush: shell">mkdir 
polygene-repos
+cd polygene-repos
+git clone https://git-wip-us.apache.org/repos/asf/polygene-java.git 
polygene-java
+git clone https://git-wip-us.apache.org/repos/asf/polygene-website.git 
polygene-website
+cd polygene-website
+git checkout asf-site
+cd ..
+svn checkout --depth empty https://dist.apache.org/repos/dist/ polygene-dist
+cd polygene-dist
+svn update --set-depth immediates dev
+svn update --set-depth immediates release
+svn update --set-depth infinity dev/polygene
+svn update --set-depth infinity release/polygene
+cd ..</pre><p>You should then get the following directory tree:</p><pre 
class="programlisting brush: text">.
+└── polygene-repos
+    ├── polygene-java           # Apache Polygene™ (Java Edition) 
source
+    ├── polygene-website        # https://polygene.apache.org/ website
+    └── polygene-dist
+        ├── dev
+        |   └── polygene        # Releases candidate distributions
+        └── release
+            └── polygene        # Releases distributions</pre><div 
class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Tip</h3><p>From now on, all command line snippets start from the 
<code class="literal">polygene-repos</code> directory.</p></div></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_build_apache_polygene_java_edition"></a>Build Apache Polygene™ (Java 
Edition)</h5></div></div></div><p>Ensure you can test, build Apache Polygene™ 
(Java Edition), including the documentation minisite generation using Asciidoc 
and artifact signing.</p><p>Here is what should pass before going 
further:</p><pre class="programlisting brush: shell">cd polygene-java
+git checkout develop
+./gradlew -Dversion="&lt;RELEASE-VERSION&gt;" checkDistributions</pre><p>See 
the <a class="link" href="build-system.html" title="Polygene™ Build 
System">Build System</a> tutorial for details.</p><div class="important" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Important</h3><p>Also ensure that the <a class="ulink" 
href="https://builds.apache.org/view/P/view/Polygene/job/Polygene(JavaEdition)-develop-java8-checkDists/"
 target="_top"><code class="literal">checkDists</code></a> CI build is 
passing.</p></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_install_jekyll"></a>Install Jekyll</h5></div></div></div><p>Moreover, you 
will need to have a valid <a class="ulink" href="http://jekyllrb.com/"; 
target="_top">Jekyll</a> installation as the Apache Polygene™ <a 
class="ulink" href="https://polygene.apache.org/"; target="_top">website</a> is 
generated using it.</p></div><div class="section"><div 
class="titlepage"><div><div><
 h5 class="title"><a id="_setup_git_flow"></a>Setup git 
flow</h5></div></div></div><p><code class="literal">git-flow</code> is a git 
extension that add git commands to easily use the git flow branching model the 
Apache Polygene™ project follows.
+See the <a class="ulink" 
href="https://github.com/nvie/gitflow/wiki/Installation"; 
target="_top">installation instructions</a>.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_setup_git_signing"></a>Setup git signing</h5></div></div></div><p>Ensure 
you can sign git tags.</p><pre class="programlisting brush: shell">git config 
--global user.signingkey &lt;YOUR-PGP-ID&gt;</pre><p>See the <a class="ulink" 
href="https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work"; 
target="_top">Git Tools - Signing Your Work</a> section of the Git 
book.</p></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_setup_apache_nexus_credentials"></a>Setup Apache Nexus 
credentials</h5></div></div></div><p>See the Apache <a class="ulink" 
href="https://www.apache.org/dev/publishing-maven-artifacts.html"; 
target="_top">Publishing Maven Artifacts</a> guide and the Apache Polygene™ 
(Java Edition) <a class="link" href="build-system.html" 
 title="Polygene™ Build System">Build System</a> tutorial.</p></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_update_the_literal_keys_literal_files_if_needed"></a>Update the <code 
class="literal">KEYS</code> files if needed.</h5></div></div></div><p>The 
reference <code class="literal">KEYS</code> file can be found at the <code 
class="literal">polygene-java</code> repository’s root, that is <code 
class="literal">polygene-java/KEYS</code>.
+Ensure that it contains your public key.</p><p>Next, diff it against the ones 
present in the <code class="literal">dev</code> and <code 
class="literal">release</code> distribution areas:</p><pre 
class="programlisting brush: shell">diff polygene-java/KEYS 
polygene-dist/dev/polygene/KEYS
+diff polygene-java/KEYS polygene-dist/release/polygene/KEYS</pre><p>And update 
them if needed:</p><pre class="programlisting brush: shell">cp 
polygene-java/KEYS polygene-dist/dev/polygene/KEYS
+cp polygene-java/KEYS polygene-dist/release/polygene/KEYS
+cd polygene-dist/dev/polygene
+svn add dev/polygene/KEYS release/polygene/KEYS
+svn commit -m "polygene: updating Polygene KEYS"</pre></div></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_creating_a_release_candidate"></a>Creating a Release 
Candidate</h4></div></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_resolve_jira_issues"></a>Resolve JIRA 
issues</h5></div></div></div><p>Resolve all issues on that version!
+They can be resolved by:</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
+fixing
+</li><li class="listitem">
+marking them as <code class="literal">INVALID</code> or <code 
class="literal">WONTFIX</code>
+</li><li class="listitem">
+changing their fix version to another unreleased version
+</li></ul></div><p>See the <a class="ulink" 
href="https://issues.apache.org/jira/browse/POLYGENE"; 
target="_top">POLYGENE</a> project on JIRA.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_prepare_release_notes"></a>Prepare 
Release-Notes</h5></div></div></div><p>Apache Polygene™ release-notes are 
generated from JIRA issues.</p><p>Open the target Polygene™ version’s 
release-notes in <a class="ulink" 
href="https://issues.apache.org/jira/browse/POLYGENE/?selectedTab=com.atlassian.jira.jira-projects-plugin:roadmap-panel";
 target="_top">JIRA</a> and review them.</p><p>JIRA can produces release-notes 
as HTML or plain-text.
+Set it up to generate plain-text release-notes.</p><p>We will need these in 
several formats.
+Starting from the plain-text one we will generate the others.</p><p>First save 
the text-plain release-notes in a file named <code 
class="literal">apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.txt</code>.
+A good place for this file would be in the <code 
class="literal">polygene-repos</code> directory created earlier, alongside all 
repositories.</p><p>Convert to Asciidoc:</p><pre class="programlisting brush: 
shell">cat "apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.txt" | \
+  sed -e 
"s/\[POLYGENE-\([0-9]\)*\]/https:\/\/issues.apache.org\/jira\/browse\/POLYGENE-\1[POLYGENE-\1]/"
 | \
+  sed -e "s/    \* /- /" | sed -e "s/^\*\*/====/" \
+  &gt; 
"apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.adoc"</pre><p>Convert
 to Markdown:</p><pre class="programlisting brush: shell">cat 
"apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.txt" | \
+  sed -e 
"s/\[POLYGENE-\([0-9]*\)\]/[POLYGENE-\1](https:\/\/issues.apache.org\/jira\/browse\/POLYGENE-\1)/"
 | \
+  sed -e "s/    \* /- /" | sed -e "s/^\*\*/####/" \
+  &gt; 
"apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.md"</pre><p>You 
should then have the following files:</p><pre class="programlisting brush: 
shell">.
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.txt
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.adoc
+└── 
apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.md</pre><p>We will 
use them later.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_create_a_rc_branch"></a>Create a RC branch</h5></div></div></div><p>We use 
<code class="literal">&lt;RELEASE-VERSION&gt;-RC#</code> where <code 
class="literal">RELEASE-VERSION</code> is the target release version and <code 
class="literal">RC#</code> for Release Candidate and an incremental number in 
case the release process has to be done several times.</p><pre 
class="programlisting brush: shell">cd polygene-java
+git flow release start "&lt;RELEASE-VERSION&gt;-RC#"</pre><p>This will 
eventually generates a <code class="literal">&lt;RELEASE-VERSION&gt;-RC#</code> 
tag that we will amend with a <code 
class="literal">&lt;RELEASE-VERSION&gt;</code> signed tag if the vote passes, 
see below.</p></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_audit_artifacts_and_distributions"></a>Audit artifacts 
and distributions</h5></div></div></div><p>Make a complete build, deploying 
maven artifacts locally:</p><pre class="programlisting brush: shell">cd 
polygene-java
+./gradlew -Dversion="&lt;RELEASE-VERSION&gt;" assemble</pre><p>Review maven 
artifacts in <code 
class="literal">distributions/build/stage/maven-binaries</code>.</p><p>Also 
review the release distributions in <code 
class="literal">distributions/build/distributions</code> where you should find 
the following files:</p><pre class="programlisting brush: shell">.
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.MD5
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.SHA-512
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.asc
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.MD5
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.SHA-512
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.asc
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.MD5
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.SHA-512
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.asc
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.MD5
+├── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.SHA-512
+└── apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.asc</pre><p>If 
any, make the required changes, commit them and iterate.</p></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_close_the_rc_branch"></a>Close the RC branch</h5></div></div></div><p>Once 
you are satisfied with the produced artifacts, close the release candidate 
branch:</p><pre class="programlisting brush: shell">cd polygene-java
+git flow release finish "&lt;RELEASE-VERSION&gt;-RC#"</pre></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_checkout_the_rc_tag"></a>Checkout the RC tag</h5></div></div></div><p>To 
build the release candidate bits, we need to checkout the release candidate 
tag, that will eventually be promoted as a signed release tag, because the 
Apache Polygene™ build system generates versionning information based on git 
metadata.</p><pre class="programlisting brush: shell">cd polygene-java
+git checkout "&lt;RELEASE-VERSION&gt;-RC#"</pre></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_build_rc_artifacts_and_distributions"></a>Build RC artifacts and 
distributions</h5></div></div></div><pre class="programlisting brush: shell">cd 
polygene-java
+./gradlew -Dversion="&lt;RELEASE-VERSION&gt;" clean assemble</pre></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_stage_rc_maven_artifacts"></a>Stage RC maven 
artifacts</h5></div></div></div><p>Stage artifacts to <a class="ulink" 
href="https://repository.apache.org/"; target="_top">repository.apache.org</a> 
:</p><pre class="programlisting brush: shell">cd polygene-java
+./gradlew -Dversion="&lt;RELEASE-VERSION&gt;" 
publishAsfMavenArtifacts</pre><p>Close the staging Nexus repository by 
following the <a class="ulink" 
href="https://www.apache.org/dev/publishing-maven-artifacts.html#close-stage"; 
target="_top">Closing the staged repository</a> guide.</p></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_upload_rc_distributions"></a>Upload RC 
distributions</h5></div></div></div><p>Source and binary distributions, 
checksums and signatures must be uploaded to <a class="ulink" 
href="https://dist.apache.org/repos/dist/dev/polygene/"; 
target="_top">dist.apache.org/repos/dist/dev/polygene</a>.
+This build created these in the <code 
class="literal">buid/distributions</code> directory, named <code 
class="literal">apache-polygene-java-&lt;RELEASE-VERSION&gt;-[src|bin]*.*</code>.
+As this release still is a simple candidate, we’ll rename them before upload 
to advertise this in their names.</p><pre class="programlisting brush: shell"># 
Source ZIP
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.MD5"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.MD5"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.SHA-512"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.SHA-512"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.asc"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.asc"
+# Source TAR.GZ
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.MD5"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.MD5"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.SHA-512"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.SHA-512"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.asc"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.asc"
+# Binary ZIP
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.MD5"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.MD5"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.SHA-512"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.SHA-512"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.asc"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.asc"
+# Binary TAR.GZ
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.MD5"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.MD5"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.SHA-512"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.SHA-512"
+cp 
"polygene-java/distributions/build/distributions/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.asc"
 \
+   
"polygene-dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.asc"</pre><p>And
 then upload them:</p><pre class="programlisting brush: shell">cd 
polygene-dist/dev/polygene
+svn add * --force
+svn commit -m "polygene: upload &lt;RELEASE-VERSION&gt; to 
dist/dev/polygene"</pre></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_run_the_vote"></a>Run the 
vote</h4></div></div></div><p>Send a "VOTE" to the <a class="ulink" 
href="mailto:[email protected]"; target="_top">developer mailing list</a> 
including links to release artifacts. A VOTE always contains two parts. Send an 
email to the developer mailing list with the subject line:</p><pre 
class="programlisting brush: text">[VOTE] Release Polygene (Java Edition) 
version &lt;RELEASE-VERSION&gt;</pre><p>Here is a sample template:</p><pre 
class="programlisting brush: text">Dear community,
+
+I am happy to start the VOTE thread for Apache Polygene (Java Edition) 
&lt;RELEASE-VERSION&gt;!
+
+The changelog for this release can be found here: 
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316820&amp;version=12332997
+
+Tag: 
https://git-wip-us.apache.org/repos/asf?p=polygene-java.git;a=tag;h=refs/tags/&lt;RELEASE-VERSION&gt;-RC#
+
+The distributions to be voted on are located here: 
https://dist.apache.org/repos/dist/dev/polygene/
+
+Convenience artifacts in a maven repository are staged here: 
https://repository.apache.org/content/groups/staging/org/apache/polygene/
+
+Release distributions and convenience artifacts are signed with the following 
key: https://dist.apache.org/repos/dist/dev/polygene/KEYS
+
+Some guidance on how to validate distributions and artifacts can be found 
here: 
https://polygene.apache.org/java/develop/releasing-apache.html#_verifying_a_release_candidate
+
+Please vote on releasing this package as Apache Polygene (Java Edition) 
&lt;RELEASE-VERSION&gt;.
+
+The vote is open for the next 72 hours and passes if a majority of at least 
three +1 PMC votes are cast and there must be more positive than negative votes.
+
+[ ] +1 Release Apache Polygene (Java Edition) &lt;RELEASE-VERSION&gt;
+[ ]  0 I don't have a strong opinion about this, but I assume it's ok
+[ ] -1 Do not release Apache Polygene (Java Edition) &lt;RELEASE-VERSION&gt; 
because...
+
+Here is my vote:
+
++1 (binding)
+
+Cheers</pre><p>After the vote is over, send a "RESULT" email to the list with 
the subject line:</p><pre class="programlisting brush: text">[RESULT][VOTE] 
Release Polygene (Java Edition) version &lt;RELEASE-VERSION&gt;</pre><p>Here is 
a sample template:</p><pre class="programlisting brush: text">To: "Polygene 
Developers List" &lt;[email protected]&gt;
+CC: "Polygene Project Management Committee List" 
&lt;[email protected]&gt;
+Subject: [RESULT][VOTE] Release Polygene (Java Edition) version 
&lt;RELEASE-VERSION&gt;
+
+Hi,
+
+The vote has passed|failed with the following result:
+
++1 (binding): &lt;&lt;list of names&gt;&gt;
++1 (non binding): &lt;&lt;list of names&gt;&gt;
+
+I will promote|drop the distributions and artifacts.</pre><p>Votes on whether 
a package is ready to be released use majority approval — i.e., at least 
three PMC members must vote affirmatively for release, and there must be more 
positive than negative votes.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_verifying_a_release_candidate"></a>Verifying a Release 
Candidate</h4></div></div></div><p>In order to verify a Apache Polygene™ 
(Java Edition) release candidate you’ll need valid <code 
class="literal">wget</code>, <code class="literal">md5sum</code>, <code 
class="literal">shasum</code> with support for SHA-5.12, GnuPG and Java JDK 
&gt;= 7 installations.</p><p>If the setup feels like a chore, keep reading, you 
probably already have what’s needed for some of the checks.
+A single check is better than none.</p><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a id="_download_rc"></a>Download 
RC</h5></div></div></div><p>First go downloading the release candidate 
distributions from <a class="ulink" 
href="https://dist.apache.org/repos/dist/dev/polygene/"; 
target="_top">dist.a.o/repos/dist/dev/polygene</a>.
+Including <code class="literal">*.MD5</code>, <code 
class="literal">*.SHA-512</code> and <code class="literal">*.asc</code> files.
+Put them in a directory:</p><pre class="programlisting brush: shell">cd 
polygene-check-rc
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.MD5
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.SHA-512
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.asc
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.MD5
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.SHA-512
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.asc
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.MD5
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.SHA-512
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.asc
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.MD5
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.SHA-512
+wget 
https://dist.apache.org/repos/dist/dev/polygene/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.asc</pre></div><div
 class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_verify_rc_signatures"></a>Verify RC 
signatures</h5></div></div></div><p>Verify PGP signatures:</p><pre 
class="programlisting brush: shell">cd polygene-check-rc
+gpg apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.asc
+gpg apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.asc
+gpg apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.asc
+gpg apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.asc</pre><p>This 
must output <code class="literal">gpg: Good signature from "Signer Name 
&lt;[email protected]&gt;"</code> for each distribution.</p><p>Verify MD5 
checksum:</p><pre class="programlisting brush: shell">cd polygene-check-rc
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.MD5) 
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz" | md5sum -c -
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.MD5) 
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip" | md5sum -c -
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.MD5) 
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz" | md5sum -c -
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.MD5) 
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip" | md5sum -c 
-</pre><p>This must output <code class="literal">some-filename: OK</code> for 
each distribution.</p><p>Verify SHA-512 checksum:</p><pre class="programlisting 
brush: shell">cd polygene-check-rc
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.MD5)  
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz" | shasum -a 512 -c -
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.MD5)  
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip" | shasum -a 512 -c -
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.MD5)  
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz" | shasum -a 512 -c -
+echo "$(cat apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.MD5)  
apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip" | shasum -a 512 -c 
-</pre><p>This also must output <code class="literal">some-filename: OK</code> 
for each distribution.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_verify_source_distribution"></a>Verify source 
distribution</h5></div></div></div><p>Unpack the source distributions, we will 
use the <code class="literal">zip</code> distribution here, both should be 
checked.</p><pre class="programlisting brush: shell">cd polygene-check-rc
+unzip apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip
+cd apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src</pre><p><span 
class="strong"><strong>LICENSE &amp; NOTICE</strong></span></p><p>Review <code 
class="literal">LICENSE</code> and <code class="literal">NOTICE</code> file(s) ;
+see the Apache’s <a class="ulink" 
href="https://www.apache.org/dev/licensing-howto.html"; target="_top">Licensing 
Howto</a>.</p><p>Tools like <a class="ulink" 
href="https://creadur.apache.org/rat/"; target="_top">Apache Rat™</a> and 
other projects from <a class="ulink" href="https://creadur.apache.org/"; 
target="_top">Apache Creadur™</a> can come in handy.
+You can also <code class="literal">grep</code> the whole source 
tree.</p><p><span class="strong"><strong>Build RC from 
sources</strong></span></p><pre class="programlisting brush: shell">cd 
polygene-check-rc/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src
+./gradlew assemble check</pre></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_vote_passes"></a>VOTE 
passes</h4></div></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_seal_the_release"></a>Seal the release</h5></div></div></div><p>Create and 
sign the release git tag from the unsigned release candidate tag:</p><pre 
class="programlisting brush: shell">cd polygene-java
+git tag -s "&lt;RELEASE-VERSION&gt;" 
"&lt;RELEASE-VERSION&gt;-RC#"</pre><p>Push all git changes:</p><pre 
class="programlisting brush: shell">cd polygene-java
+git checkout master
+git push origin master
+git checkout develop
+git push origin master
+git push origin --tags</pre></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a id="_publish_bits"></a>Publish 
bits</h5></div></div></div><p>Promote the staged Nexus repository so it gets 
synched to Maven Central by following the <a class="ulink" 
href="https://www.apache.org/dev/publishing-maven-artifacts.html#promote"; 
target="_top">Promoting a repo</a> guide.</p><p>Move the release distributions, 
checksums and signatures from <a class="ulink" 
href="https://dist.apache.org/repos/dist/dev/polygene/"; 
target="_top">polygene-dist/dev/polygene</a> to <a class="ulink" 
href="https://dist.apache.org/repos/dist/release/polygene/"; 
target="_top">polygene-dist/release/polygene</a>:</p><pre class="programlisting 
brush: shell">cd polygene-dist
+# Source ZIP TODO
+export DIST_DEV_URL="https://dist.apache.org/repos/dist/dev/polygene";
+export DIST_RELEASE_URL="https://dist.apache.org/repos/dist/release/polygene";
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip" \
+     "$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.MD5" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.MD5" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.SHA-512"
 \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.SHA-512"
 \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.zip.asc" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.zip.asc" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+# Source TAR.GZ
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz" \
+     "$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.MD5" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.MD5" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.SHA-512"
 \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.SHA-512"
 \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-src.tgz.asc" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-src.tgz.asc" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+# Binary ZIP
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip" \
+     "$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.MD5" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.MD5" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.SHA-512"
 \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.SHA-512"
 \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.zip.asc" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.zip.asc" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+# Binary TAR.GZ
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz" \
+     "$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.MD5" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.MD5" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.SHA-512"
 \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.SHA-512"
 \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; distributions"
+svn move 
"$DIST_DEV_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-RC#-bin.tgz.asc" \
+     
"$DIST_RELEASE_URL/apache-polygene-java-&lt;RELEASE-VERSION&gt;-bin.tgz.asc" \
+     -m "polygene: promoting release &lt;RELEASE-VERSION&gt; 
distributions"</pre><p>This produces one commit per file but keep svn history 
and runs fast, without re-uploading the distributions.</p></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="_wait_24_hours"></a>Wait 24 hours</h5></div></div></div><p>For mirrors to 
pick up the new bits.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_prepare_an_announcement"></a>Prepare an 
announcement</h5></div></div></div><p>Coordinate a press release with <a 
class="ulink" href="mailto:[email protected]"; 
target="_top">[email protected]</a>.</p><pre 
class="literallayout">TODO</pre><p>You can reuse the release-notes content from 
the <code class="literal">txt</code>/<code class="literal">adoc</code>/<code 
class="literal">md</code> files created earlier.</p><p>This annoucement will be 
used in a variety of media like emails, websites etc…
+Start with a text version and once satisfied create at least a Markdown 
version for the website, see below.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_update_the_polygene_website"></a>Update the Polygene™ 
website</h5></div></div></div><p>Generate the documentation and javadoc 
minisite:</p><pre class="programlisting brush: shell">cd polygene-java
+./gradlew -Dversion="&lt;RELEASE-VERSION&gt;" 
copyAsfDocumentation</pre><p>This will automatically put all files into the 
<code class="literal">polygene-website</code> website repository.</p><p>Create 
a new post on the Polygene™ website by creating a new Markdown file:</p><pre 
class="programlisting brush: shell">cd polygene-website
+touch "src/_posts/YYYY-MM-DD-apache-polygene-java-&lt;RELEASE-VERSION&gt;.md"
+open !$</pre><p>You can reuse the Markdown formatted announcement 
content.</p><p>Add the new released version in <code 
class="literal">polygene-website/site/content/java/versions.json</code> below 
the <code class="literal">latest</code> entry:</p><pre class="programlisting 
brush: js">{
+    "develop": "develop",
+    "latest": "latest",
+    "&lt;RELEASE-VERSION&gt;", "&lt;RELEASE-VERSION&gt;",
+    "2.0": "2.0",
+    "&lt;=1.4.x": "1.4"
+}</pre><p>Finally, edit <code 
class="literal">polygene-website/site/src/_data/releases.yml</code> with the 
new release data.
+Upmost is the latest:</p><pre class="programlisting brush: text">- version: 
&lt;RELEASE-VERSION&gt;
+  announcement: YYYY/MM/DD/apache-polygene-java-&lt;RELEASE-VERSION&gt;
+  signer: John Doe
+  pgpId: FB751943</pre><p>You can run the Polygene™ website locally:</p><pre 
class="programlisting brush: shell">cd polygene-website
+jekyll serve</pre><p>Open <a class="ulink" href="http://127.0.0.1:4000/"; 
target="_top">http://127.0.0.1:4000/</a> to live-preview your 
changes.</p><p>Once you are satisfied with the changes, build the production 
website:</p><pre class="programlisting brush: shell">cd polygene-website
+jekyll build</pre><p>Link <code class="literal">/latest</code> to the latest 
release:</p><pre class="programlisting brush: shell">cd 
polygene-website/content/java
+ln -s &lt;RELEASE_VERSION&gt; latest</pre><p>And publish it:</p><pre 
class="programlisting brush: shell">cd polygene-website
+git add .
+git commit -m "update website"
+git push</pre></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_register_the_release"></a>Register the 
release</h5></div></div></div><p>Register the new release at <a class="ulink" 
href="https://reporter.apache.org/"; 
target="_top">reporter.apache.org</a></p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_announce"></a>Announce</h5></div></div></div><p>Finally, send an 
announcement to <a class="ulink" href="mailto:[email protected]"; 
target="_top">dev@</a> and <a class="ulink" 
href="mailto:[email protected]"; target="_top">users@</a> mailing lists. 
Email announcements should have the subject line:</p><pre class="programlisting 
brush: text">[ANNOUNCE] Released Polygene (Java Edition) version 
&lt;RELEASE-VERSION&gt;</pre><p>The announcement email should contains the 
release-notes as text, remember they are in the <code 
class="literal">apache-polygene-java-&lt;RELEASE-VERSION&gt;-release-notes.txt</cod
 e> file you created earlier.</p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_vote_fails"></a>VOTE 
fails</h4></div></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_record_failure"></a>Record failure</h5></div></div></div><p>We keep the 
release candidate git history.
+It can be useful for reviewers to have access to it.
+Remember, we created a release candidate branch and tags, no signed release 
tag.</p><pre class="programlisting brush: shell">cd polygene-java
+git checkout master
+git push origin master
+git checkout develop
+git push origin master
+git push origin --tags</pre></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_drop_rc_artifacts_and_distributions"></a>Drop RC artifacts and 
distributions</h5></div></div></div><p>Drop the Nexus staging repository by 
following the <a class="ulink" 
href="https://www.apache.org/dev/publishing-maven-artifacts.html#drop"; 
target="_top">Dropping a repo</a> guide.</p><p>Drop distributions, checksums 
and signatures from <a class="ulink" 
href="https://dist.apache.org/repos/dist/dev/polygene/"; 
target="_top">polygene-dist/dev/polygene</a></p><pre class="programlisting 
brush: shell">cd polygene-dist/dev/polygene/
+rm "*&lt;RELEASE-VERSION&gt;-RC#*.*"
+svn add * --force
+svn commit -m "polygene: dropping &lt;RELEASE-VERSION&gt;-RC# from 
dist/dev/polygene as the vote failed"</pre></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a id="_start_over"></a>Start 
over</h5></div></div></div><p>If a new RC is to be created, restart the process 
as described above.</p></div></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/sample-car-rental.html
----------------------------------------------------------------------
diff --git a/content/java/2017/sample-car-rental.html 
b/content/java/2017/sample-car-rental.html
new file mode 100644
index 0000000..6b0a402
--- /dev/null
+++ b/content/java/2017/sample-car-rental.html
@@ -0,0 +1,104 @@
+<?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>Car Rental Sample</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="samples.html" title="Samples" 
/><link rel="prev" href="sample-forum.html" title="Forum Sample" /><link 
rel="next" href="sample-sql-support.html" title="SQL Support Sample" />
+
+
+    <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"><span 
xmlns="" href="samples.html">Samples</span></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></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="samples.html#_overview_2">Overview</a></span></dt><dt><span 
class="section"><a href="sample-dci.html">DCI Sample</a></span></dt><dt><span 
class="section"><a href="sample-forum.html">Forum 
Sample</a></span></dt><dt><span class="section"><span xmlns="" 
href="sample-car-rental.html">Car Rental Sample</span></span></dt><dt><span 
class="section"><a href="sample-sql-support.html">SQL Support 
Sample</a></span></dt><dt><span class="section"><a 
href="sample-swing.html">Swing Bindings 
Sample</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a id="sample-car-rental"></a>Car 
Rental Sample</h3></div></div></div><p>Sample of implementation of a Car Rental 
application implemented as a Servlet
+based Webapp packaged as a WAR.</p><p><a class="ulink" 
href="https://github.com/apache/polygene-java/tree/develop/samples/rental"; 
target="_top">Browse Source</a></p></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