<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>6.2&nbsp;Editing the Manifest</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Virgo Tools Guide"><link rel="up" href="ch06.html" title="6.&nbsp;Developing OSGi Bundles"><link rel="prev" href="ch06.html" title="6.&nbsp;Developing OSGi Bundles"><link rel="next" href="ch07.html" title="7.&nbsp;Developing PARs"><!--Begin Google Analytics code--><script type="text/javascript">
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script><script type="text/javascript">
			var pageTracker = _gat._getTracker("UA-2728886-3");
			pageTracker._setDomainName("none");
			pageTracker._setAllowLinker(true);
			pageTracker._trackPageview();
		</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">6.2&nbsp;Editing the Manifest</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch06.html">Prev</a>&nbsp;</td><th width="60%" align="center">6.&nbsp;Developing OSGi Bundles</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch07.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tooling-developing-editing-manifest-mf"></a>6.2&nbsp;Editing the Manifest</h2></div></div></div><p>
			The Tools provide a Bundle Manifest Editor that assists the developer to create and edit MANIFEST.MF files. The
			editor understands the Virgo Runtime Environment specific headers like
			<code class="code">Import-Library</code>
			and
			<code class="code">Import-Bundle</code>
			and provides content assist features while editing source code. Furthermore a Eclipse Form-based UI is also
			available.
		</p><p> To open the Bundle Manifest Editor right click a MANIFEST.MF file and select "Bundle Manifest Editor" from the
			"Open With" menu. </p><p>
			</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.gif"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
				Please note that the Virgo Runtime Environment specific manifest headers appear in green color to distinguish them
				from those headers defined in the OSGi specification. This also makes navigating much easier.
			</td></tr></table></div><p>
		</p><p>
			<img src="images/tooling-manifest-source-editor.png">
		</p><p> The content assist proposals in the source tab as well as in the UI-based tabs are resolved from the bundle and
			library repository of an installed and configured Virgo Runtime Environment. Therefore it is important to target the
			project or PAR to a specific Virgo Runtime instance to indicate to the tooling which bundle repository
			to use. </p><p>
			</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.gif"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
				If a OSGi bundle project is not targeted to a Virgo Runtime instance, either directory or indirectly
				via a PAR project&#8217;s targetting, the manifest editor will not be able to provide content assist for importing
				packages, bundles, and libraries.
			</td></tr></table></div><p>
		</p><p>
			<img src="images/tooling-manifest-form-ui-editor.png">
		</p><p> The Dependencies tab of the Bundle Manifest Editor enables the user to easily download and install bundles and
			libraries from the SpringSource Enterprise Bundle Repository by using the "Download..." buttons next to the "Import Bundle" and "Import Library"
			sections. </p></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
			_lf_cid = "LF_48be82fa";
			_lf_remora();
		</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch06.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch06.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">6.&nbsp;Developing OSGi Bundles&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;7.&nbsp;Developing PARs</td></tr></table></div></body></html>