Repository: cayenne-website
Updated Branches:
  refs/heads/master 13fc38555 -> 4135aecf9


Add all the news items to git


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

Branch: refs/heads/master
Commit: d2f1e6f353a1e8b67c9882afd409f8d438cffbb3
Parents: 13fc385
Author: Aristedes Maniatis <[email protected]>
Authored: Mon May 29 20:00:43 2017 +1000
Committer: Aristedes Maniatis <[email protected]>
Committed: Mon May 29 20:00:43 2017 +1000

----------------------------------------------------------------------
 ...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/2012/06/12/cayenne-31-beta-released.md   |  13 ++
 _posts/2013/02/cayenne-31b2-released.md         |  42 +++++
 _posts/2013/07/cayenne-32m1-released.md         | 107 +++++++++++
 _posts/2014/02/cayenne-31rc1-released.md        |  35 ++++
 _posts/2014/09/cayenne-31-released.md           |  40 ++++
 _posts/2015/03/cayenne-40m2-released.md         | 189 +++++++++++++++++++
 _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 ++++++++++
 15 files changed, 933 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/d2f1e6f3/_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/d2f1e6f3/_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/d2f1e6f3/_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/d2f1e6f3/_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/d2f1e6f3/_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/d2f1e6f3/_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/d2f1e6f3/_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
new file mode 100644
index 0000000..cbb67e2
--- /dev/null
+++ b/_posts/2013/02/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/d2f1e6f3/_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
new file mode 100644
index 0000000..e4b0ea8
--- /dev/null
+++ b/_posts/2013/07/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/d2f1e6f3/_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
new file mode 100644
index 0000000..a1d2d8c
--- /dev/null
+++ b/_posts/2014/02/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/d2f1e6f3/_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
new file mode 100644
index 0000000..fdae297
--- /dev/null
+++ b/_posts/2014/09/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/d2f1e6f3/_posts/2015/03/cayenne-40m2-released.md
----------------------------------------------------------------------
diff --git a/_posts/2015/03/cayenne-40m2-released.md 
b/_posts/2015/03/cayenne-40m2-released.md
new file mode 100644
index 0000000..acff648
--- /dev/null
+++ b/_posts/2015/03/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

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/d2f1e6f3/_posts/2016/02/cayenne-40m3-released.md
----------------------------------------------------------------------
diff --git a/_posts/2016/02/cayenne-40m3-released.md 
b/_posts/2016/02/cayenne-40m3-released.md
new file mode 100644
index 0000000..9664df2
--- /dev/null
+++ b/_posts/2016/02/cayenne-40m3-released.md
@@ -0,0 +1,93 @@
+---
+layout: post
+title:  Cayenne 4.0 Milestone 3 Released
+date:   2016-2-12
+---
+
+This new milestone release has plenty of new features, bug fixes and other 
improvements. Below are just the main highlights. For more details check out 
the full release notes further down, as well as 
[UPGRADE.txt](https://github.com/apache/cayenne/blob/4.0.M3/docs/doc/src/main/resources/UPGRADE.txt).
+
+Cayenne can be downloaded from [here](/download.html).
+
+### Java 7
+
+Since this milestone minimal Java version is 1.7. If you still need Java 1.6, 
you can use Cayenne 3.1 or 4.0.M2 until your application is able to upgrade.
+
+### Java 8 Date/Time and Joda-Time Support
+
+Cayenne now has two additional modules that contain ExtendedTypes for Java 8 
Date/Time and Joda-Time support. You will need to add appropriate dependency 
and then create a coresponding module and add it to the ServerRuntime. For 
example:
+
+    Module java8Module = new CayenneJava8Module();
+    this.runtime = new ServerRuntime("cayenne-project.xml", java8Module);
+
+### Improvements in Query API
+
+All new fluent query classes (ObjectSelect, SQLSelect, SelectById) have the 
following new methods:
+
+* `List<T> select(ObjectContext context);`
+* `T selectOne(ObjectContext context);`
+* `T selectFirst(ObjectContext context);`
+* `void iterate(ObjectContext context, ResultIteratorCallback<T> callback);`
+* `ResultIterator<T> iterator(ObjectContext context);`
+* `ResultBatchIterator<T> batchIterator(ObjectContext context, int size);`
+
+The "old" style SelectQuery is still supported and also includes these 
methods. 
+
+Also ResultIterator and ResultBatchIterator are both AutoCloseable now. So you 
will be able to use try-with-resources with them.
+
+### Non-blocking DataSource
+
+Default Cayenne DataSource provider is switched to a non-blocking 
implementation that has a much better concurrency compared to the old version.
+
+### DBCP2
+
+DBCPDataSourceFactory is now based on DBCP2 (which is required under Java 1.7 
and newer). If you are using it, you will need to take a few steps to upgrade. 
For more details see 
[UPGRADE.txt](https://github.com/apache/cayenne/blob/4.0.M3/docs/doc/src/main/resources/UPGRADE.txt).
+
+### Capturing a stream of commit changes
+
+Sometimes it is very useful to capture all or parts of "commit log" for 
commits made through Cayenne (for audit purposes, etc). It has always been a 
challenge to do it in a consistent and convenient manner. We've made a few 
attempts to solve this before. M3 features new and the most comprehensive 
solution. There is a 
[PostCommitBuilder](https://github.com/apache/cayenne/blob/4.0.M3/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/postcommit/PostCommitModuleBuilder.java)
 class that helps to create a special DI module with all required extensions 
for this to work. It allows to register 
[PostCommitListeners](https://github.com/apache/cayenne/blob/4.0.M3/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/postcommit/PostCommitListener.java)
 that will receive an event on every commit, containing a full commit log 
object.
+
+### A full list of changes in this release:
+
+* CAY-1626 Add JodaTime DateTime support
+* CAY-1902 Implement resolving Db paths for DataObjects
+* CAY-1991 More control over generated String property names
+* CAY-1992 Allow to exclude DataMap java class from Modeler class generation
+* CAY-1995 Add support for iterators to Select
+* CAY-2001 Saving a display state of Project
+* CAY-2004 EJBQL: Support for ordering on aggregate expressions
+* CAY-2007 Refactoring SelectTranslator for better extensibility
+* CAY-2008 Connection pool refactoring and validation query support in Cayenne 
DataSource
+* CAY-2009 Non-blocking connection pool
+* CAY-2010 DataSourceBuilder to help users create pooling and non-pooling 
DataSources
+* CAY-2011 Support for Java 8 date and time types
+* CAY-2012 ObjectSelect, SelectById: eliminating methods that reset query state
+* CAY-2013 In-memory evaluation of DB expressions - non-id attributes
+* CAY-2023 Decouple the use of ResourceLocator
+* CAY-2025 Support for DBCP2
+* CAY-2026 Java 7
+* CAY-2027 Support for Expression outer join syntax in EJBQL
+* CAY-2028 Wrap DataChannelFilter calls in the main transaction
+* CAY-2029 Allow out-of-order insertion into DI lists
+* CAY-2030 Capturing a stream of commit changes
+* CAY-2035 Autobind items added to collections (Cayenne DI)
+* CAY-2042 Remove an arbitrary limitation on 1000 runtime DbRelationships
+* CAY-2043 ServerRuntimeBuilder: use DataDomain name for the default DataNode
+* CAY-2044 Collection setter for to-many relationships
+* CAY-2045 Add autosuggestion fields to choose attributes and relationships
+
+### Bug Fixes:
+
+* CAY-1977 Cleanup Modeler reverse engineering functionality
+* CAY-1987 Widen types before performing in-memory evaluation of qualifiers 
using j.l.Number subclasses
+* CAY-1990 Incorrect display of the raw SQL query in Modeler
+* CAY-1993 Reverse Engineering does not work with PostgreSQL database
+* CAY-1994 Modeler Migration Tool Shows No Changes
+* CAY-1997 Difference in NULL handling inside the path between PropertyUtils 
and DataObject.readNestedProperty
+* CAY-1998 Speeding up PropertyUtils
+* CAY-1999 Unneeded Property import for superclasses with no properties
+* CAY-2003 cdbimport doesn't work properly with several includeTable tags
+* CAY-2015 Joint prefetches combined with DisjointById prefetches return null 
incorrectly
+* CAY-2020 typo: correction to upper alpha range in Rot13PasswordEncoder
+* CAY-2041 "cayenne.jdbc.max_connections" and "cayenne.jdbc.min_connections" 
command line options are ignored
+* CAY-2047 Relationship mapping with target inheritance
+* CAY-2049 Changing the Relationship name in ObjRelationship Inspector has no 
effect
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/d2f1e6f3/_posts/2016/05/cayenne-311-released.md
----------------------------------------------------------------------
diff --git a/_posts/2016/05/cayenne-311-released.md 
b/_posts/2016/05/cayenne-311-released.md
new file mode 100644
index 0000000..19025e8
--- /dev/null
+++ b/_posts/2016/05/cayenne-311-released.md
@@ -0,0 +1,24 @@
+---
+layout: post
+title:  Cayenne 3.1.1 Released
+date:   2016-5-16
+---
+
+This new maintenance release has a few major bug fixes and improvements.
+It can be downloaded from [here](/download.html).
+
+### A full list of changes in this release:
+
+* CAY-1862 MySQL - allow specifying a length for TIMESTAMP and TIME columns
+* CAY-2042 Remove an arbitrary limitation on 1000 runtime DbRelationships
+
+### Bug Fixes:
+
+* CAY-1863 Make determining whether a particular database type supports length 
adapter-specific not universal
+* CAY-1964 Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java
+* CAY-1973 error while generating classes
+* CAY-1978 ESCAPE clause should be included in LIKE parenthesis
+* CAY-1979 Prefetches on Many-to-Many Relationships with Longvarchar
+* CAY-2047 Relationship mapping with target inheritance
+* CAY-2049 Changing the Relationship name in ObjRelationship Inspector has no 
effect
+* CAY-2066 Memory leak in ExtendedTypeMap for inner classes
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/d2f1e6f3/_posts/2016/12/cayenne-40M4-released.md
----------------------------------------------------------------------
diff --git a/_posts/2016/12/cayenne-40M4-released.md 
b/_posts/2016/12/cayenne-40M4-released.md
new file mode 100644
index 0000000..5f48a0e
--- /dev/null
+++ b/_posts/2016/12/cayenne-40M4-released.md
@@ -0,0 +1,147 @@
+---
+layout: post
+title:  Cayenne 4.0 Milestone 4 Released
+date:   2016-12-13
+---
+
+Apache Cayenne team is glad to announce the latest milestone of Cayenne - 
4.0.M. The new release features a number of important things:
+
+* Stabilizes database reverse-engineering tools for DB-first ORM flow.
+* Plugs holes and omissions in the fluent query API.
+* Expands encryption capabilities to all data types.
+* Improves transaction management API.
+* Provides alternative binary protocols for ROP, greatly improving its 
performance. 
+* Includes a new Modeler welcome screen.
+* Fixes numerous bugs, updates docs, etc., etc. 
+
+Cayenne can be downloaded from [here](/download.html). Make sure to consult 
[UPGRADE.txt](https://github.com/apache/cayenne/blob/4.0.M4/docs/doc/src/main/resources/UPGRADE.txt)
 file before updating.
+
+Before we start discussing individual features, a few words on the future 
development effort. Cayenne 4.0 is quickly approaching "beta" status. There's a 
good chance that the following release will be feature-complete and we will 
enter "beta" and associated code freeze of the runtime framework. 
+
+Now the new things in a bit more detail:
+
+### Fluent query API
+These fluent queries are new in M4:
+
+*SQLExec*
+
+    // insert
+    int inserted = SQLExec.query("INSERT INTO ARTIST (ARTIST_ID, ARTIST_NAME) 
" + 
+      "VALUES (#bind($id), #bind($name))")
+      .paramsArray(55, "a3")
+      .update(context);
+    
+    // update
+    int updated = SQLExec
+      .query("UPDATE ARTIST SET ARTIST_NAME = 'b3' WHERE ARTIST_NAME = 'a3'")
+      .update(context);
+
+*MappedSelect*
+
+    List<Artist> artists = MappedSelect.query("SelectArtists", Artist.class)
+      .param("name", "artist1")
+      .select(context);
+
+*MappedExec*
+
+    int[] updated = MappedExec.query("UpdateArtists").param("name", 
"artist2").update(context);
+
+*ProcedureCall*
+
+    // select
+    List<Artist> artists = ProcedureCall.query("select_sp", Artist.class)
+                    .param("name", "Artist")
+                    .param("paintingPrice", 3000)
+                    .limit(2).select(context);
+    
+    // update
+    int updated = ProcedureCall.query("update_sp")
+                    .param("paintingPrice", 3000).update(context);
+    
+    // call and get out parameters
+    int outParam = ProcedureCall.query("out_sp")
+                    .param("name", "Artist")
+                    .call(context).getOutParam("artist_out");
+
+### Reverse Engineering Improvements
+
+There are a lot of improvements and bug fixes covering reverse engineering 
functionality (aka "DB-first flow"). There's still more work to do to make it 
perfect, but the API is starting to stabilize and the tools have already become 
very usable (as in actually used in production on many projects). Follow this 
[link](/docs/4.0/cayenne-guide/cayenne-guide-part4.html) to learn what DB-First 
flow is all about and how to use it.
+
+### Cayenne Crypto Improvements
+
+We've aded support for mapping encrypted columns to numbers, Strings, etc.
+
+### Transaction control
+
+Added TransactionListener to allow for better control of manual transactions. 
+
+### ROP Improvements
+With M4 it's much easier to plug external tools for ROP connectivity and 
serialization purposes. Jetty HTTP/1.1 and HTTP/2 Client and Protostuff have 
been already added to the Cayenne and are supported out of the box.
+
+### A full list of changes in this release:
+
+* CAY-2051 Applying new Reverse Engineering to the Modeler
+* CAY-2053 SQLExec fluent query API
+* CAY-2060 Replace Query objects in DataMap with query descriptors
+* CAY-2062 MappedSelect and MappedExec fluent query API
+* CAY-2063 ProcedureCall fluent query API
+* CAY-2065 Pluggable serialization and connectivity layers for ROP
+* CAY-2073 Ordering.orderedList methods
+* CAY-2074 Support for catalogs in stored procedures
+* CAY-2076 Implement Jetty HTTP/1.1 and HTTP/2 Client support for ROP Client
+* CAY-2083 Implement Protostuff as serialization service for Cayenne ROP
+* CAY-2090 Untangle HttpRemoteService from ServiceContext thread local setup
+* CAY-2100 Add supporting generated keys for PostgreSQL
+* CAY-2102 EJBQL: db: path not supported in select columns
+* CAY-2103 cayenne-crypto: support for mapping non-String and non-binary types
+* CAY-2106 cayenne-crypto: allow DI contribution of type converters inside 
ValueTransformerFactory
+* CAY-2107 cayenne-crypto: Lazy initialization of crypto subsystem
+* CAY-2111 Unbind transaction object from the current thread for iterated 
queries
+* CAY-2112 Expose callback for "performInTransaction"
+* CAY-2113 cdbimport: Reverse-engineering reinstates previously ignored columns
+* CAY-2114 cdbimport: object layer settings are not respected
+* CAY-2115 DbLoader - allow loading DataMap without Obj layer
+* CAY-2116 Split schema synchronization code in a separate module
+* CAY-2118 cdbimport: drop support for the old style of table filtering
+* CAY-2129 Modeler: reengineer dialog improvements
+* CAY-2130 Stripping common name prefixes on reverse engineering
+* CAY-2132 Adding SybaseSelectTranslator to support TOP/DISTINCT TOP in 
limited queries
+* CAY-2133 ObjectNameGenerator refactoring - unifying relationship name 
generation
+* CAY-2135 cdbimport: reset DbEntity catalogs / schemas to DataMap defaults
+* CAY-2136 Allow Ordering.orderedList(…) methods to accept a Collection 
rather than only a List
+* CAY-2160 Modeler: new welcome screen
+
+### Bug Fixes:
+
+* CAY-2016 cdbimport: Rename table with toMany relationship causes migration 
error
+* CAY-2064 Issue with BeanAccessor for classes with complex inheritance
+* CAY-2066 Fixes for inner enums handling in ExtendedTypeMap
+* CAY-2067 Cayenne 4.0 connection pool is occasionally running out of 
connections
+* CAY-2070 Modeler sync function adds extraneous ObjRelationships inside the 
class hierarchy
+* CAY-2078 Client code gen bug. Unnecessary DataMap class generation setting 
datamap gen to false.
+* CAY-2080 Cayenne doesn't pick up reverse engineering file changes
+* CAY-2084 ObjectIdQuery - no cache access polymorphism
+* CAY-2086 SelectById.selectFirst stack overflow
+* CAY-2087 PostCommitFilter is confused about changes made by Pre listeners
+* CAY-2089 HTTP connections aren't always closed in new ROP implementation
+* CAY-2097 NullPointerException while updating relationships for entities with 
vertical inheritance
+* CAY-2101 DataContext.currentSnapshot() doesn't set snapshot entity name
+* CAY-2105 Add missing elements to the reverseEngineering.xsd
+* CAY-2108 cayenne-di: StackOverflow for decorator that takes Provider of the 
delegate
+* CAY-2110 Obfuscated exception when processing iterated results
+* CAY-2119 ProjectUpgrader test failure (Windows)
+* CAY-2122 Vertical Inheritance: Cannot Insert Record For Implementing Class 
with Attribute And Relationship
+* CAY-2125 SchemaUpdateStrategy doesn't work with multiple DataNodes
+* CAY-2126 Modeler cannot upgrade project from v7 to v9
+* CAY-2128 Modeler stored procedures are not imported
+* CAY-2131 Modeler NullPointerException in reverse engineering when importing 
different catalogs in one datamap
+* CAY-2138 NVARCHAR, LONGNVARCHAR and NCLOB types are missing from Firebird 
types.xml
+* CAY-2141 Disjoint-by-id prefetch generates repeating ID conditions
+* CAY-2143 NPE in BaseSchemaUpdateStrategy
+* CAY-2144 cdbimport always fails for databases which don't support catalogs
+* CAY-2146 Vertical inheritance: record still inserted into parent db table 
when child validation fails
+* CAY-2148 Failure upgrading from 3.1 to M4
+* CAY-2150 UI bug: PK generation custom sequence is getting reset
+* CAY-2151 Migrate Database Schema: issue when no db is specified
+* CAY-2153 Modeler Exception in save action after reverse engineering some 
complex DB schema
+* CAY-2154 Migrate db: queries order
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/d2f1e6f3/_posts/2017/03/cayenne-40M5-released.md
----------------------------------------------------------------------
diff --git a/_posts/2017/03/cayenne-40M5-released.md 
b/_posts/2017/03/cayenne-40M5-released.md
new file mode 100644
index 0000000..e18fb46
--- /dev/null
+++ b/_posts/2017/03/cayenne-40M5-released.md
@@ -0,0 +1,104 @@
+---
+layout: post
+title:  Cayenne 4.0 Milestone 5 Released
+date:   2016-3-6
+---
+
+Apache Cayenne team is glad to announce the latest milestone of Cayenne - 
4.0.M5. 
+The new release features a number of important things:
+
+* New fluent API for SQL functions (including long-awaited **aggregate** 
functions).
+* Auto-loading of additional Cayenne modules.
+* New JCache module that allows to easily include any compatible cache 
provider.
+* Further improvements and stabilization of database reverse-engineering tools.
+* Fixes bugs, updates docs, etc. 
+
+Cayenne can be downloaded from [here](/download.html). Make sure to consult 
[UPGRADE.txt](https://github.com/apache/cayenne/blob/4.0.M5/docs/doc/src/main/resources/UPGRADE.txt)
 file before updating.
+
+Before we start discussing individual features, a few words on the future 
development effort. 
+Cayenne 4.0 is quickly approaching "beta" status. There's a good chance that 
the following release will be 
+feature-complete and we will enter "beta" and associated code freeze of the 
runtime framework. 
+
+Now the new things in a bit more detail:
+
+### Fluent query API
+These great additions to Fluent API are new in M5:
+
+*ColumnSelect*
+
+    List<String> names = ObjectSelect.query(Artist.class)
+                         .column(Artist.ARTIST_NAME).select(context);
+
+*Aggregate Functions*
+
+    // easy way to select count
+    long count = ObjectSelect.query(Artist.class).selectCount(context);
+    
+*GROUP BY .. HAVING*
+
+    Property<Double> minPrice = 
Artist.PAINTING_ARRAY.dot(Painting.ESTIMATED_PRICE).min();
+    
+    // Object[0] is a name (String)
+    // Object[1] is a price (Double)
+    // GROUP BY clause is generated automatically based on the query semantics
+    List<Object[]> nameAndMinPrice = ObjectSelect.query(Artist.class)
+                                   .columns(Artist.ARTIST_NAME, minPrice)
+                                   .having(minPrice.gt(2000.0))
+                                   .select(context);
+                               
+*SQL Functions*
+    
+    Property<Integer> nameLength = Artist.ARTIST_NAME.length();
+    List<Artist> artists = ObjectSelect.query(Artist.class, nameLength.gt(5))
+                            .select(context);
+    
+
+### Reverse Engineering Improvements
+
+We pushed DB reverse engineering functionality further. This time in addition 
to clearing bugs and perform smoother importing
+we changed cdbimport plugin configuration to make it clearer and ready for 
future improvements we have in mind.
+
+The plugin itself has changed it's name to *"cayenne-maven-plugin"*, so now 
you can use short commands like the following:
+    
+    mvn cayenne:cdbimport
+
+**_Important note_**: please refer to 
[UPGRADE.txt](https://github.com/apache/cayenne/blob/4.0.M5/docs/doc/src/main/resources/UPGRADE.txt)
 for detailed changes in _cdbimport_ configuration.
+
+
+### A full list of changes in this release:
+
+* CAY-2139 Upgrade HSQLDB dependency to the most recent version (2.3.4)
+* CAY-2150 Refactoring: ParameterBinding to contain ExtendedType property
+* CAY-2163 Property.path() , ExpressionFactory.pathExp()
+* CAY-2164 Relocate builder bootstrap methods from ServerRuntimeBuilder to 
ServerRuntime
+* CAY-2165 Explicit "contribution" API for easier expansion of DI collections 
and maps
+* CAY-2166 Auto-loading of Cayenne modules
+* CAY-2168 Split DbLoader to parts and clean it up
+* CAY-2169 Split DbMerger to parts and clean it up
+* CAY-2170 MergeToken sorting is highly unstable
+* CAY-2172 Cleanup Modeler import and migrate db actions
+* CAY-2176 Java 7 diamond class generation templates
+* CAY-2177 Sync auto generated state of PK between model and DB
+* CAY-2187 Support for the scalar and aggregate SQL functions in ObjectSelect 
API
+* CAY-2197 Update sqlite version and enable in-memory default config
+* CAY-2212 cdbimport cleanup and configuration schema refactoring
+* CAY-2223 JCacheQueryCache - a query cache provider to plug in JCache 
implementers
+* CAY-2225 Extensible CacheInvalidationFilter logic
+* CAY-2228 Deprecate multiple cache groups in caching and query API
+* CAY-2231 Support for collections in new functional expressions and old math 
expressions
+* CAY-2232 Proper conversion to String for new functional expressions
+* CAY-2235 Deprecate Query.getDataMap() method
+
+### Bug Fixes:
+
+* CAY-2032 SelectAction: DistinctResultIterator ignores flattened relationships
+* CAY-2137 When generating SQL from EJBQL, use "AND" to separate multiple join 
conditions
+* CAY-2174 Change FK attribute name cause ObjAttribute appear after Reverse 
Engineering
+* CAY-2175 AliasName used in EJBQLQuery is not working if it contains mixed 
case
+* CAY-2183 Newly created DbRelationship is unexpectedly renamed by the Modeler
+* CAY-2199 Modeler on Windows: The same project is displayed twice in "Recent 
Projects"
+* CAY-2207 Modeler: "Java Type" and "DbAttribute Path" are not saved with 
using TAB to move forward
+* CAY-2221 In-memory expression evaluation gives different result than select 
query
+* CAY-2236 Modeler Migrate DB Schema: unable to Reverse All Operations
+* CAY-2238 Modeler: Preserve manually set DbRelationship name when syncing 
with ObjEntity
+* CAY-2242 Vertical Inheritance: Cannot Insert Record For Implementing Class 
with Attribute And Relationship

Reply via email to