Directory locations and properties

The Open Liberty default directory structure is helpful for understanding the relationship between directories and files. Some directories have properties that can be used to specify file locations when you configure the server. For example, the wlp.install.dir property is used to specify the location of the wlp/ directory.

Directory properties can be specified in different places. For example, the wlp.install.dir property can be set in the server.xml or bootstrap.properties files, depending on when you want the property to be processed. For more information about these files and the order in which properties are processed, see the Server configuration overview.

You can bind directory properties into the JNDI namespace by using the predefined variables that are associated with these properties. For more information, see Provide programmatic access to predefined variables.

To ensure configuration portability, use the most specific property that is appropriate and do not rely on the relationship between resources. For example, in some configurations the ${wlp.install.dir} installation location might not be the parent of the customized ${wlp.user.dir} instance.

The following table shows the Open Liberty default directory structure. The first column contains a directory tree. If a directory has an associated property, the property is provided in the second column. A description of each directory or file is given in the third column.

The Open Liberty default directory structure
Directory or filePropertyDescription

wlp/

wlp.install.dir

Root of installation.

+- bin/

Scripts for managing the installation, for example, server.

+- clients/

Open Liberty client and thin client libraries, for example, restConnector.jar.

     +- jython/

Jython-based scripts.

+- dev/

Root for developer resources (APIs, SPIs, specifications, and tools).

     +- api/

Public APIs that are available for both compile and run time by default.

          +- ibm/

APIs that are available in Open Liberty.

               +- javadoc/

Java document archives for APIs.

          +- spec/

Public specification APIs that are available for both compile and run time by default.

          +- third-party/

Third-party APIs that are available at compile time by default and must be specified in the configuration by using the apiTypeVisibility attribute of the classloader element for applications at run time.

     +- spi/

Public SPIs that are available for both compile and run time by default.

          +- ibm/

SPIs that are available in Open Liberty.

               +- javadoc/

Java document archives for SPIs.

          +- spec/

Public specification SPIs that are available for both compile and run time by default.

     +- tools/

Ant plug-in for Open Liberty.

The wlp-anttasks.jar file in the tools directory was removed from Open Liberty in 19.0.0.3. An open source Ant plug-in with more tasks is available for Open Liberty. The more recent Ant plug-in has a different antlib namespace, xmlns:wlp="antlib:net.wasdev.wlp.ant. For more information about the open source Ant plug-in for Open Liberty, see the ci.ant GitHub repository.

+- etc/

User-customized server variables that apply to all servers (optional). For more information about Open Liberty environment variables, see Default environment variables.

     +- server.env

Default server script environment variables (optional).

     +- client.env

Default client script environment variables (optional).

     +- jvm.options

Default JVM options (optional).

+- lafiles/

License information files.

+- lib/

Platform runtime environment.

+- templates/

Runtime customization templates and examples.

     +- server/

Server template when creating a server.

     +- client/

Client template when creating a client.

+- usr/

wlp.user.dir

User directory.

     +- extension/

usr.extension.dir

User-developed features.

     +- shared/

          +- apps/

shared.app.dir

Shared applications.

          +- config/

shared.config.dir

Shared configuration files.

          +- resources/

shared.resource.dir

Shared resource definitions: adapters, data sources.

          +- stackGroups/

shared.stackgroup.dir

Shared stack groups for remote deployment of packages and installables.

     +- servers/

Shared servers directory.

          +- server_name

server.config.dir

Server configuration directory.

Use the ${server.config.dir} directory to reference server-specific configuration.

               +- variables

Default directory for the files to be loaded as configuration variables. For more information, see Variable substitution precedence.

               +- bootstrap.properties

Server bootstrap properties (optional). For more information about this file, see the Server configuration overview.

               +- jvm.options

Server JVM options, which replace the values in the wlp/etc/jvm.options file (optional). For more information about this file, see the Server configuration overview.

               +- server.env

Server script environment variables, which are merged with wlp/etc/server.env (optional). For more information about this file, see the Server configuration overview.

               +- server.xml

Server configuration overlays (required). For more information about this file, see the Server configuration overview.

               +- apps/

Server configuration for applications.

               +- dropins/

Server default application dropins folder (optional).

                    +- application_name

Application folder or archive (optional).

               +- configDropins/

Server configuration dropins folder (optional).

                    +- defaults

Default server configuration dropins folder (optional).

                    +- overrides

Server configuration overrides dropins folder (optional).

          +- server_name

server.output.dir

Server output directory.

Use the ${server.output.dir} directory to describe artifacts generated by the server, such as log files and the workarea/ directory.

               +- logs/

Server log files, including First Failure Data Capture (FFDC) logs.

This directory is present after the server runs.

                    +- console.log

Basic server status and operations messages.

                    +- trace_timestamp.log

Time-stamped trace messages, with the level of detail determined by the current tracing configuration.

                    +- ffdc/

First Failure Data Capture (FFDC) output directory.

                         +- ffdc_timestamp/

First Failure Data Capture (FFDC) output that typically includes selective memory dumps of diagnostic data related to the failure of a requested operation.

               +- workarea/

Files created by the server as it operates.

This directory is present after the server runs.

     +- clients/

Shared clients directory.

          +- client_name

Client configuration directory.

               +- bootstrap.properties

Client bootstrap properties (optional).

               +- client.jvm.options

Client JVM options, which replace the values in the wlp/etc/client.jvm.options file (optional).

               +- client.xml

Client configuration overlays (required).

               +- apps/

Client configuration for applications.

               +- logs/

Client log files, including First Failure Data Capture (FFDC) logs.

This directory is present after the server runs.

                    +- trace_timestamp.log

Time-stamped trace messages, with the level of detail determined by the current tracing configuration.

                    +- ffdc/

First Failure Data Capture (FFDC) output directory.

                         +- ffdc_timestamp/

First Failure Data Capture (FFDC) output that typically includes selective memory dumps of diagnostic data related to the failure of a requested operation.

               +- workarea/

Files created by the client as it operates.

This directory is present after the server runs.