webtier@glassfish.java.net

Re: [webtier] valve-patch

From: Wolfram Rittmeyer <w.rittmeyer_at_jsptutorial.org>
Date: Wed, 04 Feb 2009 18:56:36 +0100

w.rittmeyer_at_jsptutorial.org wrote:
> Oops. The classes com.sun.enterprise.deployment.node.runtime.web.ValveNode and com.sun.enterprise.deployment.runtime.web.Valve are missing (deployment). I will add them this evening (MEZ).
>

And finally these two classes ;-)

--
Wolfram Rittmeyer


package com.sun.enterprise.deployment.node.runtime.web;

import com.sun.enterprise.deployment.node.XMLElement;
import com.sun.enterprise.deployment.runtime.web.Valve;
import com.sun.enterprise.deployment.runtime.web.WebProperty;
import com.sun.enterprise.deployment.xml.RuntimeTagNames;
import org.w3c.dom.Element;
import org.w3c.dom.Node;


/**
 * Node representing a valve tag.
 */
public class ValveNode extends WebRuntimeNode {

    public ValveNode() {
        registerElementHandler(new XMLElement(RuntimeTagNames.PROPERTY),
                WebPropertyNode.class, "addWebProperty");
    }

    @Override
    protected boolean setAttributeValue(XMLElement elementName, XMLElement attributeName, String value) {
        Valve descriptor = (Valve) getRuntimeDescriptor();
        if (descriptor == null) {
            throw new RuntimeException("Trying to set values on a null descriptor");
        }
        if (attributeName.getQName().equals(RuntimeTagNames.NAME)) {
            descriptor.setAttributeValue(Valve.NAME, value);
            return true;
        } else if (attributeName.getQName().equals(RuntimeTagNames.CLASSNAME)) {
            descriptor.setAttributeValue(Valve.CLASSNAME, value);
            return true;
        }
        return false;
    }

    /**
     * write the descriptor class to a DOM tree and return it
     *
     * @param parent node for the DOM tree
     * @param node name
     * @param the descriptor to write
     * @return the DOM tree top node
     */
    public Node writeDescriptor(Node parent, String nodeName, Valve descriptor) {

        Element valve = (Element) super.writeDescriptor(parent, nodeName, descriptor);

        WebPropertyNode wpn = new WebPropertyNode();

        // sub-element property*
        wpn.writeDescriptor(valve, RuntimeTagNames.PROPERTY, descriptor.getWebProperty());

        // attributes classname and name
        setAttribute(valve, RuntimeTagNames.NAME, (String) descriptor.getAttributeValue(Valve.NAME));
        setAttribute(valve, RuntimeTagNames.CLASSNAME, (String) descriptor.getAttributeValue(Valve.CLASSNAME));

        return valve;
    }
}

package com.sun.enterprise.deployment.runtime.web;

public class Valve extends WebPropertyContainer {

    static public final String CLASSNAME = "ClassName";

}