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;
}
Aggregations