| <html> |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| <link rel="stylesheet" href="../../../..//default_style.css" type="text/css"> |
| <link rel="stylesheet" href="../../../..//webtools/wtp.css" type="text/css"> |
| <title>Generic server - Server Definition file explained</title> |
| </head> |
| <body> |
| <table width="100%" cellspacing="5" cellpadding="2" border="0"> |
| <tbody> |
| <tr> |
| <td width="60%" align="left"><font class="indextop">Generic server - Server Definition file explained</font> |
| <br> |
| <font class="indexsub">Generic server - Server Definition file explained</font></td><td width="40%"><img width="120" hspace="50" height="86" align="middle" src="../../../..//images/Idea.jpg"></td> |
| </tr> |
| </tbody> |
| </table> |
| <table width="100%" cellspacing="5" cellpadding="2" border="0"> |
| <col width="16"> |
| <col width="*"> |
| <tbody> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| |
| <b>By Gorkem Ercan</b> |
| |
| <br> |
| April 29, 2005 |
| <br> |
| |
| <br> |
| |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Introduction</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| Generic server is a special server and runtime implementation of |
| base server tooling that can adjust its behaviour by a server |
| type definition file. Server type definition files are XML based meta information files |
| that are introduced using |
| <i>"org.eclipse.jst.server.generic.core.serverdefinition"</i> extension point</p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| This document describes the different parts of the server definition files. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Server definition file introduction</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| A server definition file virtually has two parts; Properties and Server information. |
| Properties are variables that is something that can be manipulated and changed |
| using generic server graphical user interface. Server information is used by the |
| generic server to perform server tooling functionality. This information can be |
| defined so that properties are used to determine their values. |
| <br> |
| <br> |
| If we define a property like; |
| <pre> |
| <strong> |
| <font color="#0000FF"><property id=</font>"serverAddress" |
| <font color="#0000FF">label=</font>"Address:" |
| <font color="#0000FF">type=</font>"string" |
| <font color="#0000FF">context=</font>"server" |
| <font color="#0000FF">default=</font>"127.0.0.1" /> |
| </strong> |
| |
| </pre> |
| |
| <br> |
| And if we refer to this property in a server information element such as: |
| <pre> |
| |
| <strong> |
| <font color="#0000FF"><jndiConnection></font> |
| <font color="#0000FF"> <providerUrl></font>iiop://${serverAddress}:2001<font color="#0000FF"></providerUrl></font> |
| <font color="#0000FF"> <initialContextFactory></font>org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory<font color="#0000FF"></initialContextFactory></font> |
| <font color="#0000FF"></jndiConnection></font></strong> |
| |
| </pre> |
| |
| <br> |
| When used in the generic server tooling the provider URL becomes<br> |
| |
| <pre> |
| <strong><font color="#009933"> iiop://127.0.0.1:2001</font></strong> |
| </pre> |
| |
| |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff"> |
| Properties to collect user data |
| </font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> The defined properties show up in the generic server user interface for |
| collecting user data. A property element must have all the following attributes: |
| <br> |
| <br> |
| |
| <b>id:</b> A property is referred in the server definition and the generic server APIs with this value. |
| If you wish to refer to this property later in the server definiton file wrap it inside <i>${.. }</i>. Ids must be unique. |
| <br> |
| <br> |
| |
| |
| <b>label:</b> User friendly alias for the property. This is value is shown to users. |
| <br> |
| <br> |
| |
| <b>type:</b> Properties are string valued. This attribute determines the type of GUI |
| to use. The allowed values, <i>"string"</i> renders a text widget, |
| <i>"boolean"</i> renders a check box, |
| <i>"directory"</i> renders a file path dialog, |
| <i>"file"</i> renders a file dialog. |
| <br> |
| <br> |
| |
| <b>context:</b>Determined whether the property is part of server runtime or a server instance. |
| The user is asked for the value of the property in new Server Runtime wizard or New Server wizard |
| depending on this value. Allowed values are <i>"server"</i>, and <i>"runtime"</i> |
| |
| |
| <br> |
| <br> |
| |
| <b>default:</b> This is the initial value presented to user. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Defining classpaths</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| Well defined classpaths are an important part of server definitions. A classpath definition |
| can be referred in more than one section of the server definition. It can be used to |
| start, stop server or define the entries to be added to a project' s build path. |
| Classpaths are defined using the classpath element. |
| <pre> |
| |
| <strong> |
| <font color="#0000FF"><classpath id="</font>jonas<font color="#0000FF">"></font> |
| <font color="#0000FF"> <archive path="</font>${classPath}/lib/common/ow_jonas_bootstrap.jar<font color="#0000FF">" /></font> |
| <font color="#0000FF"> <archive path="</font>${classPath}/conf<font color="#0000FF">" /></font> |
| <font color="#0000FF"></classpath></font> |
| </strong> |
| |
| </pre> |
| |
| <br> |
| |
| <b>id:</b> Is the name that this classpath is referred to in server definition file and the generic |
| server APIs |
| <br> |
| <br> |
| |
| <b>archive and path:</b> this element points either to a directory or a java library that will be a part of the |
| classpath. |
| <br> |
| <br> |
| If a flexible project is targeted for a generic server its build path is updated by |
| the generic server tooling to include required libraries by the server. In server definition |
| files the project element is used to determine which classpath |
| definition is used for project build paths. |
| <br> |
| <br> |
| |
| <b>project:</b> element contains only one element that refers to a classpath definition. |
| <pre> |
| <strong> |
| <font color="#0000FF"><project></font> |
| <font color="#0000FF"> <classpathReference></font>jonas<font color="#0000FF"></classpathReference></font> |
| <font color="#0000FF"></project></font> |
| </strong> |
| </pre> |
| |
| |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Information to start and stop your server</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| The start and stop elements are very similiar tags that are used to define parameters to launch |
| a server, and stop a running server respectively. They are both consist of the same elements. Generic server |
| framework support two kinds of launches. A java launch and external launch. The type of the launch is determined |
| by the launchType attribute in start or stop tag. The valid values are external and java. |
| |
| <br> |
| <br> |
| |
| <b>workingDirectory:</b> This is the directory in which the application server starts. |
| <br> |
| <br> |
| |
| <b>programArguments:</b> Specific values that the server is expecting (a user name or a URLs, configuration |
| params, for example). |
| <br> |
| <br> |
| If a java launch is configured you should define mainClass, vmParameters, classpathReference tags in addition to above. |
| <br> |
| <br> |
| |
| <b>mainClass</b> A java application server is a Java application after all. Like any other Java application |
| you will need a class with a main method to start it. This the name of that class. |
| <br> |
| <br> |
| |
| <b>vmParameters:</b> Values that are used as parameters to java virtual machine. |
| <br> |
| <br> |
| |
| <b>classpathReference:</b> This is the classpath definition used to invoke the main class. |
| <br> |
| <br> |
| when defining an external launch use the external, and debugPort tags with workingDirectory and programArguments. |
| <br> |
| <br> |
| |
| <b>debugPort:</b>This is the port number that eclipse debugger will connect to when the server is started in debug mode. |
| <br> |
| <br> |
| |
| <b>external:</b>This is the external executable or script that will be used for launching the server. The os attribute in the |
| tag indicates the platform of the definition. You can have as many external tags as the number of platform you wish to support. |
| |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Publishers</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| Generic publishers are general purpose publishers that can be used for publishing to different |
| servers. It is also possible to implement a server specific publisher, if the publishing |
| mechanisms of the server requires it. A new publisher is introduced using |
| <i>org.eclipse.jst.server.generic.core.genericpublisher</i> extension point. WTP includes the |
| general purpose ANT publisher. ANT based publisher simply calls specific targets on an ANT script to |
| publish modules to a server. |
| <br> |
| <br> |
| A server definition file can contain some server specific information that is used for initializing |
| the publisher. The publisher element in the server definiton can be used for this purpose. |
| <br> |
| <br> |
| |
| <pre> |
| <strong> |
| <font color="#0000FF"><publisher id="</font>org.eclipse.jst.server.generic.antpublisher<font color="#0000FF">"></font> |
| <font color="#0000FF"> <publisherdata></font> |
| <font color="#0000FF"> <dataname></font>build.file<font color="#0000FF"></dataname></font> |
| <font color="#0000FF"> <datavalue></font>/buildfiles/jonas.xml<font color="#0000FF"></datavalue></font> |
| <font color="#0000FF"> </publisherdata></font> |
| <font color="#0000FF"></publisher></font> |
| </strong> |
| |
| </pre> |
| |
| <br> |
| |
| <b>id:</b> This is the id of the publisher. This value must match the value in the <i>plugin.xml</i> |
| where the publisher is defined. |
| <br> |
| <br> |
| |
| <b>publisherdata:</b> A single name value pair that will be passed to publisher. |
| |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Modules</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| The <i>module</i> element shows the module types this server definition can work. |
| It also includes information on publishing the module. |
| <br> |
| <br> |
| |
| <b>type:</b> The module type. This value must match the value in the <i>plugin.xml</i> where the |
| module type is defined. |
| <br> |
| <br> |
| |
| <b>publishDir:</b> The directory where the final module will be published to. |
| <br> |
| <br> |
| |
| <b>publisherReference:</b> The id of the generic publisher that should be used to publishing |
| of this module type. |
| |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Ports</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| the <i>port</i> element indicates the ports and the protocols that the server starts on. These |
| values are used to determine if a server is alive. |
| <br> |
| <br> |
| |
| <b>no:</b> The port number. |
| <br> |
| <br> |
| |
| <b>protocol:</b> The protocol supported by this port. |
| <br> |
| <br> |
| |
| <b>name:</b> User friendly name of the port' s protocol. |
| |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">JNDI properties</font></b></td> |
| </tr> |
| <tr> |
| <td valign="top" align="right"> </td><td valign="top"> |
| <p> |
| The JNDI properties for a server are needed for any clients that need jndi such as EJB testers. The |
| <i>jndiConnection</i> element is used to provide the jndi information for accessing an application server. |
| <br> |
| <br> |
| |
| <b>providerUrl:</b> The url to jndi server. |
| <br> |
| <br> |
| |
| <b>initialContextFactory:</b> Name of the initial context factory class for the server' s jndi implementation. |
| <br> |
| <br> |
| |
| <b>jndiProperty:</b> Name, value pairs that may be used for establishing jndi connection, such as usernames, passwords, etc. |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </body> |
| </html> |