-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
1.0.4.CR2
-
None
As per http://docs.jboss.org/cdi/tck/reference/latest/en-US/html/test-harness-configuration.html#test-harness-properties, a custom ConfigurationBuilder or an implementation of the SPI class such as org.jboss.jsr299.tck.spi.Beans could be provided by the TCK executor through a system property specifying the FQCN of the implementation class.
However while trying to plug in a custom Beans SPI implementation or a ConfigurationBuilder using the system property, the default PropertiesBasedConfigurationBuilder seems to collate [1] all the properties file in the classpath and include the default implementations (bundled in the porting package or harness) as well.
> [testng] Exception in thread "main" java.lang.IllegalArgumentException: More than one implementation of Beans specified by org.jboss.jsr299.tck.spi.Beans, not sure which one to use!
> [testng] at org.jboss.testharness.properties.PropertiesManager.getClassValue(PropertiesManager.java:159)
> [testng] at org.jboss.testharness.properties.PropertiesManager.getInstanceValue(PropertiesManager.java:169)
> [testng] at org.jboss.testharness.impl.PropertiesBasedConfigurationBuilder.getInstanceValue(PropertiesBasedConfigurationBuilder.java:62)
This prevents configuration of the TCK to use a custom SPI class implementation and/or ConfigurationBuilder. The only workaround seems to be providing a modified version of the existing porting package class and ensuring that it is loaded ahead.