Skip to content

Migration Guide 5.0.2_ja

btooshitahr edited this page Feb 23, 2016 · 19 revisions

5.0.1から5.0.2への移行ガイド

.. only:: html

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

5.0.2での主な変更点

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

  • Spring Frameworkを4.1.9へ更新
  • Apache Commons Collectionsを3.2.2へ更新
  • Spring IO Platformを1.1.5へ更新
  • MyBatisを3.3.0へ更新
  • ブランクプロジェクトの改善

Spring Frameworkを4.1.9へ更新

5.0.2から、セキュリティ脆弱性を解決するためにSpring Frameworkを4.1.9.RELEASEへ更新しました。

  • [CVE-2015-5211] RFD Attack in Spring Framework ([SPR-13548] Protect against RFD exploits)
  • [CVE-2015-4852] [SPR-13656] SerializableTypeWrapper.MethodInvokeTypeProvider can be exploited for unsafe deserialization

Apache Commons Collectionsを3.2.2へ更新

5.0.2から、セキュリティ脆弱性を解決するためにApache Commons Collectionsを3.2.2へ更新しました。

  • [CVE-2015-4852] [COLLECTIONS-580] Arbitrary remote code execution with InvokerTransformer

Spring IO Platformを1.1.5へ更新

5.0.2から、Spring IO Platformを1.1.5.RELEASEへ更新しました。 この更新は、上の2つのセキュリティ脆弱性を解決するために行い、結果として以下のライブラリも更新しました。

  • Spring Securityを3.2.9.RELEASEへ更新
  • Spring Data Commonsを1.9.4.RELEASEへ更新
  • Spring Data JPAを1.7.4.RELEASEへ更新
  • AspectJを1.8.7へ更新
  • Hibernate ORMを4.3.11.Finalへ更新
  • SLF4Jを1.7.13へ更新

MyBatisを3.3.0へ更新

5.0.2から、下記のバグ修正を取り込むために、MyBatisを3.3.0へ更新しました。 この更新にあわせて、MyBatis Springを1.2.3へ更新しました。

  • [#464] Bug fix support for MyBatis unexpected NPE
また、この更新に伴い、関連Entityを"Lazy Load"する際に使用されるデフォルトのライブラリが変更されています。デフォルトライブラリはCGLIBからJAVASSISTに変更されました。

ブランクプロジェクトの改善

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

5.0.1から5.0.2への移行手順

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

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
"hibernate.hbm2ddl.auto"の設定値の変更 Optional Optional Optional
URL再書込を禁止するServlet3.0の設定 Optional Optional Optional
不要なリポジトリ情報の削除 Required Required Required
プロパティ名記述誤りの修正 Optional Optional Optional
MyBatis3.3.0へ更新したことによる設定変更 Optional Optional Optional
DB初期化処理で使用するパスを絶対パスへ変更 Optional - -
テスト時プロパティファイルを読み込むための設定 Required - -
build-helper-maven-pluginを使用するための設定 Optional - -
コードリストファイル読込時のワイルドカード設定 - Optional(※) Optional(※)
cargo-maven2-pluginの使用 Optional Optional Optional

(※)MavenSingle ProjectとEclipseWTP Projectと中でも対象となるプロジェクトは、MyBatisとJPAを用いたブランクプロジェクトです。DB設定のないブランクプロジェクトは対象外(既に設定有)です。

[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.0.1.RELEASE 5.0.2.RELEASE  
Spring Framework 4.1.7.RELEASE 4.1.9.RELEASE  
Spring Security 3.2.7.RELEASE 3.2.9.RELEASE  
Spring Data Commons 1.9.3.RELEASE 1.9.4.RELEASE  
Spring Data JPA 1.7.3.RELEASE 1.7.4.RELEASE  
Hibernate 4.3.10.Final 4.3.11.Final  
AspectJ 1.8.6 1.8.7  
SLF4J 1.7.12 1.7.13  

[手順が必要なケース]

この手順の適用は必須です。 この更新を適用すると、二つのセキュリティ脆弱性とMyBatisのバグが解決されます。

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

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

親プロジェクトのpomファイルを更新してください。 ($YOUR_MULTIPLE_PROJECT_ROOT/pom.xml)

【修正前】

<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.0.1.RELEASE</version> <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

【修正後】

<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.0.2.RELEASE</version> <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

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

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

プロジェクトのpomファイルを更新してください。 ($YOUR_SINGLE_PROJECT/pom.xml)

【修正前】

<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.0.1.RELEASE</version> <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

【修正後】

<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.0.2.RELEASE</version> <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

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

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

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

[Step 2] "hibernate.hbm2ddl.auto"の設定値の変更

5.0.2から、"hibernate.hbm2ddl.auto"の値を"none"から""(空文字)に変更しました。 この対応に伴い、Hibernateに関する以下の不要なログが出力されなくなります。

date:2015-08-13 13:06:12     thread:RMI TCP Connection(2)-127.0.0.1  X-Track:        level:WARN      logger:org.hibernate.cfg.SettingsFactory                message:Unrecognized value for "hibernate.hbm2ddl.auto": none

5.0.1以前で設定されていた値"none"はHibernateでサポートされていないものでした。 "hibernate.hbm2ddl.auto"を使用しない場合、値に何も設定する必要はありません。

[手順が必要なケース]

この手順の適用は任意ですが、"hibernate.hbm2ddl.auto"を使用しない場合は不要な警告ログが出力されるため、次の修正を行って対応することを推奨します。

[修正方法]

JPAプロジェクトにおける以下のいずれかのファイルにて、デフォルト値を修正してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx-domain/src/main/resources/META-INF/spring/projectName-infra.xml
  • $YOUR_SINGLE_PROJECT/src/main/resources/META-INF/spring/projectName-infra.xml
  • $YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/spring/projectName-infra.xml

【修正前】

<!-- omitted -->
<bean
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
    id="entityManagerFactory">
    <property name="packagesToScan" value="test.domain.model" />
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    <property name="jpaPropertyMap">
        <util:map>
            <entry key="hibernate.hbm2ddl.auto" value="none" /> <!-- ### 修正箇所 ### -->
            <entry key="hibernate.ejb.naming_strategy"
                value="org.hibernate.cfg.ImprovedNamingStrategy" />
<!-- omitted -->

【修正後】

<!-- omitted -->
<bean
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
    id="entityManagerFactory">
    <property name="packagesToScan" value="test.domain.model" />
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    <property name="jpaPropertyMap">
        <util:map>
            <entry key="hibernate.hbm2ddl.auto" value="" /> <!-- ### 修正箇所 ### -->
            <entry key="hibernate.ejb.naming_strategy"
                value="org.hibernate.cfg.ImprovedNamingStrategy" />
<!-- omitted -->

[Step 3] URL再書込を禁止するServlet3.0の設定

5.0.2から、URLの再書込を禁止するServlet3.0の設定を取り込みました。 詳細な情報は、GitHub multi#179 を参照してください。

[手順が必要なケース]

この手順の適用は任意ですが、セキュリティ観点から適用を推奨します。

以下のケースの場合、本手順の実施は必要ありません。

  • クライアント-サーバ間におけるセッションIDの取り扱い方法としてCookieでの実現が難しく、URL再書込を行う必要がある場合

[修正方法]

以下のいずれかのファイルにて、設定を追加してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx-web/src/main/webapp/WEB-INF/web.xml
  • $YOUR_SINGLE_PROJECT/src/main/webapp/WEB-INF/web.xml
  • $YOUR_ECLIPSE_WTP_PROJECT/src/main/webapp/WEB-INF/web.xml

【修正前】

<!-- omitted -->
<session-config>
    <!-- 30min -->
    <session-timeout>30</session-timeout>
</session-config>
<!-- omitted -->

【修正後】

<!-- omitted -->
<session-config>
    <!-- 30min -->
    <session-timeout>30</session-timeout>
    <cookie-config>                       <!-- ### 追加箇所 ### -->
        <http-only>true</http-only>       <!-- ### 追加箇所 ### -->
        <!-- <secure>true</secure> -->    <!-- ### 追加箇所 ### -->
    </cookie-config>                      <!-- ### 追加箇所 ### -->
    <tracking-mode>COOKIE</tracking-mode> <!-- ### 追加箇所 ### -->
</session-config>
<!-- omitted -->

[Step 4] 不要なリポジトリ情報の削除

5.0.2から、不要であったリポジトリ情報を削除しました。

[手順が必要なケース]

この手順の適用は必須です。不要なリポジトリ情報であるため、次の修正を行って対応してください。

[修正方法]

以下のいずれかのファイルにて、設定を削除してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/pom.xml
  • $YOUR_SINGLE_PROJECT/pom.xml
  • $YOUR_ECLIPSE_WTP_PROJECT/pom.xml

【修正前】

<!-- omitted -->
    <repository>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
        </snapshots>
        <id>terasoluna-gfw-snapshots</id>
        <url>http://repo.terasoluna.org/nexus/content/repositories/terasoluna-gfw-snapshots/</url>
    </repository>
    <repository>                                                                                  <!-- ### 削除箇所 ### -->
        <releases>                                                                                <!-- ### 削除箇所 ### -->
        </releases>                                                                               <!-- ### 削除箇所 ### -->
        <snapshots>                                                                               <!-- ### 削除箇所 ### -->
            <enabled>false</enabled>                                                              <!-- ### 削除箇所 ### -->
        </snapshots>                                                                              <!-- ### 削除箇所 ### -->
        <id>terasoluna-gfw-3rdparty</id>                                                          <!-- ### 削除箇所 ### -->
        <url>http://repo.terasoluna.org/nexus/content/repositories/terasoluna-gfw-3rdparty/</url> <!-- ### 削除箇所 ### -->
    </repository>                                                                                 <!-- ### 削除箇所 ### -->
</repositories>
<!-- omitted -->

【修正後】

<!-- omitted -->
    <repository>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
        </snapshots>
        <id>terasoluna-gfw-snapshots</id>
        <url>http://repo.terasoluna.org/nexus/content/repositories/terasoluna-gfw-snapshots/</url>
    </repository>
</repositories>
<!-- omitted -->

[Step 5] プロパティ名記述誤りの修正

5.0.2から、誤って設定されていたプロパティ名を"-maven-plugi"から" -maven-plugin "に修正しました。

[手順が必要なケース]

この手順の適用は任意ですが、誤記のため可能な限り以下の修正を行ってください。

[修正方法]

以下のいずれかのファイルにて、設定を修正してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/pom.xml
  • $YOUR_SINGLE_PROJECT/pom.xml
  • $YOUR_ECLIPSE_WTP_PROJECT/pom.xml

【修正前】

<!-- omitted -->
<properties>
    <java-version>1.7</java-version>
    <org.codehaus.mojo.build-helper-maven-plugi.version>1.9.1</org.codehaus.mojo.build-helper-maven-plugi.version> <!-- ### 修正箇所 ### -->
</properties>
<!-- omitted -->

<!-- omitted -->
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>${org.codehaus.mojo.build-helper-maven-plugi.version}</version> <!-- ### 修正箇所 ### -->
                <executions>
<!-- omitted -->

【修正後】

<!-- omitted -->
<properties>
    <java-version>1.7</java-version>
    <org.codehaus.mojo.build-helper-maven-plugin.version>1.9.1</org.codehaus.mojo.build-helper-maven-plugin.version> <!-- ### 修正箇所 ### -->
</properties>
<!-- omitted -->

<!-- omitted -->
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>${org.codehaus.mojo.build-helper-maven-plugin.version}</version> <!-- ### 修正箇所 ### -->
                <executions>
<!-- omitted -->

[Step 6] MyBatis3.3.0へ更新したことによる設定変更

5.0.2から、MyBaits3.3.0へ更新したことにより"Lazy Load"を実現するために使用されるライブラリのデフォルト設定がCGLIBからJAVASSISTに変更されました。

[手順が必要なケース]

この手順の適用は任意です。以下2つのケースの場合、本手順の実施は必要ありません。

  • 適用外ケース1:"Lazy Load"を使用しない場合
  • 適用外ケース2:"Lazy Load"を使用するが、 pom.xml 設定ファイルの"dependency"および mybatis-config.xml 設定ファイルの"proxyFactory"により明示的に使用するライブラリを指定している場合

本手順が必要となるケースは、"Lazy Load"をデフォルトのライブラリで実現している場合(明示的にライブラリの設定を未実施の場合)です。 5.0.2への移行時に、使用するライブラリを変更しMyBatis3.3.0のデフォルトライブラリに準じるのか、 移行前とライブラリを変更しない方針とするかの対応次第により、以下2つのいずれかの手順を実施してください。

  • Step 6-1:MyBatisのデフォルトライブラリを使用する場合(JAVASSISTを使用)
  • Step 6-2:移行前とライブラリを変更しない場合(CGLIBを使用)

[Step 6-1] MyBatisのデフォルトライブラリを使用する場合(JAVASSISTを使用)

この手順は"Lazy Load"を実現するために使用するライブラリとしてMyBatis3.3.0のデフォルトライブラリであるJAVASSISTを使用するケースです。 移行前に使用されていたCGLIBの設定を削除します。

[修正方法]

MyBatisプロジェクトにおける以下のいずれかのファイルにて、設定を修正してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/pom.xml
  • $YOUR_SINGLE_PROJECT/pom.xml
  • $YOUR_ECLIPSE_WTP_PROJECT/pom.xml

【修正前】

<!-- omitted -->
        <dependency>                       <!-- ### 削除箇所 ### -->
            <groupId>cglib</groupId>       <!-- ### 削除箇所 ### -->
            <artifactId>cglib</artifactId> <!-- ### 削除箇所 ### -->
            <version>3.1</version>         <!-- ### 削除箇所 ### -->
            <scope>runtime</scope>         <!-- ### 削除箇所 ### -->
        </dependency>                      <!-- ### 削除箇所 ### -->
<!-- omitted -->

【修正後】

<!-- omitted -->
     <!-- none -->
<!-- omitted -->

[Step 6-2] 移行前とライブラリを変更しない場合(CGLIBを使用)

この手順は"Lazy Load"を実現するために使用するライブラリとしてCGLIBを使用するケースです。 MyBatis3.3.0ではJAVASSISTがデフォルトとなるため、CGLIBの設定を追加します。

[修正方法]

MyBatisプロジェクトにおける以下のいずれかのファイルにて、設定を修正してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx-domain/src/main/resources/META-INF/mybatis/mybatis-config.xml
  • $YOUR_SINGLE_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml
  • $YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml

【修正前】

<!-- omitted -->
<!-- See http://mybatis.github.io/mybatis-3/configuration.html#settings -->
<settings>
    <setting name="mapUnderscoreToCamelCase" value="true" />
    <setting name="lazyLoadingEnabled" value="true" />
    <setting name="aggressiveLazyLoading" value="false" />
<!-- ### 削除箇所 開始 ### -->
<!--
    <setting name="defaultExecutorType" value="REUSE" />
    <setting name="jdbcTypeForNull" value="NULL" />
    <setting name="proxyFactory" value="JAVASSIST" />
    <setting name="localCacheScope" value="STATEMENT" />
-->
<!-- ### 削除箇所 終了 ### -->
</settings>
<!-- omitted -->

【修正後】

<!-- omitted -->
<!-- See http://mybatis.github.io/mybatis-3/configuration.html#settings -->
<settings>
    <setting name="mapUnderscoreToCamelCase" value="true" />
    <setting name="lazyLoadingEnabled" value="true" />
    <setting name="aggressiveLazyLoading" value="false" />
<!-- ### 追加箇所 開始 ### -->
<!-- Defaul value for proxyFactory has chenged to JAVASSIST since mybatis 3.3.0 .
 To use CGLIB as a proxyFactory, remove this comment and add dependency for CGLIB in pom.xml -->
    <setting name="proxyFactory" value="CGLIB" />
<!-- ### 追加箇所 終了 ### -->
</settings>
<!-- omitted -->

[Step 7] DB初期化処理で使用するパスを絶対パスへ変更

5.0.2から、DB初期化処理で使用するパスを絶対パスへ変更しました。

[手順が必要なケース]

この手順の適用は任意です。実行環境に依存するパス取得エラーの発生を回避するため、次の修正を行うことを推奨します。

[修正方法]

以下のファイルにて、設定を修正してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx_initdb/pom.xml

【修正前】

<!-- omitted -->
        <properties>
            <db.encoding>UTF8</db.encoding>
            <db.basedir>src/main/sqls/postgres</db.basedir> <!-- ### 修正箇所 ### -->
            <db.url>jdbc:postgresql://127.0.0.1:5432/projectName</db.url>
            <db.username>postgres</db.username>
<!-- omitted -->

【修正後】

<!-- omitted -->
        <properties>
            <db.encoding>UTF8</db.encoding>
            <db.basedir>${project.basedir}/src/main/sqls/postgres</db.basedir> <!-- ### 修正箇所 ### -->
            <db.url>jdbc:postgresql://127.0.0.1:5432/projectName</db.url>
            <db.username>postgres</db.username>
<!-- omitted -->

[Step 8] テスト時プロパティファイルを読み込むための設定

5.0.2から、テスト時にプロパティファイルを読み込むための設定を追加しました。 この対応を行うことで、テスト実行時プロパティファイルを読み込むことができます。

[手順が必要なケース]

この手順の適用は必須です。設定誤りのため、次の修正を行って対応してください。

[修正方法]

以下のファイルにて、設定を修正してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx_domain/src/test/resources/test-context.xml

【修正前】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <import resource="classpath:META-INF/spring/def-domain.xml" />

    <bean class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource" />
    </bean>
</beans>

【修正後】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" <!-- ### 追加箇所 ### -->
       xsi:schemaLocation="
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd <!-- ### 追加箇所 ### -->
       ">

    <context:property-placeholder                                  <!-- ### 追加箇所 ### -->
            location="classpath*:/META-INF/spring/*.properties" /> <!-- ### 追加箇所 ### -->

    <bean id="exceptionLogger" class="org.terasoluna.gfw.common.exception.ExceptionLogger" /> <!-- ### 追加箇所 ### -->

    <import resource="classpath:META-INF/spring/def-domain.xml" />

    <bean class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource" />
    </bean>

</beans>

[Step 9] build-helper-maven-pluginを使用するための設定

5.0.2から、build-helper-maven-pluginを使用するための設定を追加しました。 この対応を行うことで、ソースフォルダやリソースフォルダ等を追加することが可能です。

[手順が必要なケース]

この手順の適用は任意です。ソースフォルダ等を追加したい場合は次の修正を行って対応してください。

[修正方法]

以下のファイルに、設定を追加してください。

  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx_domain/pom.xml
  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx_selenium/pom.xml
  • $YOUR_MULTIPLE_PROJECT_ROOT/xxx_web/pom.xml

【修正前】

<!-- omitted -->
     <!-- none -->
<!-- omitted -->

【修正後】

<!-- omitted -->
<build>                                                        <!-- ### 追加箇所 ### -->
    <plugins>                                                  <!-- ### 追加箇所 ### -->
        <plugin>                                               <!-- ### 追加箇所 ### -->
            <groupId>org.codehaus.mojo</groupId>               <!-- ### 追加箇所 ### -->
            <artifactId>build-helper-maven-plugin</artifactId> <!-- ### 追加箇所 ### -->
        </plugin>                                              <!-- ### 追加箇所 ### -->
    </plugins>                                                 <!-- ### 追加箇所 ### -->
</build>                                                       <!-- ### 追加箇所 ### -->
<!-- omitted -->

[Step 10] コードリストファイル読込時のワイルドカード設定

5.0.2から、コードリストファイル読込時のワイルドカード設定を有効化しました。 この対応を行うことで、設定にヒットするコードリストファイル群を読み込むことができます。

[手順が必要なケース]

この手順の適用は任意です。コードリストを使用したい場合は、次の修正を行って対応してください。

[修正方法]

以下のいずれかのファイルにて、設定を修正してください。

  • $YOUR_SINGLE_PROJECT/src/main/resources/META-INF/spring/xxx-domain.xml
  • $YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/spring/xxx-domain.xml

【修正前】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <import resource="classpath:META-INF/spring/projectName-infra.xml" />

    <context:component-scan base-package="xxxxxx.yyyyyy.zzzzzz.domain" />

    <tx:annotation-driven /> <!-- ### 修正箇所 ### -->
<!-- omitted -->

【修正後】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <tx:annotation-driven /> <!-- ### 修正箇所 ### -->

    <import resource="classpath:META-INF/spring/projectName-infra.xml" />
    <import resource="classpath*:META-INF/spring/**/*-codelist.xml" /> <!-- ### 追加箇所 ### -->

    <context:component-scan base-package="xxxxxx.yyyyyy.zzzzzz.domain" />

<!-- omitted -->

[Step 11] cargo-maven2-pluginの使用

5.0.2から、cargo-maven2-pluginを使用するための設定を追加しました。 この設定でTomcat8を使用できます。

cargo-maven2-pluginに関する詳細は、Codehaus Cargo - Maven2 plugin を参照してください。

[手順が必要なケース]

この手順の適用は任意です。Tomcat8を使用したい場合は、次の使用方法を参照してください。

[使用方法]

以下のコマンドを $YOUR_PROJECT_ROOT 直下で実行してください。

[Multi blank project]

【事前準備】warファイル作成
$ mvn clean package
【実行】Tomcat8実行
$ mvn -f xxx-web/pom.xml cargo:run

[Single blank project]

【事前準備】warファイル作成
$ mvn clean package
【実行】Tomcat8実行
$ mvn cargo:run

5.0.2用のAppendix

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

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

Note

凡例

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

[Step 1]

Eclipse WTP Project of 5.0.2.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.0.1.RELEASE.jar terasoluna-gfw-common-5.0.2.RELEASE.jar * * *
  terasoluna-gfw-web-5.0.1.RELEASE.jar terasoluna-gfw-web-5.0.2.RELEASE.jar * * *
  terasoluna-gfw-security-core-5.0.1.RELEASE.jar terasoluna-gfw-security-core-5.0.2.RELEASE.jar * * *
  terasoluna-gfw-security-web-5.0.1.RELEASE.jar terasoluna-gfw-security-web-5.0.2.RELEASE.jar * * *
  terasoluna-gfw-mybatis3-5.0.1.RELEASE.jar terasoluna-gfw-mybatis3-5.0.2.RELEASE.jar   *  
  terasoluna-gfw-jpa-5.0.1.RELEASE.jar terasoluna-gfw-jpa-5.0.2.RELEASE.jar     *
  terasoluna-gfw-jodatime-5.0.1.RELEASE.jar terasoluna-gfw-jodatime-5.0.2.RELEASE.jar * * *
Spring Framework spring-aop-4.1.7.RELEASE.jar spring-aop-4.1.9.RELEASE.jar * * *
  spring-aspects-4.1.7.RELEASE.jar spring-aspects-4.1.9.RELEASE.jar * * *
  spring-beans-4.1.7.RELEASE.jar spring-beans-4.1.9.RELEASE.jar * * *
  spring-context-4.1.7.RELEASE.jar spring-context-4.1.9.RELEASE.jar * * *
  spring-context-support-4.1.7.RELEASE.jar spring-context-support-4.1.9.RELEASE.jar * * *
  spring-core-4.1.7.RELEASE.jar spring-core-4.1.9.RELEASE.jar * * *
  spring-expression-4.1.7.RELEASE.jar spring-expression-4.1.9.RELEASE.jar * * *
  spring-jdbc-4.1.7.RELEASE.jar spring-jdbc-4.1.9.RELEASE.jar * * *
  spring-orm-4.1.7.RELEASE.jar spring-orm-4.1.9.RELEASE.jar * * *
  spring-tx-4.1.7.RELEASE.jar spring-tx-4.1.9.RELEASE.jar * * *
  spring-web-4.1.7.RELEASE.jar spring-web-4.1.9.RELEASE.jar * * *
  spring-webmvc-4.1.7.RELEASE.jar spring-webmvc-4.1.9.RELEASE.jar * * *
Spring Data Commons spring-data-commons-1.9.3.RELEASE.jar spring-data-commons-1.9.4.RELEASE.jar * * *
Spring Security spring-security-acl-3.2.7.RELEASE.jar spring-security-acl-3.2.9.RELEASE.jar * * *
  spring-security-config-3.2.7.RELEASE.jar spring-security-config-3.2.9.RELEASE.jar * * *
  spring-security-core-3.2.7.RELEASE.jar spring-security-core-3.2.9.RELEASE.jar * * *
  spring-security-taglibs-3.2.7.RELEASE.jar spring-security-taglibs-3.2.9.RELEASE.jar * * *
  spring-security-web-3.2.7.RELEASE.jar spring-security-web-3.2.9.RELEASE.jar * * *
Hibernate hibernate-core-4.3.10.Final.jar hibernate-core-4.3.11.Final.jar     *
  hibernate-entitymanager-4.3.10.Final.jar hibernate-entitymanager-4.3.11.Final.jar     *
Spring Data JPA spring-data-jpa-1.7.3.RELEASE.jar spring-data-jpa-1.7.4.RELEASE.jar     *
AspectJ aspectjrt-1.8.6.jar aspectjrt-1.8.7.jar * * *
  aspectjweaver-1.8.6.jar aspectjweaver-1.8.7.jar * * *
Commons Collections commons-collections-3.2.1.jar commons-collections-3.2.2.jar * * *
MyBatis mybatis-3.2.8.jar mybatis-3.3.0.jar   *  
MyBatis Spring mybatis-spring-1.2.2.jar mybatis-spring-1.2.3.jar   *  
SLF4J jcl-over-slf4j-1.7.12.jar jcl-over-slf4j-1.7.13.jar * * *
  slf4j-api-1.7.12.jar slf4j-api-1.7.13.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
H2 Database Engine h2-1.4.187.jar h2-1.4.190.jar   * *
Mockito mockito-core-1.10.8.jar mockito-core-1.10.19.jar * * *
Spring TestContext Framework spring-test-4.1.7.RELEASE.jar spring-test-4.1.9.RELEASE.jar * * *
Tomcat Embed El tomcat-embed-el-7.0.59.jar tomcat-embed-el-7.0.67.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.0.1.RELEASE-sources.jar terasoluna-gfw-common-5.0.2.RELEASE-sources.jar * * *
  terasoluna-gfw-web-5.0.1.RELEASE-sources.jar terasoluna-gfw-web-5.0.2.RELEASE-sources.jar * * *
  terasoluna-gfw-security-core-5.0.1.RELEASE-sources.jar terasoluna-gfw-security-core-5.0.2.RELEASE-sources.jar * * *
  terasoluna-gfw-security-web-5.0.1.RELEASE-sources.jar terasoluna-gfw-security-web-5.0.2.RELEASE-sources.jar * * *
  terasoluna-gfw-mybatis3-5.0.1.RELEASE-sources.jar terasoluna-gfw-mybatis3-5.0.2.RELEASE-sources.jar   *  
  terasoluna-gfw-jpa-5.0.1.RELEASE-sources.jar terasoluna-gfw-jpa-5.0.2.RELEASE-sources.jar     *
  terasoluna-gfw-jodatime-5.0.1.RELEASE-sources.jar terasoluna-gfw-jodatime-5.0.2.RELEASE-sources.jar * * *
Spring Framework spring-aop-4.1.7.RELEASE-sources.jar spring-aop-4.1.9.RELEASE-sources.jar * * *
  spring-aspects-4.1.7.RELEASE-sources.jar spring-aspects-4.1.9.RELEASE-sources.jar * * *
  spring-beans-4.1.7.RELEASE-sources.jar spring-beans-4.1.9.RELEASE-sources.jar * * *
  spring-context-4.1.7.RELEASE-sources.jar spring-context-4.1.9.RELEASE-sources.jar * * *
  spring-context-support-4.1.7.RELEASE-sources.jar spring-context-support-4.1.9.RELEASE-sources.jar * * *
  spring-core-4.1.7.RELEASE-sources.jar spring-core-4.1.9.RELEASE-sources.jar * * *
  spring-expression-4.1.7.RELEASE-sources.jar spring-expression-4.1.9.RELEASE-sources.jar * * *
  spring-jdbc-4.1.7.RELEASE-sources.jar spring-jdbc-4.1.9.RELEASE-sources.jar * * *
  spring-orm-4.1.7.RELEASE-sources.jar spring-orm-4.1.9.RELEASE-sources.jar * * *
  spring-tx-4.1.7.RELEASE-sources.jar spring-tx-4.1.9.RELEASE-sources.jar * * *
  spring-web-4.1.7.RELEASE-sources.jar spring-web-4.1.9.RELEASE-sources.jar * * *
  spring-webmvc-4.1.7.RELEASE-sources.jar spring-webmvc-4.1.9.RELEASE-sources.jar * * *
Spring Data Commons spring-data-commons-1.9.3.RELEASE-sources.jar spring-data-commons-1.9.4.RELEASE-sources.jar * * *
Spring Security spring-security-acl-3.2.7.RELEASE-sources.jar spring-security-acl-3.2.9.RELEASE-sources.jar * * *
  spring-security-config-3.2.7.RELEASE-sources.jar spring-security-config-3.2.9.RELEASE-sources.jar * * *
  spring-security-core-3.2.7.RELEASE-sources.jar spring-security-core-3.2.9.RELEASE-sources.jar * * *
  spring-security-taglibs-3.2.7.RELEASE-sources.jar spring-security-taglibs-3.2.9.RELEASE-sources.jar * * *
  spring-security-web-3.2.7.RELEASE-sources.jar spring-security-web-3.2.9.RELEASE-sources.jar * * *
Hibernate hibernate-core-4.3.10.Final-sources.jar hibernate-core-4.3.11.Final-sources.jar     *
  hibernate-entitymanager-4.3.10.Final-sources.jar hibernate-entitymanager-4.3.11.Final-sources.jar     *
Spring Data JPA spring-data-jpa-1.7.3.RELEASE-sources.jar spring-data-jpa-1.7.4.RELEASE-sources.jar     *
AspectJ aspectjrt-1.8.6-sources.jar aspectjrt-1.8.7-sources.jar * * *
  aspectjweaver-1.8.6-sources.jar aspectjweaver-1.8.7-sources.jar * * *
Commons Collections commons-collections-3.2.1-sources.jar commons-collections-3.2.2-sources.jar * * *
MyBatis mybatis-3.2.8-sources.jar mybatis-3.3.0-sources.jar   *  
MyBatis Spring mybatis-spring-1.2.2-sources.jar mybatis-spring-1.2.3-sources.jar   *  
SLF4J jcl-over-slf4j-1.7.12-sources.jar jcl-over-slf4j-1.7.13-sources.jar * * *
  slf4j-api-1.7.12-sources.jar slf4j-api-1.7.13-sources.jar * * *
H2 Database Engine h2-1.4.187-sources.jar h2-1.4.190-sources.jar   * *
Mockito mockito-core-1.10.8-sources.jar mockito-core-1.10.19-sources.jar * * *
Spring TestContext Framework spring-test-4.1.7.RELEASE-sources.jar spring-test-4.1.9.RELEASE-sources.jar * * *
Tomcat Embed El tomcat-embed-el-7.0.59-sources.jar tomcat-embed-el-7.0.67-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.0.1.RELEASE terasoluna-gfw-common-5.0.2.RELEASE * * *
  terasoluna-gfw-web-5.0.1.RELEASE terasoluna-gfw-web-5.0.2.RELEASE * * *
  terasoluna-gfw-security-core-5.0.1.RELEASE terasoluna-gfw-security-core-5.0.2.RELEASE * * *
  terasoluna-gfw-security-web-5.0.1.RELEASE terasoluna-gfw-security-web-5.0.2.RELEASE * * *
  terasoluna-gfw-mybatis3-5.0.1.RELEASE terasoluna-gfw-mybatis3-5.0.2.RELEASE   *  
  terasoluna-gfw-jpa-5.0.1.RELEASE terasoluna-gfw-jpa-5.0.2.RELEASE     *
  terasoluna-gfw-jodatime-5.0.1.RELEASE terasoluna-gfw-jodatime-5.0.2.RELEASE * * *
Spring Framework spring-aop-4.1.7.RELEASE spring-aop-4.1.9.RELEASE * * *
  spring-aspects-4.1.7.RELEASE spring-aspects-4.1.9.RELEASE * * *
  spring-beans-4.1.7.RELEASE spring-beans-4.1.9.RELEASE * * *
  spring-context-4.1.7.RELEASE spring-context-4.1.9.RELEASE * * *
  spring-context-support-4.1.7.RELEASE spring-context-support-4.1.9.RELEASE * * *
  spring-core-4.1.7.RELEASE spring-core-4.1.9.RELEASE * * *
  spring-expression-4.1.7.RELEASE spring-expression-4.1.9.RELEASE * * *
  spring-jdbc-4.1.7.RELEASE spring-jdbc-4.1.9.RELEASE * * *
  spring-orm-4.1.7.RELEASE spring-orm-4.1.9.RELEASE * * *
  spring-tx-4.1.7.RELEASE spring-tx-4.1.9.RELEASE * * *
  spring-web-4.1.7.RELEASE spring-web-4.1.9.RELEASE * * *
  spring-webmvc-4.1.7.RELEASE spring-webmvc-4.1.9.RELEASE * * *
Spring Data Commons spring-data-commons-1.9.3.RELEASE spring-data-commons-1.9.4.RELEASE * * *
Spring Security spring-security-acl-3.2.7.RELEASE spring-security-acl-3.2.9.RELEASE * * *
  spring-security-config-3.2.7.RELEASE spring-security-config-3.2.9.RELEASE * * *
  spring-security-core-3.2.7.RELEASE spring-security-core-3.2.9.RELEASE * * *
  spring-security-taglibs-3.2.7.RELEASE spring-security-taglibs-3.2.9.RELEASE * * *
  spring-security-web-3.2.7.RELEASE spring-security-web-3.2.9.RELEASE * * *
Hibernate hibernate-core-4.3.10.Final hibernate-core-4.3.11.Final     *
  hibernate-entitymanager-4.3.10.Final hibernate-entitymanager-4.3.11.Final     *
Spring Data JPA spring-data-jpa-1.7.3.RELEASE spring-data-jpa-1.7.4.RELEASE     *
AspectJ aspectjrt-1.8.6 aspectjrt-1.8.7 * * *
  aspectjweaver-1.8.6 aspectjweaver-1.8.7 * * *
Commons Collections commons-collections-3.2.1 commons-collections-3.2.2 * * *
MyBatis mybatis-3.2.8 mybatis-3.3.0   *  
MyBatis Spring mybatis-spring-1.2.2 mybatis-spring-1.2.3   *  
SLF4J jcl-over-slf4j-1.7.12 jcl-over-slf4j-1.7.13   *  
  slf4j-api-1.7.12 slf4j-api-1.7.13 * * *
H2 Database Engine h2-1.4.187 h2-1.4.190   * *
Mockito mockito-core-1.10.8 mockito-core-1.10.19 * * *
Spring TestContext Framework spring-test-4.1.7.RELEASE spring-test-4.1.9.RELEASE * * *
Tomcat Embed El tomcat-embed-el-7.0.59 tomcat-embed-el-7.0.67 * * *
Clone this wiki locally