Property files are now being read by the property component
[utils] / security / src / test / java / org / wamblee / usermgt / hibernate / DatasourceComponent.java
similarity index 66%
rename from security/src/test/java/org/wamblee/usermgt/hibernate/ExternalDatasourceComponent.java
rename to security/src/test/java/org/wamblee/usermgt/hibernate/DatasourceComponent.java
index 55a2537c613d69c91305ad29dbe535f8187a5dd9..0871d27b2ab88a645942704db0b0947dd7851e16 100644 (file)
@@ -26,6 +26,7 @@ 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;
@@ -33,32 +34,18 @@ import org.wamblee.system.spring.SpringComponent;
 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);
     }
@@ -66,13 +53,15 @@ public class ExternalDatasourceComponent extends AbstractComponent<DataSource> {
 
     @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);