Features are the units of functionality by which you control the pieces of the runtime environment that are loaded into a particular server.
The following table lists the Liberty features that are
supported in the Liberty profile of each WebSphere® Application Server edition.
The following list contains information about the features
you can add to your server configuration. Including a feature in the
configuration might cause one or more additional features to be loaded
automatically. For example, if you include the
wab-1.0 feature,
the
servlet-3.0 and
blueprint-1.0 features
are loaded automatically. Each feature includes a brief description,
and an example of how the feature is declared within the
<featureManager> element
inside the
server.xml file. For example:
<server>
<featureManager>
<feature>servlet-3.0</feature>
<feature>localConnector-1.0</feature>
</featureManager>
</server>
Features
that can be used in a server configuration have public visibility
and are part of the Liberty product externals; use of those features
in the server configuration will be supported in future updates of
the product. The Liberty profile also provides a set of features with
protected visibility; these features cannot be used directly in the
server configuration but can be included in your own features; see Including protected features.
- Bean validation
- <feature>beanValidation-1.0</feature>
- The beanvalidation-1.0 feature provides validations for JavaBeans at each layer of an application.
- The validation can be applied to all layers of JavaBeans in an application by using annotations
or a validation.xml deployment descriptor.
- See also beanvalidation-1.0 feature restrictions.
- Blueprint
- <feature>blueprint-1.0</feature>
- The blueprint-1.0 feature enables support for deploying OSGi applications that use the OSGi blueprint container specification.
- With the OSGi Applications support in WebSphere Application Server, you can develop
and deploy modular applications that use Java EE
and OSGi technologies.
- CDI
- <feature>cdi-1.0</feature>
- The cdi-1.0 feature enables support for the Contexts
and Dependency Injection 1.0 specification on the Liberty profile.
- The supported entry point into CDI is through an expression language lookup of an @Named CDI style bean, with other CDI beans injected into it. See
also cdi-1.0 feature restrictions.
- Collective member
- <feature>collectiveMember-1.0</feature>
- The collectiveMember-1.0 feature enables a server to be a member of a management collective, allowing it to be managed by the collective controller.
- See Setting up the server-management environment for the Liberty profile using collectives.
- Dynamic cache
- <feature>webCache-1.0</feature>
Important: The webCache-1.0 feature enables
support for the dynamic cache service on the Liberty profile.
- The following functions are supported:
You can enable a third-party cache provider in the
server.xml file
by adding the following feature:
<feature>usr:testCache</feature>
Replace testCache with
the name of the third-party cache provider that you want to enable.
See
also Dynamic cache feature restrictions.
- Enterprise JavaBeans (EJB)
Lite subset
- <feature>ejbLite-3.1</feature>
- The ejbLite-3.1 feature provides support for EJB applications
written to the EJB Lite subset of the EJB 3.1 specification.
- The following functions are supported:
- An EJB module packaged in an EAR file.
- EJBs packaged in a WAR file.
- The @Stateful, @Stateless, @Singleton, and @EJB annotations.
- The javax.annotation.security annotations.
- Injection of JPA EntityManager, EntityManagerFactory, and JDBC
DataSource into all types of session bean types.
- ejb-jar.xml.
- EJB interceptors.
- No-Interface View.
- Bean managed transactions (UserTransaction).
- See also ejbLite-3.1 feature restrictions.
- Executor Service
- <feature>concurrent-1.0</feature>
- The concurrent-1.0 feature enables the creation of managed executor
services that allow applications to submit tasks to run concurrently,
with thread context that is managed by the application server.
- Java API for RESTful Web
Services (JAX-RS)
- <feature>jaxrs-1.1</feature>
- The jaxrs-1.1 feature provides support for the Java API for RESTful Web Services on the Liberty profile.
- For EJB applications that use the jaxrs-1.1 server feature, you must enable the ejbLite-3.1 feature in the server.xml file.
- For JAX-RS applications that use CDI, you must enable the cdi-1.0 feature in the server.xml file.
- See also jaxrs-1.1 feature restriction.
- Java API for XML-Based Web
Services (JAX-WS)
- <feature>jaxws-2.2</feature>
- The jaxws-2.2 feature provides support for the Java API for XML-Based Web Services on the Liberty profile.
- For web applications that support the JAX-WS programming model, you must enable the servlet-3.0 and jaxws-2.2 server features in the server.xml file.
- For EJB applications that support the JAX-WS programming model, you must enable the ejbLite-3.1, servlet-3.0, and jaxws-2.2 server features in the server.xml file.
- See also jaxws-2.2 feature restrictions.
- Java Architecture for XML
Binding (JAXB)
- <feature>jaxb-2.2</feature>
- The jaxb-2.2 feature provides support for the Java Architecture for XML Binding (JAXB) on the Liberty profile.
- See also JAXB.
- See also jaxb-2.2 feature restriction.
- Java Database Connectivity
(JDBC)
- <feature>jdbc-4.0</feature>
- The jdbc-4.0 feature provides support for applications that access a database. You can take an existing application that uses Java Database Connectivity (JDBC) and a data source, and deploy the application to a server.
- See also Deploying an existing JDBC application to the Liberty profile.
- Java Naming and Directory
Interface (JNDI)
- <feature>jndi-1.0</feature>
- The jndi-1.0 feature provides support for a single JNDI entry definition in the server configuration of the Liberty profile.
- Java Persistence API (JPA)
- <feature>jpa-2.0</feature>
- The jpa-2.0 feature provides support for applications that use application-managed and container-managed JPA written to the JPA 2.0 specification.
- The support is built on Apache OpenJPA with extensions to support the container-managed programming model.
- Extended Persistence Context is now
available for use with Stateful Session beans.
- See also Deploying a JPA application to the Liberty profile and jpa-2.0 feature restrictions.
- JavaServer Faces (JSF)
- <feature>jsf-2.0</feature>
- The jsf-2.0 feature provides support for web applications that use the JSF framework. This framework simplifies the construction of user interfaces.
- If you include the jsf-2.0 feature, you also
include the jsp-2.2 feature, because the JSF framework
is an extension of the JSP framework.
- See also jsf-2.0 feature restrictions.
- JavaServer Pages (JSP)
- <feature>jsp-2.2</feature>
- The jsp-2.2 feature provides support for JSPs that are written to the JSP 2.2 specification.
- If you include the jsp-2.2 feature, you also
include the servlet-3.0 feature.
- See also jsp-2.2 feature restrictions.
- JavaScript Object
Notation (JSON4J) Library
- <feature>json-1.0</feature>
- The json-1.0 feature provides access to the JSON4J library that provides a set of JSON handling classes for Java environments. The JSON4J library provides a simple Java model for constructing and manipulating data to be rendered as JSON data.
- See also Using JSON content in JAX-RS application requests
and responses and JSON4J Libraries API.
- ldapRegistry-3.0
- <feature>ldapRegistry-3.0</feature>
- The ldapRegistry-3.0 feature provides support for LDAP user registry. The version 3.0 of the ldapRegistry-3.0 feature is compliant with the LDAP Version 3 specifications. The ldapRegistry-3.0 feature is not automatically enabled by the appSecurity-2.0 feature.
Using this feature, you can federate multiple LDAP repositories. Two or more LDAP repositories can be configured in the server.xml file, and you can get the consolidated results from multiple repositories for all LDAP operations.
- Local JMX Connector
- <feature>localConnector-1.0</feature>
- The localConnector-1.0 feature provides a local JMX connector that is built into the JVM. The JMX connector can be used only on the same host machine by someone running under the same user ID and the same JDK. It enables local access by JMX clients such as jConsole, or other JMX clients that use the Attach API.
- See Connecting to the Liberty profile by using JMX.
- Local Web Caching
- <feature>distributedMap-1.0</feature>
- This feature enables local caching for web responses. It includes
the distributedMap feature (local programmatic cache)
and performs automatic caching of web application responses to improve
response times and throughput. Applications can include a cache-spec.xml file
to customize the response caching. The cache can be distributed through
addition of a network cache provider such as WebSphere eXtreme Scale.
- Managed Beans
- <feature>managedBeans-1.0</feature>
- The managedBeans-1.0 feature provides support
for the Managed Beans 1.0 specification (JSR-316). This feature enables
use of the javax.annotation.ManagedBean annotation.
- Message-Driven beans
- <feature>jmsMdb-3.1</feature>
- The jmsMdb-3.1 feature provides support for deploying and configuring the JMS resources that are required for the message-driven beans (MDB) to run within the Liberty profile. This feature enables MDB to interact with either the embedded Liberty messaging or WebSphere MQ.
- Messaging
- Embedded Liberty Messaging features:
- <feature>wasJmsServer-1.0</feature>
The wasJmsServer-1.0 feature enables the JMS messaging engine run time to be initialized. The messaging run time is responsible for providing the application connectivity, managing the state of destinations such as topics or queues, and handling quality of service, security, and transactions. This feature also provides support for the inbound connections from the remote messaging applications. The remote messaging applications can connect to the JMS messaging engine through TCP/IP over SSL or non-SSL.
- <feature>wasJmsClient-1.1</feature>
The wasJmsClient-1.1 feature enables support for JMS resource configurations (such as the connection factories, activation specifications, and queue and topic resources) and also provides the client libraries that are required by the messaging applications to connect to the JMS server on the Liberty profile.
- To connect using SSL, you must enable the SSL feature.
See Enabling JMS messaging for the Liberty profile.
- <feature>wasJmsSecurity-1.0</feature>
- The wasJmsSecurity-1.0 feature supports secure connections to the messaging engine. When the wasJmsSecurity-1.0 feature is enabled, it starts authenticating and authorizing the users who are trying to connect to the messaging engine. The user is authenticated against the registry that is defined in the server.xml file. When the user wants to access a destination such as a topic or a queue, then the user must be granted the required permissions. The access to the destination is defined in the <messagingSecurity> element (the child element of the messagingEngine element) in the server.xml file. If the wasJmsSecurity-1.0 feature is added and the <messagingSecurity> element is not defined in the server.xml file, then the users cannot connect to the messaging engine or perform any messaging action (for example, sending or receiving messages from the destinations).
Notes: - Configuring the user registry is a prerequisite for the wasJmsSecurity-1.0 feature.
Ensure that a user registry is configured before the wasJmsSecurity-1.0 feature
is enabled.
- When you enable the wasJmsSecurity-1.0 feature,
you must also configure the <messagingSecurity> element,
which is the child element of the <messagingEngine> element,
in the server.xml file. This configuration enables
authorized users to access messaging destinations.
- See Enabling secure JMS messaging for the Liberty profile.
- MongoDB
- <feature>mongodb-2.0</feature>
- The mongodb-2.0 feature provides support for MongoDB instances and associated database connections. Access to MongoDB connections is available either by JNDI lookup or resource injection. The native com.mongodb API performs the database manipulation.
- See Creating Liberty applications that use MongoDB.
- Monitoring
- <feature>monitor-1.0</feature>
- The monitor-1.0 feature provides Performance Monitoring Infrastructure (PMI) support on the Liberty profile.
- See Monitoring the Liberty profile.
- OSGi Console
- <feature>osgiConsole-1.0</feature>
- This feature enables an OSGi console to aid the debugging of the
runtime environment. It can be used to display information about bundles,
packages, and services. This information can be useful when developing
your own features for product extensions.
- OSGi JPA
- <feature>osgi.jpa-1.0</feature>
- The osgi.jpa-1.0 feature provides JPA support for OSGi applications on the Liberty profile.
- REST connector
- <feature>restConnector-1.0</feature>
- The restConnector-1.0 feature provides a secure JMX connector that can be used locally or remotely using any JDK. It enables remote access by JMX clients through a REST-based connector and requires SSL and basic user security configuration.
- See Connecting to the Liberty profile by using JMX.
- Secure Sockets Layer (SSL)
- <feature>ssl-1.0</feature>
- The ssl-1.0 feature provides support for Secure Sockets Layer (SSL) connections. To use the secure HTTPS listener, you must enable this feature.
- The Liberty profile provides a dummy keystore and a dummy truststore,
which are the same as those provided by previous versions of WebSphere Application Server.
- The secure HTTPS listener is not started unless the ssl-1.0 feature
is enabled. If the feature is unavailable, the HTTPS listener is stopped.
- To specify the SSL certificates, add a pointer in the server.xml file;
see Securing communications with the Liberty profile.
- To change the HTTPS port, set the <httpsPort> attribute
of the <httpEndpoint> element in the server.xml file;
see Specifying Liberty profile bootstrap properties.
- Security
- <feature> appSecurity-2.0</feature>
- This version of the appSecurity feature provides only certain aspects of security, based explicitly on the presence of other features. Additionally, it does not automatically include the servlet-3.0 or ldapRegistry-3.0 features, thereby reducing the server footprint. To secure web applications, you must include the servlet-3.0 feature. To enable EJB security, you must include the ejbLite-3.1 feature. To support an LDAP user registry, you must include the ldapRegistry-3.0 feature.
Note: - The appSecurity-2.0 feature supersedes appSecurity-1.0.
The features are the same except that appSecurity-2.0 does
not automatically include servlet-3.0 or ldapRegistry-3.0.
You can choose to use the appSecurity-2.0 version
instead in your server configuration. See Superseded features.
- To enable web security, you must specify the servlet-3.0 feature
in the server.xml file.
- To enable support for LDAP, you must specify the ldapRegistry-3.0 feature
in the server.xml file.
The
appSecurity-1.0 and
appSecurity-2.0 features
provide support for securing the server runtime environment and applications.
The following aspects are supported:
- Basic user registry
- Lightweight Directory Access Protocol (LDAP) user registry
- Basic authorization
- Web application security
- Basic authentication login
- Form-login Form-logout
- Programmatic APIs: getRemoteUser; getUserPrincipal; isUserInRole; authenticate; logout; login
- EJB application security
- All security annotations and all security elements that can be
specified in the ejb-jar.xml file.
- Programmatic APIs: getCallerPrincipal, isCallerInRole,
and getCallerIdentity1.
- EJB extension settings in the ibm-ejb-jar-ext.xml file
for run-as-mode of CALLER_IDENTITY and SPECIFIED_IDENTITY
(SYSTEM_IDENTITY is not supported).
When you add the
appSecurity-1.0 or
appSecurity-2.0 feature
to your server, you must also configure a user registry, such as the
basic user registry or the LDAP user registry.
- See also Securing the Liberty profile and its applications and appSecurity-2.0 feature restrictions.
- <feature>oauth-2.0</feature>
- The oauth-2.0 feature provides support for securing access to resources using the OAuth 2.0 protocol.
- Server status
- <feature>serverStatus-1.0</feature>
- The serverStatus-1.0 feature enables Liberty profile servers to automatically publish their status to WebSphere Application Server deployment managers and job managers that are aware of the server as a resource in their Job configuration. The known states are Started and Stopped.
- See Submitting jobs to manage Liberty profile servers and Installing Liberty profile server resources using
the job manager.
- Servlet
- <feature>servlet-3.0</feature>
- The servlet-3.0 feature provides support for HTTP Servlets written to the Java Servlet 3.0 specification.
- See also Securing the Liberty profile and its applications.
- Session Persistence
- <feature>sessionDatabase-1.0</feature>
- The sessionDatabase-1.0 feature provides session affinity and failover support on the Liberty profile.
- See Configuring session persistence for the Liberty profile.
- Timed Operations
- <feature>timedOperations-1.0</feature>
- This feature enables support for warnings to be logged when certain
operations in the application server are running more slowly than
expected.
- Web application bundle (WAB)
- <feature>wab-1.0</feature>
- The wab-1.0 feature provides support for WABs that are inside enterprise bundles.
This feature supports the following
resources packaged inside a WAB:
- Static web content and JSPs.
- HTTP servlets written to the Servlet 3.0 specification.
- Blueprint applications.
- If you include the wab-1.0 feature, you also
include the servlet-3.0 and blueprint-1.0 features.
- Web Profile
- <feature>webProfile-6.0</feature>
- This feature provides a convenient combination of the Liberty
features that are required to support the Java EE Web Profile.
- Web services security
- <feature>wsSecurity-1.1</feature>
- The wsSecurity-1.1 feature provides support for securing web services at the message level. To secure web services messages, you must enable this feature and the appSecurity-2.0 and jaxws-2.2 features. Web services security policies defined in a WSDL file are ignored and are not enforced unless the wsSecurity-1.1 feature is enabled.
- WebSphere MQ Messaging
feature:
- <feature>wmqJmsClient-1.1</feature>
- The wmqJmsClient-1.1 feature enables applications to use JMS messaging that connects to a WebSphere MQ server.