import org.wamblee.security.authorization.AuthorizationService;
 import org.wamblee.security.authorization.hibernate.AuthorizationMappingFiles;
 import org.wamblee.system.adapters.DefaultContainer;
+import org.wamblee.system.components.ORMappingConfig;
 import org.wamblee.system.core.Component;
 import org.wamblee.system.core.DefaultProvidedInterface;
 import org.wamblee.system.core.DefaultRequiredInterface;
 import org.wamblee.system.core.ProvidedInterface;
 import org.wamblee.system.core.Scope;
 import org.wamblee.system.spring.component.HibernateComponent;
-import org.wamblee.system.spring.component.ORMappingConfig;
 import org.wamblee.usermgt.UserAccessor;
 import org.wamblee.usermgt.UserAdministration;
 import org.wamblee.usermgt.UserGroupRepositoryComponent;
 
 import org.springframework.transaction.PlatformTransactionManager;
 import org.wamblee.cache.EhCache;
 import org.wamblee.system.adapters.DefaultContainer;
+import org.wamblee.system.components.ORMappingConfig;
 import org.wamblee.system.core.Component;
 import org.wamblee.system.core.DefaultProvidedInterface;
 import org.wamblee.system.core.DefaultRequiredInterface;
 import org.wamblee.system.core.ProvidedInterface;
 import org.wamblee.system.core.Scope;
 import org.wamblee.system.spring.component.HibernateComponent;
-import org.wamblee.system.spring.component.ORMappingConfig;
 import org.wamblee.usermgt.UserAdministration;
 import org.wamblee.usermgt.UserGroupRepositoryComponent;
 
 
 import org.wamblee.security.authorization.TestUserAccessor;
 import org.wamblee.system.adapters.DefaultContainer;
 import org.wamblee.system.adapters.ObjectConfiguration;
+import org.wamblee.system.components.DatabaseComponentFactory;
 import org.wamblee.system.core.Scope;
 import org.wamblee.system.spring.component.DatabaseTesterComponent;
+import org.wamblee.system.spring.component.DatasourceComponent;
 import org.wamblee.usermgt.UserAccessor;
 import org.wamblee.usermgt.hibernate.AuthorizationComponent;
-import org.wamblee.usermgt.hibernate.DatabaseComponentFactory;
-import org.wamblee.usermgt.hibernate.DatasourceComponent;
 import org.wamblee.usermgt.hibernate.HibernateUserAdministrationTest;
 import org.wamblee.usermgt.hibernate.UserAdministrationComponent;
 
 
+++ /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);
-        }
-    }
-
-}
 
+++ /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 java.io.IOException;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
-
-import javax.sql.DataSource;
-
-import org.springframework.core.io.ClassPathResource;
-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.SpringComponent;
-import org.wamblee.system.spring.component.ORMappingConfig;
-import org.wamblee.system.spring.component.ORMappingConfig.DatabaseType;
-
-public class DatasourceComponent extends AbstractComponent<DataSource> {
-
-    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);
-   
-    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"));
-       addInterface(DATASOURCE, ds, aScope);
-       DatabaseType type = DatabaseType.valueOf(dbProps.getProperty("database.type"));
-       
-       ORMappingConfig config = new ORMappingConfig(true, type);
-       
-       addInterface(ORM_CONFIG, config, aScope);
-       
-       return ds; 
-    }
-
-    @Override
-    protected void doStop(DataSource aRuntime) {
-       // Empty.
-    }
-}
 
 import org.wamblee.cache.EhCache;
 import org.wamblee.system.adapters.DefaultContainer;
 import org.wamblee.system.adapters.ObjectConfiguration;
+import org.wamblee.system.components.DatabaseComponentFactory;
 import org.wamblee.system.core.Scope;
 import org.wamblee.system.spring.component.DatabaseTesterComponent;
+import org.wamblee.system.spring.component.DatasourceComponent;
 import org.wamblee.test.spring.TestTransactionCallbackWithoutResult;
 import org.wamblee.usermgt.UserAdministration;
 import org.wamblee.usermgt.UserAdministrationImplTest;
 
 
 import org.wamblee.io.ClassPathResource;
 import org.wamblee.system.adapters.DefaultContainer;
+import org.wamblee.system.components.DatabaseComponentFactory;
 import org.wamblee.system.components.PropertyComponent;
 import org.wamblee.system.spring.component.DatabaseTesterComponent;
+import org.wamblee.system.spring.component.DatasourceComponent;
 import org.wamblee.system.spring.component.HibernateComponent;
 import org.wamblee.usermgt.UserGroupRepositoryComponent;