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">'</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> "<span
class="n">workflows</span>" <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> "<span class="n">cayenne</span
><span class="o">-</span><span class="n">lifecycle</span>" <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."