[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Conformance test instantiation
Hi,
I have another question related to the assembly conformance tests. I'm
confused about the RuntimeBridge.startContribution(..) API:
/**
* Start the contribution(s) which represent the application under
test in the SCA runtime
* @param contributionLocation a String containing the location
pattern for the contribution(s),
* which is a URI containing one or more "%1" substrings where the
name of the contribution is
* substituted to get the URI of the contribution
* @param contributionNames - an array of contribution names as strings
* @return true if the contributions were loaded and started in the
SCA runtime, false otherwise
*/
boolean startContribution(String contributionLocation, String[]
contributionNames) throws Exception;
My understanding is the contributionLocation is an encoded location
for the contributions which must be installed. A URL for each
contribution can be derived by iterating the contributionNames and
substituting %1 in contributionLocation with the contribution name. My
first question then is why doesn't RuntimeBridge make this contract
explicit and use a collection of URLs instead:
boolean startContribution(List<URL> contributions) throws Exception;
Related to this, I noticed the following entry in oasis-tests-
sca.properties:
org.oasis.sca.tests.assembly.contribution.location=file:/C:/
OASIS_TESTS/SCA-Assembly/TestCases/%1/target/%1.zip
I think this could just be handled programmatically by default using
an offset relative from the location of a .class file for one of the
test classes (e.g. RuntimeBidge.class.getResource(".") ). However, if
the RuntimeBridge API is modified to pass a collection of URLs this is
less of an issue (although it requires a bit of extra setup which
could be eliminated).
My second question is what contributions are expected to be started in
RuntimeBridge.startContribution(..)? I see from the
TuscanyRuntimeBridge implementation that it pulls a composite name
from an instance of TestConfiguration that is provided via
RuntimeBridge.setTestConfiguration(). However, that composite does not
appear to be marked as a deployable. I'm assuming this is the
composite that must be deployed. I may be missing something but there
appears to be two problems with this:
1. Only deployables should be deployed and it appears most of the test
contributions are *not* marked as deployable composites
2. My understanding is providing the composite name out of band to
deploy it is not specified in the assembly spec. Is that correct? If
so, I think we are only left with runtime-specific mechanisms for
handling deployment which is a problem since it will require
modification of the test suite and potentially the test artifacts by
each vendor.
Jim
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]