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/11 11:07:51 UTC

cayenne git commit: Improve cayenne-guide (4.1) navigation to match old version

Repository: cayenne
Updated Branches:
  refs/heads/master fcdb1643e -> 8b33a3eb3


Improve cayenne-guide (4.1) navigation to match old version


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

Branch: refs/heads/master
Commit: 8b33a3eb3d8a40440475bc1dc0dc2c18fdaab179
Parents: fcdb164
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Jan 11 14:07:21 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Thu Jan 11 14:07:21 2018 +0300

----------------------------------------------------------------------
 .../cayenne/query/ObjectSelect_RunIT.java       | 30 ++++++++++++++++++++
 .../asciidoc/_cayenne-guide/expressionsBNF.adoc |  2 +-
 .../asciidoc/_cayenne-guide/part1/modeler.adoc  |  4 +--
 .../asciidoc/_cayenne-guide/part1/setup.adoc    |  2 +-
 .../_cayenne-guide/part2/customize.adoc         |  1 -
 .../_cayenne-guide/part2/expressions.adoc       |  2 +-
 .../_cayenne-guide/part2/including.adoc         | 12 ++++----
 .../_cayenne-guide/part2/objectContext.adoc     |  1 +
 .../asciidoc/_cayenne-guide/part2/queries.adoc  |  2 +-
 .../asciidoc/_cayenne-guide/part2/starting.adoc |  2 +-
 .../asciidoc/_cayenne-guide/part2/tuning.adoc   |  4 +--
 .../docs/asciidoc/_cayenne-guide/part3/rop.adoc |  2 +-
 .../_cayenne-guide/part4/filtering.adoc         |  1 +
 .../_cayenne-guide/part4/introduction.adoc      |  3 +-
 .../_cayenne-guide/part4/otherSettings.adoc     |  1 +
 .../_cayenne-guide/part4/revEngineering.adoc    |  6 ++--
 .../_cayenne-guide/part5/apacheVelocity.adoc    |  2 +-
 .../_cayenne-guide/part5/cacheInvalidation.adoc |  2 +-
 .../_cayenne-guide/part5/commitLog.adoc         |  1 +
 .../asciidoc/_cayenne-guide/part5/crypto.adoc   |  1 +
 .../asciidoc/_cayenne-guide/part5/jCache.adoc   |  3 +-
 .../asciidoc/_cayenne-guide/part5/jodaTime.adoc |  1 +
 .../part5/projectCompatibility.adoc             |  1 +
 23 files changed, 61 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
index f1d4ba5..e5a8c39 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
@@ -28,10 +28,12 @@ import java.util.List;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.DataRow;
+import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ResultBatchIterator;
 import org.apache.cayenne.ResultIterator;
 import org.apache.cayenne.ResultIteratorCallback;
 import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.FunctionExpressionFactory;
@@ -39,6 +41,7 @@ import org.apache.cayenne.exp.Property;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -52,6 +55,9 @@ public class ObjectSelect_RunIT extends ServerCase {
 	private DataContext context;
 
 	@Inject
+	ServerRuntime runtime;
+
+	@Inject
 	private DBHelper dbHelper;
 
 	@Before
@@ -129,6 +135,30 @@ public class ObjectSelect_RunIT extends ServerCase {
 	}
 
 	@Test
+	public void testBatchIteratorWithNullExpression() throws Exception {
+
+		ObjectContext insertContext = runtime.newContext();
+
+		List<Ordering> orderings = Artist.ARTIST_NAME.ascInsensitives();
+		try (ResultBatchIterator<Artist> it = ObjectSelect.query(Artist.class, null, orderings).batchIterator(context, 5);) {
+			int count = 0;
+
+			for (List<Artist> artistList : it) {
+				count++;
+				for(Artist artist : artistList) {
+					Painting painting = insertContext.newObject(Painting.class);
+					painting.setPaintingTitle("painting " + count);
+					painting.setPaintingDescription("artist " + artist.getArtistName());
+				}
+				assertEquals(5, artistList.size());
+				insertContext.commitChanges();
+			}
+
+			assertEquals(4, count);
+		}
+	}
+
+	@Test
 	public void test_SelectDataRows() throws Exception {
 		List<DataRow> result = ObjectSelect.dataRowQuery(Artist.class).select(context);
 		assertEquals(20, result.size());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/expressionsBNF.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/expressionsBNF.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/expressionsBNF.adoc
index b6e2916..1c4f2ac 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/expressionsBNF.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/expressionsBNF.adoc
@@ -12,7 +12,7 @@
 // the specific language governing permissions and limitations under the
 // License.
 
-[#appendixC]
+[[appendixC]]
 == Appendix C. Expressions BNF
 
 [source]

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
index 56cf7f1..decd253 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
@@ -18,7 +18,7 @@
 
 ==== Reverse Engineering Database
 
-See chapter  xref:reverse[Reverse Engineering in Cayenne Modeler]
+See chapter <<Reverse Engineering in Cayenne Modeler>>
 
 ==== Generating Database Schema
 
@@ -30,7 +30,7 @@ You can select what database parts should be generated and what tables you want
 
 ==== Generating Java Classes
 
-Before using Cayenne in you code you need to generate java source code for persistent objects. This can be done with Modeler GUI or via xref:cgen[cgen] maven/ant plugin.
+Before using Cayenne in you code you need to generate java source code for persistent objects. This can be done with Modeler GUI or via <<cgen>> maven/ant plugin.
 
 To generate classes in the modeler use *Tools > Generate Classes*
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/setup.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/setup.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/setup.adoc
index 4086c3d..b0a944a 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/setup.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/setup.adoc
@@ -54,7 +54,7 @@ include::../var.adoc[]
 
 - JDBC Driver: An appropriate DB-specific JDBC driver is needed to access the database. It can be included in the application or used in web container DataSource configuration.
 
-- Third-party Libraries: Cayenne runtime framework has a minimal set of required and a few more optional dependencies on third-party open source packages. See xref:include["Including Cayenne in a Project"]. chapter for details.
+- Third-party Libraries: Cayenne runtime framework has a minimal set of required and a few more optional dependencies on third-party open source packages. See <<Including Cayenne in a Project>> chapter for details.
 
 [[runModeler]]
 ==== Running CayenneModeler

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/customize.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/customize.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/customize.adoc
index 1b2001d..1ef29e7 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/customize.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/customize.adoc
@@ -12,7 +12,6 @@
 // the specific language governing permissions and limitations under the
 // License.
 
-[[customize]]
 === Customizing Cayenne Runtime
 
 ==== Dependency Injection Container

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/expressions.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/expressions.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/expressions.adoc
index 8e443d8..4098b7a 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/expressions.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/expressions.adoc
@@ -11,7 +11,7 @@
 // CONDITIONS OF ANY KIND, either express or implied. See the License for
 // the specific language governing permissions and limitations under the
 // License.
-[[expressions]]
+
 === Expressions
 
 ==== Expressions Overview

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/including.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/including.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/including.adoc
index 4227b85..94e48eb 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/including.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/including.adoc
@@ -14,7 +14,7 @@
 
 include::../var.adoc[]
 
-[[include]]
+[[including-cayenne-in-project]]
 === Including Cayenne in a Project
 
 ==== Jar Files
@@ -25,7 +25,7 @@ This is an overview of Cayenne jars that is agnostic of the build tool used. The
 
 - `cayenne-server-{version}.jar` - contains main Cayenne runtime (adapters, DB access classes, etc.). Most applications will require this file.
 
-- `cayenne-client-{version}.jar` - a client-side runtime for xref:rop[ROP applications].
+- `cayenne-client-{version}.jar` - a client-side runtime for <<introduction-to-rop, ROP applications>>
 
 - Other cayenne-* jars - various Cayenne tools extensions.
 
@@ -280,7 +280,7 @@ Example - creating a DB schema on a local HSQLDB database:
 [[mavenCdbimort]]
 ===== cdbimport
 
-`cdbimport` is a `cayenne-maven-plugin` goal that generates a DataMap based on an existing database schema. By default, it is bound to the generate-sources phase. This allows you to generate your DataMap prior to building your project, possibly followed by "cgen" execution to generate the classes. CDBImport plugin described in details in chapter xref:dbFirstFlow["DB-First Flow"]
+`cdbimport` is a `cayenne-maven-plugin` goal that generates a DataMap based on an existing database schema. By default, it is bound to the generate-sources phase. This allows you to generate your DataMap prior to building your project, possibly followed by "cgen" execution to generate the classes. CDBImport plugin described in details in chapter <<DB-First Flow>>
 [#cdbimportTable.table.table-bordered]
 .cdbimport parameters
 [cols="2,1,2,5"]
@@ -305,7 +305,7 @@ Example - creating a DB schema on a local HSQLDB database:
 .^|dbimport
 .^|XML
 .^|No
-.^|An object that contains detailed reverse engineering rules about what DB objects should be processed. For full information about this parameter see xref:dbFirstFlow["DB-First Flow"] chapter.
+.^|An object that contains detailed reverse engineering rules about what DB objects should be processed. For full information about this parameter see <<DB-First Flow>> chapter.
 |===
 
 [#cdbimportDataSource.table.table-bordered]
@@ -357,7 +357,7 @@ Example - creating a DB schema on a local HSQLDB database:
 .^|String
 .^|A comma-separated list of Perl5 patterns that defines which imported tables should have their primary key columns mapped as ObjAttributes. "*" would indicate all tables.
 
-.^|namingStrategy
+.^|[[namingStrategy]]namingStrategy
 .^|String
 .^|The naming strategy used for mapping database names to object entity names. Default is `o.a.c.dbsync.naming.DefaultObjectNameGenerator`.
 
@@ -394,7 +394,7 @@ a|Regex that matches the part of the table name that needs to be stripped off wh
 
 .^|filters configuration
 .^|XML
-a|Detailed reverse engineering rules about what DB objects should be processed. For full information about this parameter see  xref:dbFirstFlow["DB-First Flow"] chapter. Here is some simple example:
+a|Detailed reverse engineering rules about what DB objects should be processed. For full information about this parameter see <<DB-First Flow>> chapter. Here is some simple example:
 [source,XML]
 ----
 <dbimport>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/objectContext.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/objectContext.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/objectContext.adoc
index 129b36b..115cb20 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/objectContext.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/objectContext.adoc
@@ -12,6 +12,7 @@
 // the specific language governing permissions and limitations under the
 // License.
 
+[[persistent-objects-objectcontext]]
 === Persistent Objects and ObjectContext
 
 ==== ObjectContext

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/queries.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/queries.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/queries.adoc
index c227e27..7a63595 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/queries.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/queries.adoc
@@ -665,7 +665,7 @@ Full example:
 SELECT #result('ID' 'int'), #result('NAME' 'String'), #result('DATE_OF_BIRTH' 'java.util.Date') FROM ARTIST
 ----
 
-NOTE: For advanced features you may look at the xref:velocity[Apache Velocity extension]
+NOTE: For advanced features you may look at the <<Apache Velocity extension>>
 
 ====== Mapping SQLTemplate Results
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/starting.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/starting.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/starting.adoc
index 66427e4..da2c514 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/starting.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/starting.adoc
@@ -27,7 +27,7 @@ ServerRuntime runtime = ServerRuntime.builder()
 
 The parameter you pass to the builder is a location of the main project file. Location is a '/'-separated path (same path separator is used on UNIX and Windows) that is resolved relative to the application classpath. The project file can be placed in the root package or in a subpackage (e.g. in the code above it is in "com/example" subpackage).
 
-ServerRuntime encapsulates a single Cayenne stack. Most applications will just have one ServerRuntime using it to create as many ObjectContexts as needed, access the Dependency Injection (DI) container and work with other Cayenne features. Internally ServerRuntime is just a thin wrapper around the DI container. Detailed features of the container are discussed in xref:customize["Customizing Cayenne Runtime"] chapter. Here we'll just show an example of how an application might turn on external transactions:
+ServerRuntime encapsulates a single Cayenne stack. Most applications will just have one ServerRuntime using it to create as many ObjectContexts as needed, access the Dependency Injection (DI) container and work with other Cayenne features. Internally ServerRuntime is just a thin wrapper around the DI container. Detailed features of the container are discussed in <<Customizing Cayenne Runtime>> chapter. Here we'll just show an example of how an application might turn on external transactions:
 
 [source, java]
 ----

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/tuning.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/tuning.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/tuning.adoc
index e2485de..5c1961e 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/tuning.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part2/tuning.adoc
@@ -112,7 +112,7 @@ and more data processing that needs to be done on the Cayenne side.
 
 ===== Similar Behaviours Using EJBQL
 
-It is possible to achieve similar behaviours with xref:ejbql[EJBQLQuery] queries by employing the "FETCH" keyword.
+It is possible to achieve similar behaviours with <<EJBQLQuery>> queries by employing the "FETCH" keyword.
 
 [source, SQL]
 ----
@@ -164,7 +164,7 @@ for(DataRow row : rows) {
 
 ==== Specific Attributes and Relationships with EJBQL
 
-It is possible to fetch specific attributes and relationships from a model using xref:ejbqlquery[EJBQLQuery].
+It is possible to fetch specific attributes and relationships from a model using <<EJBQLQuery>>.
 The following example would return a java.util.List of String objects;
 
 [source, SQL]

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part3/rop.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part3/rop.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part3/rop.adoc
index f69f98a..a9932a8 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part3/rop.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part3/rop.adoc
@@ -12,7 +12,7 @@
 // the specific language governing permissions and limitations under the
 // License.
 
-[[rop]]
+[[introduction-to-rop]]
 === Introduction to ROP
 
 ==== What is ROP

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/filtering.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/filtering.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/filtering.adoc
index 7ca6eab..58a2a16 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/filtering.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/filtering.adoc
@@ -12,6 +12,7 @@
 // the specific language governing permissions and limitations under the
 // License.
 
+[[re-filtering]]
 === Filtering
 
 The first thing you usually want to control during reverse engineering is what exactly should be loaded from database and what not. One of the most common cases is excluding system tables, as you usually don't want to map them.

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/introduction.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/introduction.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/introduction.adoc
index 9fbd3a2..262f562 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/introduction.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/introduction.adoc
@@ -14,10 +14,9 @@
 
 include::../var.adoc[]
 
-[[dbFirstFlow]]
+[[re-introduction]]
 === Introduction
 
-[[cImp]]
 ==== "DB-first" Flow
 
 An ORM system consists of three parts: database, OR mapping and persistent Java classes. These parts always need to be kept in sync with each other for the application to work. "DB-first" flow is a common and practical approach to synchronization that assumes the database to be the master source of the metadata, with other two parts synchronized from the DB as the schema evolves. Cayenne provides a number of tools to automate and control it. Here is how "DB-first" flow is typically implemented:

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/otherSettings.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/otherSettings.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/otherSettings.adoc
index 2315ba3..c22de49 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/otherSettings.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/otherSettings.adoc
@@ -12,6 +12,7 @@
 // the specific language governing permissions and limitations under the
 // License.
 
+[[re-relationships-loading-control]]
 === Other Settings
 
 In databases relations are defined via foreign keys and there are a lot of different politics according to the level of relationships and ways how those relationships could be modeled in database. Anyway, cdbimport is able to recognize basic patterns of relationships, such as OneToMany, OneToOne and ManyToMany.

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/revEngineering.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/revEngineering.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/revEngineering.adoc
index 0dafaac..cdd71a7 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/revEngineering.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part4/revEngineering.adoc
@@ -12,10 +12,10 @@
 // the specific language governing permissions and limitations under the
 // License.
 
-[[reverse]]
+[[re-modeler]]
 === Reverse Engineering in Cayenne Modeler
 
-Alternative aproach to using xref:cImp[cdbimport] is doing reverse engineering from xref:runModeler[Cayenne Modeler]. Currently modeler GUI doesn't support all features of ant/maven tasks but it suffice for general DB import. Especially it's a good place to quickly start working on your data model.
+Alternative aproach to using <<cdbimport>> is doing reverse engineering from <<CayenneModeler Application, CayenneModeler>>. Currently modeler GUI doesn't support all features of ant/maven tasks but it suffice for general DB import. Especially it's a good place to quickly start working on your data model.
 
 You can find reverse engineering tool in main modeler menu *Tools > Reengineer Database Schema*
 
@@ -45,7 +45,7 @@ NOTE: You can only select one catalog. If you need to import multiple catalogs y
 
 - *Procedure Name Pattern*: RegExp to filter procedures. Default pattern .* includes all stored procedures.
 
-- *Naming Strategy*: Currently there is only one naming strategy available. See ant/maven tools xref:reverse[documentation] for details about naming strategy.
+- *Naming Strategy*: Currently there is only one naming strategy available. See ant/maven tools <<namingStrategy, documentation>> for details about naming strategy.
 
 - *Tables with Meaningful PK Pattern*: Comma separated list of RegExp's for tables that you want to have meaningful primary keys. By default no meaningful PKs are created.
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/apacheVelocity.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/apacheVelocity.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/apacheVelocity.adoc
index f69d933..bba21e3 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/apacheVelocity.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/apacheVelocity.adoc
@@ -14,7 +14,7 @@
 
 include::../var.adoc[]
 
-[[velocity]]
+[[ext-velocity]]
 === Apache Velocity extension
 
 ==== Description

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/cacheInvalidation.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/cacheInvalidation.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/cacheInvalidation.adoc
index 865a91b..f79ec45 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/cacheInvalidation.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/cacheInvalidation.adoc
@@ -14,7 +14,7 @@
 
 include::../var.adoc[]
 
-[[cacheInvalidation]]
+[[ext-cache-invalidation]]
 === Cache invalidation extension
 
 ==== Description

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/commitLog.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/commitLog.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/commitLog.adoc
index e70d8de..e08b9ea 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/commitLog.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/commitLog.adoc
@@ -14,6 +14,7 @@
 
 include::../var.adoc[]
 
+[[ext-commit-log]]
 === Commit log extension
 
 ==== Description

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/crypto.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/crypto.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/crypto.adoc
index a0d5d98..e5a97bb 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/crypto.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/crypto.adoc
@@ -14,6 +14,7 @@
 
 include::../var.adoc[]
 
+[[ext-crypto]]
 === Crypto extension
 
 ==== Description

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jCache.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jCache.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jCache.adoc
index a45e104..993b418 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jCache.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jCache.adoc
@@ -14,6 +14,7 @@
 
 include::../var.adoc[]
 
+[[ext-jcache]]
 === JCache integration
 
 ==== Description
@@ -48,4 +49,4 @@ For advanced configuration and management please use provider specific options a
 
 NOTE: You can read about using cache in Cayenne in xref:caching[this] chapter.
 
-You may else be interested in xref:cacheInvalidation[cache invalidation] extension.
\ No newline at end of file
+You may else be interested in <<Cache invalidation extension>>.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jodaTime.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jodaTime.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jodaTime.adoc
index d32c638..f217887 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jodaTime.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/jodaTime.adoc
@@ -14,6 +14,7 @@
 
 include::../var.adoc[]
 
+[[ext-joda]]
 === Joda time extension
 
 ==== Description

http://git-wip-us.apache.org/repos/asf/cayenne/blob/8b33a3eb/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/projectCompatibility.adoc
----------------------------------------------------------------------
diff --git a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/projectCompatibility.adoc b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/projectCompatibility.adoc
index ecafee5..f6c933d 100644
--- a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/projectCompatibility.adoc
+++ b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part5/projectCompatibility.adoc
@@ -14,6 +14,7 @@
 
 include::../var.adoc[]
 
+[[ext-project-compatibility]]
 === Project compatibility extension
 
 ==== Description