<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>3.&nbsp;Using the p2 director</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 User Guide"><link rel="up" href="index.html" title="Virgo User Guide"><link rel="prev" href="ch02s05.html" title="2.5&nbsp;p2 Concepts"><link rel="next" href="ch03s02.html" title="3.2&nbsp;Installing with the p2 director from Eclipse"><!--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">3.&nbsp;Using the p2 director</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch03s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="using-the-p2-director"></a>3.&nbsp;Using the p2 director</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="prereqs"></a>3.1&nbsp;Prerequisites</h2></div></div></div><p>
			The Virgo Server for Apache Tomcat, or VTS for short, requires Java SE 6 or later to be installed. Java is available from
			<a class="ulink" href="http://www.java.com/" target="_top">http://www.java.com/</a> and elsewhere.
		</p><p>
			Since you're going to use the p2 director you'll need to get it. The easiest way is to download Eclipse from <a class="ulink" href="http://www.eclipse.org/downloads/" target="_top">here</a>. 
			It has built-in p2 director and other p2 applications. 
		</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important: Setting the Target Platform"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.gif"></td><th align="left">Setting the Target Platform</th></tr><tr><td align="left" valign="top"></td></tr></table></div><p>Before using the director make sure you have a proper target platform set. Otherwise you may not see the director application. Here's how to do that:</p><p>Go to Eclipse's Preferences-&gt;Plug-in Development-&gt;Target Platform. Below is shown how the view looks like when a default target platform is set.</p><p>	 
			<img src="images/target-platform-view.png">
		</p><p>If for some reason you don't have any target platform set or it's not the default one you must set the default target platform from the image above.</p><p>If the default target platform is missing then add a new one via the <span class="emphasis"><em>Add...</em></span> button and select the <span class="emphasis"><em>Default</em></span> radio button as shown below:</p><p>	 
			<img src="images/default-target-create.png">
		</p><p>You can now click <span class="emphasis"><em>Next</em></span> and then <span class="emphasis"><em>Finish</em></span>.</p></div></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="ch02s05.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch03s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.5&nbsp;p2 Concepts&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;3.2&nbsp;Installing with the p2 director from Eclipse</td></tr></table></div></body></html>