| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <title>Qi4j SDK Release 2.0</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <meta name="description" content="Apache Polygene™ is a community based effort exploring Composite Oriented Programming for domain centric application development. This includes evolved concepts from Aspect Oriented Programming, Dependency Injection and Domain Driven Design. |
| Composite Oriented Programming allows developers to work with 'fragments', smaller than classes, and 'compose' fragments into larger 'composites' which acts like the regular objects. Apache Polygene™ also tackles the enforcement of application composition, i.e. composites are declared in modules, modules are contained in layers and access between layers are controlled/enforced. |
| "> |
| <meta name="author" content="The Apache Polygene™ Project"> |
| <meta name="keywords" content="cop, composite oriented programming, ddd, domain driven design, composite, mixin, fragment, constraint, concern, side-effect, aop, aspect oriented programming, application, layer, module, structure, java, library, toolkit, framework"> |
| |
| <!-- Le styles --> |
| <link href="/landing-resources/css/bootstrap.css" rel="stylesheet"> |
| <link href="/landing-resources/css/font-awesome.css" rel="stylesheet"> |
| <style type="text/css"> |
| body { |
| padding-top: 70px; |
| padding-bottom: 40px; |
| } |
| </style> |
| <link href="/landing-resources/css/bootstrap-responsive.min.css" rel="stylesheet"> |
| |
| <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> |
| <!--[if lt IE 9]> |
| <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> |
| <![endif]--> |
| |
| <!-- Fav and touch icons --> |
| <link rel="shortcut icon" type="image/png" href="/landing-resources/ico/favicon.png"> |
| |
| <!-- Analytics --> |
| <script> |
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
| })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); |
| ga('create', 'UA-89723617-1', 'auto'); |
| ga('send', 'pageview'); |
| </script> |
| |
| </head> |
| |
| <body> |
| |
| <div class="navbar navbar-inverse navbar-fixed-top"> |
| <div class="navbar-inner"> |
| <div class="container-fluid"> |
| <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </a> |
| <a class="brand" href="/"><img src="/landing-resources/img/feather.png" width="64"/> Apache <strong>Polygene™</strong></a> |
| <div class="nav-collapse collapse"> |
| <ul class="nav"> |
| <li><a href="/news.html"><i class="icon-rss"></i> News</a></li> |
| <li><a href="/download.html"><i class="icon-download"></i> Download</a></li> |
| <li class="dropdown"> |
| <a class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="#"> |
| <i class="icon-book"></i> Documentation <b class="caret"></b> |
| </a> |
| <ul class="dropdown-menu" role="menu"> |
| <li role="menuitem"><a href="/java/latest/index.html"><i class="icon-caret-right"></i> Latest release</a></li> |
| |
| |
| <li role="menuitem"><a href="/java/3.0.0/index.html"><i class="icon-caret-right"></i> 3.0.0</a></li> |
| |
| |
| <li role="menuitem"><a href="/java/2.1/index.html"><i class="icon-caret-right"></i> 2.1</a></li> |
| <li role="menuitem"><a href="/java/2.0/index.html"><i class="icon-caret-right"></i> 2.0</a></li> |
| <li role="menuitem"><a href="/java/1.4/index.html"><i class="icon-caret-right"></i> <=1.4.x</a></li> |
| <li class="divider"></li> |
| <li role="menuitem"><a href="/java/develop/index.html"><i class="icon-caret-right"></i> develop branch</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="/community"> |
| <i class="icon-group"></i> Community <b class="caret"></b> |
| </a> |
| <ul class="dropdown-menu" role="menu"> |
| <li role="menuitem"><a href="/community/get_help.html"><i class="icon-caret-right"></i> Get Help</a></li> |
| <li class="divider"></li> |
| <li role="menuitem"><a href="/community/participate.html"><i class="icon-caret-right"></i> Participate</a></li> |
| <li role="menuitem"><a href="/community/playing_field.html"><i class="icon-caret-right"></i> Playing Field</a></li> |
| <li class="divider"></li> |
| <li role="menuitem"><a href="/community/codebase.html"><i class="icon-caret-right"></i> Codebase</a></li> |
| <li role="menuitem"><a href="https://builds.apache.org/view/S-Z/view/Polygene/" target="_blank"><i class="icon-caret-right"></i> Continuous Integration</a></li> |
| <li role="menuitem"><a href="https://issues.apache.org/jira/browse/POLYGENE" target="_blank"><i class="icon-caret-right"></i> Issues</a></li> |
| <li class="divider"></li> |
| <li role="menuitem"><a href="/community/maturity.html"><i class="icon-caret-right"></i> Maturity Model</a></li> |
| <li role="menuitem"><a href="/community/contributors.html"><i class="icon-caret-right"></i> People behind Apache Polygene™</a></li> |
| <li class="divider"></li> |
| <li role="menuitem"><a href="http://www.apache.org/licenses/" target="_blank"><i class="icon-caret-right"></i> Licensing</a></li> |
| <li role="menuitem"><a href="/community/licensing_faq.html"><i class="icon-caret-right"></i> Licensing FAQ</a></li> |
| <li class="divider"></li> |
| <li role="menuitem"><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank"><i class="icon-caret-right"></i> Sponsorship</a></li> |
| <li role="menuitem"><a href="http://www.apache.org/foundation/thanks.html" target="_blank"><i class="icon-caret-right"></i> Thanks</a></li> |
| <li role="menuitem"><a href="http://www.apache.org/security/" target="_blank"><i class="icon-caret-right"></i> Security</a></li> |
| </ul> |
| </li> |
| </ul> |
| </div><!--/.nav-collapse --> |
| </div> |
| </div> |
| </div> |
| <div id="content" class="container-fluid"> |
| |
| <div class="row-fluid"> |
| <div class="span2"></div> |
| <div class="span8"> |
| April 28, 2013 |
| <h2 id="qi4j-sdk-release-20">Qi4j SDK Release 2.0</h2> |
| |
| <p>28 Apr 2013 - Montpellier/France & Shanghai/China - Qi4j Release 2.0</p> |
| |
| <p>After nearly 2 years of hard work, the Qi4j Community today launched |
| its second generation Composite Oriented Programming framework.</p> |
| |
| <p>Qi4j is Composite Oriented Programming for the Java platform. It is a |
| top-down approach to write business applications in a maintainable |
| and efficient manner. Qi4j let you focus on the business domain, |
| removing most impedance mismatches in software development, such as |
| object-relation mapping, overlapping concerns and testability.</p> |
| |
| <p>Qi4j’s main areas of excellence are its enforcement of application |
| layering and modularization, the typed and generic AOP approach, |
| affinity based dependency injection, persistence management, indexing |
| and query subsystems, but there are much more.</p> |
| |
| <p>The 2.0 release is practically a re-write of the entire runtime, |
| according to co-founder Niclas Hedhman; “Although we are breaking |
| compatibility in many select areas, most 1.4 applications can be |
| converted with relatively few changes.”. He continues; “These changes |
| are necessary for the next set of planned features, including full |
| Scala integration, the upcoming JDK8 and Event Sourcing integrated |
| into the persistence model.”</p> |
| |
| <p>“It has been a bumpy ride to get this release out the door.”, said |
| Paul Merlin, the 2.0 Release Manager, “but we are determined that |
| Qi4j represents the best technological platform for Java to create |
| applications with high business value.” |
| Not only has the community re-crafted a remarkable codebase, but also |
| created a brand new website, fully integrated with the new Gradle |
| build process.</p> |
| |
| <p>“The new website keeps the documentation in sync with the releases.”, |
| Paul added. “All the samples in documentation are actual code being |
| executed in our test suite. I am very proud of the work that has gone |
| into the new site.”</p> |
| |
| <p>We asked Niclas, “The community calls the Release 2.0 “Reductionism”. |
| What does that mean?”</p> |
| |
| <p>“We wanted to make all the necessary changes, which breaks |
| compatibility, as quickly as possible and get the leanest possible |
| Qi4j out the door. Many advanced features that are planned had to |
| wait. We simply wanted the base platform to be available first.”, |
| says Niclas on the topic.</p> |
| |
| <p>So what is really New?</p> |
| |
| <p>“Everything”, says Niclas. “For Qi4j Core, the most important change |
| is the introduction of functional paradigm in the internal runtime. |
| This creates cleaner code, and we’ll be able to leverage JDK8 very |
| effectively when it will be available. |
| The second big thing is to reduce the Qi4j Core and increase the |
| Extensions concept to more areas than persistence and indexing. We |
| have now added metrics and value serialization, others to come.”</p> |
| |
| <p>And what is Next?</p> |
| |
| <p>“Our main focus will be developper productivity. We have things such |
| as TimeSeries, Event Sourcing support in Core, easier Assembly of |
| Application Stacks in sight for future releases.We aim at constantly |
| enriching the whole SDK (libraries, extensions, samples and tools) |
| and its documentation. Another objective is to grow the core |
| community through more open participation.”, says Paul. “Yes, there |
| is much visionary work ahead.”, adds Niclas.</p> |
| |
| <p>Find more information at http://qi4j.org and http://qi4j.org/java/2.0/</p> |
| |
| <p>The Qi4j Community is a set of loosely coupled developers working |
| hard to create the most exciting domain oriented application |
| framework for the Java platform. Qi4j is licensed under the very |
| liberal Apache License 2.0.</p> |
| |
| <p>– Qi4j Core Team</p> |
| |
| |
| </div> |
| <div class="span2"></div> |
| </div> |
| |
| </div> |
| <div class="container-fluid"> |
| <hr> |
| <footer> |
| <p> |
| Copyright © 2015-2018 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/">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> |
| </footer> |
| </div> |
| |
| <!-- Le javascript |
| ================================================== --> |
| <!-- Placed at the end of the document so the pages load faster --> |
| <script src="/landing-resources/js/jquery-1.8.3.min.js"></script> |
| <script src="/landing-resources/js/bootstrap.min.js"></script> |
| <script src="/landing-resources/js/qi4j.org.js"></script> |
| </body> |
| </html> |