# Server Types

###### Identifier:

org.eclipse.wst.server.core.serverTypes

###### Since:

1.0

###### Description:

This extension point is used to provide support for a new server type.

###### Configuration Markup:

<!ELEMENT extension (serverType+)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT serverType EMPTY>

<!ATTLIST serverType

id CDATA #REQUIRED

name CDATA #REQUIRED

description CDATA #REQUIRED

class CDATA #REQUIRED

behaviourClass CDATA #IMPLIED

hasConfiguration (true | false)

runtimeTypeId CDATA #REQUIRED

launchConfigId CDATA #IMPLIED

supportsRemoteHosts (true | false)

runtime (true | false)

launchModes CDATA #IMPLIED

initialState CDATA #IMPLIED

startTimeout CDATA #IMPLIED

stopTimeout CDATA #IMPLIED

startBeforePublish (true | false) >

- id - unique identifier for the server type
- name - a translatable name used to identify this server type
- description - a translatable description of this server type
- class - specifies the fully qualified name of the Java class that extends `org.eclipse.wst.server.core.model.ServerDelegate`. Server instances of this type will delegate to instances of this class. Delegates must also have a public 0-arg constructor
- behaviourClass - specifies the fully qualified name of the Java class that implements `org.eclipse.wst.server.core.model.ServerBehaviourDelegate`. Server instances of this type will delegate to instances of this class. Delegates must also have a public 0-arg constructor
- hasConfiguration - true if this server has server configuration files
- runtimeTypeId - the runtime type id that this server type corresponds to
- launchConfigId - the launch configuration id for the launch configuration that is able to start this server
- supportsRemoteHosts - true if this server type can work with remote host names, false if this server type can only work on localhost. if unspecified, false is assumed
- runtime - true if this server requires a runtime, and false otherwise
- launchModes - a comma separated list of the launch modes that this server supports
- initialState - the intial state of the server, either "started", or "stopped". if this attribute is not specified, the server state will be "unknown"
- startTimeout - the timeout value (in ms) that the tool will wait for the server to be started. The default is 2 minutes
- stopTimeout - the timeout value (in ms) that the tool will wait for the server to be stopped. The default is 2 minutes
- startBeforePublish - boolean value "true" or "false" to specify whether the server needs to be started for publishing to occur. If "true", the server will be started on every call to publish() before executing the publish code

###### Examples:

The following is an example of a server type extension point:

       <extension
             point="org.eclipse.wst.server.core.serverTypes">
          <serverType
                id="com.example.serverType"
                name="%serverTypeName"
                description="%serverTypeDescription"
                supportsRemoteHosts="true"
                runtime="true"
                initialState="stopped"
                hasConfiguration="true"
                launchConfigId="com.example.launchConfigurationType"
                runtimeTypeId="com.example.runtime"
                class="com.example.ExampleServerDelegate"
                behaviourClass="com.example.ExampleServerBehaviourDelegate"/>
       </extension>

Copyright (c) 2000, 2005 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/