SDO CTS (TUSCANY) edited by Amita Vadhavkar
      Page: http://cwiki.apache.org/confluence/display/TUSCANY/SDO+CTS
   Changes: 
http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=46768&originalVersion=11&revisedVersion=12






Content:
---------------------------------------------------------------------

{section:border=false}{column:width=15%}
{include: SDO Java Subproject Menu}{column}{column:width=85%}

{panel:title=Apache Tuscany SDO Community Test Suite 
|borderStyle=solid|borderColor=#6699ff|titleBGColor=#D5EFFF|bgColor=#ffffff}
* [What is SDO Community Test Suite (SDO CTS)|#Definition]
* [How to get involved? |#How to get involved?]
* [Obtaining and using the CTS|#Obtaining and using the CTS]
* [Running the CTS against Tuscany in Eclipse|#Run it]

\\
 
{panel}

h3. {anchor:Core Definition} What is SDO Community Test Suite (SDO CTS) 

The SDO CTS provides a set of test that exercise *any* SDO 2.1 implementation. 
The tests validate an SDO implementation behaves as expected, according to the 
community's understanding of the SDO specification.

The SDO CTS enables developers to choose or switch SDO implementations without 
the concern of having to re-code a significant proportion of their application 
due to differences between implementations. This community test suite is 
initially focuses on areas seen as important to developers of SDO applications.

Over time this will grow to include a larger proportion of the SDO 
specification according to the community's desire. The SDO CTS does not claim 
to be a validation or compliance suite, nor does it endorse any specific 
implementation.

If the SDO specification appears ambiguous or unclear then the community may 
decide what to do; it could decide to test the area with an agreed expected 
behavior, or decide not to test this area. Ambiguities will be fed back to the 
specification group for clarification.

h3. {anchor:How to get involved?} How to get involved?
SDO users feedback and involvement would be greatly appreciated. Tell us what 
is important to you, and if you can provide test cases.

Start by sending an email to the Tuscany Users <[EMAIL PROTECTED]> mailing 
list, if possible add a \[SDO CTS\] at the start of the subject line to make it 
easier to spot.

If you already have suitable test cases that you'd like to contribute, then go 
ahead and open an _improvement_ in [our tracking 
system|http://issues.apache.org/jira/browse/TUScany].

h3. {anchor:Obtaining and using the CTS} Obtaining and using the CTS

Currently the SDO CTS is only available in source form from the subversion 
repository. You will need the following:
* A [subversion|http://subversion.tigris.org/] client
* A [Maven 2|http://maven.apache.org] build environment.

The code can be downloaded from [the subversion 
repository|http://svn.apache.org/repos/asf/incubator/tuscany/java/cts/] using :
{code}
svn co http://svn.apache.org/repos/asf/incubator/tuscany/java/cts/
{code}

The SDO CTS project currently contains two sub-projects:
* cts/sdo2.1 contains the actual test cases
* cts/sdo2.1-tuscany executes the test cases against the current Tuscany 
Implementation

To build the CST and run it against the Tuscany implementation all you need to 
do is:
{code}
[EMAIL PROTECTED]:~$ cd cts
[EMAIL PROTECTED]:~/cts$  mvn
{code}
Note that some users report that 0 tests are executed when performing these 
instructions.  This is reported in Jira 
[TUSCANY-1249|https://issues.apache.org/jira/browse/TUSCANY-1249]. If you see 
these symptoms and have any insights please report them in the Jira.  An 
alternative means of running the tests is to run them from within the Eclipse 
platform as described below.

If you would like to execute the SDO CTS against a different implementation 
then you will need to provide a helper class. For more info on this see the 
[Contributing|Contributing to the SDO CTS] section.

h4. {anchor:Run it} Running the CTS against Tuscany in Eclipse

Within the Tuscany svn repository there are two distinct source code 
hierarchies related to the CTS.  The first,  under the directory sdo2.1 is the 
real community test suite,  and the second,  sdo2.1-tuscany is the code that 
Tuscany uses to exercise the CTS. Another SDO implementation wishing to use the 
CTS would need to produce code similar to the Tuscany specific code to run the 
CTS tests against itself.  It is important to maintain the separation of these 
two source hierarchies,  so that no Tuscany code leaks into the generic CTS 
code, otherwise other SDO implementations would see compile failures in the 
core CTS because of the absence of the Tuscany code from their environment.

If you are running and perhaps modifying the CTS in Eclipse then you can get 
help from Eclipse to ensure that this separation is maintained by setting up 
two Eclipse projects. By ensuring that there is a one way dependency of the 
Tuscany specific eclipse project on the CTS generic Eclipse project you will 
benefit from Eclipse signaling compile failures when an attempt is made to 
create an inappropriate dependency.

* In a command window in the root folder, issue the command "mvn" to compile 
the CTS artifacts and install them into your local maven repository
* Change directory to the sdo2.1 directory and issue the command "mvn 
eclipse:eclipse"
* Change directory to the sdo2.1-tuscany directory and issue the command "mvn 
eclipse:eclipse"
* Open eclipse and import the two projects into your existing workspace
** Switch to the Java perspective
** Execute "File => Import ... => General => Existing project into workspace
** Click "Browse ..." Navigate to the CTS/sdo2.1 directory and click OK
** Select the sdo2.1-cts project and click OK
* After Eclipse has built the project you may see that there are compile 
errors.  This is because Maven has created build dependencies for the project 
on the contents of your maven repository,  but Eclipse doesn't yet know where 
that repository is.  If you see this, you must create and assign a value to the 
M2_REPO variable within eclipse to resolve these dependencies
** Right click in the Package Explorer frame on the root of the newly created 
project and select Properties => Java Build Path
** Click on the "Libraries" tab and select "Add Variable...", "Configure 
Variables ...", "New ..."
** Set Name to M2_REPO and Click on "Folder..."
** Navigate to the "repository" folder/directory (on Windows this is \Documents 
and Settings\<user>\.m2\repository, on Linux it is ~/.m2/repository) and click 
OK
** Accept the request for doing a full rebuild
** Cancel away from the "Configure Variables" dialog
** Click "OK" on the Project Properties Window
** When building is complete the project should now have no errors
* Now you need to import the Tuscany specific CTS project in the same way, by 
navigating to the sdo2.1-tuscany folder and importing the sdo2.1-tuscany project
* Next,  add a dependency for the Tuscany specific Eclipse project on the 
generic CTS Eclipse project
** Right click on the sdo2.1-tuscany project in the Package Explorer frame of 
the Eclipse Java perspective, and select "Properties"
** Click on the "Java Build Path" option, and then the "Projects" tab
** Click "Add.." and select the sdo2.1-cts project (Note that if you are also 
developing the tuscany implementation then you may wish to also select your sdo 
implementation and api projects at this point)
** Click OK twice, and wait for the Eclipse compilation operation to complete
 
Now you can edit the CTS generic code, and the Tuscany harness, and any 
inadvertent attempt to introduce Tuscany dependencies on the generic CTS 
project will result in red flags from Eclipse due to compilation failures.

To execute the two main suites of tests in the CTS against Tuscany you must run 
either
* test.sdo21.vendor.tuscany.tests.AdoptedCtsTestSuite or
* test.sdo21.vendor.tuscany.tests.OptionalCtsTestSuite
in the Tuscany specific project.
{column}
{section}


---------------------------------------------------------------------
CONFLUENCE INFORMATION
This message is automatically generated by Confluence

Unsubscribe or edit your notifications preferences
   http://cwiki.apache.org/confluence/users/viewnotifications.action

If you think it was sent incorrectly contact one of the administrators
   http://cwiki.apache.org/confluence/administrators.action

If you want more information on Confluence, or have a bug to report see
   http://www.atlassian.com/software/confluence



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

Reply via email to