Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

7.0.0 Release Notes

Red Hat JBoss Enterprise Application Platform 7.0

For Use with Red Hat JBoss Enterprise Application Platform 7.0

Red Hat Customer Content Services

Abstract

These release notes contain important information related to Red Hat JBoss Enterprise Application Platform 7.0.

Chapter 1. New Features and Enhancements

Compatibility and Interoperability
  • EJB, JMS, and WS clients will be compatible across all minor and patch releases of JBoss EAP 7.
  • A JBoss EAP 7-managed domain administrator can manage JBoss EAP 6 domain hosts and servers.
  • A JBoss EAP 7 domain controller can manage other JBoss EAP 7 hosts in a managed domain as long as the domain controller runs the same or a more recent version than the rest of the domain.
  • Interoperability of remote EJB invocations between JBoss EAP 5 or JBoss EAP 6 on one side and JBoss EAP 7 on the other side exists if you run the latest version of JBoss EAP 5 or JBoss EAP 6.

    The following scenarios are possible:

    • Method invocation on remote EJBs through RMI, IIOP, or over SOAP web services.
    • Security context propagation.
    • Transaction propagation.
  • Remote EJB calls between JBoss EAP 7 and JBoss EAP 5 are now possible over IIOP. Between JBoss EAP 6 and JBoss EAP 7, the invocations are also possible via EJB API calls using JNDI.
  • JBoss EAP 5 interoperability is supported using web services in the release.
  • JBoss EAP 7 provides messaging consolidation and backwards compatibility with JBoss EAP 6. The JBoss EAP 6 HornetQ codebase was donated to the Apache ActiveMQ project, and the HornetQ community joined to build a next-generation messaging broker. This was materialized in the first major release of the ActiveMQ Artemis project. ActiveMQ Artemis includes many new features, and also retains protocol compatibility with the HornetQ broker. JBoss EAP 7 includes this new exciting project as its JMS broker, and due to the protocol compatibility, it fully replaces the HornetQ project.
JBoss EAP 7 Management
  • JBoss EAP 7 includes an updated management console user interface, easier navigation, and enhanced support for large-scale domain configurations.
  • The JBoss EAP product version is displayed in the lower-left corner of the management console. Click the link to view profile, version, HAL version, and core version.
  • Using the management CLI, administrators can see a history of configuration changes made by other authorized administrators.
  • Enhanced logging management includes the ability to view the available log files on a server, define custom formatters for logs in the management console, and configure logging at the subsystem level in the management CLI.
  • You can manage a server using the management CLI without having to start the server. This offline management CLI works similar to the admin-only mode but does not require launching the server and using a TCP port. The CLI embeds the server and launches it directly in admin-only mode.
  • If the picketlink-federation subsystem is enabled, it can be configured using the management console.
  • An administrator can generate an installation summary of standalone and managed domain server instances using the management CLI.
  • You can create your own profile by cloning existing JBoss EAP profiles (default, full, ha, full-ha) from the management CLI or the management console.
  • The management console home page includes the Take a Tour link. Click this link to take a tour of the updated management console.
  • An administrator can use the resolve-expressions parameter in the management CLI to resolve the expressions of returned attributes to their value on the server.
  • In a managed domain, an administrator can create a hierarchy of profiles. This allows the creation of a base profile with common extensions that can be inherited by other profiles.
Note

For more information about the management console, see the Management Console section in the JBoss EAP Configuration Guide.

For more information about the management CLI, see the JBoss EAP Management CLI Guide.

Highly Scalable Web Server (Undertow)
  • The web server and servlet implementation has changed from JBoss Web to Undertow. Undertow is a modern NIO web server designed for maximum throughput and scalability, including environments that exceed a million connections. It supports nonblocking and blocking handlers, traditional and asynchronous servlets, and JSR-356 WebSocket.
  • Using Undertow, you can configure JBoss EAP 7 to function as a multi-platform load balancer.
  • You can share HTTP sessions between multiple WAR modules in the same EAR.
  • Undertow includes handlers that replace the functionality provided by JBoss Web valves.
Note

For more information, see Configuring the Web Server (Undertow) in the JBoss EAP Configuration Guide.

Java EE 7

JBoss EAP 7 implements the Java EE 7 Full Platform and Web Profile standards, including:

  • Batch 1.0
  • JSON-P 1.0
  • Concurrency 1.0
  • WebSocket 1.1
  • JMS 2.0
  • JPA 2.1
  • JCA 1.7
  • JAX-RS 2.0
  • JAX-WS 2.2
  • Servlet 3.1
  • JSF 2.2
  • JSP 2.3
  • EL 3.0
  • CDI 1.2
  • JTA 1.2
  • Interceptors 1.2
  • Common Annotations 1.1
  • Managed Beans 1.0
  • EJB 3.2
  • Bean Validation 1.1
Java SE 8
  • JBoss EAP 7 requires Java SE 8, and JBoss EAP 7 has been tested with OpenJDK 8, Oracle JDK 8, IBM JDK 8, and HP JDK 8.
Clustering
  • New optimized session replication and single sign-on implementation using Undertow.
  • New optimized distributed @Stateful EJB caching implementation.
  • HA singleton deployments (for failover use cases similar to JBoss EAP 5. For example, EJB deployments enabled in one node in cluster).
  • New API for HA singleton services.
JCA and Datasources
  • The enhanced JCA connection manager includes the lazy connection manager extensions.
  • The datasources and resource-adapters subsystems allow you to set capacity policies.
  • Disabling enlistment tracing in IronJacamar is fully supported.
  • You can execute JDBC statements when a JDBC connection is obtained from a pool and returned to the pool.
  • It is now possible to choose a particular ManagedConnectionPool implementation class for each datasource and each connection definition of a resource adapter.
  • You can configure the fairness setting of the Semaphore class using the datasources and resource-adapters subsystems. This class is used to manage the connection pools in JCA, which provides a performance benefit in some use cases where the order of leasing connections is not required.
Note

For more information, see Java Connector Architecture (JCA) Management and Datasource Parameters in the JBoss EAP Configuration Guide.

Java EE Security Manager
The provisioning of permissions to deployments is based on the Java EE 7 specification, that is, META-INF/permissions.xml in the top level deployment. You can tweak the permissions by using the custom deployment descriptor META-INF/jboss-permissions.xml file, which can also be defined for submodules of the deployment. For more information about configuring permissions, see How To Configure Server Security for JBoss EAP.
Modularity Improvements
  • You can display module dependencies using the management API.
  • Index is generated automatically for static modules. For applications to use Java EE components located in static modules, the static module does not have to include a pre-generated annotation index.
Note

For more information, see the Modules section in the JBoss EAP Configuration Guide.

Transaction Enhancements
  • An XAResource that is part of an XA transaction and implements XAResourceWrapper will remain synchronized if the XA resource is committed before a transaction manager crashes. This removes the need for manual intervention after the transaction manager restarts.

    Note

    This feature does not work for third-party resource managers that do not implement XAResourceWrapper. This specifically does not work for resource manager of WebSphere MQ.

Server Suspend Mode/Graceful Shutdown
  • The new server suspend mode in JBoss EAP 7, once activated, rejects new requests but allows existing ones to complete. When the suspension process completes, the server can either be stopped without aborting in-flight transactions; left in suspended state while maintenance is performed; or returned to the running state where new requests are again allowed. (Excluding Messaging and Transactions; including Web, EJB, mod_cluster, Batch, Naming, and partially for EE Concurrency).
Note

For more information, see Suspend and Shut Down JBoss EAP Gracefully in the JBoss EAP Configuration Guide.

Port Reduction

JBoss EAP 7 now has almost all protocols multiplexed over two ports. The two ports include:

  • a management port (HTTP/JSON Management, HTTP Upgraded Remoting - Native Management & JMX, management console).
  • an application port (HTTP Servlet, JAX-RS, JAX-WS, WebSocket, HTTP Upgraded Remoting-EJB Invocation-Remote JNDI).
IIOP Implementation
  • The IIOP implementation changed from JacORB to a downstream branch of OpenJDK ORB. This change should lead to better interoperability with the JVM ORB and the Java EE RI.
Batch Enhancements

Batch enhancements include:

  • improvements in monitoring, such as the ability to list active jobs, finished jobs, and job execution steps.
  • the ability to start, stop, and resume batch jobs using management API.
  • the ability to restart batch jobs that failed because of a server failure. It can reset (i.e., ignore/log) the previous status so that the batch job can be executed on another server in the domain server group.
Migration CLI Operations for the discontinued subsystems of JBoss EAP 6
  • To help users migrating from old subsystems in JBoss EAP 6, such as JBoss Web, JacORB, and HornetQ, a set of management operations that can convert the old configuration to the new subsystem equivalent has been introduced. Because these operations migrate the underlying management resource model, old CLI scripts or custom provisioning systems can also take advantage of these.
Note

For more information, see Management CLI Migration Operation in the JBoss EAP Migration Guide.

Changes to Delivery of JBoss EAP Natives and Apache HTTP Server

JBoss EAP 7 natives are delivered differently in this release than in the past. Some now ship with the new Red Hat JBoss Core Services product, which is a set of supplementary software that is common to many of the Red Hat JBoss middleware products. The new product allows for faster distribution of updates and a more consistent update experience. The JBoss Core Services product is available for download in a different location on the Red Hat Customer Portal.

  • The following table lists the differences in the delivery methods between the releases.

    PackageJBoss EAP 6JBoss EAP 7

    AIO Natives for Messaging

    Delivered with the product in a separate "Native Utilities" download

    Included within the JBoss EAP distribution. No additional download is required.

    Apache HTTP Server

    Delivered with the product in a separate "Apache HTTP Server" download

    Delivered with the new JBoss Core Services product

    mod_cluster, mod_jk, isapi, and nsapi connectors

    Delivered with the product in a separate "Webserver Connector Natives" download

    Delivered with the new JBoss Core Services product

    JSVC

    Delivered with the product in a separate "Native Utilities" download

    Delivered with the new JBoss Core Services product

    OpenSSL

    Delivered with the product in a separate "Native Utilities" download

    This was dropped in JBoss EAP 7

    tcnatives

    Delivered with the product in a separate "Native Components" download

    This was dropped in JBoss EAP 7

  • You should also be aware of the following changes:

    • Support was dropped for mod_cluster and mod_jk connectors used with Apache HTTP Server from Red Hat Enterprise Linux RPM channels. If you run Apache HTTP Server from Red Hat Enterprise Linux RPM channels and need to configure load balancing for JBoss EAP 7 servers, you can do one of the following:

      • Use the Apache HTTP Server provided by JBoss Core Services.
      • You can configure JBoss EAP 7 to act as a front-end load balancer. For more information, see Configuring JBoss EAP as a Front-end Load Balancer in the JBoss EAP Configuration Guide.
      • You can deploy Apache HTTP Server on a machine that is supported and certified and then run the load balancer on that machine. For the list of supported configurations, see Overview of HTTP Connectors in the JBoss EAP 7 Configuration Guide.
    • Support was dropped for mod_cluster and mod_jk connectors used with Apache HTTP Server from the HP-UX Web Server Suites. If you run Apache HTTP Server from HP-UX Web Server Suites and need to configure load balancing for JBoss EAP 7 servers, you can do one of the following:

      • You can configure JBoss EAP 7 to act as a front-end load balancer. For more information, see Configuring JBoss EAP as a Front-end Load Balancer in the JBoss EAP Configuration Guide.
      • You can deploy Apache HTTP Server on a machine that is supported and certified and then run the load balancer on that machine. For the list of supported configurations, see Overview of HTTP Connectors in the JBoss EAP Configuration Guide.
  • You can find more information about JBoss Core Services in the Apache HTTP Server Installation Guide.

Chapter 2. Technology Preview

Warning

The following configurations and features are provided as Technology Preview only. They are not supported for use in a production environment, and may be subject to significant future changes. See this note on the Red Hat Customer Portal on the support scope for Technology Preview features.

Modern Enterprise Web Applications with Server-side JavaScript on JVM (Technology Preview only for JBoss EAP 7.0)
  • JBoss EAP 7 allows you to write server-side JavaScript (using JDK 8 Nashorn capabilities) to quickly develop REST endpoints that can pull in CDI beans, perform JNDI lookups, and invoke JPA Entity Beans. The Undertow project provides this capability.
PowerShell Scripts

The PowerShell scripts are available for Technology Preview only and not supported. PowerShell scripts are designed to work correctly with version 2 and newer, because JBoss EAP is supported on Windows Server 2008 R2 Enterprise x86_64 and Windows Server 2012 R2 Standard x86_64.

  • By default, Windows Server 2008 R2 Enterprise x86_64 uses PowerShell version 2. Newer version could be installed.
  • By default, Windows Server 2012 R2 Standard x86_64 uses PowerShell version 4. Newer version could be installed.

    The path of the PowerShell scripts is EAP_HOME/bin and you can use the scripts when you want to use modern scripting language on Windows.

Undertow provides support for the HTTP/2 standard
Undertow provides support for the HTTP/2 standard (Technology Preview only for JBoss EAP 7.0). HTTP/2 reduces latency by compressing headers and multiplexing streams over the same TCP connection. It also supports the ability for a server to push resources to the client before it has requested them, leading to faster page loads.
Clustered Singleton MDB
The clustered singleton MDB is a Technology Preview feature in JBoss EAP 7. When an MDB is identified as a clustered singleton and deployed in a cluster, it will always be active only on one node at a time. When the server node fails or is shut down, the clustered singleton MDB is activated on a different node and starts consuming messages on that node.
Datasource Templates in Management Console
The datasource templates provided for creating new datasources in the management console is a Technology Preview feature in JBoss EAP 7.
JCA and Datasources
JBoss EAP 7 supports a DistributedWorkManager implementation based on the JGroups project. This is a Technology Preview only.
Transaction Monitoring

JBoss EAP 7 supports transaction monitoring. This is a Technology Preview only. The following two new attributes are added to track the transactions:

  • number-of-system-rollbacks: The number of transactions that were rolled back due to an internal system error.
  • average-commit-time: The average time, in nanoseconds, to commit a transaction.

    These statistics are available only through the standard JMX client.

    Note

    A small number of stuck transactions can skew the overall average-commit-time.

Configuring Certain Subsystems in the Management Console

Configuring the following subsystems using the management console is a Technology Preview feature in JBoss EAP 7:

  • IO
  • Remoting
  • BeanValidation
  • Jaxrs
  • Jdr
  • Jsf
  • Jsr77
  • Naming
  • Pojo
  • RequestController
  • Sar
  • SecurityManager
  • Singleton
  • Weld
Batch processing (JSR 352) handled by JBeret

Batch processing (JSR 352) is handled by JBeret. JBeret has the following three helper annotations that may become part of the batch specification in a future release.

  • @org.jberet.cdi.JobScoped
  • @org.jberet.cdi.StepScoped
  • @org.jberet.cdi.PartitionScoped

    These annotations are in the org.jberet.core module, which is a private module. These specific annotations are considered only a Technology Preview. In a future release these annotations may be moved to a supported public module. As of now, using these annotations will result in a warning message being logged indicating the org.jberet.core module is a private module.

Server-Sent Events in Java (SSE)
An implementation of the Server-Sent Event Model in Java is provided for customers working with mobile and rich clients. This includes only the server implementation. This is a Technology Preview only.
Microsoft Azure Discovery Protocol
The JGroups AZURE_PING discovery protocol for Microsoft Azure has undergone minimal testing and is available for Technology Preview only in JBoss EAP 7. For more information, see JBEAP-3327 and the jgroups-azure GitHub repository.
JBoss EAP Container Image
The JBoss EAP base image for containers, registry.access.redhat.com/jboss-eap-7-tech-preview/eap70, distributed through the Red Hat Docker Registry is Technology Preview and is intended for development use only. It is NOT supported for use in production. For more details on the JBoss EAP container image, see Using the Red Hat JBoss Enterprise Application Platform Docker Image.

Chapter 3. Unsupported and Deprecated Functionality

3.1. Unsupported Features

Support for some technologies was removed due to the high maintenance cost, low community interest, and much better alternative solutions. The following features are not supported in JBoss EAP 7.

JAX-RPC
  • JAX-RPC is no longer supported. JAX-WS offers a more accurate and complete solution.
JSR 88
  • JSR 88 had limited adoption.
JBoss Web Services
  • Bean Validation 1.1 interceptors and features
  • JASPI authentication
Messaging (ActiveMQ Artemis)
  • AMQP, Stomp, REST, MQTT, and OpenWire protocol
  • Netty over HTTP and Netty Servlet transport
  • OIO (Old Java IO) connectors/acceptors type
  • Vert.x, AeroGear, Spring and Jolokia integration
  • Dynamic queue creation
  • Chain cluster
  • Using ActiveMQ Artemis Management using JMX
  • Use database as shared JDBC store
  • Scaling Down in cluster
  • Colocated HA topology configured using http-connector/http-acceptor or using replication-colocated/shared-store-colocated
  • Configuring multiple cluster connections
3rd JMS Broker Certification
  • Generic JMS resource adapter
Management Console
  • All flush operations for connection pools
  • Red Hat Access integration is dropped in JBoss EAP7
Resteasy 3
  • jose-jwt
  • resteasy-crypto
  • resteasy-yaml-provider
Command Line Interface (CLI)
  • CLI preferences in .jbossclirc file
  • Simplify working with complex attributes
  • CLI tab-completion for attribute name path syntax
  • Connection controller alias in jboss-cli.xml
  • RBAC-based tab completion for the CLI commands
Clustering
  • Cross-site replication
  • Declarative channels, channel forks, fork protocol stacks and custom JGroups protocols in the jgroups subsystem
  • Public API for JGroups channel creation
  • Runtime management metrics for JGroups channels
  • Ability to configure thread pools per protocol stack in the jgroups subsystem
  • Ability to configure thread pools per cache container in the infinispan subsystem
Transactions
  • Compensable transactions
  • REST transactions
Add user
  • Enable or disable users using add-user utility
Hibernate
  • Generics in Hibernate native API
PicketLink
  • PicketLink IDM
  • PicketLink IDM subsystem
  • STS Client Pooling feature of PicketLink Federation
  • PicketLink JEE (CDI Security)
Natives
  • Support was dropped for mod_cluster and mod_jk connectors used with Apache HTTP Server from Red Hat Enterprise Linux RPM channels.
  • Support was dropped for mod_cluster and mod_jk connectors used with Apache HTTP Server from the HP-UX Web Server Suites.
  • OpenSSL was dropped in JBoss EAP 7
  • tcnatives was dropped in JBoss EAP 7
Undertow
  • WebDAV functionality is not provided in JBoss EAP 7. In JBoss EAP 7, to add the WebDAV functionality, you need to implement the servlet, which implements the WebDAV functionality.
ORB
  • JacORB features

3.2. Deprecated Features

Some features have been deprecated with the release of JBoss EAP 7. This means that no enhancements will be made to these features, and they may be removed in the future, usually the next major release.

Red Hat will continue providing full support and bug fixes under our standard support terms and conditions. For more information about the Red Hat support policy, see the Red Hat JBoss Middleware Product Update and Support Policy article located on the Red Hat Customer Portal.

For details of which features have been deprecated, see the JBoss Enterprise Application Platform Component Details located on the Red Hat Customer Portal.

  • All PicketLink modules, including Federation, are deprecated in JBoss EAP 7, which means that they may be removed in future versions of JBoss EAP. JBoss EAP 7 still supports PicketLink Federation.
  • resteasy-jettison-provider is deprecated in JBoss EAP 7. For more information, see RESTEasy Jettison JSON Provider Changes in the JBoss EAP Migration Guide.

Chapter 4. Known Issues for the 7.0 Release

Security Manager

JBEAP-408 - Security manager’s maximum-permissions setting does not work

The configuration of an empty security manager maximum set leads to AllPermission being used. If you deliberately configure an empty set, then you are trying to establish an empty permission collection to block any deployments that have declared permissions. The default AllPermission that is assigned forbids this scenario and leads to any declared permission being accepted by the subsystem.

It prevents from blocking deployments that have declared security permissions. There might be a policy to block these deployments and this is not allowed in the current behavior.

Workaround

You can verify if deployments have permissions in META-INF/permissions.xml and simply not deploy them instead of relying on the subsystem to perform this check. Deployments that require security permissions are not deployed.

Security

JBEAP-3997 - Single logout does not fully work on distributed PicketLink Identity Provider
Global Logout (GLO) does not fully work on a distributed PicketLink Identity Provider (IDP) under certain circumstances, for example, if the sticky sessions feature is not used on the load balancer for an IDP application or a node with an IDP that you currently use fails before GLO. If you use different nodes with an IDP for logging in or out from service providers, you can remain logged in at several service providers after GLO, because the list of GLO participants is limited to the IDP where the GLO request was sent.

Domain Management

JBEAP-4125 - RBAC: The two kinds of non-addressability

Some resources are non-addressable to server-group and host scoped roles in order to provide a simplified view of the management model to improve usability. This is distinct from resources that are non-addressable to protect sensitive data.

For server-group scoped roles this means that resources in the profile, socket binding group, deployment, deployment override, server group, server config, and server portions of the management model will not be visible if they are not related to the server-groups specified for the role.

For host-scoped roles this means that resources in the /host=* portion of the management model will not be visible if they are not related to the server groups specified for the role.

However, in some cases, this simplified view can hide information that, while it is outside the scope of what the user is managing, can provide guidance to the user as to a course of action. An example of this is JBEAP-4160 - RBAC: Unable to deploy the same deployment that was already deployed by user from different server-group scope.

In a future release, some of these non-addressable resources might be changed to be addressable but non-readable. This will not affect the security of the server because they were not non-addressable for security reasons. Red Hat recommends that you do not rely on the non-addressability of resources to hide information unless the non-addressability is defined in a sensitivity constraint.

JBEAP-4434 - cannot start server with configuration file from EAP 6.4.7 and above

Change the value of the xmlns attribute on the root xml element to xmlns="urn:jboss:domain:1.7" before trying to use it with JBoss EAP7.

This should work fine unless your configuration includes items added in the 1.8 version of the schema. Those items are not expected to be commonly used.

JBEAP-4227 - Reorder JBoss LoginModules via CLI command.

Undertow

JBEAP-4255 - Add trace logging to the security constraint processing

This issue can make debugging security issues difficult since important information may not be logged on the instance’s log files.

Workaround

The only known workaround at the moment is to use Byteman to try and inject the missing logging statements. For more information, see https://access.redhat.com/solutions/31283.

JBEAP-2263 - Invalidating a session of an SSO on a different node than where the session was created does not logout the user

JBEAP-4425 - EAP 7 HTTP keep-alive performance drop compared to EAP 6.4.7 for default standalone.xml configuration and high number of clients

JBEAP-4413 - Undertow mod_cluster: Multiinterface box: Manager-Address always contains hostname

JBEAP-4256 - Add trace logging to the SSO code

In a situation where debugging an SSO issue is required, its resolution may be harder as some statements may not be logged that would help in easier resolution.

Workaround

The only workaround at the moment is to use Byteman to try and inject the missing logging statements. For more information, see https://access.redhat.com/solutions/31283.

Logging

JBEAP-4101 - LogContexts are not removed for ear subdeployments

JPA/Hibernate

JBEAP-1605 - Hibernate Validator cannot introspect Annotated Parameterized Types from method parameters using IBM JDK

An issue was identified in the IBM JVM implementation, which makes it impossible to introspect annotated parametrized types from method parameters using reflection when running on an IBM JVM. This affects Hibernate Validator, the Bean Validation implementation in JBoss EAP, in a way that custom validation constraints based on type-use annotations on method parameters will not work. For example:

public void addSomeInterestingStrings(List<@Interesting String> strings)

Assuming that @Interesting is declared as a validation constraint, this validation constraint will not be applied correctly when validating the "strings" argument. This is an issue in the JVM implementation, was reported to IBM and will be fixed in a future release of IBM Java. This does not affect other JVM implementations.

JBEAP-3707 - Oracle JDBC driver cannot handle entities with a one-character name in some cases

A bug was identified in Oracle JDBC driver 12.1.0.2, which causes an exception when trying to create a PreparedStatement for a table whose name contains only one character. This is an issue in the JDBC driver, was reported to Oracle and will be fixed in a later version of the driver.

Workaround

A workaround is to not use tables with only one character in their name or to quote the name.

JBEAP-3993 - naming context is not setup when starting the persistence unit

JBEAP-4475 - HHH-5393: Repeated Column in mapping when using MapKeyColumn

JBEAP-4179 - HHH-10679: Subselect not used when batch loading by ID

Quickstarts

JBEAP-4500 - Quickstart ejb-multi-server intermittently fails to deploy with ERROR MSC000001

Messaging (ActiveMQ Artemis, JMS)

JBEAP-4407 - Consumer crashes with IndexOutOfBoundsException when reading large messages from imported journal

If ActiveMQ Artemis journal was imported using the import-journal CLI operation and the journal contains large messages then consumer receiving those large messages will receive:

java.lang.IndexOutOfBoundsException: readerIndex(22) + length(409600) exceeds writerIndex(3580): UnpooledHeapByteBuf(ridx: 22, widx: 3580, cap: 3580)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1165)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:675)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:683)
at io.netty.buffer.WrappedByteBuf.readBytes(WrappedByteBuf.java:511)
...

Workaround The workaround is to use JMS Bridges. For more information, see JBoss EAP Migration Guide.

JBEAP-3998 - Live does not become active after failback if you use replication journal
If you use replication journal, there is a risk that the live server does not become active after failback.

JBEAP-4225 - Possible lost message over Failover/Failback using regular JMS Transactions

JBEAP-3848 - Artemis Testsuite PagingTest#testDeletePhysicalPages fails

JBEAP-3675 - Redistribution loses large messages when server with HA is restarted

JBEAP-2946 - Exception on subscriber during failback on replication

If you use replication journal with large messages, consumer may get the following exception, which causes its failure:

00:31:52,730 Thread-535 ERROR [org.jboss.qa.hornetq.apps.clients.SubscriberClientAck:207] Exception was thrown during receiving messages:
java.lang.IndexOutOfBoundsException: readerIndex(22) + length(409600) exceeds writerIndex(3580): UnpooledHeapByteBuf(ridx: 22, widx: 3580, cap: 3580)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1165)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:675)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:683)
at io.netty.buffer.WrappedByteBuf.readBytes(WrappedByteBuf.java:511)
at org.apache.activemq.artemis.core.buffers.impl.ChannelBufferWrapper.readSimpleStringInternal(ChannelBufferWrapper.java:86)
at org.apache.activemq.artemis.core.buffers.impl.ChannelBufferWrapper.readNullableSimpleString(ChannelBufferWrapper.java:68)
at org.apache.activemq.artemis.reader.TextMessageUtil.readBodyText(TextMessageUtil.java:37)
at org.apache.activemq.artemis.jms.client.ActiveMQTextMessage.doBeforeReceive(ActiveMQTextMessage.java:112)
at org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage(ActiveMQMessageConsumer.java:204)
at org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive(ActiveMQMessageConsumer.java:119)
at org.jboss.qa.hornetq.apps.clients.SubscriberClientAck.receiveMessage(SubscriberClientAck.java:326)
at org.jboss.qa.hornetq.apps.clients.SubscriberClientAck.run(SubscriberClientAck.java:169)
Exception in thread "Thread-535" java.lang.RuntimeException: Fatal exception was thrown in subscriber. Subscriber for node: 127.0.0.1

Clustering

JBEAP-4386 - session.invalidate() behaviour not conform Servlet specification in HA profile

JBEAP-3954 - EJB Invocation failed on component LocalStatefulSB: TimeoutException: Replication timeout for X

JBEAP-3946 - TimeoutException: Unable to acquire lock after 15 seconds in repl-async stress tests

JBEAP-3926 - ArrayIndexOutOfBoundsException in EJB client in 2-clusters EJB invocation graceful shutdown tests

JBEAP-3779 - Error executing command PrepareCommand/GetKeyValueCommand due to replication timeout

JBEAP-3696 - TimeoutException: Replication timeout when handling request

JBEAP-3583 - Exceptions in 2-clusters EJB invocation graceful shutdown tests

JBEAP-2155 - EJB lookup fails with "No cluster context available"

JBEAP-794 - WARN ISPN000197: Error updating cluster member list at the boot up

JBEAP-444 - WFLYEJB0467: The request was rejected as the container is suspended during server shutdown

JBEAP-4391 - Mutable session variables do not replicate correctly using non-tx session cache

JBEAP-4128 - NPE during Session.requestDone(…​) when using <transaction mode="NONE"></transaction>

Localization

JBEAP-4350 - fr_FR Installer - All strings 'Port Number' should be placed before 'ajp, http, …​' in French in each page.

JBEAP-4336 - ja_JP Installer - Unlocalized 'Quickstarts' page and title name.

JBEAP-4038 - zh_CN Installer - String 'For the list of supported drivers, please visit this link.' displayed as unreadable code or square box in Configure Runtime -> JDBC Driver Setup page.

JBEAP-4037 - ALL_LANG Installer - Page title 'Installation Overview' is unloclaized in Installation Overview page.

JBEAP-4010 - ALL_LANG Installer - Unlocalized strings in Validation warning dialog of Admin User Creation page.

JBEAP-4009 - zh_CN, ja_JP Installer - Chinese and Japanese items displayed as square box in the select language dialog when logged in OS as Chinese or Japanese locale.

Installer

JBEAP-4219 - Shortcuts are not generated by automatic installation script installation

JBEAP-3724 - Unfriendly behavior of jboss-cli and installer.jar on HP-UX boxes

JBEAP-1404 - IOException on Installation quit on Windows

EJB

JBEAP-4167 - Server is unable to invoke @Timeout method after 10 methods are called on Asynchronous bean on IBM JDK

JBEAP-3871 - EJBs accessible too early (spec violation)

JBEAP-3665 - RollbackException is not propagated from remote EJB client

JBEAP-3448 - SessionSynchronization callbacks allow concurrent access to SFSB

JBEAP-165 - Possible trouble of exception cause during error of 2PC

Transactions

JBEAP-4036 - "number-of-application-rollbacks" statistic counted multiple times during single rollback

JBEAP-2833 - Default transaction timeout is not applied for EJB bean when set for second time

JBEAP-1913 - Can’t define absolute path for object store location

JBEAP-3314 - Fix transaction recovery failures involving remote EJB resource
Transaction recovery operations can fail if they involve remote EJB resources that may have crashed. This issue occurs when a connection breaks down between the server and the client. Specifically, when the client crashes and is restarted, the server and the client will not automatically communicate with each other. In such scenarios, the server will not know that the client has restarted, effectively meaning that the EJB tx recovery process will not know, which EJB nodes to communicate with.

Management CLI

JBEAP-3563 - jconsole "JBoss EAP CLI" tab not loading when using remote

JBEAP-4415 - CLI: Unable to set mod_cluster cipher-suite on Windows

JBEAP-4412 - jboss-cli.bat: Setting keystore-path in a new security-realm interprets \ (backslash) in Windows paths

JBEAP-3724 - Unfriendly behavior of jboss-cli and installer.jar on HP-UX boxes

RESTEasy

JBEAP-2963 - RESTEasy-Spring is unable to set mediaTypeMappings in ResteasyDeployment by bean settings

JBEAP-3725 - Log level of error during request on non-existent REST end-point

Patching

Remoting

JBEAP-2017 - Endpoint can be closed before doConnect tasks finished causing AbstractHandleableCloseable.close to wait forever

JBEAP-3602 - Infinite wait in AbstractCloseableHandleable

Management Console

JBEAP-3940 - It is not possible to add deployment scanner in web console

You can add this using the management CLI:

/subsystem=deployment-scanner/scanner=new-scanner:add(path=new_deployment_dir,relative-to=jboss.server.base.dir,scan-interval=5000)

JBEAP-2821 - Remove Test connection button from create datasource wizard due to incomprehensible behavior caused by new need to reload after datasource is edited/removed

Server

JBEAP-4409 - Server processing request isn’t stopped immediately but waits for request processing to finish

Distribution

JBEAP-4254 - The mit license - license.txt is empty

The license text is as follows:

jsoup License

The jsoup code-base (include source and compiled packages) are distributed under the open source MIT license as described below.

The MIT License

Copyright © 2009 - 2013 Jonathan Hedley (jonathan@hedley.net)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
JBEAP-2807 - Problems with jboss-eap-7.0/docs/licenses

The cddl+gpl license - cddl+gpl_1_1.html license file is empty.

The license text is as follows:

COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)Version 1.1

1. Definitions.

    1.1. “Contributor” means each individual or entity that creates or contributes to the creation of Modifications.

    1.2. “Contributor Version” means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.

    1.3. “Covered Software” means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.

    1.4. “Executable” means the Covered Software in any form other than Source Code.

    1.5. “Initial Developer” means the individual or entity that first makes Original Software available under this License.

    1.6. “Larger Work” means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.

    1.7. “License” means this document.

    1.8. “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.

    1.9. “Modifications” means the Source Code and Executable form of any of the following:

    A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;

    B. Any new file that contains any part of the Original Software or previous Modification; or

    C. Any new file that is contributed or otherwise made available under the terms of this License.

    1.10. “Original Software” means the Source Code and Executable form of computer software code that is originally released under this License.

    1.11. “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.

    1.12. “Source Code” means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.

    1.13. “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

2. License Grants.

    2.1. The Initial Developer Grant.

    Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:

    (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and

    (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).

    (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.

    (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices.

    2.2. Contributor Grant.

    Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:

    (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and

    (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).

    (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.

    (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.

3. Distribution Obligations.

    3.1. Availability of Source Code.

    Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.

    3.2. Modifications.

    The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.

    3.3. Required Notices.

    You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.

    3.4. Application of Additional Terms.

    You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients' rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.

    3.5. Distribution of Executable Versions.

    You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient's rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.

    3.6. Larger Works.

    You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.

4. Versions of the License.

    4.1. New Versions.

    Oracle is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.

    4.2. Effect of New Versions.

    You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.

    4.3. Modified Versions.

    When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License.

5. DISCLAIMER OF WARRANTY.

    COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

6. TERMINATION.

    6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.

    6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as “Participant”) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant.

    6.3. If You assert a patent infringement claim against Participant alleging that the Participant Software directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.

    6.4. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.

7. LIMITATION OF LIABILITY.

    UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.

8. U.S. GOVERNMENT END USERS.

    The Covered Software is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as that term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial computer software documentation” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.

9. MISCELLANEOUS.

    This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction's conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.

10. RESPONSIBILITY FOR CLAIMS.

    As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.

The GNU General Public License (GPL) Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

    c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

    One line to give the program's name and a brief idea of what it does.
    Copyright (C) <year> <name of author>

    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

    Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.

    signature of Ty Coon, 1 April 1989
    Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

"CLASSPATH" EXCEPTION TO THE GPL VERSION 2

Certain source files distributed by Oracle are subject to the following clarification and special exception to the GPL Version 2, but only where Oracle has expressly included in the particular source file's header the words "Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the License file that accompanied this code."

Linking this library statically or dynamically with other modules is making a combined work based on this library.  Thus, the terms and conditions of the GNU General Public License Version 2 cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.  An independent module is a module which is not derived from or based on this library.  If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so.  If you do not wish to do so, delete this exception statement from your version.





Revised on 2018-02-08 10:16:21 EST

Legal Notice

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.