Web components
Table of contents |
Web components can be activated for a project in this area.
Web areas
There are four different areas for each project: The web components for each area can be activated and configured individually on the respective tab:
- Preview: location where the project contents will be previewed.
- QA (staging): location for the generated project contents.
- Production (live): location for the deployed project contents.
- ContentCreator:configuration for a local project ContentCreator instance
Web server in use
In every web area, web components can be configured for each project. The current active web server for each area is displayed in the dialog.
The adjacent combo box is used to select a different web server. All web servers configured in the Web server area are available to choose from. Different conversion steps are required depending on the type of web server:
- Jetty Web Server
- Generic web server
- External web server
- FirstSpirit Embedded Tomcat Web Server (2023.9)
- Tomcat
Install: The Install button is used to combine all web components in the particular web area of the project into a WAR file and to install them based on the configured web server. The button is activated if the web component has not yet been installed but is ready for installation. If the button is disabled, the web component has already been installed.
If the selected web server is a generic web server without the required script functionality or, where applicable, an Aggregating or external web server, the Download button is displayed instead (see below).
If the web application has already been installed, but then the configuration has changed (“Configure” button, see below) or a component has been added (“Add” button, see below) or deleted (“Delete” button, see below), the Update button is displayed instead of the Install button.
Uninstall: The Uninstall button is used to remove web components from the particular web area of the project. This action is performed for all web components of the particular area. Depending on the web server used, web component removal is carried out in a similar way as installation. If the button is disabled, the web component has not been installed yet.
Download: The Download button is used to download an application's WAR file, which needs to be installed manually on the web server (see Configuring an external web server for a web application, “Download the war file” option). The button is only displayed for configuring generic web servers without the required script functionality and, where applicable, for external web servers and for Aggregating web servers, if one of the included web servers can not be controlled by FirstSpirit.
Pluggability: “Web Framework Pluggability” was introduced with version 3.0 of the Java Servlet Specification and is provided by the servlet engine. However, the latter function requires that all classes must be scanned for annotations when the web application is deployed (and implicitly each time the application server is started).
This allows, for example:
- web.xml modularization or
- the configuration of components via Java annotations.
If the functionality is not needed, it can be disabled globally or for individual web applications so that deployment on the web server does not take longer than necessary.
Scanning of Java classes and TLDs can also be disabled directly via the servlet engine.
Pluggability configuration options in FirstSpirit:
- Manual setting for all web applications: Via the WEBAPP_ENABLE_PLUGGABILITY_FEATURES_DEFAULT parameter.
- Manual setting for individual web applications: Via the “Pluggability” selection field
- Automatic setting: Via the metadata-complete and absolute-ordering attributes.
Re 1) For all web applications:
In FirstSpirit, “Web Framework Pluggability” is enabled globally via the WEBAPP_ENABLE_PLUGGABILITY_FEATURES_DEFAULT parameter (default value “true”) within the fs-server.conf configuration file (see section: Area: Web Applications (fs-server.conf)):
- WEBAPP_ENABLE_PLUGGABILITY_FEATURES_DEFAULT=true (default value) allows the servlet engine to search for pluggability for all web applications.
- WEBAPP_ENABLE_PLUGGABILITY_FEATURES_DEFAULT=false disables the servlet engine's search for pluggability for all web applications.
Re 2) For individual web components:
pluggability features are handled using the “Pluggability” checkbox in this area, or for the global web applications via Server properties/Web Applications.
Possible values:
- Active: Allowing the servlet engine to search for pluggability, Java classes are scanned for annotations during deployment. This is the default value.
- Inactive: Disables the servlet engine's search for pluggability, Java classes are not scanned.
Re 3) Pluggability is automatically enabled if at least one web component of a web application requires pluggability. The pluggability of a web component is affected by the attributes metadata-complete and absolute-ordering(*).
(*) An empty absolute-ordering tag matches the metadata-complete="true" setting. If the settings for metadata-complete and absolute-ordering conflict, pluggability is also enabled.
This behavior ensures that fewer conflicts arise due to incorrect configuration. If necessary, the explicit setting “Inactive” for the pluggability in this area will be overridden by the forced enabling.
Example: The ContentCreator requires “Pluggability”. When using the ContentCreator, the pluggability mode is automatically enabled by the system (log message):
WARN (...) Force enabled pluggability for 'fs5webedit' in project '-1'.).
The different settings in the individual areas have the following effect:
Pluggability (manual setting in FirstSpirit) | Setting for metadata-complete | Pluggability (result) |
---|---|---|
active | regardless of the value | enabled |
inactive | no web component with metadata-complete="false" | disabled |
inactive | at least one web component with metadata-complete="false" | enabled |
The forced enabling of the “pluggability” has no effect on the interface, so the “Pluggability” option in ServerManager may be set to “Inactive” even though the option is activated. |
Background: Web applications configured in FirstSpirit are combined in a WAR file for deployment. Only when all configurations are saved together in one WAR file, FirstSpirit is able to determine whether the “Inactive” setting for the “Pluggability” option must be overridden or not.
Web components
Add: clicking this button opens the “Add” dialog. All web components which are available for adding to this web application are displayed in the list (see Modules).
These web components can be added to individual web areas (Preview, Staging, Live, ContentCreator) within the desired project. These components can then be configured (see “Configure” below) either by using a GUI generated by the component or by using a generic GUI.
Delete: Use the Delete button to delete a previously added component. These components are no longer displayed in the table and will no longer be part of the WAR file when next deployed. For the changes to take effect, deployment on the server is required “Install” button, see above).
Configure: The Configure button is used to edit a component that had been previously added (see modules). Depending on the component, configuration normally takes place either via one of the GUIs generated by the component.
Update: the “Update” button is used to update the component. Updating compares the current version of the component to the one on the FirstSpirit server. If a newer version is available there, updating is initiated for the particular project.
web.xml: If one or more web components are configured for a web area, a web.xml file is created automatically that consists of the individual web.xml files of the respective components. The web.xml file can be edited manually. Clicking on the web.xml button opens the dialog box where the file can be configured manually. After saving the changes, the “Edited” value appears in the “web.xml” column of the overview instead of the “Standard” value:
Servlet version: To assist in the detection of WebApp components that require an update to the Jakarta Servlet version, these are shown accordingly (highlighted in yellow if not selected).