<!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;">
    Overview of the JAX-RS support in JBoss Tools 3.3M2
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="http://community.jboss.org/people/xcoulon">Xavier Coulon</a> in <i>JBoss Tools</i> - <a href="http://community.jboss.org/community/tools/blog/2011/06/30/jax-rs-tooling-coming-in-jbosstools-330">View the full blog post</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Following the release of JBoss Tools 3.3M2 that was <a class="" href="http://community.jboss.org/en/tools/blog/2011/06/28/fast-faster-jboss-tools-33-m2">announced</a> yesterday, this article highlights the main features provided by the new JAX-RS tooling which is part of this new milestone.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 style="color: #333333; font-weight: bold; padding-top: 10px; padding-bottom: 4px; font-size: 13pt;">Installing the plugin</h3><p>As explained in the announcement, the fastest and easiest way to get started with JBoss Tools is to download &amp; install the <a class="jive-link-external-small" href="http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigor" style="font-size: 12px; color: #355491;"><span class="jive-link-external-small" style="font-size: 12px;">Eclipse 3.7 (Indigo) JEE bundle</span></a>. Once you have installed Eclipse, you use our update site directly.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The updatesite URL to use from Help &gt; Install New Software... is:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre style="background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 2px; font-size: 12px; margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; border-top-color: #eeeeee; border-right-color: #eeeeee; border-bottom-color: #eeeeee; border-left-color: #cccccc; background-position: repeat repeat; border-style: solid; padding: 10px;"><p><a class="jive-link-external-small" href="http://download.jboss.org/jbosstools/updates/development/indigo/" style="font-size: 12px; color: #355491;">http://download.jboss.org/jbosstools/updates/development/indigo/</a></p></pre><p>Then, go to the "All JBoss Tools 3.3" section and select "JBoss JAX-RS Tools"</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3884-16612/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+22.05.46.png"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3884-16612/450-359/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+22.05.46.png </span></a></p><p><span style="font-size: 19px; font-weight: bold;">Using a sample project</span></p><p>A quick way to get started with the tooling is to download the <strong>JBoss AS7 Quickstarts</strong> from their <a class="jive-link-external-small" href="http://download.jboss.org/jbossas/7.0/jboss-7.0.0.CR1/jboss-as-quickstarts-7.0.0.CR1-dist.zip">download page</a>. Once you've unzipped the archive, import the "<strong>KitchenSink"</strong> project into your workspace using the Import &gt; Existing Maven Project menu.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span> (i) </span> You'll need to install the m2eclipse plugin to import the project.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3884-16620/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+22.52.57.png"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3884-16620/450-442/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+22.52.57.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="font-size: 17px; font-weight: bold;">Activating the support for JAX-RS</span></p><p>One way to activate support for JAX-RS in your project is to click on "Configure &gt; Add JAX-RS 1.1 support..." in the project's contextual menu, which in turn will add the "JAX-RS Nature" to it.</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3880-16549/jaxrs_install.png"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3880-16549/jaxrs_install.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>If the project you're working on is a "Dynamic Web Project", you can also install the standard Eclipse "JAX-RS (REST Web Services)" Facet, which will in turn will add the "JAX-RS Nature" as described in the previous case.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3880-16550/jaxrs_facet.png"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3880-16550/jaxrs_facet.png </span></a></p><p>In both cases, a "JAX-RS Builder" will be added to your project.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 style="color: #333333; font-weight: bold; padding-top: 10px; padding-bottom: 4px; font-size: 13pt;">Current features</h3><p>In this milestone, the JAX-RS Builder offers the features described below.</p><h5 style="color: #333333; font-weight: bold; padding-top: 10px; padding-bottom: 4px; font-size: 10pt;">Mapping of JAX-RS elements to the source</h5><p>The JAX-RS Builder computes and keeps in sync' an im-memory metamodel of the JAX-RS elements of your project. The metamodel is reinitialized during a clean/full build of your project, and all kinds of changes to compilation units are applied to the metamodel.&#160;&#160;&#160;&#160;&#160; </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h5 style="color: #333333; font-weight: bold; padding-top: 10px; padding-bottom: 4px; font-size: 10pt;">RESTful Web Services explorer</h5><p>The <strong>RESTful Web Services</strong> outline in the the <strong>Project Explorer</strong> view is certainly the most attractive feature of this plugin, as it displays the resolved URI Path Templates based on the metamodel described above.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The URI Path Templates resolution works with both Methods and Submethods of Root Resources and Subresources. In addition, each node in the outline indicates the consumed and produced media-types and the Java method that would be called when a request matching the combo {HTTP Method + URI Path Template + Content Negociation}. Double-clicking on the elements of the outline opens the Java Editor to the associated location in the source code.</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3884-16627/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+23.14.50.png"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3884-16627/449-270/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+23.14.50.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Event tough the classes annotated with the <span style="font-family: 'courier new', courier;">@javax.ws.rs.ext.Provider</span> are not shown on the Project Explorer's view yet, they are already taken into account by the JAX-RS Builder, so you can expect further features around those elements in the next releases.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h5 style="color: #333333; font-weight: bold; padding-top: 10px; padding-bottom: 4px; font-size: 10pt;">Code completion for JAX-RS annotation values</h5><p>Code completion for <span style="font-family: 'courier new', courier;">@javax.ws.rs.PathParam</span> annotation value is available. The completion processor analyses the source of the Java Type to return proposals based on the <span style="font-family: 'courier new', courier;">@javax.ws.rs.PathParam</span> annotations values both at the method and at the type levels. The additional information of each proposal highlights the part of the code from which the proposal was computed.</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3884-16628/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+22.57.51.png"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3884-16628/450-137/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+22.57.51.png </span></a></p><p>Those completion proposals support the regular expressions, too.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h5 style="color: #333333; font-weight: bold; padding-top: 10px; padding-bottom: 4px; font-size: 10pt;">Validation of JAX-RS constructs</h5><p>The plugin currently validates that a method parameter annotated with <span style="font-family: 'courier new', courier;">@javax.ws.rs.PathParam</span> annotation matches with the <span style="font-family: 'courier new', courier;">@javax.ws.rs.Path</span> annotation value on the same method.</p><p><a href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3884-16626/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+23.00.26.png"><span> http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3884-16626/450-163/Capture+d%E2%80%99%C3%A9cran+2011-06-30+%C3%A0+23.00.26.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>That's it for now. Remember that the tooling is not yet complete but is very functional and we are looking forward to get feedback on its current functionality and what you would like to see in the future !</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Have fun !</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>PS : as an individual contributor, I'd also like to thank the JBoss Tools team for the support and confidence they've put in the work I've done so far. As <a class="jive-link-profile-small" href="http://community.jboss.org/people/maxandersen">Max Andersen</a> says, it's the way OSS works, and it's really great !</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Comment by <a href="http://community.jboss.org/community/tools/blog/2011/06/30/jax-rs-tooling-coming-in-jbosstools-330">going to Community</a></p>

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


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

</div>

</body>
</html>