Author: adrianocrestani
Date: Sun Oct 14 23:45:35 2007
New Revision: 584695

URL: http://svn.apache.org/viewvc?rev=584695&view=rev
Log:
-added support to load a sql command from the config file

Added:
    
incubator/tuscany/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h
    
incubator/tuscany/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp
Modified:
    
incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.vcproj
    incubator/tuscany/cpp/das/VSExpress/tuscany_das/tuscany_das.suo
    incubator/tuscany/cpp/das/runtime/core/include/apache/das/DAS.h
    incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h
    incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h
    incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h
    incubator/tuscany/cpp/das/runtime/core/src/apache/das/DAS.cpp
    incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp
    incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp
    incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp
    incubator/tuscany/cpp/das/runtime/test/rsc/testCompositeRelationship.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testCreateOperation.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testDeleteOperation.xml
    
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml
    
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship1.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship2.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testModifyOperation.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testOCC1.xml
    incubator/tuscany/cpp/das/runtime/test/rsc/testOCC2.xml
    incubator/tuscany/cpp/das/runtime/test/src/main.cpp

Modified: 
incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.vcproj
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.vcproj?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.vcproj 
(original)
+++ 
incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.vcproj 
Sun Oct 14 23:45:35 2007
@@ -146,7 +146,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalOptions="/D_VC80_UPGRADE=0x0600 /c 
/nologo /EHsc /Zi /Od /Gd /D_DEBUG /MDd /GR /DWIN32 /D_CRT_SECURE_NO_DEPRECATE 
/D_CRT_NON_CONFORMING_SWPRINTF"
+                               AdditionalOptions="/D_VC80_UPGRADE=0x0600 /c 
/nologo /EHsc /Od /Gd /D_DEBUG /MDd /GR /DWIN32 /D_CRT_SECURE_NO_DEPRECATE 
/D_CRT_NON_CONFORMING_SWPRINTF"
                                Optimization="0"
                                
AdditionalIncludeDirectories="..\..\..\runtime\core\include;&quot;$(TUSCANY_SDOCPP)\include&quot;;&quot;$(LIBXML2_HOME)\include&quot;;&quot;$(ICONV_HOME)\include&quot;"
                                
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
@@ -222,6 +222,10 @@
                                        >
                                </File>
                                <File
+                                       
RelativePath="..\..\..\runtime\core\src\apache\das\DASCommandNotFoundException.cpp"
+                                       >
+                               </File>
+                               <File
                                        
RelativePath="..\..\..\runtime\core\src\apache\das\DASFactory.cpp"
                                        >
                                </File>
@@ -428,6 +432,10 @@
                                </File>
                                <File
                                        
RelativePath="..\..\..\runtime\core\include\apache\das\DAS.h"
+                                       >
+                               </File>
+                               <File
+                                       
RelativePath="..\..\..\runtime\core\include\apache\das\DASCommandNotFoundException.h"
                                        >
                                </File>
                                <File

Modified: incubator/tuscany/cpp/das/VSExpress/tuscany_das/tuscany_das.suo
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/VSExpress/tuscany_das/tuscany_das.suo?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/tuscany/cpp/das/runtime/core/include/apache/das/DAS.h
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/include/apache/das/DAS.h?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/include/apache/das/DAS.h (original)
+++ incubator/tuscany/cpp/das/runtime/core/include/apache/das/DAS.h Sun Oct 14 
23:45:35 2007
@@ -22,6 +22,7 @@
 
 #include "apache/das/DASFactory.h"
 #include "apache/das/Command.h"
+#include "apache/das/CommandPtr.h"
 
 #include "commonj/sdo/DataObject.h"
 
@@ -43,7 +44,7 @@
                virtual ~DAS(void);
 
                virtual const Config& getConfig(void) const = 0;
-
+               virtual CommandPtr getCommand(std::string commandName);
                virtual void applyChanges(commonj::sdo::DataObjectPtr root) = 0;
                
 };

Added: 
incubator/tuscany/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h?rev=584695&view=auto
==============================================================================
--- 
incubator/tuscany/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h
 (added)
+++ 
incubator/tuscany/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h
 Sun Oct 14 23:45:35 2007
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
+
+#ifndef DAS_COMMAND_NOT_FOUND_EXCEPTION_H
+#define DAS_COMMAND_NOT_FOUND_EXCEPTION_H
+
+#include <stdexcept>
+
+namespace apache {
+       namespace das {
+
+class DASCommandNotFoundException : public std::exception {
+
+       public:
+               DASCommandNotFoundException(std::string message  = "");
+               virtual ~DASCommandNotFoundException(void);
+
+};
+
+       };
+};
+
+#endif //DAS_COMMAND_NOT_FOUND_EXCEPTION_H

Modified: 
incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h 
(original)
+++ incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h 
Sun Oct 14 23:45:35 2007
@@ -42,7 +42,7 @@
        public:
                CommandImpl(DASImpl& das, std::string sqlString);
                virtual ~CommandImpl(void);
-               virtual commonj::sdo::DataObjectPtr executeQuery(void) = 0;
+               virtual commonj::sdo::DataObjectPtr executeQuery(void);
                virtual DASImpl& getDAS(void);
                virtual void close(void);
 

Modified: 
incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h 
(original)
+++ incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h 
Sun Oct 14 23:45:35 2007
@@ -31,6 +31,7 @@
 
 #include "apache/das/Config.h"
 #include "apache/das/SDODataObjectWrapper.h"
+#include "apache/das/DASCommandNotFoundException.h"
 #include "apache/das/DAS.h"
 #include "apache/das/rdb/Table.h"
 #include "apache/das/rdb/Column.h"
@@ -52,6 +53,7 @@
                std::map<std::string, const Relationship*>* relationships;
                std::map<std::string, const Table*>* tables;
                bool convOverConfig;
+               std::map<std::string, std::string> commands;
 
                Table& newTable(Table& table);
                Relationship& newRelationship(Relationship& relationship);
@@ -70,6 +72,7 @@
                const std::map<std::string, Relationship*>& 
getRelationships(void) const;
                const std::map<std::string, Table*>& getTables(void) const;
                const Table* getTableByTypeName(std::string typeName) const;
+               std::string getCommand(std::string commandName) const;
 
                DAS& getDAS(void) const;
                bool isConvOverConfig(void) const;

Modified: 
incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h 
(original)
+++ incubator/tuscany/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h Sun 
Oct 14 23:45:35 2007
@@ -68,6 +68,7 @@
                CommandPtr createCommand(std::string sql);
                void closeConnection(void);
                void applyChanges(commonj::sdo::DataObjectPtr root);
+               CommandPtr getCommand(std::string commandName);
                
 };
 

Modified: incubator/tuscany/cpp/das/runtime/core/src/apache/das/DAS.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/src/apache/das/DAS.cpp?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/src/apache/das/DAS.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/core/src/apache/das/DAS.cpp Sun Oct 14 
23:45:35 2007
@@ -32,5 +32,7 @@
 
 DAS::~DAS(void) {}
 
+CommandPtr DAS::getCommand(std::string commandName) { return CommandPtr(0); }
+
        };
 };

Added: 
incubator/tuscany/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp?rev=584695&view=auto
==============================================================================
--- 
incubator/tuscany/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp
 (added)
+++ 
incubator/tuscany/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp
 Sun Oct 14 23:45:35 2007
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+#include "apache/das/DASCommandNotFoundException.h"
+
+namespace apache {
+       namespace das {
+
+DASCommandNotFoundException::DASCommandNotFoundException(std::string message) 
: std::exception(message.c_str()) {}
+
+DASCommandNotFoundException::~DASCommandNotFoundException(void) {}
+
+       };
+};

Modified: 
incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp 
(original)
+++ incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp 
Sun Oct 14 23:45:35 2007
@@ -51,6 +51,13 @@
        return *das;
 }
 
+commonj::sdo::DataObjectPtr CommandImpl::executeQuery(void) {
+       statement->executeQuery(sql);
+
+       return commonj::sdo::DataObjectPtr(0);
+
+}
+
 void CommandImpl::close(void) {
        statement->close();
 }

Modified: 
incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp 
(original)
+++ incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp 
Sun Oct 14 23:45:35 2007
@@ -87,6 +87,9 @@
        dataFactory->addPropertyToType(config, "Command", command, true, false, 
true);
        dataFactory->addPropertyToType(config, "uri", SDO_NAMESPACE, "String", 
false, false, true);
        dataFactory->setDefault(SDO_NAMESPACE, "String", "uri", "");
+
+       dataFactory->addPropertyToType(command, "name", SDO_NAMESPACE, 
"String", false, false, true);
+       dataFactory->addPropertyToType(command, "SQL", SDO_NAMESPACE, "String", 
false, false, true);
        
        dataFactory->addPropertyToType(relationship, "KeyPair", keyPair, true, 
false, true);
        dataFactory->addPropertyToType(relationship, "name", SDO_NAMESPACE, 
"String", false, false, true);
@@ -176,6 +179,16 @@
 
        }
 
+       commonj::sdo::DataObjectList& commandList = root->getList("Command");
+
+       for (unsigned int i = 0 ; i < commandList.size() ; i++) {
+               std::string name = 
SDODataObjectWrapper(commandList[i]).getString("name");
+               std::string sql = 
SDODataObjectWrapper(commandList[i]).getString("SQL");
+               
+               commands.insert(std::make_pair(name, sql));
+
+       }
+
        setURI(StringWrapper(root, "uri").getString());
 
 }
@@ -197,6 +210,17 @@
 
        delete relationships;
        delete tables;
+
+}
+
+std::string ConfigImpl::getCommand(std::string commandName) const {
+       std::map<std::string, std::string>::const_iterator it = 
commands.find(commandName);
+
+       if (it == commands.end()) {
+               throw DASCommandNotFoundException();
+       }
+
+       return it->second;
 
 }
 

Modified: incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp 
(original)
+++ incubator/tuscany/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp Sun 
Oct 14 23:45:35 2007
@@ -86,6 +86,13 @@
        closeConnection();
 }
 
+CommandPtr DASImpl::getCommand(std::string commandName) {
+       std::string commandSQL = config->getCommand(commandName);
+
+       return createCommand(commandSQL);
+
+}
+
 CommandPtr DASImpl::createCommand(std::string sql) {
        CommandPtr command = 0;
     //trim(inSql);
@@ -95,6 +102,9 @@
         case 'S':
             command = new ReadCommandImpl(*this, sql);
             break;
+
+               default :
+                       command = new CommandImpl(*this, sql);
                
     }
 

Modified: 
incubator/tuscany/cpp/das/runtime/test/rsc/testCompositeRelationship.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testCompositeRelationship.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testCompositeRelationship.xml 
(original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testCompositeRelationship.xml 
Sun Oct 14 23:45:35 2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.composite.relationship"> 
 
+       <Command name="get composite relationship" SQL="SELECT department.id, 
department.name, employee.id, employee.department_id, employee.department_name 
FROM department, employee;"/>
+
        <Table tableName="department">
        <Column sqlType="integer" columnName="id" primaryKey="true"/>
                <Column sqlType="varchar" columnName="name" primaryKey="true"/>

Modified: incubator/tuscany/cpp/das/runtime/test/rsc/testCreateOperation.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testCreateOperation.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testCreateOperation.xml 
(original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testCreateOperation.xml Sun Oct 
14 23:45:35 2007
@@ -20,6 +20,7 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.create.operation"> > 
 
+       <Command name="get all tables" SQL="SELECT * FROM company, department, 
employee;"/>
 
        <Table tableName="Department">
                <Column columnName="id" sqlType="integer" primaryKey="true"/>

Modified: incubator/tuscany/cpp/das/runtime/test/rsc/testDeleteOperation.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testDeleteOperation.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testDeleteOperation.xml 
(original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testDeleteOperation.xml Sun Oct 
14 23:45:35 2007
@@ -20,6 +20,7 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.delete.operation"> 
 
+       <Command name="get all tables" SQL="SELECT * FROM company, department, 
employee;"/>
 
        <Table tableName="Department">
                <Column columnName="id" sqlType="integer" primaryKey="true"/>

Modified: 
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml
 (original)
+++ 
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml
 Sun Oct 14 23:45:35 2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.incomplete.composite.relationship.one"> 
 
+       <Command name="get incomplete relationship" SQL="SELECT department.id, 
department.name, employee.id, employee.department_id FROM department, 
employee;"/>
+
        <Table tableName="department">
        <Column sqlType="integer" columnName="id" primaryKey="true"/>
                <Column sqlType="varchar" columnName="name" primaryKey="true"/>

Modified: 
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml
 (original)
+++ 
incubator/tuscany/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml
 Sun Oct 14 23:45:35 2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.incomplete.composite.relationship.two"> 
 
+       <Command name="get incomplete relationship" SQL="SELECT department.id, 
department.name, employee.id, employee.department_id, employee.department_name 
FROM department, employee;"/>
+
        <Table tableName="department">
        <Column sqlType="varchar" columnName="name" primaryKey="true"/>
        </Table>

Modified: 
incubator/tuscany/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml 
(original)
+++ 
incubator/tuscany/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml 
Sun Oct 14 23:45:35 2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.key.pair.column.type.not.equal"> 
 
+       <Command name="get all employees and departments" SQL="SELECT * FROM 
department, employee;"/>
+
        <Table tableName="department">
        <Column sqlType="integer" columnName="id" primaryKey="true"/>
        </Table>

Modified: incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship1.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship1.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship1.xml 
(original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship1.xml Sun 
Oct 14 23:45:35 2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.many.relationship.one"> 
 
+       <Command name="get company 1 and its departments" SQL="SELECT * FROM 
company, department where company.id = 1;"/>
+
        <Relationship primaryKeyTable="company" foreignKeyTable="department" 
many="true">
        <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
        </Relationship>

Modified: incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship2.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship2.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship2.xml 
(original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testManyRelationship2.xml Sun 
Oct 14 23:45:35 2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.many.relationship.two"> 
 
+       <Command name="get company 1 and its departments" SQL="SELECT * FROM 
company, department where company.id = 1;"/>
+
        <Relationship primaryKeyTable="company" foreignKeyTable="department" 
many="false">
        <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
        </Relationship>

Modified: incubator/tuscany/cpp/das/runtime/test/rsc/testModifyOperation.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testModifyOperation.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testModifyOperation.xml 
(original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testModifyOperation.xml Sun Oct 
14 23:45:35 2007
@@ -20,6 +20,7 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; 
uri="test.modify.operation"> 
 
+       <Command name="get all tables" SQL="SELECT * FROM company, department, 
employee;"/>
 
        <Table tableName="Department">
                <Column columnName="id" sqlType="integer" primaryKey="true"/>

Modified: incubator/tuscany/cpp/das/runtime/test/rsc/testOCC1.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testOCC1.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testOCC1.xml (original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testOCC1.xml Sun Oct 14 23:45:35 
2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; uri="test.occ"> 
 
+       <Command name="get all companies" SQL="SELECT * FROM company;"/>
+
        <Table tableName="Department">
                <Column columnName="id" sqlType="integer" primaryKey="true"/>
                <Column columnName="name" sqlType="varchar" primaryKey="true"/>

Modified: incubator/tuscany/cpp/das/runtime/test/rsc/testOCC2.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/rsc/testOCC2.xml?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/rsc/testOCC2.xml (original)
+++ incubator/tuscany/cpp/das/runtime/test/rsc/testOCC2.xml Sun Oct 14 23:45:35 
2007
@@ -20,6 +20,8 @@
 
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"; uri="test.occ"> 
 
+       <Command name="get all companies" SQL="SELECT * FROM company;"/>
+
        <Table tableName="Department">
                <Column columnName="id" sqlType="integer" primaryKey="true"/>
                <Column columnName="name" sqlType="varchar" primaryKey="true"/>

Modified: incubator/tuscany/cpp/das/runtime/test/src/main.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/src/main.cpp?rev=584695&r1=584694&r2=584695&view=diff
==============================================================================
--- incubator/tuscany/cpp/das/runtime/test/src/main.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/test/src/main.cpp Sun Oct 14 23:45:35 2007
@@ -69,38 +69,6 @@
                                                                        "insert 
into employee values (4, 'ema', 2, 'department2')",
                                                                        "insert 
into employee values (5, 'james', 2, 'department2')"
                                                                };
-//delete from employee;
-//delete from department;
-//delete from company;
-//
-//drop table employee;
-//drop table department;
-//drop table company;
-//
-//create table company ( id int not null, name varchar(20), primary key(id) );
-//
-//create table department ( id int not null, name varchar(20) not null, 
company_id int, foreign key (company_id) references company (id), primary 
key(id, name) );
-//
-//create table employee ( id int not null, name varchar(20), department_id 
int, department_name varchar(20), primary key(id) );
-//
-//insert into company values (1, 'apache');
-//insert into company values (2, 'acme');
-//insert into company values (3, 'google');
-//insert into company values (4, 'ibm');
-//insert into company values (5, 'yahoo');
-//
-//insert into department values (1, 'department1', 1);
-//insert into department values (2, 'department1', 1);
-//insert into department values (3, 'department2', 2);
-//insert into department values (4, 'department5', 2);
-//insert into department values (5, 'department3', 3);
-//insert into department values (6, 'department6', 3);
-//
-//insert into employee values (1, 'adriano', 1, 'department1');
-//insert into employee values (2, 'paul', 1, 'department1');
-//insert into employee values (3, 'richard', 1, 'department1');
-//insert into employee values (4, 'ema', 2, 'department2');
-//insert into employee values (5, 'james', 2, 'department2');
 
 Connection* getConnection() {
        char* tuscanyDASCPPPath = getenv("TUSCANY_DASCPP");
@@ -260,8 +228,7 @@
 
                DASImpl* das = (DASImpl*) 
DASImpl::getFACTORY().createDAS(config, *conn);
                
-               CommandPtr command = das->createCommand(
-                       "SELECT department.id, department.name, employee.id, 
employee.department_id FROM department, employee;");
+               CommandPtr command = das->getCommand("get incomplete 
relationship");
 
                commonj::sdo::DataObjectPtr root = command->executeQuery();
 
@@ -281,8 +248,7 @@
                
                DASImpl* das = (DASImpl*) 
DASImpl::getFACTORY().createDAS(config, *conn);
 
-               CommandPtr command = das->createCommand(
-                       "SELECT department.id, department.name, employee.id, 
employee.department_id, employee.department_name FROM department, employee;");
+               CommandPtr command = das->getCommand("get incomplete 
relationship");
 
                commonj::sdo::DataObjectPtr root = command->executeQuery();
 
@@ -311,8 +277,7 @@
        
        DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, 
*conn);
 
-       CommandPtr command = das->createCommand(
-               "SELECT department.id, department.name, employee.id, 
employee.department_id, employee.department_name FROM department, employee;");
+       CommandPtr command = das->getCommand("get composite relationship");
 
        commonj::sdo::DataObjectPtr root = command->executeQuery();
 
@@ -345,8 +310,7 @@
        Connection* conn = getConnection();
        DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(*conn);
        
-       CommandPtr command = das->createCommand(
-               "SELECT * FROM department, company;");
+       CommandPtr command = das->createCommand("SELECT * FROM department, 
company;");
 
        commonj::sdo::DataObjectPtr root = command->executeQuery();
 
@@ -372,7 +336,7 @@
        Connection* conn = getConnection();
        ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testKeyPairColumnTypeNotEqual.xml");
        DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, 
*conn);
-       CommandPtr command = das->createCommand("SELECT * FROM department, 
employee;");
+       CommandPtr command = das->getCommand("get all employees and 
departments");
        commonj::sdo::DataObjectPtr root = command->executeQuery();
 
        cout << "relationship ignored when keypair types are not equal = ";
@@ -418,7 +382,7 @@
 
        ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testDeleteOperation.xml");
        DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, 
*conn);
-       CommandPtr command = das->createCommand("SELECT * FROM company, 
department, employee;");
+       CommandPtr command = das->getCommand("get all tables");
        commonj::sdo::DataObjectPtr root = command->executeQuery();
 
        
root->getDataObject("company[1]")->getDataObject("department[1]")->detach();
@@ -430,7 +394,6 @@
 
        das->applyChanges(root);
 
-       command = das->createCommand("SELECT * FROM company, department, 
employee;");
        root = command->executeQuery();
 
        commonj::sdo::DataObjectList& companies = root->getList("company");
@@ -462,7 +425,7 @@
        Connection* conn = getConnection();
        ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testCreateOperation.xml");
        DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, 
*conn);
-       CommandPtr command = das->createCommand("SELECT * FROM company, 
department, employee;");
+       CommandPtr command = das->getCommand("get all tables");
        commonj::sdo::DataObjectPtr root = command->executeQuery();
 
        commonj::sdo::DataObjectPtr company = root->createDataObject("company");
@@ -481,27 +444,22 @@
        StringWrapper("juan").defineOnDataObject(employee, "name");
        employee->setInt("id", 38);
        department->getList("employee").append(employee);
-
-       //cout << "Company with id " << removedCompanyID << " deleted on 
database: ";
-
+       
        das->applyChanges(root);
 
-       command = das->createCommand("SELECT * FROM company, department, 
employee;");
        root = command->executeQuery();
 
        commonj::sdo::DataObjectList& departments = root->getList("department");
        bool failed = true;
        for (unsigned int i = 0 ; i < departments.size() ; i++) {
                
-               if (departments[i]->getInt("id") == 39 && 
StringWrapper(departments[i], "name").getString() == "department40") {
-                       if 
(departments[i]->getDataObject("employee[1]")->getInt("id") == 38) {
-                       if 
(StringWrapper(departments[i]->getDataObject("employee[1]"), 
"name").getString() == "juan") {
-
-                       failed = false;
-                       break;
-                       }
-                       }
+               if (departments[i]->getInt("id") == 39 && 
StringWrapper(departments[i], "name").getString() == "department40"
+                       && 
departments[i]->getDataObject("employee[1]")->getInt("id") == 38
+                       && 
StringWrapper(departments[i]->getDataObject("employee[1]"), "name").getString() 
== "juan") {
 
+                               failed = false;
+                               break;
+               
                }
 
        }
@@ -545,187 +503,7 @@
 
 }
 
-void test() {
-
-       /*Connection* conn = getConnection();
-       ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testDeleteOperation.xml");
-       DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, 
*conn);
-       CommandPtr command = das->createCommand("SELECT * FROM company, 
department, employee;");
-       commonj::sdo::DataObjectPtr root = command->executeQuery();
-
-       commonj::sdo::DataObjectPtr company1 = 
root->getDataObject("company[1]");
-       commonj::sdo::DataObjectPtr company2 = 
root->getDataObject("company[1]");
-       
-       department = company1->getList("department").remove(0);
-       company2->getList("department").append(department);
-
-       commonj::sdo::ChangeSummaryPtr csummary = root->getChangeSummary();
-       
-       commonj::sdo::SettingList& settings = csummary->getOldValues();
-
-       
-       das->applyChanges(root);
-
-       delete conn;*/
-
-       commonj::sdo::DataFactoryPtr mdg  = 
commonj::sdo::DataFactory::getDataFactory();
-
-    mdg->addType("apache.tuscany.das", "Root");
-       mdg->addType("apache.tuscany.das", "company");
-       mdg->addType("apache.tuscany.das", "department");
-       mdg->addType("apache.tuscany.das", "employee");
-
-       const commonj::sdo::Type& rootType = mdg->getType("apache.tuscany.das", 
"Root");
-       const commonj::sdo::Type& companyType = 
mdg->getType("apache.tuscany.das", "company");
-       const commonj::sdo::Type& departmentType = 
mdg->getType("apache.tuscany.das", "department");
-       const commonj::sdo::Type& employeeType = 
mdg->getType("apache.tuscany.das", "employee");
-       
-       mdg->addPropertyToType("apache.tuscany.das", "Root", "ChangeSummary", 
"commonj.sdo", "ChangeSummary", false, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "Root", "company", 
"apache.tuscany.das", "company", true, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "Root", "employee", 
"apache.tuscany.das", "employee", true, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "Root", "department", 
"apache.tuscany.das", "department", true, false, true);
-
-       mdg->addPropertyToType("apache.tuscany.das", "company", "id", 
"commonj.sdo", "Integer", false, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "company", "name", 
"commonj.sdo", "String", false, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "company", "department", 
"apache.tuscany.das", "department", true, false, false);
-
-       mdg->addPropertyToType("apache.tuscany.das", "department", "id", 
"commonj.sdo", "Integer", false, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "department", "name", 
"commonj.sdo", "String", false, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "department", "employee", 
"apache.tuscany.das", "employee", true, false, false);
-
-       mdg->addPropertyToType("apache.tuscany.das", "employee", "id", 
"commonj.sdo", "Integer", false, false, true);
-       mdg->addPropertyToType("apache.tuscany.das", "employee", "name", 
"commonj.sdo", "String", false, false, true);
-       
-       std::wstring waux;
-       commonj::sdo::DataObjectPtr root = mdg->create(rootType);
-
-       commonj::sdo::DataObjectPtr company1 = 
root->createDataObject("company");
-       company1->setInt("id", 1);
-       waux = L"apache";
-       company1->setString("name", waux.c_str(), waux.length());
-       
-       commonj::sdo::DataObjectPtr company2 = 
root->createDataObject("company");
-       company2->setInt("id", 2);
-       waux = L"acme";
-       company2->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr company3 = 
root->createDataObject("company");
-       company3->setInt("id", 3);
-       waux = L"google";
-       company3->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr company4 = 
root->createDataObject("company");
-       company1->setInt("id", 4);
-       waux = L"ibm";
-       company4->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr company5 = 
root->createDataObject("company");
-       company5->setInt("id", 5);
-       waux = L"yahoo";
-       company5->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr depart1 = 
root->createDataObject("department");
-       depart1->setInt("id", 1);
-       waux = L"department1";
-       depart1->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr depart2 = 
root->createDataObject("department");
-       depart2->setInt("id", 2);
-       waux = L"department1";
-       depart2->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr depart3 = 
root->createDataObject("department");
-       depart3->setInt("id", 3);
-       waux = L"department2";
-       depart3->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr depart4 = 
root->createDataObject("department");
-       depart4->setInt("id", 4);
-       waux = L"department5";
-       depart4->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr depart5 = 
root->createDataObject("department");
-       depart5->setInt("id", 5);
-       waux = L"department3";
-       depart5->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr depart6 = 
root->createDataObject("department");
-       depart6->setInt("id", 6);
-       waux = L"department6";
-       depart6->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr employee1 = 
root->createDataObject("employee");
-       employee1->setInt("id", 1);
-       waux = L"adriano";
-       employee1->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr employee2 = 
root->createDataObject("employee");
-       employee2->setInt("id", 2);
-       waux = L"paul";
-       employee2->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr employee3 = 
root->createDataObject("employee");
-       employee3->setInt("id", 3);
-       waux = L"richard";
-       employee3->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr employee4 = 
root->createDataObject("employee");
-       employee4->setInt("id", 4);
-       waux = L"ema";
-       employee4->setString("name", waux.c_str(), waux.length());
-
-       commonj::sdo::DataObjectPtr employee5 = 
root->createDataObject("employee");
-       employee5->setInt("id", 5);
-       waux = L"james";
-       employee5->setString("name", waux.c_str(), waux.length());
-
-       company1->getList("department").append(depart1);
-       company1->getList("department").append(depart2);
-
-       company2->getList("department").append(depart3);
-       company2->getList("department").append(depart4);
-
-       company3->getList("department").append(depart5);
-       company3->getList("department").append(depart6);
-
-       depart1->getList("employee").append(employee1);
-       depart1->getList("employee").append(employee2);
-       depart1->getList("employee").append(employee3);
-
-       root->getChangeSummary()->beginLogging();
-
-       commonj::sdo::DataObjectPtr department = 
company1->getList("department").remove(0);
-
-       cout << "removed department:" << endl;
-       department->printSelf(cout);
-
-       company2->getList("department").append(department);
-
-       commonj::sdo::SettingList& settings = 
root->getChangeSummary()->getOldValues(company1); 
-
-       for (unsigned int i = 0 ; i < settings.size() ; i++) {
-
-               if ((std::string) settings[i].getProperty().getName() == 
"department") {
-                       settings[i].getDataObjectValue()->printSelf(cout);
-               }
-
-       }
-
-}
-
-void printCompany(commonj::sdo::DataObjectPtr company) {
-       cout << "----------------------" << endl;
-       company->printSelf(cout);
-
-       commonj::sdo::DataObjectList& departments = 
company->getList("department");
-
-       for (unsigned int i = 0 ; i < departments.size() ; i++) {
-               departments[i]->printSelf(cout);
-       }
-
-       cout << "----------------------" << endl << endl;
-
-}
+//
 
 void testMofidyOperation() {
        cout << "-------------testMofidyOperation--------------" << endl;
@@ -733,7 +511,7 @@
        Connection* conn = getConnection();
        ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testModifyOperation.xml");
        DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, 
*conn);
-       CommandPtr command = das->createCommand("SELECT * FROM company, 
department, employee;");
+       CommandPtr command = das->getCommand("get all tables");
        commonj::sdo::DataObjectPtr root = command->executeQuery();
 
        commonj::sdo::DataObjectPtr company1 = 
root->getDataObject("company[1]");
@@ -809,7 +587,7 @@
        {
                ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testOCC1.xml");
                DASImpl* das = (DASImpl*) 
DASImpl::getFACTORY().createDAS(config, *conn);
-               CommandPtr command = das->createCommand("SELECT * FROM 
company;");
+               CommandPtr command = das->getCommand("get all companies");
                commonj::sdo::DataObjectPtr root1 = command->executeQuery();
                commonj::sdo::DataObjectPtr root2 = command->executeQuery();
 
@@ -819,7 +597,6 @@
 
                das->applyChanges(root1);
 
-               command = das->createCommand("SELECT * FROM company;");
                root1 = command->executeQuery();
 
                cout << "OCC field incremented after changes applied: ";
@@ -850,7 +627,7 @@
        {
                ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testOCC2.xml");
                DASImpl* das = (DASImpl*) 
DASImpl::getFACTORY().createDAS(config, *conn);
-               CommandPtr command = das->createCommand("SELECT * FROM 
company;");
+               CommandPtr command = das->getCommand("get all companies");
                commonj::sdo::DataObjectPtr root = command->executeQuery();
                
                commonj::sdo::DataObjectPtr company = 
root->getDataObject("company[id=1]");
@@ -859,7 +636,6 @@
                
                das->applyChanges(root);
 
-               command = das->createCommand("SELECT * FROM company;");
                root = command->executeQuery();
 
                cout << "OCC field not incremented when it's not managed by 
DAS: ";
@@ -886,7 +662,7 @@
        {
                ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testManyRelationship1.xml");
                DASImpl* das = (DASImpl*) 
DASImpl::getFACTORY().createDAS(config, *conn);
-               CommandPtr command = das->createCommand("SELECT * FROM company, 
department where company.id = 1;");
+               CommandPtr command = das->getCommand("get company 1 and its 
departments");
                commonj::sdo::DataObjectPtr root = command->executeQuery();
 
                cout << "reference created as many on data graph = ";
@@ -908,7 +684,7 @@
        {
                ConfigImpl config((std::string) TEST_RESOURCE_PATH + 
"testManyRelationship2.xml");
                DASImpl* das = (DASImpl*) 
DASImpl::getFACTORY().createDAS(config, *conn);
-               CommandPtr command = das->createCommand("SELECT * FROM company, 
department where company.id = 1;");
+               CommandPtr command = das->getCommand("get company 1 and its 
departments");
                commonj::sdo::DataObjectPtr root = command->executeQuery();
 
                cout << "reference created as not many on data graph = ";



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to