As a follow-up to this, we have to think about what belongs in the "management interface". To use ActiveMQ as an example, the ActiveMQContainer interface relies on classes in activemq-core, which means we couldn't put ActiveMQContainer in an activemq-management package unless that depended on activemq-core, which would kind of defeat the purpose of having an activemq-management package. Now in truth, I don't think we'll miss the methods of ActiveMQContainer that depend on activemq-core, so we can put the important stuff in an interface that is more universal and make ActiveMQContainer extend that.
Aaron On Sun, 21 Aug 2005, Aaron Mulder wrote: > So I'm working on management for ActiveMQ today, and running into > ClassLoader problems. The web console can't load the ActiveMQ management > interfaces, since its parent is o/a/g/System but ActiveMQ is in > o/a/g/ActiveMQServer. Now, I could "reparent" it, but I'll soon find out > that I don't have TranQL connections pools, or something else, without > constructing a bizarre inheritance chain. > > I would like all the management interfaces to be available, even > for products that aren't necessarily running in the current configuration. > (Though in truth, that's at least partly an artifact of our totally static > "portal" configuration, where we can't dynamically select the portlets to > show based on what's loaded in the server). > > I think what that means is that maybe I should start breaking out > the management code (interfaces and management-only helper classes) into > product-management modules for (Tomcat, Jetty, OpenEJB, ActiveMQ, TranQL > db pools), so I can include all the product-management modules in > o/a/g/Server (and leave the product implementation code where it is now -- > ActiveMQServer, SystemDatabase, whatever). That way the console will > still work regardless of what's running. > > In the super-short term, I'm going to try adding the > ActiveMQ-GBean module to o/a/g/System, but I'll remove that again as soon > as we agree on a way to get the management interfaces onto the console > classpath. > > Any comments? > > Thanks, > Aaron >