<!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/kcbabo">Keith Babo</a> in <i>JBoss ESB Development</i> - <a href="http://community.jboss.org/message/548739#548739">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Argh!  Brain fart on my end.  Completely spaced the fact that the action class is directly referenced in the service definition.</p><blockquote class="jive-quote"><br/>Re adding the @Action annotation... we can do this, but there's no "need" for it at the moment.  The annotated actions currently work without a Type level annotation and also without implementing/extending any interfaces/classes.  An example of the most basic action...<p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-java"><span style="color: navy;"><strong>public</strong></span> <span style="color: navy;"><strong>class</strong></span> MyAction <span style="color: navy;">{</span>
    @ProcessMethod
    <span style="color: navy;"><strong>public</strong></span> <span style="color: navy;"><strong>void</strong></span> processOrder(Order order) <span style="color: navy;">{</span>        <span style="color: darkgreen;">//.....</span>    <span style="color: navy;">}</span><span style="color: navy;">}</span></code></pre>
</blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I'm all for cute, but sometimes you can get too cute. ;-)  Personally, I like the clarity that the annotation provides.  It saves us an extra conditional in the parsing, but more importantly it makes it very clear to the action developer (and subsequent maintainer) what's going on.</p><blockquote class="jive-quote"><pre jivemacro="quote"><p>So... what currently marks this as an action is the @ProcessMethod annotation (to be renamed) on the processOrder method.  I toyed with adding an @Action annotation but it seemed a bit redundant until such time as we support some type level annotation data.  In fact... we could drop the requirement of having to have the @ProcessMethod in situations where the action only has a single method e.g....</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre ___default_attr="java" jivemacro="code"><pre><code><strong>public</strong> <strong>class</strong> MyAction { <br/>    <strong>public</strong> <strong>void</strong> processOrder(Order order) {        //.....    }}</code></pre>
</pre>
</pre>
</blockquote></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/548739#548739">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>