Search in sources :

Example 1 with TomcatValveAdapter

use of org.glassfish.web.valve.TomcatValveAdapter in project Payara by payara.

the class StandardPipeline method addValve.

/**
 * <p>
 * Add a new Valve to the end of the pipeline associated with this Container. Prior to adding the
 * Valve, the Valve's <code>setContainer()</code> method will be called, if it implements
 * <code>Contained</code>, with the owning Container as an argument. The method may throw an
 * <code>IllegalArgumentException</code> if this Valve chooses not to be associated with this
 * Container, or <code>IllegalStateException</code> if it is already associated with a different
 * Container.
 * </p>
 *
 * @param valve Valve to be added
 *
 * @exception IllegalArgumentException if this Container refused to accept the specified Valve
 * @exception IllegalArgumentException if the specified Valve refuses to be associated with this
 * Container
 * @exception IllegalStateException if the specified Valve is already associated with a different
 * Container
 */
@Override
public void addValve(GlassFishValve valve) {
    if (firstTcValve != null) {
        // Wrap GlassFish-style valve inside Tomcat-style valve
        addValve(new TomcatValveAdapter(valve));
        return;
    }
    // Validate that we can add this Valve
    if (valve instanceof Contained)
        ((Contained) valve).setContainer(this.container);
    // Start the new component if necessary
    if (started) {
        if (valve instanceof Lifecycle) {
            try {
                ((Lifecycle) valve).start();
            } catch (LifecycleException e) {
                log.log(Level.SEVERE, LogFacade.ADD_VALVE_EXCEPTION, e);
            }
        }
    /**
     * CR 6411114 (MBean registration moved to ValveBase.start()) // Register the newly added valve
     * registerValve(valve);
     */
    }
    // Add this Valve to the set associated with this Pipeline
    GlassFishValve[] results = new GlassFishValve[valves.length + 1];
    System.arraycopy(valves, 0, results, 0, valves.length);
    results[valves.length] = valve;
    valves = results;
}
Also used : TomcatValveAdapter(org.glassfish.web.valve.TomcatValveAdapter) GlassFishValve(org.glassfish.web.valve.GlassFishValve)

Aggregations

GlassFishValve (org.glassfish.web.valve.GlassFishValve)1 TomcatValveAdapter (org.glassfish.web.valve.TomcatValveAdapter)1