One of the key benefits of the RCP is the ability to install plug-ins that add
functionality to an application. However, adding functionality often requires
additions to the datastore schema. A feature may require extra columns/fields
in a table/class, or may even require new tables/classes.
In this short talk, we present a datastore framework that supports such
extensibility. Covered areas will include 1) the dynamic extending of Java
objects using a map in each object in which plug-ins can store their additional
data, 2) Persistence (both XML and relational databases are supported), 3)
Orphaned data (a plug-in may be removed leaving data in the datastore that none
of the remaining plug-ins know anything about), 4) The additional problems of
design when you don't know at the time of coding what properties must be
supported by your UI, 5) The problem where two plug-ins independently add what
is essentially the same field.
This framework was developed for an open source personal accounting
When the application was ported to the Eclipse RCP, extension points existed
for just about everything we wanted to do except for extending the data model.
This framework was therefore developed to meet our requirements. Although the
framework was developed for an accounting program, it is likely to have uses in
many other areas.
Nigel Westbury is an independent software developer currently living in San Diego. Nigel recieved his degree in mathematics and computer science from Cambridge University, England. He has worked in a number of fields, particulary database systems. He had his own company which developed drivers and SQL engines for proprietary datasources and later worked at Microsoft on the development of XML and XQuery support in SQL Server. He is currently contracting to a startup company in San Diego.