-
Notifications
You must be signed in to change notification settings - Fork 8
Description
A common use case for Arquillian and Byteman is to have a single client interacting with two or more servers, where:
- the Byteman agent is installed on each server (and possibly the client)
- rules deployed to the servers only (or to both client and servers)
- the test runs on the client
The current version of Arquillian Byteman extension does not handle this case,as the Byteman configuration allows configuration of a single clientAgentPort and a single containerAgentPort. In other words, the test configuration is limited to a client interacting with a single container. This is my understanding, in any case.
I'm currently trying to think of a simple way to fix this, but it's complicated by the fact that agents can be auto-installed or not, containers may be remote or managed, and enough information needs to be provided to enable the generation of the correct set of ExecContexts which are used by the RuleInstaller to communicate with the various agents.
One starting point might be to allow a user to specify a simple list of agent ports via a new element in the Byteman configuration schema. Or more completely to specify a new XML element "agent" with attributes host, port and auto-install flag which are children of an "agents" element so that each agent can be configured separately. I think the latter would allow more precise configuration possibilities.
I'll try and set up a PR for this in the near future. Any comments appreciated.
NOTE: just realised that the Byteman configuration is provided as an extension configuration within arquillian.xml, so the latter configuration option involving adding new XML elements is probably not viable; some form of String will need to be used.