<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Wed May 14 15:16:11 EDT 2008 -->
<TITLE>
IServer
</TITLE>

<META NAME="date" CONTENT="2008-05-14">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="IServer";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IServer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/eclipse/wst/server/core/IServer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IServer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.eclipse.wst.server.core</FONT>
<BR>
Interface IServer</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html" title="interface in org.eclipse.wst.server.core">IServerAttributes</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>IServer</B><DT>extends <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html" title="interface in org.eclipse.wst.server.core">IServerAttributes</A></DL>
</PRE>

<P>
Represents a server instance. Every server is an instance of a
 particular, fixed server type.
 <p>
 Not surprisingly, the notion of <b>server</b> is central in the web tools
 server infrastructure. In this context, understand that a server is
 a web server of some ilk. It could be a simple web server lacking Java
 support, or an J2EE based server, or perhaps even some kind of database
 server. A more exact definition is not required for the purposes of this API.
 From a tool-centric point of view, a server
 is something that the developer is writing "content" for.
 The unit of content is termed a module.
 In a sense, the server exists, but lacks useful content. The
 development task is to provide that content. The content can include
 anything from simple, static HTML web pages to complex, highly dynamic
 web applications.
 In the course of writing and debugging this content,
 the developer will want to test their content on a web server, to see how it
 gets served up. For this they will need to launch a server process running on
 some host machine (often the local host on which the IDE is running), or
 attach to a server that's already running on a remote (or local) host. 
 The newly developed content sitting in the developer's workspace needs to
 end up in a location and format that the running server can use for its
 serving purposes.
 </p>
 <p>
 In this picture, an <code>IServer</code> object is a proxy for the real web
 server. Through this proxy, a client can configure the server, and start,
 stop, and restart it.
 </p>
 <p>
 The server framework maintains a global list of all known server instances
 (<A HREF="../../../../../org/eclipse/wst/server/core/ServerCore.html#getServers()"><CODE>ServerCore.getServers()</CODE></A>).
 </p>
 <p>
 [rough notes:
 Server has a state.
 Server can be started, stopped, and restarted.
 To modify server attributes, get a working copy, modify it, and then save it
 to commit the changes.
 Server attributes. Serialization.
 Chained working copies for runtime, server configuration.
 Server has a set of root modules.
 Modules have state wrt a server.
 Restarting modules.
 ]
 </p>
 <p>
 Two servers are identical if and only if they have the same id.
 </p>
 
 <p>This interface is not intended to be implemented by clients.</p>
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>1.0</DD>
</DL>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->

<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An operation listener is used to receive notification back about a
 specific server operation, such as starting or stopping a server.</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_AUTO">PUBLISH_AUTO</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish kind constant (value 3) indicating an automatic publish request.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_CLEAN">PUBLISH_CLEAN</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish kind constant (value 4) indicating a publish clean request</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_FULL">PUBLISH_FULL</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish kind constant (value 2) indicating a full publish request.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_INCREMENTAL">PUBLISH_INCREMENTAL</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish kind constant (value 1) indicating an incremental publish request.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_STATE_FULL">PUBLISH_STATE_FULL</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish state constant (value 3) indicating that a
 full publish is required.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_STATE_INCREMENTAL">PUBLISH_STATE_INCREMENTAL</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish state constant (value 2) indicating that an
 incremental publish is required.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_STATE_NONE">PUBLISH_STATE_NONE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish state constant (value 1) indicating that there
 is no publish required.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#PUBLISH_STATE_UNKNOWN">PUBLISH_STATE_UNKNOWN</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish state constant (value 0) indicating that it's
 in an unknown state.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#STATE_STARTED">STATE_STARTED</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server state constant (value 2) indicating that the
 server is ready to serve content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#STATE_STARTING">STATE_STARTING</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server state constant (value 1) indicating that the
 server is starting, but not yet ready to serve content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#STATE_STOPPED">STATE_STOPPED</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server state constant (value 4) indicating that the
 server is stopped.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#STATE_STOPPING">STATE_STOPPING</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server state constant (value 3) indicating that the
 server is shutting down.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#STATE_UNKNOWN">STATE_UNKNOWN</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server state constant (value 0) indicating that the
 server is in an unknown state.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#addPublishListener(org.eclipse.wst.server.core.IPublishListener)">addPublishListener</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IPublishListener.html" title="interface in org.eclipse.wst.server.core">IPublishListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a publish listener to this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#addServerListener(org.eclipse.wst.server.core.IServerListener)">addServerListener</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IServerListener.html" title="interface in org.eclipse.wst.server.core">IServerListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given server state listener to this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#addServerListener(org.eclipse.wst.server.core.IServerListener, int)">addServerListener</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IServerListener.html" title="interface in org.eclipse.wst.server.core">IServerListener</A>&nbsp;listener,
                  int&nbsp;eventMask)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given server state listener to this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canControlModule(org.eclipse.wst.server.core.IModule[], IProgressMonitor)">canControlModule</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
                 IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the given module can be restarted.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canPublish()">canPublish</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this server is in a state that it can
 be published to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canRestart(java.lang.String)">canRestart</A></B>(java.lang.String&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this server is in a state that it can
 be restarted in the given mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canStart(java.lang.String)">canStart</A></B>(java.lang.String&nbsp;launchMode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this server is in a state that it can
 be started in the given mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canStop()">canStop</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this server is in a state that it can
 be stopped.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;ILaunch</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getLaunch()">getLaunch</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the launch that was used to start the server, if available.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;ILaunchConfiguration</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getLaunchConfiguration(boolean, IProgressMonitor)">getLaunchConfiguration</A></B>(boolean&nbsp;create,
                       IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the launch configuration for this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getMode()">getMode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the ILaunchManager mode that the server is in.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModulePublishState(org.eclipse.wst.server.core.IModule[])">getModulePublishState</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the module's sync state.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModuleRestartState(org.eclipse.wst.server.core.IModule[])">getModuleRestartState</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if the given module is in sync on the server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModuleState(org.eclipse.wst.server.core.IModule[])">getModuleState</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current state of the given module on this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerPublishState()">getServerPublishState</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the server's sync state.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerRestartState()">getServerRestartState</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this server is out of sync and needs to be
 restarted.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerState()">getServerState</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current state of this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getStartTimeout()">getStartTimeout</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the start timeout in seconds.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getStopTimeout()">getStopTimeout</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stop timeout in seconds.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#publish(int, IProgressMonitor)">publish</A></B>(int&nbsp;kind,
        IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish to the server using the progress monitor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#publish(int, java.util.List, IAdaptable, org.eclipse.wst.server.core.IServer.IOperationListener)">publish</A></B>(int&nbsp;kind,
        java.util.List&lt;<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&gt;&nbsp;modules,
        IAdaptable&nbsp;info,
        <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Publish one or more modules to the server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#removePublishListener(org.eclipse.wst.server.core.IPublishListener)">removePublishListener</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IPublishListener.html" title="interface in org.eclipse.wst.server.core">IPublishListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a publish listener from this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#removeServerListener(org.eclipse.wst.server.core.IServerListener)">removeServerListener</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IServerListener.html" title="interface in org.eclipse.wst.server.core">IServerListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given server state listener from this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#restart(java.lang.String, IProgressMonitor)">restart</A></B>(java.lang.String&nbsp;launchMode,
        IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asynchronously restarts this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#restartModule(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IServer.IOperationListener)">restartModule</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
              <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asynchronously restarts the given module on the server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#shouldPublish()">shouldPublish</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the server should be published to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#shouldRestart()">shouldRestart</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the server should be restarted.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#start(java.lang.String, IProgressMonitor)">start</A></B>(java.lang.String&nbsp;launchMode,
      IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asynchronously starts this server in the given launch mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#startModule(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IServer.IOperationListener)">startModule</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
            <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asynchronously starts this server in the given launch mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#stop(boolean)">stop</A></B>(boolean&nbsp;force)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asynchronously stops this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#stop(boolean, org.eclipse.wst.server.core.IServer.IOperationListener)">stop</A></B>(boolean&nbsp;force,
     <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asynchronously stops this server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#stopModule(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IServer.IOperationListener)">stopModule</A></B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
           <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asynchronously stops the given module.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#synchronousRestart(java.lang.String, IProgressMonitor)">synchronousRestart</A></B>(java.lang.String&nbsp;launchMode,
                   IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use <CODE>#restart(String, IServer.IOperationListener)</CODE> 
    instead</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#synchronousStart(java.lang.String, IProgressMonitor)">synchronousStart</A></B>(java.lang.String&nbsp;launchMode,
                 IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use <CODE>#start(String, IServer.IOperationListener)</CODE>
    instead</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#synchronousStop(boolean)">synchronousStop</A></B>(boolean&nbsp;force)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use <A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#stop(boolean, org.eclipse.wst.server.core.IServer.IOperationListener)"><CODE>stop(boolean, IOperationListener)</CODE></A>
    instead</I></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.server.core.IServerAttributes"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.wst.server.core.<A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html" title="interface in org.eclipse.wst.server.core">IServerAttributes</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#canModifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[], IProgressMonitor)">canModifyModules</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#createWorkingCopy()">createWorkingCopy</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#delete()">delete</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getAdapter(java.lang.Class)">getAdapter</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getChildModules(org.eclipse.wst.server.core.IModule[], IProgressMonitor)">getChildModules</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getHost()">getHost</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getId()">getId</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getModules()">getModules</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getName()">getName</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getRootModules(org.eclipse.wst.server.core.IModule, IProgressMonitor)">getRootModules</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getRuntime()">getRuntime</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getServerConfiguration()">getServerConfiguration</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getServerPorts(IProgressMonitor)">getServerPorts</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getServerType()">getServerType</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#isReadOnly()">isReadOnly</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#isWorkingCopy()">isWorkingCopy</A>, <A HREF="../../../../../org/eclipse/wst/server/core/IServerAttributes.html#loadAdapter(java.lang.Class, IProgressMonitor)">loadAdapter</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="STATE_UNKNOWN"><!-- --></A><H3>
STATE_UNKNOWN</H3>
<PRE>
static final int <B>STATE_UNKNOWN</B></PRE>
<DL>
<DD>Server state constant (value 0) indicating that the
 server is in an unknown state.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerState()"><CODE>getServerState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModuleState(org.eclipse.wst.server.core.IModule[])"><CODE>getModuleState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.STATE_UNKNOWN">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="STATE_STARTING"><!-- --></A><H3>
STATE_STARTING</H3>
<PRE>
static final int <B>STATE_STARTING</B></PRE>
<DL>
<DD>Server state constant (value 1) indicating that the
 server is starting, but not yet ready to serve content.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerState()"><CODE>getServerState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModuleState(org.eclipse.wst.server.core.IModule[])"><CODE>getModuleState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.STATE_STARTING">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="STATE_STARTED"><!-- --></A><H3>
STATE_STARTED</H3>
<PRE>
static final int <B>STATE_STARTED</B></PRE>
<DL>
<DD>Server state constant (value 2) indicating that the
 server is ready to serve content.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerState()"><CODE>getServerState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModuleState(org.eclipse.wst.server.core.IModule[])"><CODE>getModuleState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.STATE_STARTED">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="STATE_STOPPING"><!-- --></A><H3>
STATE_STOPPING</H3>
<PRE>
static final int <B>STATE_STOPPING</B></PRE>
<DL>
<DD>Server state constant (value 3) indicating that the
 server is shutting down.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerState()"><CODE>getServerState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModuleState(org.eclipse.wst.server.core.IModule[])"><CODE>getModuleState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.STATE_STOPPING">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="STATE_STOPPED"><!-- --></A><H3>
STATE_STOPPED</H3>
<PRE>
static final int <B>STATE_STOPPED</B></PRE>
<DL>
<DD>Server state constant (value 4) indicating that the
 server is stopped.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerState()"><CODE>getServerState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModuleState(org.eclipse.wst.server.core.IModule[])"><CODE>getModuleState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.STATE_STOPPED">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_STATE_UNKNOWN"><!-- --></A><H3>
PUBLISH_STATE_UNKNOWN</H3>
<PRE>
static final int <B>PUBLISH_STATE_UNKNOWN</B></PRE>
<DL>
<DD>Publish state constant (value 0) indicating that it's
 in an unknown state.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerPublishState()"><CODE>getServerPublishState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModulePublishState(org.eclipse.wst.server.core.IModule[])"><CODE>getModulePublishState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_STATE_UNKNOWN">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_STATE_NONE"><!-- --></A><H3>
PUBLISH_STATE_NONE</H3>
<PRE>
static final int <B>PUBLISH_STATE_NONE</B></PRE>
<DL>
<DD>Publish state constant (value 1) indicating that there
 is no publish required.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerPublishState()"><CODE>getServerPublishState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModulePublishState(org.eclipse.wst.server.core.IModule[])"><CODE>getModulePublishState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_STATE_NONE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_STATE_INCREMENTAL"><!-- --></A><H3>
PUBLISH_STATE_INCREMENTAL</H3>
<PRE>
static final int <B>PUBLISH_STATE_INCREMENTAL</B></PRE>
<DL>
<DD>Publish state constant (value 2) indicating that an
 incremental publish is required.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerPublishState()"><CODE>getServerPublishState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModulePublishState(org.eclipse.wst.server.core.IModule[])"><CODE>getModulePublishState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_STATE_INCREMENTAL">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_STATE_FULL"><!-- --></A><H3>
PUBLISH_STATE_FULL</H3>
<PRE>
static final int <B>PUBLISH_STATE_FULL</B></PRE>
<DL>
<DD>Publish state constant (value 3) indicating that a
 full publish is required.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getServerPublishState()"><CODE>getServerPublishState()</CODE></A>, 
<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#getModulePublishState(org.eclipse.wst.server.core.IModule[])"><CODE>getModulePublishState(IModule[])</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_STATE_FULL">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_INCREMENTAL"><!-- --></A><H3>
PUBLISH_INCREMENTAL</H3>
<PRE>
static final int <B>PUBLISH_INCREMENTAL</B></PRE>
<DL>
<DD>Publish kind constant (value 1) indicating an incremental publish request.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#publish(int, IProgressMonitor)"><CODE>publish(int, IProgressMonitor)</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_INCREMENTAL">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_FULL"><!-- --></A><H3>
PUBLISH_FULL</H3>
<PRE>
static final int <B>PUBLISH_FULL</B></PRE>
<DL>
<DD>Publish kind constant (value 2) indicating a full publish request.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#publish(int, IProgressMonitor)"><CODE>publish(int, IProgressMonitor)</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_FULL">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_AUTO"><!-- --></A><H3>
PUBLISH_AUTO</H3>
<PRE>
static final int <B>PUBLISH_AUTO</B></PRE>
<DL>
<DD>Publish kind constant (value 3) indicating an automatic publish request.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#publish(int, IProgressMonitor)"><CODE>publish(int, IProgressMonitor)</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_AUTO">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="PUBLISH_CLEAN"><!-- --></A><H3>
PUBLISH_CLEAN</H3>
<PRE>
static final int <B>PUBLISH_CLEAN</B></PRE>
<DL>
<DD>Publish kind constant (value 4) indicating a publish clean request
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#publish(int, IProgressMonitor)"><CODE>publish(int, IProgressMonitor)</CODE></A>, 
<A HREF="../../../../../constant-values.html#org.eclipse.wst.server.core.IServer.PUBLISH_CLEAN">Constant Field Values</A></DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getServerState()"><!-- --></A><H3>
getServerState</H3>
<PRE>
int <B>getServerState</B>()</PRE>
<DL>
<DD>Returns the current state of this server.
 <p>
 Note that this operation is guaranteed to be fast
 (it does not actually communicate with any actual
 server).
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>one of the server state (<code>STATE_XXX</code>)
 constants declared on <A HREF="../../../../../org/eclipse/wst/server/core/IServer.html" title="interface in org.eclipse.wst.server.core"><CODE>IServer</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getMode()"><!-- --></A><H3>
getMode</H3>
<PRE>
java.lang.String <B>getMode</B>()</PRE>
<DL>
<DD>Returns the ILaunchManager mode that the server is in. This method will
 return null if the server is not running.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the mode in which a server is running, one of the mode constants
    defined by <CODE>org.eclipse.debug.core.ILaunchManager</CODE>, or
    <code>null</code> if the server is stopped.</DL>
</DD>
</DL>
<HR>

<A NAME="getServerPublishState()"><!-- --></A><H3>
getServerPublishState</H3>
<PRE>
int <B>getServerPublishState</B>()</PRE>
<DL>
<DD>Returns the server's sync state.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>one of the PUBLISH_XXX state flags</DL>
</DD>
</DL>
<HR>

<A NAME="addServerListener(org.eclipse.wst.server.core.IServerListener)"><!-- --></A><H3>
addServerListener</H3>
<PRE>
void <B>addServerListener</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IServerListener.html" title="interface in org.eclipse.wst.server.core">IServerListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Adds the given server state listener to this server.
 Once registered, a listener starts receiving notification of 
 state changes to this server. The listener continues to receive
 notifications until it is removed.
 Has no effect if an identical listener is already registered.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the server listener<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#removeServerListener(org.eclipse.wst.server.core.IServerListener)"><CODE>removeServerListener(IServerListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="addServerListener(org.eclipse.wst.server.core.IServerListener, int)"><!-- --></A><H3>
addServerListener</H3>
<PRE>
void <B>addServerListener</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IServerListener.html" title="interface in org.eclipse.wst.server.core">IServerListener</A>&nbsp;listener,
                       int&nbsp;eventMask)</PRE>
<DL>
<DD>Adds the given server state listener to this server.
 Once registered, a listener starts receiving notification of 
 state changes to this server. The listener continues to receive
 notifications until it is removed.
 Has no effect if an identical listener is already registered.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the server listener<DD><CODE>eventMask</CODE> - the bit-wise OR of all event types of interest to the
 listener<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#removeServerListener(org.eclipse.wst.server.core.IServerListener)"><CODE>removeServerListener(IServerListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="removeServerListener(org.eclipse.wst.server.core.IServerListener)"><!-- --></A><H3>
removeServerListener</H3>
<PRE>
void <B>removeServerListener</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IServerListener.html" title="interface in org.eclipse.wst.server.core">IServerListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Removes the given server state listener from this server. Has no
 effect if the listener is not registered.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the listener<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#addServerListener(org.eclipse.wst.server.core.IServerListener)"><CODE>addServerListener(IServerListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="addPublishListener(org.eclipse.wst.server.core.IPublishListener)"><!-- --></A><H3>
addPublishListener</H3>
<PRE>
void <B>addPublishListener</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IPublishListener.html" title="interface in org.eclipse.wst.server.core">IPublishListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Adds a publish listener to this server.
 Has no effect if an identical listener is already registered.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the publish listener<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#removePublishListener(org.eclipse.wst.server.core.IPublishListener)"><CODE>removePublishListener(IPublishListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="removePublishListener(org.eclipse.wst.server.core.IPublishListener)"><!-- --></A><H3>
removePublishListener</H3>
<PRE>
void <B>removePublishListener</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IPublishListener.html" title="interface in org.eclipse.wst.server.core">IPublishListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Removes a publish listener from this server.
 Has no effect if the listener is not registered.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the publish listener<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#addPublishListener(org.eclipse.wst.server.core.IPublishListener)"><CODE>addPublishListener(IPublishListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="canPublish()"><!-- --></A><H3>
canPublish</H3>
<PRE>
IStatus <B>canPublish</B>()</PRE>
<DL>
<DD>Returns whether this server is in a state that it can
 be published to.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a status object with code <code>IStatus.OK</code> if the server can
   be published to, otherwise a status object indicating what is wrong</DL>
</DD>
</DL>
<HR>

<A NAME="shouldPublish()"><!-- --></A><H3>
shouldPublish</H3>
<PRE>
boolean <B>shouldPublish</B>()</PRE>
<DL>
<DD>Returns true if the server should be published to. This is <code>true</code> when the server
 can be published to and the server's publish state or any module's publish state is not
 PUBLISH_STATE_NONE.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>boolean<DT><B>Since:</B></DT>
  <DD>2.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="publish(int, IProgressMonitor)"><!-- --></A><H3>
publish</H3>
<PRE>
IStatus <B>publish</B>(int&nbsp;kind,
                IProgressMonitor&nbsp;monitor)</PRE>
<DL>
<DD>Publish to the server using the progress monitor. The result of the
 publish operation is returned as an IStatus.
 <p>
 This method should not be called from the UI thread. Publishing is long-
 running and may trigger resource change events or builds. Although this
 framework is safe, there is no guarantee that other bundles are UI-safe
 and the risk of UI deadlock is high. 
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>kind</CODE> - the kind of publish being requested. Valid values are:
    <ul>
    <li><code>PUBLISH_FULL</code>- indicates a full publish.</li>
    <li><code>PUBLISH_INCREMENTAL</code>- indicates a incremental publish.
    <li><code>PUBLISH_CLEAN</code>- indicates a clean request. Clean throws
      out all state and cleans up the module on the server before doing a
      full publish.
    </ul><DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired
<DT><B>Returns:</B><DD>status indicating what (if anything) went wrong<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#publish(int, java.util.List, IAdaptable, org.eclipse.wst.server.core.IServer.IOperationListener)"><CODE>publish(int, List, IAdaptable, IOperationListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="publish(int, java.util.List, IAdaptable, org.eclipse.wst.server.core.IServer.IOperationListener)"><!-- --></A><H3>
publish</H3>
<PRE>
void <B>publish</B>(int&nbsp;kind,
             java.util.List&lt;<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&gt;&nbsp;modules,
             IAdaptable&nbsp;info,
             <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Publish one or more modules to the server.
 <p>
 The operation listener can be used to add a listener for notification
 of the publish result. The listener will be called with a
 single successful status (severity OK) when the server has
 finished publishing, or a single failure (severity ERROR) if
 there was an error publishing to the server.
 </p><p>
 This method should not be called from the UI thread. Publishing is long-
 running and may trigger resource change events or builds. Although this
 framework is safe, there is no guarantee that other bundles are UI-safe
 and the risk of UI deadlock is high. 
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>kind</CODE> - the kind of publish being requested. Valid values are:
    <ul>
    <li><code>PUBLISH_FULL</code>- indicates a full publish.</li>
    <li><code>PUBLISH_INCREMENTAL</code>- indicates a incremental publish.
    <li><code>PUBLISH_CLEAN</code>- indicates a clean request. Clean throws
      out all state and cleans up the module on the server before doing a
      full publish.
    </ul><DD><CODE>modules</CODE> - a list of modules to publish, or <code>null</code> to
    publish all modules<DD><CODE>info</CODE> - the IAdaptable (or <code>null</code>) provided by the
    caller in order to supply UI information for prompting the
    user if necessary. When this parameter is not
    <code>null</code>, it should minimally contain an adapter
    for the Shell class.<DD><CODE>listener</CODE> - an operation listener to receive notification when this
    operation is done, or <code>null</code> if notification is not
    required<DT><B>Since:</B></DT>
  <DD>3.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="canStart(java.lang.String)"><!-- --></A><H3>
canStart</H3>
<PRE>
IStatus <B>canStart</B>(java.lang.String&nbsp;launchMode)</PRE>
<DL>
<DD>Returns whether this server is in a state that it can
 be started in the given mode.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>launchMode</CODE> - a mode in which a server can be launched,
    one of the mode constants defined by
    <CODE>org.eclipse.debug.core.ILaunchManager</CODE>
<DT><B>Returns:</B><DD>a status object with code <code>IStatus.OK</code> if the server can
    be started, otherwise a status object indicating why it can't</DL>
</DD>
</DL>
<HR>

<A NAME="start(java.lang.String, IProgressMonitor)"><!-- --></A><H3>
start</H3>
<PRE>
void <B>start</B>(java.lang.String&nbsp;launchMode,
           IProgressMonitor&nbsp;monitor)
           throws CoreException</PRE>
<DL>
<DD>Asynchronously starts this server in the given launch mode.
 <p>
 If canStart(launchMode) is false, this method will throw an
 exception.
 </p>
 <p>
 If the caller wants to listen for failure or success of the
 server starting, it can add a server listener or use the
 version of this method that takes an operation listener as a
 parameter.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>launchMode</CODE> - a mode in which a server can be launched,
    one of the mode constants defined by
    <CODE>org.eclipse.debug.core.ILaunchManager</CODE><DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if an error occurs while trying to start the server<DT><B>See Also:</B><DD><CODE>#start(String, IServer.IOperationListener)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="canRestart(java.lang.String)"><!-- --></A><H3>
canRestart</H3>
<PRE>
IStatus <B>canRestart</B>(java.lang.String&nbsp;mode)</PRE>
<DL>
<DD>Returns whether this server is in a state that it can
 be restarted in the given mode. Note that only servers
 that are currently running can be restarted.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>mode</CODE> - a mode in which a server can be launched,
    one of the mode constants defined by
    <CODE>org.eclipse.debug.core.ILaunchManager</CODE>
<DT><B>Returns:</B><DD>a status object with code <code>IStatus.OK</code> if the server can
    be restarted, otherwise a status object indicating why it can't</DL>
</DD>
</DL>
<HR>

<A NAME="shouldRestart()"><!-- --></A><H3>
shouldRestart</H3>
<PRE>
boolean <B>shouldRestart</B>()</PRE>
<DL>
<DD>Returns true if the server should be restarted. This is <code>true</code> when the server
 can be restarted and the server's restart state or any module's restart states is not
 false.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>boolean<DT><B>Since:</B></DT>
  <DD>2.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerRestartState()"><!-- --></A><H3>
getServerRestartState</H3>
<PRE>
boolean <B>getServerRestartState</B>()</PRE>
<DL>
<DD>Returns whether this server is out of sync and needs to be
 restarted. This method will return false when the
 server is not running.
 <p>
 [issue: Need to explain what is it that can get out of
 "out of sync" here, and how this can happen.]
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD><code>true</code> if this server is out of sync and needs to be
 restarted, and <code>false</code> otherwise (e.g., if the contents have
 not been modified and the server process is still in sync); the
 result is unspecified if the server is not currently running</DL>
</DD>
</DL>
<HR>

<A NAME="restart(java.lang.String, IProgressMonitor)"><!-- --></A><H3>
restart</H3>
<PRE>
void <B>restart</B>(java.lang.String&nbsp;launchMode,
             IProgressMonitor&nbsp;monitor)</PRE>
<DL>
<DD>Asynchronously restarts this server. This operation does
 nothing if this server cannot be stopped (<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canRestart(java.lang.String)"><CODE>canRestart(String)</CODE></A>
 returns <code>false</code>.
 This method cannot be used to start the server from a stopped state.
 <p>
 If the caller wants to listen for failure or success of the
 server restarting, it can add a server listener or use the
 version of this method that takes an operation listener as a
 parameter.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>launchMode</CODE> - a mode in which a server can be launched,
    one of the mode constants defined by
    <CODE>org.eclipse.debug.core.ILaunchManager</CODE><DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired<DT><B>See Also:</B><DD><CODE>#restart(String, IServer.IOperationListener)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="canStop()"><!-- --></A><H3>
canStop</H3>
<PRE>
IStatus <B>canStop</B>()</PRE>
<DL>
<DD>Returns whether this server is in a state that it can
 be stopped.
 Servers can be stopped if they are not already stopped and if
 they belong to a state-set that can be stopped.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a status object with code <code>IStatus.OK</code> if the server can
   be stopped, otherwise a status object indicating why it can't</DL>
</DD>
</DL>
<HR>

<A NAME="stop(boolean)"><!-- --></A><H3>
stop</H3>
<PRE>
void <B>stop</B>(boolean&nbsp;force)</PRE>
<DL>
<DD>Asynchronously stops this server. This operation does
 nothing if this server cannot be stopped (<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canStop()"><CODE>canStop()</CODE></A>
 returns <code>false</code>.
 <p>
 If force is <code>false</code>, it will attempt to stop the server
 normally/gracefully. If force is <code>true</code>, then the server
 process will be terminated any way that it can.
 </p>
 <p>
 If the caller wants to listen for success or failure of the
 server stopping, it can add a server listener or use the
 version of this method that takes an operation listener as a
 parameter.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>force</CODE> - <code>true</code> to kill the server, or <code>false</code>
    to stop normally<DT><B>See Also:</B><DD><CODE>#start(String, IServer.IOperationListener)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="stop(boolean, org.eclipse.wst.server.core.IServer.IOperationListener)"><!-- --></A><H3>
stop</H3>
<PRE>
void <B>stop</B>(boolean&nbsp;force,
          <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Asynchronously stops this server. This operation does
 nothing if this server cannot be stopped (<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canStop()"><CODE>canStop()</CODE></A>
 returns <code>false</code>.
 <p>
 If force is <code>false</code>, it will attempt to stop the server
 normally/gracefully. If force is <code>true</code>, then the server
 process will be terminated any way that it can.
 </p>
 <p>
 The operation listener can be used to add a listener for notification
 of this specific server stop. The listener will be called with a
 single successful status (severity OK) when the server has
 finished stopping, or a single failure (severity ERROR) if
 there was an error stopping the server.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>force</CODE> - <code>true</code> to kill the server, or <code>false</code>
    to stop normally<DD><CODE>listener</CODE> - an operation listener to receive notification when this
    operation is done, or <code>null</code> if notification is not
    required</DL>
</DD>
</DL>
<HR>

<A NAME="getModuleState(org.eclipse.wst.server.core.IModule[])"><!-- --></A><H3>
getModuleState</H3>
<PRE>
int <B>getModuleState</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</PRE>
<DL>
<DD>Returns the current state of the given module on this server.
 Returns <code>STATE_UNKNOWN</code> if the module
 is not among the ones associated with this server.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - the module
<DT><B>Returns:</B><DD>one of the state (<code>STATE_XXX</code>) constants declared
    on <A HREF="../../../../../org/eclipse/wst/server/core/IServer.html" title="interface in org.eclipse.wst.server.core"><CODE>IServer</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getModulePublishState(org.eclipse.wst.server.core.IModule[])"><!-- --></A><H3>
getModulePublishState</H3>
<PRE>
int <B>getModulePublishState</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</PRE>
<DL>
<DD>Returns the module's sync state.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - the module
<DT><B>Returns:</B><DD>one of the PUBLISH_STATE_XXX state flags</DL>
</DD>
</DL>
<HR>

<A NAME="getModuleRestartState(org.eclipse.wst.server.core.IModule[])"><!-- --></A><H3>
getModuleRestartState</H3>
<PRE>
boolean <B>getModuleRestartState</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</PRE>
<DL>
<DD>Check if the given module is in sync on the server. It should
 return true if the module should be restarted (is out of
 sync) or false if the module does not need to be restarted.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - the module
<DT><B>Returns:</B><DD>boolean</DL>
</DD>
</DL>
<HR>

<A NAME="canControlModule(org.eclipse.wst.server.core.IModule[], IProgressMonitor)"><!-- --></A><H3>
canControlModule</H3>
<PRE>
IStatus <B>canControlModule</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
                         IProgressMonitor&nbsp;monitor)</PRE>
<DL>
<DD>Returns whether the given module can be restarted.
 <p>
 This method has a progress monitor because it may involve plugin
 and class loading. No communication to the server will occur.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - the module<DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired
<DT><B>Returns:</B><DD>a status object with code <code>IStatus.OK</code> if the module can
    be restarted, otherwise a status object indicating why it can't</DL>
</DD>
</DL>
<HR>

<A NAME="startModule(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IServer.IOperationListener)"><!-- --></A><H3>
startModule</H3>
<PRE>
void <B>startModule</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
                 <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Asynchronously starts this server in the given launch mode.
 <p>
 If canStart(launchMode) is false, this method will throw an
 exception.
 </p>
 <p>
 The operation listener can be used to add a listener for notification
 of this specific module start. The listener will be called with a
 single successful status (severity OK) when the module has
 finished starting, or a single failure (severity ERROR) if
 there was an error starting the module.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - the module to be started<DD><CODE>listener</CODE> - an operation listener to receive notification when this
    operation is done, or <code>null</code> if notification is not
    required</DL>
</DD>
</DL>
<HR>

<A NAME="stopModule(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IServer.IOperationListener)"><!-- --></A><H3>
stopModule</H3>
<PRE>
void <B>stopModule</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
                <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Asynchronously stops the given module. This operation does
 nothing if this module cannot be stopped.
 <p>
 The operation listener can be used to add a listener for notification
 of this specific module stop. The listener will be called with a
 single successful status (severity OK) when the module has
 finished stopping, or a single failure (severity ERROR) if
 there was an error stopping the module.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - the module to be stopped<DD><CODE>listener</CODE> - an operation listener to receive notification when this
    operation is done, or <code>null</code> if notification is not
    required</DL>
</DD>
</DL>
<HR>

<A NAME="restartModule(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IServer.IOperationListener)"><!-- --></A><H3>
restartModule</H3>
<PRE>
void <B>restartModule</B>(<A HREF="../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module,
                   <A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core">IServer.IOperationListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Asynchronously restarts the given module on the server.
 <p>
 The implementation should update the module sync state and fire
 an event for the module. If the module does not exist on the server,
 an exception will be thrown.
 </p>
 <p>
 [issue: If the module was just published to the server
 and had never been started, would is be ok to "start"
 the module using this method?]
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - the module to be started<DD><CODE>listener</CODE> - an operation listener to receive notification when this
    operation is done, or <code>null</code> if notification is not
    required</DL>
</DD>
</DL>
<HR>

<A NAME="getLaunchConfiguration(boolean, IProgressMonitor)"><!-- --></A><H3>
getLaunchConfiguration</H3>
<PRE>
ILaunchConfiguration <B>getLaunchConfiguration</B>(boolean&nbsp;create,
                                            IProgressMonitor&nbsp;monitor)
                                            throws CoreException</PRE>
<DL>
<DD>Return the launch configuration for this server. If one does not exist, it
 will be created if "create" is true, and otherwise will return <code>null</code>.
 Will return <code>null</code> if this server type is invalid or has no associated
 launch configuration type (i.e. this server type cannot be started).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>create</CODE> - <code>true</code> if a new launch configuration should be
    created if there are none already<DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired
<DT><B>Returns:</B><DD>the launch configuration, or <code>null</code> if there was no
    existing launch configuration and <code>create</code> was false
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE><DT><B>Since:</B></DT>
  <DD>2.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="getLaunch()"><!-- --></A><H3>
getLaunch</H3>
<PRE>
ILaunch <B>getLaunch</B>()</PRE>
<DL>
<DD>Returns the launch that was used to start the server, if available. If the server
 is not running, will return <code>null</code>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the launch used to start the currently running server, or <code>null</code>
    if the launch is unavailable or could not be found<DT><B>Since:</B></DT>
  <DD>3.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="getStartTimeout()"><!-- --></A><H3>
getStartTimeout</H3>
<PRE>
int <B>getStartTimeout</B>()</PRE>
<DL>
<DD>Returns the start timeout in seconds.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the start timeout in seconds<DT><B>Since:</B></DT>
  <DD>3.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="getStopTimeout()"><!-- --></A><H3>
getStopTimeout</H3>
<PRE>
int <B>getStopTimeout</B>()</PRE>
<DL>
<DD>Returns the stop timeout in seconds.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the stop timeout in seconds<DT><B>Since:</B></DT>
  <DD>3.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="synchronousStart(java.lang.String, IProgressMonitor)"><!-- --></A><H3>
synchronousStart</H3>
<PRE>
void <B>synchronousStart</B>(java.lang.String&nbsp;launchMode,
                      IProgressMonitor&nbsp;monitor)
                      throws CoreException</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use <CODE>#start(String, IServer.IOperationListener)</CODE>
    instead</I>
<P>
<DD>Starts this server in the given launch mode and waits until the server
 has finished starting.
 <p>
 This convenience method uses <A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#start(java.lang.String, IProgressMonitor)"><CODE>start(String, IProgressMonitor)</CODE></A>
 to start the server, and an internal thread and listener to detect
 when the server has finished starting.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>launchMode</CODE> - a mode in which a server can be launched,
    one of the mode constants defined by
    <CODE>org.eclipse.debug.core.ILaunchManager</CODE><DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if an error occurs while trying to start the server</DL>
</DD>
</DL>
<HR>

<A NAME="synchronousStop(boolean)"><!-- --></A><H3>
synchronousStop</H3>
<PRE>
void <B>synchronousStop</B>(boolean&nbsp;force)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use <A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#stop(boolean, org.eclipse.wst.server.core.IServer.IOperationListener)"><CODE>stop(boolean, IOperationListener)</CODE></A>
    instead</I>
<P>
<DD>Stops this server and waits until the server has completely stopped.
 <p>
 This convenience method uses <A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#stop(boolean)"><CODE>stop(boolean)</CODE></A>
 to stop the server, and an internal thread and listener to detect
 when the server has complied.
 </p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>force</CODE> - <code>true</code> to kill the server, or <code>false</code>
    to stop normally</DL>
</DD>
</DL>
<HR>

<A NAME="synchronousRestart(java.lang.String, IProgressMonitor)"><!-- --></A><H3>
synchronousRestart</H3>
<PRE>
void <B>synchronousRestart</B>(java.lang.String&nbsp;launchMode,
                        IProgressMonitor&nbsp;monitor)
                        throws CoreException</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use <CODE>#restart(String, IServer.IOperationListener)</CODE> 
    instead</I>
<P>
<DD>Synchronously restarts this server. This operation does
 nothing if this server cannot be stopped (<A HREF="../../../../../org/eclipse/wst/server/core/IServer.html#canRestart(java.lang.String)"><CODE>canRestart(String)</CODE></A>
 returns <code>false</code>.
 <p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>launchMode</CODE> - a mode in which a server can be launched,
    one of the mode constants defined by
    <CODE>org.eclipse.debug.core.ILaunchManager</CODE><DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if there was an error</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IServer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/eclipse/wst/server/core/IServer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IServer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
