Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E13CE200BDC for ; Wed, 14 Dec 2016 13:29:35 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id DFF56160B34; Wed, 14 Dec 2016 12:29:35 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 99498160B33 for ; Wed, 14 Dec 2016 13:29:34 +0100 (CET) Received: (qmail 6246 invoked by uid 500); 14 Dec 2016 12:29:33 -0000 Mailing-List: contact commits-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list commits@cayenne.apache.org Received: (qmail 6184 invoked by uid 99); 14 Dec 2016 12:29:33 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Dec 2016 12:29:33 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 2962EE35C8; Wed, 14 Dec 2016 12:29:33 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: skolbachev@apache.org To: commits@cayenne.apache.org Date: Wed, 14 Dec 2016 12:29:35 -0000 Message-Id: <070defb40429458cbe45abffcbc1a911@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [3/4] cayenne git commit: New version of Getting Started with Cayenne guide. Tutorial now based on IDEA instead of Eclipse. archived-at: Wed, 14 Dec 2016 12:29:36 -0000 New version of Getting Started with Cayenne guide. Tutorial now based on IDEA instead of Eclipse. Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/bfdc4156 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/bfdc4156 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/bfdc4156 Branch: refs/heads/master Commit: bfdc4156e21bf6aa5ed821ef432a876b3060a7bc Parents: 2c2516c Author: Nikita Timofeev Authored: Wed Dec 7 12:51:08 2016 +0300 Committer: Nikita Timofeev Committed: Wed Dec 7 12:51:08 2016 +0300 ---------------------------------------------------------------------- .../resources/stylesheets/html-no-parts.xsl | 25 ------- docs/docbook/getting-started/pom.xml | 27 -------- .../getting-started/src/docbkx/java-classes.xml | 4 +- .../src/docbkx/object-context.xml | 16 ++--- .../src/docbkx/object-relational-mapping.xml | 4 +- .../src/docbkx/persistent-objects.xml | 7 +- .../src/docbkx/starting-project.xml | 2 +- .../getting-started/src/docbkx/webapp.xml | 69 +++++++++---------- .../getting-started/src/images/base-datamap.png | Bin 88124 -> 94872 bytes .../src/images/base-datanode.png | Bin 89654 -> 96978 bytes .../src/images/idea-configuration-menu.png | Bin 17193 -> 32911 bytes .../src/images/idea-run-configuration.png | Bin 93801 -> 93059 bytes .../src/images/modeler-artistid.png | Bin 65420 -> 65879 bytes .../src/images/modeler-deleterule.png | Bin 82965 -> 83349 bytes .../src/images/tutorial-idea-project.png | Bin 51077 -> 48037 bytes 15 files changed, 49 insertions(+), 105 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/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 deleted file mode 100644 index 0659004..0000000 --- a/docs/docbook/docbook-stylesheets/src/main/resources/stylesheets/html-no-parts.xsl +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/pom.xml ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/pom.xml b/docs/docbook/getting-started/pom.xml index 2df0646..6b5a5c6 100644 --- a/docs/docbook/getting-started/pom.xml +++ b/docs/docbook/getting-started/pom.xml @@ -36,32 +36,5 @@ target/site - - - com.agilejava.docbkx - docbkx-maven-plugin - - - build-html - - ${project.stylesheetdir}/stylesheets/html-no-parts.xsl - true - - - - - - - - - - generate-resources - - generate-html - - - - - http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/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 6d4bc37..8c71104 100644 --- a/docs/docbook/getting-started/src/docbkx/java-classes.xml +++ b/docs/docbook/getting-started/src/docbkx/java-classes.xml @@ -69,12 +69,12 @@ </dependency> </dependencies> </project> - Your computer must be connected to the internet. Once you edit the pom.xml, IDEA + Your computer must be connected to the internet. Once you edit the pom.xml, IDEA will download the needed Cayenne jar file and add it to the project build path. As a result, all the errors should disappear. - + Now let's check the entity class pairs. Each one is made of a superclass (e.g. Artist) http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/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 912db2f..b859989 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 @@ Creating the Main Class - In IDEA create a new class called "Main" in the "org.example.cayenne" + In IDEA create a new class called "Main" in the "org.example.cayenne" package. @@ -55,7 +55,7 @@ public class Main { ObjectContext context = cayenneRuntime.newContext(); } } - ObjectContext is an isolated "session" in Cayenne that provides all needed API + ObjectContext is an isolated "session" in Cayenne that provides all needed API to work with data. ObjectContext has methods to execute queries and manage persistent objects. We'll discuss them in the following sections. When the first ObjectContext is created in the application, Cayenne loads XML mapping files and @@ -73,16 +73,16 @@ public class Main { jars:<dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> - <version>10.8.1.2</version> + <version>10.13.1.1</version> </dependency>Now we are ready to run. Right click the "Main" class in IDEA and select "Run 'Main.main()'". In the console you'll see output similar to this, indicating that Cayenne stack has been - started:INFO: Loading XML configuration resource from file:cayenne-project.xml + started:INFO: Loading XML configuration resource from file:/.../cayenne-project.xml +INFO: Loading XML DataMap resource from file:/.../datamap.map.xml INFO: loading user name and password. -INFO: Created connection pool: jdbc:derby:memory:testdb;create=true - Driver class: org.apache.derby.jdbc.EmbeddedDriver - Min. connections in the pool: 1 - Max. connections in the pool: 1 +INFO: Connecting to 'jdbc:derby:memory:testdb;create=true' as 'null' +INFO: +++ Connecting: SUCCESS. +INFO: setting DataNode 'datanode' as default, used by all unlinked DataMaps How to Configure Cayenne Logging http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/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 96e6b60..ca579aa 100644 --- a/docs/docbook/getting-started/src/docbkx/object-relational-mapping.xml +++ b/docs/docbook/getting-started/src/docbkx/object-relational-mapping.xml @@ -51,7 +51,7 @@ on the entity - toolbar (third button from the left). This action changes the view to the "Attribute" + toolbar. 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: @@ -115,7 +115,7 @@ - + http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/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 2114835..7135640 100644 --- a/docs/docbook/getting-started/src/docbkx/persistent-objects.xml +++ b/docs/docbook/getting-started/src/docbkx/persistent-objects.xml @@ -104,11 +104,10 @@ stein.setGallery(metropolitan); output will show a few actual DB operations: org.apache.cayenne.configuration.XMLDataChannelDescriptorLoader load INFO: Loading XML configuration resource from file:cayenne-project.xml -... -INFO: Opening connection: jdbc:derby:memory:testdb;create=true - Login: null - Password: ******* +... +INFO: Connecting to 'jdbc:derby:memory:testdb;create=true' as 'null' INFO: +++ Connecting: SUCCESS. +INFO: setting DataNode 'datanode' as default, used by all unlinked DataMaps INFO: Detected and installed adapter: org.apache.cayenne.dba.derby.DerbyAdapter INFO: --- transaction started. INFO: No schema detected, will create mapped tables http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/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 5db363f..843d960 100644 --- a/docs/docbook/getting-started/src/docbkx/starting-project.xml +++ b/docs/docbook/getting-started/src/docbkx/starting-project.xml @@ -158,7 +158,7 @@ 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 CLASSPATH and "src/main/resources" 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). http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/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 9452e83..2695354 100644 --- a/docs/docbook/getting-started/src/docbkx/webapp.xml +++ b/docs/docbook/getting-started/src/docbkx/webapp.xml @@ -81,20 +81,20 @@ Create the artist browser page src/main/webapp/index.jsp file with the following contents: webapp/index.jsp - <%@ page language="java" contentType="text/html" %> + <%@ page language="java" contentType="text/html" %> <%@ page import="org.example.cayenne.persistent.*" %> <%@ page import="org.apache.cayenne.*" %> <%@ page import="org.apache.cayenne.query.*" %> <%@ page import="org.apache.cayenne.exp.*" %> <%@ page import="java.util.*" %> -<% - SelectQuery query = new SelectQuery(Artist.class); - query.addOrdering(Artist.NAME.getName(), SortOrder.ASCENDING); - +<% ObjectContext context = BaseContext.getThreadObjectContext(); - List<Artist> artists = context.performQuery(query); + List<Artist> artists = ObjectSelect.query(Artist.class) + .orderBy(Artist.NAME.asc()) + .select(context); %> + <html> <head> <title>Main</title> @@ -104,13 +104,13 @@ <% if(artists.isEmpty()) {%> <p>No artists found</p> - <% } else { - for(Artist a : artists) { + <% } else { + for(Artist a : artists) { %> <p><a href="detail.jsp?id=<%=Cayenne.intPKForObject(a)%>"> <%=a.getName()%> </a></p> <% - } - } %> + } + } %> <hr> <p><a href="detail.jsp">Create new artist...</a></p> </body> @@ -120,9 +120,10 @@ Create the artist editor page src/main/webapp/detail.jsp with the following content: webapp/detail.jsp - <%@ page language="java" contentType="text/html" %> + <%@ page language="java" contentType="text/html" %> <%@ page import="org.example.cayenne.persistent.*" %> <%@ page import="org.apache.cayenne.*" %> +<%@ page import="org.apache.cayenne.query.*" %> <%@ page import="java.util.*" %> <%@ page import="java.text.*" %> @@ -133,7 +134,7 @@ // find artist for id Artist artist = null; if(id != null && id.trim().length() > 0) { - artist = Cayenne.objectForPK(context, Artist.class, Integer.parseInt(id)); + artist = SelectById.query(Artist.class, Integer.parseInt(id)).selectOne(context); } if("POST".equals(request.getMethod())) { @@ -206,9 +207,9 @@ <build> <plugins> <plugin> - <groupId>org.mortbay.jetty</groupId> + <groupId>org.eclipse.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> - <version>6.1.22</version> + <version>9.3.14.v20161028</version> </plugin> </plugins> </build> @@ -217,7 +218,7 @@ Go to "Select Run/Debug Configuration" menu, and then "Edit Configuration..." - + @@ -226,7 +227,7 @@ Click "+" button and select "Maven". Enter "Name" and "Command line" as shown on screenshot: - + @@ -243,19 +244,20 @@ [INFO] ------------------------------------------------------------------------ ... [INFO] Configuring Jetty for project: tutorial -[INFO] Webapp source directory = /.../tutorial/src/main/webapp +[INFO] webAppSourceDirectory not set. Trying src/main/webapp [INFO] Reload Mechanic: automatic [INFO] Classes = /.../tutorial/target/classes -[INFO] Context path = /tutorial -[INFO] Tmp directory = determined at runtime -[INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml +[INFO] Logging initialized @1617ms +[INFO] Context path = / +[INFO] Tmp directory = /.../tutorial/target/tmp +[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml [INFO] Web overrides = none -[INFO] web.xml file = /.../tutorial/src/main/webapp/WEB-INF/web.xml +[INFO] web.xml file = file:/.../tutorial/src/main/webapp/WEB-INF/web.xml [INFO] Webapp directory = /.../tutorial/src/main/webapp -[INFO] Starting jetty 6.1.22 ... -INFO::jetty-6.1.22 -INFO::No Transaction manager found - if your webapp requires one, please configure one. -INFO::Started SelectChannelConnector@0.0.0.0:8080 +[INFO] jetty-9.3.0.v20150612 +[INFO] Started o.e.j.m.p.JettyWebAppContext@6872f9c8{/,file:/.../tutorial/src/main/webapp/,AVAILABLE}{file:/.../tutorial/src/main/webapp/} +[INFO] Started ServerConnector@723875bc{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} +[INFO] Started @2367ms [INFO] Started Jetty Server @@ -264,19 +266,14 @@ INFO::Started SelectChannelConnector@0.0.0.0:8080 So the Jetty container just started. - Now go to http://localhost:8080/tutorial/ + Now go to http://localhost:8080/ URL. You should see "No artists found message" in the web browser and the following output in the IDEA console: 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 - Driver class: org.apache.derby.jdbc.EmbeddedDriver - Min. connections in the pool: 1 - Max. connections in the pool: 1 -INFO: Opening connection: jdbc:derby:memory:testdb;create=true - Login: null - Password: ******* +INFO: Connecting to 'jdbc:derby:memory:testdb;create=true' as 'null' INFO: +++ Connecting: SUCCESS. +INFO: setting DataNode 'datanode' as default, used by all unlinked DataMaps INFO: Detected and installed adapter: org.apache.cayenne.dba.derby.DerbyAdapter INFO: --- transaction started. INFO: No schema detected, will create mapped tables @@ -292,8 +289,8 @@ INFO: DELETE FROM AUTO_PK_SUPPORT WHERE TABLE_NAME IN ('ARTIST', 'GALLERY', 'PAI INFO: INSERT INTO AUTO_PK_SUPPORT (TABLE_NAME, NEXT_ID) VALUES ('ARTIST', 200) INFO: INSERT INTO AUTO_PK_SUPPORT (TABLE_NAME, NEXT_ID) VALUES ('GALLERY', 200) INFO: INSERT INTO AUTO_PK_SUPPORT (TABLE_NAME, NEXT_ID) VALUES ('PAINTING', 200) -INFO: SELECT t0.DATE_OF_BIRTH, t0.NAME, t0.ID FROM ARTIST t0 ORDER BY t0.NAME - prepared in 43 ms. -INFO: === returned 0 rows. - took 56 ms. +INFO: SELECT t0.DATE_OF_BIRTH, t0.NAME, t0.ID FROM ARTIST t0 ORDER BY t0.NAME +INFO: === returned 0 rows. - took 17 ms. INFO: +++ transaction committed. @@ -303,7 +300,7 @@ INFO: +++ transaction committed. can be edited by clicking on their name: - + http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/src/images/base-datamap.png ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/src/images/base-datamap.png b/docs/docbook/getting-started/src/images/base-datamap.png index 856fb36..8bf5ff6 100644 Binary files a/docs/docbook/getting-started/src/images/base-datamap.png and b/docs/docbook/getting-started/src/images/base-datamap.png differ http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/src/images/base-datanode.png ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/src/images/base-datanode.png b/docs/docbook/getting-started/src/images/base-datanode.png index 180a2d6..7c4c320 100644 Binary files a/docs/docbook/getting-started/src/images/base-datanode.png and b/docs/docbook/getting-started/src/images/base-datanode.png differ http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/src/images/idea-configuration-menu.png ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/src/images/idea-configuration-menu.png b/docs/docbook/getting-started/src/images/idea-configuration-menu.png index 4afda66..30cf05e 100644 Binary files a/docs/docbook/getting-started/src/images/idea-configuration-menu.png and b/docs/docbook/getting-started/src/images/idea-configuration-menu.png differ http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/src/images/idea-run-configuration.png ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/src/images/idea-run-configuration.png b/docs/docbook/getting-started/src/images/idea-run-configuration.png index b2e7a2d..3ebbb62 100644 Binary files a/docs/docbook/getting-started/src/images/idea-run-configuration.png and b/docs/docbook/getting-started/src/images/idea-run-configuration.png differ http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/src/images/modeler-artistid.png ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/src/images/modeler-artistid.png b/docs/docbook/getting-started/src/images/modeler-artistid.png index 27d639a..2217206 100644 Binary files a/docs/docbook/getting-started/src/images/modeler-artistid.png and b/docs/docbook/getting-started/src/images/modeler-artistid.png differ http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/src/images/modeler-deleterule.png ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/src/images/modeler-deleterule.png b/docs/docbook/getting-started/src/images/modeler-deleterule.png index 3698522..37635f3 100644 Binary files a/docs/docbook/getting-started/src/images/modeler-deleterule.png and b/docs/docbook/getting-started/src/images/modeler-deleterule.png differ http://git-wip-us.apache.org/repos/asf/cayenne/blob/bfdc4156/docs/docbook/getting-started/src/images/tutorial-idea-project.png ---------------------------------------------------------------------- diff --git a/docs/docbook/getting-started/src/images/tutorial-idea-project.png b/docs/docbook/getting-started/src/images/tutorial-idea-project.png index ca64043..058dc1d 100644 Binary files a/docs/docbook/getting-started/src/images/tutorial-idea-project.png and b/docs/docbook/getting-started/src/images/tutorial-idea-project.png differ