import org.wamblee.system.spring.component.DatabaseTesterComponent;
import org.wamblee.usermgt.UserAccessor;
import org.wamblee.usermgt.hibernate.AuthorizationComponent;
-import org.wamblee.usermgt.hibernate.ExternalDatasourceComponent;
+import org.wamblee.usermgt.hibernate.DatabaseComponentFactory;
+import org.wamblee.usermgt.hibernate.DatasourceComponent;
import org.wamblee.usermgt.hibernate.HibernateUserAdministrationTest;
import org.wamblee.usermgt.hibernate.UserAdministrationComponent;
protected void setUp() throws Exception {
_container = new DefaultContainer("top");
- _container.addComponent(new ExternalDatasourceComponent("datasource"));
+ DatabaseComponentFactory.addDatabaseConfig(_container);
+ _container.addComponent(new DatasourceComponent("datasource"));
_container.addComponent("userAccessor", TestUserAccessor.class);
_container.addComponent(new AuthorizationComponent("authorization",
true));
--- /dev/null
+/*
+ * Copyright 2008 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.wamblee.usermgt.hibernate;
+
+import org.wamblee.io.ClassPathResource;
+import org.wamblee.system.components.PropertyComponent;
+import org.wamblee.system.core.Container;
+
+public class DatabaseComponentFactory {
+
+ public static void addDatabaseConfig(Container aContainer) {
+ try {
+ aContainer
+ .addComponent(new PropertyComponent(
+ "dbProps",
+ new ClassPathResource(
+ "properties/test.org.wamblee.security.database.properties")));
+ } catch (Exception e) {
+ throw new RuntimeException("Could not add database configuration",
+ e);
+ }
+ }
+
+}
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.wamblee.system.core.AbstractComponent;
import org.wamblee.system.core.DefaultProvidedInterface;
+import org.wamblee.system.core.DefaultRequiredInterface;
import org.wamblee.system.core.ProvidedInterface;
import org.wamblee.system.core.RequiredInterface;
import org.wamblee.system.core.Scope;
import org.wamblee.system.spring.component.ORMappingConfig;
import org.wamblee.system.spring.component.ORMappingConfig.DatabaseType;
-public class ExternalDatasourceComponent extends AbstractComponent<DataSource> {
+public class DatasourceComponent extends AbstractComponent<DataSource> {
- private static final String DATABASE_PROPERTIES = "properties/test.org.wamblee.security.database.properties";
-
+ private static RequiredInterface PROPS = new DefaultRequiredInterface("dbprops", Properties.class);
private static ProvidedInterface DATASOURCE = new DefaultProvidedInterface("datasource",
DataSource.class);
private static ProvidedInterface ORM_CONFIG = new DefaultProvidedInterface("ormconfig",
ORMappingConfig.class);
-
- private Properties _dbProps;
- public ExternalDatasourceComponent(String aName) throws IOException {
- this(aName, loadProperties());
- }
-
- private static Properties loadProperties() throws IOException {
- Properties dbProps = new Properties();
- dbProps.load(new ClassPathResource(DATABASE_PROPERTIES)
- .getInputStream());
- return dbProps;
- }
-
- public ExternalDatasourceComponent(String aName, Properties aProps) throws IOException {
- super(aName);
- _dbProps = aProps;
+ public DatasourceComponent(String aName) throws IOException {
+ super(aName);
+ addRequiredInterface(PROPS);
addProvidedInterface(DATASOURCE);
addProvidedInterface(ORM_CONFIG);
}
@Override
protected DataSource doStart(Scope aScope) {
+ Properties dbProps = aScope.getInterfaceImplementation(
+ PROPS.getProvider(), Properties.class);
DriverManagerDataSource ds = new DriverManagerDataSource(
- _dbProps.getProperty("database.driver"),
- _dbProps.getProperty("database.url"),
- _dbProps.getProperty("database.username"),
- _dbProps.getProperty("database.password"));
+ dbProps.getProperty("database.driver"),
+ dbProps.getProperty("database.url"),
+ dbProps.getProperty("database.username"),
+ dbProps.getProperty("database.password"));
addInterface(DATASOURCE, ds, aScope);
- DatabaseType type = DatabaseType.valueOf(_dbProps.getProperty("database.type"));
+ DatabaseType type = DatabaseType.valueOf(dbProps.getProperty("database.type"));
ORMappingConfig config = new ORMappingConfig(true, type);
protected void setUp() throws Exception {
_container = new DefaultContainer("top");
- _container.addComponent(new ExternalDatasourceComponent("datasource"));
+ DatabaseComponentFactory.addDatabaseConfig(_container);
+ _container.addComponent(new DatasourceComponent("datasource"));
_container.addComponent(new UserAdministrationComponent("admin", true));
_container.addComponent("databaseTester", DatabaseTesterComponent.class);
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */
+ */
package org.wamblee.usermgt.hibernate;
import java.io.IOException;
+import org.wamblee.io.ClassPathResource;
import org.wamblee.system.adapters.DefaultContainer;
+import org.wamblee.system.components.PropertyComponent;
import org.wamblee.system.spring.component.DatabaseTesterComponent;
import org.wamblee.system.spring.component.HibernateComponent;
import org.wamblee.usermgt.UserGroupRepositoryComponent;
/**
*
- * Test container for repository tests of user management.
+ * Test container for repository tests of user management.
*
* @author Erik Brakkee
*/
public class UserMgtRepositoryTestContainer extends DefaultContainer {
- public UserMgtRepositoryTestContainer(String aName) throws IOException {
- super(aName);
- addComponent(new ExternalDatasourceComponent("datasource"));
- addComponent("mappingFiles",
- new UsermgtHibernateMappingFiles());
+ public UserMgtRepositoryTestContainer(String aName) throws IOException {
+ super(aName);
+ DatabaseComponentFactory.addDatabaseConfig(this);
+ addComponent(new DatasourceComponent("datasource"));
+ addComponent("mappingFiles", new UsermgtHibernateMappingFiles());
addComponent(new HibernateComponent("hibernate"));
addComponent(new UserGroupRepositoryComponent("usersgroups"));
addComponent("databaseTester", DatabaseTesterComponent.class);
}
-
+
}