Über das Interface
DbConfigurationCallback
erfolgt die
Konfiguration von checkerberry db. Das folgende Code-Beispiel enthält
das Interface.
Beispiel 2.68. Interface DbConfigurationCallback
/** * Callback zum Setzen der Konfigurationen für checkerberry db und * DbUnit. Die Konfiguration wird bei der Erzeugung einer neuen * checkerberry db-Umgebung angelegt und ändert sich dann zur Laufzeit nicht * mehr. */ public interface DbConfigurationCallback { /** * Callback zum Setzen von Konfigurationseinstellungen. * * @param configuration * zu bearbeitende Konfiguration. */ void configure(DbConfiguration configuration); }
Die Implementation des Callbacks wird nur einmalig bei der Initialisierung von checkerberry db aufgerufen. Durch die Verwendung des Callbacks kann der Zeitpunkt der Erzeugung der Konfiguration in checkerberry db gesteuert werden.
Die Implementierung des Callback-Interfaces ist abhängig von der aktuellen System-Umgebung, sodass keine Basisklassen verwendet werden können. Die Implementierung ist jedoch sehr einfach, wie im nächsten Code-Beispiel zu erkennen ist.
Beispiel 2.69. Beispiel-Implementierung des DbConfigurationCallbacks
/**
* Beispiel-Implementierung eines Callbacks zur Manipulation der
* Konfiguration.
*/
public class SampleConfigurationCallback implements
DbConfigurationCallback {
@Override
public void configure(DbConfiguration configuration) {
// Hiermit werden DTD-Id und ihr Ort spezifiziert. Die Angabe
// der DTD ist zwingend erforderlich.
configuration.setDatabaseDtd(
"-//ConceptPeople//DTD sample-db 1.0//EN",
"de/conceptpeople/example/sample-db.dtd");
// Zugriff für jede JDBC-URL verbieten…
configuration.addToAccessControlBlacklist("*");
// …und nur hsqldb:mem erlauben.
configuration.addToAccessControlWhitelist("*hsqldb:mem*");
}
}
In dem Code-Beispiel ist zu erkennen, dass dem Callback die
Klasse DbConfiguration
übergeben wird, sodass
die Einstellungen der Konfigurationen angepasst werden können. Die
Konfigurationsmöglichkeiten werden im Rahmen der einzelnen Features
detailliert dargestellt.
Bei der Verwendung der Standard-Implementation des
DatabaseConnectors
werden die zu verwendenden
Datenbankparameter über die Konfiguration angegeben. Folgendes
Beispiel zeigt eine mögliche Konfiguration.
Beispiel 2.70. Datenbankparameter bei Verwendung des Standard-DatabaseConnectors
public class ConfigurationCallback implements DbConfigurationCallback { @Override public void configure(DbConfiguration configuration) { // Datenbanktreiber festlegen configuration.setJdbcDriverClassName("com.mysql.jdbc.Driver"); // JDBC-URL festlegen configuration.setJdbcUrl("jdbc:mysql://localhost:3306/testing"); // Namen des Datenbankbenutzers setzen configuration.setJdbcUserName("homer"); // Passwort des Datenbankbenutzers setzen configuration.setJdbcPassword("duff"); // Ggf. Datenbankschema angeben configuration.setJdbcDatabaseSchema(""); } }
Die Verwendung der Standard-Implementation ist sehr schnell
und einfach. Da die zu testende Anwendung die gleichen
Datenbankparameter wie checkerberry db verwenden muss, besteht
jedoch die Gefahr einer redundanten Pflege der Parameter. Aus diesem
Grund ist es in der Regel sinnvoller, eine bereits konfigurierte
DataSource
zu verwenden. Für den Einstieg in
checkerberry ist die Verwendung der Standard-Implementation jedoch
sinnvoll.