Migration Guide 5.4.1_ja - terasolunaorg/terasoluna-gfw GitHub Wiki

5.3.1から5.4.1への移行ガイド

.. only:: html

 .. contents:: 目次
    :depth: 2
    :local:

5.4.1での主な変更点

5.4.1での主な変更点は以下の通りです。

  • Spring Frameworkを4.3.14へ更新
  • Spring Securityを4.2.4へ更新
  • Spring IO PlatformをBrussels-SR5へ更新
  • MyBatisを3.4.5へ更新
  • Hibernate ORMを5.0.12へ更新
  • 共通ライブラリの仕様を一部変更
  • ブランクプロジェクトの変更

Spring IO PlatformをBrussels-SR5へ更新

5.4.1から、Spring IO PlatformをBrussels-SR5へ更新しました。

Spring Frameworkを4.3.14へ更新

5.4.1から、Spring Framework 4.3.14.RELEASEへ更新しました。

Note

Spring IO Platform Brussels-SR5ではSpring Framework 4.3.11.RELEASEが使用されますが、共通ライブラリでは独自にバージョン管理を行います。

Spring Securityを4.2.4へ更新

5.4.1から、Spring Security 4.2.4.RELEASEへ更新しました。

Note

Spring IO Platform Brussels-SR5ではSpring Security 4.2.3.RELEASEが使用されますが、共通ライブラリでは独自にバージョン管理を行います。

MyBatisを3.4.5へ更新

5.4.1から、MyBatis 3.4.5へ更新しました。この更新にあわせて、Mybatis TypeHandlers JSR-310を削除しました。

Hibernate ORMを5.0.12へ更新

5.4.1から、Hibernate ORM 5.0.12へ更新しました。

共通ライブラリの仕様を一部変更

5.4.1から、共通ライブラリの一部仕様を変更しました。

  • [#702] Log level specification method is not unified
  • [#715] Drop dependency for mybatis-typehandlers-jsr310 when upgrade to MyBatis 3.4.5+
  • [#741] Update tomcat.version for cargo
  • [#747] Wrong full width string in DefaultFullHalf
  • [#772] Upgrade to Spring IO Platform Brussels-SR5
  • [#797] Update spring and spring security version

ブランクプロジェクトの変更

5.4.1から、ブランクプロジェクトの一部設定ファイルを変更しました。

Note

改行コードについて

ブランクプロジェクトの改行コードをLFに統一しました。
ブランクプロジェクトのソースコードを使用する場合は、改行コードがCRLFと混在しないように注意してください。

5.3.1から5.4.1への移行手順

移行手順は、以下の通りです。

Note

凡例

Required : 手順の適用は必須
Required by case : 手順の適用は条件付きで必須
Optional : 手順の適用を推奨 (必要に応じて手順の適用を実施)
- : 手順の適用は必要なし

[全般]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
依存ライブラリを更新 Required Required Required

[共通ライブラリ]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
ExceptionLoggingFilterが出力するログレベルの変更に伴う修正 Required by case Required by case Required by case
全角半角変換ライブラリのバグ修正 Required by case Required by case Required by case
cargo-maven2-pluginで使用するTomcatのバージョンの更新 Required by case Required by case

[Blank project]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
mvc:annotation-driven要素から独自のmvc:path-matching定義を削除 Optional Optional Optional
logback.xmlにDOCTYPE宣言を追加 Optional Optional Optional
Oracle JDBCのグループIDの修正 Optional Optional
Selenium依存ライブラリのバージョン設定の削除 Optional Optional
maven-surefire-pluginのバージョン定義の追加 Optional

[Spring Framework]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
パス変数を使用するアクセスポリシー定義の修正 Required by case Required by case Required by case
SOAP Web ServiceのDI方法の変更 Required by case Required by case Required by case
SOAPクライアントのタイムアウト設定の修正 Required by case Required by case Required by case
Basic認証用リクエストヘッダの設定方法の修正 Optional Optional Optional

[Spring Security]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
@Transactionalアノテーションのtimeout属性が有効になったことに伴う修正 Required by case Required by case Required by case
OAuthのエラーハンドリング方法追加に伴う修正 Required by case Required by case Required by case
OAuthのクライアントでのアクセストークン削除方法の追加 Required by case Required by case Required by case
Cache-Controlヘッダが正常に出力されないバグ解消に伴う修正 Optional Optional Optional

[Step 1] 依存ライブラリを更新

TERASOLUNA Server Framework for Java (5.x)の共通ライブラリと依存ライブラリを更新してください。

.. tabularcolumns:: |p{0.35\linewidth}|p{0.25\linewidth}|p{0.25\linewidth}|p{0.15\linewidth}|
ライブラリ名 更新前バージョン 更新後バージョン 備考
TERASOLUNA Server Framework for Java (5.x) Common Library 5.3.1.RELEASE 5.4.1.RELEASE  
Spring Framework 4.3.5.RELEASE 4.3.14.RELEASE  
Spring Data Commons 1.12.6.RELEASE 1.13.7.RELEASE  
Spring Security 4.1.4.RELEASE 4.2.4.RELEASE  
MyBatis3 3.4.2 3.4.5  
Mybatis TypeHandlers JSR-310 1.0.2 - Removed
Hibernate ORM 5.0.11.Final 5.0.12.Final  
Javassist 3.20.0-GA 3.21.0-GA  
Jandex 2.0.0.Final 2.0.3.Final  
Spring Data JPA 1.10.6.RELEASE 1.11.7.RELEASE  
AspectJ 1.8.9 1.8.10  
Logback 1.1.8 1.1.11  
SLF4J 1.7.22 1.7.25  
Jackson 2.8.5 2.8.10  
Jackson Annotations 2.8.5 2.8.0  
Hibernate Validator 5.2.4.Final 5.3.5.Final  
Jboss Logging 3.3.0.Final 3.3.1.Final  
Classmate 1.3.3 1.3.4  
Apache Commons Lang 3.4 3.5  
Joda Time 2.9.6 2.9.9  
Guava 17.0 20.0  

[手順が必要なケース]

この手順の適用は必須です。

[Step 1-1] Maven Multiple Projectsを利用している場合

この更新手順は、mvn archetype を使用して作成したプロジェクト向けです。

親プロジェクトのpomファイルの version5.4.1.RELEASE に修正してください。

  • ($YOUR_MULTIPLE_PROJECT_ROOT/pom.xml)
<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.4.1.RELEASE</version>                    <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

[Step 1-2] Maven Single Projectを利用している場合

この更新手順は、mvn archetype を使用して作成したプロジェクト、又は release site からダウンロードしたプロジェクト向けです。

プロジェクトのpomファイルの version5.4.1.RELEASE にしてください。

  • ($YOUR_SINGLE_PROJECT/pom.xml)
<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.4.1.RELEASE</version>                    <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

[Step 1-3] Eclipse WTP Projectを利用している場合

この更新手順は、release site からダウンロードしたEclipse WTPプロジェクト向けです。

更新手順は、Eclipse WTP Project使用時のライブラリ更新 を参照してください。

[Step 2] ExceptionLoggingFilterが出力するログレベルの変更に伴う修正

ExceptionLoggingFilterでは、例外コードによりログレベルを判定していましたが、ERRORレベルに固定するよう変更しました。

[手順が必要なケース]

ExceptionLoggingFilterがログを出力する例外 (※) に対して例外コードを定義し、意図的にERRORレベル以外のログを出力している場合。

(※) View(JSP)、Filterで発生する例外や、java.lang.Error等、SpringMVCで処理されずサーブレットコンテナが捕捉する例外

具体的には、ExceptionLoggingFilterが出力するログのログレベルを定義する目的で、下記例のようにIOException、ServletException、RuntimeExceptionのいずれか及びそのサブクラスに対し、例外コードを定義している場合。

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-web/src/main/resources/META-INF/spring/applicationContext.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/spring/applicationContext.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/spring/applicationContext.xml)
<!-- Exception Code Resolver. -->
<bean id="exceptionCodeResolver"
  class="org.terasoluna.gfw.common.exception.SimpleMappingExceptionCodeResolver">
  <!-- Setting and Customization by project. -->
  <property name="exceptionMappings">
    <map>
      <!-- omitted -->
      <entry key="IOException" value="w.xx.fw.9999" /> <!-- IOException及び、そのサブクラスにWARNレベルの例外コードを定義しています。 -->
    </map>
  </property>
  <property name="defaultExceptionCode" value="e.xx.9999" />
</bean>

[修正方法]

ExceptionLoggingFilterを継承したクラスを新たに作成し、5.3.1.RELEASE以前のログ出力処理に変更します。

  • logIOExceptionメソッドの実装例
@Override
protected void logIOException(IOException ex, ServletRequest request,
        ServletResponse response) {
    getExceptionLogger().log(ex);
}

logServletException, logRuntimeExceptionも同様に実装する事で、例外コードに対応したINFOレベルやWARNレベルのログが出力可能となります。

作成したクラスはapplicationContext.xmlで以下のようにBean定義を行います。

<!-- Filter. -->
<bean id="exceptionLoggingFilter"
    class="com.example.web.exception.ExpansionExceptionLoggingFilter" >
    <property name="exceptionLogger" ref="exceptionLogger" />
</bean>

[Step 3] 全角半角変換ライブラリのバグ修正

[手順が必要なケース]

以下のいずれかのケースと一致する場合は、次の確認を行ってください。

  • org.terasoluna.gfw.common.fullhalf.DefaultFullHalfを使用している。
  • 開発ガイドラインを参考に独自のFullHalfConverterクラスの作成を行っている。

[仕様変更内容]

カタカナの"ベ"が変換されないバグが存在したため、org.terasoluna.gfw.common.fullhalf.DefaultFullHalf、及び独自の全角文字と半角文字のペア定義を登録したFullHalfConverterクラスの作成の実装例が以下のように修正されました。

この修正による影響がないか確認を行ってください。

【修正前】

.. tabularcolumns:: |p{0.30\linewidth}|p{0.30\linewidth}
変換対象文字 変換後
べ(ひらがな) ベ(カタカナ)
ベ(カタカナ) 変換されない

【修正後】

.. tabularcolumns:: |p{0.30\linewidth}|p{0.30\linewidth}
変換対象文字 変換後
べ(ひらがな) ベ(カタカナ)
ベ(カタカナ) ベ(カタカナ)

[Step 4] cargo-maven2-pluginで使用するTomcatのバージョンの更新

[手順が必要なケース]

以下のケースと一致する場合は、次の確認を行ってください。

  • cargo-maven2-pluginを利用してテスト等を実施している。

[仕様変更内容]

cargo-maven2-pluginで使用するTomcatのバージョンをSpring IO Platform Brussels-SR5が依存する8.5.20に更新しました。

Tomcat8.0系とTomcat8.5系では設定が異なるため、設定ファイルがTomcat8.0系に依存していないか等、確認をする必要があります。

[Step 5] mvc:annotation-driven要素から独自のmvc:path-matching定義を削除

Spring Framework 4.3ではorg.springframework.util.AntPathMatchertrimTokensプロパティのデフォルト値がfalseになったため、明示的にfalseを設定していたAntPathMatcherの定義が不要となりました。

ブランクプロジェクトの5.3.1版まではtrimTokensプロパティにfalseを設定したAntPathMatcherを定義し、mvc:annotation-drivenmvc:path-matchingで適用していました。

5.4.1版からはAntPathMatcherの定義を削除し、Spring MVCのデフォルト設定を利用する形に変更しました。

[手順が必要なケース]

この手順の適用は任意です。必要に応じて、次の修正を行ってください。

[修正方法]

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-web/src/main/resources/META-INF/spring/spring-mvc.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/spring/spring-mvc.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/spring/spring-mvc.xml)

以下の設定を削除してください。

<mvc:annotation-driven>
   <!-- omitted -->
   <!-- ### 削除箇所 ここから ### -->
   <!-- workaround to CVE-2016-5007. -->
   <mvc:path-matching path-matcher="pathMatcher" />
   <!-- ### 削除箇所 ここまで ### -->
</mvc:annotation-driven>

<!-- omitted -->

<!-- ### 削除箇所 ここから ### -->
<!-- Setting PathMatcher. -->
<bean id="pathMatcher" class="org.springframework.util.AntPathMatcher">
    <property name="trimTokens" value="false" />
</bean>
<!-- ### 削除箇所 ここまで ### -->

[Step 6] logback.xmlにDOCTYPE宣言を追加

ブランクプロジェクトのlogback.xmlにDOCTYPE宣言を追加しました。DOCTYPE宣言がなくても動作上問題はありませんが、Eclipse等のIDEにてXML構文違反の警告が表示されるため、追加することを推奨します。」

[手順が必要なケース]

この手順の適用は任意です。必要に応じて、次の修正を行ってください。

[修正方法]

プロジェクトのlogback.xmlに以下の修正を行ってください。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration> <!-- ### 追加箇所 ### -->
<configuration>

<!-- omitted -->

[Step 7] Oracle JDBCのグループIDの修正

ブランクプロジェクトのpom.xmlに記載されているojdbc7のグループIDが、公式リポジトリ(Oracle Maven Repository)から取得する場合と異なっていたため修正を行いました。

[手順が必要なケース]

この手順の適用は任意です。必要に応じて、次の修正を行ってください。

[修正方法]

以下のようにグループIDをcom.oracleからcom.oracle.jdbcに変更してください。

【修正前】

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>${ojdbc.version}</version>
</dependency>

【修正後】

<dependency>
    <groupId>com.oracle.jdbc</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>${ojdbc.version}</version>
</dependency>

pom.xmlに限らず、com.oracleでライブラリをインストールしているSonatype NEXUSなども適宜変更を行ってください。

[Step 8] Selenium依存ライブラリのバージョン設定の削除

ブランクプロジェクトが使用するSeleniumのバージョンをSpring IO Platformに準拠するように修正しました。Spring IO Platform Brussels-SR5は、Selenium 2.53.1を使用しています。

[手順が必要なケース]

この手順の適用は任意ですが、以下のケースに当てはまる場合は、次の修正を行うことを推奨します。

  • Spring IO Platformに準拠したバージョンのSeleniumを使用する。

[修正方法]

プロジェクトのpom.xmldependencyManagementタグ内からSeleniumの依存ライブラリ設定を削除してください。

<dependencyManagement>
   <dependencies>

   <!--omitted-->
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-java</artifactId>
          <version>${selenium.version}</version>  <!-- ### 削除箇所 ### -->
          <scope>test</scope>
      </dependency>
   <!-- ### 削除箇所 開始 ### -->
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-chrome-driver</artifactId>
          <version>${selenium.version}</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-remote-driver</artifactId>
          <version>${selenium.version}</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-api</artifactId>
          <version>${selenium.version}</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-firefox-driver</artifactId>
          <version>${selenium.version}</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-ie-driver</artifactId>
          <version>${selenium.version}</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-safari-driver</artifactId>
          <version>${selenium.version}</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-support</artifactId>
          <version>${selenium.version}</version>
          <scope>test</scope>
      </dependency>
   <!-- ### 削除箇所 終了 ### -->
   <!--omitted-->

   </dependencies>
</dependencyManagement>
<properties>
   <!--omitted-->
   <selenium.version>2.46.0</selenium.version> <!-- ### 削除箇所 ### -->
   <!--omitted-->
</properties>

[備考]

使用するSeleniumのバージョンを独自に設定したい場合は、上記の削除対象をpom.xmlに定義し、selenium.versionに使用したいバージョンを指定してください。

定義はselenium-javaだけでは不十分であり、selenium-remote-driverなどのSelenium系ライブラリのバージョンも全て揃える必要があるため注意してください。

[Step 9] maven-surefire-pluginのバージョン定義の追加

ブランクプロジェクトのビルド時にmaven-surefire-pluginのバージョン未定義のWarningが発生していたため、バージョンを定義を追加しました。

バージョンは共通ライブラリの定義(2.17)と一致するように指定しています。

[手順が必要なケース]

以下のケースと一致する場合は、次の修正を行ってください。

  • maven-surefire-pluginのバージョンを独自に定義しておらず、ビルド時にWarningが出力されている。

[修正方法]

プロジェクトのpom.xmlに以下の定義を追加してください。

<build>
   <pluginManagement>
       <plugins>
           <!--omitted-->
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-plugin</artifactId>
               <version>${maven-surefire-plugin.version}</version>
           </plugin>
           <!--omitted-->
       </plugins>
   </pluginManagement>
</build>
<properties>
   <!--omitted-->
   <maven-surefire-plugin.version>2.17</maven-surefire-plugin.version>
   <!--omitted-->
</properties>

指定するバージョンについては、ビルド時に実際に使用されているバージョンが2.17以外なら、そのバージョンを指定しても問題ありません。

[Step 10] パス変数を使用するアクセスポリシー定義の修正

Spring Securityによる認可制御(<sec:intercept-url>)における パス変数の参照 の実装例が修正されました。

この修正は、 アクセスポリシーを適用するWebリソースの指定 のWarningで記載されている内容が、実装例に取り込まれていなかったため行われました。

以前の実装例では、URLに拡張子を含む場合に拡張子がパス変数の一部と認識されてしまい、意図しない認可制御が行われてしまいます。また、URLの最後が拡張子や/で終わる場合にSpring MVCとSpring Securityで解釈が変わることも考慮されていませんでした。

[手順が必要なケース]

以下のケースと一致する場合は、次の修正を行ってください。

  • Spring Securityによる認可制御(<sec:intercept-url>)を実施しており、パスパターン(pattern)にパス変数を使用している。

[修正方法]

•spring-security.xmlのアクセスポリシーの定義を変更してください。

例)

【修正前】

<sec:http>
   <sec:intercept-url pattern="/users/{userName}" access="isAuthenticated() and #userName == principal.username"/>
   <!-- omitted -->
</sec:http>

【修正後】

[ワイルドカードを使用する場合]

<sec:http>
   <sec:intercept-url pattern="/users/{userName}.*"  access="isAuthenticated() and #userName == principal.username"/>
   <sec:intercept-url pattern="/users/{userName}/**" access="isAuthenticated() and #userName == principal.username"/>
   <!-- omitted -->
</sec:http>

[ワイルドカードを使用しない場合]

<sec:http>
   <sec:intercept-url pattern="/users/{userName}.*"  access="isAuthenticated() and #userName == principal.username"/>
   <sec:intercept-url pattern="/users/{userName}/"   access="isAuthenticated() and #userName == principal.username"/>
   <sec:intercept-url pattern="/users/{userName}"    access="isAuthenticated() and #userName == principal.username"/>
   <!-- omitted -->
</sec:http>

[Step 11] SOAP Web ServiceのDI方法の変更

SOAP Web Serviceの実装で@Injectを使用していると、特定のAPサーバ上で正しく動作しないことが確認されています。 これは、SOAPサーバ上の処理はSpringが提供するサーブレットではなく、JAX-WSエンジンが提供するサーブレット上で動作する特徴があり、 @Injectを使用してSpring管理のBeanをインジェクションするように実装すると、実行環境の各APサーバ(Java EEサポートのAPサーバ)のCDI機能の影響を受けるためです。

[手順が必要なケース]

APサーバのDI機能を無効にしていない場合、上記の影響を受ける可能性があります。必要に応じて次の修正を行ってください。

[修正方法]

SOAPサーバの実装で@Injectを使用している箇所を全て@Autowiredに置き換える。

[Step 12] SOAPクライアントのタイムアウト設定の修正

SOAP Web Serviceのクライアントの実装で、タイムアウトの推奨設定を変更しました。

変更前はvalue-type属性でInteger型を指定していましたが、指定しなかった場合String型が適用され、一部のAPサーバを除きIntegerStringどちらでも正常に動作するためvalue-type属性の指定を削除しました。

[手順が必要なケース]

この手順は任意です。以下のケースと一致し、かつ必要な場合、次の修正を行ってください。

  • 使用しているAPサーバがweblogicではない。(※)
(※) weblogicについては対応方法が異なります。 SOAPクライアントのタイムアウトの設定について を参照してください。

[修正方法]

org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBeanのカスタムプロパティを修正してください。

  • ($YOUR_PROJECT_ROOT/[projectName]-domain/src/main/resources/META-INF/spring/[projectName]-domain.xml)

【修正前】

<property name="customProperties">
    <map>
        <entry key="com.sun.xml.internal.ws.connect.timeout" value-type="java.lang.Integer"  value="${webservice.connect.timeout}"/>
        <entry key="com.sun.xml.internal.ws.request.timeout" value-type="java.lang.Integer"  value="${webservice.request.timeout}"/>
    </map>
</property>

【修正後】

<property name="customProperties">
    <map>
        <entry key="com.sun.xml.internal.ws.connect.timeout" value="${webservice.connect.timeout}"/>
        <entry key="com.sun.xml.internal.ws.request.timeout" value="${webservice.request.timeout}"/>
    </map>
</property>

[Step 13] Basic認証用リクエストヘッダの設定方法の修正

Spring Framework 4.1からorg.springframework.http.client.support.BasicAuthorizationInterceptorが追加され、独自にBasic認証用のリクエストヘッダ設定処理を実装する必要がなくなりました。

[手順が必要なケース]

独自にBasic認証用のリクエストヘッダ設定処理を実装していた場合、次の修正を適用することを推奨します。

[修正方法]

独自に実装したBasic認証用のリクエストヘッダ設定処理(BasicAuthInterceptor)を削除し、applicationContext.xmlを以下のように修正する。

【修正前】

<bean id="basicAuthInterceptor" class="com.example.restclient.BasicAuthInterceptor" />

【修正後】

<bean id="basicAuthInterceptor" class="org.springframework.http.client.support.BasicAuthorizationInterceptor">
    <constructor-arg index="0" value="${api.auth.username}" /><!-- ユーザ名を設定 -->
    <constructor-arg index="1" value="${api.auth.password}" /><!-- パスワードを設定 -->
</bean>

[Step 14] @Transactionalアノテーションのtimeout属性が有効になったことに伴う修正

MyBatis 3.4とMyBatis-Spring 1.3の組み合わせでは、@Transactionalアノテーションのtimeout属性が有効になりました。

[手順が必要なケース]

この手順の適用は任意ですが、以下のケースのいずれかと一致する場合は、次の修正を適用することを推奨します。

  • トランザクション管理に必要な情報をXML(bean定義)で宣言している。
  • timeout属性が作用しないことの対応として、MyBatisのマッパーXMLでステートメント単位にタイムアウトを指定している。

[修正方法:トランザクション管理に必要な情報をXML(bean定義)で宣言している場合]

XML(Bean定義)を削除し、@Transactionalをトランザクション管理対象とするクラスまたはクラスメソッドに対して指定します。

例)

【修正前】

<bean id="fooService" class="x.y.service.DefaultFooService"/>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="*" timeout="10"/>
    </tx:attributes>
</tx:advice>

<aop:config>
    <aop:pointcut id="fooServiceOperation" expression="execution(* x.y.service.FooService.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>
</aop:config>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

【修正後】

<bean id="fooService" class="x.y.service.DefaultFooService"/>

<tx:annotation-driven />

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>
@Transactional(timeout = "10")
public class DefaultFooService implements FooService {

   //omitted

}

詳細については、開発ガイドラインの トランザクション管理について を参照してください。

[修正方法:MyBatisのマッパーXMLでステートメント単位にタイムアウトを指定している場合]

マッパーXMLでステートメントからtimeout属性を削除し、@Transactionalに対してtimeout属性を指定してください。

[Step 15] OAuthのエラーハンドリング方法追加に伴う修正

開発ガイドラインの OAuthの実装例 にてエラーハンドリングの実装例が追加されました。 追加前の開発ガイドラインの実装例ではエラーハンドリングが不十分であるため、修正を行う必要があります。

[手順が必要なケース]

以下のいずれかのケースと一致する場合、次の修正を行ってください。

  • 開発ガイドラインに準拠した実装を行い、独自のエラーハンドリングを追加していない。
  • 開発ガイドラインに準拠した実装を行い、独自のエラーハンドリングを追加したが、5.4.1版開発ガイドラインの実装方針と異なる場合。

[修正方法]

OAuthのエラーハンドリング の実装例を確認し、実装を行ってください。

[Step 16] OAuthのクライアントでのアクセストークン削除方法の追加

開発ガイドラインの OAuthの実装例 にてクライアントでのアクセストークン削除の実装例が追加されました。

[手順が必要なケース]

以下のケースと一致する場合、次の実装を行ってください。

  • 認可サーバでアクセストークンの取り消しを実装している。

[実装方法]

トークンの取り消し(クライアントサーバ) の実装例を確認し、実装を行ってください。

[Step 17] Cache-Controlヘッダが正常に出力されないバグ解消に伴う修正

Spring Security 4.1.0では以下のIssuesが原因でHTTPレスポンスヘッダが正常に出力されないバグが発生していました。

spring-project/spring-security#2953

以下のIssuesにおいて、上記バグの修正が行われ、Spring Security 4.2.0以降では発生しなくなりました。

spring-project/spring-security#3975

[手順が必要なケース]

Cache-Controlヘッダが正常に出力されることによる影響の有無を確認し、ある場合は開発ガイドラインの ブラウザのセキュリティ対策機能との連携 に従い適切に対応を行ってください。

[修正方法]

対処として行った実装を削除してください。

5.4.1用のAppendix

Eclipse WTP Project使用時のライブラリ更新

この更新手順は、release site からダウンロードしたEclipse WTPプロジェクト向けです。

Note

凡例

[テーブルヘッダ]
Non : O/R Mapperに非依存のブランクプロジェクト
MB3 : MyBatis3用のブランクプロジェクト
JPA : JPA用のブランクプロジェクト
[備考欄]
* : オペレーション対象

[Step 1]

Eclipse WTP Project of 5.4.1.RELEASE をダウンロードしてください。

[Step 2]

Eclipseが起動している場合、Eclipseを終了します。

[Step 3]

$YOUR_ECLIPSE_WTP_PROJECT/src/main/webapp/WEB-INF/lib のjarファイルを更新(削除して追加)してください。

.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 削除ファイル 追加ファイル Non MB3 JPA
TERASOLUNA Server Framework for Java (5.x) Common Library terasoluna-gfw-common-5.3.1.RELEASE.jar terasoluna-gfw-common-5.4.1.RELEASE.jar * * *
  terasoluna-gfw-jodatime-5.3.1.RELEASE.jar terasoluna-gfw-jodatime-5.4.1.RELEASE.jar * * *
  terasoluna-gfw-security-web-5.3.1.RELEASE.jar terasoluna-gfw-security-web-5.4.1.RELEASE.jar * * *
  terasoluna-gfw-web-5.3.1.RELEASE.jar terasoluna-gfw-web-5.4.1.RELEASE.jar * * *
  terasoluna-gfw-web-jsp-5.3.1.RELEASE.jar terasoluna-gfw-web-jsp-5.4.1.RELEASE.jar * * *
Spring Framework spring-aop-4.3.5.RELEASE.jar spring-aop-4.3.14.RELEASE.jar * * *
  spring-aspects-4.3.5.RELEASE.jar spring-aspects-4.3.14.RELEASE.jar * * *
  spring-beans-4.3.5.RELEASE.jar spring-beans-4.3.14.RELEASE.jar * * *
  spring-context-4.3.5.RELEASE.jar spring-context-4.3.14.RELEASE.jar * * *
  spring-context-support-4.3.5.RELEASE.jar spring-context-support-4.3.14.RELEASE.jar * * *
  spring-core-4.3.5.RELEASE.jar spring-core-4.3.14.RELEASE.jar * * *
  spring-expression-4.3.5.RELEASE.jar spring-expression-4.3.14.RELEASE.jar * * *
  spring-jdbc-4.3.5.RELEASE.jar spring-jdbc-4.3.14.RELEASE.jar * * *
  spring-orm-4.3.5.RELEASE.jar spring-orm-4.3.14.RELEASE.jar * * *
  spring-tx-4.3.5.RELEASE.jar spring-tx-4.3.14.RELEASE.jar * * *
  spring-web-4.3.5.RELEASE.jar spring-web-4.3.14.RELEASE.jar * * *
  spring-webmvc-4.3.5.RELEASE.jar spring-webmvc-4.3.14.RELEASE.jar * * *
Spring Data Commons spring-data-commons-1.12.6.RELEASE.jar spring-data-commons-1.13.7.RELEASE.jar * * *
Spring Security spring-security-acl-4.1.4.RELEASE.jar spring-security-acl-4.2.4.RELEASE.jar * * *
  spring-security-config-4.1.4.RELEASE.jar spring-security-config-4.2.4.RELEASE.jar * * *
  spring-security-core-4.1.4.RELEASE.jar spring-security-core-4.2.4.RELEASE.jar * * *
  spring-security-taglibs-4.1.4.RELEASE.jar spring-security-taglibs-4.2.4.RELEASE.jar * * *
  spring-security-web-4.1.4.RELEASE.jar spring-security-web-4.2.4.RELEASE.jar * * *
MyBatis3 mybatis-3.4.2.jar mybatis-3.4.5.jar * * *
Hibernate hibernate-core-5.0.11.Final.jar hibernate-core-5.0.12.Final.jar *
  hibernate-entitymanager-5.0.11.Final.jar hibernate-entitymanager-5.0.12.Final.jar *
  javassist-3.20.0-GA.jar javassist-3.21.0-GA.jar *
  jandex-2.0.0.Final.jar jandex-2.0.3.Final.jar *
Spring Data JPA spring-data-jpa-1.10.6.RELEASE.jar spring-data-jpa-1.11.7.RELEASE.jar *
AspectJ aspectjrt-1.8.9.jar aspectjrt-1.8.10.jar * * *
  aspectjweaver-1.8.9.jar aspectjweaver-1.8.10.jar * * *
Logback logback-classic-1.1.8.jar logback-classic-1.1.11.jar * * *
  logback-core-1.1.8.jar logback-core-1.1.11.jar * * *
SLF4J jcl-over-slf4j-1.7.22.jar jcl-over-slf4j-1.7.25.jar * * *
  slf4j-api-1.7.22.jar slf4j-api-1.7.25.jar * * *
Jackson jackson-annotations-2.8.5.jar jackson-annotations-2.8.0.jar * * *
  jackson-core-2.8.5.jar jackson-core-2.8.10.jar * * *
  jackson-databind-2.8.5.jar jackson-databind-2.8.10.jar * * *
  jackson-datatype-joda-2.8.5.jar jackson-datatype-joda-2.8.10.jar * * *
  jackson-datatype-jsr310-2.8.5.jar jackson-datatype-jsr310-2.8.10.jar * * *
Hibernate Validator hibernate-validator-5.2.4.Final.jar hibernate-validator-5.3.5.Final.jar * * *
Jboss Logging jboss-logging-3.3.0.Final.jar jboss-logging-3.3.1.Final.jar * * *
Classmate classmate-1.3.3.jar classmate-1.3.4.jar * * *
Apache Commons Lang commons-lang3-3.4.jar commons-lang3-3.5.jar * * *
Joda Time joda-time-2.9.6.jar joda-time-2.9.9.jar * * *
Guava guava-17.0.jar guava-20.0.jar * - *
Tomcat tomcat-el-api-8.5.6.jar tomcat-el-api-8.5.20.jar * * *
  tomcat-jsp-api-8.5.6.jar tomcat-jsp-api-8.5.20.jar * * *
  tomcat-servlet-api-8.5.6.jar tomcat-servlet-api-8.5.20.jar * * *

[Step 4]

$YOUR_ECLIPSE_WTP_PROJECT/testlib のjarファイルを更新(削除して追加)してください。

.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 削除ファイル 追加ファイル Non MB3 JPA
Spring TestContext Framework spring-test-4.3.5.RELEASE.jar spring-test-4.3.14.RELEASE.jar * * *
Tomcat Embed El tomcat-embed-el-8.5.6.jar tomcat-embed-el-8.5.20.jar * * *
Gson gson-2.7.jar gson-2.8.1.jar * * *
Apache HTTPClient httpclient-4.5.2.jar httpclient-4.5.3.jar * * *
  httpcore-4.4.5.jar httpcore-4.4.6.jar * * *
  httpmime-4.5.2.jar httpmime-4.5.3.jar * * *
Jetty jetty-io-9.3.14.v20161028.jar jetty-io-9.4.6.v20170531.jar * * *
  jetty-util-9.3.14.v20161028.jar jetty-util-9.4.6.v20170531.jar * * *
Netty netty-3.5.2.Final.jar netty-3.5.7.Final.jar * * *
Objenesis objenesis-2.4.jar objenesis-2.5.1.jar * * *
Selenium selenium-api-2.46.0.jar selenium-api-2.53.1.jar * * *
  selenium-chrome-driver-2.46.0.jar selenium-chrome-driver-2.53.1.jar * * *
  selenium-firefox-driver-2.46.0.jar selenium-firefox-driver-2.53.1.jar * * *
  selenium-htmlunit-driver-2.46.0.jar selenium-htmlunit-driver-2.53.1.jar * * *
  selenium-ie-driver-2.46.0.jar selenium-ie-driver-2.53.1.jar * * *
  selenium-java-2.46.0.jar selenium-java-2.53.1.jar * * *
  selenium-leg-rc-2.46.0.jar selenium-leg-rc-2.53.1.jar * * *
  selenium-remote-driver-2.46.0.jar selenium-remote-driver-2.53.1.jar * * *
  selenium-safari-driver-2.46.0.jar selenium-safari-driver-2.53.1.jar * * *
  selenium-support-2.46.0.jar selenium-support-2.53.1.jar * * *
Webbit websocket-api-9.3.14.v20161028.jar websocket-api-9.4.6.v20170531.jar * * *
  websocket-client-9.3.14.v20161028.jar websocket-client-9.4.6.v20170531.jar * * *
  websocket-common-9.3.14.v20161028.jar websocket-common-9.4.6.v20170531.jar * * *

[Step 5]

$YOUR_ECLIPSE_WTP_PROJECT/libsrc のソース格納用jarファイルを更新(削除して追加)してください。

.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 削除ファイル 追加ファイル Non MB3 JPA
TERASOLUNA Server Framework for Java (5.x) Common Library terasoluna-gfw-common-5.3.1.RELEASE-sources.jar terasoluna-gfw-common-5.4.1.RELEASE-sources.jar * * *
  terasoluna-gfw-jodatime-5.3.1.RELEASE-sources.jar terasoluna-gfw-jodatime-5.4.1.RELEASE-sources.jar * * *
  terasoluna-gfw-security-web-5.3.1.RELEASE-sources.jar terasoluna-gfw-security-web-5.4.1.RELEASE-sources.jar * * *
  terasoluna-gfw-web-5.3.1.RELEASE-sources.jar terasoluna-gfw-web-5.4.1.RELEASE-sources.jar * * *
  terasoluna-gfw-web-jsp-5.3.1.RELEASE-sources.jar terasoluna-gfw-web-jsp-5.4.1.RELEASE-sources.jar * * *
Spring Framework spring-aop-4.3.5.RELEASE-sources.jar spring-aop-4.3.14.RELEASE-sources.jar * * *
  spring-aspects-4.3.5.RELEASE-sources.jar spring-aspects-4.3.14.RELEASE-sources.jar * * *
  spring-beans-4.3.5.RELEASE-sources.jar spring-beans-4.3.14.RELEASE-sources.jar * * *
  spring-context-4.3.5.RELEASE-sources.jar spring-context-4.3.14.RELEASE-sources.jar * * *
  spring-context-support-4.3.5.RELEASE-sources.jar spring-context-support-4.3.14.RELEASE-sources.jar * * *
  spring-core-4.3.5.RELEASE-sources.jar spring-core-4.3.14.RELEASE-sources.jar * * *
  spring-expression-4.3.5.RELEASE-sources.jar spring-expression-4.3.14.RELEASE-sources.jar * * *
  spring-jdbc-4.3.5.RELEASE-sources.jar spring-jdbc-4.3.14.RELEASE-sources.jar * * *
  spring-orm-4.3.5.RELEASE-sources.jar spring-orm-4.3.14.RELEASE-sources.jar * * *
  spring-tx-4.3.5.RELEASE-sources.jar spring-tx-4.3.14.RELEASE-sources.jar * * *
  spring-web-4.3.5.RELEASE-sources.jar spring-web-4.3.14.RELEASE-sources.jar * * *
  spring-webmvc-4.3.5.RELEASE-sources.jar spring-webmvc-4.3.14.RELEASE-sources.jar * * *
Spring Data Commons spring-data-commons-1.12.6.RELEASE-sources.jar spring-data-commons-1.13.7.RELEASE-sources.jar * * *
Spring Data JPA spring-data-jpa-1.10.6.RELEASE-sources.jar spring-data-jpa-1.11.7.RELEASE-sources.jar *
Spring Security spring-security-acl-4.1.4.RELEASE-sources.jar spring-security-acl-4.2.4.RELEASE-sources.jar * * *
  spring-security-config-4.1.4.RELEASE-sources.jar spring-security-config-4.2.4.RELEASE-sources.jar * * *
  spring-security-core-4.1.4.RELEASE-sources.jar spring-security-core-4.2.4.RELEASE-sources.jar * * *
  spring-security-taglibs-4.1.4.RELEASE-sources.jar spring-security-taglibs-4.2.4.RELEASE-sources.jar * * *
  spring-security-web-4.1.4.RELEASE-sources.jar spring-security-web-4.2.4.RELEASE-sources.jar * * *
Spring TestContext Framework spring-test-4.3.5.RELEASE-sources.jar spring-test-4.3.14.RELEASE-sources.jar * * *
MyBatis3 mybatis-3.4.2-sources.jar mybatis-3.4.5-sources.jar * * *
Hibernate hibernate-core-5.0.11.Final-sources.jar hibernate-core-5.0.12.Final-sources.jar *
  hibernate-entitymanager-5.0.11.Final-sources.jar hibernate-entitymanager-5.0.12.Final-sources.jar *
  javassist-3.20.0-GA-sources.jar javassist-3.21.0-GA-sources.jar *
  jandex-2.0.0.Final-sources.jar jandex-2.0.3.Final-sources.jar *
Spring Data JPA spring-data-jpa-1.10.6.RELEASE-sources.jar spring-data-jpa-1.11.7.RELEASE-sources.jar *
AspectJ aspectjrt-1.8.9-sources.jar aspectjrt-1.8.10-sources.jar * * *
  aspectjweaver-1.8.9-sources.jar aspectjweaver-1.8.10-sources.jar * * *
Logback logback-classic-1.1.8-sources.jar logback-classic-1.1.11-sources.jar * * *
  logback-core-1.1.8-sources.jar logback-core-1.1.11-sources.jar * * *
SLF4J jcl-over-slf4j-1.7.22-sources.jar jcl-over-slf4j-1.7.25-sources.jar * * *
  slf4j-api-1.7.22-sources.jar slf4j-api-1.7.25-sources.jar * * *
Jackson jackson-annotations-2.8.5-sources.jar jackson-annotations-2.8.0-sources.jar * * *
  jackson-core-2.8.5-sources.jar jackson-core-2.8.10-sources.jar * * *
  jackson-databind-2.8.5-sources.jar jackson-databind-2.8.10-sources.jar * * *
  jackson-datatype-joda-2.8.5-sources.jar jackson-datatype-joda-2.8.10-sources.jar * * *
  jackson-datatype-jsr310-2.8.5-sources.jar jackson-datatype-jsr310-2.8.10-sources.jar * * *
Hibernate Validator hibernate-validator-5.2.4.Final-sources.jar hibernate-validator-5.3.5.Final-sources.jar * * *
Jboss Logging jboss-logging-3.3.0.Final-sources.jar jboss-logging-3.3.1.Final-sources.jar * * *
Classmate classmate-1.3.3-sources.jar classmate-1.3.4-sources.jar * * *
Apache Commons Lang commons-lang3-3.4-sources.jar commons-lang3-3.5-sources.jar * * *
Joda Time joda-time-2.9.6-sources.jar joda-time-2.9.9-sources.jar * * *
Guava guava-17.0-sources.jar guava-20.0-sources.jar * - *
Tomcat tomcat-el-api-8.5.6-sources.jar tomcat-el-api-8.5.20-sources.jar * * *
  tomcat-jsp-api-8.5.6-sources.jar tomcat-jsp-api-8.5.20-sources.jar * * *
  tomcat-servlet-api-8.5.6-sources.jar tomcat-servlet-api-8.5.20-sources.jar * * *
Tomcat Embed El tomcat-embed-el-8.5.6-sources.jar tomcat-embed-el-8.5.20-sources.jar * * *
Gson gson-2.7-sources.jar gson-2.8.1-sources.jar * * *
Apache HTTPClient httpclient-4.5.2-sources.jar httpclient-4.5.3-sources.jar * * *
  httpcore-4.4.5-sources.jar httpcore-4.4.6-sources.jar * * *
  httpmime-4.5.2-sources.jar httpmime-4.5.3-sources.jar * * *
Jetty jetty-io-9.3.14.v20161028-sources.jar jetty-io-9.4.6.v20170531-sources.jar * * *
  jetty-util-9.3.14.v20161028-sources.jar jetty-util-9.4.6.v20170531-sources.jar * * *
Netty netty-3.5.2.Final-sources.jar netty-3.5.7.Final-sources.jar * * *
Objenesis objenesis-2.4-sources.jar objenesis-2.5.1-sources.jar * * *
Selenium selenium-api-2.46.0-sources.jar selenium-api-2.53.1-sources.jar * * *
  selenium-chrome-driver-2.46.0-sources.jar selenium-chrome-driver-2.53.1-sources.jar * * *
  selenium-firefox-driver-2.46.0-sources.jar selenium-firefox-driver-2.53.1-sources.jar * * *
  selenium-htmlunit-driver-2.46.0-sources.jar selenium-htmlunit-driver-2.53.1-sources.jar * * *
  selenium-ie-driver-2.46.0-sources.jar selenium-ie-driver-2.53.1-sources.jar * * *
  selenium-java-2.46.0-sources.jar selenium-java-2.53.1-sources.jar * * *
  selenium-leg-rc-2.46.0-sources.jar selenium-leg-rc-2.53.1-sources.jar * * *
  selenium-remote-driver-2.46.0-sources.jar selenium-remote-driver-2.53.1-sources.jar * * *
  selenium-safari-driver-2.46.0-sources.jar selenium-safari-driver-2.53.1-sources.jar * * *
  selenium-support-2.46.0-sources.jar selenium-support-2.53.1-sources.jar * * *
Webbit websocket-api-9.3.14.v20161028-sources.jar websocket-api-9.4.6.v20170531-sources.jar * * *
  websocket-client-9.3.14.v20161028-sources.jar websocket-client-9.4.6.v20170531-sources.jar * * *
  websocket-common-9.3.14.v20161028-sources.jar websocket-common-9.4.6.v20170531-sources.jar * * *

[Step 6]

置換文字列を使用して、参照ライブラリを更新してください。

  • $YOUR_ECLIPSE_WTP_PROJECT/.classpath
  • $YOUR_ECLIPSE_WTP_PROJECT/build.xml
.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 置換対象文字 置換文字 Non MB3 JPA
TERASOLUNA Server Framework for Java (5.x) Common Library terasoluna-gfw-common-5.3.1.RELEASE terasoluna-gfw-common-5.4.1.RELEASE * * *
  terasoluna-gfw-jodatime-5.3.1.RELEASE terasoluna-gfw-jodatime-5.4.1.RELEASE * * *
  terasoluna-gfw-security-web-5.3.1.RELEASE terasoluna-gfw-security-web-5.4.1.RELEASE * * *
  terasoluna-gfw-web-5.3.1.RELEASE terasoluna-gfw-web-5.4.1.RELEASE * * *
  terasoluna-gfw-web-jsp-5.3.1.RELEASE terasoluna-gfw-web-jsp-5.4.1.RELEASE * * *
Spring Framework spring-aop-4.3.5.RELEASE spring-aop-4.3.14.RELEASE * * *
  spring-aspects-4.3.5.RELEASE spring-aspects-4.3.14.RELEASE * * *
  spring-beans-4.3.5.RELEASE spring-beans-4.3.14.RELEASE * * *
  spring-context-4.3.5.RELEASE spring-context-4.3.14.RELEASE * * *
  spring-context-support-4.3.5.RELEASE spring-context-support-4.3.14.RELEASE * * *
  spring-core-4.3.5.RELEASE spring-core-4.3.14.RELEASE * * *
  spring-expression-4.3.5.RELEASE spring-expression-4.3.14.RELEASE * * *
  spring-jdbc-4.3.5.RELEASE spring-jdbc-4.3.14.RELEASE * * *
  spring-orm-4.3.5.RELEASE spring-orm-4.3.14.RELEASE * * *
  spring-tx-4.3.5.RELEASE spring-tx-4.3.14.RELEASE * * *
  spring-web-4.3.5.RELEASE spring-web-4.3.14.RELEASE * * *
  spring-webmvc-4.3.5.RELEASE spring-webmvc-4.3.14.RELEASE * * *
Spring Data Commons spring-data-commons-1.12.6.RELEASE spring-data-commons-1.13.7.RELEASE * * *
Spring Data JPA spring-data-jpa-1.10.6.RELEASE spring-data-jpa-1.11.7.RELEASE *
Spring Security spring-security-acl-4.1.4.RELEASE spring-security-acl-4.2.4.RELEASE * * *
  spring-security-config-4.1.4.RELEASE spring-security-config-4.2.4.RELEASE * * *
  spring-security-core-4.1.4.RELEASE spring-security-core-4.2.4.RELEASE * * *
  spring-security-taglibs-4.1.4.RELEASE spring-security-taglibs-4.2.4.RELEASE * * *
  spring-security-web-4.1.4.RELEASE spring-security-web-4.2.4.RELEASE * * *
Spring TestContext Framework spring-test-4.3.5.RELEASE spring-test-4.3.14.RELEASE * * *
MyBatis3 mybatis-3.4.2 mybatis-3.4.5 * * *
Hibernate hibernate-core-5.0.11.Final hibernate-core-5.0.12.Final *
  hibernate-entitymanager-5.0.11.Final hibernate-entitymanager-5.0.12.Final *
  javassist-3.20.0-GA javassist-3.21.0-GA *
  jandex-2.0.0.Final jandex-2.0.3.Final *
Spring Data JPA spring-data-jpa-1.10.6.RELEASE spring-data-jpa-1.11.7.RELEASE *
AspectJ aspectjrt-1.8.9 aspectjrt-1.8.10 * * *
  aspectjweaver-1.8.9 aspectjweaver-1.8.10 * * *
Logback logback-classic-1.1.8 logback-classic-1.1.11 * * *
  logback-core-1.1.8 logback-core-1.1.11 * * *
SLF4J jcl-over-slf4j-1.7.22 jcl-over-slf4j-1.7.25 * * *
  slf4j-api-1.7.22 slf4j-api-1.7.25 * * *
Jackson jackson-annotations-2.8.5 jackson-annotations-2.8.0 * * *
  jackson-core-2.8.5 jackson-core-2.8.10 * * *
  jackson-databind-2.8.5 jackson-databind-2.8.10 * * *
  jackson-datatype-joda-2.8.5 jackson-datatype-joda-2.8.10 * * *
  jackson-datatype-jsr310-2.8.5 jackson-datatype-jsr310-2.8.10 * * *
Hibernate Validator hibernate-validator-5.2.4.Final hibernate-validator-5.3.5.Final * * *
Jboss Logging jboss-logging-3.3.0.Final jboss-logging-3.3.1.Final * * *
Classmate classmate-1.3.3 classmate-1.3.4 * * *
Apache Commons Lang commons-lang3-3.4 commons-lang3-3.5 * * *
Joda Time joda-time-2.9.6 joda-time-2.9.9 * * *
Guava guava-17.0 guava-20.0 * - *
Tomcat tomcat-el-api-8.5.6 tomcat-el-api-8.5.20 * * *
  tomcat-jsp-api-8.5.6 tomcat-jsp-api-8.5.20 * * *
  tomcat-servlet-api-8.5.6 tomcat-servlet-api-8.5.20 * * *
Tomcat Embed El tomcat-embed-el-8.5.6 tomcat-embed-el-8.5.20 * * *
Gson gson-2.7 gson-2.8.1 * * *
Apache HTTPClient httpclient-4.5.2 httpclient-4.5.3 * * *
  httpcore-4.4.5 httpcore-4.4.6 * * *
  httpmime-4.5.2 httpmime-4.5.3 * * *
Jetty jetty-io-9.3.14.v20161028 jetty-io-9.4.6.v20170531 * * *
  jetty-util-9.3.14.v20161028 jetty-util-9.4.6.v20170531 * * *
Netty netty-3.5.2.Final netty-3.5.7.Final * * *
Objenesis objenesis-2.4 objenesis-2.5.1 * * *
Selenium selenium-api-2.46.0 selenium-api-2.53.1 * * *
  selenium-chrome-driver-2.46.0 selenium-chrome-driver-2.53.1 * * *
  selenium-firefox-driver-2.46.0 selenium-firefox-driver-2.53.1 * * *
  selenium-htmlunit-driver-2.46.0 selenium-htmlunit-driver-2.53.1 * * *
  selenium-ie-driver-2.46.0 selenium-ie-driver-2.53.1 * * *
  selenium-java-2.46.0 selenium-java-2.53.1 * * *
  selenium-leg-rc-2.46.0 selenium-leg-rc-2.53.1 * * *
  selenium-remote-driver-2.46.0 selenium-remote-driver-2.53.1 * * *
  selenium-safari-driver-2.46.0 selenium-safari-driver-2.53.1 * * *
  selenium-support-2.46.0 selenium-support-2.53.1 * * *
Webbit websocket-api-9.3.14.v20161028 websocket-api-9.4.6.v20170531 * * *
  websocket-client-9.3.14.v20161028 websocket-client-9.4.6.v20170531 * * *
  websocket-common-9.3.14.v20161028 websocket-common-9.4.6.v20170531 * * *
⚠️ **GitHub.com Fallback** ⚠️