<!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="https://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 Tools Development Environment
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="https://community.jboss.org/people/nickboldt">Nick Boldt</a> in <i>JBoss Tools Development</i> - <a href="https://community.jboss.org/docs/DOC-18124">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p><div class="toc" style="border: 1px dashed black; padding: 10px;"><ul><li>
<a class="jive-link-anchor-small" href="#Tools_and_technologies">Tools and technologies</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Java">Java</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Eclipse_PDERCP">Eclipse PDE/RCP</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#SVN">SVN</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Tips_for_productivity_and_quality">Tips for productivity and quality</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Install_Code_Recommanders">Install Code Recommanders</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Static_analysis">Static analysis</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Enable_all_JDT_warnings">Enable all JDT warnings</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Install_Findbugs_for_Eclipse">Install Findbugs for Eclipse</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Install_PMD_for_Eclipse">Install PMD for Eclipse</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#Coverage">Coverage</a>
</li>
</ul></ul><li>
<a class="jive-link-anchor-small" href="#Get_source">Get source</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#To_work_on_a_specific_component">To work on a specific component</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#Set_up_a_target_platform">Set up a target platform</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Import_target_platforms">Import target platforms</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Choose_and_use_a_target_platform">Choose and use a target platform</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#Run_JBoss_Tools_and_Tests_from_your_IDE">Run JBoss Tools and Tests from your IDE</a>
</li>
</ul></div></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This article explains the different steps to set up a 1st-class environment when you want to write code for JBoss Tools</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1 id="Tools_and_technologies">Tools and technologies</h1><h2 id="Java">Java</h2><p>JBoss Tools requires Java 6. Ensure your JRE and JDK are compatible with Java 6</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Eclipse_PDERCP">Eclipse PDE/RCP</h2><p><span>JBoss Tools are a set of plugins for Eclipse. Then get your favourite recent version of Eclipse from here: </span><a class="jive-link-external-small" href="http://eclipse.org/downloads/" target="_blank">http://eclipse.org/downloads/</a><span> We recommand you using </span><em>Eclipse for RCP and RAP Developers</em>. But you can also install PDE in any other installation of Eclipse:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/102-18124-5-18511/installPDE.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/102-18124-5-18511/450-477/installPDE.png </span></a></p><h2 id="SVN">SVN</h2><p>You'll need to install a recent version of SVN (1.6 or more recent). Then you should install SVN Tools in Eclipse.&#160; You are free to choose your favourite Eclipse plugin and SVN connector by yourself, however, curret author of this page recommands using Subversive (part of the Eclipse latest release site) with SVNKit connector. Feel free to install Subversive extensions for other projects, it's always helpful.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Tips_for_productivity_and_quality">Tips for productivity and quality</h2><p>Here are some highly recommanded plugins that will make your more efficient when inside the IDE</p><h3 id="Install_Code_Recommanders">Install Code Recommanders</h3><p>Provides additional snippets, templates and smart completion. Not intrusive. You can find it on the "Juno" update-site or the current Eclipse release site.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Static_analysis">Static analysis</h3><p>Static analysis will detect bug very early and will save you minutes of debug every day. Using it will make you and your colleagues happier. It tells you while typing code that you may have a bug. No need to wait for running test or CI reports to detect this.</p><h4 id="Enable_all_JDT_warnings">Enable all JDT warnings</h4><p>JDT provides very good static analysis, and can prevent you from writing bugs. You simply have to turn all "ignored" advices to "warning" in Window &gt; Preference &gt; Java &gt; Compiler &gt; Errors/Warning.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/102-18124-5-18512/jdtWarnings.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/102-18124-5-18512/450-431/jdtWarnings.png </span></a></p><h4 id="Install_Findbugs_for_Eclipse">Install Findbugs for Eclipse</h4><p><a class="jive-link-external-small" href="http://marketplace.eclipse.org/content/findbugs-eclipse-plugin" target="_blank">http://marketplace.eclipse.org/content/findbugs-eclipse-plugin</a></p><h4 id="Install_PMD_for_Eclipse">Install PMD for Eclipse</h4><p><a class="jive-link-external-small" href="http://marketplace.eclipse.org/content/pmd-eclipse" target="_blank">http://marketplace.eclipse.org/content/pmd-eclipse</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Coverage">Coverage</h3><p>Coverage answers to the question "What is tested or net?".</p><p><span>JBoss Tools CI builds provide Jacoco reports for coverage by unit tests (file name is jacoco.exec). This file can easily be analyzed inside Eclipse on your Java editor using EclEmma plugin: </span><a class="jive-link-external-small" href="http://marketplace.eclipse.org/content/eclemma-java-code-coverage" target="_blank">http://marketplace.eclipse.org/content/eclemma-java-code-coverage</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1 id="Get_source">Get source</h1><p><span>Each JBoss Tools component is now its own GitHub repo: </span><a class="jive-link-external-small" href="https://github.com/jbosstools/" target="_blank">https://github.com/jbosstools/</a><span> </span></p><h2 id="To_work_on_a_specific_component">To work on a specific component</h2><p>The easiest way to get started is to check out source for only the module you wish to work on, and import Java projects from this part of the source tree.</p><p>Example:</p><p><span>* I&#160; want to fix a bug in CDI component of JBT: git clone </span>git://github.com/jbosstools/jbosstools-server.git <span>and import plugins and tests projects from plugns/* and tests/*</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1 id="Set_up_a_target_platform">Set up a target platform</h1><p>Target platforms (TP) are aimed at specifying what are the dependencies allowed and used to write, compile and execute code. <strong>Target Platform=Build Path + Default Runtime Classpath. </strong>We provide several TP that have different purpose. We do set up some default TP for development, that you should use.</p><h2 id="Import_target_platforms">Import target platforms</h2><p><span>Import into your Eclipse workspace JBoss Tools target platforms from GitHub: </span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>git clone git://github.com/jbosstools/jbosstools-build.git</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>You can then build a specific target platform like this:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>cd jbosstools-build/target-platforms/jbosstools-JunoSR1a/; mvn clean install </p><h2 id="Choose_and_use_a_target_platform">Choose and use a target platform</h2><p>Then go into Window &gt; Preference &gt; Plug-in development &gt; Target Platform. We recommend you to use <strong>multiple.target </strong>since it will contain all deps allowed from 3rd-party (Eclipse, Google...) <strong>AND SOURCE BUNDLES</strong>. If you don't depend on any other JBoss Tools project, please use <strong>unified.target</strong>.</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/102-18124-5-18513/TP.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/102-18124-5-18513/450-333/TP.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1 id="Run_JBoss_Tools_and_Tests_from_your_IDE">Run JBoss Tools and Tests from your IDE</h1><p>Once Target Platform is configured, you can easily give a try to your plugins using<em> Run As &gt; Java Application. </em>You can also run automated tests from your IDE using <em>Run As... &gt; JUnit Plugin Tests</em>.</p></div>

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

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


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

</div>

</body>
</html>