Jekyll expects all the posts to be flat in one folder with special naming 
conventions


Project: http://git-wip-us.apache.org/repos/asf/cayenne-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne-website/commit/630c9b22
Tree: http://git-wip-us.apache.org/repos/asf/cayenne-website/tree/630c9b22
Diff: http://git-wip-us.apache.org/repos/asf/cayenne-website/diff/630c9b22

Branch: refs/heads/master
Commit: 630c9b22d7b7dacd998fac174a02c83a078a7b25
Parents: 99cd8ec
Author: Aristedes Maniatis <a...@ish.com.au>
Authored: Tue May 30 07:07:07 2017 +0800
Committer: Aristedes Maniatis <a...@ish.com.au>
Committed: Tue May 30 07:07:07 2017 +0800

----------------------------------------------------------------------
 ...cayenne-at-the-sydney-apache-unconference.md |  15 ++
 _posts/2010-12-02-cayenne-31-its-alive.md       |  18 ++
 ...cayenne-at-the-sydney-apache-unconference.md |  15 --
 _posts/2010/12/02/cayenne-31-its-alive.md       |  18 --
 _posts/2011-03-08-cayenne-31m2-is-released.md   |  20 ++
 _posts/2011-06-21-cayenne-302-is-released.md    |  27 +++
 _posts/2011-09-26-cayenne-31m3-is-released.md   |  59 ++++++
 _posts/2011/03/08/cayenne-31m2-is-released.md   |  20 --
 _posts/2011/06/21/cayenne-302-is-released.md    |  27 ---
 _posts/2011/09/26/cayenne-31m3-is-released.md   |  59 ------
 _posts/2012-06-12-cayenne-31-beta-released.md   |  13 ++
 _posts/2012/06/12/cayenne-31-beta-released.md   |  13 --
 _posts/2013-02-18-cayenne-31b2-released.md      |  42 +++++
 _posts/2013-07-19-cayenne-32m1-released.md      | 107 +++++++++++
 _posts/2013/02/cayenne-31b2-released.md         |  42 -----
 _posts/2013/07/cayenne-32m1-released.md         | 107 -----------
 _posts/2014-02-16-cayenne-31rc1-released.md     |  35 ++++
 _posts/2014-09-29-cayenne-31-released.md        |  40 ++++
 _posts/2014/02/cayenne-31rc1-released.md        |  35 ----
 _posts/2014/09/cayenne-31-released.md           |  40 ----
 _posts/2015-03-18-cayenne-40m2-released.md      | 189 +++++++++++++++++++
 _posts/2015/03/cayenne-40m2-released.md         | 189 -------------------
 _posts/2016-02-12-cayenne-40m3-released.md      |  93 +++++++++
 _posts/2016-03-06-cayenne-40M5-released.md      | 104 ++++++++++
 _posts/2016-05-16-cayenne-311-released.md       |  24 +++
 _posts/2016-12-13-cayenne-40M4-released.md      | 147 +++++++++++++++
 _posts/2016/02/cayenne-40m3-released.md         |  93 ---------
 _posts/2016/05/cayenne-311-released.md          |  24 ---
 _posts/2016/12/cayenne-40M4-released.md         | 147 ---------------
 _posts/2017/03/cayenne-40M5-released.md         | 104 ----------
 30 files changed, 933 insertions(+), 933 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2010-11-29-cayenne-at-the-sydney-apache-unconference.md
----------------------------------------------------------------------
diff --git a/_posts/2010-11-29-cayenne-at-the-sydney-apache-unconference.md 
b/_posts/2010-11-29-cayenne-at-the-sydney-apache-unconference.md
new file mode 100644
index 0000000..a65c209
--- /dev/null
+++ b/_posts/2010-11-29-cayenne-at-the-sydney-apache-unconference.md
@@ -0,0 +1,15 @@
+---
+layout: post
+title:  Cayenne at the Sydney Apache unconference
+date:   2010-11-29
+---
+
+An invitation to the Apache Sydney Unconference: 11 December 2010
+
+On Saturday 11th December, the Apache Software Foundation and the University 
of Sydney are holding an open source themed Unconference. This is an event 
where the theme is set in advance, but the sessions to be presented are only 
decided on at the event, based on those who come along (sometimes also known as 
a BarCamp). They provide an excellent opportunity to learn, present and 
discuss, and offer a chance for everyone to participate. The main themes for 
the Sydney Unconference will be Open Source, Open Development and the software 
produced by the Apache Software Foundation. There will be talks covering a wide 
range of topics, with several tracks in parallel to choose between.
+
+There will be attendees from industry, university and Apache members from 
around the world.
+
+For details or to register for the Apache Sydney Unconference visit the 
[website and signup page](http://barcamp.org/BarCampApacheSydney).
+
+Ari Maniatis from the Apache Cayenne PMC is part of the organising team for 
this event and would love to talk to any Cayenne user.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2010-12-02-cayenne-31-its-alive.md
----------------------------------------------------------------------
diff --git a/_posts/2010-12-02-cayenne-31-its-alive.md 
b/_posts/2010-12-02-cayenne-31-its-alive.md
new file mode 100644
index 0000000..832325b
--- /dev/null
+++ b/_posts/2010-12-02-cayenne-31-its-alive.md
@@ -0,0 +1,18 @@
+---
+layout: post
+title:  Cayenne 3.1 - it's alive!
+date:   2010-12-2
+---
+
+Cayenne 3 isn't resting on its laurels. It is still growing and developing, 
and today we are pleased to announce the first milestone of version 3.1. This 
is not a beta and 3.1 is not yet feature-complete, but it gives users an 
insight into the direction Cayenne is heading in and an opportunity to give us 
feedback.
+
+The key features added to 3.1 so far are:
+
+* Built-in Dependency Injection container, statics-free and singleton-free 
runtime.
+* Simplified single-domain projects.
+* CayenneModeler preferences that don't get corrupted and don't vanish.
+* Property-based DataSource configuration (killing JNDI hack).
+
+We encourage users to experiment with upgrading their projects to 3.1, but 
also warn of a few known issues that we are working to address, more 
specifically: [CAY-1519](https://issues.apache.org/jira/browse/CAY-1519), 
[CAY-1515](https://issues.apache.org/jira/browse/CAY-1515), 
[CAY-1516](https://issues.apache.org/jira/browse/CAY-1516).
+
+Download Apache Cayenne 3.1M1 from [here](/download.html)

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2010/11/29/cayenne-at-the-sydney-apache-unconference.md
----------------------------------------------------------------------
diff --git a/_posts/2010/11/29/cayenne-at-the-sydney-apache-unconference.md 
b/_posts/2010/11/29/cayenne-at-the-sydney-apache-unconference.md
deleted file mode 100644
index a65c209..0000000
--- a/_posts/2010/11/29/cayenne-at-the-sydney-apache-unconference.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: post
-title:  Cayenne at the Sydney Apache unconference
-date:   2010-11-29
----
-
-An invitation to the Apache Sydney Unconference: 11 December 2010
-
-On Saturday 11th December, the Apache Software Foundation and the University 
of Sydney are holding an open source themed Unconference. This is an event 
where the theme is set in advance, but the sessions to be presented are only 
decided on at the event, based on those who come along (sometimes also known as 
a BarCamp). They provide an excellent opportunity to learn, present and 
discuss, and offer a chance for everyone to participate. The main themes for 
the Sydney Unconference will be Open Source, Open Development and the software 
produced by the Apache Software Foundation. There will be talks covering a wide 
range of topics, with several tracks in parallel to choose between.
-
-There will be attendees from industry, university and Apache members from 
around the world.
-
-For details or to register for the Apache Sydney Unconference visit the 
[website and signup page](http://barcamp.org/BarCampApacheSydney).
-
-Ari Maniatis from the Apache Cayenne PMC is part of the organising team for 
this event and would love to talk to any Cayenne user.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2010/12/02/cayenne-31-its-alive.md
----------------------------------------------------------------------
diff --git a/_posts/2010/12/02/cayenne-31-its-alive.md 
b/_posts/2010/12/02/cayenne-31-its-alive.md
deleted file mode 100644
index 832325b..0000000
--- a/_posts/2010/12/02/cayenne-31-its-alive.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: post
-title:  Cayenne 3.1 - it's alive!
-date:   2010-12-2
----
-
-Cayenne 3 isn't resting on its laurels. It is still growing and developing, 
and today we are pleased to announce the first milestone of version 3.1. This 
is not a beta and 3.1 is not yet feature-complete, but it gives users an 
insight into the direction Cayenne is heading in and an opportunity to give us 
feedback.
-
-The key features added to 3.1 so far are:
-
-* Built-in Dependency Injection container, statics-free and singleton-free 
runtime.
-* Simplified single-domain projects.
-* CayenneModeler preferences that don't get corrupted and don't vanish.
-* Property-based DataSource configuration (killing JNDI hack).
-
-We encourage users to experiment with upgrading their projects to 3.1, but 
also warn of a few known issues that we are working to address, more 
specifically: [CAY-1519](https://issues.apache.org/jira/browse/CAY-1519), 
[CAY-1515](https://issues.apache.org/jira/browse/CAY-1515), 
[CAY-1516](https://issues.apache.org/jira/browse/CAY-1516).
-
-Download Apache Cayenne 3.1M1 from [here](/download.html)

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2011-03-08-cayenne-31m2-is-released.md
----------------------------------------------------------------------
diff --git a/_posts/2011-03-08-cayenne-31m2-is-released.md 
b/_posts/2011-03-08-cayenne-31m2-is-released.md
new file mode 100644
index 0000000..7b3b32d
--- /dev/null
+++ b/_posts/2011-03-08-cayenne-31m2-is-released.md
@@ -0,0 +1,20 @@
+---
+layout: post
+title:  Cayenne 3.1M2 is Released
+date:   2011-3-8
+---
+
+We keep improving Cayenne 3.1 with the new M2 milestone release. If you've 
already experimented with 3.1, M2 is a must-have upgrade - it fixes a number of 
bugs that affected runtime stability (CAY-1515, CAY-1519). If you haven't, 
maybe it is time to try it out? ;) Usual disclaimer applies about M2 being an 
early alpha and the new APIs being subject to change. In addition to the 
numerous bugfixes in the runtime and the Modeler, the new release introduces a 
set of brand new powerful tools for object lifecycle management. We'll briefly 
describe them here. Please check Guide to 3.1 Features for more details.
+
+* Cayenne now allows to declare listener methods with annotations. Configuring 
listener methods in the Modeler (or via API for that matter) was arguably the 
most tedious mapping task in Cayenne. What's even worse, if you reuse your 
model in more than one app, you may not want the listeners to be shared, so you 
don't want them to be in the model at all. M2 solves that by letting you to 
annotate the listener class, and registering a listener object where you need 
it with a single method call. A listener object can of course have multiple 
annotated callback methods:
+
+        MyListener listener = new MyListener();
+        
runtime.getChannel().getEntityResolver().getCallbackRegistry().addListener(listener);
+
+While JPA users may think that lifecycle annotations is old news, Cayenne goes 
a bit further than JPA here. Cayenne annotations let you attach a listener not 
just to specific entities, but also to entities whose names are not known to 
the listener upfront. A listener annotation may reference an arbitrary 
user-defined annotation which is then placed on entity classes. All of this 
completely changes how you manage your listeners. It becomes simple, clear and 
flexible.
+
+* Another cool lifecycle management tool is DataChannelFilter. A chain of 
filters can be configured by the user to intercept and react to the data 
traffic (selects, commits) between DataContext and DataDomain. This was sort of 
possible before by decorating a DataChannel, however the new approach is much 
less invasive, and more importantly, the filter object can also have annotated 
listener methods that are aware of the ongoing select or commit operation. 
That's what ultimately makes it usable in real-life situations. 
CacheInvalidationFilter in cayenne-lifeycle module (cayenne-lifecycle is 
described below) is a good example of how a filter collects some information 
about an ongoing persistence operation in a ThreadLocal object, and then 
processes aggregated information at the end of this operation.
+
+* We are taking advantage of the above feature by providing a 
cayenne-lifecycle extensions module that implements a few common lifecycle 
management scenarios - object audit, automated cache group invalidation, and 
handling a new kind of "to-any" relationship (we tentatively called that one a 
UuidRelationship). You may use cayenne-lifecycle goodies as is, extend them, or 
simply refer to it as an example of what is possible with the new lifecycle 
tools. There's still lots of experimentation going on here, so its API is 
likely to change.
+
+Finally, 3.1M2 [download link](/download.html).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2011-06-21-cayenne-302-is-released.md
----------------------------------------------------------------------
diff --git a/_posts/2011-06-21-cayenne-302-is-released.md 
b/_posts/2011-06-21-cayenne-302-is-released.md
new file mode 100644
index 0000000..393d9c1
--- /dev/null
+++ b/_posts/2011-06-21-cayenne-302-is-released.md
@@ -0,0 +1,27 @@
+---
+layout: post
+title:  Cayenne 3.0.2 is Released
+date:   2011-6-21
+---
+
+We just released a maintenance version of stable Cayenne 3.0 branch. It has 19 
bug fixes and minor improvements, e.g. a performance improvement for MySQL 
(JDBC batching). If you are a 3.0.x user, this is certainly a recommended 
upgrade. A full list of closed jiras is below:
+
+* CAY-1500 MySQL JDBC Batching
+* CAY-1403 Method "readNestedProperty" Should Resolve Through Iterative 
Invocations onto DataObject and Not Complete Within Cayenne.readNestedProperty
+* CAY-1432 java.io.NotSerializableException when using OSCache for query cache 
with prefetches and persitent cache.
+* CAY-1444 NPE when persisting a newly instatiated object
+* CAY-1456 Investigate auto-increment columns on DB2 and switch the adapter 
policy to support them
+* CAY-1484 Flattened attribute queries are incorrectly generated
+* CAY-1485 Memory information for about dialog
+* CAY-1488 OutOfMemory when selecting "Remove Foreign Keys Mapped as Object 
Attributes"
+* CAY-1489 NPE using DataContext.objectFromDataRow for a nested context
+* CAY-1490 Maven cgen: all and datamap modes can not be activated
+* CAY-1496 Problem in derby: comparison operators are not supported on Clob 
object values.
+* CAY-1503 POST_LOAD is not called on prefetched objects
+* CAY-1505 Callbacks: POST_UPDATE is called on updated removed object, instead 
of POST_REMOVE
+* CAY-1506 Reserverd words mapping in WHERE clause
+* CAY-1518 cgen: duplicate callback methods
+* CAY-1557 Vertical inheritance is broken for subclasses with more than one 
flattened attribute
+* CAY-1561 Modeler trivial bug NullPointerException on remove
+* CAY-1567 BaseQueryMetadata.setPrefetches() causes a shared lock
+* CAY-1578 unicode character types on MS SQL 2008 server aren't recognized.

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2011-09-26-cayenne-31m3-is-released.md
----------------------------------------------------------------------
diff --git a/_posts/2011-09-26-cayenne-31m3-is-released.md 
b/_posts/2011-09-26-cayenne-31m3-is-released.md
new file mode 100644
index 0000000..57a90e9
--- /dev/null
+++ b/_posts/2011-09-26-cayenne-31m3-is-released.md
@@ -0,0 +1,59 @@
+---
+layout: post
+title:  Cayenne 3.1M3 is Released
+date:   2011-9-26
+---
+
+We are glad to announce 3.1M3 release of Cayenne. This is an important 
milestone on our way to Beta. In fact there is a good chance that the next 
release will be announced as Beta. Upgrade to M3 is strongly recommended to all 
3.1 users, as it contains some critical bug fixes. The highlights of the M3:
+
+* Core API improvements - cleaner vararg APIs in ObjectContext and Cayenne 
classes, ObjectContext.localObject(Object), etc.
+* Switching more of the internals to DI (query cache providers, loggers, 
various strategies controlling ObjectContext behavior, etc.). We'll keep 
working on this, so M4 will have more of it, and in fact there are a number of 
existing patches waiting for review (e.g. DI-based ExtendedTypes).
+* New QueryCache implementation based on EHCache (not thoroughly tested yet, 
so user feedback will be very helpful).
+* Refactoring of "cayenne-lifecycle" based on experience using it in the real 
apps.
+* Fixing a number of critical bugs.
+
+[Download link](/download.html)
+
+And now the full release notes:
+
+## Changes/New Features
+
+* CAY-943 Support multiple cayenne.xml files in the project
+* CAY-1266 Joint prefetches with fetch limit and offset do not work on Oracle
+* CAY-1461 CayenneModeler: remove ScopeMVC dependency - 
ObjRelationshipInfoDialog
+* CAY-1556 Add path construction feature to make constructing paths from 
constants easier for queries and orderings
+* CAY-1525 CharType: don't trim spaces on the left
+* CAY-1537 Implement ObjectContext local caches as NestedQueryCache over the 
shared cache
+* CAY-1544 Remove jdk1.6 module from Cayenne sources
+* CAY-1545 cayenne-lifecycle Referenceable handler refactoring
+* CAY-1547 cayenne-lifecycle: support for setting UuidRelationships
+* CAY-1549 Migrate BatchQueryBuilderFactory to DI
+* CAY-1553 cayenne-lifecycle: @SortWeight annotation
+* CAY-1573 QueryLogger to DI JdbcEventLogger migration
+* CAY-1584 Improve Cayenne modeler re-ordering named query in the cayenne map 
xml
+* CAY-1586 New extension point: a strategy for retaining objects in the 
ObjectStore
+* CAY-1590 DDL generation without a live datasource
+* CAY-1594 DI extension point: turning on/off cross-ObjectContext 
synchronization
+* CAY-1595 EHCache implementation of Provider<QueryCache>
+* CAY-1598 Per DataMap listeners are called for all entities in DataDomain
+* CAY-1599 Annotation-based global listeners registration
+* CAY-1605 Switch Cayenne to use unified Maven repository
+* CAY-1606 Change CayenneModeler new object naming strategy
+* CAY-1610 ObjectContext API to use varargs
+* CAY-1611 ObjectContext API improvement - better 'localObect' method
+
+## Bug Fixes
+
+* CAY-1469 Modeler: dbRelationships renaming problem
+* CAY-1526 Preferences: java.lang.IllegalArgumentException: Key too long
+* CAY-1539 Incorrect offset handling on some queries against database with 
supported LIMIT/OFFSET clauses
+* CAY-1546 cayenne-lifecycle: UuidBatchFault concurrency issues
+* CAY-1555 Unpublished dependencies of Maven plugins
+* CAY-1575 Error generating Embeddable classes in Cayenne Modeler
+* CAY-1577 SQL queries for LIKE expressions with escape character generated 
with syntax errors
+* CAY-1581 Not-Escaping <> during serialization to *.map.xml
+* CAY-1583 context.getObjectStore() returning null causing 
NullpointerException in DataMergeHandler
+* CAY-1585 SelectQuery automatic cache key needs FetchOffset
+* CAY-1591 CayenneModeler: keyboard shortcuts causing havoc in SQLTemplate SQL 
editor
+* CAY-1596 setFetchOffset & setFetchLimit issue under SQL Server 2008 R2 64Bit
+* CAY-1602 OSCache clustering should be shared per JVM - @CacheGroup 
annotation causes creation of too many cluster listeners

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2011/03/08/cayenne-31m2-is-released.md
----------------------------------------------------------------------
diff --git a/_posts/2011/03/08/cayenne-31m2-is-released.md 
b/_posts/2011/03/08/cayenne-31m2-is-released.md
deleted file mode 100644
index 7b3b32d..0000000
--- a/_posts/2011/03/08/cayenne-31m2-is-released.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: post
-title:  Cayenne 3.1M2 is Released
-date:   2011-3-8
----
-
-We keep improving Cayenne 3.1 with the new M2 milestone release. If you've 
already experimented with 3.1, M2 is a must-have upgrade - it fixes a number of 
bugs that affected runtime stability (CAY-1515, CAY-1519). If you haven't, 
maybe it is time to try it out? ;) Usual disclaimer applies about M2 being an 
early alpha and the new APIs being subject to change. In addition to the 
numerous bugfixes in the runtime and the Modeler, the new release introduces a 
set of brand new powerful tools for object lifecycle management. We'll briefly 
describe them here. Please check Guide to 3.1 Features for more details.
-
-* Cayenne now allows to declare listener methods with annotations. Configuring 
listener methods in the Modeler (or via API for that matter) was arguably the 
most tedious mapping task in Cayenne. What's even worse, if you reuse your 
model in more than one app, you may not want the listeners to be shared, so you 
don't want them to be in the model at all. M2 solves that by letting you to 
annotate the listener class, and registering a listener object where you need 
it with a single method call. A listener object can of course have multiple 
annotated callback methods:
-
-        MyListener listener = new MyListener();
-        
runtime.getChannel().getEntityResolver().getCallbackRegistry().addListener(listener);
-
-While JPA users may think that lifecycle annotations is old news, Cayenne goes 
a bit further than JPA here. Cayenne annotations let you attach a listener not 
just to specific entities, but also to entities whose names are not known to 
the listener upfront. A listener annotation may reference an arbitrary 
user-defined annotation which is then placed on entity classes. All of this 
completely changes how you manage your listeners. It becomes simple, clear and 
flexible.
-
-* Another cool lifecycle management tool is DataChannelFilter. A chain of 
filters can be configured by the user to intercept and react to the data 
traffic (selects, commits) between DataContext and DataDomain. This was sort of 
possible before by decorating a DataChannel, however the new approach is much 
less invasive, and more importantly, the filter object can also have annotated 
listener methods that are aware of the ongoing select or commit operation. 
That's what ultimately makes it usable in real-life situations. 
CacheInvalidationFilter in cayenne-lifeycle module (cayenne-lifecycle is 
described below) is a good example of how a filter collects some information 
about an ongoing persistence operation in a ThreadLocal object, and then 
processes aggregated information at the end of this operation.
-
-* We are taking advantage of the above feature by providing a 
cayenne-lifecycle extensions module that implements a few common lifecycle 
management scenarios - object audit, automated cache group invalidation, and 
handling a new kind of "to-any" relationship (we tentatively called that one a 
UuidRelationship). You may use cayenne-lifecycle goodies as is, extend them, or 
simply refer to it as an example of what is possible with the new lifecycle 
tools. There's still lots of experimentation going on here, so its API is 
likely to change.
-
-Finally, 3.1M2 [download link](/download.html).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2011/06/21/cayenne-302-is-released.md
----------------------------------------------------------------------
diff --git a/_posts/2011/06/21/cayenne-302-is-released.md 
b/_posts/2011/06/21/cayenne-302-is-released.md
deleted file mode 100644
index 393d9c1..0000000
--- a/_posts/2011/06/21/cayenne-302-is-released.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-layout: post
-title:  Cayenne 3.0.2 is Released
-date:   2011-6-21
----
-
-We just released a maintenance version of stable Cayenne 3.0 branch. It has 19 
bug fixes and minor improvements, e.g. a performance improvement for MySQL 
(JDBC batching). If you are a 3.0.x user, this is certainly a recommended 
upgrade. A full list of closed jiras is below:
-
-* CAY-1500 MySQL JDBC Batching
-* CAY-1403 Method "readNestedProperty" Should Resolve Through Iterative 
Invocations onto DataObject and Not Complete Within Cayenne.readNestedProperty
-* CAY-1432 java.io.NotSerializableException when using OSCache for query cache 
with prefetches and persitent cache.
-* CAY-1444 NPE when persisting a newly instatiated object
-* CAY-1456 Investigate auto-increment columns on DB2 and switch the adapter 
policy to support them
-* CAY-1484 Flattened attribute queries are incorrectly generated
-* CAY-1485 Memory information for about dialog
-* CAY-1488 OutOfMemory when selecting "Remove Foreign Keys Mapped as Object 
Attributes"
-* CAY-1489 NPE using DataContext.objectFromDataRow for a nested context
-* CAY-1490 Maven cgen: all and datamap modes can not be activated
-* CAY-1496 Problem in derby: comparison operators are not supported on Clob 
object values.
-* CAY-1503 POST_LOAD is not called on prefetched objects
-* CAY-1505 Callbacks: POST_UPDATE is called on updated removed object, instead 
of POST_REMOVE
-* CAY-1506 Reserverd words mapping in WHERE clause
-* CAY-1518 cgen: duplicate callback methods
-* CAY-1557 Vertical inheritance is broken for subclasses with more than one 
flattened attribute
-* CAY-1561 Modeler trivial bug NullPointerException on remove
-* CAY-1567 BaseQueryMetadata.setPrefetches() causes a shared lock
-* CAY-1578 unicode character types on MS SQL 2008 server aren't recognized.

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2011/09/26/cayenne-31m3-is-released.md
----------------------------------------------------------------------
diff --git a/_posts/2011/09/26/cayenne-31m3-is-released.md 
b/_posts/2011/09/26/cayenne-31m3-is-released.md
deleted file mode 100644
index 57a90e9..0000000
--- a/_posts/2011/09/26/cayenne-31m3-is-released.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: post
-title:  Cayenne 3.1M3 is Released
-date:   2011-9-26
----
-
-We are glad to announce 3.1M3 release of Cayenne. This is an important 
milestone on our way to Beta. In fact there is a good chance that the next 
release will be announced as Beta. Upgrade to M3 is strongly recommended to all 
3.1 users, as it contains some critical bug fixes. The highlights of the M3:
-
-* Core API improvements - cleaner vararg APIs in ObjectContext and Cayenne 
classes, ObjectContext.localObject(Object), etc.
-* Switching more of the internals to DI (query cache providers, loggers, 
various strategies controlling ObjectContext behavior, etc.). We'll keep 
working on this, so M4 will have more of it, and in fact there are a number of 
existing patches waiting for review (e.g. DI-based ExtendedTypes).
-* New QueryCache implementation based on EHCache (not thoroughly tested yet, 
so user feedback will be very helpful).
-* Refactoring of "cayenne-lifecycle" based on experience using it in the real 
apps.
-* Fixing a number of critical bugs.
-
-[Download link](/download.html)
-
-And now the full release notes:
-
-## Changes/New Features
-
-* CAY-943 Support multiple cayenne.xml files in the project
-* CAY-1266 Joint prefetches with fetch limit and offset do not work on Oracle
-* CAY-1461 CayenneModeler: remove ScopeMVC dependency - 
ObjRelationshipInfoDialog
-* CAY-1556 Add path construction feature to make constructing paths from 
constants easier for queries and orderings
-* CAY-1525 CharType: don't trim spaces on the left
-* CAY-1537 Implement ObjectContext local caches as NestedQueryCache over the 
shared cache
-* CAY-1544 Remove jdk1.6 module from Cayenne sources
-* CAY-1545 cayenne-lifecycle Referenceable handler refactoring
-* CAY-1547 cayenne-lifecycle: support for setting UuidRelationships
-* CAY-1549 Migrate BatchQueryBuilderFactory to DI
-* CAY-1553 cayenne-lifecycle: @SortWeight annotation
-* CAY-1573 QueryLogger to DI JdbcEventLogger migration
-* CAY-1584 Improve Cayenne modeler re-ordering named query in the cayenne map 
xml
-* CAY-1586 New extension point: a strategy for retaining objects in the 
ObjectStore
-* CAY-1590 DDL generation without a live datasource
-* CAY-1594 DI extension point: turning on/off cross-ObjectContext 
synchronization
-* CAY-1595 EHCache implementation of Provider<QueryCache>
-* CAY-1598 Per DataMap listeners are called for all entities in DataDomain
-* CAY-1599 Annotation-based global listeners registration
-* CAY-1605 Switch Cayenne to use unified Maven repository
-* CAY-1606 Change CayenneModeler new object naming strategy
-* CAY-1610 ObjectContext API to use varargs
-* CAY-1611 ObjectContext API improvement - better 'localObect' method
-
-## Bug Fixes
-
-* CAY-1469 Modeler: dbRelationships renaming problem
-* CAY-1526 Preferences: java.lang.IllegalArgumentException: Key too long
-* CAY-1539 Incorrect offset handling on some queries against database with 
supported LIMIT/OFFSET clauses
-* CAY-1546 cayenne-lifecycle: UuidBatchFault concurrency issues
-* CAY-1555 Unpublished dependencies of Maven plugins
-* CAY-1575 Error generating Embeddable classes in Cayenne Modeler
-* CAY-1577 SQL queries for LIKE expressions with escape character generated 
with syntax errors
-* CAY-1581 Not-Escaping <> during serialization to *.map.xml
-* CAY-1583 context.getObjectStore() returning null causing 
NullpointerException in DataMergeHandler
-* CAY-1585 SelectQuery automatic cache key needs FetchOffset
-* CAY-1591 CayenneModeler: keyboard shortcuts causing havoc in SQLTemplate SQL 
editor
-* CAY-1596 setFetchOffset & setFetchLimit issue under SQL Server 2008 R2 64Bit
-* CAY-1602 OSCache clustering should be shared per JVM - @CacheGroup 
annotation causes creation of too many cluster listeners

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2012-06-12-cayenne-31-beta-released.md
----------------------------------------------------------------------
diff --git a/_posts/2012-06-12-cayenne-31-beta-released.md 
b/_posts/2012-06-12-cayenne-31-beta-released.md
new file mode 100644
index 0000000..2fd243e
--- /dev/null
+++ b/_posts/2012-06-12-cayenne-31-beta-released.md
@@ -0,0 +1,13 @@
+---
+layout: post
+title:  Cayenne 3.1 Beta Released
+date:   2012-6-12
+---
+
+Very happy to announce Cayenne 3.1 beta! Apache Cayenne is one of the leading 
open source Java ORMs with a simple learning curve and a set of unique 
functionality like generic objects, remote object persistence, etc. Cayenne 3.1 
features a small (only 40K), but very powerful built-in dependency injection 
container, declarative object lifecycle support and dozens of improvements in 
all areas of the framework and the modeling tools. 
+
+With 3.1 beta out, we are freezing all development of this branch, and will 
concentrate on bug fixing and stabilizing the release in preparation of 3.1 
final. So now may be the time to try 3.1.
+
+Cayenne can be downloaded from [here](/download.html).
+
+For a list of issues resolved in 3.1 beta, check the [release 
notes](http://svn.apache.org/repos/asf/cayenne/main/tags/3.1B1/docs/doc/src/main/resources/RELEASE-NOTES.txt).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2012/06/12/cayenne-31-beta-released.md
----------------------------------------------------------------------
diff --git a/_posts/2012/06/12/cayenne-31-beta-released.md 
b/_posts/2012/06/12/cayenne-31-beta-released.md
deleted file mode 100644
index 2fd243e..0000000
--- a/_posts/2012/06/12/cayenne-31-beta-released.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: post
-title:  Cayenne 3.1 Beta Released
-date:   2012-6-12
----
-
-Very happy to announce Cayenne 3.1 beta! Apache Cayenne is one of the leading 
open source Java ORMs with a simple learning curve and a set of unique 
functionality like generic objects, remote object persistence, etc. Cayenne 3.1 
features a small (only 40K), but very powerful built-in dependency injection 
container, declarative object lifecycle support and dozens of improvements in 
all areas of the framework and the modeling tools. 
-
-With 3.1 beta out, we are freezing all development of this branch, and will 
concentrate on bug fixing and stabilizing the release in preparation of 3.1 
final. So now may be the time to try 3.1.
-
-Cayenne can be downloaded from [here](/download.html).
-
-For a list of issues resolved in 3.1 beta, check the [release 
notes](http://svn.apache.org/repos/asf/cayenne/main/tags/3.1B1/docs/doc/src/main/resources/RELEASE-NOTES.txt).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2013-02-18-cayenne-31b2-released.md
----------------------------------------------------------------------
diff --git a/_posts/2013-02-18-cayenne-31b2-released.md 
b/_posts/2013-02-18-cayenne-31b2-released.md
new file mode 100644
index 0000000..cbb67e2
--- /dev/null
+++ b/_posts/2013-02-18-cayenne-31b2-released.md
@@ -0,0 +1,42 @@
+---
+layout: post
+title:  Cayenne 3.1 Beta 2 Released
+date:   2013-2-18
+---
+
+A second Beta of Cayenne 3.1 is available. Apache Cayenne is one of the 
leading open source Java ORMs with a simple learning curve and many unique 
features like generic objects, remote object persistence, etc. This beta 
release includes more complete documentation (still work in progress), and more 
than 20 bug fixes to the Modeler and the runtime framework. This release goes a 
long way in stabilizing and improving 3.1 for an average user. Very likely this 
will be the last beta before we make a "release candidate" and 3.1 "final". 
Most of the remaining 3.1 work will now focus on user documentation. 
+
+B2 is a recommended upgrade for 3.1 users. We also certainly encourage 
everyone else to upgrade to 3.1 right now and tell us if you find any problems. 
+
+Cayenne can be downloaded from [here](/download.html).
+
+A full list of changes in this release:
+
+* CAY-1737 ObjectContexts listening to DataChannel events must be non-blocking
+* CAY-1753 remove light-superclass.vm class template
+* CAY-1754 Modeler suggested URL for SQLServer should start with 
'jdbc:sqlserver:' instead of 'jdbc:microsoft:sqlserver:'
+
+Bug fixes in this release:
+
+* CAY-957 Deadlock in nested contexts
+* CAY-1689 [PATCH] LOB*QueryBuilders do not check isQuotingSQLIdentifiers
+* CAY-1701 Modeler cannot undo pasting of obj (db) entity
+* CAY-1708 Modeler error when pasting datamap with EJBQL query
+* CAY-1713 Inconsistent property name: "cayenne.rop.service.timeout"
+* CAY-1714 ROP: Cayenne tries to build a query for non committed object when 
using more than 2 nested contexts 
+* CAY-1715 Passing parameters to mapped EJBQL queries
+* CAY-1721 Writing blobs fails (Oracle)
+* CAY-1725 NullPointerException from call to removeToManyTarget
+* CAY-1727 Modeler thinks entity is using inheritance when it doesn't
+* CAY-1729 PersistentDescriptor must have predictable property iteration order
+* CAY-1735 Serializable IncrementalFaultList
+* CAY-1738 Tutorial cayenne-rop-server should be packaged as a war
+* CAY-1739 Cayenne ROP server resets session on every request if BASIC auth is 
used
+* CAY-1741 Serializable DataObjectBaseProperty
+* CAY-1742 CAY-1742 ObjRelationship inspector says "ObjAttribute Inspector"
+* CAY-1744 Unexpected read-only relationships in vertical inheritance mapping
+* CAY-1749 NPE on simple nested context commit
+* CAY-1755 FaultFailureException resolving relationships to UNIQUE non-PK 
columns
+* CAY-1757 ROP: Faulting entity relationship resets uncommitted modifications 
made to its reverse relationship 
+* CAY-1774 EhCacheQueryCache.get(QueryMetadata, QueryCacheEntryFactory) 
returns null if EhCache instance for group is not present
+* CAY-1783 JdbcPkGenerator.longPkFromDatabase would throw an exception if the 
PK value exceeds a range of Java int

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2013-07-19-cayenne-32m1-released.md
----------------------------------------------------------------------
diff --git a/_posts/2013-07-19-cayenne-32m1-released.md 
b/_posts/2013-07-19-cayenne-32m1-released.md
new file mode 100644
index 0000000..e4b0ea8
--- /dev/null
+++ b/_posts/2013-07-19-cayenne-32m1-released.md
@@ -0,0 +1,107 @@
+---
+layout: post
+title:  Cayenne 3.2 Milestone 1 Released
+date:   2013-7-19
+---
+
+While Cayenne 3.1 release is in Beta and frozen, we are moving ahead with new 
development. Today we are glad to announce
+the first milestone of Cayenne 3.2. You may remember that 3.1 was all about 
dependency injection. 
+Well, 3.2 is becoming all about improving user-facing APIs (Query, 
ObjectContext, etc.). We are finally fully taking 
+advantage of generics to make your code type-safe, and otherwise ensuring that 
the code you write is more 
+concise and readable. Some of these improvements are achieved via smart class 
generation 
+that creates type-safe static "properties", allowing to build type-safe 
expressions. Just to give a taste of Cayenne 3.2:
+
+    // 3.1 style:
+    Expression e = ExpressionFactory.matchExp(Painting.ARTIST_PROPERTY, 
artist);
+    SelectQuery q = new SelectQuery(Painting.class, e);
+    @SuppressWarnings("unchecked")
+    List<Painting> paintings = context.performQuery(q);
+
+    // 3.2 style:
+    Expression e = Painting.ARTIST.eq(artist);
+    SelectQuery<Painting> q = SelectQuery.query(Painting.class, e);
+    List<Painting> paintings = context.select(q);
+
+3.2 style results in less code, type-safe expressions and results, and no 
compiler warnings. Another noteable 
+improvement is a reworked 'cdbimport' that enabled Modeler-free workflow for 
some databases. So there's a lot to like for 
+the early 3.2 adopters.
+
+Cayenne can be downloaded from [here](/download.html).
+
+A full list of changes in this release:
+
+* CAY-1294 Generify query
+* CAY-1646 Synchronize tabs in Modeler between ObjEntity and DbEntity editor 
panes
+* CAY-1647 Easily switch to/from ObjEntity and DbEntity in Modeler
+* CAY-1717 [PATCH] Implement JDBC compatibility layer methods
+* CAY-1718 Remove everything deprecated in 3.1
+* CAY-1724 Add 'Property' class for easier and better Expression creation
+* CAY-1726 Expression parser support for bit operators, support for << and >>
+* CAY-1737 ObjectContexts listening to DataChannel events must be non-blocking
+* CAY-1748 IdCoder/EntityIdCoder improvements to work with ObjectIds, 
including temp ones
+* CAY-1753 remove light-superclass.vm class template
+* CAY-1754 Modeler suggested URL for SQLServer should start with 
'jdbc:sqlserver:' instead of 'jdbc:microsoft:sqlserver:'
+* CAY-1758 cdbimport improvements
+* CAY-1759 cdbimport improvements: add 'catalog', rename 'schemaName' to 
'schema'
+* CAY-1760 cdbimport improvements: Default adapter (if none specified) must be 
AutoAdapter, not JdbcAdapter 
+* CAY-1761 cdbimport improvements: DbLoader must reverse engineer PK 
auto-increment state. 
+* CAY-1762 cdbimport improvements: Support for "defaultPackage" parameter, as 
the new DataMaps ends up placing entities in the root package 
+* CAY-1763 cdbimport improvements: specified "schema" should become the 
default schema of the generated DataMap 
+* CAY-1764 cdbimport improvements: "overwrite" flag
+* CAY-1765 cdbimport improvements: add excludeTables/includeTables parameters
+* CAY-1766 Deprecating DataPort ant task
+* CAY-1768 cdbimport improvements: DataMap "project-version" attribute is 
skipped when DM is saved
+* CAY-1769 cdbimport improvements: meaningfulPk flag must be turned into a 
pattern
+* CAY-1771 cdbimport improvements: "usePrimitives" flag
+* CAY-1772 Real support for DbEntity catalogs
+* CAY-1778 TransactionManager to simplify user-managed transactions 
+* CAY-1779 Flatten object entities for many to many relationships on reverse 
engineering 
+* CAY-1781 Add StatelessContextRequestHandler as an alternative to the 
Session-based one
+* CAY-1785 SelectQuery<T> for DataRows
+* CAY-1789 Lock-free EntityResolver 
+* CAY-1792 [PATCH] Supply additional factory methods for generic SelectQueries 
+* CAY-1803 Optimize Expression conversion to String and EJBQL 
+* CAY-1809 Remove 'final' modifier from Cayenne, HessianUtil, 
PropertyComparator, ConversionUtil, and LinkedDeque
+* CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity 
Columns
+* CAY-1814 Support Property.nin 
+* CAY-1819 When adding a filter, auto-register it as a listener 
+* CAY-1820 DataDomain.addListener(Object) - a shortcut for adding annotated 
listeners 
+* CAY-1821 AuditableFilter and friends should explicitly work with Persistent 
instead of Object
+* CAY-1822 Make DataMap editor fields wider 
+* CAY-1823 remove ":sync w/DbEntity" button from ObjEntity - it is redundant 
and already present on the entity toolbar. 
+* CAY-1825 Simplify API for setting up query caching
+* CAY-1828 SQLSelect - generics friendly fluent selecting sql query
+* CAY-1829 Make ResultIterator implement Iterable<T>, create 
ObjectContext.iterate method
+* CAY-1836 Firebird Adapter 
+* CAY-1838 Deprecate EntityResolver.indexedByClassProperty
+
+Bug Fixes:
+
+* CAY-957 Deadlock in nested contexts
+* CAY-1522 EJBQL query don't support quotes
+* CAY-1677 Modeler: text fields discard input unless you press enter
+* CAY-1701 Modeler cannot undo pasting of obj (db) entity
+* CAY-1708 Modeler error when pasting datamap with EJBQL query
+* CAY-1714 ROP: Cayenne tries to build a query for non committed object when 
using more than 2 nested contexts 
+* CAY-1721 Writing blobs fails (Oracle)
+* CAY-1725 NullPointerException from call to removeToManyTarget
+* CAY-1719 Modeler - Obj Attribute Java Type editor won't focus sometimes
+* CAY-1727 Modeler thinks entity is using inheritance when it doesn't
+* CAY-1729 PersistentDescriptor must have predictable property iteration order
+* CAY-1738 Tutorial cayenne-rop-server should be packaged as a war
+* CAY-1739 Cayenne ROP server resets session on every request if BASIC auth is 
used
+* CAY-1742 ObjRelationship inspector says "ObjAttribute Inspector"
+* CAY-1744 Unexpected read-only relationships in vertical inheritance mapping
+* CAY-1749 NPE on simple nested context commit
+* CAY-1755 FaultFailureException resolving relationships to UNIQUE non-PK 
columns
+* CAY-1757 ROP: Faulting entity relationship resets uncommitted modifications 
made to its reverse relationship 
+* CAY-1774 EhCacheQueryCache.get(QueryMetadata, QueryCacheEntryFactory) 
returns null if EhCache instance for group is not present
+* CAY-1780 cdbimport do not create xml file in resource folder
+* CAY-1782 Deadlock when performing many concurrent inserts
+* CAY-1783 JdbcPkGenerator.longPkFromDatabase would throw an exception if the 
PK value exceeds a range of Java int
+* CAY-1794 Duplicate attributes in discriminator columns of 
PersistentDescriptor
+* CAY-1804 Serialisation of long[] type was not working correctly. 
+* CAY-1806 Error importing eomodel 
+* CAY-1817 NPE during Validate Project 
+* CAY-1827 EhCache region corresponding to a cache group loses its settings 
after 'removeGroup'
+* CAY-1832 Exception when modifying objects in postLoad callback

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2013/02/cayenne-31b2-released.md
----------------------------------------------------------------------
diff --git a/_posts/2013/02/cayenne-31b2-released.md 
b/_posts/2013/02/cayenne-31b2-released.md
deleted file mode 100644
index cbb67e2..0000000
--- a/_posts/2013/02/cayenne-31b2-released.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-layout: post
-title:  Cayenne 3.1 Beta 2 Released
-date:   2013-2-18
----
-
-A second Beta of Cayenne 3.1 is available. Apache Cayenne is one of the 
leading open source Java ORMs with a simple learning curve and many unique 
features like generic objects, remote object persistence, etc. This beta 
release includes more complete documentation (still work in progress), and more 
than 20 bug fixes to the Modeler and the runtime framework. This release goes a 
long way in stabilizing and improving 3.1 for an average user. Very likely this 
will be the last beta before we make a "release candidate" and 3.1 "final". 
Most of the remaining 3.1 work will now focus on user documentation. 
-
-B2 is a recommended upgrade for 3.1 users. We also certainly encourage 
everyone else to upgrade to 3.1 right now and tell us if you find any problems. 
-
-Cayenne can be downloaded from [here](/download.html).
-
-A full list of changes in this release:
-
-* CAY-1737 ObjectContexts listening to DataChannel events must be non-blocking
-* CAY-1753 remove light-superclass.vm class template
-* CAY-1754 Modeler suggested URL for SQLServer should start with 
'jdbc:sqlserver:' instead of 'jdbc:microsoft:sqlserver:'
-
-Bug fixes in this release:
-
-* CAY-957 Deadlock in nested contexts
-* CAY-1689 [PATCH] LOB*QueryBuilders do not check isQuotingSQLIdentifiers
-* CAY-1701 Modeler cannot undo pasting of obj (db) entity
-* CAY-1708 Modeler error when pasting datamap with EJBQL query
-* CAY-1713 Inconsistent property name: "cayenne.rop.service.timeout"
-* CAY-1714 ROP: Cayenne tries to build a query for non committed object when 
using more than 2 nested contexts 
-* CAY-1715 Passing parameters to mapped EJBQL queries
-* CAY-1721 Writing blobs fails (Oracle)
-* CAY-1725 NullPointerException from call to removeToManyTarget
-* CAY-1727 Modeler thinks entity is using inheritance when it doesn't
-* CAY-1729 PersistentDescriptor must have predictable property iteration order
-* CAY-1735 Serializable IncrementalFaultList
-* CAY-1738 Tutorial cayenne-rop-server should be packaged as a war
-* CAY-1739 Cayenne ROP server resets session on every request if BASIC auth is 
used
-* CAY-1741 Serializable DataObjectBaseProperty
-* CAY-1742 CAY-1742 ObjRelationship inspector says "ObjAttribute Inspector"
-* CAY-1744 Unexpected read-only relationships in vertical inheritance mapping
-* CAY-1749 NPE on simple nested context commit
-* CAY-1755 FaultFailureException resolving relationships to UNIQUE non-PK 
columns
-* CAY-1757 ROP: Faulting entity relationship resets uncommitted modifications 
made to its reverse relationship 
-* CAY-1774 EhCacheQueryCache.get(QueryMetadata, QueryCacheEntryFactory) 
returns null if EhCache instance for group is not present
-* CAY-1783 JdbcPkGenerator.longPkFromDatabase would throw an exception if the 
PK value exceeds a range of Java int

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2013/07/cayenne-32m1-released.md
----------------------------------------------------------------------
diff --git a/_posts/2013/07/cayenne-32m1-released.md 
b/_posts/2013/07/cayenne-32m1-released.md
deleted file mode 100644
index e4b0ea8..0000000
--- a/_posts/2013/07/cayenne-32m1-released.md
+++ /dev/null
@@ -1,107 +0,0 @@
----
-layout: post
-title:  Cayenne 3.2 Milestone 1 Released
-date:   2013-7-19
----
-
-While Cayenne 3.1 release is in Beta and frozen, we are moving ahead with new 
development. Today we are glad to announce
-the first milestone of Cayenne 3.2. You may remember that 3.1 was all about 
dependency injection. 
-Well, 3.2 is becoming all about improving user-facing APIs (Query, 
ObjectContext, etc.). We are finally fully taking 
-advantage of generics to make your code type-safe, and otherwise ensuring that 
the code you write is more 
-concise and readable. Some of these improvements are achieved via smart class 
generation 
-that creates type-safe static "properties", allowing to build type-safe 
expressions. Just to give a taste of Cayenne 3.2:
-
-    // 3.1 style:
-    Expression e = ExpressionFactory.matchExp(Painting.ARTIST_PROPERTY, 
artist);
-    SelectQuery q = new SelectQuery(Painting.class, e);
-    @SuppressWarnings("unchecked")
-    List<Painting> paintings = context.performQuery(q);
-
-    // 3.2 style:
-    Expression e = Painting.ARTIST.eq(artist);
-    SelectQuery<Painting> q = SelectQuery.query(Painting.class, e);
-    List<Painting> paintings = context.select(q);
-
-3.2 style results in less code, type-safe expressions and results, and no 
compiler warnings. Another noteable 
-improvement is a reworked 'cdbimport' that enabled Modeler-free workflow for 
some databases. So there's a lot to like for 
-the early 3.2 adopters.
-
-Cayenne can be downloaded from [here](/download.html).
-
-A full list of changes in this release:
-
-* CAY-1294 Generify query
-* CAY-1646 Synchronize tabs in Modeler between ObjEntity and DbEntity editor 
panes
-* CAY-1647 Easily switch to/from ObjEntity and DbEntity in Modeler
-* CAY-1717 [PATCH] Implement JDBC compatibility layer methods
-* CAY-1718 Remove everything deprecated in 3.1
-* CAY-1724 Add 'Property' class for easier and better Expression creation
-* CAY-1726 Expression parser support for bit operators, support for << and >>
-* CAY-1737 ObjectContexts listening to DataChannel events must be non-blocking
-* CAY-1748 IdCoder/EntityIdCoder improvements to work with ObjectIds, 
including temp ones
-* CAY-1753 remove light-superclass.vm class template
-* CAY-1754 Modeler suggested URL for SQLServer should start with 
'jdbc:sqlserver:' instead of 'jdbc:microsoft:sqlserver:'
-* CAY-1758 cdbimport improvements
-* CAY-1759 cdbimport improvements: add 'catalog', rename 'schemaName' to 
'schema'
-* CAY-1760 cdbimport improvements: Default adapter (if none specified) must be 
AutoAdapter, not JdbcAdapter 
-* CAY-1761 cdbimport improvements: DbLoader must reverse engineer PK 
auto-increment state. 
-* CAY-1762 cdbimport improvements: Support for "defaultPackage" parameter, as 
the new DataMaps ends up placing entities in the root package 
-* CAY-1763 cdbimport improvements: specified "schema" should become the 
default schema of the generated DataMap 
-* CAY-1764 cdbimport improvements: "overwrite" flag
-* CAY-1765 cdbimport improvements: add excludeTables/includeTables parameters
-* CAY-1766 Deprecating DataPort ant task
-* CAY-1768 cdbimport improvements: DataMap "project-version" attribute is 
skipped when DM is saved
-* CAY-1769 cdbimport improvements: meaningfulPk flag must be turned into a 
pattern
-* CAY-1771 cdbimport improvements: "usePrimitives" flag
-* CAY-1772 Real support for DbEntity catalogs
-* CAY-1778 TransactionManager to simplify user-managed transactions 
-* CAY-1779 Flatten object entities for many to many relationships on reverse 
engineering 
-* CAY-1781 Add StatelessContextRequestHandler as an alternative to the 
Session-based one
-* CAY-1785 SelectQuery<T> for DataRows
-* CAY-1789 Lock-free EntityResolver 
-* CAY-1792 [PATCH] Supply additional factory methods for generic SelectQueries 
-* CAY-1803 Optimize Expression conversion to String and EJBQL 
-* CAY-1809 Remove 'final' modifier from Cayenne, HessianUtil, 
PropertyComparator, ConversionUtil, and LinkedDeque
-* CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity 
Columns
-* CAY-1814 Support Property.nin 
-* CAY-1819 When adding a filter, auto-register it as a listener 
-* CAY-1820 DataDomain.addListener(Object) - a shortcut for adding annotated 
listeners 
-* CAY-1821 AuditableFilter and friends should explicitly work with Persistent 
instead of Object
-* CAY-1822 Make DataMap editor fields wider 
-* CAY-1823 remove ":sync w/DbEntity" button from ObjEntity - it is redundant 
and already present on the entity toolbar. 
-* CAY-1825 Simplify API for setting up query caching
-* CAY-1828 SQLSelect - generics friendly fluent selecting sql query
-* CAY-1829 Make ResultIterator implement Iterable<T>, create 
ObjectContext.iterate method
-* CAY-1836 Firebird Adapter 
-* CAY-1838 Deprecate EntityResolver.indexedByClassProperty
-
-Bug Fixes:
-
-* CAY-957 Deadlock in nested contexts
-* CAY-1522 EJBQL query don't support quotes
-* CAY-1677 Modeler: text fields discard input unless you press enter
-* CAY-1701 Modeler cannot undo pasting of obj (db) entity
-* CAY-1708 Modeler error when pasting datamap with EJBQL query
-* CAY-1714 ROP: Cayenne tries to build a query for non committed object when 
using more than 2 nested contexts 
-* CAY-1721 Writing blobs fails (Oracle)
-* CAY-1725 NullPointerException from call to removeToManyTarget
-* CAY-1719 Modeler - Obj Attribute Java Type editor won't focus sometimes
-* CAY-1727 Modeler thinks entity is using inheritance when it doesn't
-* CAY-1729 PersistentDescriptor must have predictable property iteration order
-* CAY-1738 Tutorial cayenne-rop-server should be packaged as a war
-* CAY-1739 Cayenne ROP server resets session on every request if BASIC auth is 
used
-* CAY-1742 ObjRelationship inspector says "ObjAttribute Inspector"
-* CAY-1744 Unexpected read-only relationships in vertical inheritance mapping
-* CAY-1749 NPE on simple nested context commit
-* CAY-1755 FaultFailureException resolving relationships to UNIQUE non-PK 
columns
-* CAY-1757 ROP: Faulting entity relationship resets uncommitted modifications 
made to its reverse relationship 
-* CAY-1774 EhCacheQueryCache.get(QueryMetadata, QueryCacheEntryFactory) 
returns null if EhCache instance for group is not present
-* CAY-1780 cdbimport do not create xml file in resource folder
-* CAY-1782 Deadlock when performing many concurrent inserts
-* CAY-1783 JdbcPkGenerator.longPkFromDatabase would throw an exception if the 
PK value exceeds a range of Java int
-* CAY-1794 Duplicate attributes in discriminator columns of 
PersistentDescriptor
-* CAY-1804 Serialisation of long[] type was not working correctly. 
-* CAY-1806 Error importing eomodel 
-* CAY-1817 NPE during Validate Project 
-* CAY-1827 EhCache region corresponding to a cache group loses its settings 
after 'removeGroup'
-* CAY-1832 Exception when modifying objects in postLoad callback

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2014-02-16-cayenne-31rc1-released.md
----------------------------------------------------------------------
diff --git a/_posts/2014-02-16-cayenne-31rc1-released.md 
b/_posts/2014-02-16-cayenne-31rc1-released.md
new file mode 100644
index 0000000..a1d2d8c
--- /dev/null
+++ b/_posts/2014-02-16-cayenne-31rc1-released.md
@@ -0,0 +1,35 @@
+---
+layout: post
+title:  Cayenne 3.1 Release Candidate is Available
+date:   2014-2-16
+---
+
+We are glad to announce a release candidate of Cayenne 3.1. Apache Cayenne is 
one of the leading open source Java ORMs with a simple learning curve and many 
unique features like generic objects, remote object persistence, etc. It's been 
a while since the last beta, giving us an opportunity to collect feedback from 
the community, fix bugs and improve the documentation. Still 3.1 has remained 
very stable, and the new RC1 is really a drop-in replacement for the previous 
beta version. The next 3.1 release will likely be a "final" (aka "GA"). Most of 
the remaining work will focus on user documentation. 
+
+Cayenne can be downloaded from [here](/download.html). Give it a try and give 
us feedback!
+
+A full list of changes in this release:
+
+* CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity 
Columns
+* CAY-1822 Make DataMap editor fields wider 
+
+Bug fixes in this release:
+
+* CAY-1736 IllegalArgumentException when synchronizing entities in the Modeler
+* CAY-1794 Duplicate attributes in discriminator columns of 
PersistentDescriptor
+* CAY-1797 NPE importing DataMap
+* CAY-1799 ROP: Server can't deserialize LIKE expression with pattern already 
compiled
+* CAY-1804 Serialisation of long[] type was not working correctly. 
+* CAY-1806 Error importing eomodel 
+* CAY-1809 Remove 'final' modifier from Cayenne, HessianUtil, 
PropertyComparator, ConversionUtil, and LinkedDeque
+* CAY-1818 Fix copyright year in the Modeler "about" panel
+* CAY-1827 EhCache region corresponding to a cache group loses its settings 
after 'removeGroup'
+* CAY-1845 Upgrade javadoc plugin to 2.9.1 
+* CAY-1854 driver.xsd schema shouldn't be in 3.1 - it is no longer applicable 
+* CAY-1856 Expression.expWithParameters does not work when parameters are 
placed in the inline collection 
+* CAY-1866 Change in General Modeler Preferences reverts old settings to 
default value
+* CAY-1868 Select contention with multiple contexts 
+* CAY-1874 DB2 Procedure action ignores the first result set
+* CAY-1880 objectStore snapshots never cleared from RefreshQuery when "use 
shared cache" unchecked
+* CAY-1881 CayenneModeler (Mac version) doesn't work with Java 7
+* CAY-1885 Null value in subclass's field.

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2014-09-29-cayenne-31-released.md
----------------------------------------------------------------------
diff --git a/_posts/2014-09-29-cayenne-31-released.md 
b/_posts/2014-09-29-cayenne-31-released.md
new file mode 100644
index 0000000..fdae297
--- /dev/null
+++ b/_posts/2014-09-29-cayenne-31-released.md
@@ -0,0 +1,40 @@
+---
+layout: post
+title:  The Apache Software Foundation Announces Apache™ Cayenne™ v3.1
+date:   2014-9-29
+---
+
+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.
+
+"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.
+
+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.
+
+Apache Cayenne v3.1 is the result of 4 years of development. Notable new 
features and improvements include:
+
+* easier configuration and embedding in any type of application;
+* 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;
+* 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;
+* 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;
+* 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
+
+"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."
+
+"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."
+
+"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.
+
+"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."
+In addition, Apache Cayenne's HTML documentation and tutorials have been 
completely revised and available in PDF for the first time.
+
+"Our comprehensive documentation and vibrant, helpful user community are just 
what you need when you have questions about the internals of Cayenne or the 
best way to achieve your goals," added Adamchik.
+
+### Availability and Oversight
+Cayenne v3.1 is available immediately as a free download from 
[http://cayenne.apache.org/download.html](http://cayenne.apache.org/download.html).
 As with all Apache products, Apache Cayenne software is released under the 
Apache License v2.0, and is overseen by a self-selected team of active 
contributors to the project. A Project Management Committee (PMC) guides the 
Project's day-to-day operations, including community development and product 
releases. For documentation and ways to become involved with Apache Cayenne, 
visit [http://cayenne.apache.org/](http://cayenne.apache.org/) and 
@ApacheCayenne on Twitter.
+
+### About The Apache Software Foundation (ASF)
+Established in 1999, the all-volunteer Foundation oversees more than two 
hundred leading Open Source projects, including Apache HTTP Server --the 
world's most popular Web server software. Through the ASF's meritocratic 
process known as "The Apache Way," more than 450 individual Members and 4,000 
Committers successfully collaborate to develop freely available 
enterprise-grade software, benefiting millions of users worldwide: thousands of 
software solutions are distributed under the Apache License; and the community 
actively participates in ASF mailing lists, mentoring initiatives, and 
ApacheCon, the Foundation's official user conference, trainings, and expo. The 
ASF is a US 501(c)(3) charitable organization, funded by individual donations 
and corporate sponsors including Budget Direct, Citrix, Cloudera, Comcast, 
Facebook, Google, Hortonworks, HP, Huawei, IBM, InMotion Hosting, Matt 
Mullenweg, Microsoft, Pivotal, Produban, WANdisco, and Yahoo. For more 
information, visit [http://www.a
 pache.org/](http://www.apache.org/) or follow @TheASF on Twitter.
+

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2014/02/cayenne-31rc1-released.md
----------------------------------------------------------------------
diff --git a/_posts/2014/02/cayenne-31rc1-released.md 
b/_posts/2014/02/cayenne-31rc1-released.md
deleted file mode 100644
index a1d2d8c..0000000
--- a/_posts/2014/02/cayenne-31rc1-released.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-layout: post
-title:  Cayenne 3.1 Release Candidate is Available
-date:   2014-2-16
----
-
-We are glad to announce a release candidate of Cayenne 3.1. Apache Cayenne is 
one of the leading open source Java ORMs with a simple learning curve and many 
unique features like generic objects, remote object persistence, etc. It's been 
a while since the last beta, giving us an opportunity to collect feedback from 
the community, fix bugs and improve the documentation. Still 3.1 has remained 
very stable, and the new RC1 is really a drop-in replacement for the previous 
beta version. The next 3.1 release will likely be a "final" (aka "GA"). Most of 
the remaining work will focus on user documentation. 
-
-Cayenne can be downloaded from [here](/download.html). Give it a try and give 
us feedback!
-
-A full list of changes in this release:
-
-* CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity 
Columns
-* CAY-1822 Make DataMap editor fields wider 
-
-Bug fixes in this release:
-
-* CAY-1736 IllegalArgumentException when synchronizing entities in the Modeler
-* CAY-1794 Duplicate attributes in discriminator columns of 
PersistentDescriptor
-* CAY-1797 NPE importing DataMap
-* CAY-1799 ROP: Server can't deserialize LIKE expression with pattern already 
compiled
-* CAY-1804 Serialisation of long[] type was not working correctly. 
-* CAY-1806 Error importing eomodel 
-* CAY-1809 Remove 'final' modifier from Cayenne, HessianUtil, 
PropertyComparator, ConversionUtil, and LinkedDeque
-* CAY-1818 Fix copyright year in the Modeler "about" panel
-* CAY-1827 EhCache region corresponding to a cache group loses its settings 
after 'removeGroup'
-* CAY-1845 Upgrade javadoc plugin to 2.9.1 
-* CAY-1854 driver.xsd schema shouldn't be in 3.1 - it is no longer applicable 
-* CAY-1856 Expression.expWithParameters does not work when parameters are 
placed in the inline collection 
-* CAY-1866 Change in General Modeler Preferences reverts old settings to 
default value
-* CAY-1868 Select contention with multiple contexts 
-* CAY-1874 DB2 Procedure action ignores the first result set
-* CAY-1880 objectStore snapshots never cleared from RefreshQuery when "use 
shared cache" unchecked
-* CAY-1881 CayenneModeler (Mac version) doesn't work with Java 7
-* CAY-1885 Null value in subclass's field.

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2014/09/cayenne-31-released.md
----------------------------------------------------------------------
diff --git a/_posts/2014/09/cayenne-31-released.md 
b/_posts/2014/09/cayenne-31-released.md
deleted file mode 100644
index fdae297..0000000
--- a/_posts/2014/09/cayenne-31-released.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-layout: post
-title:  The Apache Software Foundation Announces Apache™ Cayenne™ v3.1
-date:   2014-9-29
----
-
-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.
-
-"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.
-
-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.
-
-Apache Cayenne v3.1 is the result of 4 years of development. Notable new 
features and improvements include:
-
-* easier configuration and embedding in any type of application;
-* 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;
-* 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;
-* 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;
-* 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
-
-"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."
-
-"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."
-
-"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.
-
-"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."
-In addition, Apache Cayenne's HTML documentation and tutorials have been 
completely revised and available in PDF for the first time.
-
-"Our comprehensive documentation and vibrant, helpful user community are just 
what you need when you have questions about the internals of Cayenne or the 
best way to achieve your goals," added Adamchik.
-
-### Availability and Oversight
-Cayenne v3.1 is available immediately as a free download from 
[http://cayenne.apache.org/download.html](http://cayenne.apache.org/download.html).
 As with all Apache products, Apache Cayenne software is released under the 
Apache License v2.0, and is overseen by a self-selected team of active 
contributors to the project. A Project Management Committee (PMC) guides the 
Project's day-to-day operations, including community development and product 
releases. For documentation and ways to become involved with Apache Cayenne, 
visit [http://cayenne.apache.org/](http://cayenne.apache.org/) and 
@ApacheCayenne on Twitter.
-
-### About The Apache Software Foundation (ASF)
-Established in 1999, the all-volunteer Foundation oversees more than two 
hundred leading Open Source projects, including Apache HTTP Server --the 
world's most popular Web server software. Through the ASF's meritocratic 
process known as "The Apache Way," more than 450 individual Members and 4,000 
Committers successfully collaborate to develop freely available 
enterprise-grade software, benefiting millions of users worldwide: thousands of 
software solutions are distributed under the Apache License; and the community 
actively participates in ASF mailing lists, mentoring initiatives, and 
ApacheCon, the Foundation's official user conference, trainings, and expo. The 
ASF is a US 501(c)(3) charitable organization, funded by individual donations 
and corporate sponsors including Budget Direct, Citrix, Cloudera, Comcast, 
Facebook, Google, Hortonworks, HP, Huawei, IBM, InMotion Hosting, Matt 
Mullenweg, Microsoft, Pivotal, Produban, WANdisco, and Yahoo. For more 
information, visit [http://www.a
 pache.org/](http://www.apache.org/) or follow @TheASF on Twitter.
-

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/630c9b22/_posts/2015-03-18-cayenne-40m2-released.md
----------------------------------------------------------------------
diff --git a/_posts/2015-03-18-cayenne-40m2-released.md 
b/_posts/2015-03-18-cayenne-40m2-released.md
new file mode 100644
index 0000000..acff648
--- /dev/null
+++ b/_posts/2015-03-18-cayenne-40m2-released.md
@@ -0,0 +1,189 @@
+---
+layout: post
+title:  Cayenne 4.0 Milestone 2 Released
+date:   2015-3-18
+---
+
+This is a big and important new milestone release of the development branch of 
Apache Cayenne. Existing users may have noticed that we renamed version 3.2 to 
4.0 as the scope had been vastly expanded. So 4.0.M2 is a direct successor of 
3.2M1. There are tons of new features and bug fixes included. Below are just 
the main highlights. For more details read upgrade-guide.pdf and check out the 
full release notes further down.
+
+Cayenne can be downloaded from [here](/download.html).
+
+### Fluent Type-Safe Query API
+
+Cayenne now provides a set of new fluent query classes: ObjectSelect, 
SQLSelect, SelectById. More will be coming in the future releases. Here is a 
simple example of a query selecting a single object by a given criteria:
+
+       Artist a = ObjectSelect
+        .query(Artist.class)
+        .where(Artist.NAME.eq("Picasso"))
+        .selectOne(context);
+
+ A related addition is positional bindings in Expression, SQLTemplate and the 
new query classes. Using the new API you'll avoid boilerplate in the 
most-commonly written Cayenne code, all this with full support for generics and 
type safety. The "old" style of bean-like queries (SelectQuery) is still 
supported.
+
+### Powerful Automated Workflow with 'cdbimport'
+
+'cdbimport' (a Maven/Ant task that generates DataMap from DB) was always there 
in Cayenne, just not very usable. In this release it was reworked to become a 
cornerstone of an automated workflow that allows you to keep mapping and Java 
classes always in sync with the underlying DB, and yet provide arbitrary 
customizations to the object layer.
+
+### OSGI Support
+
+All Cayenne runtime jars have proper OSGi manifests and can be used as OSGi 
bundles. Here is a [demo](https://github.com/andrus/cayenne-osgi-example) 
showing how to write an OSGi Cayenne app. The main trick is to add an OSGi 
module to Cayenne runtime that will take care of classloading, etc.:
+
+    Module osgiModule = 
+       
OsgiModuleBuilder.forProject(Activator.class).withDriver(Driver.class).module();
+
+### ServerRuntimeBuilder and Mapping-Free Runtime
+
+We found that customizing ServerRuntime is a frequent task in most 
applications. Things like setting a proper DataSource, loading multiple 
projects into a single runtime, overriding a service here and there are all 
very common customizations. While all of those can be done via ServerRuntime 
constructor and custom DI modules, we decided to add some syntactic sugar to 
streamline configuration. Enter ServerRuntimeBuilder:
+
+    ServerRuntime runtime = new ServerRuntimeBuilder("myproject")
+        .addConfigs("cayenne-project1.xml", "cayenne-project2.xml")
+        .addModule(binder -> 
binder.bind(JdbcEventLogger.class).toInstance(myLogger))
+        .dataSource(myDataSource)
+        .build();
+
+ While we are on the topic of ServerRuntime, we now also have an ability to 
start a mapping-free runtime, which turns Cayenne into a powerful SQL execution 
stack without the ORM part (e.g. useful for unit tests).
+
+### Transparent Database Cryptography with 'cayenne-crypto'
+
+Cayenne now includes 
[cayenne-crypto.jar](http://search.maven.org/#artifactdetails|org.apache.cayenne|cayenne-crypto|4.0.M2|jar),
 that allows you to implement seamless data encryption. With a bit of extra 
configuration (as you may have guessed - another DI module) you get automatic 
encryption/decryption of data in certain columns:
+
+    Module cryptoModule = new CryptoModuleBuilder()
+       .keyStore("file:///mykeystore", "changeit".toCharArray(), "keyalias")
+       .compress()
+       .build();
+
+ By default columns that start with 'CRYPTO_' are designated as encrypted, but 
this is [fully 
customizable](https://github.com/apache/cayenne/blob/master/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/map/ColumnMapper.java).
 The rest of your application code doesn't need to worry about cryptography, 
and would look like a regular Cayenne application.
+
+
+### DI Container Decorators
+
+In addition to overriding services in DI container, now Cayenne would allow to 
supply decorators. True to the "smallest-footprint" DI philosophy, decorator 
approach is very simple and does not rely on proxies or class enhancement. Just 
implement the decorated interface and provide a constructor that takes a 
delegate instance being decorated:
+
+       public class MyInterfaceDecorator implements MyInterface {
+
+           private MyInterface delegate;
+
+           public MyInterfaceDecorator(@Inject MyInterface delegate) {
+               this.delegate = delegate;
+           }
+
+           @Override
+           public String getName() {
+               return "<" + delegate.getName() + ">";
+           }
+       }
+
+       Module module = new Module() {
+
+           @Override
+           public void configure(Binder binder) {
+               
binder.decorate(MyInterface.class).before(MyInterfaceDecorator.class);
+           }
+       };
+
+### Stability Improvements
+
+We got rid of the hated "runtime" ObjRelationships that caused random issues, 
and fixed more than 30 other bugs.
+
+
+### A full list of changes in this release:
+
+* CAY-1267 Some changes to LogDialog
+* CAY-1826 Merge Entity Attributes and Relationships tabs together with one 
toolbar.
+* CAY-1839 Allow to link DataMaps to DataNodes from DataNode editor.
+* CAY-1841 Filters for Left-hand project navigator
+* CAY-1842 Remove Listeners support from the Modeler 
+* CAY-1843 DataMap v7: Stop saving listeners in DataMap, add upgrade handler
+* CAY-1845 Upgrade javadoc plugin to 2.9.1 
+* CAY-1846 Reworking of callback mapping
+* CAY-1847 Make ConverterFactory extensible
+* CAY-1848 New method: ObjectContext.selectOne(Select query) 
+* CAY-1851 Generate default serialVersionUID for generated java classes to 
avoid eclipse warnings
+* CAY-1852 Straighten thread model and synchronization in the Modeler 
+* CAY-1855 Iterated and paginated queries must print result counts 
+* CAY-1856 Expression.expWithParameters does not work when parameters are 
placed in the inline collection 
+* CAY-1860 In-memory matching of DataObjects against ObjectId or int
+* CAY-1861 Remove runtime relationships
+* CAY-1870 cgen - smarter default for 'superPkg' and 'destDir'
+* CAY-1882 Porting to OSGi environment
+* CAY-1883 Clean up Cayenne maven structure
+* CAY-1886 cayenne-di module reorg, new exceptions
+* CAY-1890 Remove Cayenne-level buffering when retrieving LOBs
+* CAY-1894 Support native PK generation using sequences for H2 databases
+* CAY-1899 ServerRuntimeBuilder
+* CAY-1900 Allow DataNode name to be used as a root of SQLTemplate
+* CAY-1901 Config-free ServerRuntime
+* CAY-1904 Simple injection-friendly constructor for AuditableFilter
+* CAY-1907 RowReaderFactory
+* CAY-1908 Refactor all SQLActions to work with DataNode
+* CAY-1911 BatchQuery refactoring - make Iterable
+* CAY-1912 BatchQueryBuilder refactoring
+* CAY-1913 Refactor org.apache.cayenne.access.trans into query-specific 
packages
+* CAY-1914 Refactor EJBQL-related translators to a standalone 
'org.apache.cayenne.access.translator.ejbql' package
+* CAY-1915 BatchTranslator instead of performing bindings should return 
binding object whose values can be altered
+* CAY-1916 cayenne-crypto module that enables data encryption for certain 
model attributes
+* CAY-1918 Replace Oracle LOB hacks with JDBC 4.0 API
+* CAY-1919 Split DataNode creation into a separate DataNodeFactory
+* CAY-1920 DI: add support for decorators
+* CAY-1921 Support for schema selection in 'Migrate Database Schema'
+* CAY-1923 Optimize BatchTranslator - use fixed size array of 
BatchParameterBinding
+* CAY-1925 cayenne-crypto: add optional compression to the encryption pipeline
+* CAY-1928 Second INNER join generated for OUTER flattended relationships in 
disjoint prefetches
+* CAY-1929 Property.outer method to build OUTER join properties
+* CAY-1932 Improved Handling for Scalar Parameters Converting Expressions to 
EJBQL
+* CAY-1933 Problems in Evaluating EJBQL Statements with Integral Literals > 
Integer.MAX_VALUE
+* CAY-1934 A problem exists where the escape character is not conveyed in the 
EJBQL when toEJBQL() is invoked on the expression.
+* CAY-1936 ServerRuntime.getDataSource() returning DataSource of a default 
DataNode
+* CAY-1937 Make Transaction an interface
+* CAY-1938 Create a DI factory for transactions, get rid of 
TransactionDelegate and modeler config for tx policies
+* CAY-1939 DataDomain must use injectable TransactionManager
+* CAY-1946 CDbimport improvements
+* CAY-1949 Search in configuration fields (Catalog, Schema) in DbEntity
+* CAY-1952 Undeprecate (actually restore) ObjectContext.deleteObject(..)
+* CAY-1953 Redo ResultIteratorCallback to handle single row callback instead 
of iterator
+* CAY-1954 Make Cayenne class constructor protected
+* CAY-1958 SelectById - a new full-featured select query to get objects by id
+* CAY-1959 ObjectSelect query - a fluent API alternative to SelectQuery
+* CAY-1960 ExpressionFactory.exp(..) , and(..), or(..)
+* CAY-1962 Implement CayenneTable column resize on double-click on the header 
separator
+* CAY-1965 Change version from 3.2 to 4.0
+* CAY-1966 SQLTemplate/SQLSelect positional parameter binding
+* CAY-1967 Deprecate SQLTemplate parameter batches
+* CAY-1968 SQLSelect cleanup and omissions
+* CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), 
endsWith(..)
+* CAY-1972 A property to override DataSources of multi-module projects 
+* CAY-1981 Add support of JDBC 4.0 N-types (nchar, nvarchar, longnvarchar, 
nclob)
+* CAY-1984 cdbimport doesn't flatten many to many relationships
+
+### Bug Fixes:
+
+* CAY-1480 Implement cross-db functional expressions
+* CAY-1695 Unexpected null value in bidirectional one-to-one prefetch 
+* CAY-1736 IllegalArgumentException when synchronizing entities in the Modeler
+* CAY-1795 "Invisible" ObjAttribute in subclass
+* CAY-1796 ROP: All entity's to-many relationships getting faulted from 
database when using it as a parameter in qualifier expression
+* CAY-1797 NPE importing DataMap
+* CAY-1798 ROP: Reverse relationships of prefetched entity objects are not 
filled during server to client objects conversion
+* CAY-1799 ROP: Server can't deserialize LIKE expression with pattern already 
compiled
+* CAY-1818 Fix copyright year in the Modeler "about" panel
+* CAY-1834 Exception: ToManyList cannot be cast to DataObject 
+* CAY-1857 Problem with hotkeys 
+* CAY-1859 NullPointerException when importing EOModel 
+* CAY-1863 Make determining whether a particular database type supports length 
adapter-specific not universal
+* CAY-1866 Change in General Modeler Preferences reverts old settings to 
default value
+* CAY-1868 Select contention with multiple contexts 
+* CAY-1869 ResultIterator from cayenne-client dependency is subclassed from 
org.apache.cayenne.access.ResultIterator which is present only in 
cayenne-server dependency 
+* CAY-1874 DB2 Procedure action ignores the first result set
+* CAY-1877 In-memory evaluation of expression may fail with 
UnsupportedOpeartionException depending on order of nodes
+* CAY-1880 objectStore snapshots never cleared from RefreshQuery when "use 
shared cache" unchecked
+* CAY-1881 CayenneModeler (Mac version) doesn't work with Java 7
+* CAY-1885 Null value in subclass's field.
+* CAY-1905 Multi-step prefetching NPE : 1..N..1 with absent N and root with no 
qualifier
+* CAY-1943 XML file not deleted when a DataMap is deleted from the project
+* CAY-1961 Fix RemoveAction for DataMaps in ProjectTree
+* CAY-1964 Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java
+* CAY-1973 error while generating classes
+* CAY-1974 Copy/Paste DbEntiry throws exception
+* CAY-1978 ESCAPE clause should be included in LIKE parenthesis
+* CAY-1979 Prefetches on Many-to-Many Relationships with Longvarchar
+* CAY-1980 'mvn cayenne-modeler:run' seems to be broken in 4.0
+* CAY-1988 ServerRuntimeBuilder: synthetic DataNode does not have domain's 
DataMaps linked

Reply via email to