This is an automated email from the ASF dual-hosted git repository.

aadamchik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 8b320ca  4.2 docs update
8b320ca is described below

commit 8b320cac19a04f41e261bd0cbcf1a9deebf507b7
Author: Andrus Adamchik <and...@objectstyle.com>
AuthorDate: Thu Jul 30 10:19:04 2020 +0300

    4.2 docs update
---
 src/main/site/content/docs/4.2/cayenne-guide.html  | 183 +++++++++++----------
 .../content/docs/4.2/getting-started-db-first.html |   2 +-
 .../content/docs/4.2/getting-started-guide.html    |   2 +-
 .../site/content/docs/4.2/getting-started-rop.html |   2 +-
 4 files changed, 99 insertions(+), 90 deletions(-)

diff --git a/src/main/site/content/docs/4.2/cayenne-guide.html 
b/src/main/site/content/docs/4.2/cayenne-guide.html
index cffbcde..eb69c7f 100644
--- a/src/main/site/content/docs/4.2/cayenne-guide.html
+++ b/src/main/site/content/docs/4.2/cayenne-guide.html
@@ -123,7 +123,7 @@ menu:
         &lt;plugin&gt;
             &lt;groupId&gt;org.apache.cayenne.plugins&lt;/groupId&gt;
             &lt;artifactId&gt;cayenne-modeler-maven-plugin&lt;/artifactId&gt;
-            &lt;version&gt;4.2.M1&lt;/version&gt;
+            &lt;version&gt;4.2&lt;/version&gt;
         &lt;/plugin&gt;
     &lt;/plugins&gt;
 &lt;/build&gt;</code></pre> 
@@ -363,7 +363,7 @@ total 24
       <pre class="highlight"><code class="language-xml xml" 
data-lang="xml">&lt;dependency&gt;
    &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
    &lt;artifactId&gt;cayenne-server&lt;/artifactId&gt;
-   &lt;version&gt;4.2.M1&lt;/version&gt;
+   &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -375,7 +375,7 @@ total 24
     </div> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-server:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 'org.apache.cayenne:cayenne-server:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -1382,7 +1382,7 @@ long count = ObjectSelect.query(Artist.class)
     </div> 
    </div> 
    <div class="sect3"> 
-    <h4 id="sqlselect-and-sqlexec"><a class="anchor" 
href="#sqlselect-and-sqlexec"></a>2.6.3. SQLSelect and SQLExec</h4> 
+    <h4 id="sqlselect"><a class="anchor" href="#sqlselect"></a>2.6.3. 
SQLSelect and SQLExec</h4> 
     <div class="paragraph"> 
      <p>SQL is very powerful and allows to manipulate data in ways that can 
not always be described as a graph of related entities. Cayenne acknowledges 
this fact and provides a facility to execute SQL, sometimes allowing to map 
results back to persistent objects. <code>SQLSelect</code> and 
<code>SQLExec</code> are a pair of queries that allow to run native SQL. 
<code>SQLSelect</code> can be used (as the name suggests) to select custom data 
in form of entities, separate columns, collecti [...]
     </div> 
@@ -2284,13 +2284,11 @@ ServerRuntime runtime = ServerRuntime.builder()
     </div> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Java Java" 
data-lang="Java">ObjectSelect&lt;Artist&gt; query = 
ObjectSelect.query(Artist.class);
-
-// instructs Cayenne to prefetch one of Artist's relationships
-query.prefetch(Artist.PAINTINGS.disjoint());
-
-// the above line is equivalent to the following:
-// query.prefetch("paintings", PrefetchTreeNode.DISJOINT_PREFETCH_SEMANTICS);
+      <pre class="highlight"><code class="language-Java Java" 
data-lang="Java">ObjectSelect&lt;Artist&gt; query = ObjectSelect
+    .query(Artist.class)
+    // Instructs Cayenne to prefetch one of Artist's relationships.
+    // Equivalent to ".prefetch("paintings", 
PrefetchTreeNode.DISJOINT_PREFETCH_SEMANTICS)")
+    .prefetch(Artist.PAINTINGS.disjoint());
 
 // query is expecuted as usual, but the resulting Artists will have
 // their paintings "inflated"
@@ -2298,7 +2296,7 @@ List&lt;Artist&gt; artists = 
query.select(context);</code></pre>
      </div> 
     </div> 
     <div class="paragraph"> 
-     <p>All types of relationships can be preftetched - to-one, to-many, 
flattened. A prefetch can span multiple relationships:</p> 
+     <p>All types of relationships can be prefetched - to-one, to-many, 
flattened. A prefetch can span multiple relationships:</p> 
     </div> 
     <div class="listingblock"> 
      <div class="content"> 
@@ -2310,71 +2308,82 @@ List&lt;Artist&gt; artists = 
query.select(context);</code></pre>
     </div> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Java Java" 
data-lang="Java">query.prefetch(Artist.PAINTINGS.disjoint());
-query.prefetch(Artist.PAINTINGS.dot(Painting.GALLERY).disjoint());</code></pre>
 
+      <pre class="highlight"><code class="language-Java Java" 
data-lang="Java">query.prefetch(Artist.PAINTINGS.disjoint())
+   .prefetch(Artist.PAINTINGS.dot(Painting.GALLERY).disjoint());</code></pre> 
      </div> 
     </div> 
     <div class="paragraph"> 
      <p>If a query is fetching DataRows, all "disjoint" prefetches are 
ignored, only "joint" prefetches are executed (see prefetching semantics 
discussion below for what disjoint and joint prefetches mean).</p> 
     </div> 
-    <div class="sect4"> 
-     <h5 id="prefetching-semantics"><a class="anchor" 
href="#prefetching-semantics"></a>2.8.1.1. Prefetching Semantics</h5> 
-     <div class="paragraph"> 
-      <p>Prefetching semantics defines a strategy to prefetch relationships. 
Depending on it, Cayenne would generate different types of queries. The end 
result is the same - query root objects with related objects fully resolved. 
However semantics can affect performance, in some cases significantly. There 
are 3 types of prefetch semantics, all defined as constants in 
<code>org.apache.cayenne.query.PrefetchTreeNode</code>:</p> 
-     </div> 
-     <div class="listingblock"> 
-      <div class="content"> 
-       <pre class="highlight"><code>PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS
+    <div class="paragraph"> 
+     <p>A strategy to prefetch relationships is defined by prefetch 
"semantics". Depending on semantics, Cayenne would generate different types of 
queries. The end result is the same - query root objects with related objects 
fully resolved. However semantics can affect performance, in some cases 
significantly. There are 3 types of prefetch semantics defined as constants in 
<code>org.apache.cayenne.query.PrefetchTreeNode</code>:</p> 
+    </div> 
+    <div class="listingblock"> 
+     <div class="content"> 
+      <pre class="highlight"><code>PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS
 PrefetchTreeNode.DISJOINT_PREFETCH_SEMANTICS
 PrefetchTreeNode.DISJOINT_BY_ID_PREFETCH_SEMANTICS</code></pre> 
-      </div> 
-     </div> 
-     <div class="paragraph"> 
-      <p>There’s no limitation on mixing different types of semantics in the 
same query. Each prefetch can have its own semantics. <code>SelectQuery</code> 
uses <code>DISJOINT_PREFETCH_SEMANTICS</code> by default. 
<code>ObjectSelect</code> requires explicit semantics as we’ve seen above. 
<code>SQLTemplate</code> and <code>ProcedureQuery</code> are both using 
<code>JOINT_PREFETCH_SEMANTICS</code> and it can not be changed due to the 
nature of those two queries.</p> 
      </div> 
     </div> 
-    <div class="sect4"> 
-     <h5 id="disjoint-prefetching-semantics"><a class="anchor" 
href="#disjoint-prefetching-semantics"></a>2.8.1.2. Disjoint Prefetching 
Semantics</h5> 
-     <div class="paragraph"> 
-      <p>This semantics results in Cayenne generatiing one SQL statement for 
the main objects, and a separate statement for each prefetch path (hence 
"disjoint" - related objects are not fetched with the main query). Each 
additional SQL statement uses a qualifier of the main query plus a set of joins 
traversing the prefetch path between the main and related entity.</p> 
-     </div> 
-     <div class="paragraph"> 
-      <p>This strategy has an advantage of efficient JVM memory use, and 
faster overall result processing by Cayenne, but it requires (1+N) SQL 
statements to be executed, where N is the number of prefetched 
relationships.</p> 
-     </div> 
+    <div class="paragraph"> 
+     <p><strong>Disjoint prefetch semantics</strong> results in Cayenne 
generating one SQL statement for the main objects, and a separate statement for 
each prefetch path (hence "disjoint" - related objects are not fetched with the 
main query). Each additional SQL statement uses a qualifier of the main query 
plus a set of joins traversing the prefetch path between the main and related 
entity.</p> 
     </div> 
-    <div class="sect4"> 
-     <h5 id="disjoint-by-id-prefetching-semantics"><a class="anchor" 
href="#disjoint-by-id-prefetching-semantics"></a>2.8.1.3. Disjoint-by-ID 
Prefetching Semantics</h5> 
-     <div class="paragraph"> 
-      <p>This is a variation of disjoint prefetch where related objects are 
matched against a set of IDs derived from the fetched main objects (or 
intermediate objects in a multi-step prefetch). Cayenne limits the size of the 
generated WHERE clause, as most DBs can’t parse arbitrary large SQL. So 
prefetch queries are broken into smaller queries. The size of is controlled by 
the DI property <code>Constants.SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY</code> 
(the default number of conditions in t [...]
-     </div> 
-     <div class="paragraph"> 
-      <p>The advantage of this type of prefetch is that matching database rows 
by ID may be much faster than matching the qualifier of the original query. 
Moreover this is <strong>the only type of prefetch</strong> that can handle 
SelectQueries with <strong>fetch</strong> limit. Both joint and regular 
disjoint prefetches may produce invalid results or generate inefficient 
fetch-the-entire table SQL when fetch limit is in effect.</p> 
-     </div> 
-     <div class="paragraph"> 
-      <p>The disadvantage is that query SQL can get unwieldy for large result 
sets, as each object will have to have its own condition in the WHERE clause of 
the generated SQL.</p> 
-     </div> 
+    <div class="paragraph"> 
+     <p>This strategy has an advantage of efficient JVM memory use, and faster 
overall result processing by Cayenne, but it requires (1+N) SQL statements to 
be executed, where N is the number of prefetched relationships.</p> 
     </div> 
-    <div class="sect4"> 
-     <h5 id="joint-prefetching-semantics"><a class="anchor" 
href="#joint-prefetching-semantics"></a>2.8.1.4. Joint Prefetching 
Semantics</h5> 
-     <div class="paragraph"> 
-      <p>Joint semantics results in a single SQL statement for root objects 
and any number of jointly prefetched paths. Cayenne processes in memory a 
cartesian product of the entities involved, converting it to an object tree. It 
uses OUTER joins to connect prefetched entities.</p> 
-     </div> 
-     <div class="paragraph"> 
-      <p>Joint is the most efficient prefetch type of the three as far as 
generated SQL goes. There’s always just 1 SQL query generated. Its downsides 
are the potentially increased amount of data that needs to get across the 
network between the application server and the database, and more data 
processing that needs to be done on the Cayenne side.</p> 
-     </div> 
+    <div class="paragraph"> 
+     <p><strong>Disjoint-by-ID prefetch semantics</strong> is a variation of 
disjoint prefetch where related objects are matched against a set of IDs 
derived from the fetched main objects (or intermediate objects in a multi-step 
prefetch). Cayenne limits the size of the generated WHERE clause, as most DBs 
can’t parse arbitrary large SQL. So prefetch queries are broken into smaller 
queries. The size of is controlled by the DI property 
<code>Constants.SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY< [...]
     </div> 
-    <div class="sect4"> 
-     <h5 id="similar-behaviours-using-ejbql"><a class="anchor" 
href="#similar-behaviours-using-ejbql"></a>2.8.1.5. Similar Behaviours Using 
EJBQL</h5> 
-     <div class="paragraph"> 
-      <p>It is possible to achieve similar behaviours with <a 
href="#ejbql">EJBQLQuery</a> queries by employing the "FETCH" keyword.</p> 
-     </div> 
-     <div class="listingblock"> 
-      <div class="content"> 
-       <pre class="highlight"><code class="language-SQL SQL" 
data-lang="SQL">SELECT a FROM Artist a LEFT JOIN FETCH a.paintings</code></pre> 
-      </div> 
+    <div class="paragraph"> 
+     <p>The advantage of this type of prefetch is that matching database rows 
by ID may be much faster than matching the qualifier of the original query. 
Moreover this is <strong>the only type of prefetch</strong> that can handle 
SelectQueries with <strong>fetch</strong> limit. Both joint and regular 
disjoint prefetches may produce invalid results or generate inefficient 
fetch-the-entire table SQL when fetch limit is in effect.</p> 
+    </div> 
+    <div class="paragraph"> 
+     <p>The disadvantage is that query SQL can get unwieldy for large result 
sets, as each object will have to have its own condition in the WHERE clause of 
the generated SQL.</p> 
+    </div> 
+    <div class="paragraph"> 
+     <p><strong>Joint prefetch semantics</strong> results in a single SQL 
statement for root objects and any number of jointly prefetched paths. Cayenne 
processes in memory a cartesian product of the entities involved, converting it 
to an object tree. It uses OUTER joins to connect prefetched entities.</p> 
+    </div> 
+    <div class="paragraph"> 
+     <p>Joint is the most efficient prefetch type of the three as far as 
generated SQL goes. There’s always just 1 SQL query generated. Its downsides 
are the potentially increased amount of data that needs to get across the 
network between the application server and the database, and more data 
processing that needs to be done on the Cayenne side.</p> 
+    </div> 
+    <div class="paragraph"> 
+     <p><code><a href="#select">ObjectSelect</a></code> query supports all 
three types of semantics. You can mix and match them in the same query for 
different prefetches.</p> 
+    </div> 
+    <div class="paragraph"> 
+     <p><code><a href="#sqlselect">SQLSelect</a></code> query supports "JOINT" 
and "DISJOINT_BY_ID". It does not work with "DISJOINT", as the query does not 
provide enough information to Cayenne to build dependent prefetch queries. So 
"DISJOINT" will result in exception. "JOINT" prefetching requires a bit of 
effort shaping the SQL to include the right columns in the result and label 
them properly to be convertable into object properties. The main rules to 
follow are:</p> 
+    </div> 
+    <div class="ulist"> 
+     <ul> 
+      <li> <p>Include <em>all</em> columns from the root entity and every 
prefetched entity.</p> </li> 
+      <li> <p>Label each prefetched entity columns as 
"dbRelationship.column".</p> </li> 
+     </ul> 
+    </div> 
+    <div class="paragraph"> 
+     <p>E.g.:</p> 
+    </div> 
+    <div class="listingblock"> 
+     <div class="content"> 
+      <pre class="highlight"><code class="language-Java Java" 
data-lang="Java">List&lt;Artist&gt; objects = SQLSelect.query(Artist.class, 
"SELECT "
+    + "#result('ESTIMATED_PRICE' 'BigDecimal' '' 
'paintingArray.ESTIMATED_PRICE'), "
+    + "#result('PAINTING_TITLE' 'String' '' 'paintingArray.PAINTING_TITLE'), "
+    + "#result('GALLERY_ID' 'int' '' 'paintingArray.GALLERY_ID'), "
+    + "#result('PAINTING_ID' 'int' '' 'paintingArray.PAINTING_ID'), "
+    + "#result('t1.ARTIST_ID' 'int' '' 'paintingArray.ARTIST_ID'), "
+    + "#result('ARTIST_NAME' 'String'), "
+    + "#result('DATE_OF_BIRTH' 'java.util.Date'), "
+    + "#result('t0.ARTIST_ID' 'int' '' 'ARTIST_ID') "
+    + "FROM ARTIST t0, PAINTING t1 "
+    + "WHERE t0.ARTIST_ID = t1.ARTIST_ID")
+    .addPrefetch(Artist.PAINTING_ARRAY.joint())
+    .select(context);</code></pre> 
      </div> 
-     <div class="paragraph"> 
-      <p>In this case, the Paintings that exist for the Artist will be 
obtained at the same time as the Artists are fetched. Refer to third-party 
query language documentation for further detail on this mechanism.</p> 
+    </div> 
+    <div class="paragraph"> 
+     <p><code><a href="#ejbql">EJBQLQuery</a></code> uses the "FETCH" keyword 
to enable prefetching:</p> 
+    </div> 
+    <div class="listingblock"> 
+     <div class="content"> 
+      <pre class="highlight"><code class="language-SQL SQL" 
data-lang="SQL">SELECT a FROM Artist a LEFT JOIN FETCH a.paintings</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -3108,7 +3117,7 @@ ServerRuntime runtime = ServerRuntime.builder()
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;plugin&gt;
        &lt;groupId&gt;org.apache.cayenne.plugins&lt;/groupId&gt;
        &lt;artifactId&gt;cayenne-maven-plugin&lt;/artifactId&gt;
-       &lt;version&gt;4.2.M1&lt;/version&gt;
+       &lt;version&gt;4.2&lt;/version&gt;
 
        &lt;configuration&gt;
         
&lt;cayenneProject&gt;${project.basedir}/src/main/resources/cayenne/cayenne-project.xml&lt;/cayenneProject&gt;
@@ -3692,7 +3701,7 @@ ServerRuntime runtime = ServerRuntime.builder()
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-cache-invalidation&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -3701,7 +3710,7 @@ ServerRuntime runtime = ServerRuntime.builder()
     <h4 id="gradle-2"><a class="anchor" href="#gradle-2"></a>4.1.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-cache-invalidation:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-cache-invalidation:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -3784,7 +3793,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-commitlog&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -3793,7 +3802,7 @@ public class MyEntity extends _MyEntity {
     <h4 id="gradle-3"><a class="anchor" href="#gradle-3"></a>4.2.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-commitlog:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-commitlog:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -3864,7 +3873,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-crypto&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -3873,7 +3882,7 @@ public class MyEntity extends _MyEntity {
     <h4 id="gradle-4"><a class="anchor" href="#gradle-4"></a>4.3.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-crypto:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 'org.apache.cayenne:cayenne-crypto:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -3987,7 +3996,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-jcache&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -3996,7 +4005,7 @@ public class MyEntity extends _MyEntity {
     <h4 id="gradle-5"><a class="anchor" href="#gradle-5"></a>4.4.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-jcache:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 'org.apache.cayenne:cayenne-jcache:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -4098,7 +4107,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-project-compatibility&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -4107,7 +4116,7 @@ public class MyEntity extends _MyEntity {
     <h4 id="gradle-6"><a class="anchor" href="#gradle-6"></a>4.5.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-project-compatibility:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-project-compatibility:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -4130,7 +4139,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-velocity&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -4139,7 +4148,7 @@ public class MyEntity extends _MyEntity {
     <h4 id="gradle-7"><a class="anchor" href="#gradle-7"></a>4.6.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-velocity:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-velocity:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -4187,7 +4196,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-web&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -4196,7 +4205,7 @@ public class MyEntity extends _MyEntity {
     <h4 id="gradle-8"><a class="anchor" href="#gradle-8"></a>4.7.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 'org.apache.cayenne:cayenne-web:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 'org.apache.cayenne:cayenne-web:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -4213,7 +4222,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-osgi&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -4222,7 +4231,7 @@ public class MyEntity extends _MyEntity {
     <h4 id="gradle-9"><a class="anchor" href="#gradle-9"></a>4.8.2. 
Gradle</h4> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-osgi:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 'org.apache.cayenne:cayenne-osgi:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -4239,7 +4248,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-rop-server&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 &lt;/dependency&gt;</code></pre> 
      </div> 
     </div> 
@@ -4248,7 +4257,7 @@ public class MyEntity extends _MyEntity {
     <h5 id="gradle-10"><a class="anchor" href="#gradle-10"></a>4.9.2. 
Gradle</h5> 
     <div class="listingblock"> 
      <div class="content"> 
-      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-rop-server:4.2.M1'</code></pre> 
+      <pre class="highlight"><code class="language-Groovy Groovy" 
data-lang="Groovy">compile 
'org.apache.cayenne:cayenne-rop-server:4.2'</code></pre> 
      </div> 
     </div> 
    </div> 
@@ -4425,7 +4434,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-xml xml" 
data-lang="xml">&lt;plugin&gt;
     &lt;groupId&gt;org.apache.cayenne.plugins&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-maven-plugin&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 
     &lt;configuration&gt;
         &lt;map&gt;${project.basedir}/src/main/resources/my.map.xml&lt;/map&gt;
@@ -4682,7 +4691,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-XML XML" 
data-lang="XML">&lt;plugin&gt;
     &lt;groupId&gt;org.apache.cayenne.plugins&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-maven-plugin&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
 
     &lt;executions&gt;
         &lt;execution&gt;
@@ -4852,7 +4861,7 @@ public class MyEntity extends _MyEntity {
       <pre class="highlight"><code class="language-xml xml" 
data-lang="xml">&lt;plugin&gt;
     &lt;groupId&gt;org.apache.cayenne.plugins&lt;/groupId&gt;
     &lt;artifactId&gt;cayenne-maven-plugin&lt;/artifactId&gt;
-    &lt;version&gt;4.2.M1&lt;/version&gt;
+    &lt;version&gt;4.2&lt;/version&gt;
     &lt;executions&gt;
         &lt;execution&gt;
             &lt;configuration&gt;
@@ -4888,7 +4897,7 @@ public class MyEntity extends _MyEntity {
     }
     // add Cayenne Gradle Plugin
     dependencies {
-        classpath group: 'org.apache.cayenne.plugins', name: 
'cayenne-gradle-plugin', version: '4.2.M1'
+        classpath group: 'org.apache.cayenne.plugins', name: 
'cayenne-gradle-plugin', version: '4.2'
     }
 }
 
diff --git a/src/main/site/content/docs/4.2/getting-started-db-first.html 
b/src/main/site/content/docs/4.2/getting-started-db-first.html
index d6cdbc4..c283bfc 100644
--- a/src/main/site/content/docs/4.2/getting-started-db-first.html
+++ b/src/main/site/content/docs/4.2/getting-started-db-first.html
@@ -117,7 +117,7 @@ ALTER TABLE painting ADD FOREIGN KEY (GALLERY_ID) 
REFERENCES gallery (ID) ON DEL
     <div class="listingblock"> 
      <div class="content"> 
       <pre class="highlight"><code class="language-xml xml" 
data-lang="xml">&lt;properties&gt;
-    &lt;cayenne.version&gt;4.2.M1&lt;/cayenne.version&gt;
+    &lt;cayenne.version&gt;4.2&lt;/cayenne.version&gt;
 &lt;/properties&gt;</code></pre> 
      </div> 
     </div> 
diff --git a/src/main/site/content/docs/4.2/getting-started-guide.html 
b/src/main/site/content/docs/4.2/getting-started-guide.html
index 79c40c7..5667403 100644
--- a/src/main/site/content/docs/4.2/getting-started-guide.html
+++ b/src/main/site/content/docs/4.2/getting-started-guide.html
@@ -288,7 +288,7 @@ menu:
     &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
 
     &lt;properties&gt;
-        &lt;cayenne.version&gt;4.2.M1&lt;/cayenne.version&gt; <i class="conum" 
data-value="1"></i><b>(1)</b>
+        &lt;cayenne.version&gt;4.2&lt;/cayenne.version&gt; <i class="conum" 
data-value="1"></i><b>(1)</b>
         &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt; <i 
class="conum" data-value="2"></i><b>(2)</b>
         &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;
     &lt;/properties&gt;
diff --git a/src/main/site/content/docs/4.2/getting-started-rop.html 
b/src/main/site/content/docs/4.2/getting-started-rop.html
index 37f5342..c077110 100644
--- a/src/main/site/content/docs/4.2/getting-started-rop.html
+++ b/src/main/site/content/docs/4.2/getting-started-rop.html
@@ -105,7 +105,7 @@ weight: 40
             &lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
             &lt;artifactId&gt;cayenne-client-jetty&lt;/artifactId&gt;
             &lt;!-- Here specify the version of Cayenne you are actually using 
--&gt;
-            &lt;version&gt;4.2.M1&lt;/version&gt;
+            &lt;version&gt;4.2&lt;/version&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
         &lt;groupId&gt;com.caucho&lt;/groupId&gt;

Reply via email to