Project

General

Profile

1 14 jones
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).