When you deploy an application to a Liberty server using Open Liberty Tools, it attempts to detect what features your application needs and add them to the server configuration automatically. This applies to the entire application that is being deployed. If you are deploying an EAR project that includes several web projects in its deployment assembly, Open Liberty Tools looks at the following things across all of the projects:

The facets that are set on the application projects.

For CDI, the beans.xml file. It looks at the version, if specified, otherwise it looks at the schema version.

For JSP, files with the following extensions: .jsp , .jspf , .jsw , .jsv and .jspx .

For JSF, the existence of a WEB-INF/faces-config.xml file.

For JDBC or JMS, certain resource references in the web.xml .

All of the Java imports in all of the application projects to try to map them to features. For example, if there is an import for javax.persistence , Open Liberty Tools adds the JPA feature to the server configuration.

Some of these have version information (such as facets) and they are given higher priority than Java imports which, for example, have no version information. If Open Liberty Tools determines that a feature is needed but there is no information about which version of the feature to use, it will add the latest version.

To see what features Open Liberty Tools has detected for an application, right-click the application projects then click Properties > Liberty > Required Features. A dialog shows you the features and also allows you to modify whether the feature is added to the server configuration or not.