- TestPlateFlatFileImporter, TestRawDataFlatFileImporter, TestPluginConfiguration,
TestReporterFlatFileImporter and TestReporterMapFlatFileImporter fails
++Testing plugin configuration
--Create plugin definition OK
--Create plugin configuration OK
--List plugin configurations OK (1)
--Load plugin configuration OK
--Configure plugin configuration FAILED
org.hibernate.exception.SQLGrammarException: could not initialize a collection:
[net.sf.basedb.core.data.PluginConfigurationData.configurationValues#2091]
[snip]
at net.sf.basedb.core.PluginConfiguration.getParameterNames(PluginConfiguration.java:283)
at net.sf.basedb.core.ParameterValuesImpl.<init>(ParameterValuesImpl.java:96)
at net.sf.basedb.core.PluginConfiguration.configure(PluginConfiguration.java:496)
at TestPluginConfiguration.test_configure(TestPluginConfiguration.java:189)
at TestPluginConfiguration.test_all(TestPluginConfiguration.java:63)
at TestPluginConfiguration.main(TestPluginConfiguration.java:48)
Caused by: java.sql.SQLException: ORA-00972: identifier is too long
All plugin configuration related exceptions seems to be related
to that there is no VersionedPluginConfigurationValues table. If
I try to create it by hand I get the error message:
Table Name VERSIONEDPLUGINCONFIGURATIONVALUES exceeds allowed size.
Oracle seems to have a limit of 30 characters for table names. We can solve it by changing the name of the table, but it is likely to cause problems with other installation using MySQL or Postgres. Another solution is to let the DbEngine inspect and maybe change all mapping information before the final configuration. We could for example add a method DbEngine.fixTableAnomalies(Table table) which could inspect table and column names (and possible other not yet known things) and change the name. In this case the OracleDbEngine should truncate the table name to 30 characters. The method should be called from HibernateUtil.init() just before the call to final configuration (cfg.configure()).