blob: 491019521ce5b30005c2d19b60cd24c1db8a3310 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) -->
<title>Pipeline (Apache Turbine 7.1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.turbine.pipeline, interface: Pipeline">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/Pipeline.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.turbine.pipeline</a></div>
<h1 title="Interface Pipeline" class="title">Interface Pipeline</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="TurbinePipeline.html" title="class in org.apache.turbine.pipeline">TurbinePipeline</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name"><a href="../../../../src-html/org/apache/turbine/pipeline/Pipeline.html#line-53">Pipeline</a></span></div>
<div class="block">The idea of a pipeline is being taken from Catalina
in its entirety :-)
I would like to take the idea further and implement
Valves instead of hardcoding particular methods
in a pipeline.
It would be more flexible to specify Valves for
a pipeline in an XML file (we can also rip off the
digester rules from T4) and have invoke() as part
of the interface.
So a set of Valves would be added to the pipeline
and the pipeline would 'invoke' each valve. In the
case Turbine each Valve would produce some output
to be sent out the pipe. I think with another days
work this can be fully working. The first pipeline
to be fully implemented will the ClassicPipeline
will emulate the Turbine 2.1 way of doing things.</div>
<dl class="notes">
<dt>Author:</dt>
<dd><a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>, <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>, <a href="mailto:peter@courcoux.biz">Peter Courcoux</a></dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#addValve(org.apache.turbine.pipeline.Valve)" class="member-name-link">addValve</a><wbr>(<a href="Valve.html" title="interface in org.apache.turbine.pipeline">Valve</a>&nbsp;valve)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Add a new Valve to the end of the pipeline.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Valve.html" title="interface in org.apache.turbine.pipeline">Valve</a>[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getValves()" class="member-name-link">getValves</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Return the set of all Valves in the pipeline.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#initialize()" class="member-name-link">initialize</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Initializes this instance.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#invoke(org.apache.turbine.pipeline.PipelineData)" class="member-name-link">invoke</a><wbr>(<a href="PipelineData.html" title="interface in org.apache.turbine.pipeline">PipelineData</a>&nbsp;pipelineData)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Cause the specified request and response to be processed by
the sequence of Valves associated with this pipeline, until one
of these Valves decides to end the processing.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#removeValve(org.apache.turbine.pipeline.Valve)" class="member-name-link">removeValve</a><wbr>(<a href="Valve.html" title="interface in org.apache.turbine.pipeline">Valve</a>&nbsp;valve)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Remove the specified Valve from the pipeline, if it is found;
otherwise, do nothing.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="initialize()">
<h3>initialize</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/turbine/pipeline/Pipeline.html#line-59">initialize</a></span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Initializes this instance. Called once by the Turbine servlet.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if the initialization fails</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addValve(org.apache.turbine.pipeline.Valve)">
<h3>addValve</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/turbine/pipeline/Pipeline.html#line-70">addValve</a></span><wbr><span class="parameters">(<a href="Valve.html" title="interface in org.apache.turbine.pipeline">Valve</a>&nbsp;valve)</span></div>
<div class="block"><p>Add a new Valve to the end of the pipeline.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>valve</code> - Valve to be added.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - If the pipeline has not been
initialized.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValves()">
<h3>getValves</h3>
<div class="member-signature"><span class="return-type"><a href="Valve.html" title="interface in org.apache.turbine.pipeline">Valve</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/turbine/pipeline/Pipeline.html#line-78">getValves</a></span>()</div>
<div class="block">Return the set of all Valves in the pipeline. If there are no
such Valves, a zero-length array is returned.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>An array of valves.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="invoke(org.apache.turbine.pipeline.PipelineData)">
<h3>invoke</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/turbine/pipeline/Pipeline.html#line-95">invoke</a></span><wbr><span class="parameters">(<a href="PipelineData.html" title="interface in org.apache.turbine.pipeline">PipelineData</a>&nbsp;pipelineData)</span>
throws <span class="exceptions"><a href="../util/TurbineException.html" title="class in org.apache.turbine.util">TurbineException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block"><p>Cause the specified request and response to be processed by
the sequence of Valves associated with this pipeline, until one
of these Valves decides to end the processing.</p>
<p>The implementation must ensure that multiple simultaneous
requests (on different threads) can be processed through the
same Pipeline without interfering with each other's control
flow.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>pipelineData</code> - The run-time information, including the servlet
request and response we are processing.</dd>
<dt>Throws:</dt>
<dd><code><a href="../util/TurbineException.html" title="class in org.apache.turbine.util">TurbineException</a></code> - if the invocation fails</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code> - an input/output error occurred.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeValve(org.apache.turbine.pipeline.Valve)">
<h3>removeValve</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/turbine/pipeline/Pipeline.html#line-104">removeValve</a></span><wbr><span class="parameters">(<a href="Valve.html" title="interface in org.apache.turbine.pipeline">Valve</a>&nbsp;valve)</span></div>
<div class="block">Remove the specified Valve from the pipeline, if it is found;
otherwise, do nothing.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>valve</code> - Valve to be removed.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2000&#x2013;2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>