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
