7.0.0 リリースノート

Red Hat JBoss Enterprise Application Platform 7.0

Red Hat JBoss Enterprise Application Platform 7 向け

Red Hat Customer Content Services

法律上の通知

Copyright © 2016 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, MetaMatrix, 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.

概要

本リリースノートには、Red Hat JBoss Enterprise Application Platform 7 に関する重要な情報が含まれています。

第1章 新機能および改良された機能

互換性と相互運用性
  • EJB、JMS、および WS クライアントは、JBoss EAP 7 のすべてのマイナーおよびパッチリリースで互換性を維持します。
  • JBoss EAP 7 で管理されたドメインの管理者は JBoss EAP 6 のドメインホストおよびサーバーを管理できます。
  • JBoss EAP 7 ドメインコントローラーは、他のドメインと同じバージョンまたはそれ以降バージョンを実行すれば、管理対象ドメインの他の JBoss EAP 7 ホストを管理できます。
  • 最新バージョンの JBoss EAP 5 または JBossEAP 6 を実行する場合、JBoss EAP 5 と JBoss EAP 7 または JBoss EAP 6 と JBoss EAP 7 との間で、リモート EJB 呼び出しの相互運用性が確保されます。

    可能なシナリオは次のとおりです。

    • RMI、IIOP、または SOAP 上の Web サービスを介したリモート EJB でのメソッド呼び出し。
    • セキュリティーコンテキストの伝搬。
    • トランザクションの伝搬。
  • IIOP 上にて JBoss EAP 7 と JBoss EAP 5 の間でリモート EJB 呼び出しを実行できるようになりました。JBoss EAP 6 と JBoss EAP 7 の間では、JNDI を使用して EJB API 呼び出しを介して呼び出しを実行することもできます。
  • 本リリースでは、Web サービスを使用して JBoss EAP 5 の相互運用性がサポートされます。
  • JBoss EAP 7 では、JBoss EAP 6 とのメッセージの統合が可能になり、後方互換性を維持します。JBoss EAP 6 の HornetQ コードベースは Apache ActiveMQ プロジェクトへ寄贈され、HornetQ コミュニティーが参加して次世代のメッセージングブローカーの構築が行われました。これは、ActiveMQ Artemis プロジェクトの最初のメジャーリリースで具体化されました。ActiveMQ Artemis には多くの新機能が含まれ、HornetQ ブローカーとのプロトコルの互換性も維持されています。JBoss EAP 7 にはこの新プロジェクトが JMS ブローカーとして含まれ、プロトコルの互換性を維持するため HornetQ プロジェクトを完全に置き換えます。
JBoss EAP 7 の管理
  • JBoss EAP 7 には更新された管理コンソールユーザーインターフェースが含まれ、操作がより簡単になり、大規模なドメイン設定のサポートが大幅に向上されます。
  • JBoss EAP 製品バージョンは、管理コンソールの左下隅に表示されます。プロファイル、バージョン、HAL バージョン、およびコアバージョンを表示するには、リンクをクリックします。
  • 管理者は管理 CLI を使用すると、他の承認された管理者が行った設定変更の履歴を確認できます。
  • ロギング管理が大幅に改善され、サーバー上で利用可能なログファイルを閲覧できる機能、管理コンソールでログにカスタムフォーマッターを定義する機能、管理 CLI にてサブシステムレベルでロギングを設定する機能などが導入されました。
  • サーバーを起動しなくても管理 CLI を使用してサーバーを管理できます。このオフライン管理 CLI は管理者専用モードと似ていますが、サーバーを起動して TCP ポートを使用する必要がありません。CLI によってサーバーが埋め込まれ、直接管理専用モードで開始されます。
  • PicketLink Federation サブシステムが有効になっている場合は、管理コンソールを使用して設定できます。
  • 管理者は管理 CLI を使用して、スタンドアロンおよび管理対象ドメインサーバーインスタンスのインストール概要を生成できます。
  • 管理 CLI または管理コンソールから既存の JBoss EAP プロファイル (default、full、ha、full-ha) をクローンして、独自のプロファイルを作成できます。
  • 管理コンソールのホームページには ツアーに参加 というリンクがあります。このリンクをクリックして、新しくなった管理コンソールを説明するツアーに参加してください。
  • 管理者は管理 CLI で resolve-expressions パラメーターを使用して、サーバーの値に返された属性の式を解決できます。
  • 管理対象ドメインでは、管理者はプロファイルの階層を作成できます。これにより、他のプロファイルによって継承可能な共通の拡張を持つベースプロファイルを作成できます。
注記

管理コンソールに関する詳細は、JBoss EAP Configuration GuideManagement Console を参照してください。

管理 CLI に関する詳細は、JBoss EAP Management CLI Guide を参照してください。

スケーラビリティーが高い Web サーバー (Undertow)
  • Web サーバーおよびサーブレット実装が JBoss Web から Undertow に変更されました。Undertow は、100 万を超える接続がある環境など、最大のスループットとスケーラビリティーを実現するために設計された最新の NIO Web サーバーです。Undertow は非ブロッキングハンドラー、ブロッキングハンドラー、従来のサーブレット、非同期のサーブレット、および JSR-356 WebSocket をサポートします。
  • Undertow を使用すると、JBoss EAP 7 がマルチプラットフォームロードバランサーとして機能するよう設定できます。
  • 同じ EAR の複数の WAR モジュールの間で HTTP セッションを共有できます。
  • Undertow には、JBoss Web のバルブによって提供される機能を置き換えるハンドラーが含まれます。
注記

詳細は、JBoss EAP Configuration GuideConfiguring the Web Server (Undertow) を参照してください。

Java EE 7

JBoss EAP 7 は、以下を含む Java EE 7 Full Platform および Web Profile 標準を実装します。

  • 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 には Java SE 8 が必要で、JBoss EAP 7 では OpenJDK 8、Oracle JDK 8、IBM JDK 8、および HP JDK 8 がテストされています。
クラスタリング
  • Undertow を使用し、最適化された新しいセッションレプリケーションおよびシングルサインオン実装。
  • 最適化された新しい分散 @Stateful EJB キャッシング実装。
  • HA シングルトンデプロイメント (クラスターの 1 つのノードで EJB デプロイメントが有効化されるなど、JBoss EAP 5 と似ているフェイルオーバーユースケース)。
  • HA シングルトンサービスの新しい API。
JCA およびデータソース
  • 向上された JCA 接続マネージャーにはレイジー接続マネージャー拡張が含まれます。
  • データソースおよびリソースアダプターサブシステムによって、容量ポリシーを設定できます。
  • IronJacamar での Enlistment Trace (エンリストメントトレース) の無効化は完全サポートされます。
  • JDBC 接続がプールから取得されたときと、プールへ戻されたときに JDBC ステートメントを実行できます。
  • 各データソースおよびリソースアダプターの各接続定義に特定の ManagedConnectionPool 実装クラスを選択できるようになりました。
  • データソースおよびリソースアダプターサブシステムを使用して、Semaphore クラスの fairness 設定を設定できます。このクラスは、JCA の接続プールを管理するために使用され、リースする接続の順番が必要でない一部のユースケースでパフォーマンスが向上されます。
注記

詳細は、JBoss EAP Configuration GuideJava Connector Architecture (JCA) Management および Datasource Parameters を参照してください。

Java EE セキュリティーマネージャー
デプロイメントのパーミッションは、Java EE 7 仕様 (トップレベルデプロイメントの META-INF/permissions.xml) を基にして提供されます。カスタムデプロイメント記述子 META-INF/jboss-permissions.xml ファイルを使用すると、パーミッションを調整できます。この記述子はデプロイメントのサブモジュールに対して定義することもできます。パーミッション設定の詳細は、JBoss EAP How To Configure Server Security を参照してください。
モジュール性の改善
  • 管理 API を使用してモジュールの依存関係を表示できます。
  • インデックスは静的モジュールに対して自動的に生成されます。静的モジュールにある Java EE コンポーネントをアプリケーションが使用するには、事前生成されたアノテーションインデックスを静的モジュールに含める必要はありません。
注記

詳細は、JBoss EAP Configuration GuideModules を参照してください。

トランザクションの改良
  • トラザクションマネージャーがクラッシュする前に XA リソースがコミットされた場合、XA トランザクションの一部であり XAResourceWrapper を実装する XAResource は同期を維持します。これにより、トランザクションマネージャーの再起動後に手動で調整する必要がなくなりました。

    注記

    この機能は、XAResourceWrapper を実装しないサードパーティーリソースマネージャーでは動作しません。よって、WebSphere MQ のリソースマネージャーでは動作しません。

サーバーサスペンドモード/正常なシャットダウン
  • JBoss EAP 7 の新しいサーバーサスペンドモードをアクティブ化すると、新規のリクエストは拒否されますが、既存のリクエストを完了できます。サスペンド処理が完了したとき、インフライトトランザクションを中止せずにサーバーを停止する処理、メンテナンスの実行中はサーバーをサスペンド状態のままにする処理、または新規リクエストが許可される稼働状態にサーバーを戻す処理のいずれかを行うことができます (Messaging および Transactions は除外。Web、EJB、mod_cluster、Batch、Naming、および EE Concurrency の一部を含む)。
注記

詳細は、JBoss EAP Configuration GuideSuspend and Shut Down JBoss EAP Gracefully を参照してください。

ポートの削減

JBoss EAP 7 では、ほぼすべてのプロトコルが 2 つのポート上で多重化されます。これらのポートには以下が含まれます。

  • 管理ポート (HTTP/JSON 管理、HTTP がアップグレードされたリモーティング - ネイティブ管理および JMX、管理コンソール)
  • アプリケーションポート (HTTP サーブレット、JAX-RS、JAX-WS、WebSocket、HTTP がアップグレードされたリモーティング-EJB 呼び出し-リモート JNDI)
IIOP の実装
  • IIOP の実装が JacORB から OpenJDK ORB のダウンストリームブランチに変更されました。この変更により、JVM ORB および Java EE RI との相互運用性が向上されます。
バッチの改良

バッチの改良には以下が含まれます。

  • アクティブなジョブ、終了したジョブ、およびジョブ実行ステップをリストする機能など、監視機能の改善。
  • 管理 API を使用してバッチ上部を開始、停止、および再開する機能。
  • サーバーの障害が原因で失敗したバッチジョブを再度開始する機能。以前の状態をリセット (無視またはログ) できるため、ドメインサーバーグループの他のサーバーでバッチジョブを実行できます。
JBoss EAP 6 の廃止されたサブシステムの移行 CLI 操作
  • JBoss Web、JacORB、HornetQ など、JBoss EAP 6 の旧サブシステムからの移行を容易にするため、古い設定を新しいサブシステムの同等の設定に変換する管理操作が導入されました。このような操作は基盤の管理リソースモデルを移行するため、旧式の CLI スクリプトやカスタムのプロビジョニングシステムにも活用できます。
注記

詳細は、JBoss EAP 移行ガイド管理 CLI の移行操作を参照してください。

JBoss EAP ネイティブおよび Apache HTTP Server の提供に関する変更

JBoss EAP 7 ネイティブは、これまでのリリースとは異なる方法で提供されます。一部のネイティブは、多くの Red Hat JBoss ミドルウェア製品に共通する補完ソフトウェアセットである、新規の Red Hat JBoss Core Services 製品に同梱されるようになりました。新製品では更新のより迅速な配布と一貫性のある更新が可能になります。JBoss Core Services 製品は、Red Hat カスタマーポータルの別の場所からダウンロードできます。

  • 以下の表では、リリースごとの提供方法の違いを示しています。

    パッケージJBoss EAP 6JBoss EAP 7

    メッセージング用 AIO ネイティブ

    別個の「Native Utilities」ダウンロードで製品とともに提供されます。

    JBoss EAP ディストリビューションに含まれます。他のダウンロードは必要ありません。

    Apache HTTP Server

    別個の「Apache HTTP Server」ダウンロードで製品とともに提供されます。

    新しい JBoss Core Services 製品とともに提供されます。

    mod_cluster、mod_jk、isapi、および nsapi コネクター

    別個の「Webserver Connector Natives」ダウンロードで製品とともに提供されます。

    新しい JBoss Core Services 製品とともに提供されます。

    JSVC

    別個の「Native Utilities」ダウンロードで製品とともに提供されます。

    新しい JBoss Core Services 製品とともに提供されます。

    OpenSSL

    別個の「Native Utilities」ダウンロードで製品とともに提供されます。

    これは JBoss EAP 7 では廃止されました

    tcnatives

    別個の「Native Components」ダウンロードで製品とともに提供されます。

    これは JBoss EAP 7 では廃止されました

  • 以下の変更点にも注意してください。

    • Red Hat Enterprise Linux RPM チャンネルからの Apache HTTP Server と使用される mod_cluster および mod_jk コネクターのサポートは廃止されました。Red Hat Enterprise Linux RPM チャネルから Apache HTTP Server を実行し、JBoss EAP 7 サーバーの負荷分散を設定する必要がある場合は、以下の 1 つを行います。

      • JBoss Core Services によって提供される Apache HTTP Server を使用します。
      • フロントエンドロードバランサーとして動作するよう JBoss EAP 7 を設定できます。詳細は JBoss EAP Configuration GuideConfiguring JBoss EAP as a Front-end Load Balancer を参照してください。
      • 認証済みのサポートされるマシンに Apache HTTP Server をデプロイした後、そのマシンでロードバランサーを実行することができます。サポートされる構成の一覧は、JBoss EAP Configuration GuideOverview of HTTP Connectors を参照してください。
    • HP-UX Web Server Suites からの Apache HTTP Server と使用される mod_cluster および mod_jk コネクターのサポートは廃止されました。HP-UX Web Server Suites から Apache HTTP Server を実行し、JBoss EAP 7 サーバーの負荷分散を設定する必要がある場合は、以下の 1 つを行います。

      • フロントエンドロードバランサーとして動作するよう JBoss EAP 7 を設定できます。詳細は JBoss EAP Configuration GuideConfiguring JBoss EAP as a Front-end Load Balancer を参照してください。
      • 認証済みのサポートされるマシンに Apache HTTP Server をデプロイした後、そのマシンでロードバランサーを実行することができます。サポートされる構成の一覧は、JBoss EAP Configuration GuideOverview of HTTP Connectors を参照してください。
  • 詳細は、Apache HTTP Server Installation GuideJBoss Core Services を参照してください。

第2章 技術プレビュー

JVM でサーバー側 JavaScript を持つ最新のエンタープライズ Web アプリケーション (JBoss EAP 7.0 では技術プレビューのみ)
  • JBoss EAP 7 では、サーバー側の JavaScript (JDK 8 の Nashorn 機能を使用) を記述できるため、CDI Bean をプルできる REST エンドポイントの開発、JDNI ルックアップの実行、および JAP エンティティー Bean の呼び出しを迅速に行えるようになりました。この機能は Undertow プロジェクトによって提供されます。
PowerShell スクリプト

PowerShell スクリプトは技術プレビューとしてのみ使用でき、サポートされません。JBoss EAP は Windows Server 2008 R2 Enterprise x86_64 および Windows Server 2012 R2 Standard x86_64 でサポートされるため、PowerShell スクリプトはバージョン 2 以降で正確に動作するように設計されています。

  • デフォルトでは、Windows Server 2008 R2 Enterprise x86_64 は PowerShell バージョン 2 を使用します。これよりも新しいバージョンをインストールすることもできます。
  • デフォルトでは、Windows Server 2012 R2 Standard x86_64 は PowerShell バージョン 4 を使用します。これよりも新しいバージョンをインストールすることもできます。

    PowerShell スクリプトのパスは EAP_HOME/bin で、Windows でモダンなスクリプト言語を使用したいときにこのスクリプトを使用できます。

Undertow による HTTP/2 標準のサポート提供
Undertow は HTTP/2 標準のサポートを提供します (JBoss EAP 7.0 では技術プレビューのみ)。HTTP/2 は、ヘッダーを圧縮し、同じ TCP 接続上で多くのストリームを多重化します。また、クライアントがリクエストする前にサーバーがリソースをプッシュする機能をサポートするため、ページのロードが高速になります。
クラスター化されたシングルトン MDB
クラスター化されたシングルトン MDB は JBoss EAP 7 では技術プレビューの機能になります。MDB がクラスター化されたシングルトンとして識別され、クラスターにデプロイされると、常に一度に 1 つのノードのみがアクティブになります。サーバーノードに障害が発生したり、サーバーノードがシャットダウンしたりすると、クラスター化されたシングルトン MDB は別のノードでアクティブになり、そのノードのメッセージを消費します。
管理コンソールのデータソーステンプレート
管理コンソールで新しいデータソースを作成するために提供されるデータソーステンプレートは、JBoss EAP 7 では技術プレビューの機能になります。
JCA およびデータソース
JBoss EAP 7 は JGroups プロジェクトをベースとした DistributedWorkManager 実装をサポートしますが、技術プレビューとしての扱いのみになります。
トランザクションの監視

JBoss EAP 7 はトランザクションの監視をサポートしますが、技術プレビューとしてのみの扱いになります。トランザクションを追跡するために以下の 2 つの属性が新たに追加されました。

  • number-of-system-rollbacks: 内部システムエラーによってロールバックされたトラザクションの数。
  • average-commit-time: トランザクションをコミットするまでの平均時間 (ナノ秒)。

    これらの統計は標準の JMX クライアントを介した場合のみ利用可能です。

    注記

    途中で停止したトラザクションが少数であっても、全体の average-commit-time が歪曲される可能性があります。

管理コンソールでの特定サブシステムの設定

管理コンソールを使用した以下のサブシステムの設定は、JBoss EAP 7 では技術プレビューの機能になります。

  • IO
  • Remoting
  • BeanValidation
  • Jaxrs
  • Jdr
  • Jsf
  • Jsr77
  • Naming
  • Pojo
  • RequestController
  • Sar
  • SecurityManager
  • Singleton
  • Weld
JBeret によって処理されるバッチ処理 (JSR 352)

JBeret によって処理されるバッチ処理 (JSR 352)。JBeret には、今後のリリースでバッチ仕様の一部となる可能性がある以下の 3 つのヘルパーアノテーションがあります。

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

    これらのアノテーションは、プライベートモジュールである org.jberet.core モジュールにあり、技術プレビューとしてのみ提供されます。今後のリリースでは、これらのアノテーションはサポートされるパブリックモジュールに移動される可能性があります。現時点でこれらのアノテーションを使用すると、org.jberet.core モジュールはプライベートモジュールであるという内容の警告メッセージがログに記録されます。

Java の Server-Sent Events (SSE)
モバイルおよびリッチクライアント向けに、Java の Server-Sent Events モデルの実装が提供されます。これにはサーバー実装のみが含まれ、技術プレビューとしてのみ提供されます。
Microsoft Azure ディスカバリープロトコル
Microsoft Azure の JGroups AZURE_PING ディスカバリープロトコルに最小限のテストが行われ、JBoss EAP 7 では技術プレビューとしてのみ利用できます。詳細は、JBEAP-3327 および jgroups-azure GitHub リポジトリーを参照してください。

第3章 サポートされない機能および非推奨の機能

3.1. サポートされない機能

メンテナンスコストの高さ、コミュニティーでの関心の低さ、および高性能な代替ソリューションの存在などが理由で、一部の技術がサポート対象外になりました。以下の機能は JBoss EAP 7 ではサポートされません。

JAX-RPC
  • JAX-RPC はサポート対象外になりました。JAX-WS によってより完全なソリューションが提供されます。
JSR 88
  • JSR88 の採用は限定的でした。
JBoss Web Services
  • Bean Validation 1.1 のインターセプターおよび機能
  • JASPI 認証
メッセージング (ActiveMQ Artemis)
  • AMQP、Stomp、REST、MQTT、および OpenWire プロトコル
  • HTTP 上の Netty および Netty サーブレットトランスポート
  • OIO (Old Java IO) コネクター/アクセプタータイプ
  • Vert.x、AeroGear、Spring、および Jolokia の統合
  • 動的なキューの作成
  • チェーンクラスター
  • JMX を用いた ActiveMQ Artemis Management の使用
  • 共有 JDBC ストアとしてのデータベースの使用
  • クラスターでのスケールダウン
  • http-connector/http-acceptor または replication-colocated/shared-store-colocated を使用した併置された HA トポロジー
3 つ目の JMS ブローカー証明
  • 汎用 JMS リソースアダプター
管理コンソール
  • 接続プールの all flush 操作
  • Red Hat Access の統合は JBoss EAP 7 では廃止されました。
Resteasy 3
  • jose-jwt
  • resteasy-crypto
  • resteasy-yaml-provider
コマンドラインインターフェイス (CLI)
  • .jbossclirc ファイルでの CLI 優先
  • 複雑な属性との作業
  • 属性名パス構文の CLI タブ補完
  • jboss-cli.xml の接続コントローラーエイリアス
  • CLI コマンドの RBAC ベースのタブ補完
クラスタリング
  • サイト間のレプリケーション
  • jgroups サブシステムの宣言的チャネル、チャネルフォーク、フォークプロトコルスタック、およびカスタム JGroups プロトコル
  • JGroups チャネル作成のパブリック API
  • JGroups チャネルのランタイム管理メトリックス
  • JGroups サブシステムでプロトコルスタックごとにスレッドプールを設定する機能
  • infinispan サブシステムでキャッシュコンテナーごとにスレッドプールを設定する機能
トランザクション
  • 補償可能なトランザクション (Compensable transaction)
  • REST トランザクション
ユーザーの追加
  • add-user ユーティリティーを使用したユーザーの有効化または無効化
Hibernate
  • Hibernate ネイティブ API の Generics
PicketLink
  • PicketLink IDM
  • PicketLink IDM サブシステム
  • PicketLink Federation のSTS クライアントプーリング機能
  • PicketLink JEE (CDI Security)
ネイティブ
  • Apache HTTP Server と使用される mod_cluster および mod_jk コネクターのサポートは Red Hat Enterprise Linux RPM チャンネルでは廃止されました。
  • Apache HTTP Server と使用される mod_cluster および mod_jk コネクターのサポートは HP-UX Web サーバースイートでは廃止されました。
  • OpenSSL は JBoss EAP 7 では廃止されました。
  • tcnatives は JBoss EAP 7 では廃止されました。
Undertow
  • WebDAV 機能は JBoss EAP 7 では提供されません。JBoss EAP 7 で WebDAV 機能を追加するには、WebDAV 機能を実装するサーブレットを実装する必要があります。
ORB
  • JacORB の機能

3.2. 非推奨の機能

JBoss EAP 7 では一部の機能が非推奨になりました。非推奨の機能には改良が加えられず、将来的 (通常は次のメジャーリリース) に削除される可能性があります。

Red Hat は標準のサポート条件に基づき、継続して完全サポートおよびバグ修正を提供します。Red Hat のサポートポリシーに関する詳細は、Red Hat カスタマーポータルに記載されている Red Hat JBoss Middleware の製品アップデートとサポートポリシーを参照してください。

非推奨となった機能の詳細は、Red Hat カスタマーポータルに記載されている JBoss Enterprise Application Platform コンポーネントの詳細を参照してください。

  • Federation を含むすべての PicketLink モジュールは JBoss EAP 7 では非推奨となったため、JBoss EAP の将来のバージョンで削除される可能性があります。JBoss EAP 7 でも PicketLink Federation はサポートされます。
  • JBoss EAP 7 では resteasy-jettison-provider が非推奨になりました。詳細は、JBoss EAP 移行ガイドRESTEasy Jettison JSON プロバイダーの変更を参照してください。

第4章 7.0 リリースにおける既知の問題

セキュリティーマネージャー

JBEAP-408 - Security manager’s maximum-permissions setting does not work (セキュリティーマネージャーの maximum-permissions 設定が機能しない)

セキュリティーマネージャー最大値の空のセットを設定すると、AllPermission が使用されます。空のセットを意図的に設定する場合、空のパーミッションを確立して、パーミッションを宣言したデプロイメントをブロックすることになります。割り当てられたデフォルトの AllPermission はこのような状態を禁止し、宣言されたパーミッションがすべてサブシステムによって許可されるようになります。

これは、セキュリティーパーミッションを宣言したデプロイメントをブロックしないようにします。これらのデプロイメントをブロックするポリシーがある可能性があり、現在の動作では許可されません。

回避策

デプロイメントのパーミッションを META-INF/permissions.xml で確認し、サブシステムに依存してこのチェックを行う代わりにこれらのデプロイメントをデプロイしないようにします。セキュリティーパーミッションが必要なデプロイメントはデプロイされません。

JBEAP-2770 - FilePermission for XNIO and Marshalling modules are required for Remoting to run with security manager (Remoting がセキュリティーマネージャーを実行するには XNIO のファイルパーミッションおよびマーシャリングモジュールが必要)

セキュリティー

JBEAP-3997 - Single logout does not fully work on distributed PicketLink Identity Provider (シングルログアウトが分散 PicketLink Identity Provider では完全に機能しない)
状況によっては、グローバルログアウト (GLO) が分散 PicketLink Identity Provider (IDP) で完全に動作しません。たとえば、スティッキーセッション機能が IDP アプリケーションのロードバランサーで使用されない場合や、現在使用している IDP を持つノードが GLO の前に失敗する場合などがこれに該当します。サービスプロバイダーへのログインまたはログアウトに IDP を持つ異なるノードを使用する場合、GLO 参加者のリストは GLO リクエストが送信された IDP に限定されるため、GLO の後でも複数のサービスプロバイダーにログインした状態を保持できます。

ドメイン管理

JBEAP-4125 - RBAC: The two kinds of non-addressability (RBAC: 非アドレス可能の 2 つの種類)

管理モデルの簡易ビューを提供し、ユーザビリティーを向上するため、サーバーグループおよびホストスコープのロールへアドレス指定できないリソースがあります。これは、機密データを保護するためにアドレス指定できないリソースとは異なります。

サーバーグループスコープのロールでは、ロールに指定されたサーバーグループと関連しない場合、管理モデルの profilesocket binding groupdeploymentdeployment overrideserver groupserver config、および server 部分のリソースは表示されません。

ホストスコープのロールでは、ロールに指定されたサーバーグループに関連していないと、管理モデルの /host=* 部分のリソースが表示されません。

しかし場合によっては、このような簡易ビューではユーザー管理の範囲外となるユーザーの意思決定に役立つ情報が表示されないことがあります。その例が JBEAP-4160 - RBAC: Unable to deploy the same deployment that was already deployed by user from different server-group scope です。

今後のリリースでは、アドレス指定不可能なリリースの一部がアドレス指定可能で読み取り不可能なリソースに変更になる可能性があります。サーバーはセキュリティー上の理由でアドレス指定可能であるため、この変更はサーバーのセキュリティーには影響しません。アドレス指定が不可能であることが機密性の制約に定義されている場合を除き、アドレス指定できないリソースに依存しないことが推奨されます。

JBEAP-4434 - cannot start server with configuration file from EAP 6.4.7 and above (EAP 6.4.7 以上の設定ファイルを使用するとサーバーが起動しない)

ルート xml 要素の xmlns 属性の値を xmlns="urn:jboss:domain:1.7" に変更してから JBoss EAP 7 で使用してください。

1.8 バージョンのスキーマに追加された項目が設定になければ、上記の変更のみで動作するはずです。これらの項目の使用は一般的ではないことが予想されます。

JBEAP-4227 - Reorder JBoss LoginModules via CLI command. (CLI コマンドを利用した JBoss LoginModules の再順序付け)

Undertow

JBEAP-4255 - Add trace logging to the security constraint processing (セキュリティー制約の処理にトレースロギングを追加)

この問題によって、重要な情報がインスタンスのログファイルに記録されないことがあるため、セキュリティー問題のデバッグが困難になる場合があります。

回避策

現在、唯一の回避方法は、Byteman を使用して不足しているロギングステートメントをインジェクトすることです。詳細は 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 (セッションが作成されたノードとは異なるノードで SSO のセッションを無効化すると、ユーザーをログアウトしない)

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 (デフォルトの standalone.xml 設定でクライアントの数が多い場合、EAP 7 の HTTP keep-alive のパフォーマンスは EAP 6.4.7 よりも劣る)

JBEAP-4413 - Undertow mod_cluster: Multiinterface box: Manager-Address always contains hostname (Undertow の mod_cluster: マルチインターフェースボックス: 常に Manager-Address にホスト名が含まれる)

JBEAP-4256 - Add trace logging to the SSO code (SSO コードへのトレースロギングの追加)

SSO 問題のデバッグが必要な場合、解決を容易にするステートメントの一部がログに記録されないことがあるため解決が困難になる可能性があります。

回避策

現在、唯一の回避方法は、Byteman を使用して不足しているロギングステートメントをインジェクトすることです。詳細は https://access.redhat.com/solutions/31283 を参照してください。

ロギング

JBEAP-4101 - LogContexts are not removed for ear subdeployments (ear サブデプロイメントの LogContexts が削除されない)

JPA/Hibernate

JBEAP-1605 - Hibernate Validator cannot introspect Annotated Parameterized Types from method parameters using IBM JDK (Hibernate Validator は IBM JDK を使用するメソッドパラメーターからアノテーションが付けられパラメーター化された型を内省できない)

IBM JVM で実行する場合、アノテーションが付けられパラメーター化された型をリフレクションを使用してメソッドパラメーターから内省することができない問題が見つかりました。これは、JBoss EAP の Bean Validation 実装である Hibernate Validator に影響し、メソッドパラメーターの type-use アノテーションを基にしたカスタムバリデーション制約が動作しません。例を以下に示します。

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

@Interesting がバリデーション制約として宣言された場合、Strings 引数をバリデートするときにこのバリデーション制約が適切に適用されません。これは JVM 実装の問題であるため、IBM に報告し、今後のリリースの IBM Java で修正される予定です。この問題は他の JVM 実装には影響しません。

JBEAP-3707 - Oracle JDBC driver cannot handle entities with a one-character name in some cases (場合によっては Oracle JDBC ドライバーが名前が 1 文字であるエンティティーを処理できない)

名前が 1 文字のみであるテーブルの PreparedStatement を作成しようとすると例外が発生するバグが Oracle JDBC ドライバー 12.1.0.2 で見つかりました。これは JDBC ドライバーの問題であるため、Oracle に報告し、今後のバージョンのドライバーで修正される予定です。

回避策

この問題を回避するには、名前が 1 文字のテーブルを使用しないか、名前を引用符で囲むようにします。

JBEAP-3993 - naming context is not setup when starting the persistence unit (永続ユニットの起動時にネーミングコンテキストが設定されない)

JBEAP-4475 - HHH-5393: Repeated Column in mapping when using MapKeyColumn (MapKeyColumn の使用時、マッピングの列が重複する)

JBEAP-4179 - HHH-10679: Subselect not used when batch loading by ID (ID でバッチロードするとサブセレクトが使用されない)

クイックスタート

JBEAP-4500 - Quickstart ejb-multi-server intermittently fails to deploy with ERROR MSC000001 (ERROR MSC000001 が発生し、Quickstart の ejb-multi-server が断続的にデプロイに失敗する)

メッセージング (ActiveMQ Artemis、JMS)

JBEAP-4407 - Consumer crashes with IndexOutOfBoundsException when reading large messages from imported journal (インポートされたジャーナルから大型のメッセージを読み取ると IndexOutOfBoundsException が発生し、コンシューマーがクラッシュする)

import-journal CLI 操作を使用してインポートされた ActiveMQ Artemis ジャーナルに大型のメッセージが含まれていると、大型のメッセージを受信するコンシューマーは以下を受信します。

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)
...

この問題を回避するには、JMS ブリッジを使用します。詳細は、JBoss EAP 移行ガイド を参照してください。

JBEAP-3998 - Live does not become active after failback if you use replication journal (レプリケーションジャーナルを使用する場合、フェイルバック後にライブサーバーがアクティブにならない)
レプリケーションジャーナルを使用する場合、フェイルバック後にライブサーバーがアクティブにならない可能性があります。

JBEAP-4225 - Possible lost message over Failover/Failback using regular JMS Transactions (通常の JMS トランザクションを使用するとフェイルオーバー/フェイルバック時にメッセージが失われる可能性がある)

JBEAP-3848 - Artemis Testsuite PagingTest#testDeletePhysicalPages fails (Artemis Testsuite の PagingTest#testDeletePhysicalPages に失敗する)

JBEAP-3675 - Redistribution loses large messages when server with HA is restarted (HA のサーバーが再起動されると再配布によって大型のメッセージが失われる)

JBEAP-2946 - Exception on subscriber during failback on replication (レプリケーションのフェイルバック中にサブスクライバーで例外が発生する)

大型のメッセージでレプリケーションジャーナルを使用すると、コンシューマーに以下の例外が発生し、障害を起こす可能性があります。

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

クラスタリング

JBEAP-4386 - session.invalidate() behaviour not conform Servlet specification in HA profile (session.invalidate() の動作が HA プロファイルのサーブレット仕様に準拠しない)

JBEAP-3954 - EJB Invocation failed on component LocalStatefulSB: TimeoutException: Replication timeout for X (EJB 呼び出しがコンポーネント LocalStatefulSB で失敗する。TimeoutException: X のレプリケーションタイムアウト)

JBEAP-3946 - TimeoutException: Unable to acquire lock after 15 seconds in repl-async stress tests (TimeoutException: repl-async ストレステストの 15 秒後にロックを取得できない)

JBEAP-3926 - ArrayIndexOutOfBoundsException in EJB client in 2-clusters EJB invocation graceful shutdown tests (EJB クライアントの 2 クラスター EJB 呼び出しの正常シャットダウンテストで ArrayIndexOutOfBoundsException が発生する)

JBEAP-3779 - Error executing command PrepareCommand/GetKeyValueCommand due to replication timeout (レプリケーションタイムアウトによる PrepareCommand/GetKeyValueCommand コマンドの実行エラー)

JBEAP-3696 - TimeoutException: Replication timeout when handling request (TimeoutException: リクエスト処理時のレプリケーションタイムアウト)

JBEAP-3583 - Exceptions in 2-clusters EJB invocation graceful shutdown tests ( 2 クラスター EJB 呼び出しの正常シャットダウンテストで例外が発生する)

JBEAP-2155 - EJB lookup fails with "No cluster context available" (「No cluster context available (利用できるクラスターコンテキストがありません)」が表示され、EJB ルックアップに失敗する)

JBEAP-794 - WARN ISPN000197: Error updating cluster member list at the boot up (WARN ISPN000197: ブート時のクラスターメンバーリスト更新エラー)

JBEAP-444 - WFLYEJB0467: The request was rejected as the container is suspended during server shutdown (WFLYEJB0467: サーバーシャットダウン中にコンテナーが停止されたためリクエストが拒否される)

JBEAP-2072 - Add authorization checks by default on JGroups message receipt (JGroups メッセージ受信時にデフォルトで認証チェックを追加)

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> (<transaction mode="NONE"></transaction> の使用時、Session.requestDone(…​) 中に NPE が発生する)

ローカリゼーション

JBEAP-4350 - fr_FR Installer - All strings 'Port Number' should be placed before 'ajp, http, …​' in French in each page. ( fr_FR インストーラー - フランス語の各ページですべての文字列の 'Port Number' が 'ajp, http, …​' の前になるようにする必要がある)

JBEAP-4336 - ja_JP Installer - Unlocalized 'Quickstarts' page and title name. ( ja_JP Installer - ローカライズされていないクイックスタートページおよびタイトル名)

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. ( zh_CN インストーラー - Configure Runtime の文字列 'For the list of supported drivers, please visit this link.' が読み取り不可能なコードまたは四角の記号で表示される)

JBEAP-4037 - ALL_LANG Installer - Page title 'Installation Overview' is unloclaized in Installation Overview page. (ALL_LANG インストーラー - インストール概要ページのページタイトル 'Installation Overview' がローカライズされていない)

JBEAP-4010 - ALL_LANG Installer - Unlocalized strings in Validation warning dialog of Admin User Creation page. ( ALL_LANG インストーラー - 管理ユーザー作成ページのバリデーション警告ダイアログの文字列がローカライズされていない)

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. ( zh_CN、ja_JP インストーラー - 中国語または日本語のロケールで OS にログインすると、言語選択ダイアログの中国語または日本語が四角の記号で表示される)

インストーラー

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 (HP-UX ボックス にて jboss-cli および installer.jar の動作が不適切)

JBEAP-1404 - IOException on Installation quit on Windows (Windows でインストールを終了すると IOException が発生する)

EJB

JBEAP-4167 - Server is unable to invoke @Timeout method after 10 methods are called on Asynchronous bean on IBM JDK (IBM JDK の非同期 Bean で 10 個のメソッドが呼び出された後、サーバーが @Timeout メソッドを呼び出しできない)

JBEAP-3871 - EJBs accessible too early (spec violation) (EJB が早期にアクセス可能になる (仕様違反))

JBEAP-3665 - RollbackException is not propagated from remote EJB client (RollbackException がリモート EJB クライアントから伝搬されない)

JBEAP-3448 - SessionSynchronization callbacks allow concurrent access to SFSB (SessionSynchronization コールバックによって SFSB への同時アクセスが許可される)

JBEAP-165 - Possible trouble of exception cause during error of 2PC (2PC のエラー中に例外の原因となる問題が起こる可能性)

トランザクション

JBEAP-4036 - "number-of-application-rollbacks" statistic counted multiple times during single rollback (単一のロールバック中に "number-of-application-rollbacks" 統計によって複数回カウントされる)

JBEAP-2833 - Default transaction timeout is not applied for EJB bean when set for second time (デフォルトのトランザクションタイムアウトが 2 度設定されると EJB Bean に対して適用されない)

JBEAP-1913 - Can’t define absolute path for object store location (オブジェクトストアがある場所の絶対パスを定義できない)

JBEAP-3314 - Fix transaction recovery failures involving remote EJB resource (リモート EJB リソースが関与するトランザクションリカバリー障害の修正)
クラッシュした可能性があるリモート EJB リソースが関与すると、トランザクションリカバリー操作が失敗することがあります。この問題は、サーバーとクライアントの接続が切断されると発生します。クライアントがクラッシュして再起動すると、サーバーとクライアントは自動的に通信を行いません。このような場合、サーバーはクライアントが再起動したことを認識しないため、EJB トランザクションリカバリープロセスではどの EJB ノードと通信するのか分からない状態になります。

管理 CLI

JBEAP-3563 - jconsole "JBoss EAP CLI" tab not loading when using remote (リモートを使用する場合、jconsole "JBoss EAP CLI" タブがロードしない)

JBEAP-4415 - CLI: Unable to set mod_cluster cipher-suite on Windows (CLI: Windows で mod_cluster の cipher-suite を設定できない)

JBEAP-4412 - jboss-cli.bat: Setting keystore-path in a new security-realm interprets \ (backslash) in Windows paths (jboss-cli.bat: 新しいセキュリティーレルムでキーストアパスを設定すると「\」 (バックスラッシュ) が変換される)

JBEAP-3724 - Unfriendly behavior of jboss-cli and installer.jar on HP-UX boxes (HP-UX ボックス にて jboss-cli および installer.jar の動作が不適切)

RESTEasy

JBEAP-2963 - RESTEasy-Spring is unable to set mediaTypeMappings in ResteasyDeployment by bean settings ( RESTEasy-Spring は Bean 設定によって ResteasyDeployment のメディア TypeMappings を設定できない)

JBEAP-3725 - Log level of error during request on non-existent REST end-point (存在しない REST エンドポイントのリクエスト中にログレベルのエラーが発生する)

パッチ

JBEAP-2669 - Installing CP over one-off fails if the modules patched by the one-off are not patched in the CP (one-off パッチによってパッチされたモジュールが累積パッチでパッチされていないと、one-off パッチ上の累積パッチのインストールに失敗する)

Remoting

JBEAP-2017 - Endpoint can be closed before doConnect tasks finished causing AbstractHandleableCloseable.close to wait forever (doConnect タスクが終了する前にエンドポイントが閉じられる可能性があり、AbstractHandleableCloseable.close が永久に待機する)

JBEAP-3602 - Infinite wait in AbstractCloseableHandleable (AbstractCloseableHandleable での無限待機)

管理コンソール

JBEAP-3940 - It is not possible to add deployment scanner in web console (Web コンソールでデプロイメントスキャナーを追加できない)

管理 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 (データソースの編集/削除後、新たなリロードが必要となることが原因で理解不可能な動作が起こるため、データソース作成ウィザードから Test Connection ボタンを削除)

サーバー

JBEAP-4409 - Server processing request isn’t stopped immediately but waits for request processing to finish (サーバー処理リクエストは即座に停止せず、リクエストされた処理が終了するまで待機する)

JBEAP-4410 - EAP 7 with management leaks small portions of memory when delay between requests is large resulting in management becoming unavailable after several days. (管理機能を利用する EAP 7 ではリクエスト間の遅延が大きいと、ごく少量のメモリーリークが発生し、数日後に管理が利用できなくなる)
この問題の詳細とソリューションについては、EAP 7.0.0 GA Management Memory Leak を参照してください。

ディストリビューション

JBEAP-4254 - The mit license - license.txt is empty (MIT ライセンス - license.txt が空である)

ライセンステキストは次のとおりです。

jsoup ライセンス

jsoup コードベース (ソースおよびコンパイルされたパッケージを含む) は、以下のオープンソース MIT ライセンスに準じて配信されます。

MIT ライセンス

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 (jboss-eap-7.0/docs/licenses の問題)

cddl+gpl license - cddl+gpl_1_1.html ライセンスファイルが空の状態です。

ライセンステキストは次のとおりです。

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.

GNU 一般公衆ライセンス (GPL) バージョン 2 (1991 年 6 月)

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.