[ https://issues.apache.org/jira/browse/ACE-347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651738#comment-13651738 ]
Bram de Kruijff commented on ACE-347: ------------------------------------- Added launcher under projects org.apache.ace.agent.launcher and some config/spi refactoring to properly support it in r1480190 > Redesign Management Agent > ------------------------- > > Key: ACE-347 > URL: https://issues.apache.org/jira/browse/ACE-347 > Project: ACE > Issue Type: Improvement > Reporter: Bram de Kruijff > Assignee: Bram de Kruijff > > The Managent Agent was made "self-contained" in ACE-232 but there are still > some concerns with regard to complexity and functionality. This issue deals > with restructuring the Managent Agent code to make it easier to maintain, > configure and extend. Also see ACE-324 / ACE-324. > Management Agent code: > The MA implementation is setup very modular and it assembled mainly based on > CM factories. Maybe a little too much. The code is scattered over projects > making it hard to maintain and it is violating visibility rules to > implementation classes which is nasty in bndtools. > -> We should centralize the 'dedicated' MA code in the MA project allowing us > to clean up a lot of projects. > Management Agent config: > The fact that we can theoretically reconfigure these services at runtime > through CM does not add much more then a runtime dependency on a CM impl. > There is an obvisou catch-22 in boostrapping and no mechanism to provision > these configurations to a private CM and in fact all configuration is done in > code and it is very complex. > -> we should centralize configuration in a well documented format with a > simple default case and possible extension. > Management Agent extension: > Bringing in extensions or customization on the bundle classpath is very hard > on only partially possible. There is a mechanism to disabled activators and > one to add custom ones. Theoretically one could also provide services from > "user space", but there is no way do do so in a simple way as there are no > visible APIs and the CM catch-22. > -> We should simplify extension on bundle classpath through a simple factory > SPI. Bringing these on the classpath can be done through wrapping (as > launcher does) or maybe also fragment bundles. > -> User space extensions could have a real use case in management/monitoring. > However, this means we need to expose some API. Question is whether we want > to expose prg.apache.ace.* (or some subset) so that consumers can talk to for > exmaple Log directly or that we should facade this behind a single > ManagementAgent API to keep it more contained. > Multiple agents: > There is code to configure and handle multiple agents. Not sure if it really > works as it is a very exotic and possibly undesirable use-case. There are > many conditionals for this through the CM code. > -> At least make it simpler and discuss wither we actually want/need this at > all. > Resource Processors: > RPs need to resolve, typically requiring framework, deploymentadmin (spi) and > eventadmin, but maybe more. In the current situation the MA exports these > package with an additional required attribute (managementagent=true). As a > result standard 3rd party RPs will not resolve. Therefore the MA should be as > self-contained as possible but still export these packages without the > attribute and (re)import them with the appropriate range. > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira