http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/callouts/8.svg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/callouts/8.svg b/content/java/develop/images/icons/callouts/8.svg new file mode 100644 index 0000000..3d6935c --- /dev/null +++ b/content/java/develop/images/icons/callouts/8.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ 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. + ~ + ~ + --> + +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M16.28,26.712c-5.124,0-6.888-3.332-6.888-6.048c0-1.009,0-3.641,3.024-5.04 + c-1.568-0.784-2.408-2.044-2.408-3.893c0-3.388,2.716-5.432,6.188-5.432c4.116,0,6.3,2.436,6.3,5.18 + c0,1.708-0.7,3.164-2.296,4.004c1.903,0.952,2.968,2.212,2.968,4.788C23.168,22.792,21.544,26.712,16.28,26.712z M16.224,17.332 + c-1.428,0-2.8,0.924-2.8,3.08c0,1.903,1.092,3.164,2.884,3.164c2.043,0,2.829-1.765,2.829-3.137 + C19.137,19.04,18.408,17.332,16.224,17.332z M18.744,11.899c0-1.512-1.036-2.464-2.296-2.464c-1.764,0-2.688,1.008-2.688,2.464 + c0,1.177,0.868,2.464,2.548,2.464C17.848,14.363,18.744,13.328,18.744,11.899z"/> + </g> +</g> +</svg>
http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/callouts/9.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/callouts/9.png b/content/java/develop/images/icons/callouts/9.png new file mode 100644 index 0000000..a0676d2 Binary files /dev/null and b/content/java/develop/images/icons/callouts/9.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/callouts/9.svg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/callouts/9.svg b/content/java/develop/images/icons/callouts/9.svg new file mode 100644 index 0000000..f5d70eb --- /dev/null +++ b/content/java/develop/images/icons/callouts/9.svg @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ 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. + ~ + ~ + --> + +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M13.953,21.921v0.027c0.224,1.372,1.092,1.961,2.296,1.961c1.624,0,3.248-1.372,3.276-5.545 + l-0.057-0.056c-0.896,1.344-2.436,1.68-3.78,1.68c-3.808,0-6.02-2.884-6.02-6.216c0-4.872,2.884-7.14,6.776-7.14 + c6.888,0,7,7.42,7,10.22c0,7.7-3.641,10.192-7.224,10.192c-3.388,0-5.824-1.96-6.16-5.124H13.953z M16.529,16.853 + c1.372,0,2.884-0.979,2.884-3.332c0-2.268-0.98-3.668-2.996-3.668c-1.008,0-2.828,0.504-2.828,3.36 + C13.589,16.209,15.045,16.853,16.529,16.853z"/> + </g> +</g> +</svg> http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/caution.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/caution.png b/content/java/develop/images/icons/caution.png new file mode 100644 index 0000000..c6b6fd4 Binary files /dev/null and b/content/java/develop/images/icons/caution.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/example.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/example.png b/content/java/develop/images/icons/example.png new file mode 100644 index 0000000..1199e86 Binary files /dev/null and b/content/java/develop/images/icons/example.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/home.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/home.png b/content/java/develop/images/icons/home.png new file mode 100644 index 0000000..37a5231 Binary files /dev/null and b/content/java/develop/images/icons/home.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/important.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/important.png b/content/java/develop/images/icons/important.png new file mode 100644 index 0000000..49a8279 Binary files /dev/null and b/content/java/develop/images/icons/important.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/next.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/next.png b/content/java/develop/images/icons/next.png new file mode 100644 index 0000000..64e126b Binary files /dev/null and b/content/java/develop/images/icons/next.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/note.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/note.png b/content/java/develop/images/icons/note.png new file mode 100644 index 0000000..b35e7be Binary files /dev/null and b/content/java/develop/images/icons/note.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/prev.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/prev.png b/content/java/develop/images/icons/prev.png new file mode 100644 index 0000000..3e8f12f Binary files /dev/null and b/content/java/develop/images/icons/prev.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/tip.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/tip.png b/content/java/develop/images/icons/tip.png new file mode 100644 index 0000000..7ec2ce7 Binary files /dev/null and b/content/java/develop/images/icons/tip.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/up.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/up.png b/content/java/develop/images/icons/up.png new file mode 100644 index 0000000..2db1ce6 Binary files /dev/null and b/content/java/develop/images/icons/up.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/icons/warning.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/icons/warning.png b/content/java/develop/images/icons/warning.png new file mode 100644 index 0000000..39d3ec9 Binary files /dev/null and b/content/java/develop/images/icons/warning.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/intro-10-mins.jpg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/intro-10-mins.jpg b/content/java/develop/images/intro-10-mins.jpg new file mode 100644 index 0000000..90405ec Binary files /dev/null and b/content/java/develop/images/intro-10-mins.jpg differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/intro-2-hours.jpg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/intro-2-hours.jpg b/content/java/develop/images/intro-2-hours.jpg new file mode 100644 index 0000000..7fbf114 Binary files /dev/null and b/content/java/develop/images/intro-2-hours.jpg differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/intro-2-mins.jpg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/intro-2-mins.jpg b/content/java/develop/images/intro-2-mins.jpg new file mode 100644 index 0000000..a2393e0 Binary files /dev/null and b/content/java/develop/images/intro-2-mins.jpg differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/intro-30-mins.jpg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/intro-30-mins.jpg b/content/java/develop/images/intro-30-mins.jpg new file mode 100644 index 0000000..5dd941f Binary files /dev/null and b/content/java/develop/images/intro-30-mins.jpg differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/intro-background.jpg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/intro-background.jpg b/content/java/develop/images/intro-background.jpg new file mode 100644 index 0000000..5205c20 Binary files /dev/null and b/content/java/develop/images/intro-background.jpg differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/intro-qi.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/intro-qi.png b/content/java/develop/images/intro-qi.png new file mode 100644 index 0000000..4f68cf6 Binary files /dev/null and b/content/java/develop/images/intro-qi.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/library-jmx.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/library-jmx.png b/content/java/develop/images/library-jmx.png new file mode 100644 index 0000000..ee2dbe4 Binary files /dev/null and b/content/java/develop/images/library-jmx.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/logo-box-qi4j.jpg ---------------------------------------------------------------------- diff --git a/content/java/develop/images/logo-box-qi4j.jpg b/content/java/develop/images/logo-box-qi4j.jpg new file mode 100644 index 0000000..1e5978a Binary files /dev/null and b/content/java/develop/images/logo-box-qi4j.jpg differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/logo-standard-zest.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/logo-standard-zest.png b/content/java/develop/images/logo-standard-zest.png new file mode 100644 index 0000000..c8b255f Binary files /dev/null and b/content/java/develop/images/logo-standard-zest.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/logo-standard.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/logo-standard.png b/content/java/develop/images/logo-standard.png new file mode 100644 index 0000000..2d22919 Binary files /dev/null and b/content/java/develop/images/logo-standard.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/mailing-archives.gif ---------------------------------------------------------------------- diff --git a/content/java/develop/images/mailing-archives.gif b/content/java/develop/images/mailing-archives.gif new file mode 100644 index 0000000..768a580 Binary files /dev/null and b/content/java/develop/images/mailing-archives.gif differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/mailing-subscribe.gif ---------------------------------------------------------------------- diff --git a/content/java/develop/images/mailing-subscribe.gif b/content/java/develop/images/mailing-subscribe.gif new file mode 100644 index 0000000..dec27b5 Binary files /dev/null and b/content/java/develop/images/mailing-subscribe.gif differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/mailing-unsubscribe.gif ---------------------------------------------------------------------- diff --git a/content/java/develop/images/mailing-unsubscribe.gif b/content/java/develop/images/mailing-unsubscribe.gif new file mode 100644 index 0000000..70f353f Binary files /dev/null and b/content/java/develop/images/mailing-unsubscribe.gif differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/polygene-blue.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/polygene-blue.png b/content/java/develop/images/polygene-blue.png new file mode 100644 index 0000000..6918246 Binary files /dev/null and b/content/java/develop/images/polygene-blue.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/tools-entity-viewer.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/tools-entity-viewer.png b/content/java/develop/images/tools-entity-viewer.png new file mode 100644 index 0000000..d26d68b Binary files /dev/null and b/content/java/develop/images/tools-entity-viewer.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/tools-envisage-stacked-collapsed.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/tools-envisage-stacked-collapsed.png b/content/java/develop/images/tools-envisage-stacked-collapsed.png new file mode 100644 index 0000000..33a0bec Binary files /dev/null and b/content/java/develop/images/tools-envisage-stacked-collapsed.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/tools-envisage-stacked.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/tools-envisage-stacked.png b/content/java/develop/images/tools-envisage-stacked.png new file mode 100644 index 0000000..ddcdb53 Binary files /dev/null and b/content/java/develop/images/tools-envisage-stacked.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/tools-envisage-structure.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/tools-envisage-structure.png b/content/java/develop/images/tools-envisage-structure.png new file mode 100644 index 0000000..1ecd0ce Binary files /dev/null and b/content/java/develop/images/tools-envisage-structure.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/images/tools-envisage-type.png ---------------------------------------------------------------------- diff --git a/content/java/develop/images/tools-envisage-type.png b/content/java/develop/images/tools-envisage-type.png new file mode 100644 index 0000000..326cbbb Binary files /dev/null and b/content/java/develop/images/tools-envisage-type.png differ http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/index.html ---------------------------------------------------------------------- diff --git a/content/java/develop/index.html b/content/java/develop/index.html new file mode 100644 index 0000000..7ff5c5f --- /dev/null +++ b/content/java/develop/index.html @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="next" href="intro.html" title="Introduction" /> + + +<!-- 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><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><span xmlns="" href="index.html#home">Polygeneâ¢</span></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"></div><div xml:lang="en" class="article" lang="en"><div class="titlepage"><hr /></div><div class="section" title="Polygeneâ¢"><div class="titlepage"><div><div><h2 class="title"><a id="home"></a>Polygeneâ¢</h2></div></div></div><div class="important" title="Polygene⢠3.0-SNAPSHOT" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Polygene⢠3.0-SNAPSHOT</h3><p>This is the documentation for <span class="strong"><strong>Polygene⢠3.0-SNAPSHOT</strong></span>. Use the version switcher on the left to browse other +versions documentation.</p></div><div class="section" title="What is Apache Polygene⢠?"><div class="titlepage"><div><div><h3 class="title"><a id="_what_is_apache_polygene"></a>What is Apache Polygene⢠?</h3></div></div></div><p>The short answer is that Apache Polygene⢠is a framework for domain centric application development, including evolved +concepts from <a class="ulink" href="http://en.wikipedia.org/wiki/Aspect-oriented_programming" target="_top">AOP</a>, +<a class="ulink" href="http://en.wikipedia.org/wiki/Dependency_injection" target="_top">DI</a> and <a class="ulink" href="http://en.wikipedia.org/wiki/Domain-driven_design" target="_top">DDD</a>.</p><p>Polygene⢠is an implementation of Composite Oriented Programming, using the standard Java platform, without the use of +any pre-processors or new language elements. Everything you know from Java still applies and you can leverage both +your experience and toolkits to become more productive with Composite Oriented Programming today.</p><p>Moreover, Polygene⢠enables Composite Oriented Programming on the Java platform, including both Java and Scala as primary +languages as well as many of the plethora of languages running on the JVM as bridged languages.</p><p>We strongly recommend the <a class="link" href="intro.html" title="Introduction">introduction</a> section.</p></div><div class="section" title="Brief History"><div class="titlepage"><div><div><h3 class="title"><a id="_brief_history"></a>Brief History</h3></div></div></div><p>Apache Polygene⢠started its life in 2007 as Qi4jâ¢, initially at OPS4Jâs infrastructure and later on GitHub. +In March 2015, Apache Polygene⢠was created with the Qi4j⢠codebase as the base, existing Apache Members as the +bootstrap Project Management Committee (PMC).</p><p><span class="inlinemediaobject"><img src="images/intro-qi.png" alt="Qi" /></span></p><p>Qi4j⢠is pronounced "chee for jay". This website is out of scope to explain the many +facets and history of Qi, so we refer the interested to read the <a class="ulink" href="http://en.wikipedia.org/wiki/Qi" target="_top">lengthy article</a> at +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><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p> + Copyright © 2015 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/" target="_blank">Apache License, Version 2.0</a>. + <br /><small> + Apache Polygene, Polygene, Apache, the Apache feather logo, and the Apache Polygene project logo are trademarks of The Apache Software Foundation.<br /> + All other marks mentioned may be trademarks or registered trademarks of their respective owners. + </small></p></div></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/intro.html ---------------------------------------------------------------------- diff --git a/content/java/develop/intro.html b/content/java/develop/intro.html new file mode 100644 index 0000000..f0e6510 --- /dev/null +++ b/content/java/develop/intro.html @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Introduction</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="index.html" title="" /><link rel="prev" href="index.html" title="" /><link rel="next" href="quick-start.html" title="Quick Start" /> + + +<!-- 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><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><span xmlns="" href="intro.html">Introduction</span></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><span xmlns="" href="intro.html#highlights">Highlights</span></span></dt><dt><span class="section"><a href="quick-start.html">Quick Start</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 & projects</a></span></dt></dl></div></div><div class="section" title="Introduction"><div class="titlepage"><div><div><h2 class="title"><a id="intro"></a>Introduction</h2></div></div></div><d iv class="section" title="Highlights"><div class="titlepage"><div><div><h3 class="title"><a id="highlights"></a>Highlights</h3></div></div></div><div class="section" title="Principles"><div class="titlepage"><div><div><h4 class="title"><a id="_principles"></a>Principles</h4></div></div></div><p>Composite Oriented Programming builds on some principles that are not addressed by Object Oriented Programming at all.</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> +Behavior depends on Context +</li><li class="listitem"> +Decoupling is a virtue +</li><li class="listitem"> +Business Rules matters more. +</li><li class="listitem"> +Classes are dead, long live interfaces. +</li></ul></div><div class="section" title="Behavior Depends on Context"><div class="titlepage"><div><div><h5 class="title"><a id="_behavior_depends_on_context"></a>Behavior Depends on Context</h5></div></div></div><p>Many objects has life cycles that are more extensive than the simple model that Object Oriented Programming model wants +us to believe. A few simple examples;</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> +An egg becomes a chicken which in turn becomes food. +</li><li class="listitem"> +I am a programmer at work, a father+husband at home, a victim in a traffic accident and hunter and pray in the jungle. +</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" title="Decoupling is Virtue"><div class="titlepage"><div><div><h5 class="title"><a id="_decoupling_is_virtue"></a>Decoupling is Virtue</h5></div></div></div><p>Decoupling is more important than developers in general think. If you could have every OOP class decoupled from all +other classes, it is easy to re-use that class. But when that class references another class and the chain never ends, +your chances of re-use diminishes quickly.</p><p>Object Oriented Programming is suffering a lot from this, and many mechanisms have been introduced over time to counter +this problem. But in reality, the best we can manage is subsystems of functionality, which client code can re-use. And +these subsystems tend to be infrastructure related, since domain models are less prone to be similar enough from one +project to the next, and since OOP in reality constrains the the re-use of individual domain classes, we need to re-do +the domain model from scratch ever time.</p></div><div class="section" title="Business Rules matters more"><div class="titlepage"><div><div><h5 class="title"><a id="_business_rules_matters_more"></a>Business Rules matters more</h5></div></div></div><p>Smart developers often think that low-level, infrastructure and framework code is more important and more cool to work +with, than the simple domain model. But in reality, it is the Domain Model that reflects the actual need and pays the +bills. Infrastructure is just a necessary evil to get things done.</p><p>If most developers could focus on the Business Rules and Domain Model, and not having to worry about any infrastructure +issues, such as persistence, transactions, security or the framework housing it all, the productivity would surge. Eric +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><p>WARNING! This guide is written before the code, and may not work yet.</p></div></div></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p> + Copyright © 2015 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/" target="_blank">Apache License, Version 2.0</a>. + <br /><small> + Apache Polygene, Polygene, Apache, the Apache feather logo, and the Apache Polygene project logo are trademarks of The Apache Software Foundation.<br /> + All other marks mentioned may be trademarks or registered trademarks of their respective owners. + </small></p></div></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/introduction-background.html ---------------------------------------------------------------------- diff --git a/content/java/develop/introduction-background.html b/content/java/develop/introduction-background.html new file mode 100644 index 0000000..ea30945 --- /dev/null +++ b/content/java/develop/introduction-background.html @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Background</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="intro.html" title="Introduction" /><link rel="prev" href="quick-start.html" title="Quick Start" /><link rel="next" href="what-is-cop.html" title="What is COP?" /> + + +<!-- 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><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><span xmlns="" href="intro.html">Introduction</span></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="intro.html#highlights">Highlights</a></span></dt><dt><span class="section"><a href="quick-start.html">Quick Start</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 & projects</a></span></dt></dl></div></div><div class="section" title="Background"><div class="titlepage"><div><div><h3 class="title"><a id="introduction-background"></a>Background</h3></div> </div></div><p>Polygene⢠is the first Composite Oriented Programming 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" title="Purpose"><div class="titlepage"><div><div><h4 class="title"><a id="_purpose"></a>Purpose</h4></div></div></div><p>Polygene⢠addresses the programming problems from the top-down, starting with the Domain Model and Business Rules needs, +and let those requirements flow downwards in the software stack and dictate the requirements for underlying layers +such as persistence, messaging, querying and more. This means that the business value developer is left to +concentrate on the domain models and the actual application bringing the value, instead of creating massive amounts +of glue code to tie underlying technologies together.</p></div><div class="section" title="Problem Descriptions"><div class="titlepage"><div><div><h4 class="title"><a id="_problem_descriptions"></a>Problem Descriptions</h4></div></div></div><p>Polygene⢠didnât appear out of the blue, when the founders of the project had nothing better to do. It is the result of +observation of problems in real applications, and the experience from previous attempts to address or correct these +problems, that has led to the Polygene⢠vision.</p></div><div class="section" title="Object Oriented Programming (OOP)"><div class="titlepage"><div><div><h4 class="title"><a id="_object_oriented_programming_oop"></a>Object Oriented Programming (OOP)</h4></div></div></div><p>How can OOP be a problem? We and others have observed that there is a fundamental flaw in the OOP model. In fact, we +would like to even state that OOP as it is commonly practiced today is not object oriented at all. The object is not +the primary citizen, instead the class is the primary artifact. In most mainstream OOP languages, Objects are derived +from classes, not that classes are assigned to created objects. Therefore, we think it should have been called Class +Oriented Programming. We can also see this class focus in many of the technologies in Java today: in Spring you declare +class names in application contexts, JSP uses class names to declare beans and so forth.</p><p>This in turn leads to that there is no good OOP solution for the problem we describe below.</p></div><div class="section" title="Behavior depends on Context"><div class="titlepage"><div><div><h4 class="title"><a id="_behavior_depends_on_context_2"></a>Behavior depends on Context</h4></div></div></div><p>Once you start thinking of "Behavior depends on Context", you have a hard time understanding how people for the last 20 +years or so of Object Oriented Programming (OOP) has ignored this fact.</p><div class="section" title="Who am I?"><div class="titlepage"><div><div><h5 class="title"><a id="_who_am_i"></a>Who am I?</h5></div></div></div><p>When I sitting in front of the computer, I am a software developer, but if I go out in the jungle, I am suddenly +hunter-gatherer and prey. A large set of me is the same, but my interaction with the surroundings, i.e. the context, is +very different. I need different interfaces, so to speak, in these two different contexts.</p><p>Now, the above example is perhaps a bit extreme, but we see it in everyday life of the developer. When an object is +stored in the database it is of a different class, than when it is transported to the client and possibly when it is +displayed in the GUI. We see the effect of this problem in many of the design patterns and so called "best practices" +in Java EE development. Facades, delegation, data transport objects and many more.</p></div></div><div class="section" title="Coupling"><div class="titlepage"><div><div><h4 class="title"><a id="_coupling"></a>Coupling</h4></div></div></div><p>The OOP proponents once proclaimed that classes can be re-used, since the code is encapsulated with the class, so the +class is an independent unit which lends itself well to re-use. In reality, however, we have found that classes becomes +tightly coupled with many other classes in their neighborhood, leading to impossibilities of single class re-use. Many +tricks are introduced to minimize the "Coupling Hell", such as Inversion of Control and Dependency Injection. Although +those tools are good, the underlying problem remains.</p><p>Why do we end up with large coupled class network graphs?</p><p>Essentially, it boils down to "scope". Classes are too large, their scope is too large, and for each small functional +unit within the class, there will be additional coupling to other classes. And this often progresses to the full +boundary of the entire domain the class remains in.</p></div><div class="section" title="Application layer impedance mismatch"><div class="titlepage"><div><div><h4 class="title"><a id="_application_layer_impedance_mismatch"></a>Application layer impedance mismatch</h4></div></div></div><p>Almost all technologies used in modern software development, starts by looking at an infrastructural problem and try to +solve that the best way. This is often done in a vacuum and layers on top will be struggling to map or translate the +solution into the higher abstraction, and the higher up we get, the harder it becomes to ignore the assumptions, +problems and limitations of the underlying technologies. It is also common that the underlying technologies "bleeds" +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" title="Abstracting away meaning."><div class="titlepage"><div><div><h4 class="title"><a id="_abstracting_away_meaning"></a>Abstracting away meaning.</h4></div></div></div><p>To paraphrase a famous proverb about a hammer: "If all you have are objects, everything looks like a dependency." +We think that increasing abstraction often also increases complexity, and that the abstraction benefits are somewhat +linear whereas the complexity negatives are exponential. So, our conclusion is that by making no distinction between +different kinds of objects, many sound technologies run into incredibly difficult problems. The implementation of the +programming platform (e.g. Java) is of course easier to implement with a hefty amount of scope reduction into as few as +possible abstractions. But that is not the situation for the user. The abstraction is then required to be reversed when +the rubber hits the road, e.g. ORM mapping must be declared explicitly by the programmer, often using separate tools +and languages.</p></div><div class="section" title="Solution"><div class="titlepage"><div><div><h4 class="title"><a id="_solution"></a>Solution</h4></div></div></div><p>We think the solution was expressed more than 2500 years ago, first by Indian scholars and slightly later by Leucippus +and Democritus. We are of course talking about atoms, and by using really small building blocks, we can express +arbitrarily complex structures. +By reducing the classes into what we in Composite Oriented Programming call Fragments, we limit the coupling network +graph substantially. Re-use of Fragments becomes a reality, and by combination of Fragments, we compose larger +structures, the Composites.</p></div><div class="section" title="Composition"><div class="titlepage"><div><div><h4 class="title"><a id="_composition"></a>Composition</h4></div></div></div><p>Composite Oriented Programming also view the object, we call it the Composite instance, as the first class citizen. The +Composite instance can be cast to any context, meaning a different behavior can be applied to the Composite instance, +without affecting its underlying state. And back. This in turn means that we can for instance create a +ServerContextualInvoiceEntity, transport that across to a client, cast it to a GuiContextualInvoiceEntity do the +modifications to the underlying state, possibly using extra interfaces and methods for interacting with the GUI +environment, and then transport the modified object back to the server, cast it back to the +ServerContextualInvoiceEntity, and then persist the changes.</p></div><div class="section" title="Domain Driven Design focus"><div class="titlepage"><div><div><h4 class="title"><a id="_domain_driven_design_focus"></a>Domain Driven Design focus</h4></div></div></div><p>Composite Oriented Programming is heavily influenced by the book "Domain Driven Design" by Eric Evans. And we are +trying to use his analysis of the problem to provide the mechanisms needed to get the job done quicker and more +reliably. Mr Evans talks about Applications, Layers, Modules, Specifications, SideEffects and so forth, and all of +these should be present in a Composite Oriented Programming implementation, and to a large extent it is in Polygeneâ¢.</p></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p> + Copyright © 2015 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/" target="_blank">Apache License, Version 2.0</a>. + <br /><small> + Apache Polygene, Polygene, Apache, the Apache feather logo, and the Apache Polygene project logo are trademarks of The Apache Software Foundation.<br /> + All other marks mentioned may be trademarks or registered trademarks of their respective owners. + </small></p></div></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-website/blob/ba3a0fac/content/java/develop/javadocs.html ---------------------------------------------------------------------- diff --git a/content/java/develop/javadocs.html b/content/java/develop/javadocs.html new file mode 100644 index 0000000..9fb8229 --- /dev/null +++ b/content/java/develop/javadocs.html @@ -0,0 +1,106 @@ +<?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><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="index.html" title="" /><link rel="prev" href="releasing-apache.html" title="Releasing Polygeneâ¢" /><link rel="next" href="samples.html" title="Samples" /> + + +<!-- 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><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><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.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><span xmlns="" href="javadocs.html#_javadocs">JavaDocs</span></span></dt></dl></div></div><div class="section" title="Javadoc"><div class="titlepage"><div><div><h2 class="title"><a id="javadocs"></a>Javadoc</h2></div></div></div><div class="section" title="JavaDocs"><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-SNAPSHOT), to some alias versions, and finally, to previous releases.</p><div class="section" title="Apache Polygene⢠(Java Edition) 3.0-SNAPSHOT"><div class="titlepage"><div><div><h4 class="title"><a id="_apache_polygene_java_edition_3_0_snapshot"></a>Apache Polygene⢠(Java Edition) 3.0-SNAPSHOT</h4></ div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> +<a class="ulink" href="javadocs/index.html" target="_top">Release 3.0-SNAPSHOT</a> +</li></ul></div></div><div class="section" title="Alias Versions"><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"><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" title="Previous Releases"><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"><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"><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"><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><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p> + Copyright © 2015 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/" target="_blank">Apache License, Version 2.0</a>. + <br /><small> + Apache Polygene, Polygene, Apache, the Apache feather logo, and the Apache Polygene project logo are trademarks of The Apache Software Foundation.<br /> + All other marks mentioned may be trademarks or registered trademarks of their respective owners. + </small></p></div></body></html> \ No newline at end of file
