diff --git a/derby/org.apache.derby/.classpath b/derby/org.apache.derby/.classpath new file mode 100644 index 0000000..219a088 --- /dev/null +++ b/derby/org.apache.derby/.classpath
@@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry exported="true" kind="lib" path="derbyclient.jar"/> + <classpathentry exported="true" kind="lib" path="derby.jar"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath>
diff --git a/derby/org.apache.derby/.project b/derby/org.apache.derby/.project new file mode 100644 index 0000000..904cc82 --- /dev/null +++ b/derby/org.apache.derby/.project
@@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.apache.derby</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription>
diff --git a/derby/org.apache.derby/.settings/org.eclipse.jdt.core.prefs b/derby/org.apache.derby/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..6ae789e --- /dev/null +++ b/derby/org.apache.derby/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@ +#Tue May 18 05:17:06 EDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6
diff --git a/derby/org.apache.derby/.settings/org.eclipse.pde.core.prefs b/derby/org.apache.derby/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 0000000..fec71b9 --- /dev/null +++ b/derby/org.apache.derby/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,5 @@ +#Tue May 18 05:17:06 EDT 2010 +eclipse.preferences.version=1 +pluginProject.equinox=false +pluginProject.extensions=false +resolve.requirebundle=false
diff --git a/derby/org.apache.derby/KEYS b/derby/org.apache.derby/KEYS new file mode 100644 index 0000000..f31e2a3 --- /dev/null +++ b/derby/org.apache.derby/KEYS
@@ -0,0 +1,574 @@ +iThis file contains the PGP keys of various developers. + +Users: pgp < KEYS + gpg --import KEYS +Developers: + pgp -kxa <your name> and append it to this file. + (pgpk -ll <your name> && pgpk -xa <your name>) >> this file. + (gpg --list-sigs <your name> + && gpg --armor --export <your name>) >> this file. + +pub 1024D/AB1B7EE4 2004-08-12 Daniel John Debrunner <djd@debrunners.com> +sig 3 AB1B7EE4 2004-08-12 Daniel John Debrunner <djd@debrunners.com> +sig 3 B1669287 2004-08-13 Katherine Marsden <kmarsden@Sourcery.Org> +sig 3 AB821FBC 2004-08-26 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> +sig 3 99586C26 2004-08-27 Jean T. Anderson <jta@bristowhill.com> +sig 3 8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> +sig 3 21EA3ECD 2004-08-27 Mike Matrigali <mikem_app@sbcglobal.net> +sub 1024g/96268F22 2004-08-12 +sig AB1B7EE4 2004-08-12 Daniel John Debrunner <djd@debrunners.com> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.4 (Darwin) + +mQGiBEEbfSwRBAC/KAN4hHUgL0hMc0+ooUY9t43Pkw1rf5OSo3eMA3an46v1hQ29 +vh4nCeiwWtj56wtSxQPCR79ZNEBzsXy90UoAjLiQt5P5unqzq7SAkJxmk+Ch3ckZ +NfLsz8YASXAuAWb8z884BQIJKdBOtD3gzqOAZArQw1Y2VRUe4X/7b3cvDwCg5mTX +gNeGNqmMgd86XVuqbRIOBoUD/iuGr9RFkuASmNa9s1DGbIOkDNU4OITk+cBv0o0W +FCDcAOjW3OqjQPDZYjwHUuHn0nklPPOPh96GUlnDvImH2Za2Y4XgClApg0kKCkhC +X6Bu1oGKQglkByqttiu/0g+vZfblV31GXYg+W3N/q29UBG8zkldXeW1rV/VDKc+a +7gbBBACgEQArU2h/g5iwNUArzxRw478s7sLwMTxRP00DfUwTyMdxuEAufmEqwDCd +yflciEotUDNJusCs/a77i8eZrCQerIr9ZoexuNg/ByCV1OdorQSuGked16d4FUmx +aS1Ucrz/9iuTYZuTEmw/+9jAAQZbuaWstLLuFrzZ+G3QN3IUH7QqRGFuaWVsIEpv +aG4gRGVicnVubmVyIDxkamRAZGVicnVubmVycy5jb20+iF4EExECAB4FAkEbfSwC +GwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQIv0S4qsbfuRY1QCdHIBpUeda6uk8 +mc5M2QuzGh/lnK4AoKuHzHd7qJgCbUWjA8s+rLdF9E9RiEYEExECAAYFAkEdCcsA +CgkQG0h36bFmkof0TgCbBX4Ob3HZmdvWPXOULaRinQfizM4AoMbYpk1ePa+QsoWU +J0hZUseBtj9/iEYEExECAAYFAkEuXeQACgkQDfB0XauCH7zbyACgknmFlPN8pVZV +p2woh119orkI1kkAn20jQMyTX6gi+rRcwm/nmYP1R1GRiEYEExECAAYFAkEvhFsA +CgkQF0L6u5lYbCZ5KgCfRY9ehWdrJ2X829WnVw9BXxQhN1EAoJ/ffCdCXFMWxtXi +nU3PqmLIPNSxiEYEExECAAYFAkEvcKcACgkQENVNIY6DZ7F1BwCgpBMHfDAdtPP0 +XLwMXsg4IaIp+R4AnjxR64hvnire7nuCj+iJnKaBXTy1iEYEExECAAYFAkEvxf8A +CgkQEpeslyHqPs2XFgCg2x3X5ov29fQ3bGFZp1zOGg3OmDcAoOQKzgxE6FuFqN9q +9O3zMakQ9GckuQENBEEbfS0QBADDEjCsdHtVSfZ20OZMyoskjcBpaWJidRM1vmgU +ePXMTrUJWR9SvFiNk9eXhpF31CjlB8D+nbtqjLMFsI82Po8dY1kRQxUHUEUTyeNw +Kt8HGzVDHyBbOqDbUFpfsgU7gal7pgkq7K/dkDfaKXEPG9pqnE4rYmjdPAbkWyNq +6lvRtwADBwP/ZCbCWczliovWLo6t2pOty8C7RzjyG0T/JorGTqZJX/Ph7pcnkeP8 +ryI5zBksqrN4+HVcLbpLwnUS7nzi9cw+W9aCJ23qLMiy3lbhYKCcDx70e1qsWprS +za1XeQXNkjxAbG828l8JTbd0eFBuCFVFHnzl/Goy0AmqfTYriwsLbLGISQQYEQIA +CQUCQRt9LQIbDAAKCRAi/RLiqxt+5OAlAKC+zemlVdvOHhVVbPAkgDxjK9fA9wCg +ks0SzqIiYE5NOS67we11MZgrzM0= +=S3Gw +-----END PGP PUBLIC KEY BLOCK----- + +pub 1024D/AB821FBC 2004-07-20 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> +sig 3 AB821FBC 2004-07-20 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> +sig 3 B1669287 2004-08-12 Katherine Marsden <kmarsden@Sourcery.Org> +sig 3 99586C26 2004-08-26 Jean T. Anderson <jta@bristowhill.com> +sig 3 AB1B7EE4 2004-08-26 Daniel John Debrunner <djd@debrunners.com> +sig 3 8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> +sig 3 21EA3ECD 2004-08-31 Mike Matrigali <mikem_app@sbcglobal.net> +sub 2048g/7A461F74 2004-07-20 +sig AB821FBC 2004-07-20 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.4 (Darwin) + +mQGiBED9lBURBADWhKzOmdwVwcFpgRBn0E9eltDrlkLGU3hDYMa/udM9+9k0SuBq +YfMWYPWL40yPpCJ0wh72/KRUgoIcVbPX3hWAsWRxb8cG/zsYDyidkX2nvNycQ7Pp +o9EsV8cyQ0Soaix8TgJBO35mw3pSiOMZv+U+iHXkh6efO4wpzPaBRB5BVwCgqcgP +SznlslAu4HWnxHk+PWLu+sEEAJ3jNjEIX4biNpdoWKLAHw5MICXdxN9fW32Ft2QQ +891kuusbrjxgUz48qV/ovHWUsMyRwiKzwrS/rJhX7L/bQ/pBG/rb0Y5rpeeqlvV5 +z1/ehAWv9M16aX7rgYTf1uSj03pEJdBD7TgoCATtkO+J7tWZ3u8wPlfno5HiDKly +iiacA/48owwiRyj1HfQG+5caOpNtTdDNKf0Hc5Z9pd8vMW1bDadHaKV3cvQtCeEj +kpu+tV6sSMMsynBHVDChA5681BBMBMPs4JxwpLaYvG0UEjRxgwhLAdY+C40XExmU +hzI6ZgAZ0VXl6VB7EhIGUmwnyq06zBgEYkK8dvK6JXjo1SnnGbRLU2FtdWVsIEFu +ZHJldyBNY0ludHlyZSAoQXBhY2hlIERlcmJ5IFByb2plY3QpIDxmdXp6eWxvZ2lj +QG5vbmludHVpdGl2ZS5jb20+iF4EExECAB4FAkD9lBUCGwMGCwkIBwMCAxUCAwMW +AgECHgECF4AACgkQDfB0XauCH7zx7gCgkPzqYiB+1yZFoqhdO3jpZaD71skAn13J +dgBBcHr5iRnHnUG3nfFJFB9/iEYEExECAAYFAkEb/r8ACgkQG0h36bFmkocobACf +Vkbp4x+wDqVz7Sw1dIarxu8aBQcAnjXK54MbC8jNHhhX7vYIkUc8wg14iEYEExEC +AAYFAkEuY6kACgkQF0L6u5lYbCYr9ACcD8S1yfNDBYnbkmx6FCL4o7OSBDwAnjhQ +Jju8OZcvLIeYZe3I2AESdIEaiEYEExECAAYFAkEucX8ACgkQIv0S4qsbfuQ73ACf +UltK+Q51Jm+/ZQ4YvYJ69oHURPYAnAvAAKmVwIVfHqANkxmvlMVRTuM0iEYEExEC +AAYFAkEvb+MACgkQENVNIY6DZ7EZVACfdK+6h+ZqKoAh6RocBL66kKKvQ+cAnRyp +xgjXxKIFo6pwTTeiHVweW44ViEYEExECAAYFAkE0/2EACgkQEpeslyHqPs3F9gCe +NV5EIst5TM+KA75GNFvxUer2lXkAoOOc8p5n8rTYP8mpYUPx6gwpoS+/uQINBED9 +lSQQCAClI+JDrIyy7VH0pLQlW8YPkz9PNyyNbexuzR/jmW85PGeHHI0t1/lKChVe +b22XX8wS2kLJqePGVIKHTsdb1PoyoLrF+oKe83M4iNesT5uGtCa6p+jpjDWptdgW +wUkDhye3n07Zm16sWyfRMeUvJHPhHTATCYQraBWDUw+6UGJd946qX2FfMohamzMY +bJuB6CXB4foIdPHJSFnS2M3ZSSWIG7RsILd5/zHr2poxWYfbQbnEW8HcrFkmY9qD +/YNpXY+pTW71gsKvL1xLBBB4MItcZxpcGJzew9HJZyNUImiIznkUhzPxDpGCq0HV +fEVFWbwNjEBmv8rUGCJk4fAMDiJrAAMGCACChXiQ6HYpjd7i7MekroD1pJLbriBJ +GqbxwcquxAGldwee3HfL1isoQSuib74MPP6bv5/6ul9+r4DETKA/NyDF5952tFkr +FL68hvpihuEHzSfD0oBI/AAvlCZyO9ncvx/qq4VhTIt9/NjbyJv3HQXdFAI6Sjq7 +NS5xEPWixyozqJeTHLB/0xF8Ed0YJOTSIB3mnMt3TEhjGVAfNwTcasMLKCDxEmYH +bmghGayRorXawISINBJAgrSmyZK9TI27YnefOZgSkLqZ3V2i7sAy34fLbDOsl30i +PDcOXxykzr32JZ4j9IxPlfq7BvDAzH6u6+2LSUwZGoI3kKAO8sEiHL4JiEkEGBEC +AAkFAkD9lSQCGwwACgkQDfB0XauCH7zAlwCePWwR/FfzWNlOSOpwp2Rpb6PpB+UA +njcL3Dmrk2xcuaQBRUk+uIiyGJfM +=C/fM +-----END PGP PUBLIC KEY BLOCK----- + +pub 1024D/21EA3ECD 2004-08-27 Mike Matrigali <mikem_app@sbcglobal.net> +sig 3 21EA3ECD 2004-08-27 Mike Matrigali <mikem_app@sbcglobal.net> +sig 3 AB821FBC 2004-08-28 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> +sig 3 B1669287 2004-08-27 Katherine Marsden <kmarsden@Sourcery.Org> +sig 3 99586C26 2004-08-27 Jean T. Anderson <jta@bristowhill.com> +sig 3 AB1B7EE4 2004-08-27 Daniel John Debrunner <djd@debrunners.com> +sig 3 8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> +sub 2048g/0FA646B3 2004-08-27 +sig 21EA3ECD 2004-08-27 Mike Matrigali <mikem_app@sbcglobal.net> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.4 (Darwin) + +mQGiBEEvfQARBACnZcCpdMMWQbNdM5RNI6tee2ZrjVBqMidQ5iVUOswVOckSyRX/ +ItQInQil/dotZmaBHp4Og05SV9G4h+8E6PrjlcY5D2ieWb9IUAOmBAV3IKSFFboG +pvfmpZilPFcxUo4RrAhi5lhQx8RNZ9LsZPBmKQAS+tnvvWv+2oFQm6MdxwCg9+wB +zgBvoadGD6bk4LV5t2yLK3kD/2GryQIcXpsg384WpFLcC9xTmzcZM8DS4UlRh/Y1 +nkNz5I9acaU5MRx0MsWRTLDCqmPd2Ib5ipemb8pyHbyT6jzFgfC+Y6IuZmiGEDmu +dfTDb6tsE55cXDRFrzdelmgX1X5ORFV6PNOMXukXBX9Ms49pE7phaZLQY+bHULXF +sJKHA/92EOCuQPDpDcE/YUtVVMWKsqBcrpdGdEkfYBS+ooB4AZ61Y6hkXWRB/1ly +YBdcEpwsNPweky3OecGA57+1ojmmTjKr0qQEjlLGAF//pBQ87ZvvN7qM1htrCAVD +ZIS6c2A/MFzozwsKm4r95+PvnfbCWbLJqudTzI9k90tqDyfk+7QoTWlrZSBNYXRy +aWdhbGkgPG1pa2VtX2FwcEBzYmNnbG9iYWwubmV0PoheBBMRAgAeBQJBL30AAhsD +BgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEBKXrJch6j7NbEAAn2Q10H3P47+/oXTZ +E8SMnYLhmmAfAKDSqmVKXt+JGzHUJnSCvPCguz4HF4hGBBMRAgAGBQJBL+TCAAoJ +EA3wdF2rgh+8Z74An2UOErmEfAQp6oaJIoY/OOkVq7DmAJ0ZYDMEM5zPfxwrJX8k +CMVAJK+KbIhGBBMRAgAGBQJBL77+AAoJEBtId+mxZpKHbcoAoKtwjGdwiULxlzBB +XWFZNOrygwj/AKCJPf6S6WQTe9KAE9AhnZrbYP4X6ohGBBMRAgAGBQJBL8D1AAoJ +EBdC+ruZWGwmZoIAmwVJpH0erDLxvyUhJQJeo5zCCc46AJ4zNwbBpLQaahmvV2ex +8+g/Hs3GJ4hGBBMRAgAGBQJBL8E5AAoJECL9EuKrG37k5JsAoM/b3OMR3zx+maBH +P0tLaLr4iufgAJ9yTyy7szZDaC2Vro9qL5xpUm70GohGBBMRAgAGBQJBL8QWAAoJ +EBDVTSGOg2ex48sAn3KR4fGln1tHbWowJo/QUt5SjdE0AJ9lbRVhauQfhsZooVCS +2ucp6UZtgbkCDQRBL30REAgAhLQS7DxyODVNzyffHFPDGYOqgk0RxKZMFs2WxYr/ +XFcwn0WGDJuVjZ24/TFGdtiAjst8jer/a2yPI5riI8X30cmeZlmazN18jGKFufny +PP2KmXvkMNbjDUhXk1Dv4aO0a0JI1pIu5BS+Dtp7oWjsd/tU6u7EzV9kSxC7NWxe +JP6Dz6GrMSQZCE3WhxwyJxxgpvl2jpcmmwd0DMaiNvi49EXLoG/gYI8RsyVFxOSS +xA4zYW/0+bh1eVfXSztndQBYsfTFf3wraTX8ddiFr3lW9VuL2XwKFxx4F+I2qGhU +REte9fHnJm9kQc/UEKmLWJKDJTAU+yWLpVEs0w5Qx3uwPwADBQf9GaiXsDYHBYa/ +vBApAWD47YGImBqOie+Wj9NoX1eh/nPP7CnwUhK/lW4mRgQcP//0ZC7sTpYINBWn +a1ET1lKCjLCOT1YTLtTS0Z9iWzCmBY4iRh5J2gpSErKuj2e9tR1ir/AC7hv0se8N +GjpCpnzZitewWX2LmFEpRhe0bVpsduK9j6rqJvHF4m3XDRUlsuqWa9fgS4PwyHeB +hRxHBiWEiUpaCuP7TM3J+wvdFhZtgTYngJVbgjt0jGo4tovTiMCaX5YX+ENYxnu9 +1Zsv+EzjeLgQpvDWhSkuVAN2C+yU21m4zzmntfN6jjZll7kMIBRKNbNE9fqYn7FE +VNcpll8ptohJBBgRAgAJBQJBL30RAhsMAAoJEBKXrJch6j7NXdkAnA1P7cVpoAx4 +5enoz93olfon51rWAJ9ntmliCpgkFnIhjxezC4KtCt6lPw== +=w60g +-----END PGP PUBLIC KEY BLOCK----- + +pub 1024D/8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> +sig 3 8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> +sig 3 B1669287 2004-08-27 Katherine Marsden <kmarsden@Sourcery.Org> +sig 3 AB821FBC 2004-08-27 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> +sig 3 99586C26 2004-08-27 Jean T. Anderson <jta@bristowhill.com> +sig 3 21EA3ECD 2004-08-28 Mike Matrigali <mikem_app@sbcglobal.net> +sub 1024g/CFDFAA50 2004-08-27 +sig 8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.4 (Darwin) + +mQGiBEEugQoRBACP7Wa5vUIclXfyZu5JC/VpY0jRCnf3/zktvHOhxFyQANbdBc5E +hGyXZZ+sE2jqyr/XLXNaChbrS0NTrWph1WoW5JrWBKJF8/YJ5tY6d2fIeZnomopy +78yNHPuRuNo+E0C+trLjWWY8ewBg6mdvoW6Q+LEujeoE1sUXiFIZH5PGDwCgujqh +NpFzLG7TQUBnBYCRgTWb6WcD/0MlGlP7NPLljpe0V9sh7llXtEq0uuysr729aTkA +kDLFYg9e6Lc2gOedYQ+HfS0cmyHQLEcTO6KzaH5hQaD4dekCLrZqQjXGuHihbQZo +2Iw2EhsdrUllaZVTssvG2hPldS7GT996o/5MSn2iH3eHYk0EydF4CAW4T8GY9wBt +oen/A/9sIlp3z/BGt8aZv1wZoA1/i66/ZDG9m533lCyy6tErxI483NpPu6d68SJ6 +XxTrx3R3likQQN/VRGk9Nl9Drxr1rUb+DBpdzyHDV9WGd/j9EDLgXBADfvopP49c +IBvTi/r02Y1kcJNfVyosJ7UJvinlw5zah2/KA5LmVRXUZYVKpLRAU2F0aGVlc2gg +QmFuZGFyYW0gKEFwYWNoZSBEZXJieSBQcm9qZWN0KSA8c2F0aGVlc2hAU291cmNl +cnkuT3JnPoheBBMRAgAeBQJBLoEKAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJ +EBDVTSGOg2exMzMAnRQjaWR9f8fXOOYcMO2LK/quSIJQAJ4sRYN0FC9uEbZkYoDA +jGocCR6MKohGBBMRAgAGBQJBLoUUAAoJEBtId+mxZpKH4B0An0zHYM+QcRwWHDVw +0P48qeod1+oXAJ0dMmoAfn9TBOXjCIqS+863SlAIFIhGBBMRAgAGBQJBLs2cAAoJ +EA3wdF2rgh+8jKkAnRMb+bZhUkvJnz6vB3t5IKA4UUgGAJ93bIkG113hEkImTlxT +xITAqB4gfohGBBMRAgAGBQJBL6sBAAoJEBdC+ruZWGwmBDMAnAjCR9GsHh6qHNzo +1on/VTSsCE+gAJ9+jszy+eGHAvEHLaRQYSuirrMAUohGBBMRAgAGBQJBL8xEAAoJ +EBKXrJch6j7NTJwAn3pYi5blwnTw305JgxIudPQEzTmJAJ0f93dVPboI7l5TofVe +ljQ/xXW58bkBDQRBLoELEAQArXDMv6dCRMEHYPQQO0nznFZa5DcWStqJE109TD7a +17uhr7hPP3zDsFeKe+MtMeeKOeULSAPd9tKHB1RZvtgxWs36C4iG86MRZcVa6oVa +PMIctAnah7qim/IBb2a9XeZcOayUs2pqdZSBy3DDYdXj7jVm0LLcrvzNF4D7CVz2 +jV8AAwUD/2xNOv4ShBiAnOU6fQQeqAOI7mjcfda8pKvg69lxZPPLPyUq8MfBtcad +YPzqhM04IxMXjkxZ9H5a8TCAmR+oApU0zZAmFeh1WfCm9+7f46/lxWM7TA4XOQSq +2ve3LQd9VKfk0fQDoeUuqx43IEJenZSfORI7/6+D46EFKQunby6+iEkEGBECAAkF +AkEugQsCGwwACgkQENVNIY6DZ7HxmgCfcwzX6Psnt1raT2ON0BfhQEwl49YAnRLW +Rb7wNS9cfh8CWIRGhjMgmyj2 +=3zBL +-----END PGP PUBLIC KEY BLOCK----- + +pub 1024D/99586C26 2004-08-14 Jean T. Anderson <jta@bristowhill.com> +sig 3 99586C26 2004-08-14 Jean T. Anderson <jta@bristowhill.com> +sig 3 AB821FBC 2004-08-26 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> +sig 3 B1669287 2004-08-26 Katherine Marsden <kmarsden@Sourcery.Org> +sig 3 AB1B7EE4 2004-08-26 Daniel John Debrunner <djd@debrunners.com> +sig 3 8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> +sig 3 21EA3ECD 2004-08-27 Mike Matrigali <mikem_app@sbcglobal.net> +sub 1024g/0A785B8D 2004-08-14 +sig 99586C26 2004-08-14 Jean T. Anderson <jta@bristowhill.com> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.4 (Darwin) + +mQGiBEEegw0RBACdLKcnoK0vorrHsI/8ZdkiysSUCsdLrSBn5AyTE/ruSv0E8dMc +KsBpn6O56YfyacDPdqnEGJk1sPa+0V+u3Nu0bSJZJG1VtVi8WiMfpOplQVjkWJII +zrvLEIZPCwJkAzt3u5AwatqVfVeO5TQqyyplYbB8yQNUCFJCi9dQgj1gYwCgqAqH +cwy1OmCGtRpk4TILR4xxRDED/3jnXYZxCzfaddZijAT7IsNGoUK1UoKgmiS+ivri +31HsRJ4lVBIslu2C/S9QFjLRFhrng98C/aCQ7Y+Wxx/Jsg/zB6/Yhx2Yv9Y1299c +idWaSgmiusvR5mO0u0n97Ho79VpBuuXXuBmbkGzYlKsjIhHrIO79o8j0x7fVPD3I +w56KA/4wjwpCa3PDna4wNvhZMxUUZO2k0MFL8mrqpUxqO7ZQYSzY/k6V3a1xjbjL +8dNjj1KnzVz6ycDhDRAGVHvamLO8rzQ2mh3X4MllNePcsLqDXbonClgacVd7fivY ++Pp5UUJGI6+ZHp319/vcDndX2ofyp0Ah4Z2RVxNu71KF1JiBtLQmSmVhbiBULiBB +bmRlcnNvbiA8anRhQGJyaXN0b3doaWxsLmNvbT6IXgQTEQIAHgUCQR6DDQIbAwYL +CQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAXQvq7mVhsJvnIAKCjq8uuJjcZPZsP00Jb +IAzRpyj9HACfcZu9UTK62QDmT3lFyKkV/YaNNWeIRgQTEQIABgUCQS5g4AAKCRAN +8HRdq4IfvPAmAJ9ZVUkP1/3wvF3e+My9YkuIO+u0XACeIRL00+mBzm5QVmhcMxhQ +4tRyeo6IRgQTEQIABgUCQS5pVAAKCRAbSHfpsWaSh626AKC99Ik9mJSvTz21F3we +cd9s3w8yOACfTQi2NoUtwvQKs7Tu1gqEtnTunRWIRgQTEQIABgUCQS5rwgAKCRAi +/RLiqxt+5BTKAJ4mstR0ohP48ItKWKGd7aIKMG4l2ACZAUr+0tPpQjmxvADM8Dgu +wnLkp2+IRgQTEQIABgUCQS9tLQAKCRAQ1U0hjoNnsdyyAJ9T8VxSPj8AU/IVm9rL +Uifq9WEdfACcDR0NZPAGz6IOhFBdBbjXj7TVgDaIRgQTEQIABgUCQS/C8wAKCRAS +l6yXIeo+zfOWAJ0caKR7/0yNtaKXFXp0qjeB9Qf7CACdG4/UMb6c9z1qv3gMYbzO +5FT7+bG5AQ0EQR6DFBAEAK8tLY10PSMqpkYjXM32OwTA5TbjZV5T3osNL0h7PvQK +Cvs1pSsa/qDhvDHj18KWdyU/tDmLBtxRLRyV4pjPR9txmcuQcQ15whca1Wbi78og +IZA7O59+1gWzkdEWtVkTrgac0aImdMRGOTxqQaMxfbIOtqd7DrCnd1q1tl4Yc3O/ +AAMFA/96HUAATeRbX5DqVA+k6X7OglZGHCMmdwcqWb10E1tl8dnnZZzTk2kC3csk +SS4NfjFXaI7jqla1mp8LM1QRLs51MyoiUqtkyemxVhVfLIj+T6L2LCFEVQhesjF2 +gtBzxOR7lwjo9Pjp6ZwxrZg6M2al1ynAvITZv6egM33oRMJoMYhJBBgRAgAJBQJB +HoMUAhsMAAoJEBdC+ruZWGwmXzAAoKCTDi9b+/wCMuWSDnmeq5H5uEYlAJ9x2C0B +wkrZTEJZy3Hta6ECTWSNRQ== +=Pgt+ +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/B1669287 2004-08-11 Kathey Marsden <kmarsden@apache.org> +sig 3 B1669287 2005-10-21 Kathey Marsden <kmarsden@apache.org> +uid Katherine Marsden <kmarsden@Sourcery.Org> +sig 3 B1669287 2004-08-11 Kathey Marsden <kmarsden@apache.org> +sig 3 AB821FBC 2004-08-12 Samuel Andrew McIntyre (Apache Derby Project) <fuzzylogic@nonintuitive.com> +sig 3 AB1B7EE4 2004-08-13 Daniel John Debrunner <djd@debrunners.com> +sig 3 99586C26 2004-08-26 Jean T. Anderson <jta@bristowhill.com> +sig 3 8E8367B1 2004-08-27 Satheesh Bandaram (Apache Derby Project) <satheesh@Sourcery.Org> +sig 3 21EA3ECD 2004-08-27 Mike Matrigali <mikem_app@sbcglobal.net> +sub 2048g/8DB2F79B 2004-08-11 +sig B1669287 2004-08-11 Kathey Marsden <kmarsden@apache.org> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.5 (MingW32) + +mQGiBEEZvwARBACeNOc5OYdK6KlapdhaXqoUUNUOqBzK3W+hQOUwxxaU1kjZ+oGd +iL8taaa5CUVtuPyN6mhNd90Mle/6s0bnuu7nIY/GC1N8bCD1d+7ulpAd0RpJd/yv +EOSbeJKe/Q6jNdLimmZYq0vfhLqvKaTcNnTmJg46UpXnn+46eG5Zo/21ewCgy/CJ +D1qRc3luwm1OqYVCpgjjRfcD/13mQ4NeXMzpHu4akMqnGIZwes1+YqNTxP9iZZQQ +9iTIABA0wJgoD6f/axvhzK7kbE/qw7XGVBIuCGEhjRzCggQWdOZ3v5AKATQJ7KTg +5yFsf5F0pukfUEGDPqLNMPeAooGNx5pTSkwk0oC6o4uQ+l/adhyqIhvs94JmR7hl +o6f+A/97g28pIA40g8lpkn+UQnKTZUbIVZUqYRaa+8cP1rNftp+OxdcqqZmBXx6A +EjowNjxEsrv3wzhqz+bL8RAqVuFwVSHbieDusHFmDMpy8oHj7rUw+3kFlQb6qeZQ +/43hl00IZ33eA73xWJuNC0YBlZpmoJ2X5+GHx9sBH2mptA/Hr7QkS2F0aGV5IE1h +cnNkZW4gPGttYXJzZGVuQGFwYWNoZS5vcmc+iGIEExECACICGwMHCwkIBwMCAQMV +AgMDFgIBAh4BAheABQJDWTR/AhkBAAoJEBtId+mxZpKH3B0AoK1DJNlR4hbLtMqQ +PEQ9cgJa04XiAKCVzt66DTdlvIvVQ6AsxTrSpQuvULQpS2F0aGVyaW5lIE1hcnNk +ZW4gPGttYXJzZGVuQFNvdXJjZXJ5Lk9yZz6IXwQTEQIAHwUCQRm/AAIbAwcLCQgH +AwIBAxUCAwMWAgECHgECF4AACgkQG0h36bFmkoeZ4ACfS9gYaTagIa2eYcQzAUEe +4SqxKXEAn2uO5qeQKeqgLX2YLrbQZHEwj2meiEYEExECAAYFAkEcARcACgkQDfB0 +XauCH7z+8wCfSXb/A4X5ot9fptZovIh5N06wnZkAmwTa5bU8y+8UErPrauUMomYm +PXyxiEYEExECAAYFAkEc+18ACgkQIv0S4qsbfuRWPQCgjXCwGdtEK+rhr5ogR6dK +KZ1I63AAn0PN2L7HjmBJmmli3jYgDxtzb0F3iEYEExECAAYFAkEuaEQACgkQF0L6 +u5lYbCbA1ACfduwN8KrqBnGYPufRAWdr9a6Xe/oAnjBTv8Tvov8SD/ZaIMQnD1N0 +pVNriEYEExECAAYFAkEuhsYACgkQENVNIY6DZ7Fa0QCgpe1Q91vlD2IkhcWIiLmd +j2AFZh0AniL+Djl9NvaGHSb1VZtgntrq7QamiEYEExECAAYFAkEvvSwACgkQEpes +lyHqPs0anACgmAY38+ajx1iV8UMIIrNTeFxn3lAAn1boZDDVCnouy8j9gwsbS2JE +OjsHuQINBEEZv1UQCACGNe+0lhLKheq2dcW3i0Sh9Yr+ormiUAH8caQAPL7nWMDl +w5DaJLmo678tR3aImtDUO1x9RIQNhs/vOHRVDR+5g5X2DwaBElahi6sV2nk6703p +gL51MpTGunyeM4ge2xsjI8la2i+TXQQYsDCDNmdEWA8f2oYSHsMifxFNY8jvdNGy +c3SwUWF/THVIwT4O+onrK34/5Uo2CfXBikWEfnVV0mW3xyBZQ/z148JkkuitY6Dh +adEI3mJBbUnJ4d3yEUq5IWtFdwMqSlqLCuQQWtIWLeDC8kyW7GLhQykMKvNT07jl +s4BX14GBWZFYNMBk4xgtAlb0mkwXLzAxlnKoTuyXAAURB/49TWfRlJtywcCCdbxR +JKMnzlqGVWtG+9BvFR5VSqkYIUS40xqZHKCRvtr24RKRFppDxinWivohKGjdzEPk +UMIU082PPvs2b6FxKAKTUqglWyEwq8j4nM7SDkP4pR5PEIcXFWsvWo1n7iJXQCO+ +M5dzr6vkOAAFib86EwlMw7L47NrTCpeEzXZ+lY1jgNDJUQvNsLf3fFxmEJf+VzqF +25O/8D49Vyhz0mGNhlt/UI3stTqVRY9nrrmVh2VfSDQMfWetCL3fvYrKFocRZTeS +oO9Y93N0NhmBnRPDWqeexBYhUJFlIVYp4t7iN9VhzzDHHIp9DAnIWl9o1H4TBI7Q +jelbiEkEGBECAAkFAkEZv1UCGwwACgkQG0h36bFmkodnGwCgt0Db36ImC7fVtI0d +j+pbNohCiXgAn11iz+InH93Db4c5TprJm1D/DcJX +=Y+Qi +-----END PGP PUBLIC KEY BLOCK----- + +pub 1024D/98E21827 2006-02-04 +uid Rick Hillegas <rhillegas@apache.org> +sig 3 98E21827 2006-02-04 Rick Hillegas <rhillegas@apache.org> +sub 2048g/EA8075A5 2006-02-04 +sig 98E21827 2006-02-04 Rick Hillegas <rhillegas@apache.org> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.1 (MingW32) + +mQGiBEPj+4IRBACumYIyghf1QoMOa2mdizbqyjOt31+w1XC/HQc+gUYmjnxdvoJn +H2614X2bq3gfOtlSVY6k5zBUhcQRIDrfT5JF+idvSvTRAFr6FNRz3cCuX4HSJJmx +V2OAiCU8RK2fDZ1g/KNpk1BjWLBgnj//0pII0PjUJ9z34Ae8eqzscehtLwCg2ArY +hfx5CaruWPpd9K2/o2NPZEkEAINy7f7jXVPMP7IW06hNcitAMloKadPKOyJjhET4 +Q0W482RbeJDmow7WhAClRlxmx6dPsmktCtfNTipNDEc95fF1/HnikmKUSbw8Xj62 +fNSVMwt0LXsi45iYJKZ+/DOjxOQTz/VJsmroVkgPxgupx1Klw23zYtFwo2PTlIVP +MEBKBACreiRPusK5irqPNl5EJB42guH0dF/QXJHa9kbwdlyvyiuKT6xeYhZAo/w5 +RE5/GBkXPNpNJakpIDlLItnZ7KCtLGOTNbI1xEQgFHMlJ0K79yErOJigFR2j9mlx +FXIqYriJo4E/WVQqcSL1KzZRw487RPu8W/fT7g1tFZcBD/zQGLQkUmljayBIaWxs +ZWdhcyA8cmhpbGxlZ2FzQGFwYWNoZS5vcmc+iF4EExECAB4FAkPj+4ICGwMGCwkI +BwMCAxUCAwMWAgECHgECF4AACgkQPYsA4ZjiGCcJDgCfTZG9L5LFg0lNejBsuiiI ++QV/WgcAoKiRANWvc/2swRxBFboG/nchx37ruQINBEPj+4kQCADkbn9EKZlYTmyO +Uk4Ygwn5+fkAcm4CrUU+u1nBcDNSZLO17msIvi4ZKqjRps9eAyPTad1gNPKWNbLU +/o6nPTwhTjoBl4p+7gPw1xhdxQTvrQ1jOqNcQTcXCmAad/Ei+0NVwYbTrO/CdOjv +t5B2Lt5Dgx4huaCsZns3J4+YY+TrRm7eowS/7cINfYnH731evQ92S+umuwoYQhpf +bJq4oWz2aL+Q500hO5xJmh1mOSaRHjjC6pHnHxbij3BMonW9TlasQU/66lMHj/Gw +o9MFVj0gLQkmYq6sxiKDzHj31Sv2b2tNCFCsc1KN6WvvMWUB45pXKoSIC34+lco4 +jUrtDbsrAAMFCADTpSfqhkmkHhpPrGVarjOsYjEne+FlLuxmN8iDTKI8cvye4M5j +zX2xBNtBGQA8E8X6iRFlGjZufWxR52uuTpgVO6dvriepsl2oJ8kMSzQbpnYD3pMi +7v0zzSroiXRyFmVWnUKhgTezPjt0GLoHwOXubdQ6AQgsbL5gaTzIb6OV2BnpzrA3 +CGo8w0qtbFYLyPoM/PrA280kx8AeR0ibzcCk5ziEozw6NEs5+iVvVQSl118hP0lT +Uj0AU9ZukV6UsirLMZl4jnUZ1Slg3E60ovU0k/wEFm1FF2tb2UDgxrjzx+AO4Dha +Ac7oyFyJnYL/MbUU7gHQqI7+K2Eb2taGEWDFiEkEGBECAAkFAkPj+4kCGwwACgkQ +PYsA4ZjiGCfVYQCfc06KjdCY9oA8q4wtoBYRFcAudCAAnixZ+3wVIT9bPo+etL8S +daUsGX+B +=gOT2 +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/0C8EBFBE 2005-12-12 David Van Couvering (My Apache Key) <davidvc@apache.org> +sig 3 0C8EBFBE 2005-12-12 David Van Couvering (My Apache Key) <davidvc@apache.org> +sub 1024g/62754CD7 2005-12-12 +sig 0C8EBFBE 2005-12-12 David Van Couvering (My Apache Key) <davidvc@apache.org> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.2 (MingW32) + +mQGiBEOdIO0RBACSHDWWM/y4VhD7qjdvQhM/pV4fHhrswnUig1uYfjTSzPKEdOsq +LP33HmGf/hc9ccRRFSDRknA26bzHYdkQj3av50GOG5Uk7GebuyUU8doa/5ONj9Ij +newGwNGks9SXesCvoA1YnUQjm/bTHIyE2C7NlrVKU5f+EIBeBwBu312mCwCgiLN9 +E7OKISoIOctEsJWfTZsxtSkD/i8lZcnkJEbXArU0Ucnc5xqOppKzl/J5HKlcFYml +mpLfkRKQH1HAg296qFLg3tQH/BalYpsvBT5ns/yQlmwALi97ArjG8liGYyNT+E5X +G5IwphSfaEd4FqzyXIeoOS0nfQxIACh1hbCfpvXl56hAkl2Aa7NSROJw6JNquvaH +LH5gA/9i9sWdDXA2OiUfKNQGfFQaVbKP7i2w7PVRBAXiQANv6TdIaMYFcPMb/ayH +k9alXWyi5wVh+zazOI+/b/g/9KTyZdfcdrMKs7yBF1EOdcTKeo36yfuBLzpyCYSn +u/ZbTJZrbO0pg5X2BSIBG3jzCZjjtVJUg3V4DHRi/T7snTuiJLQ4RGF2aWQgVmFu +IENvdXZlcmluZyAoTXkgQXBhY2hlIEtleSkgPGRhdmlkdmNAYXBhY2hlLm9yZz6I +WwQTEQIAGwUCQ50g7QYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCLtlN0DI6/vrZ2 +AJ9L5L/91YUq0lBySCUyP+4zXEFvUgCfTIwq6aRSpVT4RoZuEglWXGkoDGy5AQ0E +Q50g7hAEAIOcMG05qk+5B2HpXrffhM1nHMjzamFV9QLdz4UI4pVkbcgZP0H+4aeV +GzPaSK/IzjItKb94XqXIL9g1J3FSpnH6behCZtrtmlDWgcc+um/qPOiWg5SBGjmT +vnCi/kzByBPzqc/O+qhX7tr6PRxI91IKj499+vzlIp0TvPtc6x0HAAMFA/4oted7 +UIGd2A/oGqfg0lqKuROpWQo4Xx1b/IxJIstNO7g8bUeteBDctXErqwdMT9flNw0o +wxLABKBlaUHfhaC0xGUKJHMlQ8BIWNWkf/VVYy56SolTh6mao+p/NY03z1A2x3Bh +pXL0ecCJQ+6mTztaeARgDa1SBWuBwSunabUdVIhGBBgRAgAGBQJDnSDuAAoJEIu2 +U3QMjr++rwUAn34Z5ghQZOpDmF8R/8SPMzlRx2yeAKCAnSxY7R5og/tVa29t7ih+ +tDrSVQ== +=Rbhm +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/990ED4AA 2006-08-16 +uid Knut Anders Hatlen <kahatlen@apache.org> +sig 3 990ED4AA 2006-08-16 Knut Anders Hatlen <kahatlen@apache.org> +sub 2048g/165BD1F7 2006-08-16 +sig 990ED4AA 2006-08-16 Knut Anders Hatlen <kahatlen@apache.org> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (FreeBSD) + +mQGiBETiuQURBADTblCPi5gXDXhT88Yp2YPAmeb5FMFyV1oPZfwsq/1cj8+BfqpY +ZaqUcqw0l0aCHiCFOagqlvLoy9A4NAeRBgcx3Q1sfWEqSbvqy3jYS9zUpS2Fx9fb +X6zrtLMNswK9pzkUgtdxBvBKMcjbSMMLfScAuHTnTFP/mXZapXGW1IPJqwCgmXBg +eFsYAjeAWxIUHyv7hYeZ7wMEAMX714eZUVR+jyjcw6iDMJbhFaIVm5WVT/+Jf5Eh +mf4IAYRkSCANX8s4jZfukUs6kptGRllwqstF7maFDRqdOGkN0unhUgvv0pTEOtXn +0FtV2wR2dP0N0yxhOYuedishTi9OOo8llDWRUaaazKwjYIXQJIep5ViN86rvrbCE +Y9TQA/wJKF5qoos/FPSECly18wzuCcgnTWHw3bYjQbUlOJ8HeqYS5vQI5hUHuUXA +4hjVSMoTDbfVVhDRDML3ACd+qgIsNKVRi0mWRFAz4ZBTmrJiWqdVX36xAjeedXkD +1vk/VMWVjpJms3EDDFo+hOWm24diefWtnDCvf0WY9s4N96ZZrLQoS251dCBBbmRl +cnMgSGF0bGVuIDxrYWhhdGxlbkBhcGFjaGUub3JnPohgBBMRAgAgBQJE4rkFAhsD +BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ4eHysJkO1KqNCgCfehVc27Q+dhwb +IrtoTTvJDrKdD1oAnReLlobKcAIH6ToqWhc1KPyQrxfSuQINBETiuQkQCACP/g0D +cjg+SPXowQqRKcIla0MUINusXCHxKcNRqRpcCEiSPNcBko1PpGjiVcIfP1urAkVV +c8/Vey4l3LI00kapGOsXK//v/BJksnzWNNY5Q3lVEVwI57hVhMPMihn+4aE93mh2 +p/k2f2DldDPOEBEanrJiCmGtTWo7cX4sTPYwJwNwbUuApp+uI0QDs6dZSElA3pdj +u+6JwZYDiBnrwv2YWBXgIeSQ3PhKjKS1MoybYj47b+jp9dBL1tvf0hBts2CaVBy3 +V/M98L32pm/OZrv+nm9BPg7utT+wsX+9XT5l6F7jjteYU4G8GXgFFyKldE+ZLAro +BRAgVtPJ7FXmwJ/DAAMFB/48r4qpbDp4aaBVyOgSDuX5nDGIF+oXNqP76F0Wz5+1 +D8hiE7fweRLD9vr3o7u278GUI/IFQAZLulcw5khboScNv9eoli0jMnZPQxDgM4BD +kmZVa+JNHUaALf41N5cGB6yJ+1G3KSY24VKd8aqBoiedLCsDibe/unq2CWjr4xZW +A73nWzZ7RsrX07xH7hfUulRk2p5heJwgcyyfsazm38ugqP1jL+XW/6jm6He5MMt6 +wc2MWUkoFCL+pMh7RK6KTT1YBsrX6e/MDJznXaEyIj3+2pTsyzqlFxPG9loDsSVd +/dig5bU9lRajodg+yupgpm9yNEStTody40UOxw96ZPXwiEkEGBECAAkFAkTiuQkC +GwwACgkQ4eHysJkO1KqpMwCcCZj3gJnnOOEJwHPP9E8dPUndDfUAnil3o1vuzEA/ +VxFd+IhqD85ykUrt +=Nxxr +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/88D83722 2006-08-16 +uid Andreas Korneliussen <andreas.korneliussen@broadpark.no> +sig 3 88D83722 2006-08-16 Andreas Korneliussen <andreas.korneliussen@broadpark.no> +uid Andreas Korneliussen <andreask@apache.org> +sig 3 88D83722 2006-08-16 Andreas Korneliussen <andreas.korneliussen@broadpark.no> +sub 2048g/F920EBC6 2006-08-16 +sig 88D83722 2006-08-16 Andreas Korneliussen <andreas.korneliussen@broadpark.no> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.4 (SunOS) + +mQGiBETi5coRBACF0SAt1faQn4+TPcQMwXtyl61X5vgKOxLDZjQ85ZVL/AWyaj54 +UnoV+5e8MqIlsp+829z5iMT2kPGdcWQWM+Ormj5tniFFg0GNw7LL9+R4mnfzFsBQ +/ourirBUuy+r+5apRO0trs2naSBjLgGBtSxLy5U3rGzuZYh7NVSUqoZI0wCg534n +DkZoiN7r44Cv+aGsdpODAQ8D/ijqaIXO7nn5jGl4bWGP8c7bOjOsEl+ahQkP/tgt +YkPjz1BxAbswir2j6jIyfRDr3NtWyfuF50MwFwJkRSWh9iriZLbbH2QzG6y2bhdE +ATVSoqK4EpeaU0K9ycEUIKo0+UpeM+97oVaFRzcGp4D2bJVJfhD7XhPwGZ1ZBC30 +FAy9A/9Mu/tNqO7lJSCc5Vb/xm75yja+DC61njaJTMRvwaU0wJQzi3FVHl1JhRYy +CI2cXb8gtQXqwYOAInVCv+HFP29Vif6EoDQ8p8kV4uZeThtPAHaAONbgAhw8U5vF +rm8NwkrJm9I85q35Oy2kbuPPMfn3WseWgRwYiZ2RMDZRUQmKsrQqQW5kcmVhcyBL +b3JuZWxpdXNzZW4gPGFuZHJlYXNrQGFwYWNoZS5vcmc+iGAEExECACAFAkTi5coC +GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDfoOnJiNg3IhE0AJ9KEg+lKnq9 +tOs0YLQjRkyOK+h4oQCgyDR2ZjZdT6zUnI5Bo0w+bzw1BDq0OEFuZHJlYXMgS29y +bmVsaXVzc2VuIDxhbmRyZWFzLmtvcm5lbGl1c3NlbkBicm9hZHBhcmsubm8+iGAE +ExECACAFAkTi5jkCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDfoOnJiNg3 +ItmnAKCCw2HTX/VUGsc5tcmuewOR1LVhcACgjQKjdZ56vfu5hTG62MJB2PWVPD65 +Ag0EROLl4xAIAIFHg90B+QrOH4rCFul12kyI/CPOFdcIzTtW4fQOuUlHave/b3ez +7sGbobjj3nexyvGIG9K4rKiXbticfkU6FfmWGFWV+6AbRM8i+qYdSnAck9qBO8+4 +TRf/qwhEh3i3YLcgrMdyRS9ifWDHSImqfllawP4dBdyhLu2g7Pz7Xs1+uaRjzi7+ +2wJ6nS7BCYY+fmt5OM44So0R/tO2r793LULw3TgxkbO9AkOoIdOg71tuCT3VFyLq +jGxfrnZgfRNcnPLnUyRNAw2VoWVe1IGGlNG5el1w83tr4ugAKsFV+cHqW4bWdHGE +b1dWVUv033evlrfaau+TEu/cp2LHVE1zULcAAwUH/07+M4cOCnT6l3xNuS93/mSx +areXSwZ33t/LahT6J9fAwhtac6MDTkeTaDxcDuSTKkCdNlyPetR8jFmfZTu7oj+k +PwqlSfQUHi1WHmk3Fs/9HuF+71P1C4K2789MSLnFsu94KQ3hTqbJRZbayDwoU4wZ +HSQfMlnh22INf47iD3enORbLf2Lg3PWHVc3Xs/ag4hPQwDahKEvX7TZsHbt3LNud +hMcdcTVEAX1kP5PL/zCxb3/YMM3l5m0zG35d+bW89P4D+3SWt4Oc09vLaGmMc9Zx +hnBxiZzNcaNaoLPKN9wWu1q/y2J44zZDIv9gfW2vyJA2rinPRncN/9flHYXzo4iI +SQQYEQIACQUCROLl4wIbDAAKCRDfoOnJiNg3In9mAJwOJiJ+8s4BSFd+u9JzW2wg +1D3dCgCgyDPdCE3+3sl/C/VvoZ0PdhnuYAE= +=+RoX +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/5355D01C 2007-03-25 +uid Dag H. Wanvik (Derby committer) <dag@apache.org> +sig 35C100F0 2007-03-26 Bernt M. Johnsen <bernt@apache.org> +sig 3 5355D01C 2007-03-26 Dag H. Wanvik (Derby committer) <dag@apache.org> +sig 990ED4AA 2007-03-27 Knut Anders Hatlen <kahatlen@apache.org> +sig 3 5355D01C 2007-03-25 Dag H. Wanvik (Derby committer) <dag@apache.org> +sig 3 990ED4AA 2007-04-11 Knut Anders Hatlen <kahatlen@apache.org> +uid Dag H. Wanvik <dag@wanvik.com> +sig 35C100F0 2007-03-26 Bernt M. Johnsen <bernt@apache.org> +sig 3 5355D01C 2007-03-25 Dag H. Wanvik (Derby committer) <dag@apache.org> +sig 35C100F0 2007-03-26 Bernt M. Johnsen <bernt@apache.org> +sig 990ED4AA 2007-03-27 Knut Anders Hatlen <kahatlen@apache.org> +sig 990ED4AA 2007-03-27 Knut Anders Hatlen <kahatlen@apache.org> +sig 3 990ED4AA 2007-04-11 Knut Anders Hatlen <kahatlen@apache.org> +uid Dag H. Wanvik <dag.wanvik@sun.com> +sig 3 5355D01C 2007-03-26 Dag H. Wanvik (Derby committer) <dag@apache.org> +sub 2048g/6F3578EF 2007-03-25 +sig 5355D01C 2007-03-25 Dag H. Wanvik (Derby committer) <dag@apache.org> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.6 (SunOS) + +mQGiBEYFzRARBADTpSSXSlij41eYml26ejzK7+9YqX+Res3kLRcAwYp3S+pOW4no +1exOp+TfeKBUtnHTK2jJUoKCEHXygze7cT5p1Xh1baNj/QJFYYH0LrD3hmkCiINQ +9+sS0tNx6MsM3//wPlXgxeUMyJFIfV0nLIU+Qs0G5ZkJmqfuj/Ipr6fg7wCgsQ9h +DtlSqQgDC69Sesan00BIiVMD/iuY7nmtj3zO5O9aEwnko+STmsb1sI86QDK8jVVw +UpelfIntyXRHaAXrsjwCTc6fDyuWEhlaeD8bFHRF3MDO220ABFwbAruwWn7nJaSZ +gzV2+8Bnt0aQHjeofSYF/pfecsiVeKjq3gIBs1OFuWDofAdu1+myRmesGdc4ofsm +0de/A/0a8Ko5JyI8fhPD/f+OE/Wgd2gGBVlzSKYr3hqECoRavhYPTc/qMRLj6v1T +Z96gGUlTmkp2G4vcylysMELii5P8B34ske47nAJ/ViTw+NHOQXhFJwhVz96jjWfB +tkDOz37834NocTXkXE4Kn61NQik/qtulzbMUvwlPRHYDOwwMZLQwRGFnIEguIFdh +bnZpayAoRGVyYnkgY29tbWl0dGVyKSA8ZGFnQGFwYWNoZS5vcmc+iEYEEBECAAYF +AkYHqcIACgkQlFBD9TXBAPA4rQCfbm3WaHDkA8kLkOea2KoRNG9SFioAoMZIQjEr +umWzY7DUToAaQCQy79G8iGMEExECACMCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX +gAUCRge5FwIZAQAKCRDhZNinU1XQHImEAJ9oC/yw8cXpP29fpMgJB5uwpJDdVQCf +UZm12DcnXttCY7TPUTU3xwjU5KKIRgQQEQIABgUCRgj2mwAKCRDh4fKwmQ7UqjT9 +AJ9WuibI/uQthSc5kcyElLgHFRgTuwCeNKVlaCeFPuERBA4zejyzVUb8/zeIYAQT +EQIAIAUCRgXcQQIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEOFk2KdTVdAc +hh8Anj1zirsVGqjErpeTnubWj+v0Gb1xAJ4heVo90/egMZ3ScdaZF4cUkDuOBohG +BBMRAgAGBQJGHIOHAAoJEOHh8rCZDtSqVPQAnAmj4UFUjl2KGEKoAyvH2d+RCLMn +AJ0bEXc0GjFXeQQmguOQAkZJPTdsx7QeRGFnIEguIFdhbnZpayA8ZGFnQHdhbnZp +ay5jb20+iEYEEBECAAYFAkYHqcUACgkQlFBD9TXBAPCEngCbBs9buDSKE7jVFvw8 +UNygWEeCr+4AoLucnHd0PHdQLahU5ScZeAHxBDHkiGAEExECACAFAkYFzRACGwMG +CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDhZNinU1XQHNpZAKCwiAk6xdYj37RP +EThH9PeEfhgRfwCgigvu0ZcjO6KzHM+J9NgI8rJWS7SIRgQQEQIABgUCRgepwgAK +CRCUUEP1NcEA8DitAJ9ubdZocOQDyQuQ55rYqhE0b1IWKgCgxkhCMSu6ZbNjsNRO +gBpAJDLv0byIRgQQEQIABgUCRgj2mwAKCRDh4fKwmQ7UqjT9AJ9WuibI/uQthSc5 +kcyElLgHFRgTuwCeNKVlaCeFPuERBA4zejyzVUb8/zeIRgQQEQIABgUCRgj2pgAK +CRDh4fKwmQ7UqunXAJ95+ITMHXM7LegaaZoMD+qSzh8dPQCeLAQvxf6MFqGCmGor +/Z7PmZxkkkeIRgQTEQIABgUCRhyDjwAKCRDh4fKwmQ7Uqt3pAKCNV70NyLS1K+ay +SSH5Rx2Dqb+HFgCbBzASo3Dby/h9c0hNQoOCDHM6O620IkRhZyBILiBXYW52aWsg +PGRhZy53YW52aWtAc3VuLmNvbT6IYAQTEQIAIAUCRge4WwIbAwYLCQgHAwIEFQII +AwQWAgMBAh4BAheAAAoJEOFk2KdTVdAcbjgAoJoInSvth3ErBRUAnD0MR0JQ8wHt +AJwLgZu4iypoPaD1wD9ImetiEGIJ8LkCDQRGBc0rEAgAxFBiVzoJmLsJ9A4RXdtX +xo8DK8sHWct0BzedwjinrAAPIjZeWAxGoDw2HfWk2uK3K0jw07ACwHI+kKTpcvud +znFWfSrZIxtWyVSazEoeDuZ1Mvf61pYcKeAISE9IX2nj6tpQ3W7XJjXgk/NycfWU +2JQxJ7YLoihgNtVQ3CWbMFhLSVNwFjKdxqpqqQBlKLVnkQclOX91jweUm2ZJ0eCh +YfNV7OpW1LMla3Xq6eXilHCNAmbMAlmxBWZDzsSjOPbBLhJW+ZQBUsGBO3f/OmBI +Wjk7ZmHeldx/roYHw8TgPBBHApq2xmt/VEv1FVYhABlOaQQEB7TnTf7tEpsTQfvr +owADBQf/Qae1hCqsDw1eh9EOaUvxheN25fKBLcmuURfThNySb2ZHsVwOAuwqLvw7 +N3hVY0/ZLvCxEoDDXVQJMyJD3a9/rxtSikJapVk7uwCXTw1ev5Q9TzcpfaCie5BC +1JDtMS7mykj8A4wFTFG0KuYOdj+YIemhsETIkyo3obUC1NByaiy81RkAPBxhKV8X +B95YBGIFBJ60NAFcv35qgjG7bLyjlulFhDpMo9zwaHYXLskjWu1bBL6zMMYP/nMd +25JwQOdnfmMlWQm7pPnLDivXiwDFriG7sheeWPADBsxyQeY7gRnuvyxwlyjhk0Hj +Uo/UFhBxZRV2WWCVwfua27jtgv7wvYhJBBgRAgAJBQJGBc0rAhsMAAoJEOFk2KdT +VdAcSQsAn25pw03yrMuhIhoY7SKio1YYgTqpAKCA47/9pu4cpNAxyfQvIMcrOLaf +sQ== +=GBQb +-----END PGP PUBLIC KEY BLOCK----- + +pub 1024D/37AA956A 2007-06-25 +uid Myrna van Lunteren <m.v.lunteren@gmail.com> +sig 3 37AA956A 2007-06-25 Myrna van Lunteren <m.v.lunteren@gmail.com> +sub 2048g/6BF93B02 2007-06-25 +sig 37AA956A 2007-06-25 Myrna van Lunteren <m.v.lunteren@gmail.com> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (MingW32) + +mQGiBEaAF40RBADMSMjU8Um9vy/XwrdHnX7038R6sfTVxmXSasVNunskwByJwZz4 +Q6/q6dD2FjhTY5tDTt6wmCJls7E0wTD5ixaz5k4L3efNkol3jQKwokCPzFJdXcYe +pWZpHszlCekn0Hpdsl3VlvJdxu3pE+oowYauVFPpCNBpLNxzC1q9EVo8twCg/Twg +DmZEf6DjawmHSMmhaODLVs8D/0k5FTIrlFTBWebpdfFQ5yzcdDQ1QY4EZFHbJkFC +zVTrtmO9SuXFcoZRgf923QVaQ4oRiyjK9IQhnWNCwS6y/LEWAYqF8xJB2UeNlZtq +d3CGQUPNB9fnkybJZxv3tnTFLq+qhHoxKz5dwa0SOe98nU8QcGigt5cYeY2aqZIr +pWfgA/9YPcnHpedhz7LMn9bN7oRHOMw7+FK16cmw1fs8tHBLlFqbQlIA+GZZFDx9 +rNWYJgKrjY/PdKVNOMv1rxiYV9SPDTuREIop1a75ixlyB6h3yVGnrSo9xDmOBw/t +qKM0Hd5G7E6HyRuZ18pCmuXHxY/+T6UOHxwhJd22RILENLe+1rQrTXlybmEgdmFu +IEx1bnRlcmVuIDxtLnYubHVudGVyZW5AZ21haWwuY29tPohgBBMRAgAgBQJGgBeN +AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQDhP3WjeqlWqxtgCfbQcTr8vB +ZKOKYg9oAAKsT1MlgT8AnR7d0E15Z/2u+BizR1eqhECPAOkGiEYEEBECAAYFAkaC +5n8ACgkQDfB0XauCH7wdmgCeK0gTkRd8o9XlkySuEy/toa/DnY8AniaMmYOe/VD+ +g7RGlTejIFTl9pIbuQINBEaAF60QCACbIvSXHEW+LY3o/ty85FIpBLNtw0FLRzvp +nZZtMmdcS2uzOQuvQKYqMCHNh8+CyiX0JKrZ9kvd8brufVcXwi/Fh6TmSJhyRuFn +m30QwfkH27PFvMPZsX23GLYuQ2xUneJYPJ1odY+eAWizGzo67uo0ux3wff9A6ExW +95wC5STf0IDLO2NB0qh0r4wQ+fXi0u0+IwwWCoBvK9bve+1zuAMCRH54Z4Xi1SpC +wHXoMq3f3Fwyu2iUPHksaUu+EYJ1677f9k82fn+AXpuvukHBCH/weZNSf4zChIBR +A7dXGAIA7k9pxS4AE8KNscLSnbB/RIMc4DT4rJy1Sf0l6q0NWCqjAAMFB/9m1lNE +e/DT2RfCU4tbX9I2ckNNUcfxSQoTQ/cnP+xmypE9I/o4ARu9MWMZ7W7ABg6A2kFr +y0wBL4DuLq3hItKkxrHyX8HB2CHXcsPRQJNBt7nR7DFyym1Be0J8/+YfPcY4vvAY +y404BabGX/APRQZl1TeI0iTkM6JlbbRjaTZ1j+HCbJwvzusx9Vcxn+QYeSoCXrgg +bv/8nbMLyUSiDlgzrdJHa3jzhwTYWj150hgX+nrsr73EbVhyRjoytjuyFYEQvQgn +ItIGSv98fnVrdKlQ8TPOgr4pBjshrSxmXtaxx7YpgWjrg3ggVMdonwurnnjP0mZp +vnrx+LkMkbXT+6w/iEkEGBECAAkFAkaAF60CGwwACgkQDhP3WjeqlWqtuwCfYxyE +KvRlezcoy99271lMnOsO+NgAoIp9sbQaf1Jo8tmQbFNnHWMlZ/Zk +=8Ji1 +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/FFCCF7B1 2007-09-25 +uid Dyre Tjeldvoll <dyre@apache.org> +sig 3 FFCCF7B1 2007-09-25 Dyre Tjeldvoll <dyre@apache.org> +sig 35C100F0 2007-09-26 Bernt M. Johnsen <bernt@apache.org> +sub 2048g/55A12D9F 2007-09-25 +sig FFCCF7B1 2007-09-25 Dyre Tjeldvoll <dyre@apache.org> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.7 (SunOS) + +mQGiBEb5MPgRBACyCyJv2A3sxLmT4emvp7CSjWn/rCC5pzdqzcmDy7jIyWADVLl5 +KPQszO7CezLTWh+mOXxbYfQe0/UV3uCuOLLo6uKzWZEtoeqMt3bpHLTRQ81XQEzk +okGO2XwucLpEKT6daBd03I4YKSmWBt+Q4A2k2ZOjftjrMDejUdpEVcji1wCg4Caa +WvqHE4HqerLTXRifnaxw2ZED+wQ+X+V+EpmVrRn2e3oOkoESXAlNdQ+ijWuk8IkF +lpoSrS14Rie0kv4r8JDzkDPv858nKuTA4Jrwd+D8TxsIp9/WjG6qfBvuHekSufbC ++kyp1XjnhupOGW0GRlusg7b+Ij0eYIcTIgrQYr4MBD/i1qmOHg5yDNOFxNykmxAR +tILQA/49jhJRqQjCaFSUjL8oioULjbvlXo5z7jW02zrUbN756RuDj1TJ6Q5teXhR +ZlJsy+RAmv/Tn2gjNA52PmsDo3r1bHBuigdFjn9qYEF8RllxusQr0XyFqeD0XHKK +GHGRRAL5gmTrnhbIDF3Kx2SOmo0IQZgg66WJHzyH1F6R0WhVwLQgRHlyZSBUamVs +ZHZvbGwgPGR5cmVAYXBhY2hlLm9yZz6IYAQTEQIAIAUCRvk1/gIbAwYLCQgHAwIE +FQIIAwQWAgMBAh4BAheAAAoJEHsyo6r/zPexiLQAoJ8PbFvi6evqjau8pXTOqzCc +1L47AKDX9DQhntQXACD2APSFbFQVLpBYnYhGBBARAgAGBQJG+h3OAAoJEJRQQ/U1 +wQDw1ckAn1+cWRt88FO0tnn/QMdSwq9FtckjAJ9jgGmMrliMP3omNBM03W/b7M/B +X7kCDQRG+TD4EAgA6jj6KqAOJT5Sw7lwfifDRT7XRAZAee/gPUcrXTNC3PwGebCQ +4ANGr5NuJsv0DMnOy3OSKb8jTx7QpHuVfXgYD8dFI9sVoRzaUa+NWoLZNA4JeJdC +kuxbnQ2CG3Tc2H4sdlE/axID3KUVwk286OB7k47kAFcb/Vtrr2bLeIpmsunuvG4N +Z/3pOPsfvOfUmgxKCg4BFwAZsOt66uzM8lUczLemgw3OyIESYwtSVJAbGMzp6uqh +7Kpm2lRHyYl+og0f4FYVXSxYgonGszMNWlfOr55ptrK6KDpuIHKrnwafTltFvnKT +Q1LwKLhi6OXlhVuVoHFWg76Q/mWnXkEdBRKDXwADBQf9HYsCljRJoePWysEEHPY2 +lxxJCyov0Vupa/255HEJdYVQYn/EQSz7w4sCNsWuJdn3c5LT2bDmX+bn2LDzGQjk +zLfQKbZiKnd5sQL+ywEaxYHc7c4zP8IYIy7ebnEcPLtP4YeLZAUSLQ+CuaPEwoAi +SoZs5KrkCAYH6VYSa01IBPhsI+cBp48gSOe4BvzOgtIm2bfEVA0QSBiyHCBKQa8q +WdIc47HPV8xJRwTtkQkv39KPcOpUfKttNEe/XYGmWj+mBHBdk4JbplbkaXPfJ3bV +pptl9lN5JORqrTsVxp8M7oIKNQyvcclf2H/m7egQs19Owgbp4APcrN1ngsviNLOh +PohJBBgRAgAJBQJG+TD4AhsMAAoJEHsyo6r/zPexfS4An2yCkrKldi3AFTYXbTsf +6hX2i0IyAJ4yGKI40y/nDimi/ZeODNW3UcnK2A== +=Miig +-----END PGP PUBLIC KEY BLOCK-----
diff --git a/derby/org.apache.derby/LICENSE b/derby/org.apache.derby/LICENSE new file mode 100644 index 0000000..75b5248 --- /dev/null +++ b/derby/org.apache.derby/LICENSE
@@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License.
diff --git a/derby/org.apache.derby/META-INF/MANIFEST.MF b/derby/org.apache.derby/META-INF/MANIFEST.MF new file mode 100644 index 0000000..b071ff2 --- /dev/null +++ b/derby/org.apache.derby/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Apache Derby JDBC +Bundle-SymbolicName: org.apache.derby +Bundle-Version: 10.5.1.1 +Bundle-Activator: org.apache.derby.Activator +Import-Package: javax.sql, + org.osgi.framework;version="1.3.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ClassPath: ., + derby.jar, + derbyclient.jar +Export-Package: org.apache.derby.authentication, + org.apache.derby.client, + org.apache.derby.client.am, + org.apache.derby.database, + org.apache.derby.io, + org.apache.derby.jdbc, + org.apache.derby.vti
diff --git a/derby/org.apache.derby/NOTICE b/derby/org.apache.derby/NOTICE new file mode 100644 index 0000000..eb68fb3 --- /dev/null +++ b/derby/org.apache.derby/NOTICE
@@ -0,0 +1,169 @@ +========================================================================= +== NOTICE file corresponding to section 4(d) of the Apache License, == +== Version 2.0, in this case for the Apache Derby distribution. == +========================================================================= + +Apache Derby +Copyright 2004-2009 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +Portions of Derby were originally developed by +International Business Machines Corporation and are +licensed to the Apache Software Foundation under the +"Software Grant and Corporate Contribution License Agreement", +informally known as the "Derby CLA". +The following copyright notice(s) were affixed to portions of the code +with which this file is now or was at one time distributed +and are placed here unaltered. + +(C) Copyright 1997,2004 International Business Machines Corporation. All rights reserved. + +(C) Copyright IBM Corp. 2003. + +========================================================================= + +The portion of the functionTests under 'nist' was originally +developed by the National Institute of Standards and Technology (NIST), +an agency of the United States Department of Commerce, and adapted by +International Business Machines Corporation in accordance with the NIST +Software Acknowledgment and Redistribution document at +http://www.itl.nist.gov/div897/ctg/sql_form.htm + + +========================================================================= + +The JDBC apis for small devices and JDBC3 (under java/stubs/jsr169 and +java/stubs/jdbc3) were produced by trimming sources supplied by the +Apache Harmony project. The following notice covers the Harmony sources: + +Portions of Harmony were originally developed by +Intel Corporation and are licensed to the Apache Software +Foundation under the "Software Grant and Corporate Contribution +License Agreement", informally known as the "Intel Harmony CLA". + + +========================================================================= + +The Derby build relies on source files supplied by the Apache Felix +project. The following notice covers the Felix files: + + Apache Felix Main + Copyright 2009 The Apache Software Foundation + + + I. Included Software + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + Licensed under the Apache License 2.0. + + This product includes software developed at + The OSGi Alliance (http://www.osgi.org/). + Copyright (c) OSGi Alliance (2000, 2007). + Licensed under the Apache License 2.0. + + This product includes software from http://kxml.sourceforge.net. + Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany. + Licensed under BSD License. + + II. Used Software + + This product uses software developed at + The OSGi Alliance (http://www.osgi.org/). + Copyright (c) OSGi Alliance (2000, 2007). + Licensed under the Apache License 2.0. + + + III. License Summary + - Apache License 2.0 + - BSD License + +========================================================================= + +The Derby build relies on jar files supplied by the Apache Xalan +project. The following notice covers the Xalan jar files: + + ========================================================================= + == NOTICE file corresponding to section 4(d) of the Apache License, == + == Version 2.0, in this case for the Apache Xalan Java distribution. == + ========================================================================= + + Apache Xalan (Xalan XSLT processor) + Copyright 1999-2006 The Apache Software Foundation + + Apache Xalan (Xalan serializer) + Copyright 1999-2006 The Apache Software Foundation + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + ========================================================================= + Portions of this software was originally based on the following: + - software copyright (c) 1999-2002, Lotus Development Corporation., + http://www.lotus.com. + - software copyright (c) 2001-2002, Sun Microsystems., + http://www.sun.com. + - software copyright (c) 2003, IBM Corporation., + http://www.ibm.com. + + ========================================================================= + The binary distribution package (ie. jars, samples and documentation) of + this product includes software developed by the following: + + - The Apache Software Foundation + - Xerces Java - see LICENSE.txt + - JAXP 1.3 APIs - see LICENSE.txt + - Bytecode Engineering Library - see LICENSE.txt + - Regular Expression - see LICENSE.txt + + - Scott Hudson, Frank Flannery, C. Scott Ananian + - CUP Parser Generator runtime (javacup\runtime) - see LICENSE.txt + + ========================================================================= + The source distribution package (ie. all source and tools required to build + Xalan Java) of this product includes software developed by the following: + + - The Apache Software Foundation + - Xerces Java - see LICENSE.txt + - JAXP 1.3 APIs - see LICENSE.txt + - Bytecode Engineering Library - see LICENSE.txt + - Regular Expression - see LICENSE.txt + - Ant - see LICENSE.txt + - Stylebook doc tool - see LICENSE.txt + + - Elliot Joel Berk and C. Scott Ananian + - Lexical Analyzer Generator (JLex) - see LICENSE.txt + + ========================================================================= + Apache Xerces Java + Copyright 1999-2006 The Apache Software Foundation + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of Apache Xerces Java in xercesImpl.jar and xml-apis.jar + were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - voluntary contributions made by Paul Eng on behalf of the + Apache Software Foundation that were originally developed at iClick, Inc., + software copyright (c) 1999. + + ========================================================================= + Apache xml-commons xml-apis (redistribution of xml-apis.jar) + + Apache XML Commons + Copyright 2001-2003,2006 The Apache Software Foundation. + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org + +========================================================================= +
diff --git a/derby/org.apache.derby/RELEASE-NOTES.html b/derby/org.apache.derby/RELEASE-NOTES.html new file mode 100644 index 0000000..cc587f8 --- /dev/null +++ b/derby/org.apache.derby/RELEASE-NOTES.html
@@ -0,0 +1,3110 @@ +<html> +<title>Release Notes for Derby 10.5.1.1</title> +<body> +<h1> +<a name="Release Notes for Derby 10.5.1.1"></a>Release Notes for Derby 10.5.1.1</h1> +<blockquote> +<p>These notes describe the difference between Derby release 10.5.1.1 and the preceding release 10.4.2.0.</p> +</blockquote> +<ul> +<li> +<a href="#Overview">Overview</a> +</li> +<li> +<a href="#New Features">New Features</a> +</li> +<li> +<a href="#Bug Fixes">Bug Fixes</a> +</li> +<li> +<a href="#Issues">Issues</a> +</li> +<li> +<a href="#Build Environment">Build Environment</a> +</li> +</ul> +<h2> +<a name="Overview"></a>Overview</h2> +<blockquote> + +<p> +Derby is a pure Java relational database engine using standard SQL and JDBC as its APIs. +</p> + + +<p> +Derby functionality includes: +</p> + + +<ul> + +<li>Embedded engine with JDBC drivers</li> + +<li>Network Server</li> + +<li>Network client JDBC drivers</li> + +<li>Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo (system info)</li> + +</ul> + +</blockquote> +<h2> +<a name="New Features"></a>New Features</h2> +<blockquote> + +<p> +This is a feature release. The following features were added. +</p> + +<ul> + +<li> + +<b>SQL Roles</b> - SQL roles (as described in SQL 2003 and errata) are useful for administering privileges for groups of users. Administering roles is generally less error-prone than administering privileges for individual users. SQL Roles are defined in Feature T331 "Basic roles" and Feature T332 "Extended roles". Derby 10.5 implements a subset of T331, plus support for CURRENT_ROLE, which is a part of T332. +</li> + +<li> + +<b>Generated Columns</b> - Generated Columns is a feature which instructs Derby to fill a column with an expression built out of other columns in the row. Derby constructs these column values at INSERT and UPDATE time. The user declares indexes on these columns. This in turn improves SELECT performance since it lets users declare indexes on pre-computed pieces of the WHERE clause. This feature satisfies support for SQL Feature T175. +</li> + +<li> + +<b>LOB Improvements</b> - There were many performance and usability improvements for BLOBs and CLOBs. +</li> + +<li> + +<b>Replication of encrypted databases</b> - With 10.5 it is possible to replicate encrypted databases. +</li> + +<li> + +<b>OFFSET/FETCH FIRST</b> - SQL 2008 has added new syntax to support a direct way to limit the +returned set of rows in a result set, through the fetch first and offset clauses. +</li> + +<li> + +<b>In-memory back end</b> - Initial implementation of a storage engine for Derby where all data is kept in memory. There is no documentation for this feature. This functionality itself is not yet fully implemented, but users are welcome to experiment with it. For details, see the +<a href="http://wiki.apache.org/db-derby/InMemoryBackEndPrimer">Primer for In-memory Back Ends</a>. +</li> + +<li> + +<b>Standard ALTER COLUMN syntax</b> - Allow standard SQL "SET" keyword in ALTER COLUMN syntax, like so: + "ALTER TABLE ALTER [COLUMN] columnname SET DEFAULT default-value" +</li> + +<li> + +<b>SYSCS_UTIL.SYSCS_UPDATE_STATISTICS</b> - New system procedure that updates cardinality statistics (or creates them if they do not exist) for a table's index or for all the indexes on a table, allowing a user to ensure that a query plan based on the most recent state of the table can be created. +</li> + +</ul> + +</blockquote> +<h2> +<a name="Bug Fixes"></a>Bug Fixes</h2> +<blockquote> +<p>The following issues are addressed by Derby release 10.5.1.1. These issues are not addressed in the preceding 10.4.2.0 release.</p> +<table border="2"> +<tr> +<td><b>Issue Id</b></td><td><b>Description</b></td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4148">DERBY-4148</a></td><td>NullPointerException in system.sttest run with 10.5.1.0</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4146">DERBY-4146</a></td><td>Cannot insert row when a generated column references an identity column</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4145">DERBY-4145</a></td><td>NullPointerException on CREATE TABLE when generated column depends on another generated column</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4141">DERBY-4141</a></td><td>XAExceptions thrown by Derby can have errorCode 0</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4135">DERBY-4135</a></td><td>Failure in BlobClob4BlobTest due to wrong results being returned</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4128">DERBY-4128</a></td><td>Failure in ServerPropertiesTest due to java.security.AccessControlException on the server side, in 10.4 to 10.5.1. soft upgrade mode</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4127">DERBY-4127</a></td><td>ArrayIndexOutOfBoundsException in DatabaseMetaDataTest when run in Soft Upgrade mode</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4126">DERBY-4126</a></td><td>You can't invoke a table function which is stored in a jar file inside the database</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4125">DERBY-4125</a></td><td>The in-memory storage back end doesn't work on Windows</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4122">DERBY-4122</a></td><td>ClassCastException in SQLClob when running in soft upgrade mode (10.4.2.0 -> 10.5.1.0)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4121">DERBY-4121</a></td><td>Documentation: more UPDATE_STATISTICS fixes needed for Reference Manual and Tuning Derby</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4119">DERBY-4119</a></td><td>Compress on a large table fails with IllegalArgumentException - Illegal Capacity</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4117">DERBY-4117</a></td><td>dblook script fails when URL contains special characters</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4116">DERBY-4116</a></td><td>SYSCS_UTIL.SYSCS_UPDATE_STATISTICS should update the store estimated row count for the table</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4104">DERBY-4104</a></td><td>Documentation: update documentation files to 10.5</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4103">DERBY-4103</a></td><td>Allow unlimited growth for in-memory conglomerates</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4096">DERBY-4096</a></td><td>'testRunTimeStatistics(org.apache.derbyTesting.functionTests.tests.lang.OffsetFetchNextTest)junit.framework.AssertionFailedError' on Windows</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4095">DERBY-4095</a></td><td>Trigger fails with ERROR 38000: The exception 'java.sql.SQLException: ResultSet not open during VTIResultSet.getNextRowCore()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4094">DERBY-4094</a></td><td>Enforce absolute paths in the in-memory back end internal storage structure</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4093">DERBY-4093</a></td><td>Improve handling of the database temporary directory</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4088">DERBY-4088</a></td><td>DDMReader readBytes ArrayIndexOutOfBoundsException</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4084">DERBY-4084</a></td><td>Determine the subSubProtocol name for the in-memory back end</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4079">DERBY-4079</a></td><td>Add support for SQL:2008 <result offset clause> and <fetch first clause> to limit result set cardinality</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4078">DERBY-4078</a></td><td>Document the SQL Standard routine matching rules which Derby now supports</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4073">DERBY-4073</a></td><td>Creation/configuration of ClientXDataSource fails because of two setSsl methods</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4072">DERBY-4072</a></td><td>shutdown with incorrect permission on log files shows java.lang.NullPointerException at org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:3964). Should give bettter message.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4071">DERBY-4071</a></td><td>AssertFailure when selecting rows from a table with CHARACTER and VARCHAR columns</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4063">DERBY-4063</a></td><td>Constraint causes wrong query result when using exists</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4061">DERBY-4061</a></td><td>InputStream returned from Blob.getBinaryStream(long, long) terminates the stream by returning 0, should return -1</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4060">DERBY-4060</a></td><td>Blob.getBinaryStream(long,long) is off by one for the pos+len check</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4059">DERBY-4059</a></td><td>If space reclamation cannot obtain container lock it will not retry getting the lock</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4050">DERBY-4050</a></td><td>Multithreaded clob update causes growth in table that does not get reclaimed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4049">DERBY-4049</a></td><td>SELECT statement topic in Reference Manual should reflect current WHERE clause behavior</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4048">DERBY-4048</a></td><td>Update Statistics code in AlterTableConstantAction should use execute transaction rather than compile transaction</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4042">DERBY-4042</a></td><td>org.apache.derby.impl.load.Import needs to escape single quotes</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4040">DERBY-4040</a></td><td>SQLChar.getLength returns wrong length for some data values</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4028">DERBY-4028</a></td><td>two rows can be inserted with the same value in a column that a unique constraint on that column should prevent</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4027">DERBY-4027</a></td><td>An attempt was made to access an out of range slot on a page</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4025">DERBY-4025</a></td><td>CHAR data type documentation fails to describe the maximum allowed length</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4024">DERBY-4024</a></td><td>Replace felix.jar file with the felix sources</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4022">DERBY-4022</a></td><td>Remove dependency of junit targets on deprecated jdk16 variable</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4017">DERBY-4017</a></td><td>Removed deprecated jdk16 variable from the machinery which builds javadoc</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4016">DERBY-4016</a></td><td>Document syntax change for ALTER TABLE in Reference Manual</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4014">DERBY-4014</a></td><td>Update Derby Jira Report XML VTI to access more fields</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4013">DERBY-4013</a></td><td>Allow standard SQL syntax: ALTER TABLE ALTER [COLUMN] <col> SET DEFAULT <default></td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4012">DERBY-4012</a></td><td>'largedata/LobLimits.java' fails with "EXPECTED SQL Exception: (XJ001) Java exception: 'A truncation error was encountered trying to shrink CLOB 'XXXX' to length 104857600.: org.apache.derby.iapi.services.io.DerbyIOException'."</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4010">DERBY-4010</a></td><td>PassThroughException should not reimplement initCause()/getCause()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4008">DERBY-4008</a></td><td>Only send RDBNAM on ACCSEC if EBCDIC conversion is possible</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4006">DERBY-4006</a></td><td>ALTER COLUMN ... WITH DEFAULT NULL does not change the default</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-4004">DERBY-4004</a></td><td> Remove required RDBNAM from ACCSEC. Use SECCHK RDBNAM if none is provided on ACCSEC</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3997">DERBY-3997</a></td><td>ORDER BY causes column to be returned</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3996">DERBY-3996</a></td><td>Change eol style to native on jsr169 stubs</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3990">DERBY-3990</a></td><td>ResultSetStreamTest fails on case sensitive file systems, and isn't run as part of any suite</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3989">DERBY-3989</a></td><td>Set the Java 5 compilation path based on the Java 6 compilation path if a Java 5 environment can't be found but a Java 6 environment can be</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3988">DERBY-3988</a></td><td>Set the Java 6 complilation path based on the Java 5 compilation path so that the JDBC4 support is always built</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3985">DERBY-3985</a></td><td>Replace BUILDING.txt with a simlified up-to-date BUILDING.html</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3984">DERBY-3984</a></td><td>Separate out the small number of build targets which really require JDK1.4 features from the bulk of the targets which ought to compile cleanly against small device libraries</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3983">DERBY-3983</a></td><td>User Guide documentation on the limitations of small-device support is stale</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3982">DERBY-3982</a></td><td>Add a facility to override the default set of old versions to be tested in the upgrade tests.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3981">DERBY-3981</a></td><td>Improve distribution of hash codes in SQLBinary and SQLChar</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3978">DERBY-3978</a></td><td>Clob.truncate(long) in the client driver doesn't update the cached Clob length</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3977">DERBY-3977</a></td><td>Clob.truncate with a value greater than the Clob length raises different exceptions in embedded and client driver</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3975">DERBY-3975</a></td><td>SELECT DISTINCT may return duplicates with territory-based collation</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3972">DERBY-3972</a></td><td>Update test harness to run with DesktopEE JRE</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3970">DERBY-3970</a></td><td>PositionedStoreStream doesn't initialize itself properly</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3969">DERBY-3969</a></td><td>NPE if you declare a constraint on a generated column and omit the datatype</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3966">DERBY-3966</a></td><td>Do not require JRE 1.4 libraries at compile time since SUN's JDK 1.4 went out of support and can be used on JRE 1.4 without any problem</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3964">DERBY-3964</a></td><td>NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3959">DERBY-3959</a></td><td>Reference Manual needs information on generated columns</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3958">DERBY-3958</a></td><td>ImportExportProcedures imports ./testData/ImportExport/position_info.del using US-ASCII but the file contains non-ascii characters</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3956">DERBY-3956</a></td><td>Remove method TemplateRow.checkPartialColumnTypes</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3950">DERBY-3950</a></td><td>You should get an error if you try to override a generated column via an INSERT driven by an inner ResultSet</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3948">DERBY-3948</a></td><td>Don't allow references to generated columns in the NEW transition variables of triggered actions of BEFORE triggers</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3945">DERBY-3945</a></td><td>Generation clauses which mention user-coded functions may produce different resuls depending on who performs the triggering INSERT/UPDATE</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3943">DERBY-3943</a></td><td>testReplication_Local_3_p2_StateTests_smallInsert_immediateStopMaster_DISABLED() causes hang in teardown()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3938">DERBY-3938</a></td><td>Document that you can change the length of varbinary as well as varchar columns</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3936">DERBY-3936</a></td><td>Add CharacterStreamDescriptor</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3935">DERBY-3935</a></td><td>Introduce interface for a position aware stream</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3934">DERBY-3934</a></td><td>Improve performance of reading modified Clobs</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3932">DERBY-3932</a></td><td>Add tests of generated columns when sql authorization is turned on</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3931">DERBY-3931</a></td><td>GeneratedColumnsTest fails with "'F_MINUS' is not recognized as a function or procedure." on cvm/phoneME</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3930">DERBY-3930</a></td><td>SQL roles: Add VTI for CONTAINED_ROLES</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3923">DERBY-3923</a></td><td>Make the datatype optional when declaring columns with generation clauses</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3922">DERBY-3922</a></td><td>Enable the adding of generated columns via ALTER TABLE</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3917">DERBY-3917</a></td><td>RolesConferredPrivilegesTest fails with 'java.lang.NoClassDefFoundError: java.sql.DriverManager' with weme 6.1</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3911">DERBY-3911</a></td><td>BTreeController.reclaim_deleted_rows() may hide exceptions</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3909">DERBY-3909</a></td><td>Race condition in NetXAResource.removeXaresFromSameRMchain()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3907">DERBY-3907</a></td><td>Save useful length information for Clobs in store</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3905">DERBY-3905</a></td><td>Failed tests should save the database off to the fail directory</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3904">DERBY-3904</a></td><td>NPE on left join with aggregate</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3903">DERBY-3903</a></td><td>'The class 'org.apache.derby.diag.EnabledRoles' does not exist or is inaccessible.' in new roles tests (DERBY-3886)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3902">DERBY-3902</a></td><td>some messages are referenced but never used - MessageBundleTest output</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3901">DERBY-3901</a></td><td>SQL roles: Move upgrade logic from 10.4 to 10.5</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3897">DERBY-3897</a></td><td>SQLSessionContext not correctly initialized in some non-method call nested contexts</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3895">DERBY-3895</a></td><td>Needs update of master for 'derbyall/derbynetmats/DerbyNet/derbynetmats/holdCursorJDBC30'?</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3894">DERBY-3894</a></td><td>Reference Manual: supported functions should be listed in JDBC escape syntax topic</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3890">DERBY-3890</a></td><td>Replication: NPE for startSlave of encrypted database</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3889">DERBY-3889</a></td><td>LOBStreamControl.truncate() doesn't delete temporary files</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3886">DERBY-3886</a></td><td>SQL roles: ij show enabled and settable roles</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3883">DERBY-3883</a></td><td>LOBStreamControl.replaceBytes() leaves temporary files open</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3880">DERBY-3880</a></td><td>NPE on a query with having clause involving a join</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3879">DERBY-3879</a></td><td>Getting Started Guide has typo and version problems</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3878">DERBY-3878</a></td><td>Replication: stopSlave does not close serversocket when master has crashed.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3877">DERBY-3877</a></td><td>SQL roles: build support for dblook</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3875">DERBY-3875</a></td><td>Derby cannot replace a database after encountering corruption</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3874">DERBY-3874</a></td><td>Document numeric function ATAN2(float1,float2)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3872">DERBY-3872</a></td><td>NullPoinerException thrown when INTEGER function used as a predicate in a WHERE clause of a SELECT .. GROUP BY .. HAVING statement</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3871">DERBY-3871</a></td><td>EmbedBlob.setBytes returns incorrect insertion count</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3869">DERBY-3869</a></td><td>intermittent hang pinging server on Linux</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3865">DERBY-3865</a></td><td>NPE in testSemantics(.....lang.RolesTest) on JavaME / CVM</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3864">DERBY-3864</a></td><td>Remove utility class PrivilegedFileOps</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3863">DERBY-3863</a></td><td>improve test importExportIJ.sql</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3859">DERBY-3859</a></td><td>Reset the current role when EmbedPooledConnection creates a new logical connection</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3855">DERBY-3855</a></td><td>The Tuning guide should mention that LIKE transformations/optimizations are disabled when using territory-based collations</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3850">DERBY-3850</a></td><td>Remove unneeded workarounds for DERBY-177 and DERBY-3693</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3847">DERBY-3847</a></td><td>Tuning Guide lacks information on turning off Derby property settings</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3845">DERBY-3845</a></td><td>Problems running org.apache.derbyTesting.system.optimizer.RunOptimizerTest</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3841">DERBY-3841</a></td><td>'testTimeSlice_*(NetworkServerControlApiTest.java)' fails on Jvm1.5/vista, Jvm1.4/SunOS 5.11</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3840">DERBY-3840</a></td><td>The test code executes java processes by just executing java instead of using a full path. This may cause the wrong java to be picked up.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3837">DERBY-3837</a></td><td>need to test getting appropriate error message when os files are read-only</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3835">DERBY-3835</a></td><td>Convert derbynet/getCurrentProperties to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3832">DERBY-3832</a></td><td>Convert derbynet/timeslice.java to Junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3831">DERBY-3831</a></td><td>RuntimeStatisticsParser can not distinguish names of table or index well and truly</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3828">DERBY-3828</a></td><td>Convert jdbcapi/SURTest_ij.sql to JUnit.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3827">DERBY-3827</a></td><td>Add Apache 2.0 license headers to a number of files</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3826">DERBY-3826</a></td><td>Remove the update-with-jdbc4 script, which is dead code now</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3825">DERBY-3825</a></td><td>StoreStreamClob.getReader(charPos) performs poorly</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3818">DERBY-3818</a></td><td>client Insert/retrieval of 18MB Clob is extremely slow in MultiByteClobTest</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3816">DERBY-3816</a></td><td>Administration Guide topics on unsupported DB2 driver should be removed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3813">DERBY-3813</a></td><td>Derby tests for the existance of BigDecimal methods toPlainString and bdPrecison but does not check if they were found before using them.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3812">DERBY-3812</a></td><td>failure in testAttributeDrdaStreamOutBufferSize(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)junit.framework.AssertionFailedError: expected:<0> but was:<131072></td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3810">DERBY-3810</a></td><td>Create a simple Clob performance regression test</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3807">DERBY-3807</a></td><td>traces of removed ij functionality of ij.unicodeEscape should be removed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3805">DERBY-3805</a></td><td>Create a simple Blob performance regression test</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3803">DERBY-3803</a></td><td>'org.apache.derbyTesting.functionTests.tests.lang.XMLTypeAndOpsTest' failures on JVM 1.5 on trunk, 10.4 and 10.3</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3802">DERBY-3802</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.optimizerOverrides.sql" to junit.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3800">DERBY-3800</a></td><td>Convert derbynet/maxthreads to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3799">DERBY-3799</a></td><td>NullPointerException when accessing a clob through a pooled connection</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3798">DERBY-3798</a></td><td>Remove unnecessary call to Hashtable.get() in TableScanResultSet.getNextRowCore()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3797">DERBY-3797</a></td><td>Convert jdbcapi/metadataMultiConn to JUnit.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3796">DERBY-3796</a></td><td>Convert derbynet/OutBufferedStream to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3793">DERBY-3793</a></td><td>Remove unnecessary methods from InternalClob interface</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3791">DERBY-3791</a></td><td>Excessive memory usage when fetching small Clobs</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3787">DERBY-3787</a></td><td>Document the new system stored procedure SYSCS_UTIL.SYSCS_UPDATE_STATISTICS which was added as part of DERBY-269</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3786">DERBY-3786</a></td><td>Assert failure in CacheEntry.unkeepForRemove when running stress.multi</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3784">DERBY-3784</a></td><td>ImportExportTest doesn't detect lack of expected errors</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3783">DERBY-3783</a></td><td>LOBStreamControl shouldn't throw SQLException</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3782">DERBY-3782</a></td><td>Client Configuration.java imports engine class org.apache.derby.iapi.services.info.JVMInfo</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3781">DERBY-3781</a></td><td>PositionedStoreStream.reposition(pos) with pos greater than length leaves the stream object in an inconsistent state</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3780">DERBY-3780</a></td><td>Run junit tests with -Dfile.encoding="UTF-16" to expose encoding issues and analyze failures</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3779">DERBY-3779</a></td><td>Add client side JDBC statement pool documentation</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3777">DERBY-3777</a></td><td>SecureServerTest, SSLTest are failed on Zos with exit code 143 starting network server</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3776">DERBY-3776</a></td><td>testGetBytes under BlobClob4BlobTest failed on Zos with encoding issue</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3775">DERBY-3775</a></td><td>BlobStoredProcedureTest failed on Zos: AssertionFailedError: Error SYSIBM.BLOBGETPOSITIONFROMLOCATOR returns the wrong value for the position of the Blob expected:<8> but was:<-1></td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3774">DERBY-3774</a></td><td>jdbc4/ClobTest fails on Zos with AssertionFailedError: Streams differ at index 0 expected:<200> but was:<72></td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3773">DERBY-3773</a></td><td>ImportExportLobTest failed on Zos Clobs differ at index 1 expected:<99> but was:<196></td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3771">DERBY-3771</a></td><td>testClasspathChecker under SysinfoCPCheckTest failed on Zos</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3770">DERBY-3770</a></td><td>Create a utility class for skipping data in an InputStream</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3769">DERBY-3769</a></td><td>Make LOBStoredProcedure on the server side smarter about the read buffer size</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3768">DERBY-3768</a></td><td>Make EmbedBlob.length use skip instead of read</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3767">DERBY-3767</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.nulls.sql" to junit.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3766">DERBY-3766</a></td><td>EmbedBlob.setPosition is highly ineffective for streams</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3764">DERBY-3764</a></td><td>Union Query fail on Derby 10.4.1.3</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3763">DERBY-3763</a></td><td>Rename BaseJDBCTestCase.usingDerbyNet</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3762">DERBY-3762</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.arithmetic.sql" to junit.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3760">DERBY-3760</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.miscerrors.sql" to junit.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3759">DERBY-3759</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.ungroupedAggregatesNegative.sql" to junit.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3758">DERBY-3758</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.precedence.sql" to junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3755">DERBY-3755</a></td><td>ij's help text lacks the optional [HOLD | NOHOLD] syntax for GET CURSOR</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3754">DERBY-3754</a></td><td> Convert "org.apache.derbyTesting.functionTests.tests.lang.connect.sql" to junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3751">DERBY-3751</a></td><td>Convert case.sql to junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3750">DERBY-3750</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.constant Expression.sql" to junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3745">DERBY-3745</a></td><td>Derby can leak classloaders in an app server environment</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3743">DERBY-3743</a></td><td>Revoking EXECUTE privilege on a function if used in a CHECK constraint: implementation problem</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3742">DERBY-3742</a></td><td>Move test code from CompressedNumber to a unit test</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3741">DERBY-3741</a></td><td>SQL LENGTH function materializes CLOB into memory</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3739">DERBY-3739</a></td><td>Skip and read methods in ArrayInputStream may overflow</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3738">DERBY-3738</a></td><td>Add more tests for legal/illegal commands in the different replication states</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3736">DERBY-3736</a></td><td>Revoking a column level privilege from a user, a prepared statement relying on that privilege can still be executed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3735">DERBY-3735</a></td><td>Incorrect position calculation in PositionedStoreStream with read(byte[],...)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3734">DERBY-3734</a></td><td>Maximum value allowed for derby.storage.fileCacheSize (100) is too low for large system. Increase the maximum value and redocument the property.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3732">DERBY-3732</a></td><td>SQL Length function materializes BLOB into memory</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3731">DERBY-3731</a></td><td>Improve calculation of refSize in ClassSize.java</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3730">DERBY-3730</a></td><td>Bundle-SymbolicName: needed in Derby manifest for OSGi 4 environment</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3728">DERBY-3728</a></td><td>Fix error handling in PrivilegedFileOpsForTests</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3726">DERBY-3726</a></td><td>Don't call RAFContainer.padFile() from instances of RAFContainer4</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3725">DERBY-3725</a></td><td>add more information to the XSDB1:ERROR XSDB1: Unknown page format at page error</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3723">DERBY-3723</a></td><td>Reset current schema to default (user name) when creating a new logical connection in the client driver</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3722">DERBY-3722</a></td><td>Add circularity check for the GRANT role statement</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3718">DERBY-3718</a></td><td>NPE when firing a trigger</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3717">DERBY-3717</a></td><td>convert derbynet/getCurrentProperties.java to junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3715">DERBY-3715</a></td><td>java/testing/README.htm refers to a non-existing test</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3711">DERBY-3711</a></td><td>convert store/aes.sql to junit test & add unrestricted test cases.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3708">DERBY-3708</a></td><td>setting tracedirectory from the command line does not work</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3707">DERBY-3707</a></td><td>STATUS file changes June 2008</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3706">DERBY-3706</a></td><td>NetworkServer console messages should print a time stamp</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3705">DERBY-3705</a></td><td>In Net Client mode, negative values for stream length are accepted without an exception for PreparedStatement.setAsciiStream()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3704">DERBY-3704</a></td><td>If an IOException is encountered during establishment of the connection, Network Server should print the root exception to the console instead of a generic message</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3703">DERBY-3703</a></td><td>Make it possible to build the JSR169 support with the jdk1.4 libraries</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3702">DERBY-3702</a></td><td>Remove xml-apis.jar because we no longer have to compile against jdk1.3</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3701">DERBY-3701</a></td><td>java.lang.Exception: DRDA_UnableToAccept.S:Unable to accept connections and client hang if tracing is turned on but traceDirectory does not exist</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3700">DERBY-3700</a></td><td>Get rid of tools/java/empty.jar</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3696">DERBY-3696</a></td><td>Delete superfluous test lang/longStringColumn.java</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3695">DERBY-3695</a></td><td>NullPointerException when invoking statement event listeners if one of the listeners is null</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3694">DERBY-3694</a></td><td>'Method resolution for signature java.lang.String.valueOf(int) was ambiguous. (No single maximally specific method.)' in 'testFunctionNullHandling(org.apache.derbyTesting.functionTests.tests.lang.RoutineTest)' on JavaME</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3693">DERBY-3693</a></td><td>Deadlocks accessing DB metadata</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3692">DERBY-3692</a></td><td>'javax.transaction.xa.XAException' ++ in 'J2EEDataSourceTest'</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3690">DERBY-3690</a></td><td>EmbedPooledConnection doesn't reset schema when creating a new logical connection</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3686">DERBY-3686</a></td><td>convert predicatePushdown.sql to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3685">DERBY-3685</a></td><td>weme 6.1 Base connection pooling suitejunit.framework.AssertionFailedError: java.lang.NullPointerException</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3684">DERBY-3684</a></td><td>Wire the vti demo into the build.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3682">DERBY-3682</a></td><td>SYSCS_BULK_INSERT doesn't quote identifiers or strings properly</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3681">DERBY-3681</a></td><td>When authenticating a user at connect time, verify that the user provided is not also a defined role name.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3678">DERBY-3678</a></td><td>StackOverflowException in deadlock trace</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3674">DERBY-3674</a></td><td>'ALTER TABLE' is not allowed on the System table '"SYSCS_DIAG"."TRANSACTION_TABLE"' in derbyall - store/TransactionTable.sql</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3673">DERBY-3673</a></td><td>Add checks that a new role isn't already a user authorization id</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3668">DERBY-3668</a></td><td>Remove JDBC 3.0-specific topics from Reference Manual and merge implementation notes as needed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3667">DERBY-3667</a></td><td>SQL roles: Make CURRENT_ROLE check that the role is still valid</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3666">DERBY-3666</a></td><td>Make role descriptor a dependency Provider</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3665">DERBY-3665</a></td><td>Master file for derbynet/testProperties.java needs update for 10.3.2.2 to 10.3.3.0 version change.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3663">DERBY-3663</a></td><td>Convert store/streamingColumn to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3661">DERBY-3661</a></td><td>Typo yields redundant test case in GrantRevokeTest</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3659">DERBY-3659</a></td><td>revive tests with ldap references to be runnable as junit tests</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3658">DERBY-3658</a></td><td>LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3657">DERBY-3657</a></td><td>Comment in template security policy incorrectly says that JMX is not enabled by default</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3655">DERBY-3655</a></td><td>errror in nightly regression test: LobStreamsTest:encryptedjunit.framework.AssertionFailedError: f:\jartest\JarResults.2008-04-29\ibm16_suites.All\system\singleUse\oneuse1e\tmp\lob6165.tmp</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3653">DERBY-3653</a></td><td>Convert datetime.sql to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3652">DERBY-3652</a></td><td>Derby does not follow the SQL Standard when trying to map SQL routines to Java methods.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3649">DERBY-3649</a></td><td>can't call a stored function with an aggregate argument without getting the following error: ERROR 42Y29</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3642">DERBY-3642</a></td><td>Update and rectify the Derby tutorial</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3640">DERBY-3640</a></td><td>Add an example for table function in Derby Reference Manual</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3638">DERBY-3638</a></td><td>java/testing/Readme.htm location of derbyTesting.jar</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3633">DERBY-3633</a></td><td>tools/derbyrunjartest.java fails with 'No command given.' (expecting 'No arguments given.')</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3631">DERBY-3631</a></td><td>UDF used with aggregate arguments results in error 30000</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3629">DERBY-3629</a></td><td>Tools Guide should document continuation marker for ij</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3625">DERBY-3625</a></td><td>XSDA3 error in concateTests in lang.LangHarnessJavaTest caused by bug in SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3623">DERBY-3623</a></td><td>Convert deadlockMode.java to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3622">DERBY-3622</a></td><td>SYSCS_UTIL.SYSCS_EMPTY_STATEMENT_CACHE needs a better description in the reference manual</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3619">DERBY-3619</a></td><td>Implement more load types for org.apache.derbyTesting.perf.clients.Runner</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3618">DERBY-3618</a></td><td>Perform thread dump with ASSERTS with jdk 1.5 or higher</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3615">DERBY-3615</a></td><td>Making the instructions more clear in documentation(BUILDING.txt) regarding setting JRE lib path for a Windows system</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3613">DERBY-3613</a></td><td>SELECT DISTINCT field FROM TABLE_NAME GROUP BY field, field2</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3612">DERBY-3612</a></td><td>Developer's Guide needs correction on garbage collection</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3602">DERBY-3602</a></td><td>If derbytesting.jar is in a different directory than the derby jars SystemPrivilegesPermissionTest fails with java.security.AccessControlException</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3601">DERBY-3601</a></td><td>Optimize LOBStateTracker for non-locator servers</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3597">DERBY-3597</a></td><td>Incorporate DERBY-3310 and DERBY-3494 write-ups into NormalizeResultSetNode javadoc</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3596">DERBY-3596</a></td><td>Creation of logical connections from a pooled connection causes resource leak on the server</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3589">DERBY-3589</a></td><td>AllocPage.createPage() doesn't initialize minimumRecordSize correctly</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3588">DERBY-3588</a></td><td>suites.All fails to run on Jvm 1.5 when built with JDK 1.5 (Failed to invoke suite(): .jdbc4._Suite)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3587">DERBY-3587</a></td><td>Convert jdbcapi/testRelative.java to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3586">DERBY-3586</a></td><td>Remove am.Connection.reset(LogWriter,ClientBaseDataSource,boolean) and called methods</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3584">DERBY-3584</a></td><td>Replication tests shall not be run on Java ME</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3582">DERBY-3582</a></td><td>IndexOutOfBoundsError in ClockPolicy.moveHand</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3581">DERBY-3581</a></td><td>Changing certain properties on client DataSource objects causes existing connections to reflect the new values</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3580">DERBY-3580</a></td><td>Remove unused method Connection.resetConnection(LogWriter, String, Properties)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3579">DERBY-3579</a></td><td>The Developer's Guide incorrectly describes the behavior of transactions inside procedures and functions</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3578">DERBY-3578</a></td><td>DrdaStreamOutBufferSize attribute of NetworkServerMBean should be of type int instead of String</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3576">DERBY-3576</a></td><td>Merge EngineBlob and EngineClob into a single interface</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3574">DERBY-3574</a></td><td>With client, attempting to get the lob length after commit or connection close if there was a call to length() before commit does not throw an exception</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3572">DERBY-3572</a></td><td>directory error in the file "java/testing/README.htm"</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3571">DERBY-3571</a></td><td>LOB locators are not released if the LOB columns are not accessed by the client</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3570">DERBY-3570</a></td><td>Implement DETERMINISTIC keyword for procedures and functions</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3568">DERBY-3568</a></td><td>Convert jdbcapi/savepointJdbc30_JSR169.java and jdbcapi/savepointJdbc30_XA.java to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3567">DERBY-3567</a></td><td>AsynchronousLogShipper#forceFlush should time out</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3566">DERBY-3566</a></td><td>Alter column set data type not allowed in soft upgrade with unique constraint</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3562">DERBY-3562</a></td><td>Number of log files (and log dir size) on the slave increases continuously</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3561">DERBY-3561</a></td><td>testStartStopManagementFromApplication(org.apache.derbyTesting.functionTests.tests.management.ManagementMBeanTest)junit.framework.AssertionFailedError: expected:<2> but was:<5></td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3558">DERBY-3558</a></td><td>regression test failure in testDerbyJarAttributeAlpha - Security Exception</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3556">DERBY-3556</a></td><td>change derby.tests.trace property to print the name of the test before it runs it</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3554">DERBY-3554</a></td><td>Change Collation test to run DatabaseMetaDataTest, BatchUpdateTest,GroupByExpressionTest, and UpdateableResultSetTest for only one locale</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3551">DERBY-3551</a></td><td>Implement procedure SYSCS_UTIL.SYSCS_PREPARE_REPLICATION()</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3549">DERBY-3549</a></td><td>Unable to start slave mode after authentication failure on a previous startSlave attempt</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3548">DERBY-3548</a></td><td>NoClassDefFoundError failure in SystemPrivilegesPermissionTest for weme6.1</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3546">DERBY-3546</a></td><td>Failed to get database schemas of a JAR database</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3544">DERBY-3544</a></td><td>If NetworkServer fails to shutdown when run as a separate process by NetworkServerTestSetup, test run will hang</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3543">DERBY-3543</a></td><td>NetworkServerControl with options but no command does not give usage message</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3538">DERBY-3538</a></td><td>NullPointerException during execution for query with LEFT OUTER JOIN whose inner table selects all constants.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3531">DERBY-3531</a></td><td>DatabasePermission uses a JDK 1.4 method that is not present in J2ME/CDC/Foundation.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3527">DERBY-3527</a></td><td>The slave will not notice that a network cable is unplugged and will therefore reject failover/stopSlave commands</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3526">DERBY-3526</a></td><td>AsynchronousLogShipper#workToDo is blocked while the log shipper sends a log chunk</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3525">DERBY-3525</a></td><td>Remove unneeded code to get JDBC level in BrokeredConnection and BrokeredStatement classes</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3521">DERBY-3521</a></td><td>Functionality for skipping testsuites on certain platforms fails for the new management testsuite on phoneME advanced</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3520">DERBY-3520</a></td><td>convert views.sql to junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3515">DERBY-3515</a></td><td>23 timeouts encountered while running management junit suite as part of full nightly runs.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3509">DERBY-3509</a></td><td>The replication log shipper is not notified when a new replication transmitter is instantiated in MC#handleException.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3508">DERBY-3508</a></td><td>Log receiver thread fails with NPE at failover when master has died</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3506">DERBY-3506</a></td><td>Add JMX testing with a security manager and investigate testing with JMX authentication.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3503">DERBY-3503</a></td><td>Change stress.multi to dump thread stacks before killing off testers with jdk 1.5 and higher</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3494">DERBY-3494</a></td><td>Move the setup of NormalizeResultSetNode into the NormalizeResultSetNode</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3489">DERBY-3489</a></td><td>Error message XRE04 does not include the right port number.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3469">DERBY-3469</a></td><td>Clob.length() doesn't detect a closed underlying connection in a consistent way</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3462">DERBY-3462</a></td><td>Require new permissions in o.a.d.security.SystemPermission to allow control to Derby's JMX management and to ensure information is not leaked through JMX</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3447">DERBY-3447</a></td><td>Shutdown on a database without stopping replication hangs</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3446">DERBY-3446</a></td><td>Make ResultSet.getStatement return the correct statement when created by a logical statement</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3431">DERBY-3431</a></td><td>DatabaseMetaData.getConnection returns the wrong connection when using connection pooling</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3420">DERBY-3420</a></td><td>The -ca option should be removed from ij and from the ij command usage line</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3409">DERBY-3409</a></td><td>Remove JDBC 2.0-specific topics from Reference Manual and merge implementation notes as needed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3408">DERBY-3408</a></td><td>Wrong message when using SHOW in ij.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3401">DERBY-3401</a></td><td>Removing a ConnectionEventListener from a PooledConnection during its connectionClosed() callback causes other ConnectionEventListener callbacks to be missed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3397">DERBY-3397</a></td><td>Derby 10.3.1.4 and 10.3.2.1 break scrollable result sets? Hibernate Query.setFirstResult and/or setMaxResults</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3390">DERBY-3390</a></td><td>SQLException thrown from user function kills network connection</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3385">DERBY-3385</a></td><td>Tests for JMX Management and Monitoring</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3381">DERBY-3381</a></td><td>"ERROR XSDA3: Limitation: Record cannot be updated or inserted due to lack of space on the page...." in suites.All</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3379">DERBY-3379</a></td><td>"No Current connection" on PooledConnection.getConnection() if pooled connection is reused during connectionClosed processing</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3373">DERBY-3373</a></td><td>SQL "distinct" and "order by" needed together</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3360">DERBY-3360</a></td><td>Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3354">DERBY-3354</a></td><td>Select from large lob table with embedded gives OutOfMemoryError</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3347">DERBY-3347</a></td><td>ERROR XSDB3: Container information cannot change once written</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3338">DERBY-3338</a></td><td>CancelQueryTask.forgetContext() could be simplified.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3327">DERBY-3327</a></td><td>SQL roles: Implement authorization stack (and SQL session context to hold it)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3320">DERBY-3320</a></td><td>Database creation and boot should fail if collation=TERRITORY_BASED and the selected locale is not supported</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3319">DERBY-3319</a></td><td>Logical connections do not check if a transaction is active on close</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3310">DERBY-3310</a></td><td>ASSERT in MergeSort.checkColumnTypes() disallow legal type conversions</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3307">DERBY-3307</a></td><td>NPE in PooledConnction event notification handling if a null listener is added</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3270">DERBY-3270</a></td><td>Delayed (on-demand) creation of current user schema makes select from view belonging to other schema fail.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3266">DERBY-3266</a></td><td>Not possible for non-db-owner to create a temporary table. "Get ERROR 42507: User 'USERB' can not perform the operation in schema 'SESSION'."</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3227">DERBY-3227</a></td><td>Remove final from all getConnection() methods in EmbeddedDataSource</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3223">DERBY-3223</a></td><td>SQL roles: make use of privileges granted to roles in actual privilege checking</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3219">DERBY-3219</a></td><td>Group by query with many aggregate columns and case statements fails with: ERROR XSDA7: Restore of a serializable or SQLData object of class , attempted to read more data than was originally stored</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3200">DERBY-3200</a></td><td>Developer's Guide: Add examples showing use of SQL authorization with user authentication</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3193">DERBY-3193</a></td><td>SQL roles: Add documentation</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3180">DERBY-3180</a></td><td>error XSDA3 when test is executing SYSCS_INPLACE_COMPRESS_TABLE in specific situation</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3151">DERBY-3151</a></td><td>Reduce dependency on NetworkServerControl in TestConfiguration</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3137">DERBY-3137</a></td><td>SQL roles: add catalog support</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3130">DERBY-3130</a></td><td>Reduce memory footprint of StoredRecordHeader</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3116">DERBY-3116</a></td><td>totalSpace not properly initialized in AllocPage</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3097">DERBY-3097</a></td><td>Unnecessary if statement can be removed from BaseActivation.getColumnFromNow</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3063">DERBY-3063</a></td><td>Extend the system function mechanism to support functions with multiple arguments</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3043">DERBY-3043</a></td><td>'Schema <schemaname> does not exist' when constraint used in table definition</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-3035">DERBY-3035</a></td><td>Cannot restore backups without BACKUP.HISTORY file</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2991">DERBY-2991</a></td><td>Index split deadlock</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2958">DERBY-2958</a></td><td>need to mention ClientDriver In Derby reference manual's java.sql.Driver interface section</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2892">DERBY-2892</a></td><td>Closing a resultset after retrieving a large > 32665 bytes value with Network Server does not release locks</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2861">DERBY-2861</a></td><td>Thread safety issue in TableDescriptor</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2822">DERBY-2822</a></td><td>Add caching of store stream length in StoreStreamClob, if appropriate</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2750">DERBY-2750</a></td><td>Convert lang/declareGlobalTempTableJava.java to JUnit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2747">DERBY-2747</a></td><td>Reply incorrectly handles read() returning -1</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2514">DERBY-2514</a></td><td>convert lang/closed.java to junit</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2498">DERBY-2498</a></td><td>NullPointerException on ClientDataSource.getConnection() when ds.setdatabaseName was invalid</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2389">DERBY-2389</a></td><td>DOCS - Move Derby system and properties info from Tuning Guide into Reference Manual</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2388">DERBY-2388</a></td><td>DOCS - Reorder JDBC Reference section in Ref Manual</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2353">DERBY-2353</a></td><td>intermittent NPEs during DELETE ops in a reasonably large transaction</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2351">DERBY-2351</a></td><td>ORDER BY with expression with distinct in the select list returns incorrect result</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2320">DERBY-2320</a></td><td>Example in DEGREES function is not appropriate.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2207">DERBY-2207</a></td><td>Improve usability of Derby's client/server security by implementing ANSI Roles</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-2085">DERBY-2085</a></td><td>Misleading error message for non-matching ORDER BY clause in queries with GROUP BY.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1944">DERBY-1944</a></td><td> jdbcapi/ParameterMappingTest.java test does not execute test for setObject(Blob/Clob) in DerbyNetClient</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1932">DERBY-1932</a></td><td>Reference Manual updates - JDBC Reference section</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1848">DERBY-1848</a></td><td>jdbcapi/SetQueryTimeoutTest.java fails on IBM wctme 5.7</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1764">DERBY-1764</a></td><td>Rewrite stress.multi as a JUnit test</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1726">DERBY-1726</a></td><td>Make i18n/LocalizedDisplay.sql and i18n/LocalizedConnectionAttribute.sql behave equally on different platforms</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1670">DERBY-1670</a></td><td>Remove optional osgi.jar download by including equivalent jar from the apache incubator felix project in the Derby's svn</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1458">DERBY-1458</a></td><td>Add MessageBundleTest to build script to verify that there are no orphaned message ids</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1416">DERBY-1416</a></td><td>Message id J029 (CONN_RESTORE_FROM) does not have a matching message text</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1415">DERBY-1415</a></td><td>Message id J030 in reference.MessageId.java does not have a matching message</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1412">DERBY-1412</a></td><td>Possible values for derby.storage.rowLocking Derby engine is not currently documented eventhough the property is</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1411">DERBY-1411</a></td><td>DRDAConnThread uses SQLState.NO_SUCH_DATABASE, which has no matching message</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1387">DERBY-1387</a></td><td>Add JMX extensions to Derby</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1331">DERBY-1331</a></td><td>Derby's "set schema" behavior is not compliant with SQL 2003 Foundation spec.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1107">DERBY-1107</a></td><td>For existing databases JDBC metadata queries do not get updated properly between maintenance versions.</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-1062">DERBY-1062</a></td><td>Change the internal implemetation of SYSCS_INPLACE_COMPRESS_TABLE to share existing alter table</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-961">DERBY-961</a></td><td>Error 22001 can include 'XX-RESOLVE-XX' which should be removed</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-719">DERBY-719</a></td><td>Calling SYSCS_INPLACE_COMPRESS_TABLE on SYS.SYSTABLES results in a lock timeout, with only a single connection active</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-576">DERBY-576</a></td><td>xaHelper in ij creates global id that is not the same across platforms</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-503">DERBY-503</a></td><td>Documentation should recommend using .newInstance() to instantiate JDBC driver</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-481">DERBY-481</a></td><td>implement SQL generated columns</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-269">DERBY-269</a></td><td>Provide some way to update index cardinality statistics (e.g. reimplement update statistics)</td> +</tr> +<tr> +<td><a href="http://issues.apache.org/jira/browse/DERBY-48">DERBY-48</a></td><td> A connection request that has a default schema that is being created by another transaction will fail to connect</td> +</tr> +</table> +</blockquote> +<h2> +<a name="Issues"></a>Issues</h2> +<blockquote> +<p>Compared with the previous release (10.4.2.0), Derby release 10.5.1.1 introduces the following incompatibilities. These merit your special attention.</p> +<ul> +<li> +<a href="#Note for DERBY-4073"> +<p>Note for DERBY-4073: +The method <tt>setSsl(int)</tt> has been removed from the client data source classes. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-4050"> +<p>Note for DERBY-4050: +Table growth may result from multi-threaded Clob updates before the fix for DERBY-4050. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-4042"> +<p>Note for DERBY-4042: +Format of file name arguments to the import procedures changed for +files with single quotes (') in their names. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-4008"> +<p>Note for DERBY-4008: + After the change for DERBY-4008, applications may see a different error message when attempting to connect a 10.5 client to older revision servers (e.g. 10.4 and 10.3) with multibyte database names. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-3977"> +<p>Note for DERBY-3977: +A different exception is thrown by the embedded driver when trying to truncate a Clob with a too large length argument. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-3701"> +<p>Note for DERBY-3701: + An error message will be logged to derby.log if the Network Server tracing file cannot be created. + Starting with version 10.5, the Network Server will attempt to create the trace directory if it does not exist. Any intervening directories in the given path will also be created if possible. + +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-3652"> +<p>Note for DERBY-3652: +Derby now follows the SQL Standard rules for matching functions and procedures to Java methods. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-3420"> +<p>Note for DERBY-3420: +The <i>-ca</i> command line option has been removed from ij. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-3347"> +<p>Note for DERBY-3347: +A bug that could cause unrecoverable database corruption has been fixed. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-3327"> +<p>Note for DERBY-3327: +The effect of setting the current default schema (<code>SET SCHEMA +schemaname</code>) inside nested connection of a stored procedure or +function has been changed to comply with SQL standard semantics.</p> +</a> +</li> +<li> +<a href="#Note for DERBY-3319"> +<p>Note for DERBY-3319: +Exception is thrown when connection with uncommitted operations is closed. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-2351"> +<p>Note for DERBY-2351: An ORDER BY clause of a DISTINCT query which specifies to order by a +column which was not in the DISTINCT list is now rejected, because the +intent of the query is ambiguous. Previously, Derby instead produced +non-distinct results. +Also, an ORDER BY clause which specifies a table-name-qualified column alias +is now rejected as invalid, where previously it was accepted.</p> +</a> +</li> +<li> +<a href="#Note for DERBY-2085"> +<p>Note for DERBY-2085: +Derby has improved the error message which is issued when an invalid +column reference is found in a grouped query. Derby now issues message +42Y36 instead of 42Y30. Furthermore, the wording of message 42Y36 has +been expanded to further explain the behavior. +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-1062"> +<p>Note for DERBY-1062: +Applications will see a different error code and message when they attempt to call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE on a table that does not exist. + +</p> +</a> +</li> +<li> +<a href="#Note for DERBY-48"> +<p>Note for DERBY-48: +In Derby, a user's <b>initial default schema</b> is named the same as +the user name, or APP if a user is not provided at connect time. This +schema is implicitly auto-created the first time a schema object is +created in that schema. +</p> +</a> +</li> +</ul> +<hr> +<h3> +<a name="Note for DERBY-4073"></a>Note for DERBY-4073</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +The method <tt>setSsl(int)</tt> has been removed from the client data source classes. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +The application will either fail to compile, or experience a <tt>NoSuchMethodError</tt>. +Only applications invoking the removed method are affected. +</p> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +The method <tt>setSsl(int)</tt> can no longer be used to configure SSL +with the client data sources. +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +Having two <tt>setSsl</tt>-methods caused choice problems for some applications +using Derby data sources and also configuring the data source through +introspection, since there were two methods called setSsl; +<tt>setSsl(int)</tt> and <tt>setSsl(String)</tt>. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +Use <tt>setSsl(String)</tt> instead of <tt>setSsl(int)</tt>. +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-4050"></a>Note for DERBY-4050</h3> +<blockquote> + +<!-- + +--> + + +<h4>Summary of Change</h4> + +<p> +Table growth may result from multi-threaded Clob updates before the fix for DERBY-4050. +</p> + + +<!-- + +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +Before the fix for DERBY-4050, applications may have seen growth in the size of the database, particularly the size of the dat files for Clob tables, when doing updates to the Clob tables from multiple threads. The fix for DERBY-4050 will prevent future growth but will not reclaim space consumed by the bug in the past. To reclaim the space, a full offline compress of the clob table is needed. See the Derby documentation for usage of <A HREF="http://db.apache.org/derby/docs/10.4/ref/rrefaltertablecompress.html"> SYSCS_UTIL.SYSCS_COMPRESS_TABLE </A> + + + +</p> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +none +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +DERBY-4050 fixes a bug in space reclamation. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +The compress table should only need to be run once if the fix for DERBY-4050 has been applied. No application changes should be required. +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-4042"></a>Note for DERBY-4042</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +Format of file name arguments to the import procedures changed for +files with single quotes (') in their names. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +In the previous release, applications that imported data from a file +whose file name contained a single quote (') character would fail +unless they replaced each single quote in the file name argument to +the import procedure with two single quotes. Now this has changed and +Derby does not understand the file name argument unless it has the +same number of single quote characters as the actual file +name. Applications that worked around the problems in earlier releases +by adding extra single quotes, will now see exceptions like the +following: +</p> + + +<pre> +ERROR XIE04: Data file not found: Rock''n''roll.csv +</pre> + + +<p> +Applications that do not import files whose names contain single +quotes will not be affected by this change. +</p> + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +Previous releases required file name arguments to the import +procedures to double each occurrence of a single quote in the file +name, like this when importing a file +called <tt>C:/Chip's/TERMS.dat</tt>: +</p> + + +<pre> +PreparedStatement ps = conn.prepareStatement( + "CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(null,'MY_TABLE',?,null,null,null,0)"); +ps.setString(1, "C:/Chip''s/TERMS.dat"); +ps.execute(); +</pre> + + +<p> +In this release the above code would result in the following exception: +</p> + + +<pre> +ERROR XIE04: Data file not found: C:/Chip''s/TERMS.dat +</pre> + + +<p> +In this release, applications must use the actual name of the file, +like this: +</p> + + +<pre> +PreparedStatement ps = conn.prepareStatement( + "CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(null,'MY_TABLE',?,null,null,null,0)"); +ps.setString(1, "C:/Chip's/TERMS.dat"); +ps.execute(); +</pre> + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +It is more intuitive if the file name arguments match the actual file +names. Also, in the previous releases there were some combinations of +single quotes and other special characters (like double quotes) that +it was not possible to get to work even with the workaround. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +Applications that work around the issue in previous releases by adding +extra single quotes to the file name arguments, must be changed so +that they do not add extra single quote characters. +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-4008"></a>Note for DERBY-4008</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> + After the change for DERBY-4008, applications may see a different error message when attempting to connect a 10.5 client to older revision servers (e.g. 10.4 and 10.3) with multibyte database names. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +In previous releases when attempting to connect to network server using a multibyte database name the connect would fail with the the exception:<BR> + +<code> +SQLSTATE:22005 +java.sql.SQLDataException: Unicode string cannot convert to Ebcdic string +</code> + +<BR> +This message will not change for 10.5 clients connecting to 10.5 servers. + +After the change for DERBY-4008 the error message may change when connecting 10.5 clients to older revision server. Instead the message will be:<BR> + +<code> +SQLSTATE:08006 +java.sql.SQLNonTransientConnectionException: A network protocol error was encountered and the connection has been terminated: A PROTOCOL Data Stream Syntax Error was detected. Reason: 0x8,464. Plaintext connection attempt to an SSL enabled +server? +</code> +<BR> + +with a chained SQLException: <BR> + +<code> +SQLSTATE:22005 +java.sql.SQLDataException: Unicode string cannot convert to Ebcdic string +</code> +<BR> + +The protocol error will also show on the server console. +</p> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +The client error message when attempting to connect with multibyte database names will change with mixed revision client/server as described in the previous section. +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +This change was made in preparation for fixing DERBY-728 to allow multibyte characters in the database name. The change in error message with back revision servers was considered an acceptable change and necessary to fix DERBY-728. + +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +To reveert to the previous error message, users can upgrade their server to the latest on the 10.3 or 10.4 branch, or upgrade their server to 10.5. Otherwise applications expecting the old error message should upon gettting the SQLState: 08006 message retrieve the chained exception with SQLExcepiton.getNextMessage() and then process the message as before. + + +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-3977"></a>Note for DERBY-3977</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +A different exception is thrown by the embedded driver when trying to truncate a Clob with a too large length argument. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +In the previous release, the embedded driver would throw an exception with +SQLState XJ076 when trying to truncate a Clob with a length argument bigger +than the Clob length. Now, it will throw the same exception as the client +driver, XJ079. The error messages also differ: +</p> + + +<pre> +Before: XJ076: The position argument '18149' exceeds the size of the BLOB/CLOB. +Now: XJ079: The length specified '18149' exceeds the size of the BLOB/CLOB. +</pre> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +Applications catching a specific exception based on SQLState may behave +differently. The incompatibility can only be seen if the application calls +<code>Clob.truncate</code> with the embedded driver. +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +To make the embedded and the client driver consistent. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +Look for SQLState XJ079 instead of XJ076 when <code>Clob.truncate()</code> is called. +</p> + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-3701"></a>Note for DERBY-3701</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> + An error message will be logged to derby.log if the Network Server tracing file cannot be created. + Starting with version 10.5, the Network Server will attempt to create the trace directory if it does not exist. Any intervening directories in the given path will also be created if possible. + +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +Before the fix for DERBY-3110, if derby.drda.traceAll was set to true +and the derby.drda.traceDirectory was set to a non-existent directory, +no tracing would occur and no error would occur. After the fix for +DERBY-3110, an error "java.lang.Exception: +DRDA_UnableToAccept.S:Unable to accept connections" would occur and +the client would hang and no tracing would occur. With this fix for +version 10.5 and higher, the Network Server will attempt to create the +trace directory if possible. For 10.4.2 (and the next release on the +10.3 branch), the Network Server will still not try to create the directory. For all +these releases the Network Server will print an error on session +connect if there is any problem creating the trace file, but the +Network Server will not cause the session connection to fail. Users who have trace turned on and the trace directory set to a non-existent directory may now see exceptions in the derby.log on connect indicating that the trace file is not found <b> or </b> with 10.5 or higher they may see tracing occur where it did not before. + +</p> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +Tracing properties will not be ignored or cause the client to hang if the trace directory is set to a non-existent directory. + +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> + +The tracing properties should not be summarily ignored or cause the client to hang if the trace directory does not exist. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +Applications that counted on the derby.drda.traceAll property being ignored if derby.drda.traceDirectory was set to a non-existent directory, need to turn tracing off or they may now see many errors in the derby.log or large amounts of tracing. + +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-3652"></a>Note for DERBY-3652</h3> +<blockquote> + + +<h4>Summary of Change</h4> + +<p> +Derby now follows the SQL Standard rules for matching functions and procedures to Java methods. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +In previous releases, Derby matched SQL routines to Java methods using +an irregular set of rules which were hard to describe. At the same +time, the user documentation falsely claimed that Derby followed the +signature matching rules in the ANSI/ISO SQL Standard. Derby now +conforms to the Standard behavior. In general, the Standard behavior +is easier to understand and it is now possible to be confident that a +function or procedure definition will match the desired Java +method. In certain corner cases, however, methods which used to +resolve will no longer resolve. The Standard resolution rules are +described in the Derby Reference Guide. +</p> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +Routines may resolve differently. Here are the differences listed in +declining order of likelihood: +</p> + + +<ol> + +<li> +<b>Ambiguity</b> - Some SQL routines may match multiple Java +methods now. This raises an error according to the Standard. This is +most likely to affect the following matches: + <ul> + +<li>Matching INTEGER to Java <i>int</i> and <i>Integer</i>.</li> + +</ul> + +</li> + +<li> +<b>Failure</b> - Some SQL routines may fail to match Java +methods. This is most likely to affect the following matches: + <ul> + +<li>SMALLINT no longer matches <i>int</i>.</li> + +<li>INTEGER no longer matches <i>long</i>.</li> + +<li>BIGINT no longer matches <i>float</i>.</li> + +<li>REAL no longer matches <i>double</i>.</li> + +<li>VARCHAR no longer matches <i>Object</i>.</li> + +<li>NUMERIC no longer matches <i>Object</i>.</li> + +</ul> + +</li> + +<li> +<b>Change</b> - Some SQL routines may resolve to different Java +methods now.</li> + +<li> +<b>Success</b> - Some SQL routines may now resolve even though +previously they did not resolve to Java methods. This is most likely +to affect the following matches: + <ul> + +<li>BLOB now matches <i>Blob</i>.</li> + +<li>CLOB now matches <i>Clob</i>.</li> + +</ul> + +</li> + +</ol> + + + +<h4>Rationale for Change</h4> + +<p> +The previous behavior violated the SQL Standard and was very hard to explain. The new behavior +is correct and easy to describe. +</p> + + + +<h4>Application Changes Required</h4> + +<p> +This release includes a lint tool, <i>SignatureChecker</i>. If your +application uses SQL functions and/or procedures, you should run this +tool against your databases in order to find routines which no longer +match. To run the tool, make sure that your classpath contains the 10.5 jar files, including <i>derbytools.jar</i>. +</p> + + + +<p> +On a J2SE platform, run the lint tool as follows (where +CONNECTION_URL_TO_DATABASE is the connection URL you would use in +order to obtain a connection via <i>DriverManager.getConnection()</i>): +</p> + + +<blockquote> +<pre> + java org.apache.derby.tools.SignatureChecker CONNECTION_URL_TO_DATABASE +</pre> +</blockquote> + + +<p> +Alternatively, you can invoke the tool via <i>derbyrun.jar</i>. E.g.: +</p> + + +<blockquote> +<pre> + java -jar derbyrun.jar SignatureChecker "jdbc:derby:myDB" +</pre> +</blockquote> + + +<p> +On a J2ME platform, run the lint tool as follows (where +DATABASE_NAME is the database name you would set via +<i>EmbeddedSimpleDataSource.setDatabaseName()</i>): +</p> + + +<blockquote> +<pre> + java org.apache.derby.tools.SignatureChecker DATABASE_NAME +</pre> +</blockquote> + + +<p> +The tool examines every routine registered in the database and +prints out results like the following: +</p> + + +<blockquote> +<pre> +Found a matching method for: "APP"."DOINSERT"( ) +Found a matching method for: "APP"."DOINSERTANDCOMMIT"( ) +Found a matching method for: "APP"."APPENDFOOANDBAR"( VARCHAR ) +Unresolvable routine: "APP"."IDONTEXIST"( VARCHAR , INTEGER ). +Detailed reason: No method was found that matched the method call z.iDontExist(java.lang.String, int), +tried all combinations of object and primitive types and any possible +type conversion for any parameters the method call may have. +The method might exist but it is not public and/or static, or the parameter types are not method invocation convertible. +Found a matching method for: "APP"."RUNDDL"( VARCHAR ) +Unresolvable routine: "APP"."TABFUNCDOESNTEXIST"( VARCHAR , BIGINT ). +Detailed reason: No method was found that matched the method call +org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.appendFooAndBar(java.lang.String, long), +tried all combinations of object and primitive types and any possible +type conversion for any parameters the method call may have. +The method might exist but it is not public and/or static, or the parameter types are not method invocation convertible. +</pre> +</blockquote> + + +<p> +In the example above, the lint tool found matches for all routines +except for the functions <i>app.iDontExit</i> and <i>app.tabFuncDoesntExist</i>. +If the lint tool cannot find a match for one of your functions or +procedures, it tells you what signature it expected to find. You need to adjust your application in one of +the following ways: +</p> + + +<ol> + +<li> +<b>Method</b> - Change the signature of your Java method to match + the signature suggested by the lint tool.</li> + +<li> +<b>Routine</b> - Drop and recreate your function/procedure so that + its arguments and return type match your Java method according to + the Standard rules described in the Reference Guide.</li> + +</ol> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-3420"></a>Note for DERBY-3420</h3> +<blockquote> + + +<h4>Summary of Change</h4> + +<p> +The <i>-ca</i> command line option has been removed from ij. +</p> + + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +Applications which attempt to pass JDBC connection attributes using the -ca +flag to ij will be rejected, with a usage message such as: +<blockquote> +Usage: java org.apache.derby.tools.ij [-p propertyfile] [inputfile] +</blockquote> + +</p> + + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +Applications which attempt to pass JDBC connection attributes using the -ca +flag to ij will fail, as that flag is no longer recognized by ij. +</p> + + + +<h4>Rationale for Change</h4> + +<p> +It used to be that you could not specify both client and embedded attributes +in the connection URL. Since Derby now supports such combinations of +attributes in the connection URL, the community decided that the -ca option +doesn't really add value and so it has been removed. +</p> + + +<h4>Application Changes Required</h4> + +<p> +Applications should include connection attributes in the connection URL. For +example: +<blockquote> + connect 'jdbc:derby:myDB;territory=no_NO;collation=TERRITORY_BASED;create=true'; +</blockquote> + +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-3347"></a>Note for DERBY-3347</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +A bug that could cause unrecoverable database corruption has been fixed. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +A bug that could cause database corruption was introduced in the 10.3 +codeline and affects the following releases: +</p> + + +<ul> + +<li>Apache Derby 10.3.1.4</li> + +<li>Apache Derby 10.3.2.1</li> + +</ul> + + +<p> +Users who are hit by this bug may experience exceptions at various +times during execution of SQL statements, booting or shutdown of a +database, or during checkpointing. It may result in a number of +different error messages, including any of these: +</p> + + +<pre> +ERROR XSDB3: Container information cannot change once written: was 0, now 80 +ERROR XSDG1: Page Page(1039,Container(0, 5856)) could not be written to disk, please check if disk is full. +ERROR XSDG2: Invalid checksum on Page Page(0,Container(0, 1313)) +ERROR XSDG3: Meta-data for Container org.apache.derby.impl.store.raw.data.RAFContainer4@1afb0c7 could not be accessed +ERROR XSLA1: Log Record has been sent to the stream, but it cannot be applied to the store (Object null). This may cause recovery problems also. +</pre> + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +None. +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +Database corruption is bad. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +No changes are required. However, since the database corruption may go +unnoticed for a while, users may want to check the consistency of +their databases after upgrading Derby. The process is described on the +following wiki page: +<a href="http://wiki.apache.org/db-derby/DatabaseConsistencyCheck"> +http://wiki.apache.org/db-derby/DatabaseConsistencyCheck +</a>. If a corruption is detected, restoring the database from backup +is the only reliable way to recover. +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-3327"></a>Note for DERBY-3327</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +The effect of setting the current default schema (<code>SET SCHEMA +schemaname</code>) inside nested connection of a stored procedure or +function has been changed to comply with SQL standard semantics.</p> + +<p> +Previously, setting the schema in a nested connection would have an +effect on the current default schema also in the SQL connection of the +caller. The SQL standard requires that the value of the default +current schema at the time of the call be reestablished when the call +is completed. This is now implemented.</p> + +<p> +If the current schema is dropped by a stored procedure or function, +the current schema as well as the saved values of the callers will be +reset to the initial default schema of the root connection.</p> + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +The current default schema of a connection which calls a stored +procedure or function which sets the current schema may be different +after the return. + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + +<h4>Rationale for Change</h4> + +<p> +SQL standard compliance. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> +If the application relies on a stored procedure to change the current +default schema, this must now be done in the calling connection instead. +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-3319"></a>Note for DERBY-3319</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +Exception is thrown when connection with uncommitted operations is closed. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +In the previous release, applications could close a connection +obtained from Derby's implementations of +<code>javax.sql.DataSource</code> or +<code>javax.sql.ConnectionPoolDataSource</code>, even if the +connection had uncommitted operations. Now, Derby raises an +<code>SQLException</code> when an attempt to close a connection with +an active transaction is made. The exception will have SQLState 25001, +and its message will say the following: +</p> + + +<pre> +java.sql.SQLException: Cannot close a connection while a transaction is still active. +</pre> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +Applications that close connections with active transactions now fail. +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +The previous behaviour was not consistent with the behaviour of +connection objects obtained from <code>java.sql.DriverManager</code>, +which already raise an exception in such a situation. The previous +behaviour could also cause resource leaks because there is no way to +free the resources held by an active transaction once its connection +object has been closed. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +Users must call <code>commit()</code> or <code>rollback()</code>, or +use auto-commit, before attempting to close a connection with +uncommitted operations. +</p> + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-2351"></a>Note for DERBY-2351</h3> +<blockquote> +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + +<h4>Summary of Change</h4> + +<p>An ORDER BY clause of a DISTINCT query which specifies to order by a +column which was not in the DISTINCT list is now rejected, because the +intent of the query is ambiguous. Previously, Derby instead produced +non-distinct results. +Also, an ORDER BY clause which specifies a table-name-qualified column alias +is now rejected as invalid, where previously it was accepted.</p> +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<h5>New rules for DISTINCT and ORDER BY</h5> + +<p> +Applications which specify certain combinations of SELECT DISTINCT with +ORDER BY will now receive an error message, whereas formerly such applications +received non-distinct results.</p> + +<p>As an example, take the following: </p> + +<p style="font-family: monospace;"> +create table person (name varchar(10), age int);<br> +insert into person values ('John', 10);<br> +insert into person values ('John', 30);<br> +insert into person values ('Mary', 20);<br> + +<br> +SELECT DISTINCT name FROM person ORDER BY age;<br> + +</p> + +<p>The query above is now rejected, with the error message:</p> + +<blockquote> + ERROR 42879: The ORDER BY clause may not contain column 'AGE', + since the query specifies DISTINCT and that column does not appear + in the query result. +</blockquote> + +<p>If the AGE column is included in the DISTINCT list in the above query, +there is no ambiguity</p> + +<h5>New column alias rules</h5> + +<p> +Applications which specify a column alias for a column in the SELECT +statement, and which specify an ORDER BY clause which specifies that +column alias qualified by the table name, will now receive an error +indicating that the ORDER BY clause is invalid. +</p> + +<p>As an example, take the following: </p> + +<p style="font-family: monospace;"> create table t1 (i int, j int);<br> + select t1.id as idcolumn1, t1.id as idcolumn2 from t1 order by t1.idcolumn1, t1.idcolumn2;</p> + +<p>This query is now rejected, as there is no column named 'idcolumn1' +in table 't1'. The error message is:</p> + +<blockquote> + ERROR 42X04: Column 'T1.IDCOLUMN1' is either not in any table in + the FROM list or appears within a join specification and is outside + the scope of the join specification or appears in a HAVING clause + and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE + statement then 'T1.IDCOLUMN1' is not a column in the target table. +</blockquote> + +<p>Valid forms of the query above are:</p> + +<p style="font-family: monospace;"> + select t1.id as idcolumn1, t1.id as idcolumn2 from t1 order by idcolumn1, idcolumn2;</p> + +<p>or</p> + +<p style="font-family: monospace;"> + select t1.id as idcolumn1, t1.id as idcolumn2 from t1 order by t1.id, t1.id;</p> + + +<h4>Rationale for Change</h4> + +<p>When the query ambiguously specifies both DISTINCT and ORDER BY, Derby +was unsure whether to return the rows properly ordered, but non-distinct, +or to return a distinct set of rows, but in an unknown order. Since no +clear resolution of the ambiguity could be found, we chose instead to +reject the query.</p> + +<p>The rules for resolving column references in ORDER BY clauses have been +enhanced to consider column aliases and column names more fully. +Derby now uses different resolution rules depending on whether +the ORDER BY column reference is table.column, or just column: +<ul> + +<li>if the table name is provided, we match against the + underlying table name, and don't consider any aliases</li> + +<li>if the table name is NOT provided, we first match against + the alias name, if present, and if no alias name matches + then we match against the underlying source column name. </li> + +</ul> + +</p> +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + +<h4>Application Changes Required</h4> + +<p> +A query which specifies ordering by a non-distinct column should instead +include the ORDER BY column in the DISTINCT list, to resolve the ambiguity +about which values of that column should be used to distinctly identify +the resulting rows.</p> + +<p> +A query which specifies table-name.alias-name should be rewritten to specify +either simply alias-name, or table-name.column-name. +</p> + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-2085"></a>Note for DERBY-2085</h3> +<blockquote> + +<h4>Summary of Change</h4> + +<p> +Derby has improved the error message which is issued when an invalid +column reference is found in a grouped query. Derby now issues message +42Y36 instead of 42Y30. Furthermore, the wording of message 42Y36 has +been expanded to further explain the behavior. +</p> + +<p> +Consider the table +</p> + +<blockquote> +<code> +CREATE TABLE t (i INT, j INT) +</code> +</blockquote> + +<p> +and consider the following query: +</p> + +<blockquote> +<code> +SELECT i FROM t GROUP BY i ORDER BY j +</code> +</blockquote> + +<p> +In Derby releases 10.2, 10.3, and 10.4, +this query gives the following error message: +</p> + +<blockquote> +<code> + +ERROR 42Y30: The SELECT list of a grouped query contains at least one invalid expression. If a SELECT list has a GROUP BY, the list may only contain valid grouping expressions and valid aggregate expressions. +</code> +</blockquote> + +<p> +This is misleading since there is no invalid expression in the SELECT +list. It is the ORDER BY clause that is wrong. +In Derby 10.5, this query will now give the following error message, which is +a revised version of the message issued by 10.1 (that is, Derby 10.5 behaves +more like Derby 10.1 in this respect): +</p> + +<blockquote> +<code> +ERROR 42Y36: Column reference 'J' is invalid, or is part of an invalid expression. For a SELECT list with a GROUP BY, the columns and expressions being selected may only contain valid grouping expressions and valid aggregate expressions. +</code> +</blockquote> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +An application which issued a grouped select statement with an invalid +column reference in the order by clause may now receive a different error +message than it did in 10.4. +</p> + + +<h4>Rationale for Change</h4> + +<p> +We feel that message 42Y36 is more helpful to the user in explaining the +problem with the invalid query. +</p> + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-1062"></a>Note for DERBY-1062</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +Applications will see a different error code and message when they attempt to call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE on a table that does not exist. + +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +Applications will see a different error code and message when they attempt to call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE on a table that does not exist. +The new error code and message will be +ERROR 42Y55: 'ALTER TABLE' cannot be performed on 'MissingTableName' because it does not exist. +The old error code and message used to be +ERROR 42X05: Table/View 'MissingTableName' does not exist. +</p> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +The SQL exception code in the previous release was 42X05 and error message was "Table/View 'MissingTableName' does not exist." +</p> + + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +To avoid duplication of code, the error handling is now done by a generic routine in ALTER TABLE rather than a routine specific to SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE. This change to use ALTER TABLE code to implement SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE was made in 10.5 release and that is the reason behind the change in error code behavior. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +If the application is looking for 42X05, it should be changed to look for 42Y55. +</p> + + + +</blockquote> +<hr> +<h3> +<a name="Note for DERBY-48"></a>Note for DERBY-48</h3> +<blockquote> + +<!-- + SUMMARIZE THE ISSUE. This is a one line summary of the issue. + + For instance: + + Applications may no longer open two InputStreams on the same ResultSet column. +--> + + +<h4>Summary of Change</h4> + +<p> +In Derby, a user's <b>initial default schema</b> is named the same as +the user name, or APP if a user is not provided at connect time. This +schema is implicitly auto-created the first time a schema object is +created in that schema. +</p> + +<p> +Previously, this auto-creation would be performed as part of the user +transaction. This would sometimes lead to locking issues as described +in this issue. With this change, the auto-creation is now performed +and committed immediately in a separate sub-transaction. +</p> + + +<!-- + DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS. + + For instance: + + In the previous release, applications were able to open two + InputStreams on the same column. Depending on how these streams + interacted, the value siphoned out of the column was erratic. Now + Derby raises a SQLException when the application attempts to create + the second InputStream. +--> + + +<h4>Symptoms Seen by Applications Affected by Change</h4> + +<p> +The initial default schema will be present in cases where it +previously would not yet have been created: If the user transaction +that creates a schema object leading to auto-creation of the initial +default schema rolls back for some reason after having created the +schema, up till now the auto-creation of the initial default schema +would be rolled back as well. Since it is now created and committed in +a sub-transaction, the schema creation will not be rolled back: the +default schema will persist. +</p> + + +<!-- + OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY. + + For instance: + + Applications which open two InputStreams on the ResultSet column now + fail. +--> + + +<h4>Incompatibilities with Previous Release</h4> + +<p> +Most applications should not be impacted by this change, but there are +some corner cases as described below: +</p> + +<p> +If the application tests for the existence of the initial default +schema by querying Derby system tables, the results could now be +different than in earlier releases, if the test is made after a +rollback as described in the previous section. +</p> + +<p> +Since the initial default schema will now potentially exist in cases +where it would previously not exist, schema operations may be +impacted, e.g. where before a DROP SCHEMA <default schema name> +RESTRICT would fail due to it not yet existing, it could now work (if +empty), depending on when the drop attempt is made. +</p> + +<!-- + DESCRIBE WHY THE CHANGE WAS MADE. + + For instance: + + The previous behavior violated the JDBC standard. The new behavior + is correct. +--> + + +<h4>Rationale for Change</h4> + +<p> +Implicit schema creation is now performed in its own transaction to +avoid deadlocks with other connections accessing the same schema. +</p> + +<p> +Doing this is a separate transaction avoids holding dictionary locks +longer than necessary, +cf. <a href="https://issues.apache.org/jira/browse/DERBY-48">DERBY-48</a> +and thus reduces the chance for deadlocks. +</p> + + +<!-- + OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR + OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE. + + For instance: + + Users must recode applications which open multiple streams on the same column. +--> + + +<h4>Application Changes Required</h4> + +<p> +Verify that the application code does not rely on the initial default schema +being absent after a rollback. +</p> + + + +</blockquote> +</blockquote> +<h2> +<a name="Build Environment"></a>Build Environment</h2> +<blockquote> +<p>Derby release 10.5.1.1 was built using the following environment:</p> +<ul> +<li> +<b>Branch</b> - Source code came from the 10.5 branch.</li> +<li> +<b>Machine</b> - Microsoft Windows XP Professional Version 2002 Service Pack 2.</li> +<li> +<b>Ant</b> - Apache Ant version 1.7.0 compiled on December 13 2006.</li> +<li> +<b>JDK 1.4</b> - Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2) +Classic VM (build 1.4.2, J2RE 1.4.2 IBM Windows 32 build cn142-20061124 (SR7)</li> +<li> +<b>Java 6</b> - Java(TM) SE Runtime Environment (build pwi3260sr3-20081106_07(SR3)) +IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Windows XP x86-32 jvmwi3260-20081105_25433</li> +<li> +<b>Compiler</b> - The 1.6 compiler was used to compile all classes, but java 1.4.2 classes were used to compile appropriate 1.4.2 support</li> +<li> +<b>JSR 169</b> - J2ME support was built using IBM's j9 jvm from WEME6.1</li> +</ul> +</blockquote> +</body> +</html>
diff --git a/derby/org.apache.derby/build.properties b/derby/org.apache.derby/build.properties new file mode 100644 index 0000000..21c31a6 --- /dev/null +++ b/derby/org.apache.derby/build.properties
@@ -0,0 +1,7 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + derby.jar,\ + derbyclient.jar,\ + derbynet.jar
diff --git a/derby/org.apache.derby/derby.jar b/derby/org.apache.derby/derby.jar new file mode 100644 index 0000000..2820dbd --- /dev/null +++ b/derby/org.apache.derby/derby.jar Binary files differ
diff --git a/derby/org.apache.derby/derbyclient.jar b/derby/org.apache.derby/derbyclient.jar new file mode 100644 index 0000000..1c319c0 --- /dev/null +++ b/derby/org.apache.derby/derbyclient.jar Binary files differ
diff --git a/derby/org.apache.derby/index.html b/derby/org.apache.derby/index.html new file mode 100644 index 0000000..c150ed9 --- /dev/null +++ b/derby/org.apache.derby/index.html
@@ -0,0 +1,82 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to you under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<html> +<title>Welcome to Apache Derby</title> +<body> +<center><a href="http://db.apache.org/derby/"> + <img src="docs/html/images/logowithtext.jpg" border="0"/></a><br/> +<h2>Contents</h2> +<a href="#new">New to Derby?</a><br/> +<a href="#using">Using Derby</a><br/> +<a href="#thisDistribution">This Distribution</a><br/> +<a href="#resources">More Resources</a><br/> +</center> +<br/> +<a name="new"/><h3>New to Derby?</h3> +<p>If this is your first time using Derby, please look at the <a href="docs/html/getstart/index.html">Getting Started Guide</a> <a href="docs/html/getstart/getstart-single.html">[HTML Book]</a> <a href="docs/pdf/getstart/getstartderby.pdf">[PDF]</a> for assistance configuring your environment, creating a new database, and executing SQL statements.</p> +<p>Interested in seeing some code that makes use of Derby? There are also some <a href="demo/programs/readme.html">simple demo applications</a> included to help you understand how to start using Derby in your application.</p> +<p>Derby includes some tools to help you get started working with Derby databases. Additional information about these tools can be found in the <a href="docs/html/tools/index.html">Derby Tools and Utilities Guide</a> <a href="docs/html/tools/tools-single.html">[HTML Book]</a> <a href="docs/pdf/tools/derbytools.pdf">[PDF]</a>.</p> +<p>If you need more help getting started, the Apache Derby website has a <a href="http://db.apache.org/derby/quick_start.html">Quick Start page</a> with links to tutorials, more demo applications, and instructions on how to use Derby with a variety of different IDEs, tools, and web application servers.</p> +<p>If you need additional help, the Apache Derby Users mailing list can be helpful if you have specific questions regarding setting up and using Derby. For information on how to subscribe and post to the Apache Derby Users mailing list, please read the <a href="http://db.apache.org/derby/derby_mail.html">mailing lists page</a> on the Apache Derby website.</p> +<br/> +<a name="using"/><h3>Using Derby</h3> +<p> +For information on developing and deploying an application with Derby, see the <a href="docs/html/devguide/index.html"/>Derby Developer's Guide</a> <a href="docs/html/devguide/devguide-single.html">[HTML Book]</a> <a href="docs/pdf/devguide/derbydev.pdf"/>[PDF]</a>. A complete reference to Derby's use of JDBC and SQL can be found in the <a href="docs/html/ref/index.html">Derby Reference Manual</a> <a href="docs/html/ref/ref-single.html">[HTML Book]</a> <a href="docs/pdf/ref/refderby.pdf">[PDF]</a>.<br/> +</p> +<p> +Derby's JDBC API is documented in two sets of javadoc: +</p> +<ul> +<li><a href="javadoc/jdbc3/index.html">JDBC 3.0 Public API</a> - Consult +this javadoc if your application runs on +J2SE 1.4, or J2SE 5.0. Also consult this javadoc if your +application runs with the Java ME CDC/Foundation 1.1 Profile (JSR-169).</li> +<li><a href="javadoc/jdbc4/index.html">JDBC 4.0 Public API</a> - Consult this +javadoc if your application runs on Java SE 6.</li> +</ul> +<p> +For information on setting up and using the Derby Network Server, which provides a client/server access model for Derby databases on machines connected over a network, please read the <a href="docs/html/adminguide/index.html">Derby Server and Administration Guide</a> <a href="docs/html/adminguide/adminguide-single.html">[HTML Book]</a> <a href="docs/pdf/adminguide/derbyadmin.pdf">[PDF]</a>. +</p> +<p> +Information on how to tune Derby for your specific needs can be found in <a href="docs/html/tuning/index.html">Tuning Derby</a> <a href="docs/html/tuning/tuning-single.html">[HTML Book]</a> <a href="docs/pdf/tuning/tuningderby.pdf">[PDF]</a>. This guide includes a reference to the properties which influence Derby's behavior as well as providing performance tips for certain situations. +</p> +<br/> +<a name="thisDistribution"/><h3>This Distribution</h3> +<p> +Please consult the following documents for details on the contents of +this distribution and how this distribution is licensed. +</p> +<ul> + <li><a href="RELEASE-NOTES.html">Release Notes</a></li> + <li><a href="LICENSE">The Apache License</a></li> + <li><a href="NOTICE">Relevant Copyrights</a></li> +</ul> +<br/> +<a name="resources"/><h3>More Resources</h3> +<p> +If you are looking for more resources on how to use Derby in your application or integrate Derby into a specific environment, please see: +</p> +<ul> + <li><a href="http://db.apache.org/derby/">The Apache Derby website</a></li> + <li><a href="http://wiki.apache.org/db-derby/">The Apache Derby wiki</a></li> + <li><a href="http://db.apache.org/derby/integrate/index.html">The Apache Derby resources page</a></li> +</ul> +<p> +Thank you for your interest in Derby! +</p> +</body> +</html>
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/.classpath b/derby/org.eclipse.gemini.dbaccess.derby/.classpath new file mode 100644 index 0000000..72fe559 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/.classpath
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="OSGi-Source"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath>
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/.project b/derby/org.eclipse.gemini.dbaccess.derby/.project new file mode 100644 index 0000000..da61f0f --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/.project
@@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.gemini.dbaccess.derby</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> + <linkedResources> + <link> + <name>OSGi-Source</name> + <type>2</type> + <location>C:/Documents and Settings/mkeith.ST-MDC/Desktop/Gemini/Source/Gemini DB Access/trunk/org.osgi.service.jdbc/src</location> + </link> + </linkedResources> +</projectDescription>
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/LICENSE-2.0 b/derby/org.eclipse.gemini.dbaccess.derby/LICENSE-2.0 new file mode 100644 index 0000000..75b5248 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/LICENSE-2.0
@@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License.
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/META-INF/MANIFEST.MF b/derby/org.eclipse.gemini.dbaccess.derby/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a8144f4 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Gemini DBAccess +Bundle-SymbolicName: org.eclipse.gemini.dbaccess.derby +Bundle-Version: 1.0.0 +Bundle-Activator: org.eclipse.gemini.dbaccess.derby.Activator +Bundle-Vendor: Oracle Corporation +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: javax.sql,org.osgi.framework;version="[1.3,2)",org.osgi.service.jdbc;version="[1.0,2)",org.apache.derby.jdbc,org.apache.derby.client.am +Bundle-ClassPath: .,lib/derby.jar +Export-Package: org.osgi.service.jdbc;uses:="javax.sql";version="1.0" +
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/about.html b/derby/org.eclipse.gemini.dbaccess.derby/about.html new file mode 100644 index 0000000..8bec19e --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/about.html
@@ -0,0 +1,80 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<title>Gemini DB Access 1.0.0</title> +</head> + +<body lang="EN-US"> +<h2>About</h2> +<p>May 4, 2010</p> + +<p> +The Gemini DB Access project provides support for certain JDBC drivers to be able to be installed as bundles and accessed as services to be compliant with the OSGi JDBC specification. +</p> + +<h3>License </h3> +<p> +The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL") and Apache Software License Version 2.0 ("ASL"). A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a> and a copy of the ASL is available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>. For purposes of the EPL, "Program" will mean the Content. +</p> +<p> +If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor’s license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL and ASL still apply to any source code in the Content and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>. +</p> + +<h3>Third Party Content</h3> + +<p> +The Content includes items that have been sourced from third parties as set out below. If you did not receive this Content directly from the Eclipse Foundation, the following is provided for informational purposes only, and you should look to the Redistributor’s license for terms and conditions of use. +</p> + +<ul> + <li>OSGi + <ul> + <li><a href="#OSGiCore">OSGi Core</a></li> + <li><a href="#OSGiCompendium">OSGi Compendium </a></li> + <li><a href="#OSGiEnterprise">OSGi Enterprise</a></li> + </ul> + </li> + <li>Derby + <ul> + <li><a href="#Derby">Derby JDBC library</a></li> + </ul> + </li> +</ul> +<hr /> + +<h3><a name="OSGiCore" id="OSGiCore"></a>OSGi Core APIs</h3> +<blockquote> +<p> +The OSGi Core specification was created in the OSGi Alliance and defines the underlying OSGi framework APIs that are used by Gemini DB Access. +The specification APIs are licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">ASL</a> license. +</p> +</blockquote> + +<h3><a name="OSGiCompendium" id="OSGiCompendium"></a>OSGi Compendium APIs</h3> +<blockquote> +<p> +The OSGi Compendium specification was created in the OSGi Alliance and defines a set of OSGi services, some of which are used by Gemini DB Access. +The specification APIs are licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">ASL</a> license. +</p> +</blockquote> + +<h3><a name="OSGiEnterprise" id="OSGiEnterprise"></a>OSGi Enterprise APIs</h3> +<blockquote> +<p> +The OSGi Enterprise specification was created in the OSGi Alliance and defines a set of OSGi services, some of which are used or implemented by Gemini DB Access. The specification APIs are licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">ASL</a> license. +</p> +</blockquote> + +<h3><a name="Derby" id="Derby"></a>Derby JDBC Library</h3> +<blockquote> +<p> +The <a href="http://db.apache.org/derby/">Apache Derby</a> project provides a set of JDBC driver classes to allow Java programs +to access the database. These can be obtained from the <a href="http://db.apache.org/derby/derby_downloads.html">Derby Downloads page</a> +and are licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">ASL v2.0 license</a> +</blockquote> + +<p></p> +</body> +</html> +
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/AbstractDataSourceFactory.class b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/AbstractDataSourceFactory.class new file mode 100644 index 0000000..4ac3bfe --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/AbstractDataSourceFactory.class Binary files differ
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/Activator.class b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/Activator.class new file mode 100644 index 0000000..400ade9 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/Activator.class Binary files differ
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/ClientDataSourceFactory.class b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/ClientDataSourceFactory.class new file mode 100644 index 0000000..f4c4ac2 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/ClientDataSourceFactory.class Binary files differ
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/DataSourceFactoryConstants.class b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/DataSourceFactoryConstants.class new file mode 100644 index 0000000..261af1c --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/DataSourceFactoryConstants.class Binary files differ
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/EmbeddedDataSourceFactory.class b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/EmbeddedDataSourceFactory.class new file mode 100644 index 0000000..c2dd5c1 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/EmbeddedDataSourceFactory.class Binary files differ
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/UrlBasedDriverDataSource.class b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/UrlBasedDriverDataSource.class new file mode 100644 index 0000000..a107020 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/eclipse/gemini/dbaccess/derby/UrlBasedDriverDataSource.class Binary files differ
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/bin/org/osgi/service/jdbc/DataSourceFactory.class b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/osgi/service/jdbc/DataSourceFactory.class new file mode 100644 index 0000000..dc85672 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/bin/org/osgi/service/jdbc/DataSourceFactory.class Binary files differ
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/build.properties b/derby/org.eclipse.gemini.dbaccess.derby/build.properties new file mode 100644 index 0000000..4acf9bd --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/build.properties
@@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = .,\ + META-INF/ +jars.compile.order = .
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/epl-v10.html b/derby/org.eclipse.gemini.dbaccess.derby/epl-v10.html new file mode 100644 index 0000000..c36d29b --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/epl-v10.html
@@ -0,0 +1,260 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR +DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS +AGREEMENT.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">where such changes and/or additions to the Program +originate from and are distributed by that particular Contributor. A +Contribution 'originates' from a Contributor if it was added to the +Program by such Contributor itself or anyone acting on such +Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in +conjunction with the Program under their own license agreement, and (ii) +are not derivative works of the Program.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"Licensed Patents" mean patent claims licensable by a +Contributor which are necessarily infringed by the use or sale of its +Contribution alone or when combined with the Program.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">a) Subject to the terms of this Agreement, each +Contributor hereby grants Recipient a non-exclusive, worldwide, +royalty-free copyright license to reproduce, prepare derivative works +of, publicly display, publicly perform, distribute and sublicense the +Contribution of such Contributor, if any, and such derivative works, in +source code and object code form.</p> + +<p class="list">b) Subject to the terms of this Agreement, each +Contributor hereby grants Recipient a non-exclusive, worldwide, +royalty-free patent license under Licensed Patents to make, use, sell, +offer to sell, import and otherwise transfer the Contribution of such +Contributor, if any, in source code and object code form. This patent +license shall apply to the combination of the Contribution and the +Program if, at the time the Contribution is added by the Contributor, +such addition of the Contribution causes such combination to be covered +by the Licensed Patents. The patent license shall not apply to any other +combinations which include the Contribution. No hardware per se is +licensed hereunder.</p> + +<p class="list">c) Recipient understands that although each Contributor +grants the licenses to its Contributions set forth herein, no assurances +are provided by any Contributor that the Program does not infringe the +patent or other intellectual property rights of any other entity. Each +Contributor disclaims any liability to Recipient for claims brought by +any other entity based on infringement of intellectual property rights +or otherwise. As a condition to exercising the rights and licenses +granted hereunder, each Recipient hereby assumes sole responsibility to +secure any other intellectual property rights needed, if any. For +example, if a third party patent license is required to allow Recipient +to distribute the Program, it is Recipient's responsibility to acquire +that license before distributing the Program.</p> + +<p class="list">d) Each Contributor represents that to its knowledge it +has sufficient copyright rights in its Contribution, if any, to grant +the copyright license set forth in this Agreement.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">i) effectively disclaims on behalf of all Contributors +all warranties and conditions, express and implied, including warranties +or conditions of title and non-infringement, and implied warranties or +conditions of merchantability and fitness for a particular purpose;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">iv) states that source code for the Program is available +from such Contributor, and informs licensees how to obtain it in a +reasonable manner on or through a medium customarily used for software +exchange.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>Commercial distributors of software may accept certain +responsibilities with respect to end users, business partners and the +like. While this license is intended to facilitate the commercial use of +the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create +potential liability for other Contributors. Therefore, if a Contributor +includes the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and +indemnify every other Contributor ("Indemnified Contributor") +against any losses, damages and costs (collectively "Losses") +arising from claims, lawsuits and other legal actions brought by a third +party against the Indemnified Contributor to the extent caused by the +acts or omissions of such Commercial Contributor in connection with its +distribution of the Program in a commercial product offering. The +obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In +order to qualify, an Indemnified Contributor must: a) promptly notify +the Commercial Contributor in writing of such claim, and b) allow the +Commercial Contributor to control, and cooperate with the Commercial +Contributor in, the defense and any related settlement negotiations. The +Indemnified Contributor may participate in any such claim at its own +expense.</p> + +<p>For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor +must pay those damages.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS +PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS +OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, +ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its +exercise of rights under this Agreement , including but not limited to +the risks and costs of program errors, compliance with applicable laws, +damage to or loss of data, programs or equipment, and unavailability or +interruption of operations.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT +NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR +DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED +HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p> + +<p><b>7. GENERAL</b></p> + +<p>If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further action +by the parties hereto, such provision shall be reformed to the minimum +extent necessary to make such provision valid and enforceable.</p> + +<p>If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other +software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the +date such litigation is filed.</p> + +<p>All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of time +after becoming aware of such noncompliance. If all Recipient's rights +under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive.</p> + +<p>Everyone is permitted to copy and distribute copies of this +Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The +Agreement Steward reserves the right to publish new versions (including +revisions) of this Agreement from time to time. No one other than the +Agreement Steward has the right to modify this Agreement. The Eclipse +Foundation is the initial Agreement Steward. The Eclipse Foundation may +assign the responsibility to serve as the Agreement Steward to a +suitable separate entity. Each new version of the Agreement will be +given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the +Agreement under which it was received. In addition, after a new version +of the Agreement is published, Contributor may elect to distribute the +Program (including its Contributions) under the new version. Except as +expressly stated in Sections 2(a) and 2(b) above, Recipient receives no +rights or licenses to the intellectual property of any Contributor under +this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under this +Agreement are reserved.</p> + +<p>This Agreement is governed by the laws of the State of New York and +the intellectual property laws of the United States of America. No party +to this Agreement will bring a legal action under this Agreement more +than one year after the cause of action arose. Each party waives its +rights to a jury trial in any resulting litigation.</p> + +</body> + +</html> \ No newline at end of file
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/notice.html b/derby/org.eclipse.gemini.dbaccess.derby/notice.html new file mode 100644 index 0000000..fe1ce99 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/notice.html
@@ -0,0 +1,103 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>April 14, 2010</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL") and Apache Software License Version 2.0 ("ASL"). A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a> and a copy of the ASL is available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>. For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and +Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a + href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology + in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the + Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern + the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such + indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to + another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import, + possession, or use, and re-export of encryption software, to see if this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> +</body> +</html> \ No newline at end of file
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/settings/org.eclipse.jdt.core.prefs b/derby/org.eclipse.gemini.dbaccess.derby/settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f287d53 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/settings/org.eclipse.pde.core.prefs b/derby/org.eclipse.gemini.dbaccess.derby/settings/org.eclipse.pde.core.prefs new file mode 100644 index 0000000..adff9e5 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,5 @@ +#Wed Nov 25 13:45:02 EST 2009 +eclipse.preferences.version=1 +pluginProject.equinox=false +pluginProject.extensions=false +resolve.requirebundle=false
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/AbstractDataSourceFactory.java b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/AbstractDataSourceFactory.java new file mode 100644 index 0000000..47ecb9f --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/AbstractDataSourceFactory.java
@@ -0,0 +1,225 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at + * http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * + * Contributors: + * JJ Snyder - Embedded Derby JDBC support + ******************************************************************************/ + +package org.eclipse.gemini.dbaccess.derby; + +import java.lang.reflect.Method; +import java.sql.Driver; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.Properties; + +import javax.sql.ConnectionPoolDataSource; +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource; +import org.apache.derby.jdbc.EmbeddedDataSource; +import org.apache.derby.jdbc.EmbeddedDriver; +import org.apache.derby.jdbc.EmbeddedXADataSource; +import org.osgi.service.jdbc.DataSourceFactory; + +/** + * Abstract behavior for Derby data source factories. + */ +public abstract class AbstractDataSourceFactory implements DataSourceFactory { + + /** Option to indicate whether to use JDBC 4.0 flavor of the driver */ + boolean jdbc4 = true; + + /*************************************************** + * Abstract methods must be implemented by subclass + ***************************************************/ + + public abstract DataSource createDataSource(Properties props) throws SQLException; + + public abstract ConnectionPoolDataSource createConnectionPoolDataSource(Properties props) throws SQLException; + + public abstract XADataSource createXADataSource(Properties props) throws SQLException; + + public abstract Driver createDriver(Properties props) throws SQLException; + + /************************************ + * Methods inherited by subclasses + ***********************************/ + + protected void setDataSourceProperties(Object object, Properties props) + throws SQLException { + Enumeration enumeration = props.keys(); + while (enumeration.hasMoreElements()) { + String name = (String) enumeration.nextElement(); + setProperty(object, name, props.getProperty(name)); + } + } + + protected void throwSQLException(Exception cause, String theType, String value) + throws SQLException { + SQLException sqlException = new SQLException("Invalid " + theType + + " value: " + value); + sqlException.initCause(cause); + throw sqlException; + } + + protected Object toBasicType(String value, String type) throws SQLException { + if (value == null) { + return null; + } + else + if (type == null || type.equals(String.class.getName())) { + return value; + } + else + if (type.equals(Integer.class.getName()) + || type.equals(int.class.getName())) { + try { + return Integer.valueOf(value); + } + catch (NumberFormatException e) { + throwSQLException(e, "Integer", value); + } + } + else + if (type.equals(Float.class.getName()) + || type.equals(float.class.getName())) { + try { + return Float.valueOf(value); + } + catch (NumberFormatException e) { + throwSQLException(e, "Float", value); + } + } + else + if (type.equals(Long.class.getName()) + || type.equals(long.class.getName())) { + try { + return Long.valueOf(value); + } + catch (NumberFormatException e) { + throwSQLException(e, "Long", value); + } + } + else + if (type.equals(Double.class.getName()) + || type.equals(double.class.getName())) { + try { + return Double.valueOf(value); + } + catch (NumberFormatException e) { + throwSQLException(e, "Double", value); + } + } + else + if (type.equals(Character.class.getName()) + || type.equals(char.class.getName())) { + if (value.length() != 1) { + throw new SQLException( + "Invalid Character value: " + + value); + } + + return new Character(value.charAt(0)); + } + else + if (type.equals(Byte.class.getName()) + || type + .equals(byte.class + .getName())) { + try { + return Byte.valueOf(value); + } + catch (NumberFormatException e) { + throwSQLException(e, "Byte", value); + } + } + else + if (type.equals(Short.class.getName()) + || type.equals(short.class + .getName())) { + try { + return Short.valueOf(value); + } + catch (NumberFormatException e) { + throwSQLException(e, "Short", + value); + } + } + else + if (type.equals(Boolean.class + .getName()) + || type + .equals(boolean.class + .getName())) { + try { + return Boolean + .valueOf(value); + } + catch (NumberFormatException e) { + throwSQLException(e, + "Boolean", value); + } + } + else { + throw new SQLException( + "Invalid property type: " + + type); + } + return null; + } + + protected void setProperty(Object object, String name, String value) + throws SQLException { + Class type = object.getClass(); + + java.beans.PropertyDescriptor[] descriptors; + try { + descriptors = java.beans.Introspector.getBeanInfo(type) + .getPropertyDescriptors(); + } + catch (Exception exc) { + SQLException sqlException = new SQLException(); + sqlException.initCause(exc); + throw sqlException; + } + List names = new ArrayList(); + + for (int i = 0; i < descriptors.length; i++) { + if (descriptors[i].getWriteMethod() == null) { + continue; + } + + if (descriptors[i].getName().equals(name)) { + Method method = descriptors[i].getWriteMethod(); + Class paramType = method.getParameterTypes()[0]; + Object param = toBasicType(value, paramType.getName()); + + try { + method.invoke(object, new Object[] {param}); + } + catch (Exception exc) { + SQLException sqlException = new SQLException(); + sqlException.initCause(exc); + throw sqlException; + } + return; + } + + names.add(descriptors[i].getName()); + } + throw new SQLException("No such property: " + name + + ", exists. Writable properties are: " + names); + } +}
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/Activator.java b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/Activator.java new file mode 100644 index 0000000..3a375f3 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/Activator.java
@@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at + * http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * + * Contributors: + * JJ Snyder - Embedded Derby JDBC support + * mkeith - Client/server support + ******************************************************************************/ + +package org.eclipse.gemini.dbaccess.derby; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; + +import org.osgi.service.jdbc.DataSourceFactory; + +/** + * Creates a {@link DataSourceFactory} for each of the available Derby JDBC driver types. + */ +public class Activator implements BundleActivator { + + private ServiceRegistration embeddedService, clientService, embeddedService4, clientService4; + + public void start(BundleContext context) throws Exception { + + Hashtable props = new Hashtable(); + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_NAME, DataSourceFactoryConstants.DERBY_DRIVER_NAME); + + /* Register the JDBC 3 drivers */ + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_VERSION, DataSourceFactoryConstants.JDBC_3_DRIVER_VERSION); + + // Register the embedded driver + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_CLASS, DataSourceFactoryConstants.DERBY_EMBEDDED_DRIVER_CLASS); + embeddedService = context.registerService( + DataSourceFactory.class.getName(), + new EmbeddedDataSourceFactory(false), + props); + + // Register the client driver + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_CLASS, DataSourceFactoryConstants.DERBY_CLIENT_DRIVER_CLASS); + clientService = context.registerService( + DataSourceFactory.class.getName(), + new ClientDataSourceFactory(false), + props); + + /* Register the JDBC 4 drivers */ + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_VERSION, DataSourceFactoryConstants.JDBC_4_DRIVER_VERSION); + + // Register the embedded driver + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_CLASS, DataSourceFactoryConstants.DERBY_EMBEDDED_DRIVER_CLASS); + embeddedService4 = context.registerService( + DataSourceFactory.class.getName(), + new EmbeddedDataSourceFactory(true), + props); + + // Register the client driver + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_CLASS, DataSourceFactoryConstants.DERBY_CLIENT_DRIVER_CLASS); + clientService4 = context.registerService( + DataSourceFactory.class.getName(), + new ClientDataSourceFactory(true), + props); + } + + public void stop(BundleContext context) throws Exception { + if (embeddedService != null) { + embeddedService.unregister(); + } + if (clientService != null) { + clientService.unregister(); + } + if (embeddedService4 != null) { + embeddedService4.unregister(); + } + if (clientService4 != null) { + clientService4.unregister(); + } + } +}
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/ClientDataSourceFactory.java b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/ClientDataSourceFactory.java new file mode 100644 index 0000000..e5095d1 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/ClientDataSourceFactory.java
@@ -0,0 +1,144 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at + * http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * + * Contributors: + * mkeith - CLient/Server Derby JDBC support + ******************************************************************************/ + +package org.eclipse.gemini.dbaccess.derby; + +import java.util.Properties; + +import java.sql.Driver; +import java.sql.SQLException; + +import javax.sql.DataSource; +import javax.sql.ConnectionPoolDataSource; +import javax.sql.XADataSource; + +import org.apache.derby.jdbc.ClientConnectionPoolDataSource; +import org.apache.derby.jdbc.ClientConnectionPoolDataSource40; +import org.apache.derby.jdbc.ClientDriver; +import org.apache.derby.jdbc.ClientDataSource; +import org.apache.derby.jdbc.ClientDataSource40; +import org.apache.derby.jdbc.ClientXADataSource; +import org.apache.derby.jdbc.ClientXADataSource40; + +import org.osgi.service.jdbc.DataSourceFactory; + +/** + * A factory for creating Derby network data sources. The properties specified + * in the create methods determine how the created object is configured. + * + * Sample code for obtaining a Derby network data source: + * + * ServiceTracker tracker = + * new ServiceTracker(context, DataSourceFactory.class.getName(), null); + * tracker.open(); + * DataSourceFactory dsf = (DataSourceFactory) tracker.getService(); + * Properties props = new Properties(); + * props.put(DataSourceFactory.JDBC_SERVER_NAME, "localhost"); + * props.put(DataSourceFactory.JDBC_PORT_NUMBER, "1527"); + * props.put(DataSourceFactory.JDBC_DATABASE_NAME, "myDB"); + * props.put(DataSourceFactory.JDBC_USER, "mike"); + * props.put(DataSourceFactory.JDBC_PASSWORD, "password"); + * DataSource ds = dsf.createDataSource(props); + * + * This service also supports a URL-based data source. The following 3 properties + * can be provided instead of the 5 properties above: + * + * props.put(DataSourceFactory.JDBC_URL, "jdbc:derby://localhost:1527/myDB"); + * props.put(DataSourceFactory.JDBC_USER, "mike"); + * props.put(DataSourceFactory.JDBC_PASSWORD, "password"); + */ +public class ClientDataSourceFactory extends AbstractDataSourceFactory { + + public ClientDataSourceFactory() {} + public ClientDataSourceFactory(boolean jdbc4) { + this.jdbc4 = jdbc4; + } + + /** + * Create a Derby DataSource object. + * + * @param props The properties that define the DataSource implementation to + * create and how the DataSource is configured. + * @return The configured DataSource. + * @throws SQLException + * @see org.osgi.service.jdbc.DataSourceFactory#createDataSource(java.util.Properties) + */ + public DataSource createDataSource(Properties props) throws SQLException { + if (props == null) props = new Properties(); + if (props.get(DataSourceFactory.JDBC_URL) != null) { + return new UrlBasedDriverDataSource(props, false); + } else { + DataSource dataSource = (jdbc4) + ? new ClientDataSource40() + : new ClientDataSource(); + setDataSourceProperties(dataSource, props); + return dataSource; + } + } + + /** + * Create a Derby ConnectionPoolDataSource object. + * + * @param props The properties that define the ConnectionPoolDataSource + * implementation to create and how the ConnectionPoolDataSource is + * configured. + * @return The configured ConnectionPoolDataSource. + * @throws SQLException + * @see org.osgi.service.jdbc.DataSourceFactory#createConnectionPoolDataSource(java.util.Properties) + */ + public ConnectionPoolDataSource createConnectionPoolDataSource(Properties props) throws SQLException { + if (props == null) props = new Properties(); + ConnectionPoolDataSource dataSource = (jdbc4) + ? new ClientConnectionPoolDataSource40() + : new ClientConnectionPoolDataSource(); + setDataSourceProperties(dataSource, props); + return dataSource; + } + + /** + * Create a Derby XADataSource object. + * + * @param props The properties that define the XADataSource implementation + * to create and how the XADataSource is configured. + * @return The configured XADataSource. + * @throws SQLException + * @see org.osgi.service.jdbc.DataSourceFactory#createXADataSource(java.util.Properties) + */ + public XADataSource createXADataSource(Properties props) throws SQLException { + if (props == null) props = new Properties(); + XADataSource dataSource = (jdbc4) + ? new ClientXADataSource40() + : new ClientXADataSource(); + setDataSourceProperties(dataSource, props); + return dataSource; + } + + /** + * Create a new org.apache.derby.jdbc.EmbeddedDriver. + * + * @param props The properties used to configure the Driver. Null + * indicates no properties. + * If the property cannot be set on the Driver being + * created then a SQLException must be thrown. + * @return A configured org.apache.derby.jdbc.EmbeddedDriver. + * @throws SQLException If the org.apache.derby.jdbc.ClientDriver cannot be created. + */ + public Driver createDriver(Properties props) throws SQLException { + // Properties not used when accessing the raw driver. + Driver driver = new ClientDriver(); + setDataSourceProperties(driver, props); + return driver; + } +} \ No newline at end of file
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/DataSourceFactoryConstants.java b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/DataSourceFactoryConstants.java new file mode 100644 index 0000000..f9d6849 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/DataSourceFactoryConstants.java
@@ -0,0 +1,33 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at + * http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * + * Contributors: + * mkeith - Constants for Derby JDBC support + ******************************************************************************/ + +package org.eclipse.gemini.dbaccess.derby; + +/** + * Contants for Derby data source factory registration. + */ +public class DataSourceFactoryConstants { + + // Register a service under each of the following driver class names + public static final String DERBY_EMBEDDED_DRIVER_CLASS = "org.apache.derby.jdbc.EmbeddedDriver"; + public static final String DERBY_CLIENT_DRIVER_CLASS = "org.apache.derby.jdbc.ClientDriver"; + + // Register all Derby factory services under this driver name + public static final String DERBY_DRIVER_NAME = "Derby"; + + // Register under the JDBC version the driver supports + public static final String JDBC_3_DRIVER_VERSION = "3.0"; + public static final String JDBC_4_DRIVER_VERSION = "4.0"; +}
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/EmbeddedDataSourceFactory.java b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/EmbeddedDataSourceFactory.java new file mode 100644 index 0000000..9c40644 --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/EmbeddedDataSourceFactory.java
@@ -0,0 +1,150 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at + * http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * + * Contributors: + * JJ Snyder - Embedded Derby JDBC support + ******************************************************************************/ + +package org.eclipse.gemini.dbaccess.derby; + +import java.util.Properties; + +import java.sql.Driver; +import java.sql.SQLException; + +import javax.sql.ConnectionPoolDataSource; +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import org.apache.derby.jdbc.EmbeddedDriver; +import org.apache.derby.jdbc.EmbeddedDataSource; +import org.apache.derby.jdbc.EmbeddedDataSource40; +import org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource; +import org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource40; +import org.apache.derby.jdbc.EmbeddedXADataSource; +import org.apache.derby.jdbc.EmbeddedXADataSource40; +import org.osgi.service.jdbc.DataSourceFactory; + +/** + * A factory for creating Derby embedded data sources. The properties specified + * in the create methods determine how the created object is configured. + * + * The following sample code shows how to get an EmbeddedDataSource from a Derby + * JDBC service: + * + * ServiceTracker tracker = new ServiceTracker( + * context, DataSourceFactory.class.getName(), null); + * tracker.open(); + * DataSourceFactory dsf = (DataSourceFactory) tracker.getService(); + * Properties props = new Properties(); + * props.put(DataSourceFactory.JDBC_DATABASE_NAME, + * "C:\\Software\\db-derby-10.4.2.0-bin\\testdbs\\firstdb"); + * DataSource ds = dsf.createDataSource(props); + * + * This service also supports a URL-based data source. This means a URL property + * can be provided instead of the properties listed above: + * + * props.put(DataSourceFactory.JDBC_URL, "jdbc:derby:myDB"); + */ +public class EmbeddedDataSourceFactory extends AbstractDataSourceFactory { + + public EmbeddedDataSourceFactory() {} + public EmbeddedDataSourceFactory(boolean jdbc4) { + this.jdbc4 = jdbc4; + } + + /** + * Create a Derby DataSource object. + * + * @param props The properties that define the DataSource implementation to + * create and how the DataSource is configured. + * @return The configured DataSource. + * @throws SQLException + * @see org.osgi.service.jdbc.DataSourceFactory#createDataSource(java.util.Properties) + */ + public DataSource createDataSource(Properties props) throws SQLException { + if (props == null) { + props = new Properties(); + } + if (props.get(DataSourceFactory.JDBC_URL) != null) { + return new UrlBasedDriverDataSource(props, true); + } else { + DataSource dataSource = (jdbc4) + ? new EmbeddedDataSource40() + : new EmbeddedDataSource(); + setDataSourceProperties(dataSource, props); + return dataSource; + } + } + + /** + * Create a Derby ConnectionPoolDataSource object. + * + * @param props The properties that define the ConnectionPoolDataSource + * implementation to create and how the ConnectionPoolDataSource is + * configured. + * @return The configured ConnectionPoolDataSource. + * @throws SQLException + * @see org.osgi.service.jdbc.DataSourceFactory#createConnectionPoolDataSource(java.util.Properties) + */ + public ConnectionPoolDataSource createConnectionPoolDataSource( + Properties props) throws SQLException { + if (props == null) { + props = new Properties(); + } + ConnectionPoolDataSource dataSource = (jdbc4) + ? new EmbeddedConnectionPoolDataSource40() + : new EmbeddedConnectionPoolDataSource(); + setDataSourceProperties(dataSource, props); + return dataSource; + } + + /** + * Create a Derby XADataSource object. + * + * @param props The properties that define the XADataSource implementation + * to create and how the XADataSource is configured. + * @return The configured XADataSource. + * @throws SQLException + * @see org.osgi.service.jdbc.DataSourceFactory#createXADataSource(java.util.Properties) + */ + public XADataSource createXADataSource(Properties props) + throws SQLException { + if (props == null) { + props = new Properties(); + } + XADataSource dataSource = (jdbc4) + ? new EmbeddedXADataSource40() + : new EmbeddedXADataSource(); + setDataSourceProperties(dataSource, props); + return dataSource; + } + + /** + * Create a new org.apache.derby.jdbc.EmbeddedDriver. + * + * @param props The properties used to configure the Driver. Null + * indicates no properties. + * If the property cannot be set on the Driver being + * created then a SQLException must be thrown. + * @return A configured org.apache.derby.jdbc.EmbeddedDriver. + * @throws SQLException If the org.apache.derby.jdbc.EmbeddedDriver cannot be created. + */ + public Driver createDriver(Properties props) throws SQLException { + if (props == null) { + props = new Properties(); + } + EmbeddedDriver driver = new EmbeddedDriver(); + setDataSourceProperties(driver, props); + return driver; + } + +}
diff --git a/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/UrlBasedDriverDataSource.java b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/UrlBasedDriverDataSource.java new file mode 100644 index 0000000..9d163be --- /dev/null +++ b/derby/org.eclipse.gemini.dbaccess.derby/src/org/eclipse/gemini/dbaccess/derby/UrlBasedDriverDataSource.java
@@ -0,0 +1,96 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at + * http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * + * Contributors: + * mkeith - CLient/Server Derby JDBC support + ******************************************************************************/ + +package org.eclipse.gemini.dbaccess.derby; + +import java.io.PrintWriter; +import java.util.Properties; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Driver; + +import org.apache.derby.jdbc.ClientDriver; +import org.apache.derby.jdbc.EmbeddedDriver; + +import static org.osgi.service.jdbc.DataSourceFactory.*; + +/** + * An abbreviated/simplified DataSource impl that takes a URL from the client + * and just returns a thin data source wrapper around the basic JDBC driver. + */ +class UrlBasedDriverDataSource implements javax.sql.DataSource { + + boolean embedded; + Driver driver; + Properties properties = null; + String url = null; + + /** + * @param properties The properties to use for operations on the driver + * @param embedded Whether to wrap an embedded or a client driver + */ + public UrlBasedDriverDataSource(Properties properties, boolean embedded) { + this.embedded = embedded; + this.driver = embedded ? new EmbeddedDriver() : new ClientDriver(); + this.properties = (Properties) properties.clone(); + this.url = properties.getProperty(JDBC_URL); + } + + public UrlBasedDriverDataSource(Properties properties) { + this(properties, true); + } + + public Connection getConnection() throws java.sql.SQLException { + return driver.connect(url, properties); + } + + public Connection getConnection(String user, String password) throws java.sql.SQLException { + Properties localProps = (Properties) properties.clone(); + localProps.put(JDBC_USER, user); + localProps.put(JDBC_PASSWORD, password); + return driver.connect(url, localProps); + } + + public boolean isWrapperFor(Class<?> cls) { + return embedded + ? (cls == EmbeddedDriver.class) + : (cls == ClientDriver.class); + } + + public <T> T unwrap(Class<T> cls) { + return (this.isWrapperFor(cls)) + ? (T) driver + : null; + } + + public PrintWriter getLogWriter() throws SQLException { + return DriverManager.getLogWriter(); + } + + public int getLoginTimeout() throws SQLException { + return DriverManager.getLoginTimeout(); + } + + // Don't support setting log writer or timeout + + public void setLogWriter(PrintWriter writer) throws SQLException { + throw new SQLException("Can't set Log Writer on URL data source"); + } + + public void setLoginTimeout(int timeout) throws SQLException { + throw new SQLException("Can't set Login Timeout on URL data source"); + } +} \ No newline at end of file
diff --git a/org.osgi.service.jdbc/src/org/osgi/service/jdbc/DataSourceFactory.java b/org.osgi.service.jdbc/src/org/osgi/service/jdbc/DataSourceFactory.java new file mode 100644 index 0000000..4d0215d --- /dev/null +++ b/org.osgi.service.jdbc/src/org/osgi/service/jdbc/DataSourceFactory.java
@@ -0,0 +1,229 @@ +/* + * Copyright (c) OSGi Alliance (2009, 2010). All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.osgi.service.jdbc; + +import java.sql.Driver; +import java.sql.SQLException; +import java.util.Properties; + +import javax.sql.ConnectionPoolDataSource; +import javax.sql.DataSource; +import javax.sql.XADataSource; + +/** + * A factory for JDBC connection factories. There are 3 preferred connection + * factories for getting JDBC connections: <code>javax.sql.DataSource</code>, + * <code>javax.sql.ConnectionPoolDataSource</code>, and + * <code>javax.sql.XADataSource</code>. + * + * DataSource providers should implement this interface and register it as an + * OSGi service with the JDBC driver class name in the + * {@link #OSGI_JDBC_DRIVER_CLASS} property. + * + * @version $Revision: 9075 $ + * @ThreadSafe + */ +public interface DataSourceFactory { + /** + * Service property used by a JDBC driver to declare the driver class when + * registering a JDBC DataSourceFactory service. Clients may filter or test + * this property to determine if the driver is suitable, or the desired one. + */ + public static final String OSGI_JDBC_DRIVER_CLASS = "osgi.jdbc.driver.class"; + + /** + * Service property used by a JDBC driver to declare the driver name when + * registering a JDBC DataSourceFactory service. Clients may filter or test + * this property to determine if the driver is suitable, or the desired one. + */ + public static final String OSGI_JDBC_DRIVER_NAME = "osgi.jdbc.driver.name"; + + /** + * Service property used by a JDBC driver to declare the driver version when + * registering a JDBC DataSourceFactory service. Clients may filter or test + * this property to determine if the driver is suitable, or the desired one. + */ + public static final String OSGI_JDBC_DRIVER_VERSION = "osgi.jdbc.driver.version"; + + /** + * The "databaseName" property that DataSource clients should supply a value + * for when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_DATABASE_NAME = "databaseName"; + + /** + * The "dataSourceName" property that DataSource clients should supply a + * value for when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_DATASOURCE_NAME = "dataSourceName"; + + /** + * The "description" property that DataSource clients should supply a value + * for when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_DESCRIPTION = "description"; + + /** + * The "networkProtocol" property that DataSource clients should supply a + * value for when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_NETWORK_PROTOCOL = "networkProtocol"; + + /** + * The "password" property that DataSource clients should supply a value for + * when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_PASSWORD = "password"; + + /** + * The "portNumber" property that DataSource clients should supply a value + * for when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_PORT_NUMBER = "portNumber"; + + /** + * The "roleName" property that DataSource clients should supply a value for + * when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_ROLE_NAME = "roleName"; + + /** + * The "serverName" property that DataSource clients should supply a value + * for when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_SERVER_NAME = "serverName"; + + /** + * The "user" property that DataSource clients should supply a value for + * when calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_USER = "user"; + + /** + * The "url" property that DataSource clients should supply a value for when + * calling {@link #createDataSource(Properties)}. + */ + public static final String JDBC_URL = "url"; + + /** + * The "initialPoolSize" property that ConnectionPoolDataSource and + * XADataSource clients may supply a value for when calling + * {@link #createConnectionPoolDataSource(Properties)} or + * {@link #createXADataSource(Properties)} on drivers that support + * this property. + */ + public static final String JDBC_INITIAL_POOL_SIZE = "initialPoolSize"; + + /** + * The "maxIdleTime" property that ConnectionPoolDataSource and + * XADataSource clients may supply a value for when calling + * {@link #createConnectionPoolDataSource(Properties)} or + * {@link #createXADataSource(Properties)} on drivers that support + * this property. + */ + public static final String JDBC_MAX_IDLE_TIME = "maxIdleTime"; + + /** + * The "maxPoolSize" property that ConnectionPoolDataSource and + * XADataSource clients may supply a value for when calling + * {@link #createConnectionPoolDataSource(Properties)} or + * {@link #createXADataSource(Properties)} on drivers that support + * this property. + */ + public static final String JDBC_MAX_POOL_SIZE = "maxPoolSize"; + + /** + * The "maxStatements" property that ConnectionPoolDataSource and + * XADataSource clients may supply a value for when calling + * {@link #createConnectionPoolDataSource(Properties)} or + * {@link #createXADataSource(Properties)} on drivers that support + * this property. + */ + public static final String JDBC_MAX_STATEMENTS = "maxStatements"; + + /** + * The "minPoolSize" property that ConnectionPoolDataSource and + * XADataSource clients may supply a value for when calling + * {@link #createConnectionPoolDataSource(Properties)} or + * {@link #createXADataSource(Properties)} on drivers that support + * this property. + */ + public static final String JDBC_MIN_POOL_SIZE = "minPoolSize"; + + /** + * The "propertyCycle" property that ConnectionPoolDataSource and + * XADataSource clients may supply a value for when calling + * {@link #createConnectionPoolDataSource(Properties)} or + * {@link #createXADataSource(Properties)} on drivers that support + * this property. + */ + public static final String JDBC_PROPERTY_CYCLE = "propertyCycle"; + + /** + * Create a new <code>DataSource</code> using the given properties. + * + * @param props The properties used to configure the <code>DataSource</code> + * . <code>null</code> indicates no properties. If the property + * cannot be set on the <code>DataSource</code> being created then a + * <code>SQLException</code> must be thrown. + * @return A configured <code>DataSource</code>. + * @throws SQLException If the <code>DataSource</code> cannot be created. + */ + public DataSource createDataSource(Properties props) throws SQLException; + + /** + * Create a new <code>ConnectionPoolDataSource</code> using the given + * properties. + * + * @param props The properties used to configure the + * <code>ConnectionPoolDataSource</code>. <code>null</code> indicates + * no properties. If the property cannot be set on the + * <code>ConnectionPoolDataSource</code> being created then a + * <code>SQLException</code> must be thrown. + * @return A configured <code>ConnectionPoolDataSource</code>. + * @throws SQLException If the <code>ConnectionPoolDataSource</code> cannot + * be created. + */ + public ConnectionPoolDataSource createConnectionPoolDataSource( + Properties props) throws SQLException; + + /** + * Create a new <code>XADataSource</code> using the given properties. + * + * @param props The properties used to configure the + * <code>XADataSource</code>. <code>null</code> indicates no + * properties. If the property cannot be set on the + * <code>XADataSource</code> being created then a + * <code>SQLException</code> must be thrown. + * @return A configured <code>XADataSource</code>. + * @throws SQLException If the <code>XADataSource</code> cannot be created. + */ + public XADataSource createXADataSource(Properties props) + throws SQLException; + + /** + * Create a new <code>Driver</code> using the given properties. + * + * @param props The properties used to configure the <code>Driver</code>. + * <code>null</code> indicates no properties. If the property cannot + * be set on the <code>Driver</code> being created then a + * <code>SQLException</code> must be thrown. + * @return A configured <code>Driver</code>. + * @throws SQLException If the <code>Driver</code> cannot be created. + */ + public Driver createDriver(Properties props) throws SQLException; +}
diff --git a/test/org.eclipse.gemini.dbaccess.test/.classpath b/test/org.eclipse.gemini.dbaccess.test/.classpath new file mode 100644 index 0000000..8a8f166 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/.classpath
@@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath>
diff --git a/test/org.eclipse.gemini.dbaccess.test/.project b/test/org.eclipse.gemini.dbaccess.test/.project new file mode 100644 index 0000000..3bbe769 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/.project
@@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.gemini.dbaccess.test</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription>
diff --git a/test/org.eclipse.gemini.dbaccess.test/.settings/org.eclipse.jdt.core.prefs b/test/org.eclipse.gemini.dbaccess.test/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..77b5181 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@ +#Tue May 25 16:10:28 EDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6
diff --git a/test/org.eclipse.gemini.dbaccess.test/.settings/org.eclipse.pde.core.prefs b/test/org.eclipse.gemini.dbaccess.test/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 0000000..4093c2b --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,5 @@ +#Tue May 25 16:10:29 EDT 2010 +eclipse.preferences.version=1 +pluginProject.equinox=false +pluginProject.extensions=false +resolve.requirebundle=false
diff --git a/test/org.eclipse.gemini.dbaccess.test/META-INF/MANIFEST.MF b/test/org.eclipse.gemini.dbaccess.test/META-INF/MANIFEST.MF new file mode 100644 index 0000000..30e121d --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Test +Bundle-SymbolicName: org.eclipse.gemini.dbaccess.test +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.eclipse.gemini.dbaccess.test.Activator +Import-Package: javax.sql, + org.junit;version="4.5.0", + org.junit.runner;version="4.5.0", + org.junit.runner.notification;version="4.5.0", + org.osgi.framework;version="1.3.0", + org.osgi.service.jdbc;version="1.0.0", + org.osgi.util.tracker;version="1.4.2" +Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Activator.class b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Activator.class new file mode 100644 index 0000000..628d6e0 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Activator.class Binary files differ
diff --git a/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/ClientDriverTests.class b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/ClientDriverTests.class new file mode 100644 index 0000000..2cf5d2c --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/ClientDriverTests.class Binary files differ
diff --git a/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/EmbeddedDriverTests.class b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/EmbeddedDriverTests.class new file mode 100644 index 0000000..9eda62e --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/EmbeddedDriverTests.class Binary files differ
diff --git a/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Jdbc4ClientDriverTests.class b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Jdbc4ClientDriverTests.class new file mode 100644 index 0000000..18780af --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Jdbc4ClientDriverTests.class Binary files differ
diff --git a/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Jdbc4EmbeddedDriverTests.class b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Jdbc4EmbeddedDriverTests.class new file mode 100644 index 0000000..336dba7 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/Jdbc4EmbeddedDriverTests.class Binary files differ
diff --git a/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/JdbcTests.class b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/JdbcTests.class new file mode 100644 index 0000000..6cde558 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/bin/org/eclipse/gemini/dbaccess/test/JdbcTests.class Binary files differ
diff --git a/test/org.eclipse.gemini.dbaccess.test/build.properties b/test/org.eclipse.gemini.dbaccess.test/build.properties new file mode 100644 index 0000000..41eb6ad --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/build.properties
@@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .
diff --git a/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Activator.java b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Activator.java new file mode 100644 index 0000000..ca58abe --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Activator.java
@@ -0,0 +1,118 @@ +/* + * Copyright (C) 2010 Oracle Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.eclipse.gemini.dbaccess.test; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; + +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; + +import org.osgi.util.tracker.ServiceTracker; +import org.osgi.util.tracker.ServiceTrackerCustomizer; + +import org.osgi.service.jdbc.DataSourceFactory; + +/** + * Activator to start tests when relevant service becomes available + * + * @author mkeith + */ +public class Activator implements BundleActivator, ServiceTrackerCustomizer { + + ServiceTracker dsfTracker; + int serviceCount = 0; + + BundleContext ctx; + + public void start(BundleContext context) throws Exception { + log("JDBC Tests active "); + + ctx = context; + JdbcTests.context = context; + + dsfTracker = new ServiceTracker(ctx, DataSourceFactory.class.getName(), this); + dsfTracker.open(); + + // Run tests from tracker when service is online + } + + public void stop(BundleContext context) throws Exception { + dsfTracker.close(); + } + + void runTest(String descr, Class testClass) { + log("Running " + descr + ": "); + + Result r = JUnitCore.runClasses(testClass); + + log(descr + " results: "); + logResultStats(r); + + log("Done " + descr); + } + + /* ServiceTracker methods */ + + public Object addingService(ServiceReference ref) { + Bundle b = ref.getBundle(); + Object service = b.getBundleContext().getService(ref); + + String driver = (String)ref.getProperty(DataSourceFactory.OSGI_JDBC_DRIVER_CLASS); + + if (driver!= null) { + // We have a JDBC service + log("Test notified of service: " + driver); + // Don't start the tests until we have all of them + if (++serviceCount < 4) return service; + + log("Running tests"); + + // Now run the tests + runTest("Derby Embedded tests", EmbeddedDriverTests.class); + runTest("Derby JDBC 4 Embedded tests", Jdbc4EmbeddedDriverTests.class); + runTest("Derby ClientDriver tests", ClientDriverTests.class); + runTest("Derby JDBC 4 ClientDriver tests", Jdbc4ClientDriverTests.class); + } + return service; + } + + public void modifiedService(ServiceReference ref, Object service) {} + + public void removedService(ServiceReference ref, Object service) { + ctx.ungetService(ref); + } + + void logResultStats(Result r) { + log("Result: " + + " runs=" + r.getRunCount() + + " failures=" + r.getFailureCount() + + " ignore=" + r.getIgnoreCount()); + log("Failures: " + r.getFailures()); + for (Failure f : r.getFailures()) + log("--- Failure: \n" + f.getTrace()); + } + + static void log(String msg) { + System.out.println("===== " + msg); + } +}
diff --git a/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/ClientDriverTests.java b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/ClientDriverTests.java new file mode 100644 index 0000000..7dd7ed2 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/ClientDriverTests.java
@@ -0,0 +1,81 @@ +/* + * Copyright (C) 2010 Oracle Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.eclipse.gemini.dbaccess.test; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Properties; + +import javax.sql.ConnectionPoolDataSource; +import javax.sql.DataSource; +import javax.sql.PooledConnection; +import javax.sql.XAConnection; +import javax.sql.XADataSource; + +import org.osgi.framework.BundleContext; +import org.osgi.service.jdbc.DataSourceFactory; +import org.osgi.util.tracker.ServiceTracker; + +import org.junit.*; + +/** + * Test class to test OSGi JDBC client driver data source factory service + * + * @author mkeith + */ +public class ClientDriverTests extends JdbcTests { + + public static String CLIENT_DRIVER_NAME = "org.apache.derby.jdbc.ClientDriver"; + public static String JDBC_VERSION = "3.0"; + + @BeforeClass + public static void classSetUp() { + log("In ClientDriverTests setup"); + dsf = lookupDsf(CLIENT_DRIVER_NAME, JDBC_VERSION); + log("Found DSF service - " + dsf); + } + + @AfterClass + public static void classCleanUp() { + dsf = null; + } + + Properties getDataSourceProperties() { + Properties props = new Properties(); + props.put(DataSourceFactory.JDBC_SERVER_NAME, "localhost"); + props.put(DataSourceFactory.JDBC_PORT_NUMBER, "1527"); + props.put(DataSourceFactory.JDBC_DATABASE_NAME, "accountDB"); + props.put(DataSourceFactory.JDBC_USER, "app"); + props.put(DataSourceFactory.JDBC_PASSWORD, "app"); + props.put("traceLevel", "1"); + props.put("traceFile", "trace.out"); + props.put("traceFileAppend", "true"); + return props; + } + + Properties getUrlProperties() { + Properties props = new Properties(); + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_NAME, + "org.apache.derby.jdbc.ClientDriver"); + props.put(DataSourceFactory.JDBC_URL, + "jdbc:derby://localhost:1527/accountDB"); + props.put(DataSourceFactory.JDBC_USER, "app"); + props.put(DataSourceFactory.JDBC_PASSWORD, "app"); + return props; + } +}
diff --git a/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/EmbeddedDriverTests.java b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/EmbeddedDriverTests.java new file mode 100644 index 0000000..e61e461 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/EmbeddedDriverTests.java
@@ -0,0 +1,63 @@ +/* + * Copyright (C) 2010 Oracle Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.eclipse.gemini.dbaccess.test; + +import java.util.Properties; + +import org.junit.*; +import org.osgi.service.jdbc.DataSourceFactory; + +/** + * Test class to test OSGi JDBC embedded driver data source factory service + * + * @author mkeith + */ +public class EmbeddedDriverTests extends JdbcTests { + + public static String EMBEDDED_DRIVER_NAME = "org.apache.derby.jdbc.EmbeddedDriver"; + public static String JDBC_VERSION = "3.0"; + + @BeforeClass + public static void classSetUp() { + log("In EmbeddedDriverTests setup"); + dsf = lookupDsf(EMBEDDED_DRIVER_NAME, JDBC_VERSION); + log("Found DSF service - " + dsf); + } + + @AfterClass + public static void classCleanUp() { + dsf = null; + } + + Properties getDataSourceProperties() { + Properties props = new Properties(); + props.put(DataSourceFactory.JDBC_DATABASE_NAME, "accountDB"); +// props.put(DataSourceFactory.JDBC_USER, "app"); +// props.put(DataSourceFactory.JDBC_PASSWORD, "app"); + return props; + } + + Properties getUrlProperties() { + Properties props = new Properties(); + props.put(DataSourceFactory.OSGI_JDBC_DRIVER_NAME, + "org.apache.derby.jdbc.EmbeddedDriver"); + props.put(DataSourceFactory.JDBC_URL, + "jdbc:derby:accountDB;create=true"); +// props.put(DataSourceFactory.JDBC_USER, "app"); +// props.put(DataSourceFactory.JDBC_PASSWORD, "app"); + return props; + } +}
diff --git a/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Jdbc4ClientDriverTests.java b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Jdbc4ClientDriverTests.java new file mode 100644 index 0000000..e518ef1 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Jdbc4ClientDriverTests.java
@@ -0,0 +1,57 @@ +/* + * Copyright (C) 2010 Oracle Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.eclipse.gemini.dbaccess.test; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Properties; + +import javax.sql.ConnectionPoolDataSource; +import javax.sql.DataSource; +import javax.sql.PooledConnection; +import javax.sql.XAConnection; +import javax.sql.XADataSource; + +import org.osgi.framework.BundleContext; +import org.osgi.service.jdbc.DataSourceFactory; +import org.osgi.util.tracker.ServiceTracker; + +import org.junit.*; + +/** + * Test class to test OSGi JDBC 4 client driver data source factory service + * + * @author mkeith + */ +public class Jdbc4ClientDriverTests extends ClientDriverTests { + + public static String CLIENT_DRIVER_NAME = "org.apache.derby.jdbc.ClientDriver"; + public static String JDBC_4_VERSION = "4.0"; + + @BeforeClass + public static void classSetUp() { + log("In Jdbc4ClientDriverTests setup"); + dsf = lookupDsf(CLIENT_DRIVER_NAME, JDBC_4_VERSION); + log("Found DSF service - " + dsf); + } + + @AfterClass + public static void classCleanUp() { + dsf = null; + } +}
diff --git a/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Jdbc4EmbeddedDriverTests.java b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Jdbc4EmbeddedDriverTests.java new file mode 100644 index 0000000..2c93a61 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/Jdbc4EmbeddedDriverTests.java
@@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010 Oracle Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.eclipse.gemini.dbaccess.test; + +import org.junit.*; + +/** + * Test class to test OSGi JDBC 4 embedded driver data source factory service + * + * @author mkeith + */ +public class Jdbc4EmbeddedDriverTests extends EmbeddedDriverTests { + + public static String EMBEDDED_DRIVER_NAME = "org.apache.derby.jdbc.EmbeddedDriver"; + public static String JDBC_4_VERSION = "4.0"; + + @BeforeClass + public static void classSetUp() { + log("In Jdbc4EmbeddedDriverTests setup"); + dsf = lookupDsf(EMBEDDED_DRIVER_NAME, JDBC_4_VERSION); + log("Found DSF service - " + dsf); + } + + @AfterClass + public static void classCleanUp() { + dsf = null; + } +}
diff --git a/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/JdbcTests.java b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/JdbcTests.java new file mode 100644 index 0000000..1abc7e3 --- /dev/null +++ b/test/org.eclipse.gemini.dbaccess.test/src/org/eclipse/gemini/dbaccess/test/JdbcTests.java
@@ -0,0 +1,172 @@ +/* + * Copyright (C) 2010 Oracle Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.eclipse.gemini.dbaccess.test; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Properties; + +import javax.sql.ConnectionPoolDataSource; +import javax.sql.DataSource; +import javax.sql.PooledConnection; +import javax.sql.XAConnection; +import javax.sql.XADataSource; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; +import org.osgi.service.jdbc.DataSourceFactory; + +import org.junit.*; + +/** + * Abstract test class to test OSGi JDBC data source factory services + * + * @author mkeith + */ +public abstract class JdbcTests { + + protected static BundleContext context; + protected static DataSourceFactory dsf; + + //------------------------------------------- + // Test classes must override these methods + //------------------------------------------- + abstract Properties getUrlProperties(); + abstract Properties getDataSourceProperties(); + + //------------------------------------------- + // Test methods + //------------------------------------------- + @Test + public void testURLDataSourceFactory() throws Exception { + log("testURLDataSource"); + DataSource ds = dsf.createDataSource(getUrlProperties()); + assert(ds != null); + log("Created DS - " + ds); + log("Getting connection"); + Connection con = ds.getConnection(); + assert(con != null); + log("Got connection - " + con); + + this.executeJdbcStatement(con); + con.close(); + } + + @Test + public void testVanillaDataSourceFactory() throws Exception { + log("testVanillaDataSource"); + DataSource ds = dsf.createDataSource(getDataSourceProperties()); + assert(ds != null); + log("Created DS - " + ds); + log("Getting connection"); + Connection con = ds.getConnection(); + assert(con != null); + log("Got connection - " + con); + + this.executeJdbcStatement(con); + con.close(); + } + + @Test + public void testPooledDataSourceFactory() throws Exception { + log("testPooledDataSource"); + ConnectionPoolDataSource ds = dsf.createConnectionPoolDataSource(getDataSourceProperties()); + assert(ds != null); + log("Created DS - " + ds); + log("Getting connection"); + PooledConnection pcon = ds.getPooledConnection(); + assert(pcon != null); + log("Got pooled connection - " + pcon); + Connection con = pcon.getConnection(); + assert(con != null); + this.executeJdbcStatement(con); + con.close(); + pcon.close(); + } + + @Test + public void testXADataSourceFactory() throws Exception { + log("testXADataSource"); + XADataSource ds = dsf.createXADataSource(getDataSourceProperties()); + assert(ds != null); + log("Created DS - " + ds); + log("Getting connection"); + XAConnection xa_con = ds.getXAConnection(); + assert(xa_con != null); + log("Got XA connection - " + xa_con); + Connection con = xa_con.getConnection(); + assert(con != null); + this.executeJdbcStatement(con); + con.close(); + xa_con.close(); + } + + @Test + public void testErrorCase1() throws Exception { + log("testErrorCase"); + try { + DataSource ds = dsf.createDataSource(getErrorProperties()); + ds.getConnection(); + } catch (SQLException sqlEx) { + log("Caught expected exception: " + sqlEx); + return; + } + assert(false); + } + + //------------------------------------------- + // Helper methods + //------------------------------------------- + + Properties getErrorProperties() { + Properties props = new Properties(); + props.put("errorProperty", "errorValue"); + return props; + } + + void executeJdbcStatement(Connection con) throws Exception { + Statement stmt = con.createStatement(); + boolean result = stmt.execute("SET CURRENT SCHEMA USER"); + log("SQL result: " + result); + stmt.close(); + } + + public static DataSourceFactory lookupDsf(String driverName, String version) { + log("Lookup (" + driverName + ", " + version + ")"); + String filter = "(&("+DataSourceFactory.OSGI_JDBC_DRIVER_CLASS+"="+driverName+")("+ + DataSourceFactory.OSGI_JDBC_DRIVER_VERSION+"="+version+"))"; + log("Filter is: " + filter); + ServiceReference[] refs = null; + try { + refs = context.getServiceReferences(DataSourceFactory.class.getName(), filter); + } catch (InvalidSyntaxException isEx) { + new RuntimeException("Bad filter", isEx); + } + log("DSF Service refs looked up from registry: " + refs); + return (refs == null) + ? null + : (DataSourceFactory) context.getService(refs[0]); + } + + static void log(String msg) { + System.out.println("*** JdbcTest: " + msg); + } + + +}