Sad to say there is currently not much SPI documentation out there, but no worries, let me give you a few pointers:
For Arquillian to see your extension you need to register a LoadableExtension using normal Java ServiceLoader pattern.
The content of the LoadableExtension file contains a fully qualified classname that points to your extensions LoadableExtension impl. In this impl you'll register which services you provide, e.g. DeployableContainer.
The linking to arquillian.xml happens automatically and the properties available is based on the JavaBean style class you return from DeployableContainer.getConfigurationClass()
Anything in container/configuration/property* from arquillian.xml will be attempted mapped in using set[Name] on the ConfigurationClass and returned as a instance in DeployableContainer.setup()
Ask away if you need more pointers, I'm happy to help!
A little Arq Core SPI Getting Started Guide(Work In Progress): https://github.com/aslakknutsen/arquillian.github.com/blob/spi_guide/guides/getting_started_spi.textile
thanks for the pointers.
I will try to create a log of the steps I performed to create the DeployableContainer that can hopefully be turned in some kind of How-To like documentation.
Because of "other priorities" in the project I'll only be able to get back to this in a few weeks (were using normal unit tests with remote EJB calls for tests until then, although its a pain in the butt its better than no in-container testing at all).
Then I'll probably come back with more questions =)
A little help on the documentation would be very welcome!
Is the SAP DeployableContainer something you've considered open sourceing, or do you see it as a internal project only?
I'd open source it and when I have the time to develop it on my own time, it will be. When it is developed (partly) on the project time I have to check with SAP because then they have rights to the source code as well.
A part of the DeployableContainer will definitly depend on proprietary SAP code (JNDI remote client and deployer, they do not implement JSR88) that you only have access to when you have a NetWeaver installation. Does the Arquillian license allow compiling against those and still distributing source code and compiled binaries of the DeployableContainer without the depending libs?
Arquillian is under ASLv2. But this is more a question about the SAP license then Arquillian, since we're linking to SAP binaries. I'm not sure what their license says about this, but I'll checkup on it.