1
|
Changes from Alpha to 1.0 Release
|
2
|
|
3
|
FEATURES:
|
4
|
=========
|
5
|
|
6
|
This is a complete(?) list of the features added between the alpha
|
7
|
and 1.0 releases.
|
8
|
|
9
|
Mapping Language:
|
10
|
|
11
|
* Added EmptyStringIsNull element to mapping language. For details,
|
12
|
see the DTD.
|
13
|
* Added DateTimeFormats, Locale, and Patterns elements to the mapping
|
14
|
language so that a map can specify the format of dates, times, and
|
15
|
timestamps. For details, see the DTD.
|
16
|
* Added Options and Maps elements to the mapping language for
|
17
|
structure.
|
18
|
|
19
|
DOMToDBMS:
|
20
|
|
21
|
* Added COMMIT_NONE (application must call commit) and changed default
|
22
|
commit mode to COMMIT_AFTERINSERT.
|
23
|
* Use cached of prepared INSERT statements instead of continually
|
24
|
repreparing.
|
25
|
|
26
|
DBMSToDOM:
|
27
|
|
28
|
* Use cached of prepared SELECT statements instead of continually
|
29
|
repreparing. (SEE IMPORTANT NOTE BELOW.)
|
30
|
|
31
|
Map:
|
32
|
|
33
|
* Added serialize method to serialize a map to an OutputStream.
|
34
|
* Added getCreateStrings method to get CREATE TABLE statements.
|
35
|
|
36
|
Package de.tudarmstadt.ito.schemas.dtd:
|
37
|
Package de.tudarmstadt.ito.schemas.converters:
|
38
|
|
39
|
* New packages for doing DDML<=>DTD conversion and representing
|
40
|
DTDs as objects.
|
41
|
|
42
|
MapFactory_DTD:
|
43
|
|
44
|
* New map factory to generate Maps from DTDs or schemas.
|
45
|
|
46
|
BUG FIXES:
|
47
|
==========
|
48
|
|
49
|
This is a complete(?) list of the bugs fixed between the alpha
|
50
|
and 1.0 releases.
|
51
|
|
52
|
* Data conversions fixed. Some conversions previously threw exceptions.
|
53
|
* Map compiler failed on some maps due to problems processing related
|
54
|
classes. Fixed.
|
55
|
* COMMIT_AFTERINSERT now works. (Code previously commented out.)
|
56
|
* NullPointerException if an element type-as-class had child elements
|
57
|
but none were mapped. Same problem if it had attributes but none
|
58
|
were mapped.
|
59
|
|
60
|
IMPORTANT!
|
61
|
==========
|
62
|
|
63
|
This is a list of things you really need to know about:
|
64
|
|
65
|
* Alpha mapping documents are no longer valid according to the 1.0 DTD.
|
66
|
However, they can still be compiled by MapFactory_MapDocument if a
|
67
|
non-validating parser is used.
|
68
|
* If you want to take advantage of the cache of prepared SELECT
|
69
|
statements, see the comments in Map.checkInSelectStmt.
|
70
|
|
71
|
|
72
|
CODE CHANGES:
|
73
|
=============
|
74
|
|
75
|
This is a rough listing of what has changed in the code. If you have
|
76
|
modified the alpha code yourself and want to know exactly what has
|
77
|
changed, please run a diff over the relevant files. Files not listed
|
78
|
below have not changed.
|
79
|
|
80
|
domutils/NameQualifier.java
|
81
|
* Added SEPARATOR constant.
|
82
|
|
83
|
domutils/NameQualifierImpl.java
|
84
|
* getQualifiedName now uses NSName.getQualifiedName
|
85
|
|
86
|
xmldbms/ClassMap.java
|
87
|
* Added name variable.
|
88
|
* Allocate Hashtables for attributeMaps and subelementTypeMaps
|
89
|
when the class is constructed.
|
90
|
|
91
|
xmldbms/DBMSToDOM.java
|
92
|
* Various functions check select statements in and out.
|
93
|
* processClassResultSet, processPropertyResultSet and
|
94
|
processRelatedTables now close result sets.
|
95
|
* Instantiates Parameters instead of calling static methods.
|
96
|
* getDataValue uses the date/time formatters.
|
97
|
* populateRow treats empty strings as nulls, if requested.
|
98
|
|
99
|
xmldbms/DOMToDBMS.java
|
100
|
* Changed default commmit mode to COMMIT_AFTERINSERT.
|
101
|
* Added COMMIT_NONE.
|
102
|
* Calls commit on Map object instead of Connection object.
|
103
|
* Uses instanceof to test map type instead of try/catch.
|
104
|
* setPropertyColumn treats empty strings as nulls, if requested.
|
105
|
* Checks insert statements in and out.
|
106
|
|
107
|
xmldbms/Map.java
|
108
|
* Added serialize method.
|
109
|
* Maintain caches of prepared INSERT and DELETE statements.
|
110
|
* Commit now done through Map.
|
111
|
* Added global variables for empty-string-as-null and date / time
|
112
|
formatters.
|
113
|
* Added finalize() method to close all open prepared statements.
|
114
|
* Sort results in descending order for (supposedly) better performance
|
115
|
in DBMSToDOM.
|
116
|
* Added setConnection method and initColumnMetadata methods.
|
117
|
* Moved methods for setting metadata from TempMap.
|
118
|
|
119
|
xmldbms/Parameters.java
|
120
|
* Complete rewrite.
|
121
|
|
122
|
xmldbms/mapfactories/MapFactory_MapDocument.java
|
123
|
* Added code to process new elements.
|
124
|
* Added code to check if value returned for a non-existent attribute
|
125
|
is an empty string instead of a null. This works around a bug in
|
126
|
the Oracle parser.
|
127
|
|
128
|
xmldbms/mapfactories/NSName.java
|
129
|
* Moved to utils package
|
130
|
|
131
|
xmldbms/mapfactories/TempClassMap.java
|
132
|
* Changed elementType variable to name.
|
133
|
|
134
|
xmldbms/mapfactories/TempMap.java
|
135
|
* Added code to find maximum number of active statements and
|
136
|
whether commit deletes prepared statements.
|
137
|
* Fixed bug where some related classes through errors (see mappedTables).
|
138
|
* Added globals to support new elements.
|
139
|
* Moved getNSName to NSName.
|
140
|
* Uses instanceof to test map type instead of try/catch.
|
141
|
* Moved methods for setting metadata to Map.
|
142
|
|
143
|
xmldbms/mapfactories/TempPropertyMap.java
|
144
|
* Changed property variable to name.
|
145
|
|
146
|
xmldbms/mapfactories/TempTable.java
|
147
|
* Changed addPropertyColumn to mapPropertyColumn
|
148
|
|
149
|
xmldbms/mapfactories/XMLDBMSConst.java
|
150
|
* Added constants for new elements and attributes
|
151
|
* Made all constants public
|
152
|
* Added byte arrays for use in output
|
153
|
|
154
|
utils/NSName.java
|
155
|
* Moved from xmldbms/mapfactories
|
156
|
* Made public
|
157
|
* Change plain to local
|
158
|
* Added new constructor and various public methods (getPrefixedName,
|
159
|
getQualifiedName, and getNSName).
|