Try OpenEdge Now
skip to main content
Configuration
Configuring third-party Web applications : Third-party Web application layout
 

Third-party Web application layout

OpenEdge Management uses the Jetty Web server, a Java servlet container, which can host multiple Web applications. This allows the Web applications to load their own context listener. OpenEdge Management has single servlet context listener to apply extensions to the user interface. This context listener looks for a standard java properties file named WEB-INF/fathomextension.properties that has the configuration information for extensions to OpenEdge Management.
You can define extensions to OpenEdge Management by implementing specific classes and referencing known property names in the fathomextension.properties file to define which classes implement which interfaces.
An example of a servlet context listener specified in a web.xml file is provided in Table 1:
Table 121. WEB-INF/web.xml
<listener>
    <listener-class>com.progress.fathom.extension.ExtensionLoaderListener</listener-class>
</listener>
A sample fathomextension.properties file with a fathom extension initializer implementation and menu contributor implementation is provided in Table 2:
Table 122. WEB-INF/fathomextension.properties
# this is a sample fathom extension definition file.  This file contains
an example set of contributor classes that add UI elements to OpenEdge Management
# this is optional internal name of web extension
name=samplewebapp
# this is optional internal version of web extension
version=1.0
# this is an optional property that references a class that is an instanceof IExtensionInitializer
initializer=com.progress.fathom.sample.webapp.SampleApplicationInitializer
# this is an optional property that references a class that is an instance of IMenuContributor
menuContributor=com.progress.fathom.sample.webapp.SampleMenuContributor
# sample landing page contributor. The default fathom implementation does not do anything
landingPageContributor=com.progress.fathom.extension.preferences.FathomLandingPageContributor
When initialized, the servlet context listener instantiates the classes defined for known properties in the fathomextension.properties file. Though other properties in the file are ignored, they can be accessed from the initializer class implementation when required.
Once the extensions are loaded, they can be seen in the extension diagnostic page: http://localhost:9090/diagnostics/extensions.jsp.
Currently there are limited set of known properties that the context listener looks for, and they are described below:
Property name
Description
name
(Optional) Name of the fathom extension. This can be any string.
version
(Optional) Version of the fathom extension, displayed only in the extension diagnostic page. This can be any string.
initializer
(Optional) Fully qualified name of a class that implements IExtensionInitializer.
A single instance of this class is stored in the memory until the Web application is terminated. This class can initialize any information required by the fathom extension.
menuContributor
(Optional) Fully qualified name of a class that implements IMenuContributor.
A single instance of this class is stored in the memory until the Web application is terminated. This class is used by the fathom extension to add items to the main menu and footer menu of the console.
landingPageContributor
(Optional) Fully qualified name of a class that implements ILandingPageContributor.
A single instance of this class is stored in the memory until the Web application is terminated. This class is used by the fathom extension to add landing pages that the user can select to use immediately after logging into the console.