| Title: ComplianceTesting |
| |
| <a name="ComplianceTesting-Runningthetests"></a> |
| ## Enterprise OSGi Compliance Tests |
| |
| The Enterprise OSGi compliance tests are provided byt the [OSGi Alliance](http://www.osgi.org) |
| to Apache committers who have signed the appropriate Non Disclosure |
| Agreement. |
| |
| The tests are supplied with the BND configuration files used to run the |
| tests against the OSGi implementation of the Enterprise Specification. The |
| configuration files require some modification to run the tests against |
| Aries components. |
| |
| Instructions for obtaining and running the tests are given [here](http://felix.apache.org/site/using-the-osgi-compliance-tests.html), or see below. |
| |
| <a name="ComplianceTesting-Testresults"></a> |
| ## Test results |
| |
| At each Aries release the tests are run against Aries components. The |
| results for the most recent release can be found [here](/downloads/testresults.html) |
| . |
| <a name="ComplianceTesting-Runningthetests"></a> |
| ## How to run the tests for Aries components |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-Legalstuff"></a> |
| ### Legal stuff |
| Complete an Apache [Non Disclosure Agreement](http://apache.org/jcp/ApacheNDA.pdf) |
| and email it to secretary@apache.org |
| |
| Write a note to jcp-open@apache.org with the subject "OSGi CT access" which |
| contains (something like) the following text: |
| |
| "I'm a committer on the Apache Aries project and would like access to |
| the OSGi CT. I've submitted an NDA." |
| |
| Note: You should subscribe to jcp-open@apache.org first. If you don't your |
| note will languish in 'moderation' forever :-) |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-Getthetests"></a> |
| ### Get the tests |
| |
| Anyone with an NDA on file should be able to get access to the tests [here ](https://svn.apache.org/repos/tck/osgi-cts/) |
| . |
| |
| The group of tests that are required for Aries is called |
| osgi.enterprise.tests. Download the jar for the appropriate level - |
| currently 4.2.0. |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-Runningthetests"></a> |
| ### Running the tests |
| Extract the jar into a test directory, say ~/AriesTests. After you have |
| extracted the file you will find: |
| |
| * A subdirectory call 'jar' which contains all the tests |
| * A set of *.bnd files which are used to run the tests |
| |
| The tests are run using bnd, the command line used to run a set of tests |
| looks like this: |
| |
| |
| java -jar jar/bnd.jar runtests -title osgi.ct |
| org.osgi.test.cases.blueprint.bnd |
| |
| |
| The command above would, for example, run the blueprint tests. |
| |
| Before running the tests it will be necessary to make some changes to the |
| bnd files, to download some additional pre-reqs and to assemble the aries |
| components to be tested. The [Felix](http://felix.apache.org/site/using-the-osgi-compliance-tests.html) |
| pages give a good indication of what is necessary. |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-Debuggingthetests"></a> |
| ### Debugging the tests |
| |
| If you want to debug the code then you need to add the following line to |
| the .bnd file: |
| |
| |
| -runvm=-Xdebug,"-Xrunjdwp:transport=dt_socket,server=y,address=localhost:7777" |
| |
| |
| You can change 7777 to any number you want. |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-Modifyingthebndfiles"></a> |
| ### Modifying the bnd files |
| <a name="HowtoruntheOSGiEnterpriseCT-General"></a> |
| #### General |
| |
| First, it is necessary to add a couple of lines, like this: |
| |
| |
| -runpath = \ |
| commonjars/osgi-3.5.0.v20090520.jar;version=file, \ |
| |
| commonjars/com.springsource.junit-3.8.2.jar;version=file;export="junit.framework;version=3.8", |
| |
| |
| Secondly, if you are using the Eclipse Framework, it is necessary to remove |
| the line |
| |
| osgi.resolverMode="strict", \ |
| |
| from the 'runproperties' section. |
| |
| It's convenient (but not necessary) to keep the the jars required to run |
| the test jars and the code being tested in separate subdirectories. Create: |
| |
| * commonjars - any common dependencies, eg pax-logging |
| * ariesjars - the aries code to be tested |
| |
| |
| The easiest way to find most of the aries jars and their dependencies is to |
| copy every aries jar in the ~/samples/blog/blog-assembly/target folder into |
| ariesjars and every non-aries jar from the same directory into |
| 'commonjars'. |
| |
| The *.bnd files that are used to run the tests assume that the person |
| running the tests has access to org.osgi.impl* jars. In general this is not |
| the case - so wherever an org.osgi.impl* jar has been used it must be |
| replaced with an equivalent implementation. Such implementations can |
| usually be found in either [Felix](http://felix.apache.org/site/downloads.cgi), [Equinox](http://download.eclipse.org/equinox/) |
| or [Knopflerfish](http://www.knopflerfish.org/releases/3.0.0/osgi/jars/). |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-Blueprint"></a> |
| #### Blueprint |
| |
| There are four other dependencies needed to run the tests, download these: |
| |
| * org.osgi.compendium-4.2.0.jar |
| * osgi-3.5.0.v20090520.jar |
| * org.eclipse.equinox.event-1.1.100.jar |
| * org.apache.felix.configadmin-1.2.4.jar |
| |
| from Maven and put them in commonjars. |
| |
| After modifications the bnd configuration file to run the blueprint tests |
| will look like this: |
| |
| |
| -include= ~shared.inc |
| build=. |
| |
| -target = \ |
| jar/org.osgi.test.cases.blueprint-4.2.0.jar;version=file, |
| |
| -runpath = \ |
| commonjars/osgi-3.5.0.v20090520.jar;version=file, \ |
| |
| commonjars/com.springsource.junit-3.8.2.jar;version=file;export="junit.framework;version=3.8", |
| |
| |
| -runbundles = \ |
| |
| commonjars/org.osgi.compendium-4.2.0.jar;version=file;strategy="lowest", \ |
| commonjars/pax-logging-api-1.4.jar;version=file, \ |
| commonjars/pax-logging-service-1.4.jar;version=file, \ |
| commonjars/cm-3.2.0-v20070116.jar;version=file, \ |
| commonjars/org.eclipse.equinox.event-1.1.100.jar;version=file, \ |
| commonjars/org.apache.felix.configadmin-1.2.4.jar;version=file, \ |
| ariesjars/org.apache.aries.blueprint-0.2-incubating.jar;version=file |
| |
| -runproperties = \ |
| report="true", \ |
| osgi.compatibility.bootdelegation="false", \ |
| osgi.support.multipleHosts="true" |
| |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-JNDI"></a> |
| #### JNDI |
| |
| The only additional bundle required for these tests is: |
| |
| * osgi.enterprise.jar |
| |
| which can be found at the [OSGi Alliance](http://www.osgi.org/Main/HomePage) |
| site. |
| |
| The .bnd file required to run the JNDI tests looks like this: |
| |
| |
| -include= ~shared.inc |
| build=. |
| |
| -target = \ |
| jar/org.osgi.test.cases.jndi-4.2.0.jar;version=file, |
| |
| -runpath = \ |
| commonjars/osgi-3.5.0.v20090520.jar;version=file, \ |
| |
| commonjars/com.springsource.junit-3.8.2.jar;version=file;export="junit.framework;version=3.8", |
| |
| -runbundles = \ |
| commonjars/osgi.enterprise-4.2.0.jar;version=file;strategy="lowest", \ |
| ariesjars/org.apache.aries.util-0.2-incubating.jar;version=file, \ |
| ariesjars/org.apache.aries.jndi-0.2-incubating.jar;version=file |
| |
| -runproperties = \ |
| report="true", \ |
| osgi.compatibility.bootdelegation="false", \ |
| osgi.support.multipleHosts="true", \ |
| org.osgi.framework.bootdelegation="com.sun.*" |
| |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-JMX"></a> |
| #### JMX |
| |
| It is necessary to download the following: |
| |
| * http://www.knopflerfish.org/releases/3.0.0/osgi/jars/useradmin/useradmin_all-3.0.1.jar |
| * http://www.knopflerfish.org/releases/3.0.0/osgi/jars/log/log_api-3.0.1.jar |
| * org.apache.felix.log-1.0.0.jar |
| * org.apache.felix.http.bundle-2.0.4.jar |
| |
| and use them to replace the three org.osgi.impl* jars in the runbundles |
| section. |
| |
| |
| -include= ~shared.inc |
| build=. |
| |
| -target = \ |
| jar/org.osgi.test.cases.jmx-4.2.0.jar;version=file, |
| |
| -runpath = \ |
| commonjars/osgi-3.5.0.v20090520.jar;version=file, \ |
| |
| jar/com.springsource.junit-3.8.2.jar;version=file;export="junit.framework;version=3.8", |
| |
| -runbundles = \ |
| commonjars/osgi.enterprise-4.2.0.jar;version=file;strategy="lowest", \ |
| commonjars/org.apache.felix.configadmin-1.2.4.jar;version=file, \ |
| ariesjars/org.apache.aries.jmx-0.2-incubating.jar;version=file, \ |
| commonjars/useradmin_all-3.0.1.jar;version=file, \ |
| commonjars/log_api-3.0.1.jar;version=file, \ |
| commonjars/org.apache.felix.log-1.0.0.jar;version=file, \ |
| commonjars/org.osgi.compendium-4.2.0.jar;version=file, \ |
| commonjars/org.eclipse.equinox.ip_1.1.100.v20100503.jar;version=file, \ |
| commonjars/org.eclipse.equinox.util_1.0.200.v20100503.jar;version=file, \ |
| commonjars/org.apache.felix.http.bundle-2.0.4.jar;version=file |
| |
| -runproperties = \ |
| report="true", \ |
| osgi.compatibility.bootdelegation="false", \ |
| osgi.support.multipleHosts="true", \ |
| osgi.console="1111", \ |
| |
| org.osgi.test.cases.jmx.system.packages.extra="junit.framework;version=3.8", \ |
| |
| org.osgi.test.cases.jmx.bundles="jar/osgi.enterprise-4.2.0.jar,jar/org.apache.aries.jmx-0.2-incubating.jar" |
| |
| |
| |
| |
| <a name="HowtoruntheOSGiEnterpriseCT-Transaction"></a> |
| #### Transaction |
| |
| |
| Nothing more to download here. Here is the configuration file: |
| |
| |
| -include= ~shared.inc |
| build=. |
| |
| -target = \ |
| jar/org.osgi.test.cases.transaction-4.2.0.jar;version=file, |
| |
| -runpath = \ |
| commonjars/osgi-3.5.0.v20090520.jar;version=file, \ |
| |
| commonjars/com.springsource.junit-3.8.2.jar;version=file;export="junit.framework;version=3.8", |
| |
| -runbundles = \ |
| commonjars/osgi.enterprise-4.2.0.jar;version=file;strategy="lowest", \ |
| commonjars/pax-logging-api-1.4.jar;version=file, \ |
| commonjars/pax-logging-service-1.4.jar;version=file, \ |
| commonjars/geronimo-jta_1.1_spec-1.1.1.jar;version=file, \ |
| commonjars/geronimo-transaction-2.1.3.jar;version=file, \ |
| commonjars/geronimo-j2ee-connector_1.5_spec-2.0.0.jar;version=file, \ |
| commonjars/org.apache.felix.configadmin-1.2.4.jar;version=file, \ |
| ariesjars/org.apache.aries.blueprint-0.2-incubating.jar;version=file, \ |
| ariesjars/org.apache.aries.transaction.blueprint-0.2-incubating.jar;version=file, \ |
| ariesjars/org.apache.aries.transaction.manager-0.2-incubating.jar;version=file, \ |
| ariesjars/org.apache.aries.transaction.wrappers-0.2-incubating.jar;version=file |
| |
| -runproperties = \ |
| report="true", \ |
| osgi.compatibility.bootdelegation="false", \ |
| osgi.support.multipleHosts="true", \ |
| org.osgi.test.cases.transaction.waittime="30" |
| |
| |
| |
| |
| |
| |
| |
| |