Matt Hogstrom wrote: > I'm not sure I get the relevance of empty=true. For instance, in the > current config.xml there is no reference to the FirstValve as it is > added when the car is built at assembly time. As a consequence, the end > user (in this case me) had no idea that the FirstValve existed. So in > the above exmple I think specifying load=false should be sufficient to > disable the logging.
I think we have 2 separate issues here. One is the ability to remove a set attribute or reference, the other is as it pertains to this situation. Let me address each one. The empty="true" really is no different than overriding a value. The developer/user is not going to really know its original value w/o looking at the original plan file (which is why I think we should include them for reference like we did before). IMHO if someone dinks around in the config.xml, they should have a reasonable understanding of what they are messing with. The empty="true" should allow you to remove a setting, whether it be a reference to another GBean or an attribute, so that the originating GBean can use its internal default, all without the need to recompile G. As for the chaining, the example you give would be great, but the problem is when GBeans refer to other Gbeans, just shutting them off will not work, since there is an innate kernel issue that expects the dependency to be available. Sure, we shut off the FirstValve, but now the kernel won't start up the EngineGbean because it has a reference to another GBean that doesn't exist. Is there a better way to order Valves and make them declarative and pluggable into the Engine, all without affecting references? Its worth a chat and probably a good discussion. > > As a second note, if there had been several items in the ValveChain > (some of which were created at assembly time) would the empty=true mean > that all entries in the chain would be invalidated (and the FirstValve > one also) would not be loaded? Not totally. IIU what you are saying, you would need to shut off all the Valve GBeans in the chain (load=false), and only do an empty=true on the EngineGbean/HostBean that refers to the first one in the chain. > > From a user perspective we would want to expose this configuration > attribute "logging" as a checkbox in the console so one could avoid > editing the config.xml if possible. I'm probably missing something in > how this all is wired together so apologies in advance if I'm on the > same planet but a different world. Yes, and I completely agree. But this should go much further than that. It would be great to have a GUI make it simple to set up valves, order them (which means they will get chained)...but until then we are stuck with the old config.xml and an editor. :( > > This fixes the problem we have with logging Jeff and this is awesome. > As we talked this attribute will probably double our WebContainer > performance. I think we need to go back through these configuration > options and get them into the console. I'd volunteer but my plated > overfloweth with good ideas and unfinished projects. Probably should > add this to the what can I do list. > Sounds great. We can chat more on this and I would be happy to help out there. Jeff