Project

General

Profile

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).
(5-5/9)