OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

[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]