| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> |
| <title>ThreadContextMigrator (Apache Axis2)</title> |
| <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="ThreadContextMigrator (Apache Axis2)"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a name="navbar_top"> |
| <!-- --> |
| </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../overview-summary.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/ThreadContextMigrator.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">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../org/apache/axis2/util/TargetResolver.html" title="interface in org.apache.axis2.util"><span class="strong">Prev Class</span></a></li> |
| <li><a href="../../../../org/apache/axis2/util/ThreadContextMigratorUtil.html" title="class in org.apache.axis2.util"><span class="strong">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../index.html?org/apache/axis2/util/ThreadContextMigrator.html" target="_top">Frames</a></li> |
| <li><a href="ThreadContextMigrator.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_top"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li><a href="#method_summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li><a href="#method_detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip-navbar_top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="subTitle">org.apache.axis2.util</div> |
| <h2 title="Interface ThreadContextMigrator" class="title">Interface ThreadContextMigrator</h2> |
| </div> |
| <div class="contentContainer"> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <dl> |
| <dt>All Known Implementing Classes:</dt> |
| <dd><a href="../../../../org/apache/axis2/jaxws/addressing/migrator/EndpointContextMapMigrator.html" title="class in org.apache.axis2.jaxws.addressing.migrator">EndpointContextMapMigrator</a></dd> |
| </dl> |
| <hr> |
| <br> |
| <pre>public interface <span class="strong">ThreadContextMigrator</span></pre> |
| <div class="block">This is the interface for a piece of code that will plug into the user |
| programming model impl (e.g. JAX-WS impl) and will be invoked while on the |
| ultimate thread of execution. It is intended to provide a mechanism to |
| allow information to be migrated between the Axis2 contexts and thread |
| local storage. |
| <p/> |
| Note: It is up to each particular programming model impl to decide whether |
| or not they wish to make use of the ThreadContextMigrators. |
| <p/> |
| For each general MEP, here is the invocation pattern: |
| <p/> |
| [one-way inbound] |
| migrateContextToThread(req) |
| cleanupThread(req) |
| <p/> |
| [req/rsp inbound] |
| migrateContextToThread(req) |
| migrateThreadToContext(rsp) |
| cleanupContext(rsp) |
| cleanupThread(req) |
| <p/> |
| [one-way outbound] |
| migrateThreadToContext(req) |
| cleanupContext(req) |
| <p/> |
| [req/rsp outbound (both sync and async)] |
| migrateThreadToContext(req) |
| cleanupContext(req) |
| migrateContextToThread(rsp) |
| Note: there is no corresponding cleanupThread(rsp); one of the inbound |
| cases would need to handle this |
| <p/> |
| If a fault occurs during execution of one of the migrators, it will be |
| treated like any other service fault (i.e. like what will happen if we can't |
| deliver the message to a service or if a handler fails. |
| <p/> |
| The cleanup* methods can be expected to be invoked after any exeception |
| that occurs within the scope of the migration that would cause that scope |
| to be left so that the thread and/or context may be cleaned up properly.</div> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method_summary"> |
| <!-- --> |
| </a> |
| <h3>Method Summary</h3> |
| <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> |
| <caption><span>Methods</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Method and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/apache/axis2/util/ThreadContextMigrator.html#cleanupContext(org.apache.axis2.context.MessageContext)">cleanupContext</a></strong>(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext)</code> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to be on the thread of execution that will be used in user |
| space, after all processing has completed (i.e. when the particular |
| processing of a message is unwinding.)</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/apache/axis2/util/ThreadContextMigrator.html#cleanupThread(org.apache.axis2.context.MessageContext)">cleanupThread</a></strong>(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext)</code> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to still be on the thread of execution that was used in user |
| space, after all processing has completed (i.e. when the particular |
| processing of a message is unwinding.)</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/apache/axis2/util/ThreadContextMigrator.html#migrateContextToThread(org.apache.axis2.context.MessageContext)">migrateContextToThread</a></strong>(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext)</code> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to be on the thread of execution that will be used in |
| user space.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/apache/axis2/util/ThreadContextMigrator.html#migrateThreadToContext(org.apache.axis2.context.MessageContext)">migrateThreadToContext</a></strong>(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext)</code> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to still be on the thread of execution that was used in |
| user space.</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <div class="details"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ============ METHOD DETAIL ========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method_detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a name="migrateContextToThread(org.apache.axis2.context.MessageContext)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>migrateContextToThread</h4> |
| <pre>void migrateContextToThread(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext) |
| throws <a href="../../../../org/apache/axis2/AxisFault.html" title="class in org.apache.axis2">AxisFault</a></pre> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to be on the thread of execution that will be used in |
| user space. It will be invoked for incoming messages. |
| Implementations of this interface can use the information found in the |
| MessageContext to determine whether a request or response is being |
| processed. |
| (e.g. MessageContext.getAxisOperation().getMessageExchangePattern())</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>messageContext</code> - </dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/apache/axis2/AxisFault.html" title="class in org.apache.axis2">AxisFault</a></code></dd></dl> |
| </li> |
| </ul> |
| <a name="cleanupThread(org.apache.axis2.context.MessageContext)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>cleanupThread</h4> |
| <pre>void cleanupThread(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext)</pre> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to still be on the thread of execution that was used in user |
| space, after all processing has completed (i.e. when the particular |
| processing of a message is unwinding.) It provides a mechanism which can |
| be used to clean up the TLS.</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>messageContext</code> - </dd></dl> |
| </li> |
| </ul> |
| <a name="migrateThreadToContext(org.apache.axis2.context.MessageContext)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>migrateThreadToContext</h4> |
| <pre>void migrateThreadToContext(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext) |
| throws <a href="../../../../org/apache/axis2/AxisFault.html" title="class in org.apache.axis2">AxisFault</a></pre> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to still be on the thread of execution that was used in |
| user space. It will be invoked for both outgoing messages. |
| Implementations of this interface can use the information found in the |
| MessageContext to determine whether a request or response is being |
| processed. |
| (e.g. MessageContext.getAxisOperation().getMessageExchangePattern())</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>messageContext</code> - </dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/apache/axis2/AxisFault.html" title="class in org.apache.axis2">AxisFault</a></code></dd></dl> |
| </li> |
| </ul> |
| <a name="cleanupContext(org.apache.axis2.context.MessageContext)"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>cleanupContext</h4> |
| <pre>void cleanupContext(<a href="../../../../org/apache/axis2/context/MessageContext.html" title="class in org.apache.axis2.context">MessageContext</a> messageContext)</pre> |
| <div class="block">This method will be invoked when the processing of the message is |
| guaranteed to be on the thread of execution that will be used in user |
| space, after all processing has completed (i.e. when the particular |
| processing of a message is unwinding.) It provides a mechanism which can |
| be used to clean up the MessageContext or restore TLS.</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>messageContext</code> - </dd></dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a name="navbar_bottom"> |
| <!-- --> |
| </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../overview-summary.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/ThreadContextMigrator.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">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../org/apache/axis2/util/TargetResolver.html" title="interface in org.apache.axis2.util"><span class="strong">Prev Class</span></a></li> |
| <li><a href="../../../../org/apache/axis2/util/ThreadContextMigratorUtil.html" title="class in org.apache.axis2.util"><span class="strong">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../index.html?org/apache/axis2/util/ThreadContextMigrator.html" target="_top">Frames</a></li> |
| <li><a href="ThreadContextMigrator.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_bottom"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li><a href="#method_summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li><a href="#method_detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip-navbar_bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| <p class="legalCopy"><small>Copyright © <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p> |
| </body> |
| </html> |