<!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">JBoss 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;">
    JBoss Logging Tooling
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="http://community.jboss.org/people/hardy.ferentschik">Hardy Ferentschik</a> in <i>JBoss AS7 Development</i> - <a href="http://community.jboss.org/docs/DOC-16818">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p><span style="font-family: arial,helvetica,sans-serif;"><strong><em>** Note: </em></strong></span><span style="font-family: arial,helvetica,sans-serif;"><em>This document is currently targeted at JBoss Logging 3.0.0 CR1 and JBoss Logging Tooling 1.0.0 Beta8-SNAPSHOT (the reason for the snapshot is a bug retrieving loggers from translated loggers)</em></span>.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><div class="toc" style="border: 1px dashed black; padding: 10px;"><ul><ul><li>
<a class="jive-link-anchor-small" href="#Why">Why?</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#How_does_it_work">How does it work?</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Dependencies">Dependencies</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Constraints">Constraints</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Example_Code">Example Code</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#How_to_set_it_up_in_your_project">How to set it up in your project?</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Maven">Maven</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#mavencompilerplugin">maven-compiler-plugin</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#mavenprocessorplugin">maven-processor-plugin</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#IDE">IDE</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Eclipse">Eclipse</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#NetBeans">NetBeans</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Intellij">Intellij</a>
</li>
</ul></ul></ul></ul></div></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Why">Why?</h2><p>If you want to internationalize (i18n) your logging, exception messages and messages in general, then along with JBoss Logging 3.x, JBoss Logging Tools is for you. It provides an easy way to offer internationalized messages, exceptions and logger messages to your project.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>With JBoss Logging Tools you write interfaces and annotate the methods with a default message. Then you or a translator will create a properties file with the translated text.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="How_does_it_work">How does it work?</h2><p>JBoss Logging Tools uses an annotation processor to implement concrete classes of your annotated interfaces. If you have also provided translation properties files, then a new concrete class will be created extending the implementation and overriding the messages returned.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The translation properties files must exist in the same directory structure as the interface. The name of the properties file <em>InterfaceName.i18n_language_country_variant.properties</em>. For example if you have a class named <em>org.jboss.as.As7RocksMessages</em> and you want to translate this into French you create a properties file called <em>As7RocksMessages.i18n_fr.properties</em> in a directory <em>org/jboss/as</em>.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Dependencies">Dependencies</h2><ul><li>JBoss Logging 3</li><li>tools.jar or CodeModel (which can be found here <a class="jive-link-external-small" href="http://codemodel.java.net/">http://codemodel.java.net/</a>)</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Constraints">Constraints</h2><p><span style="vertical-align: baseline; color: #5b5b5b; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif;"><strong>The following annotations are defined:</strong></span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"><span style="font-family: arial,helvetica,sans-serif; color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline; font-size: 10pt;"> </span>&#160;</p><ul><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.MessageBundle</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> - This annotation is attached to an interface which is intended to be a message bundle (a generic source of translated strings; i.e. there are no logging methods on the interface). Interfaces annotated with this annotation can be instantiated via the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">Messages.getBundle(InterfaceName.class)</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> method.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.MessageLogger</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> - This annotation is attached to an interface which is intended to act as a translating message logger. Such interfaces may include plain bundle messages as well as logger messages.&#160; Interfaces annotated with this annotation can be instantiated via the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">Logger.getMessageLogger(InterfaceName.class, "category.name")</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> method.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.Message</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> - this annotation is attached to any interface method which corresponds to a message which may be translated.&#160; This includes both simple messages and log messages.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.LogMessage</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> - this annotation is attached to log messages (in addition to </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">Message</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> above), and includes additional information such as the log level for the message.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.Cause</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> - this annotation is attached to a method parameter which should be considered to be the causing </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">java.lang.Throwable</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> (or subclass thereof).</span></span></li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"><span style="font-family: arial,helvetica,sans-serif; color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline; font-size: 10pt;"> </span>&#160;</p><p><span style="vertical-align: baseline; color: #5b5b5b; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif;"><strong>Message bundle interfaces must conform to these rules:</strong></span></p><ul><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">The message bundle annotation </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> specify a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">project code</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">All methods defined on the message bundle interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">must</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> have a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.Message </span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">annotation present, unless the method has the same name as another method on the interface and same number of parameters (minus the cause parameter) which has the annotation present.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">All methods defined on the message bundle interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">must</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> return either </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">java.lang.String</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> or one of its supertypes, </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">or</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">java.lang.Throwable</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> or one of its subtypes.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">All methods defined on the message bundle interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">must</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> accept a number of parameters consistent with the format string on the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">value</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> attribute of the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.Message</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> annotation. This assertion is complex to ascertain at compile-time, thus the no errors are shown at compile time.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">The </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.Cause</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> annotation may appear at most once on any given method's parameter list.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">If the method returns a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">java.lang.Throwable</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">, the parameter marked as </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@Cause</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> is passed in to that Throwable's constructor if it has such a parameter; if not, then it is passed in to the Throwable's </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">initCause()</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> method after the Throwable is constructed.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">If the method returns a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">java.lang.Throwable</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> </span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">the message of the Throwable will initialized with the message from the annotation if available.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">All of the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.Message</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> annotations found on methods on all message bundle interfaces with the same </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">project code</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> which specify an </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">id</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> must specify a unique number, </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">INHERIT</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">, or </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">NONE</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">.<br/></span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">A message bundle interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> extend other message bundle interfaces.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">A message bundle interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> extend </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">java.io.Serializable</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">; however, doing so is superfluous as the implementation class will implement this interface regardless.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">A message bundle interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may not</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> extend any other interfaces which do not fit the criteria specified above.</span></span></li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"><span style="font-family: arial,helvetica,sans-serif; color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline; font-size: 10pt;"> </span>&#160;</p><p><span style="vertical-align: baseline; color: #5b5b5b; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif;"><strong>Message logger interfaces must conform to the above rules, except:</strong></span></p><ul><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">A message logger interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may not</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> specify a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.MessageBundle</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> annotation; instead, it </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">must</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> specify a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.MessageLogger</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> annotation (which also has a property for </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">project code</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">).</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">Any method on a message logger interface </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> additionally specify a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.LogMessage</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> annotation. This annotation signifies that the method is a </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">logger method</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">All </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">logger methods must</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> be declared to return </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">void</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">A </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">logger method</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> have a specified log level in the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">level</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> property of the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@LogMessage </span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">annotation.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">If multiple methods of the same name exist, any number of them may have </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@LogMessage </span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">annotations.&#160; Only methods so annotated are log message methods.&#160; The rules regarding equally-named methods on message bundles continue to apply.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">Log methods with a parameter marked as </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@Cause</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> will pass that parameter in to the appropriate log method as the causing exception.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">Message logger interfaces </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> extend other message logger interfaces in addition to the rules for message bundle interfaces.</span></span></li><li><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;">Message logger interfaces </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">may</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> extend the </span><span style="color: #5b5b5b; font-weight: bold; font-style: normal; vertical-align: baseline;">@org.jboss.logging.BasicLogger</span><span style="color: #5b5b5b; font-weight: normal; font-style: normal; vertical-align: baseline;"> interface. All methods of the BasicLogger will be delegated to the logger being used for the log methods.</span></span></li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="vertical-align: baseline; color: #5b5b5b; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif; font-weight: normal;"><strong>Parameter count rules:</strong><br/></span></p><p><strong> </strong>You should be aware parameters are counted a little differently than a normal overloaded method. The parameter count used for validation is comprised of a count of all the parameters minus the <strong>@Cause</strong> parameter.<span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"> </span></p><h2 id="Example_Code"><br/>Example Code</h2><p>More examples to come, but for now is is a source repository of examples on how to create the interfaces for loggers and message bundles.</p><p><a class="jive-link-external-small" href="https://github.com/jamezp/jboss-logging-example">https://github.com/jamezp/jboss-logging-example</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="How_to_set_it_up_in_your_project">How to set it up in your project?</h2><p><span style="vertical-align: baseline; color: #000000; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif; font-weight: normal;">Using the logging tool requires minimal set-up. </span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Maven">Maven</h3><p><span style="vertical-align: baseline; color: #000000; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif; font-weight: normal;">For a maven project you are having two&#160; options</span></p><h4 id="mavencompilerplugin">maven-compiler-plugin</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="vertical-align: baseline; color: #000000; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif; font-weight: normal;">In this case the JBoss Logging Tool library needs to be specified as project dependency. </span></p><p><span style="vertical-align: baseline; color: #000000; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif; font-weight: normal;"><br/></span></p><pre class="jive-pre"><code class="jive-code jive-xml">
...
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;dependencies&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; ...
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;dependency&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;groupId&gt;</span>org.jboss.logging<span class="jive-xml-tag">&lt;/groupId&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;artifactId&gt;</span>jboss-logging-processor<span class="jive-xml-tag">&lt;/artifactId&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;version&gt;</span>${jbossLoggingProcessorVersion}<span class="jive-xml-tag">&lt;/version&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/dependency&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/dependencies&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;build&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;plugins&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;plugin&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;groupId&gt;</span>org.apache.maven.plugins<span class="jive-xml-tag">&lt;/groupId&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;artifactId&gt;</span>maven-compiler-plugin<span class="jive-xml-tag">&lt;/artifactId&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-comment">&lt;!-- Must be at least version 2.2 with a target of 1.6 to generate the source files in
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; target/generated-sources --&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;version&gt;</span>2.3.2<span class="jive-xml-tag">&lt;/version&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;configuration&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;source&gt;</span>1.6<span class="jive-xml-tag">&lt;/source&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;target&gt;</span>1.6<span class="jive-xml-tag">&lt;/target&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;showWarnings&gt;</span>true<span class="jive-xml-tag">&lt;/showWarnings&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- Optional if you wan to generate skeleton translation properties files --&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;compilerArgument&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; -AgeneratedTranslationFilesPath=${project.basedir}/target/generated-translation-files
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/compilerArgument&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/configuration&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/plugin&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/plugins&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/build&gt;</span>
...
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4 id="mavenprocessorplugin">maven-processor-plugin</h4><p>In this approach&#160; the <em>maven-processor-plugin</em> is used for running the annotation processor. The <em>jboss-logging-processor</em> dependency is now local to the plugin and the Maven bugs <a class="jive-link-external-small" href="http://jira.codehaus.org/browse/MCOMPILER-62">MCOMPILER-62</a> and <a class="jive-link-external-small" href="http://jira.codehaus.org/browse/MCOMPILER-66">MCOMPILER-66</a> are avoided. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code"> ...
&#160;&#160;&#160;&#160;&#160;&#160; &lt;build&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ...
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugins&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;org.bsc.maven&lt;/groupId&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-processor-plugin&lt;/artifactId&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.0.2&lt;/version&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;executions&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- Run annotation processors on src/main/java sources --&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;execution&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;id&gt;process&lt;/id&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goals&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goal&gt;process&lt;/goal&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/goals&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;phase&gt;generate-sources&lt;/phase&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;configuration&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;processors&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;processor&gt;org.jboss.logging.generator.apt.LoggingToolsProcessor&lt;/processor&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/processors&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/configuration&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/execution&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- Run annotation processors on src/test/java sources --&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;execution&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;id&gt;process-test&lt;/id&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goals&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goal&gt;process-test&lt;/goal&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/goals&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;phase&gt;generate-test-sources&lt;/phase&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;configuration&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;processors&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;processor&gt;org.jboss.logging.generator.apt.LoggingToolsProcessor&lt;/processor&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/processors&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/configuration&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/execution&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/executions&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;dependencies&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;dependency&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;org.jboss.logging&lt;/groupId&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;jboss-logging-processor&lt;/artifactId&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;${jbossLoggingProcessorVersion}&lt;/version&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;scope&gt;compile&lt;/scope&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/dependency&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/dependencies&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt; 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ...
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugins&gt;
&#160;&#160;&#160;&#160;&#160; &lt;/build&gt;
...
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This approach is also described on this <a class="jive-link-external-small" href="http://in.relation.to/17636.lace">blog entry</a> on in.relation.to</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="IDE">IDE</h3><h4 id="Eclipse">Eclipse</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;"><span style="font-family: arial,helvetica,sans-serif; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; font-size: 10pt;"> </span>&#160;</p><p><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline;">When using an Eclipse project follow the instructions here </span><a class="jive-link-external-small" href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_apt_getting_started.htm"><span style="color: #000099; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline;">http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_apt_getting_started.htm</span></a><span style="color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline;"> to enable annotation processing.</span></span></p><p><span style="vertical-align: baseline; color: #000000; font-size: 10pt; font-style: normal; font-family: arial,helvetica,sans-serif; font-weight: normal;"><br/></span></p><h4 id="NetBeans">NetBeans</h4><p><span style="font-family: arial,helvetica,sans-serif; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; font-size: 10pt;">When using NetBeans as long as the library is in the class path, the annotations will automatically be processed.</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4 id="Intellij">Intellij<span style="font-family: arial,helvetica,sans-serif; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; font-size: 10pt;"><br/></span></h4><p style="min-height: 8pt; height: 8pt; padding: 0px;"><span style="font-family: arial,helvetica,sans-serif; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; font-size: 10pt;"> </span>&#160;</p><p><span style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><span style="color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline;">Intellij IDEA offers the following documentation to enable annotation processing. </span><a class="jive-link-external-small" href="http://www.jetbrains.com/idea/webhelp/compiler-annotation-processors.html"><span style="color: #000099; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline;">http://www.jetbrains.com/idea/webhelp/compiler-annotation-processors.html</span></a></span></p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Comment by <a href="http://community.jboss.org/docs/DOC-16818">going to Community</a></p>

        <p style="margin: 0;">Create a new document in JBoss AS7 Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=102&containerType=14&container=2225">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>