diff options
Diffstat (limited to 'branches/sca-trunk-20080910/itest/databindings/readme.html')
-rw-r--r-- | branches/sca-trunk-20080910/itest/databindings/readme.html | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/branches/sca-trunk-20080910/itest/databindings/readme.html b/branches/sca-trunk-20080910/itest/databindings/readme.html deleted file mode 100644 index 24a44e4ed7..0000000000 --- a/branches/sca-trunk-20080910/itest/databindings/readme.html +++ /dev/null @@ -1,157 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<!-- - * 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. ---> - -<html> -<head> - <meta http-equiv="Content-Type" content= - "text/html; charset=us-ascii"> - <meta http-equiv="Content-Style-Type" content="text/css"> - - <title>Tuscany SCA Integration Test Databindings</title> - <!-- LINK rel="stylesheet" href="ait.css" type="text/css" --> - <link rel="stylesheet" href="../../css/base.css" type="text/css"> -</head> - -<body> -<h3>Tuscany SCA Integation Test Databindings </h3> - -<h4>Overview</h4> - -<p> -This integration test tests the Tuscany SCA databinding implementation by passing various data structures -across various bindings using the supported databindings. There are tests for the individual databindings -which exercise various bindings with the same databinding at client and server ends of each binding. There -is also an integration test which exercises the transformer chains by specifying different databindings at -client and server ends of the binding. -</p> -<p> -In doing this testing it is apparent that there is a lot of repetition in creating client, services, idl and -type for each of the data types for each of the bindings for each of the databindings. To reduce the amount -of effort required to maintain the tests as new types, bindings and databindings are added the test cases -themselves are generated from configuration files. -</p> - -<h4>Test Structure</h4> - -Databindings/Common - hold files common across all tests <br/> -Databindings/Interop - test the transformer chains with combinations of databindings<br/> -Databindings/sdogen and jaxbgen - test each databindings independently<br/> - -<h4>Test Generation</h4> -<p> -To reduce the amount of manual effort involved in building and maintaining tests cases the test cases -themselves are generated at run time using a set of velocity templates. Each test module has a generate.xml -file in the resources/generate directory which tells the generator what to do. The file looks like this. -</p> -<img src="config.png"> -<p> -Each <Template> element describes a velocit template to use in the test. The generator process is to expand -each velocity template provided with all of the types specified in the <InputFile> sections. -</p> -<p> -Each <InputFile> element describes a schema file used in the test. It also contains a description of each -data type that will be tested. The generator then arranges for the databinding being tested to generate -appropriate Java classes to represent the type at runtime. The individual databinding tests use the following -flow. -</p> - -Create data object at client<br/> -Client passes data object to server<br/> -Server modifies data object<br/> -Server returns modified data object to client<br/> -Client tests that modified data object is as expected<br/> -<p> -Hence the CreateTypeCode, ModifyTypeCode and ResultComparison elements which contain the type specific code -that is used in the tests. -</p> - -<h4>The Common Directory</h4> -<p> -The common directory contains the information that is common across all of the tests. This includes the -common velocity templates and the source for the generator that reads the config.xml for each test. Common -also contains all of the data type schema as these are common across all tests. Each test pom is written so -that the contents of the common project are expanded into the tests target directory before the test starts. -In this way all of the common elements are available for the test generation phase and at test runtime. -</p> - -<h4>Individual Databinding Tests</h4> -<p> -The individual databinding tests, for example, sdogen and jaxbgen, are mostly empty as their content is -generated at runtime. The configuration and any test specific templates can be found in the resources/generate -directory. Some files are hand crafted for each test and live in their static position in the tests directory -structure. -</p> -<p> -Each test uses the same scenario -</p> -<img src="databinding.png"> -<p> -The interface exposed by the greeter service provides a greet method for each data type being tested, for -example, -</p> -<code> -PersonType greetPersonType(PersonType param);<br/> -AttributeComplexType greetAttributeComplexType(AttributeComplexType param);<br/> -AttributeReferenceComplexType greetAttributeReferenceComplexType(AttributeReferenceComplexType param);<br/> -</code> -<p> -These methods are taken from the SDO databinding test and hence PersonType, AttributeComplexType, etc. will -have been generated by the SDO static type generator. -</p> -<p> -Hence this tests a single databinding across a variety of data types and a variety of bindings. New bindings -be tested by extending the composite. Be datatypes can be tested by updating the confix.xml file. -</p> -<h4>Databinding Interoperability Tests</h4> -<p> -This test uses the generated client, services and types from the individual databinding tests. It does not -regenerate them and you will see a dependency in the interop test pom on the other databinding tests. Is also -has some generate elements because the composite file must currently have import statements for all of the -SDO factories required during tested. -</p> -<p> -The scenario used here is, -</p> -<img src="interop.png"> -<p> -A chain of components is built up for each binding. Each component, drawn from the the inidividual databinding -tests, tests the full range of datatypes. The client components are designed so that they can be chained together -and so tranformations across different databindings is tests. The service component simply changes the data -content and returns it as before. -</p> -<h4>Building And Running The Tests</h4> -<p> -The tests can be built by doing the following. -</p> -<code> -cd sca/itest/databindings <br/> -mvn -</code> -<p> -The only modification to this process is required if a new input file is added to the tests suite. In this -case you will need to edit the config.xml files as appropriate but run mvn twice. This may sound a little -odd but currently the sdo test uses its pom file to generate the require SDO types. As the test is self -generating the pom file will not be updated to include the new type file until the second time it's run. The -aim is at some point to remove this feature from the pom. -</p> - - -</body> -</html> |