<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="server-editor">
	<title>Server Editor</title>
	<para>After successful configuration of an instance of the @umbrella.product.name@ in Eclipse you can use the server
		editor to configure and explore many different aspects of the @product.instance@. To open a server editor double-click
		a @product.instance@ in the Servers view.
	</para>
	<section>
		<title>Overview Page</title>
		<para>The server overview page is the first page of the editor. Please note that opening of the Editor may take a few
			seconds as the contents of the local repository needs to be indexed before opening.
		</para>
		<para>
			<imagedata fileref="images/editor-overview-page.png" format="PNG" />
		</para>
		<para>
		     The overview page contains several sections. Some of them are inherited by the Web Tools Platform while other
		     are contributed specifically by the Virgo Tools.
		    <itemizedlist>
			 	<listitem>The <emphasis>Target Platform</emphasis> section has been introduced in release 1.5 and provides shortcuts
			 	for editing or reloading the PDE Target Platform associated to the current @umbrella.product.name@. 
			 	</listitem>		    
			 	<listitem>The <emphasis>Redeploy Behavior</emphasis> section allows the user to specify files that should be copied
			 	into the server without redeploying the bundle. This is typically used to speed up publishing operations for static files. 
			 	</listitem>
			 	<listitem>The <emphasis>Publishing</emphasis> section allows the user to select when changed resources should be published
			 	to the running server. 
			 	</listitem>
				<listitem>The <emphasis>Timeouts</emphasis> section allows the user to configure the server startup and shutdown timeout.
			 	</listitem>
				<listitem>The <emphasis>Deployer Control</emphasis> section allows the user to configure the parameters of the JMX communication
				between the Virgo Tools and the @umbrella.product.name@.
			 	</listitem>
			 	<listitem>The <emphasis>Artefact Deployment Order</emphasis> section allows the user to configure the activation order of the artefacts
			 	deployed into the @umbrella.product.name@. Multi-selection is supported.
			 	</listitem>
			 	<listitem>The <emphasis>Server Startup Configuration</emphasis> section allows the user to configure statup parameters of 
			 	the @umbrella.product.name@. The <emphasis>-clean</emphasis> options if checked forces the cleaning of the @umbrella.product.name@
			 	temporary folders at every startup. 
			 	</listitem>			 	
			</itemizedlist>
		</para>
		<para>
			See the 
			<emphasis>Web Tools Platform Guide</emphasis>
			for more information on the other configuration sections.
		</para>
	</section>
	<section>
		<title>Repository Page</title>
		<para>The Repository Browser allows you to see what bundles and libraries are available on the @product.instance and
			to very easily install bundles and libraries from the remote Enterprise Bundle Repository. To view resources
			installed on the Server select the "Repository" tab in the server editor.
		</para>
		<para>
			<imagedata fileref="images/editor-repository-page.png" format="PNG" />
		</para>
		<para>The left section of the Repository Browser allows the user to run searches against the @ebr@ and displays
			matching results. The search can take parts of bundle symbolic names, class or package names and allows wildcards
			such as &lsquo;?&rsquo; and &lsquo;*&rsquo;. By selecting the checkbox left to a matching bundle and/or library and
			clicking the "Download" button it is very easy to install new bundles in the @umbrella.product.name.short@. For your
			convenience JARs containing the bundle source code can be automatically downloaded as well.
		</para>
		<para>Clicking the "Download" button will trigger an Eclipse background job that will download the selected repository
			artifacts and -- if desired -- the source JARs one after another.
		</para>
		<para>The section on the right displays the bundles and libraries that exist on the server. Bundles with available
			sources are visually marked. You can very easily download missing source JARs by using the "Install Sources" button.
			Note that these bundles may or may not be actually "installed" on the @umbrella.product.name.short@ in the sense that
			they are known to it -- they may simply exist in the respective directories.
		</para>
	</section>
	<section>
		<title>Bundle Overview Page</title>
		<para>To view and control resources actually installed on the Server select the "Bundle Overview" tab in the server
			editor.
		</para>
		<para>
			<imagedata fileref="images/editor-bundle-overview-page.png" format="PNG" />
		</para>
		<para>Here you can start, stop, refresh and update bundles, as well as view detailed information about the bundle.
			Note that information about running bundles cannot be displayed unless the server is actually running. You can
			refresh the list of bundles by selecting the refresh button in the upper-right-hand corner of the "Bundle Status"
			section.
		</para>
		<para>Click the "Show dependency graph for bundle" link to bring up the Bundle Dependency Graph page focused on the
			selected bundle. See the next section.
		</para>
	</section>
	<section>
		<title>Bundle Dependency Graph Page</title>
		<para>The "Bundle Dependency Graph" tab takes you to a page where you can visualize the complex relationships between
			bundles.
		</para>
		<para>
			<imagedata fileref="images/editor-graph-page.png" format="PNG" />
		</para>
		<para>You can view package or services relationships by selecting the relevant radio button in the "Configuration"
			section. The "Incoming" and "Outgoing" controls define how many levels of dependencies are shown. For example, if you
			select a value of 2 for Incoming, the graph will who items that the selected bundle(s) are dependent on as well as
			the bundles that those bundles are then dependent on.
		</para>
		<para>Use the search text area in the editor header to select the source bundles for the graph. Wild cards are
			supported. Click the refresh button to update the bundle graph.
		</para>
	</section>
	<section>
		<title>Server Console Page</title>
		<para>The "Server Console" tab takes you to an interactive console for exploring and managing the state of a running
			server. (This console is different from the "Console View", which displays the log output of running server
			instances.) Enter text in the "Command" text area and click the "Execute" button or press RETURN to execute the
			command.
		</para>
		<para>
			<imagedata fileref="images/editor-console-page.png" format="PNG" />
		</para>
		<para>
			For a list of available commands and how to use them, see the
			<emphasis>Virgo Shell Command Reference</emphasis>
			sub-section of the
			<emphasis>Equinox Console</emphasis>
			section in the Virgo
			<emphasis>User Guide</emphasis>
		</para>
	</section>
</chapter>
