You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by bu...@apache.org on 2014/09/30 13:17:24 UTC

svn commit: r924160 - in /websites/staging/cayenne/trunk/content: ./ 2014/09/cayenne-31-released.html

Author: buildbot
Date: Tue Sep 30 11:17:23 2014
New Revision: 924160

Log:
Staging update by buildbot for cayenne

Modified:
    websites/staging/cayenne/trunk/content/   (props changed)
    websites/staging/cayenne/trunk/content/2014/09/cayenne-31-released.html

Propchange: websites/staging/cayenne/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Sep 30 11:17:23 2014
@@ -1 +1 @@
-1628394
+1628395

Modified: websites/staging/cayenne/trunk/content/2014/09/cayenne-31-released.html
==============================================================================
--- websites/staging/cayenne/trunk/content/2014/09/cayenne-31-released.html (original)
+++ websites/staging/cayenne/trunk/content/2014/09/cayenne-31-released.html Tue Sep 30 11:17:23 2014
@@ -98,23 +98,20 @@
 <div id="content">
        <h2 id="the-apache-software-foundation-announces-apachetm-cayennetm-v31">The Apache Software Foundation Announces Apache™ Cayenne™ v3.1</h2>
 <p><em>Sep 29, 2014</em></p>
-<p>The Apache Software Foundation Announces Apache™ Cayenne™ v3.1</p>
 <p>The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of more than 200 Open Source projects and initiatives, announced today the availability of Apache™ Cayenne™ v3.1, the Open Source Java framework for object relational mapping (ORM), persistence, and caching.</p>
 <p>"With the launch of version 3.1, Apache Cayenne has continued to evolve its mature 12 year-old library by introducing 125 new features," said Andrus Adamchik, Vice President of Apache Cayenne.
 Cayenne is an enterprise Java ORM with integrated support for caching, three-tier persistence, object lifecycles and workflow, inheritance, paging, on demand faulting, auditing and much more. As an object relational mapping library, Cayenne integrates applications to any SQL database available today, freeing solutions from being locked into one database engine. At the same time it improves performance through paging and caching, enforces data integrity and makes it dramatically faster for developers to build a reliable application.</p>
 <p>Cayenne has a track record of solid performance in high-volume environments. Apache Cayenne is an exceptional choice for persistence services, and is in use at ish onCourse, National Hockey League, Nike, Unilever and the Law Library of Congress (the world's largest publicly-available legal index) as well as dozens of high-demand applications and Websites accessed by millions of users each day.</p>
 <p>Apache Cayenne v3.1 is the result of 4 years of development. Notable new features and improvements include:</p>
-<div class="codehilite"><pre><span class="o">*</span> <span class="n">easier</span> <span class="n">configuration</span> <span class="n">and</span> <span class="n">embedding</span> <span class="n">in</span> <span class="n">any</span> <span class="n">type</span> <span class="n">of</span> <span class="n">application</span><span class="p">;</span>
-<span class="o">*</span> <span class="n">highly</span> <span class="n">configurable</span> <span class="n">runtime</span><span class="p">,</span> <span class="n">enabled</span> <span class="n">by</span> <span class="n">one</span> <span class="n">of</span> <span class="n">the</span> <span class="n">industry</span><span class="o">&#39;</span><span class="n">s</span> <span class="n">smallest</span> <span class="n">built</span><span class="o">-</span><span class="n">in</span> <span class="n">Dependency</span> <span class="n">Injection</span> <span class="p">(</span><span class="n">DI</span><span class="p">)</span> <span class="n">containers</span> <span class="n">written</span> <span class="n">specifically</span> <span class="k">for</span> <span class="n">Cayenne</span> <span class="p">(</span><span class="n">and</span> <span class="n">that</span> <span class="n">co</span><span class="o">-</span><span class="n">exists</span> <span class="n">with</span> <span class="n">other</span> <span
  class="n">DI</span><span class="o">/</span><span class="n">IoC</span><span class="p">,</span> <span class="n">such</span> <span class="n">as</span> <span class="n">Apache</span> <span class="n">Tapestry</span><span class="p">).</span> <span class="n">It</span> <span class="n">is</span> <span class="n">also</span> <span class="n">very</span> <span class="n">easy</span> <span class="n">to</span> <span class="n">create</span> <span class="n">more</span> <span class="n">than</span> <span class="n">one</span> <span class="n">runtime</span><span class="p">,</span> <span class="n">which</span> <span class="n">opens</span> <span class="n">interesting</span> <span class="n">possibilities</span> <span class="n">like</span> <span class="n">multi</span><span class="o">-</span><span class="n">tenancy</span><span class="p">;</span>
-<span class="o">*</span> <span class="n">nearly</span> <span class="n">all</span> <span class="n">components</span> <span class="n">now</span> <span class="n">pluggable</span><span class="p">,</span> <span class="n">making</span> <span class="n">it</span> <span class="n">very</span> <span class="n">easy</span> <span class="n">to</span> <span class="n">create</span> <span class="n">more</span> <span class="n">than</span> <span class="n">one</span> <span class="n">runtime</span> <span class="n">and</span> <span class="n">easily</span> <span class="n">change</span> <span class="n">or</span> <span class="n">extend</span> <span class="n">internals</span> <span class="n">of</span> <span class="n">the</span> <span class="n">stack</span> <span class="n">declaratively</span> <span class="o">--</span><span class="n">from</span> <span class="n">cache</span> <span class="n">provider</span> <span class="n">to</span> <span class="n">SQL</span> <span class="nb">log</span> <span class="n">format</s
 pan> <span class="n">to</span> <span class="n">DataSource</span> <span class="n">lookup</span> <span class="n">strategy</span> <span class="n">and</span> <span class="n">much</span> <span class="n">more</span><span class="p">;</span>
-<span class="o">*</span> <span class="n">improved</span> <span class="n">ORM</span> <span class="n">modularity</span> <span class="n">to</span> <span class="n">allow</span>  <span class="n">projects</span> <span class="n">to</span> <span class="n">be</span> <span class="n">included</span> <span class="n">in</span> <span class="n">libraries</span> <span class="n">without</span> <span class="n">assumptions</span> <span class="n">about</span> <span class="n">the</span> <span class="n">target</span> <span class="n">use</span><span class="p">.</span> <span class="n">Different</span> <span class="n">aspects</span> <span class="n">of</span> <span class="n">an</span> <span class="n">application</span> <span class="n">can</span> <span class="n">now</span> <span class="n">be</span> <span class="n">modeled</span> <span class="n">in</span> <span class="n">separate</span> <span class="n">mapping</span> <span class="n">projects</span> <span class="n">and</span> <span class="n">combined</span> <sp
 an class="n">in</span> <span class="n">runtime</span> <span class="n">as</span> <span class="n">needed</span><span class="p">.</span> <span class="n">As</span> <span class="n">a</span> <span class="n">result</span> <span class="n">Cayenne</span> <span class="n">projects</span> <span class="n">can</span> <span class="n">be</span> <span class="n">included</span> <span class="n">in</span> <span class="n">libraries</span> <span class="n">that</span> <span class="n">make</span> <span class="n">no</span> <span class="n">assumptions</span> <span class="n">about</span> <span class="n">the</span> <span class="n">target</span> <span class="n">use</span><span class="p">;</span>
-<span class="o">*</span> <span class="n">extended</span> <span class="k">persistent</span> <span class="k">events</span> <span class="n">model</span> <span class="n">from</span> <span class="n">simple</span> <span class="n">per</span><span class="o">-</span><span class="n">object</span> <span class="k">events</span> <span class="n">to</span> <span class="n">more</span> <span class="n">higher</span><span class="o">-</span><span class="n">level</span> &quot;<span class="n">workflows</span>&quot; <span class="n">that</span> <span class="n">can</span> <span class="n">be</span> <span class="n">configured</span> <span class="n">with</span> <span class="n">app</span><span class="o">-</span><span class="n">specific</span> <span class="n">annotations</span> <span class="n">on</span> <span class="k">persistent</span> <span class="n">classes</span><span class="p">.</span> <span class="n">Cayenne</span> <span class="n">ships</span> <span class="n">with</span> &quot;<span class="n">cayenne</span
 ><span class="o">-</span><span class="n">lifecycle</span>&quot; <span class="n">module</span> <span class="n">that</span> <span class="n">provides</span> <span class="n">a</span> <span class="n">few</span> <span class="n">common</span> <span class="n">examples</span> <span class="n">of</span> <span class="n">such</span> <span class="n">workflows</span> <span class="n">activated</span> <span class="n">on</span> <span class="n">data</span> <span class="n">changes</span><span class="p">:</span> <span class="n">data</span> <span class="n">modifications</span> <span class="n">audit</span><span class="p">,</span> <span class="n">precision</span> <span class="n">cache</span> <span class="n">invalidation</span><span class="p">,</span> <span class="n">etc</span><span class="p">.;</span> <span class="n">and</span>
-<span class="n">performance</span> <span class="n">optimizations</span> <span class="k">for</span> <span class="n">improved</span> <span class="n">overall</span> <span class="n">concurrency</span>
-</pre></div>
-
-
-<p>"Developers who are seeking an alternate to EJB/Hibernate might find Cayenne's graphical modeler, reverse database engineering, easy to use query API and flexible context model a joy to work with," said Aristedes Maniatis, member of the Apache Cayenne Project Management Committee and CEO of ish.
-"We use Apache Cayenne as the ORM for a large and complex budgeting project for around twenty government organizations," said Daniel Abrams, CEO of MassLight. "Cayenne is used to access and persist exhibit data, business validation rules, and account information, and has simplified the development process. A single Cayenne method call evaluates all changes in the user's context and generates all statements required to commit their changes within a single transaction without the developer having to write code to track the changes -- Cayenne does all the work. Since switching to Cayenne, there haven't been any faulting errors that tended to plague the previous version of the application because of the complex data model. This was one of the principal reasons for the switch to Cayenne and the data model has become significantly more complex now."</p>
+<ul>
+<li>easier configuration and embedding in any type of application;</li>
+<li>highly configurable runtime, enabled by one of the industry's smallest built-in Dependency Injection (DI) containers written specifically for Cayenne (and that co-exists with other DI/IoC, such as Apache Tapestry). It is also very easy to create more than one runtime, which opens interesting possibilities like multi-tenancy;</li>
+<li>nearly all components now pluggable, making it very easy to create more than one runtime and easily change or extend internals of the stack declaratively --from cache provider to SQL log format to DataSource lookup strategy and much more;</li>
+<li>improved ORM modularity to allow  projects to be included in libraries without assumptions about the target use. Different aspects of an application can now be modeled in separate mapping projects and combined in runtime as needed. As a result Cayenne projects can be included in libraries that make no assumptions about the target use;</li>
+<li>extended persistent events model from simple per-object events to more higher-level "workflows" that can be configured with app-specific annotations on persistent classes. Cayenne ships with "cayenne-lifecycle" module that provides a few common examples of such workflows activated on data changes: data modifications audit, precision cache invalidation, etc.; and performance optimizations for improved overall concurrency</li>
+</ul>
+<p>"Developers who are seeking an alternate to EJB/Hibernate might find Cayenne's graphical modeler, reverse database engineering, easy to use query API and flexible context model a joy to work with," said Aristedes Maniatis, member of the Apache Cayenne Project Management Committee and CEO of ish.</p>
+<p>"We use Apache Cayenne as the ORM for a large and complex budgeting project for around twenty government organizations," said Daniel Abrams, CEO of MassLight. "Cayenne is used to access and persist exhibit data, business validation rules, and account information, and has simplified the development process. A single Cayenne method call evaluates all changes in the user's context and generates all statements required to commit their changes within a single transaction without the developer having to write code to track the changes -- Cayenne does all the work. Since switching to Cayenne, there haven't been any faulting errors that tended to plague the previous version of the application because of the complex data model. This was one of the principal reasons for the switch to Cayenne and the data model has become significantly more complex now."</p>
 <p>"We use Cayenne in our system to collect, quality control and distribute world coverage nautical charts to navies, pilots, inspectors and several thousand vessels," said Tore Halset, Development Manager at Electronic Chart Centre and PRIMAR. "We have been happy users of Apache Cayenne since 2005 and are now on version 3.1."</p>
 <p>"Apache Cayenne is a core service in Avoka Transact, an engagement platform for multi-channel sales and service transactions," said Malcolm Edgar, Vice President of Engineering at Avoka.</p>
 <p>"We use Apache Cayenne to support the Oracle, MySQL, and SQL Server databases. Cayenne provides the right blend of ORM capabilities and low level JDBC access when required. It has been a rock-solid technology for us."