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

Reply via email to