As we know Wildfly formerly known as JBoss AS is now making waves in new rising servers with awesome features and functionalities. Recently Wildfly team has released the brand new wildfly 8.1.0 Final version packed with lots of features and enhancements. You can download the latest wildfly versions from link here.
Before jumping into the deep we shall know the basic structure of wildfly and its functionalities and files used for what to have a good grasp on the new server. So here we will discuss about the directory structure and their functionalities and configuration files used.
Below is the sample structure of Wildfly 8.1.0.CR1
Below are the list of folders and there functionalities explained.
appclient: Configuration files, deployment content, and writable areas used by the application client container are run from this installation.
bin: All the server binaries, the startup script and also scripts that are used to setup the JVM startup parameters such as memory, heap memory size, among others, are present here.
docs: In this directory, the license files, sample configurations, documentation, and other documents are located that will increase your knowledge about WildFly.
domain: This directory will only be used if the server is started in the domain mode. Inside are the settings files, deployments contents, and areas of writing used by the server to store log files and temporary files.
modules: The WildFly classloading is structured in a modular way. All the necessary modules are stored in this directory. Also, the new modules that are installed should be stored here following the directory pattern. This directory should only be modified if you know what you’re doing to avoid classloading issues.
standalone: This directory will only be used when the server is started in the standalone mode. Here are configuration files, deployment contents, and areas of writing used by the server to store temporary files and logs, as well as the domain mode.
welcome-content: This is an area of internal use of the server that should not be used by end users unless they want to overwrite and insert their own application in the / context. Its alteration can influence the functioning of WildFly, welcome pages, or error messages that are present in this directory.
All above directory structures are the main folders of wildfly however Wildfly has two types of execution modes one is standalone mode and domain mode, there are different types of directories used for different modes of execution, and below are the details about the same.
Standalone Directory structure:
Domain mode sample directory structure:
Configuration: It contains all the configuration files that are necessary to run this installation.
Deployments: This is the directory utilized to perform your application deployments.
Lib/ext: This is the location for installed library jars referenced by applications using the Extension-List mechanism.
Tmp: These are the temporary files written by the server.
Data: This directory is not present on the domain mode. Here are files written by the server during startup and their lifecycle.
Log: These are the log files generated by the application server.
Content (only for domain): This directory must not be modified by end users. Here the Host Controller is stored in the internal work area for this installation.
Servers (only for domain): It is the writable area used by each application server instance that runs from this installation. Each application server instance will have its own subdirectory, created when the server is first started. In each server’s subdirectory, there will be the following subdirectories:
- data: This is the information written by the server that needs to survive a restart of the server
- log: These are the server’s log files
- tmp: This is the location for temporary files written by the server
Tmp/auth (only for domain): This is the special location used to exchange authentication tokens with local clients, so they can confirm that they are local to the running AS process.
To differentiate between domain and standalone below are the few major differences seen:
The domain mode does not accept exploded deployment. Also, the domain mode allows centralized management of all running instances to perform the deploys across all group instances simultaneously, which may cause application downtime during the deploy. Where the standalone mode keeps each single instance as a single server instance and it is not necessary to have a more complex configuration for implementation; the deployment can be performed instance by instance.
The standalone mode
The relevant files used in the standalone mode are explained as follows:
application-roles.properties: This is the file that contains the user permissions to access the applications.
application-users.properties: This is the file that contains user information and password to access applications.
mgmt-users.properties: This is the file that contains user information and password for access to the management console. This file is created by the user creation script available on the installation of the /bin directory.
mgmt-groups.properties: This file contains group information and administration permissions that the users have. This file is created by the user creation script.
logging.properties: This contains the initial bootstrap logging configuration for the AS instance. This boostrap logging configuration is replaced with the logging configuration specified in the standalone.xml file once the server boot has reached the point where that configuration is available.
standalone-full-ha.xml: It is a Java Enterprise Edition 6 certified full-profile configuration file with a high availability and the full list of services.
standalone-ha.xml: It is a Java Enterprise Edition 6 certified full-profile configuration file with high availability and the basic services.
standalone-full.xml: It is a Java Enterprise Edition 6 full-profile certified configuration file that includes all the technologies required by the full-profile specification, including most other OSGI with the full services.
standalone.xml: It is a Java Enterprise Edition 6 full-profile certified configuration file that includes all the technologies required by the Full Profile specification including most other OSGI with the full services.
The domain mode
The relevant files used in the domain mode are explained as follows:
application-users.properties: This is the file that contains the user permissions to access the applications.
application-roles.properties: This is the file that contains user information and password to access applications.
default-server-logging.properties: These are additional logger configurations. The root logger will always be configured.
domain.xml: It is a Java Enterprise Edition 6 full-profile certified configuration file that includes the technologies required by the full profile specification plus others including OSGi.
host-master.xml: This contains all the information contained in the host.xml file; however, with a little difference, these configurations will be applied to the host master of the cluster. In the review of the file we have “A simple configuration for a host controller that only acts as the master domain controller and does not itself directly control any servers.”
host-slave.xml: In this file, all the information that will be applied in the domain hosts slaves is present, that is., all instances of WildFly that make up the cluster.
host.xml: This is the host controller configuration file for the installation. Each cluster member must have its host.xml file that contains particular information for each site. It must have information such as the name of the instance of the cluster, configurations about how a new member will contact the domain to register and access the domain configuration settings, as well as specific physical installation, for example, the name of the network interface that will be used for executing the WildFly.
logging.properties: This contains the logging configuration for the host controller and process controller that run off this installation. It also defines the initial bootstrap logging configuration for each individual AS instance. This boostrap logging configuration is replaced with the logging configuration specified in the domain.xml file once the server boot has reached the point where that configuration is available.
mgmt-users.properties: This is the file that contains user information and password for access to the management console. This file is created by the user creation script available on the installation of /bin.
mgmt-groups.properties: This file contains group information and administration permissions that the users have; this file is created by the user creation script.
Below are few script and config files which is used by Wildfly for lifecycle operations which might be used by administrators on daily basis.
add-user.sh: This is used to create an application or manage users.
domain.sh: This is the domain mode startup script.
domain.conf: This is the boot configuration file that is used by domain.sh to set the boot parameters
standalone.sh: This is the standalone mode startup script.
standalone.conf: This is the startup configuration file that is used by standalone.sh to set the boot parameters
Above all are the details about the folder structure and configuration files used in Jboss Wildfly with their functionalities.