I accidentally followed up to this off-list, but I think Jeff and I have agreed to disagree. I prefer to avoid adding extra attributes to support an empty string value when we don't seem to really have a need for empty string values. Jeff (if I can try to summarize) feels that we ought to support all 3 possibilities (null, empty, not set) for the benefit of future GBean implementers who might have different needs. Additional input would be appreciated.
Thanks, Aaron On 2/24/06, Jeff Genender <[EMAIL PROTECTED]> wrote: > > > Aaron Mulder wrote: > > What's wrong with just listing the attribute or reference with no > > content but without the new "empty=true"? As in: > > > > <gbean name="TomcatEngine"> > > <reference name="TomcatValveChain" /> > > </gbean> > > > > This may be fine for references, but an empty string could be a > reasonable and valid setting for an attribute. Therefore we need a way > to designate a difference between an empty string value, a null value, > and full removal of setting the value. > > I also believe that we should be consistent. So the way we do it for > one, we probably should do it for the other. > > Jeff > > > Thanks, > > Aaron > > > > On 2/24/06, Jeff Genender <[EMAIL PROTECTED]> wrote: > >> The config.xml allows us to declare new GBeans and override references > >> and attributes of already existing Gbeans. But there is a missing > >> configuration item here, which is the ability to *remove* a reference or > >> attribute value from the configuration. Currently there is no way to do > >> this. > >> > >> Matt Hogstrom and I ran into this when trying to remove a logging > >> reference in one of the GBeans. > >> > >> An example of this is the TomcatValveChain on the TomcatEngine. As it > >> stands, our default implementation installs an AccessLogValve into the > >> TomcatValveChain reference. We wanted to shut off logging to test > >> different performance numbers and found that there was no way to "clear" > >> or remove a reference that was set in the car plan via the config.xml, > >> without rebuilding the car from the source. > >> > >> On further discussion with David J and Dain, we came up with a new xml > >> attribute to place on refs and attribute tags. You would use: > >> > >> empty="true" > >> > >> Example: You want to remove the access logger to improve web container > >> performance, you would declare the following in the config.xml, which > >> would remove the TomcatValveChain from the TomcatEngine: > >> > >> ... > >> <configuration name="geronimo/tomcat/1.1-SNAPSHOT/car"> > >> ... > >> <gbean name="FirstValve" load="false"/> > >> > >> <gbean name="TomcatEngine"> > >> <reference name="TomcatValveChain" empty="true"/> > >> </gbean> > >> ... > >> </configuration> > >> ... > >> > >> You would do the same for attributes that needed to be removed. > >> > >> I have this all coded up and ready to check in, but wanted to get any > >> feedback or issues before I went ahead and did it. > >> > >> Comments? > >> > >> Jeff > >> >