You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/08/29 22:05:08 UTC

svn commit: r570915 - in /incubator/tuscany/java/sca/modules: ./ data-engine-helper/ data-engine-helper/src/ data-engine-helper/src/main/ data-engine-helper/src/main/java/ data-engine-helper/src/main/java/org/ data-engine-helper/src/main/java/org/apach...

Author: lresende
Date: Wed Aug 29 13:05:06 2007
New Revision: 570915

URL: http://svn.apache.org/viewvc?rev=570915&view=rev
Log:
Refactoring common code from impl.das and impl.data to a data-helper module
Added support for passing config info in the composite file

Note: this is work in progress, and I might get the two implementations all in one module

Added:
    incubator/tuscany/java/sca/modules/data-engine-helper/
    incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml   (with props)
    incubator/tuscany/java/sca/modules/data-engine-helper/src/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/ConnectionInfoArtifactProcessor.java   (with props)
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngine.java
      - copied, changed from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngine.java
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngineManager.java
      - copied, changed from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngineManager.java
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/MissingConfigFileException.java
      - copied, changed from r570582, incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/MissingConfigFileException.java
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionInfo.java
      - copied, changed from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionInfo.java
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionProperties.java
      - copied, changed from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionProperties.java
    incubator/tuscany/java/sca/modules/data-engine-helper/src/main/resources/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/test/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/test/java/
    incubator/tuscany/java/sca/modules/data-engine-helper/src/test/resources/
    incubator/tuscany/java/sca/modules/implementation-das/src/test/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessorTestCase.java   (with props)
    incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessorTestCase.java
      - copied, changed from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProcessorTestCase.java
Removed:
    incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DataAccessEngine.java
    incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DataAccessEngineManager.java
    incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/MissingConfigFileException.java
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngine.java
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngineManager.java
    incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProcessorTestCase.java
Modified:
    incubator/tuscany/java/sca/modules/implementation-das/pom.xml
    incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessor.java
    incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASImplementation.java
    incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASImplementationProvider.java
    incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASInvoker.java
    incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/CompanyConfig.xml
    incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/company.composite
    incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/das.composite
    incubator/tuscany/java/sca/modules/implementation-data/pom.xml
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessor.java
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementation.java
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProvider.java
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAInvoker.java
    incubator/tuscany/java/sca/modules/pom.xml

Added: incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml?rev=570915&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml (added)
+++ incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml Wed Aug 29 13:05:06 2007
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you 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.    
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-modules</artifactId>
+        <version>1.0-incubating-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <artifactId>tuscany-data-engine-helper</artifactId>
+    <name>Apache Tuscany Data Engine Helper</name>
+
+    <repositories>
+       <repository>
+          <id>apache.incubator</id>
+          <url>http://people.apache.org/repo/m2-incubating-repository</url>
+       </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.das</groupId>
+            <artifactId>tuscany-das-rdb</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-assembly</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-core</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-interface</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>        
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-assembly-xml</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>        
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-contribution-impl</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>sca-api</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-databinding</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>  
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-embedded</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>                                      
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <version>2.2</version>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>10.1.2.1</version>
+            <scope>test</scope>
+        </dependency>         
+    </dependencies>
+
+    <build>
+       <finalName>${artifactId}</finalName>
+    </build>
+
+</project>

Propchange: incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/modules/data-engine-helper/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/ConnectionInfoArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/ConnectionInfoArtifactProcessor.java?rev=570915&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/ConnectionInfoArtifactProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/ConnectionInfoArtifactProcessor.java Wed Aug 29 13:05:06 2007
@@ -0,0 +1,140 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.tuscany.sca.data.engine;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
+import org.apache.tuscany.sca.data.engine.config.ConnectionProperties;
+
+/**
+ * Implements a STAX artifact processor for ConnectionInfo.
+ * This processor is shared between implementation.das and implementation.data component type  implementations,
+ * and can be used for other applications that require database connectivity information.
+ * 
+ * The artifact processor is responsible for processing <ConnectionInfo>
+ * elements in SCA assembly XML composite files.
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ConnectionInfoArtifactProcessor implements StAXArtifactProcessor<ConnectionInfo> {
+    private static final QName CONNECTION_INFO = new QName(Constants.SCA10_TUSCANY_NS, "connectionInfo");
+    private static final QName CONNECTION_PROPERTIES = new QName(Constants.SCA10_TUSCANY_NS, "connectionProperties");
+    
+    public ConnectionInfoArtifactProcessor(ModelFactoryExtensionPoint modelFactories) {
+
+    }
+
+    public QName getArtifactType() {
+        // Returns the qname of the XML element processed by this processor
+        return CONNECTION_INFO;
+    }
+
+    public Class<ConnectionInfo> getModelType() {
+        // Returns the type of model processed by this processor
+        return ConnectionInfo.class;
+    }
+
+    /*
+     * <component name="CompanyDataComponent">
+     *   <implementation.data table="company">
+     *
+     *      <connectionInfo>
+     *         <connectionProperties 
+     *          driverClass="org.apache.derby.jdbc.EmbeddedDriver" 
+     *          databaseURL="jdbc:derby:target/test-classes/dastest; create = true" 
+     *          loginTimeout="600000"/>
+     *      </connectionInfo>
+     *
+     *   </implementation.data>
+     * </component>
+     */
+    public ConnectionInfo read(XMLStreamReader reader) throws ContributionReadException {
+        assert CONNECTION_INFO.equals(reader.getName());
+
+        // Create a ConnectionInfo from the component type model
+        ConnectionInfo connectionInfo = new ConnectionInfo();
+
+        /* 
+         *  <connectionInfo dataSource="jdbc:derby:target/test-classes/dastest; create = true"/>
+         */
+        String dataSource = reader.getAttributeValue(null, "datasource"); // exclusive with connection properties
+        if (dataSource != null && dataSource.length() > 0) {
+            connectionInfo.setDataSource(dataSource);
+        } else {
+            try {
+                int event = reader.next();
+                while (event == XMLStreamConstants.CHARACTERS) {
+                    event = reader.next();
+                }
+            } catch (XMLStreamException e) {
+                throw new ContributionReadException(e);
+            }
+
+            QName element = reader.getName();
+            
+            assert CONNECTION_PROPERTIES.equals(element);
+            
+            /*
+             * <connectionProperties 
+             *  driverClass="org.apache.derby.jdbc.EmbeddedDriver" 
+             *  databaseURL="jdbc:derby:target/test-classes/dastest; create = true"
+             *  username=""
+             *  password="" 
+             *  loginTimeout="600000"/>
+             */
+            
+            String driverClass = reader.getAttributeValue(null, "driverClass");
+            String databaseURL = reader.getAttributeValue(null, "databaseURL");
+            String username = reader.getAttributeValue(null, "username");
+            String password = reader.getAttributeValue(null, "password");
+            int loginTimeout = Integer.parseInt(reader.getAttributeValue(null, "loginTimeout"));
+
+            // FIXME: validation sending info to monitor....
+            ConnectionProperties connectionProperties = new ConnectionProperties();
+            connectionProperties.setDriverClass(driverClass);
+            connectionProperties.setDatabaseURL(databaseURL);
+            connectionProperties.setUsername(username);
+            connectionProperties.setPassword(password);
+            connectionProperties.setLoginTimeout(loginTimeout);
+
+            connectionInfo.setConnectionProperties(connectionProperties);
+        }
+        
+        return connectionInfo;
+    }
+
+    public void resolve(ConnectionInfo impl, ModelResolver resolver) throws ContributionResolveException {
+    }
+
+    public void write(ConnectionInfo model, XMLStreamWriter outputSource) throws ContributionWriteException {
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/ConnectionInfoArtifactProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/ConnectionInfoArtifactProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngine.java (from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngine.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngine.java?p2=incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngine.java&p1=incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngine.java&r1=570582&r2=570915&rev=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngine.java (original)
+++ incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngine.java Wed Aug 29 13:05:06 2007
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.implementation.data.das;
+package org.apache.tuscany.sca.data.engine;
 
 import org.apache.tuscany.das.rdb.Command;
 import org.apache.tuscany.das.rdb.DAS;
@@ -48,5 +48,20 @@
             e.printStackTrace();
             return null;
         }
+    }
+    
+    public DataObject executeCommand(String commandName) {
+        try {
+            Command command = this.das.getCommand(commandName);
+            return command.executeQuery();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    public DataObject executeCommand(String commandName, String xPath) {
+        DataObject root = executeCommand(commandName);
+        return root.getDataObject(xPath);
     }
 }

Copied: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngineManager.java (from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngineManager.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngineManager.java?p2=incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngineManager.java&p1=incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngineManager.java&r1=570582&r2=570915&rev=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/das/DataAccessEngineManager.java (original)
+++ incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/DataAccessEngineManager.java Wed Aug 29 13:05:06 2007
@@ -17,11 +17,13 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.implementation.data.das;
+package org.apache.tuscany.sca.data.engine;
+
+import java.io.InputStream;
 
 import org.apache.tuscany.das.rdb.ConfigHelper;
 import org.apache.tuscany.das.rdb.DAS;
-import org.apache.tuscany.sca.implementation.data.config.ConnectionInfo;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
 
 /**
  * The DataAccessEngineManager acts like a registry and factory for DAS instances
@@ -37,37 +39,85 @@
         super();
     }
     
-    
-    protected DAS initializeDAS(ConnectionInfo connectionInfo) {
+    protected DAS initializeDAS(String config, ConnectionInfo connectionInfo) throws MissingConfigFileException {
         //load the config file
         System.out.println("Initializing DAS");
         
-        ConfigHelper configHelper = new ConfigHelper();
+        ConfigHelper configHelper;
         
-        String dataSource = connectionInfo.getDataSource();
-        if(dataSource != null && dataSource.length() > 0) {
-            configHelper.addConnectionInfo(dataSource);
+        if(config == null) {
+            //no config information
+            configHelper = new ConfigHelper();    
         } else {
-            String driverClass = connectionInfo.getConnectionProperties().getDriverClass();
-            String connectionURL = connectionInfo.getConnectionProperties().getDatabaseURL();
-            String userName = connectionInfo.getConnectionProperties().getUsername();
-            String password = connectionInfo.getConnectionProperties().getPassword();
-            int loginTimeout = connectionInfo.getConnectionProperties().getLoginTimeout();
+            //initialize the config helper by loading config file
+            configHelper = new ConfigHelper(this.getConfigStream(config));
+        }
+        
+        //add additional connectionInfo if provided in the SCA Composite file
+        if( connectionInfo != null) {
+            String dataSource = connectionInfo.getDataSource();
+            if(dataSource != null && dataSource.length() > 0) {
+                configHelper.addConnectionInfo(dataSource);
+            } else {
+                String driverClass = connectionInfo.getConnectionProperties().getDriverClass();
+                String connectionURL = connectionInfo.getConnectionProperties().getDatabaseURL();
+                String userName = connectionInfo.getConnectionProperties().getUsername();
+                String password = connectionInfo.getConnectionProperties().getPassword();
+                int loginTimeout = connectionInfo.getConnectionProperties().getLoginTimeout();
 
-            configHelper.addConnectionInfo(driverClass, connectionURL, userName, password, loginTimeout);
+                configHelper.addConnectionInfo(driverClass, connectionURL, userName, password, loginTimeout);
+            }
+            
         }
         
+        
         DAS das = DAS.FACTORY.createDAS(configHelper.getConfig());
         
         return das;
     }
     
+/*
+    public DAS getDAS(String config) throws MissingConfigFileException {
+        //DAS das = registry.get(config);
+        //if ( das == null) {
+        //    das = this.initializeDAS(config);
+        //    this.registry.put(config, das);
+        //}
+        return initializeDAS(config, null);
+    }
+
     public DAS getDAS(ConnectionInfo connectionInfo) {
         assert connectionInfo != null;
         
         //FIXME: cache the das, we need to define the keys to use (datasource and databaseurl + hashed(username + password))
+        DAS das = null;
+        try {
+            das =  initializeDAS(null, connectionInfo);
+        }catch (MissingConfigFileException e) {
+            //this should never happen, as configFile == null
+        }
+        
+        return das;
+    }
+*/
+    public DAS getDAS(String config, ConnectionInfo connectionInfo) throws MissingConfigFileException {
+        assert connectionInfo != null;
+        
+        //FIXME: cache the das, we need to define the keys to use (datasource and databaseurl + hashed(username + password))
+        
+        return initializeDAS(config, connectionInfo);
+    }
+    
+    protected InputStream getConfigStream(String config) throws MissingConfigFileException{
+        InputStream configStream = null;
+        
+        try {
+            configStream = this.getClass().getResourceAsStream(config); 
+        } catch (Exception e) {
+            throw new MissingConfigFileException(config); 
+        }
         
-        return initializeDAS(connectionInfo);
+        return configStream;
     }
     
 

Copied: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/MissingConfigFileException.java (from r570582, incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/MissingConfigFileException.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/MissingConfigFileException.java?p2=incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/MissingConfigFileException.java&p1=incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/MissingConfigFileException.java&r1=570582&r2=570915&rev=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/MissingConfigFileException.java (original)
+++ incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/MissingConfigFileException.java Wed Aug 29 13:05:06 2007
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tuscany.sca.implementation.das.provider;
+package org.apache.tuscany.sca.data.engine;
 
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 

Copied: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionInfo.java (from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionInfo.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionInfo.java?p2=incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionInfo.java&p1=incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionInfo.java&r1=570582&r2=570915&rev=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionInfo.java (original)
+++ incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionInfo.java Wed Aug 29 13:05:06 2007
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.implementation.data.config;
+package org.apache.tuscany.sca.data.engine.config;
 
 /**
  * Database connection information to be used for implementation.data

Copied: incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionProperties.java (from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionProperties.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionProperties.java?p2=incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionProperties.java&p1=incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionProperties.java&r1=570582&r2=570915&rev=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/config/ConnectionProperties.java (original)
+++ incubator/tuscany/java/sca/modules/data-engine-helper/src/main/java/org/apache/tuscany/sca/data/engine/config/ConnectionProperties.java Wed Aug 29 13:05:06 2007
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.implementation.data.config;
+package org.apache.tuscany.sca.data.engine.config;
 
 /**
  * Database connection properties to be used for implementation.data

Modified: incubator/tuscany/java/sca/modules/implementation-das/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/pom.xml?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/pom.xml Wed Aug 29 13:05:06 2007
@@ -35,89 +35,83 @@
        </repository>
     </repositories>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.tuscany.das</groupId>
-            <artifactId>tuscany-das-rdb</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-            <scope>compile</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-assembly</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-core</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-interface</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>        
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-assembly-xml</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>        
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-contribution-impl</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>sca-api</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-databinding</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-implementation-java-runtime</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>  
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>                                      
-            <artifactId>junit</artifactId>
-            <version>3.8.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>2.2</version>
-            <scope>test</scope>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.derby</groupId>
-            <artifactId>derby</artifactId>
-            <version>10.1.2.1</version>
-            <scope>test</scope>
-        </dependency>         
-    </dependencies>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.tuscany.das</groupId>
+			<artifactId>tuscany-das-rdb</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-assembly</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-core</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-interface</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-assembly-xml</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-contribution-impl</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>sca-api</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-databinding</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-implementation-java-runtime</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-host-embedded</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-data-engine-helper</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>3.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.easymock</groupId>
+			<artifactId>easymock</artifactId>
+			<version>2.2</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.derby</groupId>
+			<artifactId>derby</artifactId>
+			<version>10.1.2.1</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
 
     <build>
        <finalName>${artifactId}</finalName>

Modified: incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessor.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessor.java Wed Aug 29 13:05:06 2007
@@ -18,9 +18,10 @@
  */
 package org.apache.tuscany.sca.implementation.das;
 
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
@@ -33,6 +34,8 @@
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.data.engine.ConnectionInfoArtifactProcessor;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
 
 
@@ -51,10 +54,15 @@
     
     private DASImplementationFactory dasFactory;
     
+    private StAXArtifactProcessor connectionInfoProcessor;
+    
     public DASArtifactProcessor(ModelFactoryExtensionPoint modelFactories) {
         AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         JavaInterfaceFactory javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
+        
         this.dasFactory = new DefaultDASImplementationFactory(assemblyFactory, javaFactory);
+        
+        this.connectionInfoProcessor = new ConnectionInfoArtifactProcessor(modelFactories);
     }
 
     public QName getArtifactType() {
@@ -81,33 +89,47 @@
      */
     public DASImplementation read(XMLStreamReader reader) throws ContributionReadException {
         assert IMPLEMENTATION_DAS.equals(reader.getName());
-        
+
         // Read an <implementation.das> element
+
+        // Read the das config file attribute.
+        // This is das configuration side file to use
+        String config = reader.getAttributeValue(null, "config");
+
+        // Read the data access type attribute
+        // This is the type of data store in use (e.g rdb, xml, etc)
+        String dataAccessType = reader.getAttributeValue(null, "dataAccessType");
+
+        // Create an initialize the DAS implementation model
+        DASImplementation implementation = dasFactory.createDASImplementation();
+        implementation.setConfig(config);
+        implementation.setDataAccessType(dataAccessType);
+
         try {
-            // Read the das config file attribute. 
-            // This is das configuration side file to use
-            String config = reader.getAttributeValue(null, "config");
-            
-            // Read the data access type attribute
-            // This is the type of data store in use (e.g rdb, xml, etc)
-            String dataAccessType = reader.getAttributeValue(null, "dataAccessType");
-
-            // Create an initialize the DAS implementation model
-            DASImplementation implementation = dasFactory.createDASImplementation();
-            implementation.setConfig(config);
-            implementation.setDataAccessType(dataAccessType);
-            
-            // Skip to end element
-            while (reader.hasNext()) {
-                if (reader.next() == END_ELEMENT && IMPLEMENTATION_DAS.equals(reader.getName())) {
+            while (true) {
+                int event = reader.next();
+                switch (event) {
+
+                case START_ELEMENT:
+                    QName element = reader.getName();
+
+                    // Read an extension element
+                    ConnectionInfo connectionInfo = (ConnectionInfo) connectionInfoProcessor.read(reader);
+                    ;
+                    implementation.setConnectionInfo(connectionInfo);
+
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    if (IMPLEMENTATION_DAS.equals(reader.getName())) {
+                        return implementation;
+                    }
                     break;
                 }
             }
-            
-            return implementation;
         } catch (XMLStreamException e) {
             throw new ContributionReadException(e);
         }
+
     }
 
     public void resolve(DASImplementation impl, ModelResolver resolver) throws ContributionResolveException {

Modified: incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASImplementation.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASImplementation.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/DASImplementation.java Wed Aug 29 13:05:06 2007
@@ -27,6 +27,7 @@
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
 import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
@@ -43,6 +44,7 @@
     private Service dasService;
     private String dasConfig;
     private String dataAccessType;
+    private ConnectionInfo connectionInfo;
 
     /**
      * Constructs a new DAS implementation.
@@ -79,6 +81,14 @@
     
     public void setDataAccessType (String dataAccessType) {
         this.dataAccessType = dataAccessType;
+    }
+    
+    public ConnectionInfo getConnectionInfo() {
+        return this.connectionInfo;
+    }
+
+    public void setConnectionInfo(ConnectionInfo connectionInfo) {
+        this.connectionInfo = connectionInfo;
     }
 
     public ConstrainingType getConstrainingType() {

Modified: incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASImplementationProvider.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASImplementationProvider.java Wed Aug 29 13:05:06 2007
@@ -19,6 +19,8 @@
 package org.apache.tuscany.sca.implementation.das.provider;
 
 import org.apache.tuscany.das.rdb.DAS;
+import org.apache.tuscany.sca.data.engine.DataAccessEngine;
+import org.apache.tuscany.sca.data.engine.DataAccessEngineManager;
 import org.apache.tuscany.sca.implementation.das.DASImplementation;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Invoker;
@@ -49,7 +51,7 @@
     public Invoker createInvoker(RuntimeComponentService service, Operation operation) {
         DAS das = null;
         try {
-            das = dataAccessEngineManager.getDAS(implementation.getConfig());
+            das = dataAccessEngineManager.getDAS(implementation.getConfig(), implementation.getConnectionInfo());
         } catch(Exception e) {
             e.printStackTrace();
             //what now ?
@@ -61,7 +63,7 @@
     public Invoker createCallbackInvoker(Operation operation) {
         DAS das = null;
         try {
-            das = dataAccessEngineManager.getDAS(implementation.getConfig());
+            das = dataAccessEngineManager.getDAS(implementation.getConfig(), implementation.getConnectionInfo());
         } catch(Exception e) {
             //what now ?
         }        

Modified: incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASInvoker.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/main/java/org/apache/tuscany/sca/implementation/das/provider/DASInvoker.java Wed Aug 29 13:05:06 2007
@@ -21,6 +21,7 @@
 
 import java.lang.reflect.InvocationTargetException;
 
+import org.apache.tuscany.sca.data.engine.DataAccessEngine;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;

Added: incubator/tuscany/java/sca/modules/implementation-das/src/test/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/test/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessorTestCase.java?rev=570915&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/test/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessorTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/test/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessorTestCase.java Wed Aug 29 13:05:06 2007
@@ -0,0 +1,140 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.tuscany.sca.implementation.das;
+
+import java.io.StringReader;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
+import org.apache.tuscany.sca.data.engine.config.ConnectionProperties;
+import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DASArtifactProcessorTestCase extends TestCase {
+    
+    protected static final QName IMPLEMENTATION_DAS = new QName(Constants.SCA10_TUSCANY_NS, "implementation.das");
+
+    private static final String COMPOSITE_USING_DATASOURCE =
+        "<?xml version=\"1.0\" encoding=\"ASCII\"?>" 
+            + "<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.0\" targetNamespace=\"http://data\" name=\"data\">"
+            + " <component name=\"DasComponent\">"
+            + "   <tuscany:implementation.das config=\"config.xml\" dataAccessType=\"rdb\">"
+            + "      <tuscany:connectionInfo datasource=\"dataSource\"/>"
+            + "   </tuscany:implementation.das>"
+            + "</component>";
+
+    private static final String COMPOSITE_USING_CONNECTION_PROPERTIES =            
+            "<?xml version=\"1.0\" encoding=\"ASCII\"?>" 
+            + "<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.0\" targetNamespace=\"http://data\" name=\"data\">"
+            + " <component name=\"DasComponent\">"
+            + "   <tuscany:implementation.das config=\"config.xml\" dataAccessType=\"rdb\">"
+            + "      <tuscany:connectionInfo>"
+            + "         <tuscany:connectionProperties"
+            + "            driverClass=\"driverClass\""
+            + "            databaseURL=\"databaseURL\""
+            + "            loginTimeout=\"1\"/>"
+            + "      </tuscany:connectionInfo>"
+            + "   </tuscany:implementation.das>"
+            + "</component>";
+
+    private XMLInputFactory xmlFactory;
+    private ModelFactoryExtensionPoint modelFactories;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        xmlFactory = XMLInputFactory.newInstance();
+        
+        modelFactories = new DefaultModelFactoryExtensionPoint();
+        AssemblyFactory assemblyFactory = new DefaultAssemblyFactory();
+        modelFactories.addFactory(assemblyFactory);
+        JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory();
+        modelFactories.addFactory(javaFactory);
+    }
+
+    public void testLoadCompositeUsingDatasource() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(COMPOSITE_USING_DATASOURCE));
+        
+        DASArtifactProcessor dataProcessor = new DASArtifactProcessor(modelFactories);
+        
+        while(true) {
+            int event = reader.next();
+            if(event == XMLStreamConstants.START_ELEMENT && IMPLEMENTATION_DAS.equals(reader.getName())) {
+                break;
+            }
+        }
+
+        DASImplementation implementation = dataProcessor.read(reader);
+        
+        assertNotNull(implementation);
+        assertEquals("config.xml", implementation.getConfig());
+        assertEquals("rdb", implementation.getDataAccessType());
+
+        ConnectionInfo connInfo = implementation.getConnectionInfo();
+        assertNotNull(connInfo);
+        assertEquals("dataSource", connInfo.getDataSource());
+        
+        ConnectionProperties connProperties = connInfo.getConnectionProperties();
+        assertNull(connProperties);
+    }
+
+    public void testLoadCompositeUsingConnectionProperties() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(COMPOSITE_USING_CONNECTION_PROPERTIES));
+
+        DASArtifactProcessor dataProcessor = new DASArtifactProcessor(modelFactories);
+        
+        while(true) {
+            int event = reader.next();
+            if(event == XMLStreamConstants.START_ELEMENT && IMPLEMENTATION_DAS.equals(reader.getName())) {
+                break;
+            }
+        }
+
+        DASImplementation implementation = dataProcessor.read(reader);
+        
+        assertNotNull(implementation);
+        assertEquals("config.xml", implementation.getConfig());
+        assertEquals("rdb", implementation.getDataAccessType());
+
+        ConnectionInfo connInfo = implementation.getConnectionInfo();
+        assertNotNull(connInfo);
+        assertNull("dataSource", connInfo.getDataSource());
+        
+        ConnectionProperties connProperties = connInfo.getConnectionProperties();
+        assertNotNull(connProperties);
+        assertEquals("driverClass",connProperties.getDriverClass());
+        assertEquals("databaseURL",connProperties.getDatabaseURL());
+        assertEquals(1,connProperties.getLoginTimeout());
+    }    
+}

Propchange: incubator/tuscany/java/sca/modules/implementation-das/src/test/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessorTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/implementation-das/src/test/java/org/apache/tuscany/sca/implementation/das/DASArtifactProcessorTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/CompanyConfig.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/CompanyConfig.xml?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/CompanyConfig.xml (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/CompanyConfig.xml Wed Aug 29 13:05:06 2007
@@ -18,13 +18,6 @@
   under the License.
  -->
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"> 
-	
-	<ConnectionInfo>
-		<ConnectionProperties 
-			driverClass="org.apache.derby.jdbc.EmbeddedDriver" 
-			databaseURL="jdbc:derby:target/test-classes/dastest; create = true" 
-			loginTimeout="600000"/>
-	</ConnectionInfo>
     
     <Command name="getCompanies" SQL="select * from COMPANY" kind="Select"/>
     

Modified: incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/company.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/company.composite?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/company.composite (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/company.composite Wed Aug 29 13:05:06 2007
@@ -27,6 +27,13 @@
     </service>
 
     <component name="CompanyComponent">
-        <tuscany:implementation.das config="/CompanyConfig.xml" dataAccessType="rdb" />
+        <tuscany:implementation.das config="/CompanyConfig.xml" dataAccessType="rdb">
+        <tuscany:connectionInfo>
+			<tuscany:connectionProperties 
+				driverClass="org.apache.derby.jdbc.EmbeddedDriver"
+				databaseURL="jdbc:derby:target/test-classes/dastest; create = true" 
+				loginTimeout="600000"/>
+			</tuscany:connectionInfo>
+		</tuscany:implementation.das>
     </component>
 </composite>

Modified: incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/das.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/das.composite?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/das.composite (original)
+++ incubator/tuscany/java/sca/modules/implementation-das/src/test/resources/das.composite Wed Aug 29 13:05:06 2007
@@ -23,7 +23,13 @@
 	name="das">
 
     <component name="DASServiceComponent">
-        <tuscany:implementation.das config="/CompanyConfig.xml" dataAccessType="rdb" />
+        <tuscany:implementation.das config="/CompanyConfig.xml" dataAccessType="rdb">
+        <tuscany:connectionInfo>
+			<tuscany:connectionProperties 
+				driverClass="org.apache.derby.jdbc.EmbeddedDriver"
+				databaseURL="jdbc:derby:target/test-classes/dastest; create = true" 
+				loginTimeout="600000"/>
+			</tuscany:connectionInfo>
+		</tuscany:implementation.das>
     </component>
-
 </composite>

Modified: incubator/tuscany/java/sca/modules/implementation-data/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/pom.xml?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/pom.xml Wed Aug 29 13:05:06 2007
@@ -35,110 +35,101 @@
        </repository>
     </repositories>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.tuscany.das</groupId>
-            <artifactId>tuscany-das-rdb</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-            <scope>compile</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-assembly</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-core</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-interface</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>        
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-assembly-xml</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>        
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-contribution-impl</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>sca-api</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-databinding</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-implementation-java-runtime</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>  
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-binding-feed</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-            <scope>compile</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>                                      
-            <artifactId>junit</artifactId>
-            <version>3.8.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>2.2</version>
-            <scope>test</scope>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.derby</groupId>
-            <artifactId>derby</artifactId>
-            <version>10.1.2.1</version>
-            <scope>test</scope>
-        </dependency>      
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-http-tomcat</artifactId>
-            <version>1.0-incubating-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>        
-        
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
-            <scope>test</scope>            
-        </dependency>           
-    </dependencies>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.tuscany.das</groupId>
+			<artifactId>tuscany-das-rdb</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-assembly</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-core</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-interface</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-assembly-xml</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-contribution-impl</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>sca-api</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-databinding</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-implementation-java-runtime</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-host-embedded</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-data-engine-helper</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-binding-feed</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.tuscany.sca</groupId>
+			<artifactId>tuscany-http-tomcat</artifactId>
+			<version>1.0-incubating-SNAPSHOT</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.5</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>3.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.easymock</groupId>
+			<artifactId>easymock</artifactId>
+			<version>2.2</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.derby</groupId>
+			<artifactId>derby</artifactId>
+			<version>10.1.2.1</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
 
     <build>
        <finalName>${artifactId}</finalName>

Modified: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessor.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessor.java Wed Aug 29 13:05:06 2007
@@ -34,8 +34,8 @@
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.implementation.data.config.ConnectionInfo;
-import org.apache.tuscany.sca.implementation.data.config.ConnectionProperties;
+import org.apache.tuscany.sca.data.engine.ConnectionInfoArtifactProcessor;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
 
 
@@ -52,16 +52,17 @@
 public class DATAArtifactProcessor implements StAXArtifactProcessor<DATAImplementation> {
     protected static final QName IMPLEMENTATION_DATA = new QName(Constants.SCA10_TUSCANY_NS, "implementation.data");
     
-    private static final QName CONNECTION_INFO = new QName(Constants.SCA10_TUSCANY_NS, "connectionInfo");
-    private static final QName CONNECTION_PROPERTIES = new QName(Constants.SCA10_TUSCANY_NS, "connectionProperties");
-
-    
     private DATAImplementationFactory dataFactory;
     
+    private StAXArtifactProcessor connectionInfoProcessor;
+    
     public DATAArtifactProcessor(ModelFactoryExtensionPoint modelFactories) {
         AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         JavaInterfaceFactory javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
+        
         this.dataFactory = new DATAImplementationFactory(assemblyFactory, javaFactory);
+        
+        this.connectionInfoProcessor = new ConnectionInfoArtifactProcessor(modelFactories);
     }
 
     public QName getArtifactType() {
@@ -106,44 +107,9 @@
                 case START_ELEMENT:
                     QName element = reader.getName();
                     
-                    if (CONNECTION_INFO.equals(element)) {
-                        /* 
-                         *  <connectionInfo dataSource="jdbc:derby:target/test-classes/dastest; create = true"/>
-                         */
-                        String dataSource = reader.getAttributeValue(null, "datasource"); //exclusive with connection properties
-                        if (dataSource != null && dataSource.length() > 0) {
-                            ConnectionInfo connectionInfo = new ConnectionInfo();
-                            connectionInfo.setDataSource(dataSource);
-                            implementation.setConnectionInfo(connectionInfo);
-                        }
-                    
-                    } else if (CONNECTION_PROPERTIES.equals(element)) {
-                        /*
-                         * <connectionProperties 
-                         *  driverClass="org.apache.derby.jdbc.EmbeddedDriver" 
-                         *  databaseURL="jdbc:derby:target/test-classes/dastest; create = true"
-                         *  username=""
-                         *  password="" 
-                         *  loginTimeout="600000"/>
-                         */
-                        String driverClass = reader.getAttributeValue(null, "driverClass");
-                        String databaseURL = reader.getAttributeValue(null, "databaseURL");
-                        String username = reader.getAttributeValue(null, "username");
-                        String password = reader.getAttributeValue(null, "password");
-                        int loginTimeout = Integer.parseInt(reader.getAttributeValue(null, "loginTimeout"));
-
-                        //FIXME: validation sending info to monitor....
-                        ConnectionInfo connectionInfo = new ConnectionInfo();
-                        ConnectionProperties connectionProperties = new ConnectionProperties();
-                        connectionProperties.setDriverClass(driverClass);
-                        connectionProperties.setDatabaseURL(databaseURL);
-                        connectionProperties.setUsername(username);
-                        connectionProperties.setPassword(password);
-                        connectionProperties.setLoginTimeout(loginTimeout);
-
-                        connectionInfo.setConnectionProperties(connectionProperties);
-                        implementation.setConnectionInfo(connectionInfo);
-                    }
+                    // Read an extension element
+                    ConnectionInfo connectionInfo = (ConnectionInfo) connectionInfoProcessor.read(reader);;
+                    implementation.setConnectionInfo(connectionInfo);
 
                     break;
                 case XMLStreamConstants.END_ELEMENT:

Modified: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementation.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementation.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementation.java Wed Aug 29 13:05:06 2007
@@ -27,7 +27,7 @@
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.implementation.data.config.ConnectionInfo;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
 import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;

Modified: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProvider.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProvider.java Wed Aug 29 13:05:06 2007
@@ -19,8 +19,8 @@
 package org.apache.tuscany.sca.implementation.data;
 
 import org.apache.tuscany.das.rdb.DAS;
-import org.apache.tuscany.sca.implementation.data.das.DataAccessEngine;
-import org.apache.tuscany.sca.implementation.data.das.DataAccessEngineManager;
+import org.apache.tuscany.sca.data.engine.DataAccessEngine;
+import org.apache.tuscany.sca.data.engine.DataAccessEngineManager;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.provider.ImplementationProvider;
@@ -49,7 +49,7 @@
     public Invoker createInvoker(RuntimeComponentService service, Operation operation) {
         DAS das = null;
         try {
-            das = dataAccessEngineManager.getDAS(implementation.getConnectionInfo());
+            das = dataAccessEngineManager.getDAS(null, implementation.getConnectionInfo());
         } catch(Exception e) {
             e.printStackTrace();
             //what now ?
@@ -61,7 +61,7 @@
     public Invoker createCallbackInvoker(Operation operation) {
         DAS das = null;
         try {
-            das = dataAccessEngineManager.getDAS(implementation.getConnectionInfo());
+            das = dataAccessEngineManager.getDAS(null, implementation.getConnectionInfo());
         } catch(Exception e) {
             //what now ?
         }        

Modified: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAInvoker.java?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/DATAInvoker.java Wed Aug 29 13:05:06 2007
@@ -21,7 +21,7 @@
 
 import java.lang.reflect.InvocationTargetException;
 
-import org.apache.tuscany.sca.implementation.data.das.DataAccessEngine;
+import org.apache.tuscany.sca.data.engine.DataAccessEngine;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;

Copied: incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessorTestCase.java (from r570582, incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProcessorTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessorTestCase.java?p2=incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessorTestCase.java&p1=incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProcessorTestCase.java&r1=570582&r2=570915&rev=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAImplementationProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATAArtifactProcessorTestCase.java Wed Aug 29 13:05:06 2007
@@ -33,15 +33,15 @@
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.implementation.data.config.ConnectionInfo;
-import org.apache.tuscany.sca.implementation.data.config.ConnectionProperties;
+import org.apache.tuscany.sca.data.engine.config.ConnectionInfo;
+import org.apache.tuscany.sca.data.engine.config.ConnectionProperties;
 import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
 
 /**
  * @version $Rev: 538445 $ $Date: 2007-05-15 23:20:37 -0700 (Tue, 15 May 2007) $
  */
-public class DATAImplementationProcessorTestCase extends TestCase {
+public class DATAArtifactProcessorTestCase extends TestCase {
     
     protected static final QName IMPLEMENTATION_DATA = new QName(Constants.SCA10_TUSCANY_NS, "implementation.data");
 

Modified: incubator/tuscany/java/sca/modules/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/pom.xml?rev=570915&r1=570914&r2=570915&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/pom.xml Wed Aug 29 13:05:06 2007
@@ -74,6 +74,7 @@
                 <module>databinding-saxon</module>
 -->
                 <module>databinding-xmlbeans</module>
+                <module>data-engine-helper</module>
                 <!--
                 <module>discovery-jms</module>
                 -->



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org