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/31 08:17:32 UTC

[23/23] cayenne git commit: Update docs included into assembly Move RELEASE-NOTES, UPGRADE and KEYS files to top level

Update docs included into assembly
Move RELEASE-NOTES, UPGRADE and KEYS files to top level


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

Branch: refs/heads/STABLE-4.0
Commit: b3dae546fbf509af9e44661fb3d47b0183dca1d1
Parents: e4eb10f
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Jan 30 17:54:44 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Tue Jan 30 17:54:44 2018 +0300

----------------------------------------------------------------------
 KEYS                                            |  319 +++
 RELEASE-NOTES.txt                               |  467 +++++
 UPGRADE.txt                                     |  548 +++++
 assembly/pom.xml                                |   22 +
 .../resources/assemblies/assembly-generic.xml   |   36 +-
 .../main/resources/assemblies/assembly-mac.xml  |   36 +-
 .../resources/assemblies/assembly-windows.xml   |   36 +-
 docs/doc/pom.xml                                |    6 +-
 docs/doc/src/main/resources/KEYS                |  319 ---
 docs/doc/src/main/resources/README              |   33 -
 docs/doc/src/main/resources/README.html         |  187 ++
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |  467 -----
 docs/doc/src/main/resources/UPGRADE.txt         |  548 -----
 docs/doc/src/main/resources/doc/images/logo.gif |  Bin 864 -> 0 bytes
 docs/doc/src/main/resources/doc/index.html      |   62 -
 .../doc/schema/3.0/images/button_minus.gif      |  Bin 136 -> 0 bytes
 .../doc/schema/3.0/images/button_plus.gif       |  Bin 142 -> 0 bytes
 .../schema/3.0/images/corner_bottom_left.gif    |  Bin 80 -> 0 bytes
 .../schema/3.0/images/corner_bottom_right.gif   |  Bin 111 -> 0 bytes
 .../doc/schema/3.0/images/corner_top_left.gif   |  Bin 63 -> 0 bytes
 .../doc/schema/3.0/images/corner_top_right.gif  |  Bin 79 -> 0 bytes
 .../doc/schema/3.0/images/hierarchy_arrow.gif   |  Bin 68 -> 0 bytes
 .../doc/schema/3.0/images/line_bottom.gif       |  Bin 64 -> 0 bytes
 .../doc/schema/3.0/images/line_left.gif         |  Bin 50 -> 0 bytes
 .../doc/schema/3.0/images/line_right.gif        |  Bin 64 -> 0 bytes
 .../doc/schema/3.0/images/line_top.gif          |  Bin 51 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html0.jpeg   |  Bin 10459 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html1.jpeg   |  Bin 23201 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html10.jpeg  |  Bin 35231 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html11.jpeg  |  Bin 35601 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html12.jpeg  |  Bin 16798 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html13.jpeg  |  Bin 16658 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html14.jpeg  |  Bin 25460 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html15.jpeg  |  Bin 20591 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html16.jpeg  |  Bin 16415 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html17.jpeg  |  Bin 10153 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html18.jpeg  |  Bin 54392 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html19.jpeg  |  Bin 16614 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html2.jpeg   |  Bin 173180 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html20.jpeg  |  Bin 9290 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html21.jpeg  |  Bin 16573 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html22.jpeg  |  Bin 35617 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html23.jpeg  |  Bin 9016 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html24.jpeg  |  Bin 63326 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html25.jpeg  |  Bin 79391 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html26.jpeg  |  Bin 16783 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html27.jpeg  |  Bin 24446 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html28.jpeg  |  Bin 31137 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html29.jpeg  |  Bin 9150 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html3.jpeg   |  Bin 54716 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html30.jpeg  |  Bin 31893 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html31.jpeg  |  Bin 8951 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html32.jpeg  |  Bin 16446 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html33.jpeg  |  Bin 64784 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html34.jpeg  |  Bin 55639 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html4.jpeg   |  Bin 10313 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html5.jpeg   |  Bin 23172 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html6.jpeg   |  Bin 34308 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html7.jpeg   |  Bin 35686 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html8.jpeg   |  Bin 28700 -> 0 bytes
 .../doc/schema/3.0/images/modelMap.html9.jpeg   |  Bin 27255 -> 0 bytes
 .../resources/doc/schema/3.0/indexList.html     |  648 ------
 .../main/resources/doc/schema/3.0/modelMap.html |    4 -
 .../resources/doc/schema/3.0/modelMap0.html     |  614 ------
 .../resources/doc/schema/3.0/modelMap1.html     | 1943 ------------------
 .../resources/doc/schema/3.0/modelMap10.html    |  578 ------
 .../resources/doc/schema/3.0/modelMap11.html    |  578 ------
 .../resources/doc/schema/3.0/modelMap12.html    |  578 ------
 .../resources/doc/schema/3.0/modelMap13.html    |  578 ------
 .../resources/doc/schema/3.0/modelMap14.html    | 1062 ----------
 .../resources/doc/schema/3.0/modelMap15.html    |  687 -------
 .../resources/doc/schema/3.0/modelMap16.html    |  687 -------
 .../resources/doc/schema/3.0/modelMap17.html    | 1204 -----------
 .../resources/doc/schema/3.0/modelMap18.html    |  893 --------
 .../resources/doc/schema/3.0/modelMap19.html    |  736 -------
 .../resources/doc/schema/3.0/modelMap2.html     |  434 ----
 .../resources/doc/schema/3.0/modelMap20.html    | 1309 ------------
 .../resources/doc/schema/3.0/modelMap21.html    | 1083 ----------
 .../resources/doc/schema/3.0/modelMap22.html    |  715 -------
 .../resources/doc/schema/3.0/modelMap23.html    | 1353 ------------
 .../resources/doc/schema/3.0/modelMap24.html    | 1302 ------------
 .../resources/doc/schema/3.0/modelMap25.html    |  434 ----
 .../resources/doc/schema/3.0/modelMap26.html    |  696 -------
 .../resources/doc/schema/3.0/modelMap27.html    |  651 ------
 .../resources/doc/schema/3.0/modelMap28.html    |  374 ----
 .../resources/doc/schema/3.0/modelMap3.html     |  729 -------
 .../resources/doc/schema/3.0/modelMap4.html     |  909 --------
 .../resources/doc/schema/3.0/modelMap5.html     |  909 --------
 .../resources/doc/schema/3.0/modelMap6.html     |  662 ------
 .../resources/doc/schema/3.0/modelMap7.html     |  578 ------
 .../resources/doc/schema/3.0/modelMap8.html     |  578 ------
 .../resources/doc/schema/3.0/modelMap9.html     |  578 ------
 .../resources/doc/schema/3.0/xsdDocHtml.css     |  554 -----
 docs/doc/src/main/resources/doc/style.css       |  292 ---
 .../src/main/resources/README.txt               |    2 +-
 pom.xml                                         |    4 +
 96 files changed, 1590 insertions(+), 26432 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/b3dae546/KEYS
----------------------------------------------------------------------
diff --git a/KEYS b/KEYS
new file mode 100644
index 0000000..60b8e71
--- /dev/null
+++ b/KEYS
@@ -0,0 +1,319 @@
+This file contains the PGP&GPG keys of various Apache developers.
+Please don't use them for email unless you have to. Their main
+purpose is code signing.
+
+Apache users: pgp < KEYS
+Apache developers: 
+        (pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
+      or
+        (gpg --fingerprint --list-sigs <your name>
+             && gpg --armor --export <your name>) >> this file.
+
+Apache developers: please ensure that your key is also available via the
+PGP keyservers (such as pgpkeys.mit.edu).
+
+pub   1024D/B8AF90BF 2006-09-23
+uid                  Andrus Adamchik (andrus) <an...@objectstyle.org>
+sig 3        B8AF90BF 2006-09-23  Andrus Adamchik (andrus) <an...@objectstyle.org>
+sub   2048g/A6C30C00 2006-09-23
+sig          B8AF90BF 2006-09-23  Andrus Adamchik (andrus) <an...@objectstyle.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.3 (Darwin)
+
+mQGiBEUVncgRBADiguZch//Lz2FZLy+NZxZQ5fAAya/5i6mPcJ/FUppY02x3HWmY
+RGAVI/ZURIqCqHxyhgguX7zcrKfyE0bu45OayhhyfaydU4yTUPZF1UwtS8ULvLjl
+szu5G7OeO7Blmaajj0pFaYnb1cXhxG7I9Wz2mFnRAtVo2VoL+s5KWNdRUwCg6Z7M
+KGHkj7LWBoKEBODs4UTvEjkEAJRDFV20q7wpho7fMvJJgUpy7AlUgzplt/hVjv7X
+zgDLb0G5huqH28zLf3ZT3XIn6llIkjRjKX0RWAaebgnAoc2vhG3vglqmyphjH5zP
+mGaP+heY6Pz26sAYyKC1VOTndUdk2j0FQ+JJ91oUNhNerBxwUEHOBt8oVXOO/N+d
+dSb0A/9kbLklVVnNP2ztmvHwhKpSwJBWvZXOjX4AN1KB/b1RiwIZUSV85NFITqKj
+VCCaG4cyRvHkvfMATBpDcPUVWZaPoiKAXTKa3ZHK4W+ZbuDN++PwTfurxfwg2o4b
+sljRJVvR0oNWXXV2w3ZrywfAq9bejgiW1zgQoin+FzD+pflW5LQxQW5kcnVzIEFk
+YW1jaGlrIChhbmRydXMpIDxhbmRydXNAb2JqZWN0c3R5bGUub3JnPohgBBMRAgAg
+BQJFFZ3IAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQKmKWXbivkL+/YwCg
+1vJJidCeMN3IYzTWsdGFB7lKjXoAoKLBkzAyTJj8mu/Rj1y+Ro+rusZguQINBEUV
+ngwQCAClmw1DRilFKQAPdagJ4j4dvxUAdYv5ZJY0Umt44Vvs6hXFzCwyKD3W3aDG
+jaqIKGYj1q1/FHCPlXTfAjm4AQwcLrgOCMcbMkqJsDLD27cD4+O2hbBrJW3hwFFf
+sCFatvW3EBEXyWI4k9uos0nUrIDqGoA+DqLRgyrCFh+874Fr6eO5oJmKw1O8LkOP
+O4K3N5AXY4AFT9VZfOVEdhkHxht0IwVuqmHGyvPLEMkyp2bUhMd/9VHBgvEMnSlA
+4JmNB6EU+GdlPvei9C9ZzzmeYvwicAO1HHo4uQxfmE6V13K3/mH+hE/NlxLZ9syQ
+Zhe77mjaOQILt3g4CRRQ5Y5S2vyvAAMFB/wJ/OgwXrJImZhG0JxYTDl/pHVU7Whn
+anSaSrn2kI+8oGxJi4mrTFKZHgfOeFhhSsyMvydnscXAHS/ehUpEjcpxRS8ZVvyA
+sAJyBBkm1MhkQK2FFlSBIYCOXl+8mRGJqiem0NP8OgnNJAjTzOVukZpoz7UiAzbX
+zu7+DbFFJzq5G0xXDsNIdIObAFrCFgBkNg5V4T7iVMA3hN6Gp5UXBT4bRif36uDm
+SwKET84KQZrIWyMZNfNLNlxUCVaI44TsOuaUj4OPO4OIwHGSFZNV8b596+EB7VCB
+wDdE2uePbWP5Lc1vEkFCkNz/BUf60oiNnU0uGZ0pNlKo+Nk+HKnJP0V9iEkEGBEC
+AAkFAkUVngwCGwwACgkQKmKWXbivkL+03wCdFt9ms0gcaF0xAYRSh37N2eVwPGwA
+n0fr1EHLyn3mbwHqwllfwX9QE1EV
+=KVMq
+-----END PGP PUBLIC KEY BLOCK-----
+
+
+pub   1024D/DBAC3830 2007-10-28
+      Key fingerprint = C972 6F98 0956 F70E AAEC  735C F421 EF4E DBAC 3830
+uid                  Kevin Menard (CODE SIGNING KEY) <km...@apache.org>
+sig 3        DBAC3830 2007-10-28  Kevin Menard (CODE SIGNING KEY) <km...@apache.org>
+sub   2048g/BDA83969 2007-10-28
+sig          DBAC3830 2007-10-28  Kevin Menard (CODE SIGNING KEY) <km...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.7 (Darwin)
+
+mQGiBEckmuERBADw1lkZ1Us5eTV6p3mvc+Cot7lOQNa3rATEIouH38cL3SYc16S3
+P7Izo4C8QlZiNsLhUWrJFbBwKHPmyAjuNaJnvFvL53P4aUDdsx531D3p8pTMRx/w
+TcI3mFzOBpiZp08dJQviiIZ9HgpxHQCt+dyPPjBVajfRx1Ib/0LcG6s83wCg4wwz
+aHsw6KF+K5AQYro17FhpPm0D/1LSvydJjn3Uo8ZsDOPG8HqUOWrxk5He/G98ERT6
+uLL9WbyL+/mmw6FuWOmadZgjz0oK5r2AmluaE6L5OehiG3SH7tj7auq9SiR9l3vK
+cVGIvsUVMtdoDCzIvVSyZSLWahC6XijL6kTGh/rQ7yq1QIzHjA78ZLwzhLT6ORtL
+bELhBACqP0mH4Md0LcAbu9mVgom3Y/Jsrwb01HtkbvqOVTcH2TY6Lqubn9/2Hsff
+OVdoMmY65ZaGHnikh058jnz4JRTWcJ2gvK5Vo17G5M+nA8iIDg7DVY9tptfWv1Xn
+ZwlX2fZt0y0p56LO5Rkx6D0DNXiI/buXra6DIPkrV30RcRZtp7Q0S2V2aW4gTWVu
+YXJkIChDT0RFIFNJR05JTkcgS0VZKSA8a21lbmFyZEBhcGFjaGUub3JnPohgBBMR
+AgAgBQJHJJrhAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ9CHvTtusODAX
+6QCgsrp3HSVffN3TEP8o8gl8LBpZGKgAniFLZXM3k3IFDIbEunp5VVfCwa56uQIN
+BEckmuEQCAD88944PNdpAJWBaAZUNEUlLfeUVB1CkykN76PjDtpsrcf/wnJtuQGS
++EXcEZetCAoRdGVTM3cUHU3BVCNnDtmu/DE4f7AH3AWOl/WFGjQK49+KyyKbc2tm
+eocu9JSsxEn+fwBJOWSoJC4hTeleQ3U0r8CVW6Q2jgawXtpmBFgVQHE4lLBnSyLW
+RXdrTaFiO6KYaL2QvB7zdleRUPl3tFz6miUBF6stXvbuIGi2r57J+ZCMfnrbbtk/
+yI1MGUnY4+q7gyHiPZnghm/6hz9kszxg84ANVK6YryS7QTX9KGWPdnAtsNYVDwaS
+KGfg/fjL9wNZaLE2IK/WcktEe0aA/6Y3AAMHB/9HCbwSB3m5/DLZ/ARZtATuUNRE
+CeDyom6IKMzuhNEVnIWLlFrlmdCG3qdpSPHDhQR+OyIvzh8h7WErQYm/WjY/ouQ5
+ShBGy2FFuQFfqKnh8QK+OudIdnnGf0E+hjpIMg8jzvxy0Jrox2mpT3etMreXH29t
+m8IpDcuQcS4V5XfZAy/xTxnXN2VKek1tbEL66Pt6UyUDdCOvX42u/thQLaaUSfHM
+O3KVDIU87zl9QEuBVSC13pi3zXNXbNBrQqVLXzHbw7/dibjXcCPEYnR0ubU5mN75
+pxzmrm8EUNqLWUhLh3fscoRqTYkaoQlYkrCGw6udnN9V3h1WmZUFPbE6e7HxiEkE
+GBECAAkFAkckmuECGwwACgkQ9CHvTtusODD0lwCgibSRJsN1DO8NrigKNplynOfc
+qXoAoN/9XbpoW58ve7O/6lh9kLXGa/fv
+=JWKS
+-----END PGP PUBLIC KEY BLOCK-----
+
+
+pub   rsa2048/9E3D3908 2015-02-19
+      Key fingerprint = 964D 4B2D E8B3 EED1 32A2  BC49 BB6E 1A8C 9E3D 3908
+uid       [ultimate] Alex Kolonitsky <ko...@apache.org>
+sig 3        9E3D3908 2015-02-19  Alex Kolonitsky <ko...@apache.org>
+sub   rsa2048/4E068AA6 2015-02-19
+sig          9E3D3908 2015-02-19  Alex Kolonitsky <ko...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2
+
+mQENBFTl3zUBCADkcIWf0LrHVwN8HsAntvXV7+UiYc9MXv68T3W1xc2Wpa8+4Qtj
+Z24ZgJ9oDhXpim+2IeqbhUL+hzUJA2hWkJNrZTo+UNWCo/krb8RgLHbiYh+y0Jsv
+bohJ/UfG99D3DTuf+w24pBwUvSywzprtqTZBP3r7WfAdQyw15ExeuGpQljr92+0g
+QcnL2itqkKjPnnxm2ErGUxeq90E1VLwU4ZEPcibxzgenbc+csnAlhtM1TTUCtp88
+SxPAFhD1sUY+5jCm8kUm9KdFd15+QoVr1CGtwJyMLcBXKZnpO2sx+ueyy/C7t8xe
+hURISoJY3CZSRHO/RcRXBfY7KhRDH7PejESlABEBAAG0J0FsZXggS29sb25pdHNr
+eSA8a29sb25pdHNreUBhcGFjaGUub3JnPokBNwQTAQgAIQUCVOXfNQIbAwULCQgH
+AgYVCAkKCwIEFgIDAQIeAQIXgAAKCRC7bhqMnj05CO+YB/9ayGjLmlyeF4cCwPBd
+fnxHeQ3P2PHIIfqrUJx/N5Q93J4y51U/6KhTsNEA87+AlfdmM2RyYIBZckcUrP6U
+Y2mdzTvCflUpKqnRZyV2u3L18AgXL/M8Tnz3aNaET61kX7za709Q3vCxLK1DGU3Q
+2eC9ZHhjK7pdLfolGyT4lHjI2Zpg32mhkOCpYzxI1fUQ42DO7UssoBjKsqq+9i1C
+36Ps1nt5iRqEjTRUK6IMKK6oYPNyWy9KSYdS3UbArCWUHdkGJBXY3oj5O4VGAd/u
+nHax2zeaJ58nUyotp5Ny5q/PRd/6vUr4kUqGDGn7Q1zph919NLEcFooNXqek60He
++KrEuQENBFTl3zUBCADE7NrJc/aBJhrHpC63r7F2ldwZWYEzCjS6J6ovFuvp+i2C
+EP7mEZaGPmpnZ2fN9rJ+a1UaWLzRzDJdX7CwiH/cO1YE56Dv/bG2qK38nWVZ5TAl
+eYbJyMQPGMI/wkuZb+ikoS7Jf/0sz245TFBb1lwGBVFgCBlrbpkK13YP+TZ5iAOe
+USpeddl7imlCTiAXprtZ5hw+TC6ZSmcUq1HVWJosFCQGnaYLz/gdJNU+9TBSU3kM
+lLvNFh9i74rfiopkoyRJnLvl5O5HWtcbHSY4qFmVKpEMLnnwBQuKN78tnwiKSz5C
+0XzzMc/W7jBrBjiX7lQ1HjTa6CvDjpvbOcqMIsrTABEBAAGJAR8EGAEIAAkFAlTl
+3zUCGwwACgkQu24ajJ49OQgPyggAmxSH+VLPRwXiulHEiVNVGk/ff9Z55bwYtpVv
+bTPXb0Z+oYr5AT1Ea8hKQf8DsUA93SPFQXMGZ7My4472x+ZPRUCmg6Lr9q+4yEu5
+6Rex0XDWKlF2oEWhGgaKjQ9cg8MyKMaUG/ShmJgp6P+yWwMqoNB3CaSRWuHwJp4i
+EgtxbMXzprVZ5h6/RrKsjHNTFQEVcSxJKGNuUJ7WlaXA+qGBDiaxDEyUJABWDqkr
+UyQv2xCibMNjhgFlu0KDGPPQPb4XgwJDn9Oznof0QwV1Z+dL/TtTCGM3zHqbr97/
+Qg579xwo+gI/PHgH2XI1QI6d3ZO/KGR3lsCUZHR3piON3YtICA==
+=WJOl
+-----END PGP PUBLIC KEY BLOCK-----
+
+
+pub   4096R/48F4C2B5 2016-02-02
+      Key fingerprint = 4B7F DDD3 BCAA C5DC D571  D36F 8A34 C614 48F4 C2B5
+uid       [ultimate] Savva Kolbachev <sk...@apache.org>
+sig 3        48F4C2B5 2016-02-02  Savva Kolbachev <sk...@apache.org>
+sub   4096R/4335EA7E 2016-02-02
+sig          48F4C2B5 2016-02-02  Savva Kolbachev <sk...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: GPGTools - https://gpgtools.org
+
+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
+D0crmx0=
+=etVP
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub   4096R/D1E9FD5C 2016-02-06
+uid                  Andrus Adamchik <an...@objectstyle.org>
+sig 3        D1E9FD5C 2016-02-06  Andrus Adamchik <an...@objectstyle.org>
+sub   4096R/11C6A471 2016-02-06
+sig          D1E9FD5C 2016-02-06  Andrus Adamchik <an...@objectstyle.org>
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.9 (Darwin)
+
+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
+52ujr6w0mW0=
+=flxx
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub   rsa4096 2017-02-21 [SC]
+      CE7D E8E5 2FC2 1AA1 75FB  9E93 EFBE 8395 88C2 AA2E
+uid           [ultimate] Nikita Timofeev <nt...@apache.org>
+sig 3        EFBE839588C2AA2E 2017-02-21  Nikita Timofeev <nt...@apache.org>
+sig          6D6A84E2D1E9FD5C 2017-02-23  Andrus Adamchik <an...@objectstyle.org>
+sub   rsa4096 2017-02-23 [E]
+sig          EFBE839588C2AA2E 2017-02-23  Nikita Timofeev <nt...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+fwFW2VhoEcMt5UlivoHmpIY=
+=N0zb
+-----END PGP PUBLIC KEY BLOCK-----
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b3dae546/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
new file mode 100644
index 0000000..1212a99
--- /dev/null
+++ b/RELEASE-NOTES.txt
@@ -0,0 +1,467 @@
+Apache Cayenne Release Notes
+============================
+
+For the latest information visit project web site: 
+http://cayenne.apache.org/
+
+To browse individual bug reports check out project issue tracker:
+https://issues.apache.org/jira/browse/CAY
+
+----------------------------------
+Release: 4.0.B3
+Date:
+----------------------------------
+Bug Fixes:
+
+CAY-2253 Cayenne JDK9 compatibility
+CAY-2361 PostgreSQL DbGenerator issues
+CAY-2364 Wrong logging in SQLTemplate
+CAY-2365 SQLExec query tries to convert (unexpected) result set into objects
+CAY-2367 ClassCastException reading object with an attribute of type 'char'
+CAY-2368 ColumnSelect: Property.self() translates into wrong SQL code
+CAY-2370 ValueObjectType for byte[] fails lookup
+CAY-2382 Lack of synchronization in DataContext serialization
+CAY-2387 Can't select byte[] property with ColumnSelect
+CAY-2388 Modeler: Visualization issues with undo/redo actions for attributes and relationships
+CAY-2389 DbEntity qualifier with DbPath expression translates into wrong SQL
+CAY-2392 Modeler: Unable to remove DataNode
+CAY-2401 Modeler: NPE in ObjEntity sync action
+
+----------------------------------
+Release: 4.0.B2
+Date: October 06, 2017
+----------------------------------
+
+Bug Fixes:
+
+CAY-2319 Modeler: Embeddable > Attributes. Undo does not cancel pasted objects
+CAY-2321 cdbimport: Reverse relationship is not created after adding and rev engineeering new db table
+CAY-2323 Modeler: Graph. No warning while saving the image with existing name
+CAY-2331 cgen: broken templates for data map
+CAY-2347 cdbimport: can't get all relationships on the first pass
+CAY-2349 Cache issue: 'SelectQuery' with prefetches loses relationships
+CAY-2350 Expression: NotIn with empty collection returns empty result
+CAY-2353 Broken paginated column select with only one entity in the result
+CAY-2354 DbGenerator.runGenerator must commit its connection
+CAY-2356 EJBQL: Incorrect COUNT() on outer joined table
+CAY-2357 Generic select queries silently convert result to nulls if no PK column found
+CAY-2358 NPE when callbacks invoked on null objects
+CAY-2359 EJBQL: db path in not supported in ORDER BY
+CAY-2362 ColumnSelect: unable to use Property without type
+CAY-2363 ColumnSelect: unable to use from nested context
+CAY-2366 Incorrect EJBQL COUNT translation
+
+----------------------------------
+Release: 4.0.B1
+Date: June 12, 2017
+----------------------------------
+Changes/New Features:
+
+CAY-1873 Move DataDomain cache configuration from the Modeler and into DI
+CAY-1891 Modeler: Add To-Many Warning
+CAY-1892 Modeler: Add Relationship Data Type Warning
+CAY-2057 Modeler: Clean up OS X version
+CAY-2109 cayenne-crypto: add value authentication (HMAC) 
+CAY-2210 Query cache: incorrect cache key for queries with custom value objects
+CAY-2255 ObjectSelect improvement: columns as full entities
+CAY-2258 DI: type-safe binding of List and Map
+CAY-2259 QueryCache: support for referencing type-safe caches
+CAY-2261 Replace NamedQuery with MappedXYZ in *datamap.vm
+CAY-2262 Module auto-loading
+CAY-2266 Move EventBridge implementations into autoloadable modules
+CAY-2267 Contribute lifecycle events listeners via DI
+CAY-2268 DI: Refactor ListBuilder API ambiguities for before() / after() bindings
+CAY-2269 Add support for date/time components extraction in expression functions
+CAY-2270 Update function support in expression parser
+CAY-2271 ColumnSelect: support for prefetch and limit
+CAY-2272 ColumnSelect: methods to manually control DISTINCT clause
+CAY-2274 Modeler: Validate case when dependent PK is marked as “generated”
+CAY-2277 Create ClientRuntime with ClientRuntimeBuilder just like ServerRuntime
+CAY-2278 Extract cayenne-postcommit module from cayenne-lifecycle
+CAY-2280 Switch from commons-logging to slf4j
+CAY-2295 "Sync ObjEntity with DbEntity" and "View related DbEntity" buttons aren't disabled, if DbEntity doesn't have ObjEntity
+CAY-2296 cayenne-crypto: Get java type for DbAttribute bound to ObjAttributes with the same type
+CAY-2300 Modeler: New icons and design improvements
+CAY-2302 Rename postcommit module and its content to commitlog
+
+Bug Fixes:
+
+CAY-2021 cdbimport: detect when same FK constraint is defined twice
+CAY-2077 Bug in CayenneRuntimeException using wrong specified string in Formatter
+CAY-2094 SelectById query doesn't work from ROP client
+CAY-2161 'Not for Client Use' option is ignored at Class Generation
+CAY-2171 Modeler: Undo db Entity Sync throws error
+CAY-2208 SQLTemplate: LEFT JOIN to a subset of a table returns nulls for entries that don't have a match in the subset
+CAY-2230 Error using connection to postgresql with db schema in DB URL
+CAY-2240 Modeler: issue with cursor rendering for EJBQL query
+CAY-2243 ObjectContext.getGraphManager().unregisterObject() inconsistencies
+CAY-2250 Remove: Incorrect text in Confirm Remove message when cursor is set on attribute row
+CAY-2256 Cannot Save/Insert an Object With null Flattened (complex) toOne Relationship (see also CAY-2146)
+CAY-2265 ServerRuntime.builder() fails to set default runtime name when a the project file doesn't follow recognized pattern
+CAY-2273 Modeler: default suggested cgen location is rooted in subpackage
+CAY-2275 Documentation: tutorial is out of sync with 4.0.M5 version
+CAY-2276 PrePersist listener registered as PostPersist in LifecycleCallbackRegistry.addListener(Class<?>, LifecycleListener)
+CAY-2279 cdbimport: skip PK comparison for VIEWs
+CAY-2281 ObjEntity attribute overrides are never deleted
+CAY-2284 Expression likeIgnoreCase can't handle unicode chars in in-memory evaluation
+CAY-2286 Filter out inherited ObjEntities from sync with DbEntity
+CAY-2326 DI: can't override List/Map elements from another Module
+
+----------------------------------
+Release: 4.0.M5
+Date: March 6, 2017
+----------------------------------
+Changes/New Features:
+
+CAY-2139 Upgrade HSQLDB dependency to the most recent version (2.3.4)
+CAY-2150 Refactoring: ParameterBinding to contain ExtendedType property
+CAY-2163 Property.path() , ExpressionFactory.pathExp()
+CAY-2164 Relocate builder bootstrap methods from ServerRuntimeBuilder to ServerRuntime
+CAY-2165 Explicit "contribution" API for easier expansion of DI collections and maps
+CAY-2166 Auto-loading of Cayenne modules
+CAY-2168 Split DbLoader to parts and clean it up
+CAY-2169 Split DbMerger to parts and clean it up
+CAY-2170 MergeToken sorting is highly unstable
+CAY-2172 Cleanup Modeler import and migrate db actions
+CAY-2176 Java 7 diamond class generation templates
+CAY-2177 Sync auto generated state of PK between model and DB
+CAY-2187 Support for the scalar and aggregate SQL functions in ObjectSelect API
+CAY-2197 Update sqlite version and enable in-memory default config
+CAY-2212 cdbimport cleanup and configuration schema refactoring
+CAY-2223 JCacheQueryCache - a query cache provider to plug in JCache implementers
+CAY-2225 Extensible CacheInvalidationFilter logic
+CAY-2228 Deprecate multiple cache groups in caching and query API
+CAY-2231 Support for collections in new functional expressions and old math expressions
+CAY-2232 Proper conversion to String for new functional expressions
+CAY-2235 Deprecate Query.getDataMap() method
+
+Bug Fixes:
+
+CAY-2032 SelectAction: DistinctResultIterator ignores flattened relationships
+CAY-2137 When generating SQL from EJBQL, use "AND" to separate multiple join conditions
+CAY-2174 Change FK attribute name cause ObjAttribute appear after Reverse Engineering
+CAY-2175 AliasName used in EJBQLQuery is not working if it contains mixed case
+CAY-2183 Newly created DbRelationship is unexpectedly renamed by the Modeler
+CAY-2199 Modeler on Windows: The same project is displayed twice in "Recent Projects"
+CAY-2207 Modeler: "Java Type" and "DbAttribute Path" are not saved with using TAB to move forward
+CAY-2221 In-memory expression evaluation gives different result than select query
+CAY-2236 Modeler Migrate DB Schema: unable to Reverse All Operations
+CAY-2238 Modeler: Preserve manually set DbRelationship name when syncing with ObjEntity
+CAY-2242 Vertical Inheritance: Cannot Insert Record For Implementing Class with Attribute And Relationship
+
+----------------------------------
+Release: 4.0.M4
+Date: December 13, 2016
+----------------------------------
+Changes/New Features:
+
+CAY-2051 Applying new Reverse Engineering to the Modeler
+CAY-2053 SQLExec fluent query API
+CAY-2060 Replace Query objects in DataMap with query descriptors
+CAY-2062 MappedSelect and MappedExec fluent query API
+CAY-2063 ProcedureCall fluent query API
+CAY-2065 Pluggable serialization and connectivity layers for ROP
+CAY-2073 Ordering.orderedList methods
+CAY-2074 Support for catalogs in stored procedures
+CAY-2076 Implement Jetty HTTP/1.1 and HTTP/2 Client support for ROP Client
+CAY-2083 Implement Protostuff as serialization service for Cayenne ROP
+CAY-2090 Untangle HttpRemoteService from ServiceContext thread local setup
+CAY-2100 Add supporting generated keys for PostgreSQL
+CAY-2102 EJBQL: db: path not supported in select columns
+CAY-2103 cayenne-crypto: support for mapping non-String and non-binary types
+CAY-2106 cayenne-crypto: allow DI contribution of type converters inside ValueTransformerFactory
+CAY-2107 cayenne-crypto: Lazy initialization of crypto subsystem
+CAY-2111 Unbind transaction object from the current thread for iterated queries
+CAY-2112 Expose callback for "performInTransaction"
+CAY-2113 cdbimport: Reverse-engineering reinstates previously ignored columns
+CAY-2114 cdbimport: object layer settings are not respected
+CAY-2115 DbLoader - allow loading DataMap without Obj layer
+CAY-2116 Split schema synchronization code in a separate module
+CAY-2118 cdbimport: drop support for the old style of table filtering
+CAY-2129 Modeler: reengineer dialog improvements
+CAY-2130 Stripping common name prefixes on reverse engineering
+CAY-2132 Adding SybaseSelectTranslator to support TOP/DISTINCT TOP in limited queries
+CAY-2133 ObjectNameGenerator refactoring - unifying relationship name generation
+CAY-2135 cdbimport: reset DbEntity catalogs / schemas to DataMap defaults
+CAY-2136 Allow Ordering.orderedList(…) methods to accept a Collection rather than only a List
+CAY-2160 Modeler: new welcome screen
+CAY-2222 MySQLAdapter should not create indexes on FK columns
+
+Bug Fixes:
+
+CAY-2016 cdbimport: Rename table with toMany relationship causes migration error
+CAY-2064 Issue with BeanAccessor for classes with complex inheritance
+CAY-2066 Fixes for inner enums handling in ExtendedTypeMap
+CAY-2067 Cayenne 4.0 connection pool is occasionally running out of connections
+CAY-2070 Modeler sync function adds extraneous ObjRelationships inside the class hierarchy
+CAY-2078 Client code gen bug. Unnecessary DataMap class generation setting datamap gen to false.
+CAY-2080 Cayenne doesn't pick up reverse engineering file changes
+CAY-2084 ObjectIdQuery - no cache access polymorphism
+CAY-2086 SelectById.selectFirst stack overflow
+CAY-2087 PostCommitFilter is confused about changes made by Pre* listeners
+CAY-2089 HTTP connections aren't always closed in new ROP implementation
+CAY-2097 NullPointerException while updating relationships for entities with vertical inheritance
+CAY-2101 DataContext.currentSnapshot() doesn't set snapshot entity name
+CAY-2105 Add missing elements to the reverseEngineering.xsd
+CAY-2108 cayenne-di: StackOverflow for decorator that takes Provider of the delegate
+CAY-2110 Obfuscated exception when processing iterated results
+CAY-2119 ProjectUpgrader test failure (Windows)
+CAY-2122 Vertical Inheritance: Cannot Insert Record For Implementing Class with Attribute And Relationship
+CAY-2125 SchemaUpdateStrategy doesn't work with multiple DataNodes
+CAY-2126 Modeler cannot upgrade project from v7 to v9
+CAY-2128 Modeler stored procedures are not imported
+CAY-2131 Modeler NullPointerException in reverse engineering when importing different catalogs in one datamap
+CAY-2138 NVARCHAR, LONGNVARCHAR and NCLOB types are missing from Firebird types.xml
+CAY-2141 Disjoint-by-id prefetch generates repeating ID conditions
+CAY-2143 NPE in BaseSchemaUpdateStrategy
+CAY-2144 cdbimport always fails for databases which don't support catalogs
+CAY-2146 Vertical inheritance: record still inserted into parent db table when child validation fails
+CAY-2148 Failure upgrading from 3.1 to M4
+CAY-2150 UI bug: PK generation custom sequence is getting reset
+CAY-2151 Migrate Database Schema: issue when no db is specified
+CAY-2153 Modeler Exception in save action after reverse engineering some complex DB schema
+CAY-2154 Migrate db: queries order
+CAY-2226 PK generation for Frontbase: PK cache size must be ignored
+
+----------------------------------
+Release: 4.0.M3
+Date: February 12, 2016
+----------------------------------
+Changes/New Features:
+
+CAY-1626 Add JodaTime DateTime support
+CAY-1902 Implement resolving Db paths for DataObjects
+CAY-1991 More control over generated String property names
+CAY-1992 Allow to exclude DataMap java class from Modeler class generation
+CAY-1995 Add support for iterators to Select
+CAY-2001 Saving a display state of Project
+CAY-2004 EJBQL: Support for ordering on aggregate expressions
+CAY-2007 Refactoring SelectTranslator for better extensibility
+CAY-2008 Connection pool refactoring and validation query support in Cayenne DataSource
+CAY-2009 Non-blocking connection pool
+CAY-2010 DataSourceBuilder to help users create pooling and non-pooling DataSources
+CAY-2011 Support for Java 8 date and time types
+CAY-2012 ObjectSelect, SelectById: eliminating methods that reset query state
+CAY-2013 In-memory evaluation of DB expressions - non-id attributes
+CAY-2023 Decouple the use of ResourceLocator
+CAY-2025 Support for DBCP2
+CAY-2026 Java 7
+CAY-2027 Support for Expression outer join syntax in EJBQL
+CAY-2028 Wrap DataChannelFilter calls in the main transaction
+CAY-2029 Allow out-of-order insertion into DI lists
+CAY-2030 Capturing a stream of commit changes
+CAY-2035 Autobind items added to collections (Cayenne DI)
+CAY-2042 Remove an arbitrary limitation on 1000 runtime DbRelationships
+CAY-2043 ServerRuntimeBuilder: use DataDomain name for the default DataNode
+CAY-2044 Collection setter for to-many relationships
+CAY-2045 Add autosuggestion fields to choose attributes and relationships
+
+Bug Fixes:
+
+CAY-1977 Cleanup Modeler reverse engineering functionality
+CAY-1987 Widen types before performing in-memory evaluation of qualifiers using j.l.Number subclasses
+CAY-1990 Incorrect display of the raw SQL query in Modeler
+CAY-1993 Reverse Engineering does not work with PostgreSQL database
+CAY-1994 Modeler Migration Tool Shows No Changes
+CAY-1997 Difference in NULL handling inside the path between PropertyUtils and DataObject.readNestedProperty
+CAY-1998 Speeding up PropertyUtils
+CAY-1999 Unneeded Property import for superclasses with no properties
+CAY-2003 cdbimport doesn't work properly with several includeTable tags
+CAY-2015 Joint prefetches combined with DisjointById prefetches return null incorrectly
+CAY-2020 typo: correction to upper alpha range in Rot13PasswordEncoder
+CAY-2041 "cayenne.jdbc.max_connections" and "cayenne.jdbc.min_connections" command line options are ignored
+CAY-2047 Relationship mapping with target inheritance
+CAY-2049 Changing the Relationship name in ObjRelationship Inspector has no effect
+
+----------------------------------
+Release: 4.0.M2
+Date: March 18, 2015
+----------------------------------
+Changes/New Features:
+
+CAY-1267 Some changes to LogDialog
+CAY-1826 Merge Entity Attributes and Relationships tabs together with one toolbar.
+CAY-1839 Allow to link DataMaps to DataNodes from DataNode editor.
+CAY-1841 Filters for Left-hand project navigator
+CAY-1842 Remove Listeners support from the Modeler 
+CAY-1843 DataMap v7: Stop saving listeners in DataMap, add upgrade handler
+CAY-1845 Upgrade javadoc plugin to 2.9.1 
+CAY-1846 Reworking of callback mapping
+CAY-1847 Make ConverterFactory extensible
+CAY-1848 New method: ObjectContext.selectOne(Select query) 
+CAY-1851 Generate default serialVersionUID for generated java classes to avoid eclipse warnings
+CAY-1852 Straighten thread model and synchronization in the Modeler 
+CAY-1855 Iterated and paginated queries must print result counts 
+CAY-1856 Expression.expWithParameters does not work when parameters are placed in the inline collection 
+CAY-1860 In-memory matching of DataObjects against ObjectId or int
+CAY-1861 Remove runtime relationships
+CAY-1870 cgen - smarter default for 'superPkg' and 'destDir'
+CAY-1882 Porting to OSGi environment
+CAY-1883 Clean up Cayenne maven structure
+CAY-1886 cayenne-di module reorg, new exceptions
+CAY-1890 Remove Cayenne-level buffering when retrieving LOBs
+CAY-1894 Support native PK generation using sequences for H2 databases
+CAY-1899 ServerRuntimeBuilder
+CAY-1900 Allow DataNode name to be used as a root of SQLTemplate
+CAY-1901 Config-free ServerRuntime
+CAY-1904 Simple injection-friendly constructor for AuditableFilter
+CAY-1907 RowReaderFactory
+CAY-1908 Refactor all SQLActions to work with DataNode
+CAY-1911 BatchQuery refactoring - make Iterable
+CAY-1912 BatchQueryBuilder refactoring
+CAY-1913 Refactor org.apache.cayenne.access.trans into query-specific packages
+CAY-1914 Refactor EJBQL-related translators to a standalone 'org.apache.cayenne.access.translator.ejbql' package
+CAY-1915 BatchTranslator instead of performing bindings should return binding object whose values can be altered
+CAY-1916 cayenne-crypto module that enables data encryption for certain model attributes
+CAY-1918 Replace Oracle LOB hacks with JDBC 4.0 API
+CAY-1919 Split DataNode creation into a separate DataNodeFactory
+CAY-1920 DI: add support for decorators
+CAY-1921 Support for schema selection in 'Migrate Database Schema'
+CAY-1923 Optimize BatchTranslator - use fixed size array of BatchParameterBinding
+CAY-1925 cayenne-crypto: add optional compression to the encryption pipeline
+CAY-1928 Second INNER join generated for OUTER flattended relationships in disjoint prefetches
+CAY-1929 Property.outer method to build OUTER join properties
+CAY-1932 Improved Handling for Scalar Parameters Converting Expressions to EJBQL
+CAY-1933 Problems in Evaluating EJBQL Statements with Integral Literals > Integer.MAX_VALUE
+CAY-1934 A problem exists where the escape character is not conveyed in the EJBQL when toEJBQL() is invoked on the expression.
+CAY-1936 ServerRuntime.getDataSource() returning DataSource of a default DataNode
+CAY-1937 Make Transaction an interface
+CAY-1938 Create a DI factory for transactions, get rid of TransactionDelegate and modeler config for tx policies
+CAY-1939 DataDomain must use injectable TransactionManager
+CAY-1946 CDbimport improvements
+CAY-1949 Search in configuration fields (Catalog, Schema) in DbEntity
+CAY-1952 Undeprecate (actually restore) ObjectContext.deleteObject(..)
+CAY-1953 Redo ResultIteratorCallback to handle single row callback instead of iterator
+CAY-1954 Make Cayenne class constructor protected
+CAY-1958 SelectById - a new full-featured select query to get objects by id
+CAY-1959 ObjectSelect query - a fluent API alternative to SelectQuery
+CAY-1960 ExpressionFactory.exp(..) , and(..), or(..)
+CAY-1962 Implement CayenneTable column resize on double-click on the header separator
+CAY-1965 Change version from 3.2 to 4.0
+CAY-1966 SQLTemplate/SQLSelect positional parameter binding
+CAY-1967 Deprecate SQLTemplate parameter batches
+CAY-1968 SQLSelect cleanup and omissions
+CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)
+CAY-1972 A property to override DataSources of multi-module projects 
+CAY-1981 Add support of JDBC 4.0 N-types (nchar, nvarchar, longnvarchar, nclob)
+CAY-1984 cdbimport doesn't flatten many to many relationships
+
+Bug Fixes:
+
+CAy-1988 ServerRuntimeBuilder: synthetic DataNode does not have domain's DataMaps linked
+CAY-1480 Implement cross-db functional expressions
+CAY-1695 Unexpected null value in bidirectional one-to-one prefetch 
+CAY-1736 IllegalArgumentException when synchronizing entities in the Modeler
+CAY-1795 "Invisible" ObjAttribute in subclass
+CAY-1796 ROP: All entity's to-many relationships getting faulted from database when using it as a parameter in qualifier expression
+CAY-1797 NPE importing DataMap
+CAY-1798 ROP: Reverse relationships of prefetched entity objects are not filled during server to client objects conversion
+CAY-1799 ROP: Server can't deserialize LIKE expression with pattern already compiled
+CAY-1818 Fix copyright year in the Modeler "about" panel
+CAY-1834 Exception: ToManyList cannot be cast to DataObject 
+CAY-1857 Problem with hotkeys 
+CAY-1859 NullPointerException when importing EOModel 
+CAY-1863 Make determining whether a particular database type supports length adapter-specific not universal
+CAY-1866 Change in General Modeler Preferences reverts old settings to default value
+CAY-1868 Select contention with multiple contexts 
+CAY-1869 ResultIterator from cayenne-client dependency is subclassed from org.apache.cayenne.access.ResultIterator which is present only in cayenne-server dependency 
+CAY-1874 DB2 Procedure action ignores the first result set
+CAY-1877 In-memory evaluation of expression may fail with UnsupportedOpeartionException depending on order of nodes
+CAY-1880 objectStore snapshots never cleared from RefreshQuery when "use shared cache" unchecked
+CAY-1881 CayenneModeler (Mac version) doesn't work with Java 7
+CAY-1885 Null value in subclass's field.
+CAY-1905 Multi-step prefetching NPE : 1..N..1 with absent N and root with no qualifier
+CAY-1943 XML file not deleted when a DataMap is deleted from the project
+CAY-1961 Fix RemoveAction for DataMaps in ProjectTree
+CAY-1964 Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java
+CAY-1973 error while generating classes
+CAY-1974 Copy/Paste DbEntiry throws exception
+CAY-1978 ESCAPE clause should be included in LIKE parenthesis
+CAY-1979 Prefetches on Many-to-Many Relationships with Longvarchar
+CAY-1980 'mvn cayenne-modeler:run' seems to be broken in 4.0
+
+----------------------------------
+Release: 3.2M1
+Date: July 19, 2013
+----------------------------------
+Changes/New Features:
+
+CAY-1294 Generify query
+CAY-1646 Synchronize tabs in Modeler between ObjEntity and DbEntity editor panes
+CAY-1647 Easily switch to/from ObjEntity and DbEntity in Modeler
+CAY-1717 [PATCH] Implement JDBC compatibility layer methods
+CAY-1718 Remove everything deprecated in 3.1
+CAY-1724 Add 'Property' class for easier and better Expression creation
+CAY-1726 Expression parser support for bit operators, support for << and >>
+CAY-1737 ObjectContexts listening to DataChannel events must be non-blocking
+CAY-1748 IdCoder/EntityIdCoder improvements to work with ObjectIds, including temp ones
+CAY-1753 remove light-superclass.vm class template
+CAY-1754 Modeler suggested URL for SQLServer should start with 'jdbc:sqlserver:' instead of 'jdbc:microsoft:sqlserver:'
+CAY-1758 cdbimport improvements
+CAY-1759 cdbimport improvements: add 'catalog', rename 'schemaName' to 'schema'
+CAY-1760 cdbimport improvements: Default adapter (if none specified) must be AutoAdapter, not JdbcAdapter 
+CAY-1761 cdbimport improvements: DbLoader must reverse engineer PK auto-increment state. 
+CAY-1762 cdbimport improvements: Support for "defaultPackage" parameter, as the new DataMaps ends up placing entities in the root package 
+CAY-1763 cdbimport improvements: specified "schema" should become the default schema of the generated DataMap 
+CAY-1764 cdbimport improvements: "overwrite" flag
+CAY-1765 cdbimport improvements: add excludeTables/includeTables parameters
+CAY-1766 Deprecating DataPort ant task
+CAY-1768 cdbimport improvements: DataMap "project-version" attribute is skipped when DM is saved
+CAY-1769 cdbimport improvements: meaningfulPk flag must be turned into a pattern
+CAY-1771 cdbimport improvements: "usePrimitives" flag
+CAY-1772 Real support for DbEntity catalogs
+CAY-1778 TransactionManager to simplify user-managed transactions 
+CAY-1779 Flatten object entities for many to many relationships on reverse engineering 
+CAY-1781 Add StatelessContextRequestHandler as an alternative to the Session-based one
+CAY-1785 SelectQuery<T> for DataRows
+CAY-1789 Lock-free EntityResolver 
+CAY-1792 [PATCH] Supply additional factory methods for generic SelectQueries 
+CAY-1803 Optimize Expression conversion to String and EJBQL 
+CAY-1809 Remove 'final' modifier from Cayenne, HessianUtil, PropertyComparator, ConversionUtil, and LinkedDeque
+CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
+CAY-1814 Support Property.nin 
+CAY-1819 When adding a filter, auto-register it as a listener 
+CAY-1820 DataDomain.addListener(Object) - a shortcut for adding annotated listeners 
+CAY-1821 AuditableFilter and friends should explicitly work with Persistent instead of Object
+CAY-1822 Make DataMap editor fields wider 
+CAY-1823 remove ":sync w/DbEntity" button from ObjEntity - it is redundant and already present on the entity toolbar. 
+CAY-1825 Simplify API for setting up query caching
+CAY-1828 SQLSelect - generics friendly fluent selecting sql query
+CAY-1829 Make ResultIterator implement Iterable<T>, create ObjectContext.iterate method
+CAY-1836 Firebird Adapter 
+CAY-1838 Deprecate EntityResolver.indexedByClassProperty
+CAY-1840 Conditionally log slow / long-running queries
+CAY-1844 Configuration for maximum time to wait for an available DB connection
+CAY-1862 MySQL - allow specifying a length for TIMESTAMP and TIME columns
+
+Bug Fixes:
+
+CAY-957 Deadlock in nested contexts
+CAY-1522 EJBQL query don't support quotes
+CAY-1677 Modeler: text fields discard input unless you press enter
+CAY-1701 Modeler cannot undo pasting of obj (db) entity
+CAY-1708 Modeler error when pasting datamap with EJBQL query
+CAY-1714 ROP: Cayenne tries to build a query for non committed object when using more than 2 nested contexts 
+CAY-1721 Writing blobs fails (Oracle)
+CAY-1725 NullPointerException from call to removeToManyTarget
+CAY-1719 Modeler - Obj Attribute Java Type editor won't focus sometimes
+CAY-1727 Modeler thinks entity is using inheritance when it doesn't
+CAY-1729 PersistentDescriptor must have predictable property iteration order
+CAY-1738 Tutorial cayenne-rop-server should be packaged as a war
+CAY-1739 Cayenne ROP server resets session on every request if BASIC auth is used
+CAY-1742 ObjRelationship inspector says "ObjAttribute Inspector"
+CAY-1744 Unexpected read-only relationships in vertical inheritance mapping
+CAY-1749 NPE on simple nested context commit
+CAY-1755 FaultFailureException resolving relationships to UNIQUE non-PK columns
+CAY-1757 ROP: Faulting entity relationship resets uncommitted modifications made to its reverse relationship 
+CAY-1774 EhCacheQueryCache.get(QueryMetadata, QueryCacheEntryFactory) returns null if EhCache instance for group is not present
+CAY-1780 cdbimport do not create xml file in resource folder
+CAY-1782 Deadlock when performing many concurrent inserts
+CAY-1783 JdbcPkGenerator.longPkFromDatabase would throw an exception if the PK value exceeds a range of Java int
+CAY-1794 Duplicate attributes in discriminator columns of PersistentDescriptor
+CAY-1804 Serialisation of long[] type was not working correctly. 
+CAY-1806 Error importing eomodel 
+CAY-1817 NPE during Validate Project 
+CAY-1827 EhCache region corresponding to a cache group loses its settings after 'removeGroup'
+CAY-1832 Exception when modifying objects in postLoad callback
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b3dae546/UPGRADE.txt
----------------------------------------------------------------------
diff --git a/UPGRADE.txt b/UPGRADE.txt
new file mode 100644
index 0000000..45ae5d1
--- /dev/null
+++ b/UPGRADE.txt
@@ -0,0 +1,548 @@
+Apache Cayenne Upgrade Information
+==================================
+
+IMPORTANT: be sure to read all notes for the intermediate releases between your
+           current release and the release you are upgrading to.
+-------------------------------------------------------------------------------
+
+UPGRADING TO 4.0.B1
+
+* Per CAY-2302 postcommit module and all it's internals renamed to commitlog.
+      Most important change is the new @CommitLog annotation which should be used instead of @Auditable,
+      this change is backward incompatible and most likely for you to miss as IDE won't give you a hint.
+      Please keep in mind that new @CommitLog annotation is used only by commitlog module.
+      Deprecated functionality in lifecycle module still depends on @Auditable annotation.
+
+      Here is list of steps you should do in order to update your code:
+      - include cayenne-commitlog module into your project (i.e. add dependency to your pom.xml)
+      - remove cayenne-lifecycle (and cayenne-postcommit if you have it) module from your project
+      - switch usages of @Auditable to @CommitLog
+      - change usages of renamed classes, here is two classes most likely used by your code:
+             PostCommitListener      -> CommitLogListener
+             PostCommitModuleBuilder -> CommitLogModuleExtender
+      - fix all imports for renamed packages:
+             org.apache.cayenne.lifecycle.postcommit -> org.apache.cayenne.commitlog
+             org.apache.cayenne.lifecycle.changemap  -> org.apache.cayenne.commitlog.model
+      - change CommitLogModuleExtender methods:
+             auditableEntitiesOnly() -> commitLogAnnotationEntitiesOnly()
+             build()                 -> module()
+
+* Per CAY-2280 Cayenne migrated from commons-logging to SLF4J.
+      Here is options you have to upgrade your project accordingly:
+      1) Migrate your logging to SLF4J. Please see https://www.slf4j.org for documentation about
+      inclusion into your project logging backend of you choice.
+
+      2) Other option is to use commons-logging over SLF4J and keep all logging compatible with previous Cayenne versions.
+      In order to do so you need:
+      - remove commons-logging dependency if you have it
+      - add to your project slf4j-jcl dependency
+
+      As a part of this change classes CommonsJdbcEventLogger and FormattedCommonsJdbcEventLogger
+      were renamed to Slf4jJdbcEventLogger and FormattedSlf4jJdbcEventLogger respectively.
+      Internally they are using now org.apache.cayenne.log.JdbcEventLogger interface as a logger name.
+
+* Per CAY-2278 Packages org.apache.cayenne.lifecycle.audit and org.apache.cayenne.lifecycle.changeset where deprecated.
+       Please use instead cayenne-commitlog module and its new @CommitLog annotation.
+
+       Weighted graph sorter moved to cayenne-server into org.apache.cayenne.ashwood package.
+
+       Packages org.apache.cayenne.lifecycle.changemap and org.apache.cayenne.lifecycle.postcommit
+       where moved to the new cayenne-commitlog module.
+
+       Please change your code accordingly (see also notes above for CAY-2302).
+
+* Per CAY-2277 ClientRuntime created with ClientRuntimeBuilder, direct instantiation of
+       ClientRuntime is deprecated. Also whole ClientLocalRuntime class is deprecated, use instead
+       ClientRuntimeBuilder.local() method.
+
+* Per CAY-2262 Client modules are now auto-loaded by default to turn off auto-loading use
+       ClientRuntimeBuilder.disableModulesAutoLoading() method.
+
+       List of client modules:
+       - cayenne-client
+       - cayenne-client-jetty
+       - cayenne-protostuff (it also supports auto-loading by ServerRuntimeBuilder)
+
+       Also new modules are extracted from the existing one and should be added to your pom.xml if the corresponding
+       functionality is used by your project:
+       - cayenne-cache-invalidation (was part of cayenne-lifecycle)
+       - cayenne-commitlog (was part of cayenne-lifecycle)
+
+* Per CAY-2259 Cache invalidation module refactored to provide new functionality and better align with
+       new module autoloading functionality. Here is list of changes:
+       - Package org.apache.cayenne.lifecycle.cache renamed to org.apache.cayenne.cache.invalidation.
+       - CacheInvalidationModuleBuilder renamed to CacheInvalidationModuleExtender and its method build()
+       renamed to module().
+       - InvalidationFunction returns CacheGroupDescriptor instead of simple String with cache group name,
+       so you need to change your custom functions accordingly.
+
+* Per CAY-2268 DI methods for binding ordered lists, introduced in 4.0.M3 where changed:
+       - method after() replaced by explicit addAfter(), addAllAfter()
+       - method before() replaced by insertBefore(), insertAllBefore()
+
+* Per CAY-2258 Injection of List and Map are made type-safe, as a result small incompatibilities are introduced.
+  If you are using following methods:
+        - bindMap(String bindingName)
+        - bindList(String bindingName)
+  you should change them to corresponding type-safe versions:
+        - bindMap(Class<T> valueType, String bindingName)
+        - bindList(Class<T> valueType, String bindingName)
+  Also if you are using DI Keys like Key.get(Map.class, "bindingName") or Key.get(List.class, "bindingName")
+  you should use new corresponding factory methods Key.mapOf(MapValues.class, "bindingName")
+  and Key.listOf(ListValues.class, "bindingName").
+  Additionally new API allows you to bind Lists and Maps without using names:
+        - binder.bindList(SomeUniqueType.class).add(...);
+        - @Inject List<SomeUniqueType> list;
+
+* Per CAY-1873 and CAY-2266 Cache and remote notification configuration was moved from Modeler into
+  runtime DI settings. To set custom cache size, you should use custom module like this:
+        Module module = binder -> {
+            ServerModule.setSnapshotCacheSize(binder, 20000);
+        };
+  Or you can use cmd line arg: -Dcayenne.DataRowStore.snapshot.size=20000
+
+  If you have used remote notifications, you should include one of the following modules into your project:
+        - cayenne-jgroups
+        - cayenne-jms
+        - cayenne-xmpp
+  For maven users this can be easily done by adding dependency to pom.xml:
+        <dependency>
+            <groupId>org.apache.cayenne</groupId>
+            <artifactId>cayenne-jgroups</artifactId>
+            <version>4.0.M6</version>
+        </dependency>
+
+  Module will be autoloaded and remote notifications enabled, so only thing you need is to provide configuration.
+  Custom DI module should be used for that, e.g. for JGroups:
+        Module module = binder -> {
+            JGroupsModule.contributeMulticastAddress(binder, MCAST_ADDRESS);
+            JGroupsModule.contributeMulticastPort(binder, MCAST_PORT));
+        };
+
+
+* Per CAY-2256 Fix for CAY-2146 was reverted, as it appears that we can't reliably deduce whether
+  relationship is optional or not. So in case of mandatory relationships in vertical inheritance
+  you should perform manual validation before insert by using "prePersist" callback in your
+  object (you can create it in the Cayenne Modeler) or by overriding "validateForSave" method.
+
+
+UPGRADING TO 4.0.M5
+
+* Per CAY-2186 DerbyPkGenerator switched from AUTO_PK_TABLE to sequence-based PK generator
+  If you relied in anyway on AUTO_PK_TABLE usage in derby, you should change your code.
+
+* Per CAY-2228 Support for multiple cache groups has been removed from caching and query API
+  as none of the modern providers supports it. If you relied on this feature you should
+  implement it by yourself or change caching provider
+
+* Per CAY-1980 "maven-cayenne-modeler-plugin" renamed to "cayenne-modeler-maven-plugin"
+
+* Per CAY-2225 CacheInvalidationFilter has been changed to support custom invalidation rules,
+  in addition to the rule based on @CacheGroups annotation.
+  If you have used it previously, you should change its binding to runtime from direct binding in
+  a custom module to a module built by CacheInvalidationModuleBuilder.
+
+* Per CAY-2212 cdbimport tool revisited once again, so configuration of Maven plugin should be changed.
+  - "maven-cayenne-plugin" is deprecated, please switch to "cayenne-maven-plugin"
+  - <reverseEngineering> tag replaced with <dbimport> tag
+  - new <dataSource> tag introduced that should enclose all connection properties:
+    1. <driver>
+    2. <url>
+    3. <user>
+    4. <password>
+
+  - top level properties moved to <dbimport>:
+    1. <defaultPackage>
+    2. <forceDataMapCatalog>
+    3. <forceDataMapSchema>
+    4. <meaningfulPkTables>
+    5. <namingStrategy>
+    6. <stripFromTableNames>
+    7. <usePrimitives>
+
+  - Java 8 java.time.* types are now used by default in cdbimport (and in "Reengineer Database Schema" tool in Modeler)
+  This can be controlled by <useJava7Types> property in <dbimport> (or checkbox in Modeler).
+
+  - For Ant users: cayenne-tools.jar split into two parts:
+    1. cayenne-ant.jar for Ant tasks
+    2. cayenne-cgen.jar for class generation functionality (required only for cgen task)
+
+
+* Per CAY-2166, Cayenne supports auto-loading of DI modules. There are a few changes worth mentioning:
+  - Service override policies. In the previous 4.0 milestones custom modules would override "builder" modules
+  (i.e. implicit modules that wrap around various customizations made in response to the builder method calls). It
+  seemed logical to reverse this order, and let builder modules override custom modules. As the builder is
+  invoked explicitly when the stack assembly is performed, while modules can be written without any knowledge of the
+  final stack.
+  - Module Renaming and Explicit Loading of Modules. If you see compile errors (class not found for CayenneJodaModule,
+   CayenneJava8Module), just remove explicit loading of those modules. They will be auto-loaded if they are on classpath.
+   If you explicitly turn off auto-loading, use the new names for these modules: JodaModule and Java8Module.
+
+* Per CAY-2164, creating a ServerRuntimeBuilder is done via a static method on ServerRuntime ("ServerRuntime.builder()").
+  The previous style (ServerRuntimeBuilder.builder()) is deprecated and will soon be removed, so you should replace it
+  with the new API.
+
+UPGRADING TO 4.0.M4
+
+* Per CAY-2133, LegacyObjectNameGenerator is no longer provided, as it wasn't possible to maintain it in a fully backwards-
+  compatible manner. Embrace the new naming scheme, or provide your own ObjectNameGenerator if you absolutely need the
+  old names.
+
+* Per CAY-2125 we no longer inject SchemaUpdateStrategy directly. Instead SchemaUpgradeStrategyFactory is injected.
+  If you have your own modules with SchemaUpdateStrategy injection, it will be ignored. So please review your
+  DI code and update it to use SchemaUpgradeStrategyFactory (or likely its subclass).
+
+* Per CAY-2060 4.0.M4 changes the way queries are stored in the mapping files, so all existing *.map.xml files should be upgraded.
+  To do that open each of your existing projects in the new CayenneModeler. Agree to perform an upgrade when asked. 
+
+  Also EntityResolver.getQuery(String) method is removed. If you relied on it, consider switching to MappedSelect or MappedExec query, or if you absolutely need to get a hold of specific query, use EntityResolver.getQueryDescriptor(String).buildQuery().
+
+* Per CAY-2065 ROPHessianServlet has been discarded in favor of new implementation called ROPServlet,
+  so if you were using org.apache.cayenne.configuration.rop.server.ROPHessianServlet in your web.xml configuration,
+  you must change it to org.apache.cayenne.rop.ROPServlet
+
+* Per CAY-2118 we stopped a bunch of deprecated keys in cdbimport configuration, and also removed the ability to set
+  properties of "reverseEngineering" config object at the top level of configuration. So you will always need
+  <reverseEngineering></reverseEngineering> tag in Maven (but not Ant) to setup any DB filtering. Removed top-level
+  configuration keys:
+
+  1. catalog
+  2. schema (also schemaName)
+  3. excludeTables
+  4. includeTables
+  5. procedurePattern
+  6. tablePattern
+  7. importProcedures
+  8. meaningfulPk
+  9. overwrite
+
+UPGRADING TO 4.0.M3
+
+* Per CAY-2026 minimal Java version is now 1.7. If you are still need Java 1.6, you can use Cayenne 3.1 or 4.0.M2 until your
+  application is able to upgrade. 
+
+* We no longer add @Deprecated annotation to generated String property names in entity superclasses.
+  Instead String property names inclusion
+  became optional, controlled with "createPropertyNames" flag in cgen ("false" by default). Also a similar option
+  was added to Advanced Type of CayenneModeler class generation dialog.
+  Note if you have references to @Deprecated String properties and you run cgen without "createPropertyNames" flag,
+  there will be errors. Reference Jira: CAY-1991
+
+* Per CAY-2008, CAY-2009 we got rid of org.apache.cayenne.conn.PoolManager and associated classes that made up a 
+  pooling DataSource. A replacement is non-blocking DataSource under org.apache.cayenne.datasource (PoolingDataSource, ManagedPoolingDataSource),
+  best assembled using org.apache.cayenne.datasource.DataSourceBuilder.
+
+* Per CAY-2012 API for ObjectSelect and SelectById queries were changed to remove "reset" functionality. Methods like 'where', 'prefetch',
+  'orderBy' that would previously reset the corresponding option state now work as "append". Methods that would previously append to the
+  option state were removed as redundant. Please revisit your code if you previously relied on the reset behavior.
+
+* If you are using DBCPDataSourceFactory, you will need to take a few steps to upgrade:
+
+  - Per CAY-2025 and CAY-2026, DBCPDataSourceFactory is now based on DBCP2 (which is required under Java 1.7 and newer).
+  - Check your DBCP properties file to ensure it uses property names supported by DBCP. 
+    (In the past Cayenne would require prefixing those properties with 'cayenne.dbcp.'. If you still have that prefix, remove it).
+  - To use DBCPDataSourceFactory, you will now have to explicitly include an extra Cayenne module, as it is no longer in cayenne-server. 
+    E.g. if you are using Maven:
+
+    <parent>
+      <groupId>org.apache.cayenne</groupId>
+      <artifactId>cayenne-dbcp2</artifactId>
+      <version>4.0.M3</version>
+    </parent>
+ 
+
+UPGRADING TO 4.0.M2
+
+* Note that 3.2 line of development was renamed to 4.0. So 4.0.M2 is a straight descendant of
+  3.2M1.
+
+* org.apache.cayenne.map.naming.SmartNamingStrategy was replaced with org.apache.cayenne.map.naming.DefaultNameGenerator. If you
+  mentioned SmartNamingStrategy explicitly in your Maven or Ant configs, make sure you rename it. Since this was/is the default,
+  chances are that you didn't.
+
+* Minimal required JDK version is now 1.6 (both for modeler and runtime). This is a pretty conservative 
+  requirement, considering that Java 1.6 has been EOL'd by Oracle on Feb 2013.
+
+* Managing listeners in the Modeler is counterproductive and confusing,
+  so support for them was removed from the Modeler per CAY-1842. If you have
+  any listeners in the model, delete them from XML, and start using annotations,
+  and register them in runtime:
+
+  runtime.getDataDomain().addListener(myListener);
+
+* Cayenne.objectForSelect(Select) that was present in 3.2M1 was replaced with ObjectContext.selectOne(Select). 
+
+* In-memory expression eval (Expression.match/Expression.evaluate) will now return true when matching Persistent
+  with ObjectId or Number or String (if those correspond to a given object's ObjectId). Also 2 objects in 2 different
+  ObjectContexts will match even if they have differing local changes. Only their ObjectIds are compared. 
+  See CAY-1860 for details.
+
+* ResultIterator was moved to org.apache.cayenne to make it available on both server and client. When you upgrade
+  related iterator code, make sure to check ResultIterator improvements (e.g. it implements Iterable, it is no 
+  longer limited to DataRows and can fetch objects just as easy, it no longer requires catching checked exceptions). 
+  Also check ObjectContext.iterate(..) method.
+
+* Transaction management was refactored significantly:
+
+  * External transactions are no longer configured in the Modeler. Instead they are provided as a DI property
+    defined in Constants.SERVER_EXTERNAL_TX_PROPERTY.
+
+  * TransactionDelegate is no longer present. Similar functionality can be achieved by writing a decorator for 
+    Transaction interface and using a custom TransactionFactory to decorate standard transactions.
+
+  * If your code relied on static methods Transaction.externalTransaction() or Transaction.internalTransaction() for
+    manual tx management, use constructors of ExternalTransaction and CayenneTransaction classes instead.
+
+* When switching to ServerRuntimeBuilder, users of multi-config projects may erroneously assume it has the same 
+  behavior as 3.1 ServerRuntime in assigning domain name to the resulting merged project. Which is to use the 
+  name of the last project config. We are trying to move away from this behavior, so ServerRuntimeBuilder 
+  will only use config name if there's only one config and no override. Otherwise it will use the override, 
+   or if not set - "cayenne" as the default name. Reference Jira: CAY-1972
+
+
+
+UPGRADING TO 3.1B1
+
+* In an attempt to better organize DI configuration and ultimately make it easier to understand, 
+  all properties and DI collection keys were placed in a single Constants interface. The property and key String 
+  values were changed to follow a single convention. Please refer to https://issues.apache.org/jira/browse/CAY-1665
+  for mapping between the old and the new names.
+
+  If you are upgrading from the earlier 3.1 releases, please change your code and runtime parameters accordingly.
+  3.0 users may still review the new property names as some of them existed prior to DI.
+
+UPGRADING TO 3.1M3
+
+* DataMap listeners are no longer supported. Global listeners registered through
+  annotations API can be used instead. E.g.:
+
+	public class SomeListener {
+		@PrePersist
+		public void onPrePersist(Object object) {
+			// callback method
+		}
+	}
+
+  To register listener class use following API:
+
+	runtime.getChannel().getEntityResolver().getCallbackRegistry().addListener(listenerInstance);
+
+  Note that DataMap listeners entries from old *.map.xml files will be ignored.
+
+
+UPGRADING TO 3.1M1
+
+The most essential change in Cayenne 3.1 is a new Dependency-Injection (DI) based
+bootstrap and configuration mechanism, which is not backwards compatible with 3.0.
+Read on to learn about specific areas that require attention when upgrading your
+application.
+
+* Upgrading 3.0.x mapping files: Open each of your existing projects in the new 
+  CayenneModeler. Agree to perform an upgrade when asked. Note that Cayenne
+  3.1 only supports one DataDomain per project, so if multiple domains existed in 
+  the project, you'll end up with multiple project files  after the upgrade. Each 
+  will require instantiation of a separate ServerRuntime in the code. 
+
+* Upgrading 2.0.x and earlier mappings files: Note that CayenneModeler
+  3.1 won't be able to upgrade projects created with a Modeler older than 3.0. To 
+  upgrade older projects do it in two steps - download Cayenne 3.0, and perform an
+  upgrade with 3.0 CayenneModeler. After that perform a second upgrade from 3.0 to
+  3.1.
+
+* Cayenne runtime bootstrap: In 3.1 all classes under "org.apache.cayenne.conf"
+  package were removed, superseded by dependency injection (DI) based configuration,
+  with main classes located under "org.apache.cayenne.configuration" and its 
+  subpackages. E.g. to instantiate the Cayenne stack in 3.1 you would do 
+  something like that:
+
+  ServerRuntime cayenneRuntime = new ServerRuntime("cayenne-UntitledDomain.xml");
+  
+  To obtain a new ObjectContext, the following API is used:
+		
+  ObjectContext context = cayenneRuntime.getContext();
+
+* No static configuration singleton: Cayenne 3.1 completely gets rid of a (previously 
+  optional, but widely used) "Configuration.sharedConfiguration" singleton. This 
+  change was done to acknowledge the fact that single configuration per application 
+  is just a special case, and generally user can instantiate as many configurations 
+  (or ServerRuntime's in 3.1 terms) as appropriate. This however means that the 
+  users must now decide themselves where in their application it is appropriate to 
+  store ServerRuntime instance (or instances). E.g. it can be stored as an attribute 
+  of ServletContext (check out "org.apache.cayenne.configuration.web.CayenneFilter" and 
+  "org.apache.cayenne.configuration.web.WebUtil"), reside in a user's favorite dependency
+  injection container (e.g. Spring), or even be saved in a user's own static singleton 
+  variable.
+
+* No static DataContext creation methods: Methods like DataContext.createDataContext()
+  were relying on static configuration singleton, which was removed (see above). Use
+  ServerRuntime instance methods to create context instances.
+
+* Webapp configuration changes: "org.apache.cayenne.conf.WebApplicationContextFilter"
+  was replaced by "org.apache.cayenne.configuration.web.CayenneFilter". See CayenneFilter
+  javadocs for details on of the init parameters.
+
+* ROP Server configuration changes: "org.apache.cayenne.remote.hessian.service.HessianServlet"
+  was replaced by "org.apache.cayenne.configuration.rop.server.ROPHessianServlet". See
+  ROPHessianServlet javadocs for details on its init parameters. 
+
+* ROP Client configuration changes: There is now a special DI "runtime" object -
+  "org.apache.cayenne.configuration.rop.client.ClientRuntime", so client connection
+  and channel can be (optionally) managed via DI, with connection parameters 
+  specified as properties. E.g.:
+  
+	Map<String, String> properties = new HashMap<String, String>();
+	properties.put(ClientModule.ROP_SERVICE_URL, "http://localhost:8080/tutorial/cayenne-service");
+	properties.put(ClientModule.ROP_SERVICE_USER_NAME, "cayenne-user");
+	properties.put(ClientModule.ROP_SERVICE_PASSWORD, "secret");
+
+	ClientRuntime runtime = new ClientRuntime(properties);
+	ObjectContext context = runtime.getContext();
+	
+  The advantage of this approach in that all the client stack objects are managed
+  by the DI container and a user can customize/override various pieces.
+
+* Deprecated API removal: All API deprecated as of 3.0 is removed. This may require 
+  some code cleanup. Since 3.0 javadocs for suggested replacements. Also if custom 
+  class generation templates are used, doublecheck that they do not reference removed 
+  EntityUtil methods, which were replaced by variables placed directly into Velocity context.
+
+* Custom DbAdapter / DbAdapterFactory: The interface used by Cayenne to allow custom 
+  DbAdapters to be auto-detected with AutoAdapter has changed from 
+  org.apache.cayenne.dba.DbAdapterFactory to org.apache.cayenne.configuration.DbAdapterDetector. 
+  Note that now a custom implementation can rely on Cayenne DI to obtain Cayenne 
+  dependencies via @Inject annotation. To register a custom implementation with 
+  Cayenne DI container, one might do this in the custom DI module:
+
+  ... 
+  public void configure(Binder binder) {
+  ...
+     binder.bindList(DbAdapterFactory.class).add(new MyDbAdapterDetector());
+  }
+
+* Custom DataSourceFactory: The interface used by Cayenne to load custom DataSource 
+  factories has changed from "org.apache.cayenne.conf.DataSourceFactory" to 
+  "org.apache.cayenne.configuration.DataSourceFactory". This new interface must be 
+  implemented by the custom factories. Note that now a custom implementation can 
+  rely on Cayenne DI to obtain Cayenne dependencies via @Inject annotation.
+
+* Replaced JNDI preferences hack with runtime properties: "JNDI hack", as it was 
+  known prior to 3.1, allowed to define a named database connection using CayenneModeler, 
+  and then Cayenne would read this connection information from Modeler preferences 
+  and use it as a failover for JNDI DataNodes. The problem with this is that it 
+  required CayenneModeler and HSQLDB jars on the application classpath, and also that the 
+  preferences database was prone to data corruption. In 3.1, preferences hack is no
+  longer available. Instead JNDI (or really any other type of DataSourceFactory) 
+  can be overridden via runtime properties (or by redefining DataSourceFactoryLoader
+  via DI). See org.apache.cayenne.configuration.server.PropertyDataSourceFactory javadocs for
+  details. Here are some simple examples:
+
+  -Dcayenne.jdbc.url=jdbc://urloverride 
+  -Dcayenne.jdbc.driver=com.example.MyDriver 
+  -Dcayenne.jdbc.username=foo
+  -Dcayenne.jdbc.password=bar
+
+
+UPGRADING TO 3.0B1
+
+* Per CAY-1281 pre-persist callback was renamed to post-add (while pre-persist now has a different meaning).
+  To upgrade your project, open it in the Modeler and agree to perform an automated upgrade.
+
+UPGRADING TO 3.0M6
+
+* Per CAY-1154, org.apache.cayenne.access.reveng package was renamed to org.apache.cayenne.map.naming. So, if you
+  use your own naming strategies, you should update as well.
+
+* Per CAY-1161, custom columns feature in SelectQuery was deprecated. Consider switching to EJBQL as an alternative.
+  Custom columns support will likely go away completely after 3.0M6.
+
+* Per CAY-1175, 'columnNameCapitalization' property of SQLTemplate now takes an enum, not a String. 
+  Calling code should be fixed.
+
+UPGRADING TO 3.0M5
+
+* Per CAY-1127, query "name" property is no longer used as an internal cache key. This change should be transparent
+  to most users, as Cayenne generates a correct cache key internally when needed, however if a user code explicitly
+  depended on the value of the cache key, it should be updated to use something like this:
+    
+  String cacheKey = query.getQueryMetadata(entityResolver).getCacheKey();
+
+UPGRADING TO 3.0M4
+
+* Per CAY-1049 API of the internal classes that participate in SelectQuery translation has changed in a way that
+  is not backwards compatible. This should not affect regular users, however if you implemented a custom DbAdapter,
+  check for classes that directly or indirectly inherit from QueryAssembler and QueryAssemblerHelper and fix them
+  if needed.
+
+UPGRADING TO 3.0M3
+
+* Java 5 is now required as a minimum for Cayenne Modeler and the Cayenne libraries.
+
+* After the move to Java 5, generics have been implemented in many of the Cayenne APIs. If you don't use generics
+in your project this should not affect you, but if you do you will need to review any new compiler errors or warnings.
+The effect of generics is at compile time only, so their introduction will not change the runtime behaviour of
+your application once compiled.
+
+UPGRADING TO 3.0M2
+
+* Lifecycle Callbacks require no setup:
+  Per CAY-843, lifecycle callback functionality is now built into DataContext and DataDomain, 
+  so all the custom code to set them up is no longer needed. Also as a result of this change
+  'org.apache.cayenne.intercept' package is removed from Cayenne.
+  Further information can be found here: http://cayenne.apache.org/doc/lifecycle-callbacks.html
+
+UPGRADING TO 3.0M1
+
+* Jar files:
+  - all jar files now include version numbers in their names.
+  - "cayenne-nodeps.jar" is renamed to "cayenne-server-x.x.x.jar" 
+  - "fat" cayenne.jar file that included dependencies is no longer distributed. 
+    All dependencies that it contained are included as separate jars under 
+    "cayenne-x.x.x/lib/third-party/". The new "cayenne-server-x.x.x.jar" plus 
+    dependencies should be used in place of cayenne.jar.
+  - A new "cayenne-agent-x.x.x.jar" is included. It is used for class enhancement 
+    with POJO's and JPA. "Classic" Cayenne users can ignore this file.
+    
+* Ant class generator is using what was called "version 1.2" by default. This means that if you were
+  using custom Velocity templates in 1.1 mode, you should either change the templates or specify 'version="1.1"'
+  in the buildfile explicitly.
+
+* Cross-platform Modeler Startup is now done without a batch file or a shell script. 
+  A "fat" CayenneModeler.jar is included in the "cayenne-x.x.x/bin" directory
+  and can be run either by double-clicking the jar (on platforms that support that)
+  or by running "java -jar CayenneModeler.jar".
+  
+* Note that FireBird adapter is no longer distributed with Cayenne. The one we had was half-working
+  and we could not support it anymore.
+  
+* DataContextTransactionEventListener, DataObjectTransactionEventListener, DataContextEvent all were deprecated
+  favor of callbacks. NOTE THAT THIS API WILL BE REMOVED IN THE FOLLOWING 3.0 MILESTONES.
+  
+* Long PK: Cayenne now supports "long" primary key generation (previously it only supported "int"). You may
+  have to change the existing PK lookup tables on some databases to take advantage of that (this is optional,
+  and is needed if you expect your PK to exceed maximum value of an "int" allowed in your database). E.g. on 
+  MySQL you may run the following SQL:
+  
+  ALTER TABLE AUTO_PK_SUPPORT CHANGE COLUMN NEXT_ID NEXT_ID BIGINT NOT NULL;
+  
+
+UPGRADING TO 2.0.x
+
+Since 2.0, Cayenne is an Apache project, so all "org.objectstyle.*" java packages 
+where renamed to "org.apache.*" analogues. Since 1.2.x and 2.0.x release lines maintain
+full compatibility with each other, differing only in package names, upgrading to 2.0.x
+can be a first step in a safe upgrade to the latest version of Cayenne.
+
+* Upgrading mapping files:
+
+To upgrade the mapping files, open them in the new Modeler. You should see an upgrade 
+dialog. Once you confirm the upgrade 
+
+* Upgrading the code:
+
+Replace "org.objectstyle." with "org.apache." everywhere in imports and do a clean 
+recompile.
+
+* Upgrading logging configuration
+
+If you are using custom logging configuration file, make sure that all the 
+Cayenne loggers are changed from "org.objectstyle" to "org.apache".

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b3dae546/assembly/pom.xml
----------------------------------------------------------------------
diff --git a/assembly/pom.xml b/assembly/pom.xml
index a01b862..0a0e09e 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -212,6 +212,28 @@
 							<tarLongFileMode>gnu</tarLongFileMode>
 						</configuration>
 					</plugin>
+					<plugin>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<executions>
+							<execution>
+								<phase>process-resources</phase>
+								<configuration>
+									<tasks>
+										<copy todir="${project.build.directory}/doc-staging">
+											<fileset dir="${basedir}/../docs/asciidoc">
+												<include name="**/target/generated-docs/*.pdf"/>
+												<include name="**/target/generated-docs/*.html"/>
+											</fileset>
+											<flattenmapper/>
+										</copy>
+									</tasks>
+								</configuration>
+								<goals>
+									<goal>run</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
 				</plugins>
 			</build>
 		</profile>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b3dae546/assembly/src/main/resources/assemblies/assembly-generic.xml
----------------------------------------------------------------------
diff --git a/assembly/src/main/resources/assemblies/assembly-generic.xml b/assembly/src/main/resources/assemblies/assembly-generic.xml
index 4b9028e..361a548 100644
--- a/assembly/src/main/resources/assemblies/assembly-generic.xml
+++ b/assembly/src/main/resources/assemblies/assembly-generic.xml
@@ -50,30 +50,20 @@
 			<directory>../cayenne-cgen/src/main/resources/templates/v1_2</directory>
 			<outputDirectory>templates</outputDirectory>
 		</fileSet>
-	</fileSets>
-
-	<files>
-		<file>
-			<source>../docs/asciidoc/getting-started-guide/target/generated-docs/getting-started-guide.pdf</source>
-			<outputDirectory>doc</outputDirectory>
-			<destName>getting-started.pdf</destName>
-		</file>
-		<file>
-			<source>../docs/asciidoc/getting-started-rop/target/generated-docs/getting-started-rop.pdf</source>
-			<outputDirectory>doc</outputDirectory>
-			<destName>getting-started-rop.pdf</destName>
-		</file>
-		<file>
-			<source>../docs/asciidoc/cayenne-guide/target/generated-docs/cayenne-guide.pdf</source>
-			<outputDirectory>doc</outputDirectory>
-			<destName>cayenne-guide.pdf</destName>
-		</file>
-		<file>
-			<source>../docs/asciidoc/upgrade-guide/target/generated-docs/upgrade-guide.pdf</source>
+		<fileSet>
+			<directory>target/doc-staging</directory>
 			<outputDirectory>doc</outputDirectory>
-			<destName>upgrade-guide.pdf</destName>
-		</file>
-	</files>
+		</fileSet>
+		<fileSet>
+			<directory>../</directory>
+			<outputDirectory>/</outputDirectory>
+			<includes>
+				<include>RELEASE-NOTES.txt</include>
+				<include>UPGRADE.txt</include>
+				<include>KEYS</include>
+			</includes>
+		</fileSet>
+	</fileSets>
 	
 	<dependencySets>
 		<dependencySet>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b3dae546/assembly/src/main/resources/assemblies/assembly-mac.xml
----------------------------------------------------------------------
diff --git a/assembly/src/main/resources/assemblies/assembly-mac.xml b/assembly/src/main/resources/assemblies/assembly-mac.xml
index b2d292d..6e820ee 100644
--- a/assembly/src/main/resources/assemblies/assembly-mac.xml
+++ b/assembly/src/main/resources/assemblies/assembly-mac.xml
@@ -48,30 +48,20 @@
 			<directory>../cayenne-cgen/src/main/resources/templates/v1_2</directory>
 			<outputDirectory>templates</outputDirectory>
 		</fileSet>
-	</fileSets>
-
-	<files>
-		<file>
-			<source>../docs/asciidoc/getting-started-guide/target/generated-docs/getting-started-guide.pdf</source>
-			<outputDirectory>doc</outputDirectory>
-			<destName>getting-started.pdf</destName>
-		</file>
-		<file>
-			<source>../docs/asciidoc/getting-started-rop/target/generated-docs/getting-started-rop.pdf</source>
-			<outputDirectory>doc</outputDirectory>
-			<destName>getting-started-rop.pdf</destName>
-		</file>
-		<file>
-			<source>../docs/asciidoc/cayenne-guide/target/generated-docs/cayenne-guide.pdf</source>
-			<outputDirectory>doc</outputDirectory>
-			<destName>cayenne-guide.pdf</destName>
-		</file>
-		<file>
-			<source>../docs/asciidoc/upgrade-guide/target/generated-docs/upgrade-guide.pdf</source>
+		<fileSet>
+			<directory>target/doc-staging</directory>
 			<outputDirectory>doc</outputDirectory>
-			<destName>upgrade-guide.pdf</destName>
-		</file>
-	</files>
+		</fileSet>
+		<fileSet>
+			<directory>../</directory>
+			<outputDirectory>/</outputDirectory>
+			<includes>
+				<include>RELEASE-NOTES.txt</include>
+				<include>UPGRADE.txt</include>
+				<include>KEYS</include>
+			</includes>
+		</fileSet>
+	</fileSets>
 
 	<dependencySets>
 		<dependencySet>