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;"$(TUSCANY_SDOCPP)\include";"$(LIBXML2_HOME)\include";"$(ICONV_HOME)\include"" 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]
