Log connection URL for embedded databases
Prior to this commit, EmbeddedDatabaseFactory logged the name of an embedded database just before it was created; however, the name alone is not sufficient for connecting to the database via external tools such as the H2 Web Console. This commit updates EmbeddedDatabaseFactory to make it easier to connect to embedded databases via external tools by logging the complete connection URL for an embedded database as it's being created. In addition, EmbeddedDatabaseFactory now logs when an embedded database is being shut down. Issue: SPR-13370
This commit is contained in:
parent
2025d5c35e
commit
d54aab2338
|
|
@ -21,12 +21,12 @@ import java.sql.Connection;
|
|||
import java.sql.SQLException;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.jdbc.datasource.SimpleDriverDataSource;
|
||||
import org.springframework.jdbc.datasource.init.DatabasePopulator;
|
||||
import org.springframework.jdbc.datasource.init.DatabasePopulatorUtils;
|
||||
import org.springframework.util.Assert;
|
||||
|
|
@ -63,7 +63,7 @@ import org.springframework.util.Assert;
|
|||
public class EmbeddedDatabaseFactory {
|
||||
|
||||
/**
|
||||
* Default name for an embedded database: "testdb".
|
||||
* Default name for an embedded database: {@value}
|
||||
*/
|
||||
public static final String DEFAULT_DATABASE_NAME = "testdb";
|
||||
|
||||
|
|
@ -171,10 +171,7 @@ public class EmbeddedDatabaseFactory {
|
|||
setDatabaseName(UUID.randomUUID().toString());
|
||||
}
|
||||
|
||||
// Create the embedded database source first
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.info("Creating embedded database '" + this.databaseName + "'");
|
||||
}
|
||||
// Create the embedded database first
|
||||
if (this.databaseConfigurer == null) {
|
||||
this.databaseConfigurer = EmbeddedDatabaseConfigurerFactory.getConfigurer(EmbeddedDatabaseType.HSQL);
|
||||
}
|
||||
|
|
@ -182,6 +179,17 @@ public class EmbeddedDatabaseFactory {
|
|||
this.dataSourceFactory.getConnectionProperties(), this.databaseName);
|
||||
this.dataSource = this.dataSourceFactory.getDataSource();
|
||||
|
||||
if (logger.isInfoEnabled()) {
|
||||
if (this.dataSource instanceof SimpleDriverDataSource) {
|
||||
SimpleDriverDataSource simpleDriverDataSource = (SimpleDriverDataSource) this.dataSource;
|
||||
logger.info(String.format("Starting embedded database: url='%s', username='%s'",
|
||||
simpleDriverDataSource.getUrl(), simpleDriverDataSource.getUsername()));
|
||||
}
|
||||
else {
|
||||
logger.info(String.format("Starting embedded database '%s'", this.databaseName));
|
||||
}
|
||||
}
|
||||
|
||||
// Now populate the database
|
||||
if (this.databasePopulator != null) {
|
||||
try {
|
||||
|
|
@ -203,6 +211,17 @@ public class EmbeddedDatabaseFactory {
|
|||
*/
|
||||
protected void shutdownDatabase() {
|
||||
if (this.dataSource != null) {
|
||||
|
||||
if (logger.isInfoEnabled()) {
|
||||
if (this.dataSource instanceof SimpleDriverDataSource) {
|
||||
logger.info(String.format("Shutting down embedded database: url='%s'",
|
||||
((SimpleDriverDataSource) this.dataSource).getUrl()));
|
||||
}
|
||||
else {
|
||||
logger.info(String.format("Shutting down embedded database '%s'", this.databaseName));
|
||||
}
|
||||
}
|
||||
|
||||
this.databaseConfigurer.shutdown(this.dataSource, this.databaseName);
|
||||
this.dataSource = null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,16 @@
|
|||
log4j.appender.console=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.console.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%c] - %m%n
|
||||
log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%-5p] [%c] - %m%n
|
||||
|
||||
log4j.appender.file=org.apache.log4j.FileAppender
|
||||
log4j.appender.file.file=bin/spring-jdbc.log
|
||||
log4j.appender.file.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%c] - %m%n
|
||||
|
||||
log4j.rootCategory=ERROR, console, file
|
||||
|
||||
log4j.rootCategory=WARN, console
|
||||
log4j.logger.org.springframework.beans=WARN
|
||||
log4j.logger.org.springframework.binding=DEBUG
|
||||
|
||||
#log4j.logger.org.springframework.jdbc=TRACE
|
||||
|
||||
#log4j.logger.org.springframework.jdbc.datasource.embedded=INFO
|
||||
|
|
|
|||
Loading…
Reference in New Issue