<!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;">
    Updating your JBossTools manifest.mf files for Indigo
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="http://community.jboss.org/people/rob.stryker">Rob Stryker</a> in <i>JBoss Tools</i> - <a href="http://community.jboss.org/docs/DOC-16675">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p><strong>Explanation</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Since Indigo is a new version of eclipse and a new version of all our dependencies, we're going to become more strict on how we declare our eclipse dependencies. As of now, most plugins have a tendency to *not* declare version ranges in their manifest.mf, and we're going to begin to change that. One of the tools we will use in the future is API tooling that comes with eclipse to check backwards compatibility, but that will come later. In preparation for that, we are going to declare our new baseline to be the Indigo GA release.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>What does this mean for my plugins?</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span>Your plugins will need to change all dependency references in the MANIFEST.MF file to declare a minimum dependency of indigo, or, at this time, Indigo m5. At this time we'll only be doing this for eclipse plugin dependencies, and not other JBossTools plugins. The full task is a big long and involves finding out what version of every dependency Indigo will include. This has already been done, and the file listing all the versions is here: </span><a class="jive-link-external-small" href="https://svn.jboss.org/repos/jbosstools/workspace/rstryker/manifestVersions/FixManifests/src/data.mf" target="_blank">https://svn.jboss.org/repos/jbosstools/workspace/rstryker/manifestVersions/FixManifests/src/data.mf</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This still doesn't make it much easier, so a small utility app has been made.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>Getting the utility Project</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>mkdir tmp </p><p>cd tmp</p><p><span>svn co </span><a class="jive-link-external-small" href="https://svn.jboss.org/repos/jbosstools/workspace/rstryker/manifestVersions/" target="_blank">https://svn.jboss.org/repos/jbosstools/workspace/rstryker/manifestVersions/</a></p><p>cd manifestVersions/FixManifests/bin</p><p>vi run.sh</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p># Now update the script's tmpfileloc and rootFolder to show what file you want to be used</p><p># as a temporary file, and where your root JBossTools repo is.</p><p># The component will be passed in when running this script</p><p># When done... go ahead and...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p># ./run.sh {yourComponentName}</p><p>./run.sh jmx | sh</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The script itself (run.sh) actually simply generates commands to execute, which </p><p>we pipe into <strong>sh </strong>to ensure they are run. An example command generated by using</p><p>the script is as follows:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>java Main ../src/data.mf /home/rob/code/jbtools/jbosstools/trunk/jmx/plugins/org.jboss.tools.jmx.ui/META-INF/MANIFEST.MF &gt; ~/tmpFile &amp;&amp; mv ~/tmpFile /home/rob/code/jbtools/jbosstools/trunk/jmx/plugins/org.jboss.tools.jmx.ui/META-INF/MANIFEST.MF</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p> The script will now REPLACE all your manifest.mf files for the chosen component.</p><p> You can now refresh your eclipse environment and make sure all manifest files</p><p> have been updated appropriately. Make sure there are no compile errors</p><p> and make sure nothing horrible has changed.</p><p> You can also check via command line by going into your component folder</p><p> and performing</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; svn diff</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>But.... I'm not on linux!</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>No worries, friend! You can execute the java command yourself! </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160; java Main ../src/data.mf /path/to/your/svn/trunk/component/plugins/org.jboss.first.plugin</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This will output to standard out a new Manifest file. You can save the output in the appropriate </p><p>manifest file directly, copy-paste it, or whatever method you want. </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-16675">going to Community</a></p>

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


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

</div>

</body>
</html>