cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aadamc...@apache.org
Subject svn commit: r1667659 - /cayenne/site/cms/trunk/content/2015/03/cayenne-40m2-released.mdtext
Date Thu, 19 Mar 2015 06:03:15 GMT
Author: aadamchik
Date: Thu Mar 19 06:03:15 2015
New Revision: 1667659

URL: http://svn.apache.org/r1667659
Log:
proof reading release announcement

Modified:
    cayenne/site/cms/trunk/content/2015/03/cayenne-40m2-released.mdtext

Modified: cayenne/site/cms/trunk/content/2015/03/cayenne-40m2-released.mdtext
URL: http://svn.apache.org/viewvc/cayenne/site/cms/trunk/content/2015/03/cayenne-40m2-released.mdtext?rev=1667659&r1=1667658&r2=1667659&view=diff
==============================================================================
--- cayenne/site/cms/trunk/content/2015/03/cayenne-40m2-released.mdtext (original)
+++ cayenne/site/cms/trunk/content/2015/03/cayenne-40m2-released.mdtext Thu Mar 19 06:03:15
2015
@@ -3,18 +3,20 @@ Title:  Cayenne 4.0 Milestone 2 Released
 ## Cayenne 4.0 Milestone 2 Released
 _Mar 18, 2015_ 
 
-This is a huge 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 of new features had
been vastly expanded. So 4.0.M2 is a direct successor of 3.2M1. There are tons of new features
and bug fixes. Here are just the main highlights. For more details, go to the upgrade-guide.pdf
and check out the full release notes below.
+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 Query API
 
-Here is a simple example:
+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
+	Artist a = ObjectSelect
         .query(Artist.class)
-     .where(Artist.NAME.eq("Picasso"))
+        .where(Artist.NAME.eq("Picasso"))
         .selectOne(context);
 
-Cayenne now provides a set of new fluent query classes: ObjectSelect, SQLSelect, SelectById.
More will be coming in the future releases. A related addition is positional bindings in Expression,
SQLTemplate and in the new query classes. Using the new API you'll avoid any boilerplate in
the most-commonly written Cayenne code, all with full support for generics and type safety.
The "old" style of bean-like queries is still supported.
+ 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'
 
@@ -22,14 +24,14 @@ Cayenne now provides a set of new fluent
 
 ### OSGI
 
-All Cayenne runtime jars have proper OSGi manifests and can be used as OSGi bundles. Here
is a [demo app](https://github.com/andrus/cayenne-osgi-example) showing how to write an OSGi
Cayenne app. The main trick is to add a special OSGi module to Cayenne runtime:
+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
 
-We found that customizing ServerRuntime is a frequent task in different environments. Things
like setting a custom DataSource, loading multiple projects into a single runtime, overriding
a service here and there are all very common customizations. While of those can be done via
ServerRuntime constructor and custom modules, we decided to add some syntactic sugar for such
a common task. Enter ServerRuntimeBuilder:
+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")
@@ -37,29 +39,29 @@ We found that customizing ServerRuntime
         .dataSource(myDataSource)
         .build();
 
- While we are on the topic of ServerRuntime, we also provide the ability to start a mapping-free
runtime, which gives a powerful SQL execution stack (e.g. for unit tests).
+ 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 seemless data encryption. With a bit of extra configuration you
get automatic encryption/decryption of data in certain columns:
+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 encrypted columns are designated based on naming conventions, but this is fully
customizable. The rest of your application code doesn't need to worry about cryptography,
and would look like a regular Cayenne application.
+ 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 allows to supply decorators.
True to the "smallest-footprint" DI philosophy, decorator approach is very simple and does
not require proxies or class enhancement. Just implement the decoarted interface and provide
a constructor that takes a delegate instance being decorated:
+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 MockInterface1_Decorator3(@Inject MyInterface delegate) {
+	    public MyInterfaceDecorator(@Inject MyInterface delegate) {
 	        this.delegate = delegate;
 	    }
 
@@ -82,9 +84,7 @@ In addition to overriding services in DI
 We got rid of the hated "runtime" ObjRelationships that caused random issues, and fixed more
than 30 other bugs.
 
 
-Cayenne can be downloaded from [here](/download.html).
-
-A full list of changes in this release:
+### 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.
@@ -153,7 +153,7 @@ A full list of changes in this release:
 * 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:
+### Bug Fixes:
 
 * CAY-1480 Implement cross-db functional expressions
 * CAY-1695 Unexpected null value in bidirectional one-to-one prefetch 



Mime
View raw message