continuum-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Napoleon Esmundo C. Ramirez" <napoleonesmundocarpiorami...@gmail.com>
Subject Database compatibility checking step during startup
Date Tue, 18 Nov 2008 13:19:30 GMT
Hello everyone,

Deng and I talked about putting a database compatibility check.  I filed
CONTINUUM-1980 to track this new feature.  In summary, it states that
Continuum should be able to detect when it has been started with an
incompatible database and prompt the user to take the appropriate action.
This should work transparently if all goes well, and will just display
recommendations in the UI if any problem occurred.

By intent, the checking should take place before the database connection is
initialized.  But since the database connection happens during the
components' initialization, it is suggested that the JdoFactory for the
continuum database be removed in the application.xml and is instead replaced
with a wrapper component that initializes the database connection
explicitly--not on component initialization.  This new component can be used
by a database-checking interceptor in the webapp or it can be applied to
other modules like the redback users database.

For now, aside from the new interceptor and component suggested to be added
to continuum, the impact I can see is that the following will have to point
to the new component:
- org.apache.maven.continuum.management.StoreUtilities
- org.apache.maven.continuum.management.JdoDataManagementTool
- org.apache.maven.continuum.management.LegacyJdoDataManagementTool

Currently, they require the the continuum JdoFactory:
/**
 * @plexus.requirement role="org.codehaus.plexus.jdo.JdoFactory"
role-hint="continuum"
 */

But I think these components don't need the JdoFactory right away, so I
think we can delay the initialization of the database connection component
to give way to checking during startup.


What do you think?  Any comments are greatly appreciated.

Cheers!
Nap

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message