You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/01/08 07:53:53 UTC

[49/51] [partial] cayenne-website git commit: Initial commit

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/e9062ca0/2016/12/cayenne-40M4-released.html
----------------------------------------------------------------------
diff --git a/2016/12/cayenne-40M4-released.html b/2016/12/cayenne-40M4-released.html
new file mode 100644
index 0000000..a797074
--- /dev/null
+++ b/2016/12/cayenne-40M4-released.html
@@ -0,0 +1,408 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.3">
+        <link rel="shortcut icon" href="/favicon.ico" />
+        <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-144-precomposed.png" sizes="144x144" />
+        <link rel="stylesheet" href="http://cayenne.apache.org/css/styles-452af12eaa.css"/>
+        <script src="http://cayenne.apache.org/js/bundle-bcaaf59313.js"></script>
+        <title>Cayenne 4.0 Milestone 4 Released &middot; Apache Cayenne</title>
+    </head>
+    <body> 
+<header class="page-header">
+    <nav id="topbar" class="bg-dark" aria-label="breadcrumb" role="navigation">
+      <ul class="breadcrumb breadcrumb-sm breadcrumb-dark  container  mb-0">
+        <img class="mh-26px  mr-1" src="/img/feather-641aa69d09.svg" />
+        <li class="breadcrumb-item dropdown">
+          <a class="dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache Software Foundation</a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+            <a class="dropdown-item" href="http://www.apache.org">Apache Homepage</a>
+            <a class="dropdown-item" href="http://www.apache.org/licenses/">License</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+            <a class="dropdown-item" href="http://www.apache.org/security/">Security</a>
+          </div>
+        </li>
+        <li class="breadcrumb-item d-none d-lg-inline-block">Apache Cayenne</li>
+      </ul>
+    </nav>
+    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
+      <div class="container">
+        <a class="navbar-brand" href="http://cayenne.apache.org/">
+           <img src="/img/logo_mono_full-d7a19eef61.svg" alt="Apache Cayenne" />
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainMenu" aria-controls="mainMenu" aria-expanded="false" aria-label="Toggle navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+
+        <div class="collapse navbar-collapse" id="mainMenu">
+          <ul class="navbar-nav  mt-3 mt-lg-0 mr-auto">
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/download/">DOWNLOAD</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/docs/">DOCUMENTATION</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/about/support/">SUPPORT</a>
+            </li>
+            
+          </ul>
+          <ul class="navbar-nav  flex-row justify-content-center  mt-2 mt-lg-0 mb-2 mb-lg-0 " id="social-links-menu">
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://github.com/apache/cayenne">
+                <img src="/img/icon_octocat_stars-c24dac94b8.svg" alt="GitHub" /><span class="stargazers_count  ml-1l2"></span></a>
+            </li>
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://twitter.com/ApacheCayenne">
+                <img src="/img/icon_twitter-220a129d14.svg" alt="Twitter" />
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </nav>
+</header>
+
+
+
+
+    <main class="container  py-5">
+        
+                <section>
+                    <article>
+                        <h1 class="text-center">Cayenne 4.0 Milestone 4 Released<br />
+                            <small class="font-size-1rem text-muted">Dec 31, 2016</small>
+                        </h1>
+                        
+
+<p>Apache Cayenne team is glad to announce the latest milestone of Cayenne - 4.0.M. The new release features a number of important things:</p>
+
+<ul>
+<li>Stabilizes database reverse-engineering tools for DB-first ORM flow.</li>
+<li>Plugs holes and omissions in the fluent query API.</li>
+<li>Expands encryption capabilities to all data types.</li>
+<li>Improves transaction management API.</li>
+<li>Provides alternative binary protocols for ROP, greatly improving its performance.</li>
+<li>Includes a new Modeler welcome screen.</li>
+<li>Fixes numerous bugs, updates docs, etc., etc.</li>
+</ul>
+
+<p>Cayenne can be downloaded from <a href="/download.html">here</a>. Make sure to consult <a href="https://github.com/apache/cayenne/blob/4.0.M4/docs/doc/src/main/resources/UPGRADE.txt">UPGRADE.txt</a> file before updating.</p>
+
+<p>Before we start discussing individual features, a few words on the future development effort. Cayenne 4.0 is quickly approaching &ldquo;beta&rdquo; status. There&rsquo;s a good chance that the following release will be feature-complete and we will enter &ldquo;beta&rdquo; and associated code freeze of the runtime framework.</p>
+
+<p>Now the new things in a bit more detail:</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+
+<h3 id="fluent-query-api">Fluent query API</h3>
+
+<p>These fluent queries are new in M4:</p>
+
+<p><em>SQLExec</em></p>
+
+<pre><code>// insert
+int inserted = SQLExec.query(&quot;INSERT INTO ARTIST (ARTIST_ID, ARTIST_NAME) &quot; + 
+  &quot;VALUES (#bind($id), #bind($name))&quot;)
+  .paramsArray(55, &quot;a3&quot;)
+  .update(context);
+
+// update
+int updated = SQLExec
+  .query(&quot;UPDATE ARTIST SET ARTIST_NAME = 'b3' WHERE ARTIST_NAME = 'a3'&quot;)
+  .update(context);
+</code></pre>
+
+<p><em>MappedSelect</em></p>
+
+<pre><code>List&lt;Artist&gt; artists = MappedSelect.query(&quot;SelectArtists&quot;, Artist.class)
+  .param(&quot;name&quot;, &quot;artist1&quot;)
+  .select(context);
+</code></pre>
+
+<p><em>MappedExec</em></p>
+
+<pre><code>int[] updated = MappedExec.query(&quot;UpdateArtists&quot;).param(&quot;name&quot;, &quot;artist2&quot;).update(context);
+</code></pre>
+
+<p><em>ProcedureCall</em></p>
+
+<pre><code>// select
+List&lt;Artist&gt; artists = ProcedureCall.query(&quot;select_sp&quot;, Artist.class)
+                .param(&quot;name&quot;, &quot;Artist&quot;)
+                .param(&quot;paintingPrice&quot;, 3000)
+                .limit(2).select(context);
+
+// update
+int updated = ProcedureCall.query(&quot;update_sp&quot;)
+                .param(&quot;paintingPrice&quot;, 3000).update(context);
+
+// call and get out parameters
+int outParam = ProcedureCall.query(&quot;out_sp&quot;)
+                .param(&quot;name&quot;, &quot;Artist&quot;)
+                .call(context).getOutParam(&quot;artist_out&quot;);
+</code></pre>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+
+<h3 id="reverse-engineering-improvements">Reverse Engineering Improvements</h3>
+
+<p>There are a lot of improvements and bug fixes covering reverse engineering functionality (aka &ldquo;DB-first flow&rdquo;). There&rsquo;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 <a href="/docs/4.0/cayenne-guide/cayenne-guide-part4.html">link</a> to learn what DB-First flow is all about and how to use it.</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+
+<h3 id="cayenne-crypto-improvements">Cayenne Crypto Improvements</h3>
+
+<p>We&rsquo;ve aded support for mapping encrypted columns to numbers, Strings, etc.</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+
+<h3 id="transaction-control">Transaction control</h3>
+
+<p>Added TransactionListener to allow for better control of manual transactions.</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+
+<h3 id="rop-improvements">ROP Improvements</h3>
+
+<p>With M4 it&rsquo;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.</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+<h2 class="text-center">A full list of changes in this release:</h2>
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<ul>
+<li>CAY-2051 Applying new Reverse Engineering to the Modeler</li>
+<li>CAY-2053 SQLExec fluent query API</li>
+<li>CAY-2060 Replace Query objects in DataMap with query descriptors</li>
+<li>CAY-2062 MappedSelect and MappedExec fluent query API</li>
+<li>CAY-2063 ProcedureCall fluent query API</li>
+<li>CAY-2065 Pluggable serialization and connectivity layers for ROP</li>
+<li>CAY-2073 Ordering.orderedList methods</li>
+<li>CAY-2074 Support for catalogs in stored procedures</li>
+<li>CAY-2076 Implement Jetty HTTP/1.1 and HTTP/2 Client support for ROP Client</li>
+<li>CAY-2083 Implement Protostuff as serialization service for Cayenne ROP</li>
+<li>CAY-2090 Untangle HttpRemoteService from ServiceContext thread local setup</li>
+<li>CAY-2100 Add supporting generated keys for PostgreSQL</li>
+<li>CAY-2102 EJBQL: db: path not supported in select columns</li>
+<li>CAY-2103 cayenne-crypto: support for mapping non-String and non-binary types</li>
+<li>CAY-2106 cayenne-crypto: allow DI contribution of type converters inside ValueTransformerFactory</li>
+<li>CAY-2107 cayenne-crypto: Lazy initialization of crypto subsystem</li>
+<li>CAY-2111 Unbind transaction object from the current thread for iterated queries</li>
+<li>CAY-2112 Expose callback for &ldquo;performInTransaction&rdquo;</li>
+<li>CAY-2113 cdbimport: Reverse-engineering reinstates previously ignored columns</li>
+<li>CAY-2114 cdbimport: object layer settings are not respected</li>
+<li>CAY-2115 DbLoader - allow loading DataMap without Obj layer</li>
+<li>CAY-2116 Split schema synchronization code in a separate module</li>
+<li>CAY-2118 cdbimport: drop support for the old style of table filtering</li>
+<li>CAY-2129 Modeler: reengineer dialog improvements</li>
+<li>CAY-2130 Stripping common name prefixes on reverse engineering</li>
+<li>CAY-2132 Adding SybaseSelectTranslator to support TOP/DISTINCT TOP in limited queries</li>
+<li>CAY-2133 ObjectNameGenerator refactoring - unifying relationship name generation</li>
+<li>CAY-2135 cdbimport: reset DbEntity catalogs / schemas to DataMap defaults</li>
+<li>CAY-2136 Allow Ordering.orderedList(…) methods to accept a Collection rather than only a List</li>
+<li>CAY-2160 Modeler: new welcome screen</li>
+</ul>
+
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<h4 id="bug-fixes">Bug Fixes:</h4>
+
+<ul>
+<li>CAY-2016 cdbimport: Rename table with toMany relationship causes migration error</li>
+<li>CAY-2064 Issue with BeanAccessor for classes with complex inheritance</li>
+<li>CAY-2066 Fixes for inner enums handling in ExtendedTypeMap</li>
+<li>CAY-2067 Cayenne 4.0 connection pool is occasionally running out of connections</li>
+<li>CAY-2070 Modeler sync function adds extraneous ObjRelationships inside the class hierarchy</li>
+<li>CAY-2078 Client code gen bug. Unnecessary DataMap class generation setting datamap gen to false.</li>
+<li>CAY-2080 Cayenne doesn&rsquo;t pick up reverse engineering file changes</li>
+<li>CAY-2084 ObjectIdQuery - no cache access polymorphism</li>
+<li>CAY-2086 SelectById.selectFirst stack overflow</li>
+<li>CAY-2087 PostCommitFilter is confused about changes made by Pre listeners</li>
+<li>CAY-2089 HTTP connections aren&rsquo;t always closed in new ROP implementation</li>
+<li>CAY-2097 NullPointerException while updating relationships for entities with vertical inheritance</li>
+<li>CAY-2101 DataContext.currentSnapshot() doesn&rsquo;t set snapshot entity name</li>
+<li>CAY-2105 Add missing elements to the reverseEngineering.xsd</li>
+<li>CAY-2108 cayenne-di: StackOverflow for decorator that takes Provider of the delegate</li>
+<li>CAY-2110 Obfuscated exception when processing iterated results</li>
+<li>CAY-2119 ProjectUpgrader test failure (Windows)</li>
+<li>CAY-2122 Vertical Inheritance: Cannot Insert Record For Implementing Class with Attribute And Relationship</li>
+<li>CAY-2125 SchemaUpdateStrategy doesn&rsquo;t work with multiple DataNodes</li>
+<li>CAY-2126 Modeler cannot upgrade project from v7 to v9</li>
+<li>CAY-2128 Modeler stored procedures are not imported</li>
+<li>CAY-2131 Modeler NullPointerException in reverse engineering when importing different catalogs in one datamap</li>
+<li>CAY-2138 NVARCHAR, LONGNVARCHAR and NCLOB types are missing from Firebird types.xml</li>
+<li>CAY-2141 Disjoint-by-id prefetch generates repeating ID conditions</li>
+<li>CAY-2143 NPE in BaseSchemaUpdateStrategy</li>
+<li>CAY-2144 cdbimport always fails for databases which don&rsquo;t support catalogs</li>
+<li>CAY-2146 Vertical inheritance: record still inserted into parent db table when child validation fails</li>
+<li>CAY-2148 Failure upgrading from 3.1 to M4</li>
+<li>CAY-2150 UI bug: PK generation custom sequence is getting reset</li>
+<li>CAY-2151 Migrate Database Schema: issue when no db is specified</li>
+<li>CAY-2153 Modeler Exception in save action after reverse engineering some complex DB schema</li>
+<li>CAY-2154 Migrate db: queries order</li>
+</ul>
+
+                    </article>
+                </section>
+            
+        <div class="pb-3"></div>
+        <div class="row">
+            <div class="col-12 col-md-6  text-center text-md-left">
+                
+                <a class="btn btn-link" href='/2017/03/cayenne-40M5-released.html'>
+                    <span class="d-block d-md-none  text-muted">Prev: </span>
+                    <i class="small  fa fa-chevron-left  mr-3l2  d-none d-md-inline"></i>
+                    Cayenne 4.0 Milestone 5 Released
+                </a>
+                
+            </div>
+            <div class="col-12 col-md-6  text-center text-md-right">
+                
+                <a class="btn btn-link" href='/2016/05/cayenne-311-released.html'>
+                    <span class="d-block d-md-none  text-muted">Next: </span>
+                    Cayenne 3.1.1 Released
+                    <i class="small  fa fa-chevron-right  ml-3l2  d-none d-md-inline"></i>
+                </a>
+                
+            </div>
+        </div>
+    </main>
+
+
+<footer class="bg-dark">
+    <div class="footer-nav container  text-center text-lg-left  pb-3">
+        <div class="row  pt-5 pb-3">
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>About</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/why-cayenne.html">Why Cayenne?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/success-stories.html">Success Stories</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/about/support/">Support</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Documentation</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/docs/4.0/getting-started-guide/">Getting Started (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-guide/">Getting Started (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.0/cayenne-guide/">Cayenne Guide (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/cayenne-guide/">Cayenne Guide (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-db-first/">Database First tutorial (4.1)</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Collaboration</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="https://issues.apache.org/jira/browse/CAY">Bug/Feature Tracker</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/mailing-lists.html">Mailing Lists</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/code-repository.html">Code Repository</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/">Developer Guide</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/how-can-i-help.html">How can I help?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/contributors.html">Contributors</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>News</h4>
+                <ul class="list-multiline-items list-unstyled  mb-0">
+                    
+                    <li>
+                        <time datetime="2017-11-20 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Nov 20, 2017</time>
+                        <a href="/2017/11/cayenne-312-released.html">Cayenne 3.1.2 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-14 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Oct 14, 2017</time>
+                        <a href="/2017/10/cayenne-41m1-released.html">Cayenne 4.1 Milestone 1 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-06 17:38:42 &#43;0300 &#43;03" class="xsmall d-block">Oct 06, 2017</time>
+                        <a href="/2017/10/cayenne-40B2-released.html">Cayenne 4.0 Beta 2 Released</a>
+                    </li>
+                    
+                </ul>
+                <a class="btn-link text-uppercase xsmall" href="http://cayenne.apache.org/news">
+                    More news
+                    <i class="fa fa-lg fa-long-arrow-right" aria-hidden="true"></i>
+                </a>
+            </div>
+        </div>
+        <hr class="mt-0 mb-3" />
+        <p class="copy xsmall text-center  mw-75 mx-auto mb-0">
+            Copyright © 2001-2018 Apache Software Foundation. Apache Cayenne, Cayenne, Apache, the Apache feather logo, and the Apache Cayenne project logo are trademarks of The Apache Software Foundation. <a href="http://cayenne.apache.org/privacy-policy.html">Privacy policy</a>.
+            <img class="d-block  mx-auto mt-2" src="/img/logo_mono-3302daa3cf.svg" alt="Apache Cayenne" />
+        </p>
+    </div>
+</footer>
+    
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-7036673-1', 'auto');
+ga('send', 'pageview');
+</script>
+
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/e9062ca0/2017/03/cayenne-40M5-released.html
----------------------------------------------------------------------
diff --git a/2017/03/cayenne-40M5-released.html b/2017/03/cayenne-40M5-released.html
new file mode 100644
index 0000000..75c2dbb
--- /dev/null
+++ b/2017/03/cayenne-40M5-released.html
@@ -0,0 +1,358 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.3">
+        <link rel="shortcut icon" href="/favicon.ico" />
+        <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-144-precomposed.png" sizes="144x144" />
+        <link rel="stylesheet" href="http://cayenne.apache.org/css/styles-452af12eaa.css"/>
+        <script src="http://cayenne.apache.org/js/bundle-bcaaf59313.js"></script>
+        <title>Cayenne 4.0 Milestone 5 Released &middot; Apache Cayenne</title>
+    </head>
+    <body> 
+<header class="page-header">
+    <nav id="topbar" class="bg-dark" aria-label="breadcrumb" role="navigation">
+      <ul class="breadcrumb breadcrumb-sm breadcrumb-dark  container  mb-0">
+        <img class="mh-26px  mr-1" src="/img/feather-641aa69d09.svg" />
+        <li class="breadcrumb-item dropdown">
+          <a class="dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache Software Foundation</a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+            <a class="dropdown-item" href="http://www.apache.org">Apache Homepage</a>
+            <a class="dropdown-item" href="http://www.apache.org/licenses/">License</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+            <a class="dropdown-item" href="http://www.apache.org/security/">Security</a>
+          </div>
+        </li>
+        <li class="breadcrumb-item d-none d-lg-inline-block">Apache Cayenne</li>
+      </ul>
+    </nav>
+    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
+      <div class="container">
+        <a class="navbar-brand" href="http://cayenne.apache.org/">
+           <img src="/img/logo_mono_full-d7a19eef61.svg" alt="Apache Cayenne" />
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainMenu" aria-controls="mainMenu" aria-expanded="false" aria-label="Toggle navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+
+        <div class="collapse navbar-collapse" id="mainMenu">
+          <ul class="navbar-nav  mt-3 mt-lg-0 mr-auto">
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/download/">DOWNLOAD</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/docs/">DOCUMENTATION</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/about/support/">SUPPORT</a>
+            </li>
+            
+          </ul>
+          <ul class="navbar-nav  flex-row justify-content-center  mt-2 mt-lg-0 mb-2 mb-lg-0 " id="social-links-menu">
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://github.com/apache/cayenne">
+                <img src="/img/icon_octocat_stars-c24dac94b8.svg" alt="GitHub" /><span class="stargazers_count  ml-1l2"></span></a>
+            </li>
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://twitter.com/ApacheCayenne">
+                <img src="/img/icon_twitter-220a129d14.svg" alt="Twitter" />
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </nav>
+</header>
+
+
+
+
+    <main class="container  py-5">
+        
+                <section>
+                    <article>
+                        <h1 class="text-center">Cayenne 4.0 Milestone 5 Released<br />
+                            <small class="font-size-1rem text-muted">Mar 07, 2017</small>
+                        </h1>
+                        
+
+<p>Apache Cayenne team is glad to announce the latest milestone of Cayenne - 4.0.M5.
+The new release features a number of important things:</p>
+
+<ul>
+<li>New fluent API for SQL functions (including long-awaited <strong>aggregate</strong> functions).</li>
+<li>Auto-loading of additional Cayenne modules.</li>
+<li>New JCache module that allows to easily include any compatible cache provider.</li>
+<li>Further improvements and stabilization of database reverse-engineering tools.</li>
+<li>Fixes bugs, updates docs, etc.</li>
+</ul>
+
+<p>Cayenne can be downloaded from <a href="/download.html">here</a>. Make sure to consult <a href="https://github.com/apache/cayenne/blob/4.0.M5/docs/doc/src/main/resources/UPGRADE.txt">UPGRADE.txt</a> file before updating.</p>
+
+<p>Before we start discussing individual features, a few words on the future development effort.
+Cayenne 4.0 is quickly approaching &ldquo;beta&rdquo; status. There&rsquo;s a good chance that the following release will be
+feature-complete and we will enter &ldquo;beta&rdquo; and associated code freeze of the runtime framework.</p>
+
+<p>Now the new things in a bit more detail:</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+
+<h3 id="fluent-query-api">Fluent query API</h3>
+
+<p>These great additions to Fluent API are new in M5:</p>
+
+<p><em>ColumnSelect</em></p>
+
+<pre><code>List&lt;String&gt; names = ObjectSelect.query(Artist.class)
+                     .column(Artist.ARTIST_NAME).select(context);
+</code></pre>
+
+<p><em>Aggregate Functions</em></p>
+
+<pre><code>// easy way to select count
+long count = ObjectSelect.query(Artist.class).selectCount(context);
+</code></pre>
+
+<p><em>GROUP BY .. HAVING</em></p>
+
+<pre><code>Property&lt;Double&gt; 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&lt;Object[]&gt; nameAndMinPrice = ObjectSelect.query(Artist.class)
+                    .columns(Artist.ARTIST_NAME, minPrice)
+                    .having(minPrice.gt(2000.0))
+                    .select(context);
+</code></pre>
+
+<p><em>SQL Functions</em></p>
+
+<pre><code>Property&lt;Integer&gt; nameLength = Artist.ARTIST_NAME.length();
+List&lt;Artist&gt; artists = ObjectSelect.query(Artist.class, nameLength.gt(5))
+                        .select(context);
+</code></pre>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+    
+
+<h3 id="reverse-engineering-improvements">Reverse Engineering Improvements</h3>
+
+<p>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.</p>
+
+<p>The plugin itself has changed it&rsquo;s name to <em>&ldquo;cayenne-maven-plugin&rdquo;</em>, so now you can use short commands like the following:</p>
+
+<pre><code>mvn cayenne:cdbimport
+</code></pre>
+
+<p><strong><em>Important note</em></strong>: please refer to <a href="https://github.com/apache/cayenne/blob/4.0.M5/docs/doc/src/main/resources/UPGRADE.txt">UPGRADE.txt</a> for detailed changes in <em>cdbimport</em> configuration.</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+<h2 class="text-center">A full list of changes in this release:</h2>
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2139">CAY-2139</a> Upgrade HSQLDB dependency to the most recent version (2.3.4)</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2150">CAY-2150</a> Refactoring: ParameterBinding to contain ExtendedType property</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2163">CAY-2163</a> Property.path() , ExpressionFactory.pathExp()</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2164">CAY-2164</a> Relocate builder bootstrap methods from ServerRuntimeBuilder to ServerRuntime</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2165">CAY-2165</a> Explicit &ldquo;contribution&rdquo; API for easier expansion of DI collections and maps</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2166">CAY-2166</a> Auto-loading of Cayenne modules</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2168">CAY-2168</a> Split DbLoader to parts and clean it up</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2169">CAY-2169</a> Split DbMerger to parts and clean it up</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2170">CAY-2170</a> MergeToken sorting is highly unstable</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2172">CAY-2172</a> Cleanup Modeler import and migrate db actions</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2176">CAY-2176</a> Java 7 diamond class generation templates</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2177">CAY-2177</a> Sync auto generated state of PK between model and DB</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2187">CAY-2187</a> Support for the scalar and aggregate SQL functions in ObjectSelect API</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2197">CAY-2197</a> Update sqlite version and enable in-memory default config</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2212">CAY-2212</a> cdbimport cleanup and configuration schema refactoring</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2223">CAY-2223</a> JCacheQueryCache - a query cache provider to plug in JCache implementers</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2225">CAY-2225</a> Extensible CacheInvalidationFilter logic</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2228">CAY-2228</a> Deprecate multiple cache groups in caching and query API</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2231">CAY-2231</a> Support for collections in new functional expressions and old math expressions</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2232">CAY-2232</a> Proper conversion to String for new functional expressions</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2235">CAY-2235</a> Deprecate Query.getDataMap() method</li>
+</ul>
+
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<h4 id="bug-fixes">Bug Fixes:</h4>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2032">CAY-2032</a> SelectAction: DistinctResultIterator ignores flattened relationships</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2137">CAY-2137</a> When generating SQL from EJBQL, use &ldquo;AND&rdquo; to separate multiple join conditions</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2174">CAY-2174</a> Change FK attribute name cause ObjAttribute appear after Reverse Engineering</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2175">CAY-2175</a> AliasName used in EJBQLQuery is not working if it contains mixed case</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2183">CAY-2183</a> Newly created DbRelationship is unexpectedly renamed by the Modeler</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2199">CAY-2199</a> Modeler on Windows: The same project is displayed twice in &ldquo;Recent Projects&rdquo;</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2207">CAY-2207</a> Modeler: &ldquo;Java Type&rdquo; and &ldquo;DbAttribute Path&rdquo; are not saved with using TAB to move forward</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2221">CAY-2221</a> In-memory expression evaluation gives different result than select query</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2236">CAY-2236</a> Modeler Migrate DB Schema: unable to Reverse All Operations</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2238">CAY-2238</a> Modeler: Preserve manually set DbRelationship name when syncing with ObjEntity</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2242">CAY-2242</a> Vertical Inheritance: Cannot Insert Record For Implementing Class with Attribute And Relationship</li>
+</ul>
+
+                    </article>
+                </section>
+            
+        <div class="pb-3"></div>
+        <div class="row">
+            <div class="col-12 col-md-6  text-center text-md-left">
+                
+                <a class="btn btn-link" href='/2017/06/cayenne-40B1-released.html'>
+                    <span class="d-block d-md-none  text-muted">Prev: </span>
+                    <i class="small  fa fa-chevron-left  mr-3l2  d-none d-md-inline"></i>
+                    Cayenne 4.0 Beta 1 Released
+                </a>
+                
+            </div>
+            <div class="col-12 col-md-6  text-center text-md-right">
+                
+                <a class="btn btn-link" href='/2016/12/cayenne-40M4-released.html'>
+                    <span class="d-block d-md-none  text-muted">Next: </span>
+                    Cayenne 4.0 Milestone 4 Released
+                    <i class="small  fa fa-chevron-right  ml-3l2  d-none d-md-inline"></i>
+                </a>
+                
+            </div>
+        </div>
+    </main>
+
+
+<footer class="bg-dark">
+    <div class="footer-nav container  text-center text-lg-left  pb-3">
+        <div class="row  pt-5 pb-3">
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>About</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/why-cayenne.html">Why Cayenne?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/success-stories.html">Success Stories</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/about/support/">Support</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Documentation</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/docs/4.0/getting-started-guide/">Getting Started (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-guide/">Getting Started (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.0/cayenne-guide/">Cayenne Guide (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/cayenne-guide/">Cayenne Guide (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-db-first/">Database First tutorial (4.1)</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Collaboration</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="https://issues.apache.org/jira/browse/CAY">Bug/Feature Tracker</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/mailing-lists.html">Mailing Lists</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/code-repository.html">Code Repository</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/">Developer Guide</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/how-can-i-help.html">How can I help?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/contributors.html">Contributors</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>News</h4>
+                <ul class="list-multiline-items list-unstyled  mb-0">
+                    
+                    <li>
+                        <time datetime="2017-11-20 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Nov 20, 2017</time>
+                        <a href="/2017/11/cayenne-312-released.html">Cayenne 3.1.2 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-14 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Oct 14, 2017</time>
+                        <a href="/2017/10/cayenne-41m1-released.html">Cayenne 4.1 Milestone 1 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-06 17:38:42 &#43;0300 &#43;03" class="xsmall d-block">Oct 06, 2017</time>
+                        <a href="/2017/10/cayenne-40B2-released.html">Cayenne 4.0 Beta 2 Released</a>
+                    </li>
+                    
+                </ul>
+                <a class="btn-link text-uppercase xsmall" href="http://cayenne.apache.org/news">
+                    More news
+                    <i class="fa fa-lg fa-long-arrow-right" aria-hidden="true"></i>
+                </a>
+            </div>
+        </div>
+        <hr class="mt-0 mb-3" />
+        <p class="copy xsmall text-center  mw-75 mx-auto mb-0">
+            Copyright © 2001-2018 Apache Software Foundation. Apache Cayenne, Cayenne, Apache, the Apache feather logo, and the Apache Cayenne project logo are trademarks of The Apache Software Foundation. <a href="http://cayenne.apache.org/privacy-policy.html">Privacy policy</a>.
+            <img class="d-block  mx-auto mt-2" src="/img/logo_mono-3302daa3cf.svg" alt="Apache Cayenne" />
+        </p>
+    </div>
+</footer>
+    
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-7036673-1', 'auto');
+ga('send', 'pageview');
+</script>
+
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/e9062ca0/2017/06/cayenne-40B1-released.html
----------------------------------------------------------------------
diff --git a/2017/06/cayenne-40B1-released.html b/2017/06/cayenne-40B1-released.html
new file mode 100644
index 0000000..ee54ff5
--- /dev/null
+++ b/2017/06/cayenne-40B1-released.html
@@ -0,0 +1,343 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.3">
+        <link rel="shortcut icon" href="/favicon.ico" />
+        <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-144-precomposed.png" sizes="144x144" />
+        <link rel="stylesheet" href="http://cayenne.apache.org/css/styles-452af12eaa.css"/>
+        <script src="http://cayenne.apache.org/js/bundle-bcaaf59313.js"></script>
+        <title>Cayenne 4.0 Beta 1 Released &middot; Apache Cayenne</title>
+    </head>
+    <body> 
+<header class="page-header">
+    <nav id="topbar" class="bg-dark" aria-label="breadcrumb" role="navigation">
+      <ul class="breadcrumb breadcrumb-sm breadcrumb-dark  container  mb-0">
+        <img class="mh-26px  mr-1" src="/img/feather-641aa69d09.svg" />
+        <li class="breadcrumb-item dropdown">
+          <a class="dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache Software Foundation</a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+            <a class="dropdown-item" href="http://www.apache.org">Apache Homepage</a>
+            <a class="dropdown-item" href="http://www.apache.org/licenses/">License</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+            <a class="dropdown-item" href="http://www.apache.org/security/">Security</a>
+          </div>
+        </li>
+        <li class="breadcrumb-item d-none d-lg-inline-block">Apache Cayenne</li>
+      </ul>
+    </nav>
+    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
+      <div class="container">
+        <a class="navbar-brand" href="http://cayenne.apache.org/">
+           <img src="/img/logo_mono_full-d7a19eef61.svg" alt="Apache Cayenne" />
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainMenu" aria-controls="mainMenu" aria-expanded="false" aria-label="Toggle navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+
+        <div class="collapse navbar-collapse" id="mainMenu">
+          <ul class="navbar-nav  mt-3 mt-lg-0 mr-auto">
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/download/">DOWNLOAD</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/docs/">DOCUMENTATION</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/about/support/">SUPPORT</a>
+            </li>
+            
+          </ul>
+          <ul class="navbar-nav  flex-row justify-content-center  mt-2 mt-lg-0 mb-2 mb-lg-0 " id="social-links-menu">
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://github.com/apache/cayenne">
+                <img src="/img/icon_octocat_stars-c24dac94b8.svg" alt="GitHub" /><span class="stargazers_count  ml-1l2"></span></a>
+            </li>
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://twitter.com/ApacheCayenne">
+                <img src="/img/icon_twitter-220a129d14.svg" alt="Twitter" />
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </nav>
+</header>
+
+
+
+
+    <main class="container  py-5">
+        
+                <section>
+                    <article>
+                        <h1 class="text-center">Cayenne 4.0 Beta 1 Released<br />
+                            <small class="font-size-1rem text-muted">Jun 12, 2017</small>
+                        </h1>
+                        
+
+<p>Apache Cayenne team is glad to announce a beta release of Cayenne 4.0. What this means for our users is
+that now the API is frozen and it is safe to try it out even if you are not usually confortable living
+on the bleeding edge of unstable releases. We&rsquo;d like to hear from you about your upgrade experiences.
+And of course we&rsquo;ll strive to fix any remaining bugs before 4.0 goes final. To give you more confidence,
+we&rsquo;d like to mention that most of the Cayenne developers have been using 4.0 in production for years.</p>
+
+<p>From now on the 4.0 branch will concentrate on bug fixes, Modeler improvements, documentation, web site
+and other such things.</p>
+
+<p>We are planning to publish a more detailed 4.0 comparision with 3.1 shortly. For now let&rsquo;s take a look at
+things that have changed since the late milestone - M5:</p>
+
+<ul>
+<li>A native <strong>Gradle Plugin</strong>.</li>
+<li>Fresh <strong>Modeler design</strong> (along with many small UI improvements and bug fixes).</li>
+<li>A switch from <em>commons-logging</em> to <strong><em>SLF4J</em></strong> API</li>
+<li>Optional <strong>HMAC</strong> in crypto module</li>
+<li>Numerous bug fixes, updated docs, etc.</li>
+</ul>
+
+<p>Cayenne can be downloaded from <a href="http://cayenne.apache.org/download/">here</a>. Make sure to consult <a href="https://github.com/apache/cayenne/blob/4.0.B1/docs/doc/src/main/resources/UPGRADE.txt">UPGRADE.txt</a> file before updating.</p>
+
+<p>BTW, here is an example of the Gradle plugin use :</p>
+
+<pre><code>buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath group: 'org.apache.cayenne.plugins', name: 'cayenne-gradle-plugin', version: '4.0.B1'
+    }
+}
+
+apply plugin: 'org.apache.cayenne'
+
+cayenne.defaultDataMap 'datamap.map.xml'
+
+dependencies {
+    compile cayenne.dependency('server')
+    compile cayenne.dependency('java8')
+}
+</code></pre>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+<h2 class="text-center">A full list of changes in this release:</h2>
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CAY-1873">CAY-1873</a> Move DataDomain cache configuration from the Modeler and into DI</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-1891">CAY-1891</a> Modeler: Add To-Many Warning</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-1892">CAY-1892</a> Modeler: Add Relationship Data Type Warning</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2057">CAY-2057</a> Modeler: Clean up OS X version</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2109">CAY-2109</a> cayenne-crypto: add value authentication (HMAC)</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2210">CAY-2210</a> Query cache: incorrect cache key for queries with custom value objects</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2255">CAY-2255</a> ObjectSelect improvement: columns as full entities</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2258">CAY-2258</a> DI: type-safe binding of List and Map</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2259">CAY-2259</a> QueryCache: support for referencing type-safe caches</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2261">CAY-2261</a> Replace NamedQuery with MappedXYZ in *datamap.vm</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2262">CAY-2262</a> Module auto-loading</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2266">CAY-2266</a> Move EventBridge implementations into autoloadable modules</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2267">CAY-2267</a> Contribute lifecycle events listeners via DI</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2268">CAY-2268</a> DI: Refactor ListBuilder API ambiguities for before() / after() bindings</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2269">CAY-2269</a> Add support for date/time components extraction in expression functions</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2270">CAY-2270</a> Update function support in expression parser</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2271">CAY-2271</a> ColumnSelect: support for prefetch and limit</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2272">CAY-2272</a> ColumnSelect: methods to manually control DISTINCT clause</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2274">CAY-2274</a> Modeler: Validate case when dependent PK is marked as “generated”</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2277">CAY-2277</a> Create ClientRuntime with ClientRuntimeBuilder just like ServerRuntime</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2278">CAY-2278</a> Extract cayenne-postcommit module from cayenne-lifecycle</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2280">CAY-2280</a> Switch from commons-logging to slf4j</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2295">CAY-2295</a> &ldquo;Sync ObjEntity with DbEntity&rdquo; and &ldquo;View related DbEntity&rdquo; buttons aren&rsquo;t disabled, if DbEntity doesn&rsquo;t have ObjEntity</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2296">CAY-2296</a> cayenne-crypto: Get java type for DbAttribute bound to ObjAttributes with the same type</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2300">CAY-2300</a> Modeler: New icons and design improvements</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2302">CAY-2302</a> Rename postcommit module and its content to commitlog</li>
+</ul>
+
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<h3 id="bug-fixes">Bug Fixes:</h3>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2021">CAY-2021</a> cdbimport: detect when same FK constraint is defined twice</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2077">CAY-2077</a> Bug in CayenneRuntimeException using wrong specified string in Formatter</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2094">CAY-2094</a> SelectById query doesn&rsquo;t work from ROP client</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2161">CAY-2161</a> &lsquo;Not for Client Use&rsquo; option is ignored at Class Generation</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2171">CAY-2171</a> Modeler: Undo db Entity Sync throws error</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2208">CAY-2208</a> SQLTemplate: LEFT JOIN to a subset of a table returns nulls for entries that don&rsquo;t have a match in the subset</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2230">CAY-2230</a> Error using connection to postgresql with db schema in DB URL</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2240">CAY-2240</a> Modeler: issue with cursor rendering for EJBQL query</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2243">CAY-2243</a> ObjectContext.getGraphManager().unregisterObject() inconsistencies</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2250">CAY-2250</a> Remove: Incorrect text in Confirm Remove message when cursor is set on attribute row</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2256">CAY-2256</a> Cannot Save/Insert an Object With null Flattened (complex) toOne Relationship (see also <a href="https://issues.apache.org/jira/browse/CAY-2146">CAY-2146</a>)</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2265">CAY-2265</a> ServerRuntime.builder() fails to set default runtime name when a the project file doesn&rsquo;t follow recognized pattern</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2273">CAY-2273</a> Modeler: default suggested cgen location is rooted in subpackage</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2275">CAY-2275</a> Documentation: tutorial is out of sync with 4.0.M5 version</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2276">CAY-2276</a> PrePersist listener registered as PostPersist in LifecycleCallbackRegistry.addListener(Class&lt;?&gt;, LifecycleListener)</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2279">CAY-2279</a> cdbimport: skip PK comparison for VIEWs</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2281">CAY-2281</a> ObjEntity attribute overrides are never deleted</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2284">CAY-2284</a> Expression likeIgnoreCase can&rsquo;t handle unicode chars in in-memory evaluation</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2286">CAY-2286</a> Filter out inherited ObjEntities from sync with DbEntity</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2326">CAY-2326</a> DI: can&rsquo;t override List/Map elements from another Module</li>
+</ul>
+
+                    </article>
+                </section>
+            
+        <div class="pb-3"></div>
+        <div class="row">
+            <div class="col-12 col-md-6  text-center text-md-left">
+                
+                <a class="btn btn-link" href='/2017/10/cayenne-40B2-released.html'>
+                    <span class="d-block d-md-none  text-muted">Prev: </span>
+                    <i class="small  fa fa-chevron-left  mr-3l2  d-none d-md-inline"></i>
+                    Cayenne 4.0 Beta 2 Released
+                </a>
+                
+            </div>
+            <div class="col-12 col-md-6  text-center text-md-right">
+                
+                <a class="btn btn-link" href='/2017/03/cayenne-40M5-released.html'>
+                    <span class="d-block d-md-none  text-muted">Next: </span>
+                    Cayenne 4.0 Milestone 5 Released
+                    <i class="small  fa fa-chevron-right  ml-3l2  d-none d-md-inline"></i>
+                </a>
+                
+            </div>
+        </div>
+    </main>
+
+
+<footer class="bg-dark">
+    <div class="footer-nav container  text-center text-lg-left  pb-3">
+        <div class="row  pt-5 pb-3">
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>About</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/why-cayenne.html">Why Cayenne?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/success-stories.html">Success Stories</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/about/support/">Support</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Documentation</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/docs/4.0/getting-started-guide/">Getting Started (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-guide/">Getting Started (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.0/cayenne-guide/">Cayenne Guide (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/cayenne-guide/">Cayenne Guide (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-db-first/">Database First tutorial (4.1)</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Collaboration</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="https://issues.apache.org/jira/browse/CAY">Bug/Feature Tracker</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/mailing-lists.html">Mailing Lists</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/code-repository.html">Code Repository</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/">Developer Guide</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/how-can-i-help.html">How can I help?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/contributors.html">Contributors</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>News</h4>
+                <ul class="list-multiline-items list-unstyled  mb-0">
+                    
+                    <li>
+                        <time datetime="2017-11-20 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Nov 20, 2017</time>
+                        <a href="/2017/11/cayenne-312-released.html">Cayenne 3.1.2 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-14 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Oct 14, 2017</time>
+                        <a href="/2017/10/cayenne-41m1-released.html">Cayenne 4.1 Milestone 1 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-06 17:38:42 &#43;0300 &#43;03" class="xsmall d-block">Oct 06, 2017</time>
+                        <a href="/2017/10/cayenne-40B2-released.html">Cayenne 4.0 Beta 2 Released</a>
+                    </li>
+                    
+                </ul>
+                <a class="btn-link text-uppercase xsmall" href="http://cayenne.apache.org/news">
+                    More news
+                    <i class="fa fa-lg fa-long-arrow-right" aria-hidden="true"></i>
+                </a>
+            </div>
+        </div>
+        <hr class="mt-0 mb-3" />
+        <p class="copy xsmall text-center  mw-75 mx-auto mb-0">
+            Copyright © 2001-2018 Apache Software Foundation. Apache Cayenne, Cayenne, Apache, the Apache feather logo, and the Apache Cayenne project logo are trademarks of The Apache Software Foundation. <a href="http://cayenne.apache.org/privacy-policy.html">Privacy policy</a>.
+            <img class="d-block  mx-auto mt-2" src="/img/logo_mono-3302daa3cf.svg" alt="Apache Cayenne" />
+        </p>
+    </div>
+</footer>
+    
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-7036673-1', 'auto');
+ga('send', 'pageview');
+</script>
+
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/e9062ca0/2017/10/cayenne-40B2-released.html
----------------------------------------------------------------------
diff --git a/2017/10/cayenne-40B2-released.html b/2017/10/cayenne-40B2-released.html
new file mode 100644
index 0000000..082ee8e
--- /dev/null
+++ b/2017/10/cayenne-40B2-released.html
@@ -0,0 +1,266 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.3">
+        <link rel="shortcut icon" href="/favicon.ico" />
+        <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-144-precomposed.png" sizes="144x144" />
+        <link rel="stylesheet" href="http://cayenne.apache.org/css/styles-452af12eaa.css"/>
+        <script src="http://cayenne.apache.org/js/bundle-bcaaf59313.js"></script>
+        <title>Cayenne 4.0 Beta 2 Released &middot; Apache Cayenne</title>
+    </head>
+    <body> 
+<header class="page-header">
+    <nav id="topbar" class="bg-dark" aria-label="breadcrumb" role="navigation">
+      <ul class="breadcrumb breadcrumb-sm breadcrumb-dark  container  mb-0">
+        <img class="mh-26px  mr-1" src="/img/feather-641aa69d09.svg" />
+        <li class="breadcrumb-item dropdown">
+          <a class="dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache Software Foundation</a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+            <a class="dropdown-item" href="http://www.apache.org">Apache Homepage</a>
+            <a class="dropdown-item" href="http://www.apache.org/licenses/">License</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+            <a class="dropdown-item" href="http://www.apache.org/security/">Security</a>
+          </div>
+        </li>
+        <li class="breadcrumb-item d-none d-lg-inline-block">Apache Cayenne</li>
+      </ul>
+    </nav>
+    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
+      <div class="container">
+        <a class="navbar-brand" href="http://cayenne.apache.org/">
+           <img src="/img/logo_mono_full-d7a19eef61.svg" alt="Apache Cayenne" />
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainMenu" aria-controls="mainMenu" aria-expanded="false" aria-label="Toggle navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+
+        <div class="collapse navbar-collapse" id="mainMenu">
+          <ul class="navbar-nav  mt-3 mt-lg-0 mr-auto">
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/download/">DOWNLOAD</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/docs/">DOCUMENTATION</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/about/support/">SUPPORT</a>
+            </li>
+            
+          </ul>
+          <ul class="navbar-nav  flex-row justify-content-center  mt-2 mt-lg-0 mb-2 mb-lg-0 " id="social-links-menu">
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://github.com/apache/cayenne">
+                <img src="/img/icon_octocat_stars-c24dac94b8.svg" alt="GitHub" /><span class="stargazers_count  ml-1l2"></span></a>
+            </li>
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://twitter.com/ApacheCayenne">
+                <img src="/img/icon_twitter-220a129d14.svg" alt="Twitter" />
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </nav>
+</header>
+
+
+
+
+    <main class="container  py-5">
+        
+                <section>
+                    <article>
+                        <h1 class="text-center">Cayenne 4.0 Beta 2 Released<br />
+                            <small class="font-size-1rem text-muted">Oct 06, 2017</small>
+                        </h1>
+                        <p>Apache Cayenne team is glad to announce a beta 2 release of Cayenne 4.0.
+While API is frozen it includes only bug fixes and documentation updates.</p>
+
+<p>Cayenne can be downloaded from <a href="/download.html">here</a>.</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+<h2 class="text-center">A full list of changes in this release:</h2>
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2319">CAY-2319</a> Modeler: Embeddable &gt; Attributes. Undo does not cancel pasted objects</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2321">CAY-2321</a> cdbimport: Reverse relationship is not created after adding and rev engineeering new db table</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2323">CAY-2323</a> Modeler: Graph. No warning while saving the image with existing name</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2331">CAY-2331</a> cgen: broken templates for data map</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2347">CAY-2347</a> cdbimport: can&rsquo;t get all relationships on the first pass</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2349">CAY-2349</a> Cache issue: &lsquo;SelectQuery&rsquo; with prefetches loses relationships</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2350">CAY-2350</a> Expression: NotIn with empty collection returns empty result</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2353">CAY-2353</a> Broken paginated column select with only one entity in the result</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2354">CAY-2354</a> DbGenerator.runGenerator must commit its connection</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2356">CAY-2356</a> EJBQL: Incorrect COUNT() on outer joined table</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2357">CAY-2357</a> Generic select queries silently convert result to nulls if no PK column found</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2358">CAY-2358</a> NPE when callbacks invoked on null objects</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2359">CAY-2359</a> EJBQL: db path in not supported in ORDER BY</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2362">CAY-2362</a> ColumnSelect: unable to use Property without type</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2363">CAY-2363</a> ColumnSelect: unable to use from nested context</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2366">CAY-2366</a> Incorrect EJBQL COUNT translation</li>
+</ul>
+
+                    </article>
+                </section>
+            
+        <div class="pb-3"></div>
+        <div class="row">
+            <div class="col-12 col-md-6  text-center text-md-left">
+                
+                <a class="btn btn-link" href='/2017/10/cayenne-41m1-released.html'>
+                    <span class="d-block d-md-none  text-muted">Prev: </span>
+                    <i class="small  fa fa-chevron-left  mr-3l2  d-none d-md-inline"></i>
+                    Cayenne 4.1 Milestone 1 Released
+                </a>
+                
+            </div>
+            <div class="col-12 col-md-6  text-center text-md-right">
+                
+                <a class="btn btn-link" href='/2017/06/cayenne-40B1-released.html'>
+                    <span class="d-block d-md-none  text-muted">Next: </span>
+                    Cayenne 4.0 Beta 1 Released
+                    <i class="small  fa fa-chevron-right  ml-3l2  d-none d-md-inline"></i>
+                </a>
+                
+            </div>
+        </div>
+    </main>
+
+
+<footer class="bg-dark">
+    <div class="footer-nav container  text-center text-lg-left  pb-3">
+        <div class="row  pt-5 pb-3">
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>About</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/why-cayenne.html">Why Cayenne?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/success-stories.html">Success Stories</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/about/support/">Support</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Documentation</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/docs/4.0/getting-started-guide/">Getting Started (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-guide/">Getting Started (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.0/cayenne-guide/">Cayenne Guide (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/cayenne-guide/">Cayenne Guide (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-db-first/">Database First tutorial (4.1)</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Collaboration</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="https://issues.apache.org/jira/browse/CAY">Bug/Feature Tracker</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/mailing-lists.html">Mailing Lists</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/code-repository.html">Code Repository</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/">Developer Guide</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/how-can-i-help.html">How can I help?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/contributors.html">Contributors</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>News</h4>
+                <ul class="list-multiline-items list-unstyled  mb-0">
+                    
+                    <li>
+                        <time datetime="2017-11-20 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Nov 20, 2017</time>
+                        <a href="/2017/11/cayenne-312-released.html">Cayenne 3.1.2 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-14 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Oct 14, 2017</time>
+                        <a href="/2017/10/cayenne-41m1-released.html">Cayenne 4.1 Milestone 1 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-06 17:38:42 &#43;0300 &#43;03" class="xsmall d-block">Oct 06, 2017</time>
+                        <a href="/2017/10/cayenne-40B2-released.html">Cayenne 4.0 Beta 2 Released</a>
+                    </li>
+                    
+                </ul>
+                <a class="btn-link text-uppercase xsmall" href="http://cayenne.apache.org/news">
+                    More news
+                    <i class="fa fa-lg fa-long-arrow-right" aria-hidden="true"></i>
+                </a>
+            </div>
+        </div>
+        <hr class="mt-0 mb-3" />
+        <p class="copy xsmall text-center  mw-75 mx-auto mb-0">
+            Copyright © 2001-2018 Apache Software Foundation. Apache Cayenne, Cayenne, Apache, the Apache feather logo, and the Apache Cayenne project logo are trademarks of The Apache Software Foundation. <a href="http://cayenne.apache.org/privacy-policy.html">Privacy policy</a>.
+            <img class="d-block  mx-auto mt-2" src="/img/logo_mono-3302daa3cf.svg" alt="Apache Cayenne" />
+        </p>
+    </div>
+</footer>
+    
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-7036673-1', 'auto');
+ga('send', 'pageview');
+</script>
+
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cayenne-website/blob/e9062ca0/2017/10/cayenne-41m1-released.html
----------------------------------------------------------------------
diff --git a/2017/10/cayenne-41m1-released.html b/2017/10/cayenne-41m1-released.html
new file mode 100644
index 0000000..7fa16df
--- /dev/null
+++ b/2017/10/cayenne-41m1-released.html
@@ -0,0 +1,302 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.3">
+        <link rel="shortcut icon" href="/favicon.ico" />
+        <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-144-precomposed.png" sizes="144x144" />
+        <link rel="stylesheet" href="http://cayenne.apache.org/css/styles-452af12eaa.css"/>
+        <script src="http://cayenne.apache.org/js/bundle-bcaaf59313.js"></script>
+        <title>Cayenne 4.1 Milestone 1 Released &middot; Apache Cayenne</title>
+    </head>
+    <body> 
+<header class="page-header">
+    <nav id="topbar" class="bg-dark" aria-label="breadcrumb" role="navigation">
+      <ul class="breadcrumb breadcrumb-sm breadcrumb-dark  container  mb-0">
+        <img class="mh-26px  mr-1" src="/img/feather-641aa69d09.svg" />
+        <li class="breadcrumb-item dropdown">
+          <a class="dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache Software Foundation</a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+            <a class="dropdown-item" href="http://www.apache.org">Apache Homepage</a>
+            <a class="dropdown-item" href="http://www.apache.org/licenses/">License</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+            <a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+            <a class="dropdown-item" href="http://www.apache.org/security/">Security</a>
+          </div>
+        </li>
+        <li class="breadcrumb-item d-none d-lg-inline-block">Apache Cayenne</li>
+      </ul>
+    </nav>
+    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
+      <div class="container">
+        <a class="navbar-brand" href="http://cayenne.apache.org/">
+           <img src="/img/logo_mono_full-d7a19eef61.svg" alt="Apache Cayenne" />
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainMenu" aria-controls="mainMenu" aria-expanded="false" aria-label="Toggle navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+
+        <div class="collapse navbar-collapse" id="mainMenu">
+          <ul class="navbar-nav  mt-3 mt-lg-0 mr-auto">
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/download/">DOWNLOAD</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/docs/">DOCUMENTATION</a>
+            </li>
+            
+            <li class="nav-item">
+              <a class="nav-link" href="/about/support/">SUPPORT</a>
+            </li>
+            
+          </ul>
+          <ul class="navbar-nav  flex-row justify-content-center  mt-2 mt-lg-0 mb-2 mb-lg-0 " id="social-links-menu">
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://github.com/apache/cayenne">
+                <img src="/img/icon_octocat_stars-c24dac94b8.svg" alt="GitHub" /><span class="stargazers_count  ml-1l2"></span></a>
+            </li>
+            <li class="nav-item  d-flex">
+              <a class="nav-link  d-flex justify-content-center align-items-center" href="https://twitter.com/ApacheCayenne">
+                <img src="/img/icon_twitter-220a129d14.svg" alt="Twitter" />
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </nav>
+</header>
+
+
+
+
+    <main class="container  py-5">
+        
+                <section>
+                    <article>
+                        <h1 class="text-center">Cayenne 4.1 Milestone 1 Released<br />
+                            <small class="font-size-1rem text-muted">Oct 14, 2017</small>
+                        </h1>
+                        
+
+<p>Apache Cayenne team is glad to announce the first milestone release of Cayenne 4.1.
+This is a development release that introduces a number of nice new major features:</p>
+
+<ul>
+<li>New field-based data objects (see <a href="https://issues.apache.org/jira/browse/CAY-2330">CAY-2330</a>),
+that are much faster to read and write, while significantly reducing the app memory footprint.</li>
+<li>Dependency-free Cayenne core. No more velocity or commons-collections compile dependencies. Only &ldquo;slf4j-api&rdquo; is required in the base config.</li>
+<li>New extensible project XML structure. In M1 we are using this to store comments for entities, attributes and relationships.
+Future milestones will add storing configuration for cdbimport and cgen.</li>
+</ul>
+
+<p>Cayenne can be downloaded from <a href="/download.html">here</a>.</p>
+
+<div class="pb-3"><!-- gap 3rem --></div>
+<h2 class="text-center">A full list of changes in this release:</h2>
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<h4 id="changes-new-features">Changes/New Features:</h4>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2152">CAY-2152</a> Redesign project file upgrade system</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2329">CAY-2329</a> Update project dependencies</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2330">CAY-2330</a> Field based data objects</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2335">CAY-2335</a> New XML loading/saving mechanics with support of plugable handlers</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2336">CAY-2336</a> Support for comments in Modeler</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2339">CAY-2339</a> Compatibility module to support old versions of projects at runtime</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2344">CAY-2344</a> Modeler: Save ER-Graph and class diagram</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2345">CAY-2345</a> Own template renderer as a replacement for Velocity</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2346">CAY-2346</a> Field-based data object with Map-based storage fallback</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2351">CAY-2351</a> Remove commons-collections usage completely</li>
+</ul>
+
+<div class="pb-2"><!-- gap 2rem --></div>
+
+<h4 id="bug-fixes">Bug Fixes:</h4>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2312">CAY-2312</a> Modeler: Undo does not work for checkboxes</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2318">CAY-2318</a> Modeler: Query. Exception after Undo clicking</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2319">CAY-2319</a> Modeler: Embeddable &gt; Attributes. Undo does not cancel pasted objects</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2321">CAY-2321</a> cdbimport: Reverse relationship is not created after adding and rev engineeering new db table</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2323">CAY-2323</a> Modeler: Graph. No warning while saving the image with existing name</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2331">CAY-2331</a> cgen: broken templates for data map</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2347">CAY-2347</a> cdbimport: can&rsquo;t get all relationships on the first pass</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2349">CAY-2349</a> Cache issue: &lsquo;SelectQuery&rsquo; with prefetches loses relationships</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2350">CAY-2350</a> Expression: NotIn with empty collection returns empty result</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2353">CAY-2353</a> Broken paginated column select with only one entity in the result</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2354">CAY-2354</a> DbGenerator.runGenerator must commit its connection</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2356">CAY-2356</a> EJBQL: Incorrect COUNT() on outer joined table</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2357">CAY-2357</a> Generic select queries silently convert result to nulls if no PK column found</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2358">CAY-2358</a> NPE when callbacks invoked on null objects</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2359">CAY-2359</a> EJBQL: db path in not supported in ORDER BY</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2361">CAY-2361</a> PostgreSQL DbGenerator issues</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2362">CAY-2362</a> ColumnSelect: unable to use Property without type</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2363">CAY-2363</a> ColumnSelect: unable to use from nested context</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2364">CAY-2364</a> Wrong logging in SQLTemplate</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2365">CAY-2365</a> SQLExec query tries to convert (unexpected) result set into objects</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2366">CAY-2366</a> Incorrect EJBQL COUNT translation</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2367">CAY-2367</a> ClassCastException reading object with an attribute of type &lsquo;char&rsquo;</li>
+<li><a href="https://issues.apache.org/jira/browse/CAY-2368">CAY-2368</a> ColumnSelect: Property.self() translates into wrong SQL code</li>
+</ul>
+
+                    </article>
+                </section>
+            
+        <div class="pb-3"></div>
+        <div class="row">
+            <div class="col-12 col-md-6  text-center text-md-left">
+                
+                <a class="btn btn-link" href='/2017/11/cayenne-312-released.html'>
+                    <span class="d-block d-md-none  text-muted">Prev: </span>
+                    <i class="small  fa fa-chevron-left  mr-3l2  d-none d-md-inline"></i>
+                    Cayenne 3.1.2 Released
+                </a>
+                
+            </div>
+            <div class="col-12 col-md-6  text-center text-md-right">
+                
+                <a class="btn btn-link" href='/2017/10/cayenne-40B2-released.html'>
+                    <span class="d-block d-md-none  text-muted">Next: </span>
+                    Cayenne 4.0 Beta 2 Released
+                    <i class="small  fa fa-chevron-right  ml-3l2  d-none d-md-inline"></i>
+                </a>
+                
+            </div>
+        </div>
+    </main>
+
+
+<footer class="bg-dark">
+    <div class="footer-nav container  text-center text-lg-left  pb-3">
+        <div class="row  pt-5 pb-3">
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>About</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/why-cayenne.html">Why Cayenne?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/success-stories.html">Success Stories</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/about/support/">Support</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Documentation</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="/docs/4.0/getting-started-guide/">Getting Started (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-guide/">Getting Started (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.0/cayenne-guide/">Cayenne Guide (4.0)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/cayenne-guide/">Cayenne Guide (4.1)</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/docs/4.1/getting-started-db-first/">Database First tutorial (4.1)</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>Collaboration</h4>
+                <ul class="list-unstyled">
+                    
+                    <li>
+                        <a href="https://issues.apache.org/jira/browse/CAY">Bug/Feature Tracker</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/mailing-lists.html">Mailing Lists</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/code-repository.html">Code Repository</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/dev/">Developer Guide</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/how-can-i-help.html">How can I help?</a>
+                    </li>
+                    
+                    <li>
+                        <a href="/contributors.html">Contributors</a>
+                    </li>
+                    
+                </ul>
+            </div>
+            
+            <div class="col-sm-6 col-lg-3">
+                <h4>News</h4>
+                <ul class="list-multiline-items list-unstyled  mb-0">
+                    
+                    <li>
+                        <time datetime="2017-11-20 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Nov 20, 2017</time>
+                        <a href="/2017/11/cayenne-312-released.html">Cayenne 3.1.2 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-14 12:00:00 &#43;0300 &#43;03" class="xsmall d-block">Oct 14, 2017</time>
+                        <a href="/2017/10/cayenne-41m1-released.html">Cayenne 4.1 Milestone 1 Released</a>
+                    </li>
+                    
+                    <li>
+                        <time datetime="2017-10-06 17:38:42 &#43;0300 &#43;03" class="xsmall d-block">Oct 06, 2017</time>
+                        <a href="/2017/10/cayenne-40B2-released.html">Cayenne 4.0 Beta 2 Released</a>
+                    </li>
+                    
+                </ul>
+                <a class="btn-link text-uppercase xsmall" href="http://cayenne.apache.org/news">
+                    More news
+                    <i class="fa fa-lg fa-long-arrow-right" aria-hidden="true"></i>
+                </a>
+            </div>
+        </div>
+        <hr class="mt-0 mb-3" />
+        <p class="copy xsmall text-center  mw-75 mx-auto mb-0">
+            Copyright © 2001-2018 Apache Software Foundation. Apache Cayenne, Cayenne, Apache, the Apache feather logo, and the Apache Cayenne project logo are trademarks of The Apache Software Foundation. <a href="http://cayenne.apache.org/privacy-policy.html">Privacy policy</a>.
+            <img class="d-block  mx-auto mt-2" src="/img/logo_mono-3302daa3cf.svg" alt="Apache Cayenne" />
+        </p>
+    </div>
+</footer>
+    
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-7036673-1', 'auto');
+ga('send', 'pageview');
+</script>
+
+    </body>
+</html>