this.meta.getAttributes().put(GenericDatabaseMeta.ATRRIBUTE_CUSTOM_URL, jdbcDef.getConnectionString());
this.meta.getAttributes().put(GenericDatabaseMeta.ATRRIBUTE_CUSTOM_DRIVER_CLASS, jdbcDef.getDriverClass());
}
else
{
final DatabaseInterface databaseInterface = DatabaseMapping.getMappingForDriver(jdbcDef.getDriverClass());
this.meta.setDatabaseType(databaseInterface.getPluginId());
log.debug("Database type is unknown, using " + databaseInterface);
try
{
final String pattern;
if (databaseInterface instanceof HypersonicDatabaseMeta)
{
final String connectionString = jdbcDef.getConnectionString();
if (connectionString.startsWith(HSQLDB_PREFIX))
{
if (connectionString.indexOf(':', HSQLDB_PREFIX.length()) == -1)
{
pattern = HSQLDB_PREFIX + "{0}/{2}";
}
else
{
pattern = HSQLDB_PREFIX + "{0}:{1}/{2}";
}
}
else
{
pattern = databaseInterface.getURL("{0}", "{1}", "{2}");
}
}
else
{
pattern = databaseInterface.getURL("{0}", "{1}", "{2}");
}
// knowing that most databases are written in C, we can be sure that the zero-character
// is not a common value.
if (pattern != null && pattern.length() > 0)
{