You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ad...@apache.org on 2007/10/15 08:45:37 UTC
svn commit: r584695 - in /incubator/tuscany/cpp/das: VSExpress/tuscany_das/
VSExpress/tuscany_das/das_runtime/ runtime/core/include/apache/das/
runtime/core/include/apache/das/rdb/ runtime/core/src/apache/das/
runtime/core/src/apache/das/rdb/ runtime/t...
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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org