Hi everyone,

I have now checked in Benjamin's patch of Oct 26th.
I have changed some bits about the logging and the exclusion of tables 
containing a '$' in populateTableMetaData() in order to test it with Oracle. 
Also I had to add one Apache license header in DBUtil.java.

For our next steps I would like to make the following suggestions:

1. At the moment we're parsing metadata obtained via JDBC into generator 
specific classes (Database, Table, Column) which hold the properties required 
for the velocity templates. The classes are simple bean type classes.
However wouldn't it be much smarter if the metadata would be parsed directly 
into an Empire-db class hierarchy i.e. use DBDatabase, DBTable, DBColumn etc.? 
This would then allow to use the class hierarchy directly even without the 
generation of the class files.

In a second step the class files should then be generated from an Empire-db 
database (DBDatabase). This step should be independent from step one, so that 
in theory one could provide the class hierarchy in java and have the same 
classes generated again. 
For properties required for the generation process which are not available in 
the corresponding Empire-db classes we probably need to provide a helper class 
or provide them through an extension of the database class.

2. Afterwards we should be are able to test and debug it on different database 
systems. I have currently tested it with the DBSAMPLE data model on Oracle and 
I can do the same for Microsoft SQL-Server. We should make sure that it works 
with the DBSAMPLE and DBSAMPLEADV data model on all DBMS that we currently 
support. All committers please let everyone else know what you are developing 
and testing with.

3. I assume that although JDBC should retrieve metadata in a consistent way 
there will be aspects that are specific for a certain DBMS (like the exclusion 
of tables containing a '$' symbol in Oracle). This should be handled by the 
driver. At the moment however we're not using the Empire-db database drivers 
and we need to think about how we can let the driver intercept and modify the 
generation process.

Suggestion 2 and 3 can wait. Most important for now is suggestion No 1.
Thomas and Benjamin what do you thing about this idea?
Anyone volunteering for getting this done?

Regards
Rainer

Reply via email to