You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by sk...@apache.org on 2016/12/14 12:29:34 UTC

[2/4] cayenne git commit: New version of Getting Started with Cayenne guide. Tutorial now based on IDEA instead of Eclipse. Second iteration

New version of Getting Started with Cayenne guide.
Tutorial now based on IDEA instead of Eclipse.
Second iteration


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

Branch: refs/heads/master
Commit: 2c2516c93252dbd59366842e9d548c924daf3361
Parents: 55e585e
Author: stariy <st...@gmail.com>
Authored: Tue Dec 6 22:19:39 2016 +0300
Committer: stariy <st...@gmail.com>
Committed: Tue Dec 6 22:19:39 2016 +0300

----------------------------------------------------------------------
 .../resources/stylesheets/html-no-parts.xsl     |   2 +-
 .../getting-started/src/docbkx/java-classes.xml |  10 ++--
 .../src/docbkx/object-context.xml               |   8 +--
 .../src/docbkx/object-relational-mapping.xml    |  50 ++++++++++++-------
 .../src/docbkx/persistent-objects.xml           |  22 ++++----
 .../getting-started/src/docbkx/select-query.xml |   8 +--
 .../src/docbkx/starting-project.xml             |  30 +++++++----
 .../getting-started/src/docbkx/webapp.xml       |  20 ++++----
 .../src/images/icon-attribute.gif               | Bin 0 -> 1171 bytes
 .../getting-started/src/images/icon-datamap.gif | Bin 0 -> 755 bytes
 .../src/images/icon-dbentity.gif                | Bin 0 -> 1171 bytes
 .../getting-started/src/images/icon-node.gif    | Bin 0 -> 331 bytes
 .../src/images/icon-objentity.gif               | Bin 0 -> 755 bytes
 .../getting-started/src/images/icon-sync.gif    | Bin 0 -> 331 bytes
 14 files changed, 87 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/docbook-stylesheets/src/main/resources/stylesheets/html-no-parts.xsl
----------------------------------------------------------------------
diff --git a/docs/docbook/docbook-stylesheets/src/main/resources/stylesheets/html-no-parts.xsl b/docs/docbook/docbook-stylesheets/src/main/resources/stylesheets/html-no-parts.xsl
index 108b531..0659004 100644
--- a/docs/docbook/docbook-stylesheets/src/main/resources/stylesheets/html-no-parts.xsl
+++ b/docs/docbook/docbook-stylesheets/src/main/resources/stylesheets/html-no-parts.xsl
@@ -21,5 +21,5 @@
                 version="1.0" xmlns:d="http://docbook.org/ns/docbook">
 
     <xsl:include href="html.xsl"/>
-    <xsl:param name="generate.section.toc.level">2</xsl:param>
+    <!--xsl:param name="generate.section.toc.level">2</xsl:param-->
 </xsl:stylesheet>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/docbkx/java-classes.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/docbkx/java-classes.xml b/docs/docbook/getting-started/src/docbkx/java-classes.xml
index 22c9a45..6d4bc37 100644
--- a/docs/docbook/getting-started/src/docbkx/java-classes.xml
+++ b/docs/docbook/getting-started/src/docbkx/java-classes.xml
@@ -20,7 +20,7 @@
     <title>Creating Java Classes</title>
     <para>Here we'll generate the Java classes from the model that was created in the previous
         section. CayenneModeler can be used to also generate the database schema, but since we
-        specified "CreateIfNoSchemaStrategy" earlier when we created a DataNode, we'll skip the
+        specified "<code>CreateIfNoSchemaStrategy</code>" earlier when we created a DataNode, we'll skip the
         database schema step. Still be aware that you can do it if you need to via "Tools &gt;
         Create Database Schema".
     </para>
@@ -35,8 +35,8 @@
                     selected.</para>
             </listitem>
             <listitem>
-                <para>For the "Output Directory" select "src/main/java" folder under your Eclipse
-                    project folder (this is a "peer" location to the cayenne-*.xml location we
+                <para>For the "Output Directory" select "<code>src/main/java</code>" folder under your IDEA
+                    project folder (this is a "peer" location to the <code>cayenne-*.xml</code> location we
                     selected before).</para>
             </listitem>
             <listitem>
@@ -51,7 +51,7 @@
             should see pairs of classes generated for each mapped entity. You probably also see that
             there's a bunch of red squiggles next to the newly generated Java classes in IDEA.
             This is because our project does not include Cayenne as a Maven dependency yet. Let's
-            fix it now by adding "cayenne-server" artifact in the bottom of the pom.xml file. The
+            fix it now by adding "cayenne-server" artifact in the bottom of the <code>pom.xml</code> file. The
             resulting POM should look like
             this:<programlisting language="xml">&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
@@ -81,7 +81,7 @@
             and a subclass (e.g. Artist). You <emphasis role="bold">should not</emphasis> modify the
             superclasses whose names start with "_" (underscore), as they will be replaced on
             subsequent generator runs. Instead all custom logic should be placed in the subclasses
-            in "org.example.cayenne.persistent" package - those will never be overwritten by the
+            in "<code>org.example.cayenne.persistent</code>" package - those will never be overwritten by the
             class generator.</para>
         <para>
             <note>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/docbkx/object-context.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/docbkx/object-context.xml b/docs/docbook/getting-started/src/docbkx/object-context.xml
index 74d6e30..912db2f 100644
--- a/docs/docbook/getting-started/src/docbkx/object-context.xml
+++ b/docs/docbook/getting-started/src/docbkx/object-context.xml
@@ -24,7 +24,7 @@
         <title>Creating the Main Class</title>
         <itemizedlist>
             <listitem>
-                <para>In IDEA create a new class called "Main" in the "org.example.cayenne"
+                <para>In IDEA create a new class called "Main" in the "<code>org.example.cayenne</code>"
                     package.</para>
             </listitem>
             <listitem>
@@ -40,9 +40,9 @@ public class Main {
             </listitem>
             <listitem>
                 <para>The first thing you need to be able to access the database is to create a
-                    ServerRuntime object (which is essentially a wrapper around Cayenne stack) and
+                    <code>ServerRuntime</code> object (which is essentially a wrapper around Cayenne stack) and
                     use it to obtain an instance of an
-                    ObjectContext.<programlisting language="java">package org.example.cayenne;
+                    <code>ObjectContext</code>.<programlisting language="java">package org.example.cayenne;
 
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.configuration.server.ServerRuntime;
@@ -67,7 +67,7 @@ public class Main {
     <section xml:id="runnning-app">
         <title>Running Application</title>
         <para>Let's check what happens when you run the application. But before we do that we need
-            to add another dependency to the pom.xml - Apache Derby, our embedded database engine.
+            to add another dependency to the <code>pom.xml</code> - Apache Derby, our embedded database engine.
             The following piece of XML needs to be added to the
             <code>&lt;dependencies&gt;...&lt;/dependencies&gt;</code> section, where we already have Cayenne
             jars:<programlisting language="xml">&lt;dependency&gt;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/docbkx/object-relational-mapping.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/docbkx/object-relational-mapping.xml b/docs/docbook/getting-started/src/docbkx/object-relational-mapping.xml
index 5144592..96e6b60 100644
--- a/docs/docbook/getting-started/src/docbkx/object-relational-mapping.xml
+++ b/docs/docbook/getting-started/src/docbkx/object-relational-mapping.xml
@@ -37,28 +37,36 @@
     <section xml:id="mapping-db-tables-and-columns">
         <title>Mapping Database Tables and Columns</title>
         <para>Lets go back to CayenneModeler where we have the newly created project open and start
-            by adding the ARTIST table. Database tables are called <emphasis role="bold"
-                >"DbEntities"</emphasis> in Cayenne mapping (those can be actual tables or database
-            views). </para>
-        <para>Select "datamap" on the left-hand side project tree and click "Create DbEntity" button
+            by adding the ARTIST table. Database tables are called <emphasis role="bold">"DbEntities"</emphasis>
+            in Cayenne mapping (those can be actual tables or database views).
+        </para>
+        <para>Select "datamap" on the left-hand side project tree and click "Create DbEntity" button <inlinemediaobject>
+            <imageobject>
+                <imagedata fileref="images/icon-dbentity.gif" scalefit="0" valign="bottom" width="100%"/>
+            </imageobject>
+        </inlinemediaobject>
             (or use "Project &gt; Create DbEntity" menu). A new DbEntity is created. In "DbEntity
-            Name" field enter "ARTIST". Then click on "Create Attribute" button on the entity
+            Name" field enter "ARTIST". Then click on "Create Attribute" button <inlinemediaobject>
+                <imageobject>
+                    <imagedata fileref="images/icon-attribute.gif" scalefit="0" valign="bottom" width="100%"/>
+                </imageobject>
+            </inlinemediaobject> on the entity
             toolbar (third button from the left). This action changes the view to the "Attribute"
             tab and adds a new attribute (attribute means a "table column" in this case) called
-            "untitledAttr". Let's rename it to ID, make it an INTEGER and make it a PK:</para>
+            "untitledAttr". Let's rename it to ID, make it an <code>INTEGER</code> and make it a PK:
+        </para>
         <para><inlinemediaobject>
                 <imageobject>
                     <imagedata fileref="images/modeler-artistid.png" scalefit="1" width="100%"/>
                 </imageobject>
             </inlinemediaobject></para>
-        <para>Similarly add NAME VARCHAR(200) and DATE_OF_BIRTH DATE attributes. After that repeat
+        <para>Similarly add NAME <code>VARCHAR(200)</code> and DATE_OF_BIRTH <code>DATE</code> attributes. After that repeat
             this procedure for PAINTING and GALLERY entities to match DB schema shown above.</para>
         <para>
             <note>
-                <para>Don't forget to save your project periodically to
-                    avoid losing your work. You will also have to refresh the project in Eclipse
-                    after every CayenneModeler save, as Eclipse is by default unaware of any
-                    changes made in the Modeler.</para>
+                <para>
+                    Don't forget to save your project periodically to avoid losing your work.
+                </para>
             </note>
         </para>
     </section>
@@ -74,7 +82,7 @@
             <listitem>
                 <para>Click on "Create Relationship" button on the entity toolbar <inlinemediaobject>
                     <imageobject>
-                        <imagedata fileref="images/icon-relationship.png" scalefit="1" width="100%"/>
+                        <imagedata fileref="images/icon-relationship.png" scalefit="0" valign="bottom" width="100%"/>
                     </imageobject>
                 </inlinemediaobject> - a relationship called "untitledRel" is created.</para>
             </listitem>
@@ -84,7 +92,7 @@
             <listitem>
                 <para>Click on the "Database Mapping" button <inlinemediaobject>
                     <imageobject>
-                        <imagedata fileref="images/icon-info.png" scalefit="1" width="100%"/>
+                        <imagedata fileref="images/icon-info.png" scalefit="0" valign="bottom" width="100%"/>
                     </imageobject>
                 </inlinemediaobject> - relationship
                     configuration dialog is presented. Here you can assign a name to the
@@ -136,8 +144,11 @@
             table individually.</para>
         <itemizedlist>
             <listitem>
-                <para>Select "ARTIST" DbEntity and click on "Create ObjEntity" button (a green class
-                    icon) either on the entity toolbar or on the main toolbar. An ObjEntity called
+                <para>Select "ARTIST" DbEntity and click on "Create ObjEntity" button <inlinemediaobject>
+                    <imageobject>
+                        <imagedata fileref="images/icon-objentity.gif" scalefit="0" valign="bottom" width="100%"/>
+                    </imageobject>
+                </inlinemediaobject> either on the entity toolbar or on the main toolbar. An ObjEntity called
                     "Artist" is created with a Java class field set to
                     "org.example.cayenne.persistent.Artist". The modeler transformed the database
                     names to the Java-friendly names (e.g., if you click on the "Attributes" tab,
@@ -155,9 +166,12 @@
         <para>Now you need to synchronize relationships. Artist and Gallery entities were created
             when there was no related "Painting" entity, so their relationships were not set. <itemizedlist>
                 <listitem>
-                    <para>Click on the "Artist" ObjEntity and (optinally) change to the
-                        "Relationships" tab. Now click on "Sync ObjEntity with DbEntity" button on
-                        the toolbar (two yellow arrows) - you will see the "paintings" relationship
+                    <para>Click on the "Artist" ObjEntity. Now click on "Sync ObjEntity with DbEntity" button on
+                        the toolbar <inlinemediaobject>
+                            <imageobject>
+                                <imagedata fileref="images/icon-sync.gif" scalefit="0" valign="bottom" width="100%"/>
+                            </imageobject>
+                        </inlinemediaobject> - you will see the "paintings" relationship
                         appear.</para>
                 </listitem>
                 <listitem>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/docbkx/persistent-objects.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/docbkx/persistent-objects.xml b/docs/docbook/getting-started/src/docbkx/persistent-objects.xml
index 1ae1b2f..2114835 100644
--- a/docs/docbook/getting-started/src/docbkx/persistent-objects.xml
+++ b/docs/docbook/getting-started/src/docbkx/persistent-objects.xml
@@ -24,10 +24,10 @@
         <title>Inspecting and Customizing Persistent Objects</title>
         <para>Persistent classes in Cayenne implement a DataObject interface. If you inspect any of
             the classes generated earlier in this tutorial (e.g.
-            org.example.cayenne.persistent.Artist), you'll see that it extends a class with the name
-            that starts with underscore (org.example.cayenne.persistent.auto._Artist), which in turn
-            extends from org.apache.cayenne.CayenneDataObject. Splitting each persistent class into
-            user-customizable subclass (Xyz) and a generated superclass (_Xyz) is a useful technique
+            <code>org.example.cayenne.persistent.Artist</code>), you'll see that it extends a class with the name
+            that starts with underscore (<code>org.example.cayenne.persistent.auto._Artist</code>), which in turn
+            extends from <code>org.apache.cayenne.CayenneDataObject</code>. Splitting each persistent class into
+            user-customizable subclass (<code>Xyz</code>) and a generated superclass (<code>_Xyz</code>) is a useful technique
             to avoid overwriting the custom code when refreshing classes from the mapping
             model.</para>
         <para>Let's for instance add a utility method to the Artist class that sets Artist date of
@@ -71,15 +71,15 @@ public class Artist extends _Artist {
     <section xml:id="create-new-objects">
         <title>Create New Objects</title>
         <para>Now we'll create a bunch of objects and save them to the database. An object is
-            created and registered with ObjectContext using "newObject" method. Objects <emphasis
-                role="bold">must</emphasis> be registered with DataContext to be persisted and to
+            created and registered with <code>ObjectContext</code> using "<code>newObject</code>" method. Objects <emphasis
+                role="bold">must</emphasis> be registered with <code>DataContext</code> to be persisted and to
             allow setting relationships with other objects. Add this code to the "main" method of
             the Main class:</para>
         <programlisting language="java">Artist picasso = context.newObject(Artist.class);
 picasso.setName("Pablo Picasso");
 picasso.setDateOfBirthString("18811025");</programlisting>
         <para>Note that at this point "picasso" object is only stored in memory and is not saved in
-            the database. Let's continue by adding a Metropolitan Museum "Gallery" object and a few
+            the database. Let's continue by adding a Metropolitan Museum "<code>Gallery</code>" object and a few
             Picasso "Paintings":</para>
         <programlisting language="java">Gallery metropolitan = context.newObject(Gallery.class);
 metropolitan.setName("Metropolitan Museum of Art"); 
@@ -90,9 +90,9 @@ girl.setName("Girl Reading at a Table");
 Painting stein = context.newObject(Painting.class);
 stein.setName("Gertrude Stein");</programlisting>
         <para>Now we can link the objects together, establishing relationships. Note that in each
-            case below relationships are automatically estabslished in both directions (e.g.
-            picasso.addToPaintings(girl) has exactly the same effect as
-            girl.setToArtist(picasso)).</para>
+            case below relationships are automatically established in both directions (e.g.
+            <code>picasso.addToPaintings(girl)</code> has exactly the same effect as
+            <code>girl.setToArtist(picasso)</code>).</para>
         <programlisting language="java">picasso.addToPaintings(girl);
 picasso.addToPaintings(stein);
         
@@ -140,7 +140,7 @@ INFO: === updated 2 rows.
 INFO: +++ transaction committed.
 </screen>
         <para>So first Cayenne creates the needed tables (remember, we used
-            "CreateIfNoSchemaStrategy"). Then it runs a number of inserts, generating primary keys
+            "<code>CreateIfNoSchemaStrategy</code>"). Then it runs a number of inserts, generating primary keys
             on the fly. Not bad for just a few lines of code.</para>
     </section>
 </section>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/docbkx/select-query.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/docbkx/select-query.xml b/docs/docbook/getting-started/src/docbkx/select-query.xml
index db96ead..e97fed3 100644
--- a/docs/docbook/getting-started/src/docbkx/select-query.xml
+++ b/docs/docbook/getting-started/src/docbkx/select-query.xml
@@ -18,12 +18,12 @@
 <section xmlns="http://docbook.org/ns/docbook"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
     <title>Selecting Objects</title>
-    <para>This chapter shows how to select objects from the database using ObjectSelect query. </para>
+    <para>This chapter shows how to select objects from the database using <code>ObjectSelect</code> query. </para>
     <section xml:id="introducing-select-query">
         <title>Introducing ObjectSelect</title>
         <para>It was shown before how to persist new objects. Cayenne queries are used to access
-            already saved objects. The primary query type used for selecting objects is <emphasis
-                role="italic">ObjectSelect</emphasis>. It can be mapped in CayenneModeler or created
+            already saved objects. The primary query type used for selecting objects is <code>ObjectSelect</code>.
+            It can be mapped in CayenneModeler or created
             via the API. We'll use the latter approach in this section. We don't have too much data
             in the database yet, but we can still demonstrate the main principles below.</para>
         <itemizedlist>
@@ -36,7 +36,7 @@
 INFO: === returned 2 rows. - took 18 ms.</screen>
         <itemizedlist>
             <listitem>
-                <para>Select paintings that start with "gi", ignoring case:</para>
+                <para>Select paintings that start with "<code>gi</code>", ignoring case:</para>
             </listitem>
         </itemizedlist>
         <programlisting language="java">List&lt;Painting> paintings2 = ObjectSelect.query(Painting.class)

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/docbkx/starting-project.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/docbkx/starting-project.xml b/docs/docbook/getting-started/src/docbkx/starting-project.xml
index 65f1aa7..5db363f 100644
--- a/docs/docbook/getting-started/src/docbkx/starting-project.xml
+++ b/docs/docbook/getting-started/src/docbkx/starting-project.xml
@@ -22,7 +22,7 @@
         The goal of this chapter is to create a new Java project in IntelliJ IDEA
         containing a basic Cayenne mapping. It presents an introduction to 
         CayenneModeler GUI tool, showing how to create the initial mapping 
-        objects: DataDomain, DataNode, DataMap.
+        objects: <code>DataDomain</code>, <code>DataNode</code>, <code>DataMap</code>.
     </para>
     <section xml:id="create-new-project">
         <title>Create a new Project in IntelliJ IDEA</title>
@@ -76,8 +76,8 @@
         <para>Click on the "New Project" button on Welcome screen. A new mapping project will appear
             that contains a single <emphasis role="bold">DataDomain</emphasis>. The meaning of a
             DataDomain is explained elsewhere in the User Guide. For now it is sufficient to
-            understand that DataDomain is the root of your mapping project.</para>
-        
+            understand that DataDomain is the root of your mapping project.
+        </para>
     </section>
     <section xml:id="create-datanode">
         <title>Create a DataNode</title>
@@ -85,7 +85,12 @@
             >DataNode</emphasis>. DataNode is a descriptor of a single database your application
             will connect to. Cayenne mapping project can use more than one database, but for now,
             we'll only use one. With "project" selected on the left, click on "Create DataNode"
-            button on the toolbar (or select "Project &gt; Create DataNode" from the menu.</para>
+            button <inlinemediaobject>
+                <imageobject>
+                    <imagedata fileref="images/icon-node.gif" scalefit="0" width="100%"/>
+                </imageobject>
+            </inlinemediaobject> on the toolbar (or select "Project &gt; Create DataNode" from the menu.
+        </para>
         <para>A new DataNode is displayed. Now you need to specify JDBC connection parameters. For
             an in-memory Derby database you can enter the following settings: <itemizedlist>
                 <listitem>
@@ -103,7 +108,7 @@
             </note>
         </para>
         <para>Also you will need to change "Schema Update Strategy". Select
-            "org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy" from the dropdown, so that
+            "<code>org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy</code>" from the dropdown, so that
             Cayenne creates a new schema on Derby based on the ORM mapping when the application
             starts.</para>
         <para>
@@ -118,6 +123,11 @@
         <title>Create a DataMap</title>
         <para>Now you will create a <emphasis role="bold">DataMap</emphasis>. DataMap is an object
             that holds all the mapping information. To create it, click on "Create DataMap" button
+            <inlinemediaobject>
+                <imageobject>
+                    <imagedata fileref="images/icon-datamap.gif" scalefit="0" width="100%"/>
+                </imageobject>
+            </inlinemediaobject>
             (or select a corresponding menu item). Note that the newly created DataMap is
             automatically linked to the DataNode that you created in the previous step. If there is
             more than one DataNode, you may need to link a DataMap to the correct node manually. In
@@ -125,7 +135,7 @@
             map.
         </para>
         <para>You can leave all the DataMap defaults unchanged except for one - "Java Package".
-            Enter "org.example.cayenne.persistent". This name will later be used for all persistent
+            Enter "<code>org.example.cayenne.persistent</code>". This name will later be used for all persistent
             classes.
         </para>
         <para>
@@ -139,16 +149,16 @@
     <section xml:id="save-project">
         <title>Save the Project</title>
         <para>Before you proceed with the actual mapping, let's save the project. Click on "Save"
-            button in the toolbar and navigate to the "tutorial" IDEA project folder that was
-            created earlier in this section and its "src/main/resources" subfolder and save the
-            project there. Now go back to IDEA you will see two Cayenne XML files.</para>
+            button in the toolbar and navigate to the "<code>tutorial</code>" IDEA project folder that was
+            created earlier in this section and its "<code>src/main/resources</code>" subfolder and save the
+            project there. Now go back to IDEA and you will see two Cayenne XML files.</para>
         <para><inlinemediaobject>
                 <imageobject>
                     <imagedata fileref="images/idea-xmlfiles.png"/>
                 </imageobject>
             </inlinemediaobject></para>
         <para>Note that the location of the XML files is not coincidental. Cayenne runtime looks for
-            "cayenne-*.xml" file in the application CLASSPATH and "src/main/resources" folder should
+            "cayenne-*.xml" file in the application <code>CLASSPATH</code> and "<code>src/main/resources</code>" folder should
             already be a "class folder" in IDEA for our project (and is also a standard location
             that Maven would copy to a jar file, if we were using Maven from command-line).</para>
     </section>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/docbkx/webapp.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/docbkx/webapp.xml b/docs/docbook/getting-started/src/docbkx/webapp.xml
index b50a521..9452e83 100644
--- a/docs/docbook/getting-started/src/docbkx/webapp.xml
+++ b/docs/docbook/getting-started/src/docbkx/webapp.xml
@@ -46,11 +46,11 @@
         <para>So let's convert the tutorial that we created to a web application:</para>
         <itemizedlist>
             <listitem>
-                <para>In Eclipse under "tutorial" project folder create a new folder
-                    "src/main/webapp/WEB-INF".</para>
+                <para>In IDEA under "tutorial" project folder create a new folder
+                    "<code>src/main/webapp/WEB-INF</code>".</para>
             </listitem>
             <listitem>
-                <para>Under "WEB-INF" create a new file "web.xml" (a standard web app descriptor): </para>
+                <para>Under "<code>WEB-INF</code>" create a new file "<code>web.xml</code>" (a standard web app descriptor): </para>
                 <para>
                     <emphasis role="bold">web.xml</emphasis>
                     <programlisting language="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
@@ -78,10 +78,10 @@
 &lt;/web-app&gt;</programlisting></para>
             </listitem>
             <listitem>
-                <para>Create the artist browser page src/main/webapp/index.jsp file with the
+                <para>Create the artist browser page <code>src/main/webapp/index.jsp</code> file with the
                     following contents: </para>
                 <para><emphasis role="bold">webapp/index.jsp</emphasis>
-                    <programlisting language="jsp">&lt;%@ page language="java" contentType="text/html" %&gt;
+                    <programlisting language="xml">&lt;%@ page language="java" contentType="text/html" %&gt;
 &lt;%@ page import="org.example.cayenne.persistent.*" %&gt;
 &lt;%@ page import="org.apache.cayenne.*" %&gt;
 &lt;%@ page import="org.apache.cayenne.query.*" %&gt;
@@ -117,10 +117,10 @@
 &lt;/html&gt; </programlisting></para>
             </listitem>
             <listitem>
-                <para>Create the artist editor page src/main/webapp/detail.jsp with the following
+                <para>Create the artist editor page <code>src/main/webapp/detail.jsp</code> with the following
                     content: </para>
                 <para><emphasis role="bold">webapp/detail.jsp</emphasis>
-                    <programlisting language="jsp">&lt;%@ page language="java" contentType="text/html" %&gt;
+                    <programlisting language="xml">&lt;%@ page language="java" contentType="text/html" %&gt;
 &lt;%@ page import="org.example.cayenne.persistent.*" %&gt;
 &lt;%@ page import="org.apache.cayenne.*" %&gt;
 &lt;%@ page import="java.util.*" %&gt;
@@ -201,7 +201,7 @@
 &lt;/dependency&gt;</programlisting>
 
         <para>Also to run the web application we'll use "maven-jetty-plugin". To activate it,
-            let's add the following piece of code to the "pom.xml" file, following the "dependencies"
+            let's add the following piece of code to the "<code>pom.xml</code>" file, following the "dependencies"
             section and save the POM:</para>
         <programlisting language="xml">&lt;build&gt;
     &lt;plugins&gt;
@@ -264,9 +264,9 @@ INFO::Started SelectChannelConnector@0.0.0.0:8080
                 <para>So the Jetty container just started.</para>
             </listitem>
             <listitem>
-                <para>Now go to <emphasis role="italic">http://localhost:8080/tutorial/</emphasis>
+                <para>Now go to <link xlink:href="http://localhost:8080/tutorial/">http://localhost:8080/tutorial/</link>
                             URL. You should see "No artists found message" in the web browser and
-                            the following output in the Eclipse console:</para>
+                            the following output in the IDEA console:</para>
         <screen>INFO: Loading XML configuration resource from file:/.../tutorial/target/classes/cayenne-project.xml
 INFO: loading user name and password.
 INFO: Created connection pool: jdbc:derby:memory:testdb;create=true

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/images/icon-attribute.gif
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/images/icon-attribute.gif b/docs/docbook/getting-started/src/images/icon-attribute.gif
new file mode 100644
index 0000000..3a5ce56
Binary files /dev/null and b/docs/docbook/getting-started/src/images/icon-attribute.gif differ

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/images/icon-datamap.gif
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/images/icon-datamap.gif b/docs/docbook/getting-started/src/images/icon-datamap.gif
new file mode 100644
index 0000000..7910409
Binary files /dev/null and b/docs/docbook/getting-started/src/images/icon-datamap.gif differ

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/images/icon-dbentity.gif
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/images/icon-dbentity.gif b/docs/docbook/getting-started/src/images/icon-dbentity.gif
new file mode 100644
index 0000000..d7e9a76
Binary files /dev/null and b/docs/docbook/getting-started/src/images/icon-dbentity.gif differ

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/images/icon-node.gif
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/images/icon-node.gif b/docs/docbook/getting-started/src/images/icon-node.gif
new file mode 100644
index 0000000..800c76d
Binary files /dev/null and b/docs/docbook/getting-started/src/images/icon-node.gif differ

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/images/icon-objentity.gif
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/images/icon-objentity.gif b/docs/docbook/getting-started/src/images/icon-objentity.gif
new file mode 100644
index 0000000..81e24ad
Binary files /dev/null and b/docs/docbook/getting-started/src/images/icon-objentity.gif differ

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2c2516c9/docs/docbook/getting-started/src/images/icon-sync.gif
----------------------------------------------------------------------
diff --git a/docs/docbook/getting-started/src/images/icon-sync.gif b/docs/docbook/getting-started/src/images/icon-sync.gif
new file mode 100644
index 0000000..4bf7cff
Binary files /dev/null and b/docs/docbook/getting-started/src/images/icon-sync.gif differ