<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Annotation based Action classes
</h3>
<span style="margin-bottom: 10px;">
reply from <a href="http://community.jboss.org/people/tfennelly">Tom Fennelly</a> in <i>JBoss ESB Development</i> - <a href="http://community.jboss.org/message/542781#542781">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p><span>I commited what I have on this to a workspace in SVN: </span><a class="jive-link-external-small" href="http://anonsvn.jboss.org/repos/labs/labs/jbossesb/workspace/tfennelly/annotated_components" target="_blank">http://anonsvn.jboss.org/repos/labs/labs/jbossesb/workspace/tfennelly/annotated_components</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I modified the http_gateway quickstart as one example:</p><ul><li><a class="jive-link-external-small" href="http://fisheye.jboss.org/browse/JBossESB/workspace/tfennelly/annotated_components/product/samples/quickstarts/http_gateway/src/org/jboss/soa/esb/samples/quickstart/httpgateway/MyAction.java?r=32822"><span>before</span></a></li><li><a class="jive-link-external-small" href="http://fisheye.jboss.org/browse/JBossESB/workspace/tfennelly/annotated_components/product/samples/quickstarts/http_gateway/src/org/jboss/soa/esb/samples/quickstart/httpgateway/MyAction.java?r=32847">after</a></li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>In it you can see how the @ProcessMethod method is now taking multiple non ESB Message params.  The params are annotated with @BodyParam and @PropertyParam annotations, which tell the ESB from where to extrat those params on the Message before invoking (@AttachmentParam is also there). </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-java">@ProcessMethod
<font color="navy"><b>public</b></font> String printHttpRequestInfo(@BodyParam <font color="navy"><b>byte</b></font>[] httpPayload, @PropertyParam HttpRequest requestInfo )
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Those params can also take an explicit named location (e.g. @BodyParam("orderInfo")).  These @XParam annotations are not required.  If not present, the ESB will search the message based on param type, which is convenient but of course has the obvious "risks" that need to be kept in mind.</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/542781#542781">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss ESB Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2032">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>