http://git-wip-us.apache.org/repos/asf/polygene-website/blob/bb9c9971/content/java/2017/index.html
----------------------------------------------------------------------
diff --git a/content/java/2017/index.html b/content/java/2017/index.html
new file mode 100644
index 0000000..b04538b
--- /dev/null
+++ b/content/java/2017/index.html
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title></title><meta name="generator" 
content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="index.html" 
title="" /><link rel="next" href="intro.html" title="Introduction" />
+
+
+    <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"><span xmlns="" 
href="index.html#home">Polygene™</span></span></dt><dt><span 
class="section"><a href="intro.html">Introduction</a></span></dt><dt><span 
class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span 
class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span 
class="section"><a href="samples.html">Samples</a></span></dt><dt><span 
class="section"><a href="core.html">Core</a></span></dt><dt><span 
class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span 
class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span 
class="section"><a href="tools.html">Tools</a></span></dt><dt><span 
class="section"><a href="glossary.html">Glossary 
</a></span></dt></dl></div></span></div></div></nav><div xmlns="" 
xmlns:exsl="http://exslt
 .org/common" class="sidenav"></div><div xml:lang="en" class="article" 
lang="en"><div class="titlepage"><hr /></div><div class="section"><div 
class="titlepage"><div><div><h2 class="title"><a 
id="home"></a>Polygene™</h2></div></div></div><div class="important" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">3.0-RC0</h3><p>This is the documentation for <span 
class="strong"><strong>Polygene™ 3.0-RC0</strong></span>. Use the version 
switcher on the left to browse other
+versions documentation.</p></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="_what_is_apache_polygene"></a>What is Apache Polygene™ 
?</h3></div></div></div><p>The short answer is that Apache Polygene™ is a 
framework for domain centric application development, including evolved
+concepts from <a class="ulink" 
href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"; 
target="_top">AOP</a>,
+<a class="ulink" href="http://en.wikipedia.org/wiki/Dependency_injection"; 
target="_top">DI</a> and <a class="ulink" 
href="http://en.wikipedia.org/wiki/Domain-driven_design"; 
target="_top">DDD</a>.</p><p>Polygene™ is an implementation of Composite 
Oriented Programming, using the standard Java platform, without the use of
+any pre-processors or new language elements. Everything you know from Java 
still applies and you can leverage both
+your experience and toolkits to become more productive with Composite Oriented 
Programming today.</p><p>Moreover, Polygene™ enables Composite Oriented 
Programming on the Java platform, including both Java and Scala as primary
+languages as well as many of the plethora of languages running on the JVM as 
bridged languages.</p><p>We strongly recommend the <a class="link" 
href="intro.html" title="Introduction">introduction</a> section.</p></div><div 
class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="_brief_history"></a>Brief History</h3></div></div></div><p>Apache 
Polygene™ started its life in 2007 as Qi4j™, initially at OPS4J’s 
infrastructure and later on GitHub.
+In March 2015, Apache Polygene™ was created with the Qi4j™ codebase as the 
base, existing Apache Members as the
+bootstrap Project Management Committee (PMC).</p><p><span 
class="inlinemediaobject"><img src="images/intro-qi.png" alt="Qi" 
/></span></p><p>Qi4j™ is pronounced "chee for jay". This website is out of 
scope to explain the many
+facets and history of Qi, so we refer the interested to read the <a 
class="ulink" href="http://en.wikipedia.org/wiki/Qi"; target="_top">lengthy 
article</a> at
+Wikipedia. For us, Qi is the force/energy within the body, in this case the 
Java platform. Something that makes Java
+so much better, if it is found and channeled into a greater 
good.</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/intro.html
----------------------------------------------------------------------
diff --git a/content/java/2017/intro.html b/content/java/2017/intro.html
new file mode 100644
index 0000000..c25bf5a
--- /dev/null
+++ b/content/java/2017/intro.html
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Introduction</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="index.html" title="" /><link 
rel="prev" href="index.html" title="" /><link rel="next" 
href="tools-shell.html" title="Polygene Generator" />
+
+
+    <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"><span xmlns="" 
href="intro.html#highlights">Highlights</span></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"><a 
href="related.html">Related publications &amp; 
projects</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h2 class="title"><a 
id="intro"></a>Introduction</h2></div></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a id="highlights
 "></a>Highlights</h3></div></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_principles"></a>Principles</h4></div></div></div><p>Composite Oriented 
Programming builds on some principles that are not addressed by Object Oriented 
Programming at all.</p><div class="itemizedlist"><ul class="itemizedlist" 
type="disc"><li class="listitem">
+Behavior depends on Context
+</li><li class="listitem">
+Decoupling is a virtue
+</li><li class="listitem">
+Business Rules matters more.
+</li><li class="listitem">
+Classes are dead, long live interfaces.
+</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_behavior_depends_on_context"></a>Behavior Depends on 
Context</h5></div></div></div><p>Many objects has life cycles that are more 
extensive than the simple model that Object Oriented Programming model wants
+us to believe. A few simple examples;</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
+An egg becomes a chicken which in turn becomes food.
+</li><li class="listitem">
+I am a programmer at work, a father+husband at home, a victim in a traffic 
accident and hunter and pray in the jungle.
+</li></ul></div><p>But it is more to it than that. The composition of the 
object may change over time. My home now has a garage and my car
+have different kind of problems with their own state related to it.</p><p>In 
the programming world, we are constantly faced with change of requirements. 
These changes are often not related to
+any real world changes, but people coming to new insights of the problem 
domain. OOP makes those changes a big deal,
+and often we have to tear up large chunks of the model and redo the 
work.</p><p>But wait, there is more.</p><p>Some objects traverses different 
scope boundaries to the extreme. For instance, a Person will have its attributes
+changing slightly over time, new abilities be learnt and so forth, that is 
mentioned above. But the Person will
+eventually die, but that doesn’t mean that the Person object should be 
deleted from a system, since the "memory of"
+that Person may live on for a long time. In a OOP system, we would need to 
transfer some of the state from a
+LivingPerson class to a DeadPerson class. In Composite Oriented Programming, 
it is the same object with different
+behavior.</p><p>We think that one of the the main flaws in OOP is that it is 
not object oriented at all, but in fact class oriented.
+Class is the first class citizen that objects are derived from. Not objects 
being the first-class citizen to which
+one or many classes are assigned.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_decoupling_is_virtue"></a>Decoupling is 
Virtue</h5></div></div></div><p>Decoupling is more important than developers in 
general think. If you could have every OOP class decoupled from all
+other classes, it is easy to re-use that class. But when that class references 
another class and the chain never ends,
+your chances of re-use diminishes quickly.</p><p>Object Oriented Programming 
is suffering a lot from this, and many mechanisms have been introduced over 
time to counter
+this problem. But in reality, the best we can manage is subsystems of 
functionality, which client code can re-use. And
+these subsystems tend to be infrastructure related, since domain models are 
less prone to be similar enough from one
+project to the next, and since OOP in reality constrains the the re-use of 
individual domain classes, we need to re-do
+the domain model from scratch ever time.</p></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="_business_rules_matters_more"></a>Business Rules matters 
more</h5></div></div></div><p>Smart developers often think that low-level, 
infrastructure and framework code is more important and more cool to work
+with, than the simple domain model. But in reality, it is the Domain Model 
that reflects the actual need  and pays the
+bills. Infrastructure is just a necessary evil to get things done.</p><p>If 
most developers could focus on the Business Rules and Domain Model, and not 
having to worry about any infrastructure
+issues, such as persistence, transactions, security or the framework housing 
it all, the productivity would surge. Eric
+Evans has written an excellent book about Domain Driven Design, where he goes 
through the real process that makes the
+money for companies. However, it is very hard to follow that book, since one 
is constantly caught up in constraints
+irrelevant to the domain model, introduced by the underlying framework, from 
the so called smart developers.</p><p><span class="inlinemediaobject"><img 
src="images/classes-are-dead.gif" alt="classes-are-dead.gif" 
/></span></p><p>Polygene™ is trying to address the flaws of OOP and introduce 
Composite Oriented Programming to the world, without
+introducing new programming languages, or awkward constructs. Heck, we don’t 
even use any XML.</p><p>Polygene™ is not a framework. It is a new way to 
write code. Other people might create frameworks using Polygene™, or create a
+framework optimized for Polygene™, but here at Polygene™ we concentrate to 
make Polygene™ behave well in existing frameworks,
+application servers, platforms and environments.</p><p>You are to embark on a 
new journey. Enjoy!</p></div></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/introduction-background.html
----------------------------------------------------------------------
diff --git a/content/java/2017/introduction-background.html 
b/content/java/2017/introduction-background.html
new file mode 100644
index 0000000..464831f
--- /dev/null
+++ b/content/java/2017/introduction-background.html
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8" /><title>Background</title><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="tools-shell.html" title="Polygene 
Generator" /><link rel="next" href="what-is-cop.html" title="What is COP?" />
+
+
+    <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"><span xmlns="" 
href="introduction-background.html">Background</span></span></dt><dt><span 
class="section"><a href="what-is-cop.html">What is 
COP?</a></span></dt><dt><span class="section"><a 
href="what-s-an-object-anyway.html">What’s an Object 
anyway?</a></span></dt><dt><span class="section"><a 
href="state-modeling.html">Polygene™ and state 
modeling</a></span></dt><dt><span class="section"><a 
href="related.html">Related publications &amp; 
projects</a></span></dt></dl></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="introduction-background"></a>Background</h3></div></div></div><p>Polygene™
 is the first Composite Oriented Programming implementation
  leveraging the Java 5 platform, so that everything you
+know from Java 5 still applies. You can mix Polygene™ with your ordinary 
Java code as much as you want. All your existing
+Java tools works just like before, and Polygene™ does not introduce any new 
programming language, no special development
+tools needed and no XML is required.</p><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_purpose"></a>Purpose</h4></div></div></div><p>Polygene™ addresses the 
programming problems from the top-down, starting with the Domain Model and 
Business Rules needs,
+and let those requirements flow downwards in the software stack and dictate 
the requirements for underlying layers
+such as persistence, messaging, querying and more. This means that the 
business value developer is left to
+concentrate on the domain models and the actual application bringing the 
value, instead of creating massive amounts
+of glue code to tie underlying technologies together.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_problem_descriptions"></a>Problem 
Descriptions</h4></div></div></div><p>Polygene™ didn’t appear out of the 
blue, when the founders of the project had nothing better to do. It is the 
result of
+observation of problems in real applications, and the experience from previous 
attempts to address or correct these
+problems, that has led to the Polygene™ vision.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_object_oriented_programming_oop"></a>Object Oriented Programming 
(OOP)</h4></div></div></div><p>How can OOP be a problem? We and others have 
observed that there is a fundamental flaw in the OOP model. In fact, we
+would like to even state that OOP as it is commonly practiced today is not 
object oriented at all. The object is not
+the primary citizen, instead the class is the primary artifact. In most 
mainstream OOP languages, Objects are derived
+from classes, not that classes are assigned to created objects. Therefore, we 
think it should have been called Class
+Oriented Programming. We can also see this class focus in many of the 
technologies in Java today: in Spring you declare
+class names in application contexts, JSP uses class names to declare beans and 
so forth.</p><p>This in turn leads to that there is no good OOP solution for 
the problem we describe below.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_behavior_depends_on_context_2"></a>Behavior depends on 
Context</h4></div></div></div><p>Once you start thinking of "Behavior depends 
on Context", you have a hard time understanding how people for the last 20
+years or so of Object Oriented Programming (OOP) has ignored this 
fact.</p><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="_who_am_i"></a>Who am I?</h5></div></div></div><p>When I 
sitting in front of the computer, I am a software developer, but if I go out in 
the jungle, I am suddenly
+hunter-gatherer and prey. A large set of me is the same, but my interaction 
with the surroundings, i.e. the context, is
+very different. I need different interfaces, so to speak, in these two 
different contexts.</p><p>Now, the above example is perhaps a bit extreme, but 
we see it in everyday life of the developer. When an object is
+stored in the database it is of a different class, than when it is transported 
to the client and possibly when it is
+displayed in the GUI. We see the effect of this problem in many of the design 
patterns and so called "best practices"
+in Java EE development. Facades, delegation, data transport objects and many 
more.</p></div></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_coupling"></a>Coupling</h4></div></div></div><p>The OOP 
proponents once proclaimed that classes can be re-used, since the code is 
encapsulated with the class, so the
+class is an independent unit which lends itself well to re-use. In reality, 
however, we have found that classes becomes
+tightly coupled with many other classes in their neighborhood, leading to 
impossibilities of single class re-use. Many
+tricks are introduced to minimize the "Coupling Hell", such as Inversion of 
Control and Dependency Injection. Although
+those tools are good, the underlying problem remains.</p><p>Why do we end up 
with large coupled class network graphs?</p><p>Essentially, it boils down to 
"scope". Classes are too large, their scope is too large, and for each small 
functional
+unit within the class, there will be additional coupling to other classes. And 
this often progresses to the full
+boundary of the entire domain the class remains in.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_application_layer_impedance_mismatch"></a>Application layer impedance 
mismatch</h4></div></div></div><p>Almost all technologies used in modern 
software development, starts by looking at an infrastructural problem and try to
+solve that the best way. This is often done in a vacuum and layers on top will 
be struggling to map or translate the
+solution into the higher abstraction, and the higher up we get, the harder it 
becomes to ignore the assumptions,
+problems and limitations of the underlying technologies. It is also common 
that the underlying technologies "bleeds"
+through the layers all the way into the domain models. The "bleed" combined 
with the problem of using independently
+developed technologies, puts a large burden on the application developer, 
whose job it is to bring business value. And
+often, the most skilled developers end up doing the bottom layers, leaving the 
hardest job to the least suitable.
+Another interesting consequence is that each layer needs to anticipate every 
single use-case - real, potential or
+perceived - and deal with it in a specifiable and useful manner. This leads to 
overly complex solutions, compared to if
+the system is built from the top layer down, where each layer beneath knows 
exactly what is expected from it, and only
+needs to handle those use-cases.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_abstracting_away_meaning"></a>Abstracting away 
meaning.</h4></div></div></div><p>To paraphrase a famous proverb about a 
hammer: "If all you have are objects, everything looks like a dependency."
+We think that increasing abstraction often also increases complexity, and that 
the abstraction benefits are somewhat
+linear whereas the complexity negatives are exponential. So, our conclusion is 
that by making no distinction between
+different kinds of objects, many sound technologies run into incredibly 
difficult problems. The implementation of the
+programming platform (e.g. Java) is of course easier to implement with a hefty 
amount of scope reduction into as few as
+possible abstractions. But that is not the situation for the user. The 
abstraction is then required to be reversed when
+the rubber hits the road, e.g. ORM mapping must be declared explicitly by the 
programmer, often using separate tools
+and languages.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_solution"></a>Solution</h4></div></div></div><p>We think the solution was 
expressed more than 2500 years ago, first by Indian scholars and slightly later 
by Leucippus
+and Democritus. We are of course talking about atoms, and by using really 
small building blocks, we can express
+arbitrarily complex structures.
+By reducing the classes into what we in Composite Oriented Programming call 
Fragments, we limit the coupling network
+graph substantially. Re-use of Fragments becomes a reality, and by combination 
of Fragments, we compose larger
+structures, the Composites.</p></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_composition"></a>Composition</h4></div></div></div><p>Composite Oriented 
Programming also view the object, we call it the Composite instance, as the 
first class citizen. The
+Composite instance can be cast to any context, meaning a different behavior 
can be applied to the Composite instance,
+without affecting its underlying state. And back. This in turn means that we 
can for instance create a
+ServerContextualInvoiceEntity, transport that across to a client, cast it to a 
GuiContextualInvoiceEntity do the
+modifications to the underlying state, possibly using extra interfaces and 
methods for interacting with the GUI
+environment, and then transport the modified object back to the server, cast 
it back to the
+ServerContextualInvoiceEntity, and then persist the changes.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="_domain_driven_design_focus"></a>Domain Driven Design 
focus</h4></div></div></div><p>Composite Oriented Programming is heavily 
influenced by the book "Domain Driven Design" by Eric Evans. And we are
+trying to use his analysis of the problem to provide the mechanisms needed to 
get the job done quicker and more
+reliably. Mr Evans talks about Applications, Layers, Modules, Specifications, 
SideEffects and so forth, and all of
+these should be present in a Composite Oriented Programming implementation, 
and to a large extent it is in Polygene™.</p></div></div><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/javadocs.html
----------------------------------------------------------------------
diff --git a/content/java/2017/javadocs.html b/content/java/2017/javadocs.html
new file mode 100644
index 0000000..29019fc
--- /dev/null
+++ b/content/java/2017/javadocs.html
@@ -0,0 +1,135 @@
+<?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>Javadoc</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" 
href="index.html" title="" /><link rel="up" href="index.html" title="" /><link 
rel="prev" href="releasing-apache.html" title="Releasing Polygene™" /><link 
rel="next" href="samples.html" title="Samples" />
+
+
+    <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"><span 
xmlns="" href="javadocs.html">Javadoc</span></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"><span xmlns="" 
href="javadocs.html#_javadocs">JavaDocs</span></span></dt></dl></div></div><div 
class="section"><div class="titlepage"><div><div><h2 class="title"><a 
id="javadocs"></a>Javadoc</h2></div></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="_javadocs"></a>JavaDocs</h3></div></div></div><p>In this section you will 
find links to JavaDocs corresponding to this Apache Polygene™ (Java Edition) 
version (3.0-RC0), to some alias versions, and finally, to previous 
releases.</p><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="_apache_polygene_java_edition_3_0_rc0"></a>Apache 
Polygene™ (Java Edition) 3.0-RC0</h4></div></div></div><div 
class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+<a class="ulink" href="javadocs/index.html" target="_top">Release 3.0-RC0</a>
+</li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a id="_alias_versions"></a>Alias 
Versions</h4></div></div></div><p>Links to <span class="emphasis"><em>"alias 
versions"</em></span> JavaDocs:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/latest/javadocs/"; 
target="_top">Latest Release (<code class="literal">master</code> branch)</a>
+</li><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/develop/javadocs/"; 
target="_top">Development (<code class="literal">develop</code> branch)</a>
+</li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="_previous_releases"></a>Previous Releases</h4></div></div></div><p>Archived 
JavaDocs of previous releases:</p><div class="itemizedlist"><ul 
class="itemizedlist" type="disc"><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/2.1/javadocs/"; 
target="_top">Release 2.1</a>
+</li><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/2.0/javadocs/"; 
target="_top">Release 2.0</a>
+</li><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/1.4.1/javadocs/"; 
target="_top">Release 1.4.1</a>
+</li><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/1.4/javadocs/"; 
target="_top">Release 1.4</a>
+</li><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/1.3/javadocs/"; 
target="_top">Release 1.3</a>
+</li><li class="listitem"><p class="simpara">
+Release 1.2
+</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li 
class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/1.2/javadocs/api"; 
target="_top">Core API</a>
+</li><li class="listitem">
+<a class="ulink" 
href="https://polygene.apache.org/java/1.2/javadocs/bootstrap"; 
target="_top">Core Bootstrap</a>
+</li><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/1.2/javadocs/spi"; 
target="_top">Core SPI</a>
+</li></ul></div></li><li class="listitem"><p class="simpara">
+Release 1.0
+</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li 
class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/1.0/javadocs/api"; 
target="_top">Core API</a>
+</li><li class="listitem">
+<a class="ulink" 
href="https://polygene.apache.org/java/1.0/javadocs/bootstrap"; 
target="_top">Core Bootstrap</a>
+</li><li class="listitem">
+<a class="ulink" href="https://polygene.apache.org/java/1.0/javadocs/spi"; 
target="_top">Core SPI</a>
+</li></ul></div></li></ul></div></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/js/imagescaler.js
----------------------------------------------------------------------
diff --git a/content/java/2017/js/imagescaler.js 
b/content/java/2017/js/imagescaler.js
new file mode 100644
index 0000000..eea583e
--- /dev/null
+++ b/content/java/2017/js/imagescaler.js
@@ -0,0 +1,86 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *
+ */
+
+/* Smart Image Scaling
+ * Makes sure images are never scaled to more than 100%
+ * while preserving image scaling as much as possible.
+ */
+
+jQuery( window ).load(  function()
+{
+  setImageSizes( jQuery );
+});
+
+function setImageSizes( $ )
+{
+  $( "span.inlinemediaobject > img[width]" ).each( function()
+  {
+    var img = this;
+    var width = $( this ).parent().width();
+    if ( img.naturalWidth && width > img.naturalWidth )
+    {
+      removeWidth( img );
+    }
+    else if ( img.realWidth && width > img.realWidth )
+    {
+      removeWidth( img );
+    }
+    else
+    {
+      $("<img />")
+        .attr( "src", img.getAttribute( "src" ) + "?" + new Date().getTime() )
+        .load( function( )
+        {
+          img.realWidth = this.width;
+          if ( width > this.width )
+          {
+            removeWidth( img );
+          }
+        });
+    }
+  });
+}
+
+function resetImageSizes( $ )
+{
+  $( "span.inlinemediaobject > img" ).each( function()
+  {
+    if ( this.originalWidth )
+    {
+      this.setAttribute( "width", this.originalWidth );
+    }
+  });
+  setImageSizes( $ );
+}
+
+jQuery( window ).resize( function()
+{
+  resetImageSizes( jQuery );
+});
+
+function removeWidth( image )
+{
+  if ( ! image.originalWidth )
+  {
+    image.originalWidth = image.getAttribute( "width" );
+  }
+  image.removeAttribute( "width" );
+}
+

Reply via email to