-
Notifications
You must be signed in to change notification settings - Fork 138
/
RELEASE-NOTES.html
430 lines (316 loc) · 11.4 KB
/
RELEASE-NOTES.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
<html lang="en">
<title>Release Notes for Apache Derby 10.15.0.0</title>
<body>
<h1>
<a name="Release Notes for Apache Derby 10.15.0.0"></a>Release Notes for Apache Derby 10.15.0.0</h1>
<div>
<p>These notes describe the difference between Apache Derby release 10.15.0.0 and the preceding release 10.14.2.0.</p>
</div>
<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>
<li>
<a href="#Verifying Releases">Verifying Releases</a>
</li>
</ul>
<h2>
<a name="Overview"></a>Overview</h2>
<div>
<p>
The most up to date information about Derby releases can be found on the
<a href="https://db.apache.org/derby/derby_downloads.html">Derby download page</a>.
</p>
<p>
Apache Derby is a pure Java relational database engine using standard SQL and
JDBC as its APIs. More information about Derby can be found on the
<a href="https://db.apache.org/derby/">Apache web site</a>.
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>
<p>
The 10.15 release family supports the following Java and JDBC versions:
</p>
<ul>
<li>Java SE 9 and higher with JDBC 4.2.</li>
</ul>
</div>
<h2>
<a name="New Features"></a>New Features</h2>
<div>
<p>
This is a feature release. The following new feature was added:
</p>
<ul>
<li>
<b>JPMS modularization</b> - Derby has been re-packaged as a set of JPMS modules. This introduced a new jar file, <i>derbyshared.jar</i>, required by all configurations. Module diagrams for Derby configurations can be found in the
<a href="https://db.apache.org/derby/docs/10.15/publishedapi/index.html">javadoc</a>
for the 10.15 public API.
</li>
</ul>
<p>
New users should consult the
<a href="https://db.apache.org/derby/manuals/index.html#docs_10.15">10.15 documentation</a>,
especially the
<a href="https://db.apache.org/derby/docs/10.15/getstart/index.html">Getting Started With Derby</a> guide.
</p>
<p>
Existing users who want to continue running Derby with a classpath should read the extended release note for issue DERBY-6945 (see below).
</p>
<p>
Existing users who want to run Derby with a module path should consult the module diagrams in the
<a href="https://db.apache.org/derby/docs/10.15/publishedapi/index.html">javadoc</a>
for the 10.15 public API. Templates for wiring together a module path can be found in the
<i>setEmbeddedCP</i>, <i>setNetworkServerCP</i>, and <i>setNetworkClientCP</i> scripts located
in the bin directory of the release distributions, as described by the
"Manually setting the CLASSPATH/MODULEPATH environment variables" topic in the
<a href="https://db.apache.org/derby/docs/10.15/getstart/index.html">Getting Started With Derby</a> guide.
</p>
</div>
<h2>
<a name="Bug Fixes"></a>Bug Fixes</h2>
<div>
<p>The following issues are addressed by Derby release 10.15.0.0. These issues are not addressed in the preceding 10.14.2.0 release.</p>
<table border="2">
<tr>
<th>
<div style="width:110px;">Issue Id</div>
</th><th>Description</th>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-7020">DERBY-7020</a></td><td>Fix release targets to account for modularization changes</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-7018">DERBY-7018</a></td><td>Test the demo programs after the changes made by DERBY-6945</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-7016">DERBY-7016</a></td><td>Adjust the set*CP scripts to include derbyshared.jar and to set a MODULEPATH variable as well</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-6981">DERBY-6981</a></td><td>"SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U"</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-6980">DERBY-6980</a></td><td>Documentation changes to accompany jigsaw-modularization of derby</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-6973">DERBY-6973</a></td><td>Provide SHA-512 checksums on future releases</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-6945">DERBY-6945</a></td><td>Re-package Derby as a collection of jigsaw modules</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-6856">DERBY-6856</a></td><td>Make it possible to build Derby using JDK 9</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5543">DERBY-5543</a></td><td>include debug info in derby builds uploaded to maven</td>
</tr>
</table>
</div>
<h2>
<a name="Issues"></a>Issues</h2>
<div>
<ul>
<li>
<a href="#Note for DERBY-6945"><span>Note for DERBY-6945:
Modularize Derby, cleanly partitioning its packages across a small set of
JPMS components.
</span></a>
</li>
</ul>
<p>Compared with the previous release (10.14.2.0), Derby release 10.15.0.0 introduces the following new features and incompatibilities. These merit your special attention.</p>
<hr>
<h3>
<a name="Note for DERBY-6945"></a>Note for DERBY-6945</h3>
<div>
<!--
SUMMARIZE THE ISSUE. This is a one line, one sentence summary of the
issue. It serves as the title for the issue in the Issues section of
the full Release Notes.
For instance:
Applications may no longer open two InputStreams on the same ResultSet column.
-->
<h4>Summary of Change</h4>
<p>
Modularize Derby, cleanly partitioning its packages across a small set of
JPMS components.
</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 new jar file (<i>derbyshared.jar</i>) has been added. All Derby
configurations require it. In addition, the <i>derbytools.jar</i> library is
now required when running the network server and/or when using Derby
DataSources.
</p>
<p>
More privileges must be granted to the Derby jar files when running
under a Security Manager.
</p>
<p>
Derby jar files can now be wired into a modulepath
for use by module-aware applications.
</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>
Legacy applications may fail if their classpaths don't contain the
required jar files. Code common to all Derby configurations has been
isolated in the new <i>derbyshared.jar</i> file. DataSources have
moved from <i>derbyclient.jar</i> and <i>derby.jar</i> into <i>derbytools.jar</i>
</p>
<p>
Legacy applications which run under a Java SecurityManager may fail
due to insufficient privilege grants.
</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 was divided into JPMS components for the following reasons:
</p>
<ul>
<li>
<b>Footprint</b> - Modularization reduces Derby's footprint
when running embedded on resource-constrained devices.</li>
<li>
<b>Security</b> - Modularization lets Derby protect its code
via package-level encapsulation.</li>
</ul>
<!--
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>
Consult the module diagrams for configurations described on the
landing page of the
<a href="https://db.apache.org/derby/docs/10.15/publishedapi/index.html">10.15 public API</a>.
Then adjust your application's classpath as follows:
</p>
<ul>
<li>
<b>Remote client</b> - When running remote client applications, make
sure that the classpath includes <i>derbyshared.jar</i>. Remote applications which
use Derby DataSources should also include <i>derbytools.jar</i>.</li>
<li>
<b>Embedded engine</b> - When running the embedded engine, make
sure that the classpath includes <i>derbyshared.jar</i>. Embedded applications which
use Derby DataSources should also include <i>derbytools.jar</i>.</li>
<li>
<b>Network server</b> - When running the network server, make
sure that the classpath includes <i>derbyshared.jar</i> and <i>derbytools.jar</i>.</li>
<li>
<b>Tools</b> - When running Derby tools like <i>ij</i>,
<i>dblook</i>, and <i>sysinfo</i>, make
sure that the classpath includes <i>derbyshared.jar</i>.</li>
</ul>
<p>
Java security policy files must grant additional privileges to
Derby jar files. For more information, see the "Configuring Java
Security" topic in the
<a href="https://db.apache.org/derby/docs/10.15/security/index.html"><i>Derby Security Guide</i></a>
and consult
the following template policy files
in the <i>demo/templates</i> directory of the bin distribution:
</p>
<ul>
<li>
<b>clientTemplate.policy</b> - Privileges needed by remote
client applications.</li>
<li>
<b>engineTemplate.policy</b> - Privileges needed by applications
which embed the Derby engine.</li>
<li>
<b>serverTemplate.policy</b> - Privileges needed when running the
network server.</li>
<li>
<b>toolsTemplate.policy</b> - Privileges needed when running
Derby tools.</li>
</ul>
</div>
</div>
<h2>
<a name="Build Environment"></a>Build Environment</h2>
<div>
<p>Derby release 10.15.0.0 was built using the following environment:</p>
<ul>
<li>
<b>Branch</b> - Source code came from the 10.15 branch.</li>
<li>
<b>Machine</b> - Mac OSX 10.11.6.</li>
<li>
<b>Ant</b> - Apache Ant(TM) version 1.10.2 compiled on February 3 2018.</li>
<li>
<b>Compiler</b> - All classes were compiled by the javac from OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode).</li>
</ul>
</div>
<h2>
<a name="Verifying Releases"></a>Verifying Releases</h2>
<div>
<p>It is essential that you verify the integrity of the downloaded
files using the PGP and SHA-512 signatures. SHA-512 verification ensures the
file was not corrupted during the download process. PGP verification
ensures that the file came from a certain person.</p>
<p>The PGP signatures can be verified using
<a href="https://www.pgpi.org/">PGP</a> or
<a href="https://www.gnupg.org/">GPG</a>.
First download the Apache Derby
<a href="https://dist.apache.org/repos/dist/release/db/derby/KEYS">KEYS</a>
as well as the <code>asc</code> signature file for the particular
distribution. It is important that you get these files from the ultimate
trusted source - the main ASF distribution site, rather than from a mirror.
Then verify the signatures using ...</p>
<pre>
% pgpk -a KEYS
% pgpv db-derby-X.Y.tar.gz.asc
<em>or</em>
% pgp -ka KEYS
% pgp db-derby-X.Y.tar.gz.asc
<em>or</em>
% gpg --import KEYS
% gpg --verify db-derby-X.Y.tar.gz.asc
</pre>
<p>To verify the SHA-512 checksums on the files, you need to use a
platform-specific program. On Mac OSX, this program is called
<code>shasum</code>, on Linux it is called <code>sha512sum</code>,
and on Windows it is called <code>CertUtil</code>.</p>
<p>We strongly recommend that you verify your downloads with both PGP and SHA-512.</p>
</div>
</body>
</html>