Bean プロパティの公開記述子への移行

EJB バージョン 1.1 仕様書では、Bean 情報とその他の Bean 関連属性を伝える公開記述子の使用が必須になっています。JRun 3.0 では基本的なシナリオについて公開記述子がサポートされていましたが、完全にはサポートされていませんでした。JRun 3.1 では Bean 公開記述子が完全にサポートされているので、EJB および Bean 属性を定義するための方法として使用することをお勧めします。J2EE 準拠アプリケーションを開発するには、EJB で Bean プロパティ ファイルの代わりに公開記述子を使用する必要があります。


メモ

ejb-nameejb-ref、および res-ref 要素は、JRun 3.0 ではサポートされていません でしたが、JRun 3.1 ではサポートされています。


Bean 公開記述子について知識を得るには、まず EJB 1.1 仕様書をお読みください。その後、JRun サンプルについて JRun 3.0 の bean.properties ファイルを JRun 3.1 の公開記述子と比較します。次の例は、サンプル 2a の JRun 3.0 プロパティ ファイルを示します。

ejb.homeInterfaceClassName=ejbeans.BalanceHome
ejb.remoteInterfaceClassName=ejbeans.Balance
ejb.enterpriseBeanClassName=ejbeans.BalanceBean
ejb.primaryKeyClassName=java.lang.Integer
ejb.beanHomeName=sample2a.BalanceHome

create.ejb.allowedIdentities=all
getValue.ejb.allowedIdentities=all
save.ejb.allowedIdentities=saver
spend.ejb.allowedIdentities=spender

ejipt.isCreateSilent=true

次の表は、対応する公開記述子要素の一覧です。
Bean プロパティ ファイル
公開記述子
ejb.homeInterfaceClassName
home 要素
ejb.remoteInterfaceClassName
remote 要素
ejb.enterpriseBeanClassName
ejb-class 要素
ejb.primaryKeyClassName
prim-key-class 要素
ejb.beanHomeName
ejb-name 要素
create.ejb.allowedIdentities
method-permission サブ要素
getValue.ejb.allowedIdentities
method-permission サブ要素
save.ejb.allowedIdentities
method-permission サブ要素
spend.ejb.allowedIdentities
method-permission サブ要素
ejipt.isCreateSilent
JRun 3.1 では使用されません。

さらに公開記述子には、以前 deploy.properties 内に保持されていたセキュリティ ロール情報を指定します。default.properties からのプロパティ (ejipt.maxContexts など) も指定できます。

次の例は、サンプル 2a の JRun 3.1 の公開記述子全体を示します。

<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD 
EnterpriseJavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/
ejb-jar_1_1.dtd">
<ejb-jar>
  <description>Default Authentication</description>
  <display-name>Default Authentication</display-name>
  <enterprise-beans>
    <entity>
      <display-name>BalanceBean</display-name>
      <ejb-name>sample2a.BalanceHome</ejb-name>
      <home>ejbeans.BalanceHome</home>
      <remote>ejbeans.Balance</remote>
      <ejb-class>ejbeans.BalanceBean</ejb-class>
      <prim-key-class>java.lang.Integer</prim-key-class>
      <persistence-type>Bean</persistence-type>
      <reentrant>False</reentrant>
      <env-entry>
          <env-entry-name>ejipt.maxContexts</env-entry-name>
          <env-entry-type>java.lang.String</env-entry-type>
          <env-entry-value>unspecified</env-entry-value>
      </env-entry>
    </entity>
  </enterprise-beans>
  <assembly-descriptor>
    <security-role>
        <role-name>spender</role-name>
    </security-role>
    <security-role>
        <role-name>saver</role-name>
    </security-role>
    <security-role>
        <role-name>all</role-name>
    </security-role>
      <method-permission>
         <role-name>spender</role-name>
         <method>
             <ejb-name>sample2a.BalanceHome</ejb-name>
             <method-name>spend</method-name>
         </method>
      </method-permission>
      <method-permission>
         <role-name>saver</role-name>
         <method>
             <ejb-name>sample2a.BalanceHome</ejb-name>
             <method-name>save</method-name>
         </method>
      </method-permission>
      <method-permission>
         <role-name>all</role-name>
         <method>
             <ejb-name>sample2a.BalanceHome</ejb-name>
             <method-name>create</method-name>
         </method>
      </method-permission>
      <method-permission>
         <role-name>all</role-name>
         <method>
             <ejb-name>sample2a.BalanceHome</ejb-name>
             <method-name>getValue</method-name>
         </method>
      </method-permission>
  </assembly-descriptor>
</ejb-jar>

すべての JRun EJB サンプルが公開記述子と連動するように変換されました。特定の EJB 公開記述子のシナリオについては、次のサンプルを参照してください。

Allaire Developer's Exchange には、プロパティ ファイルと公開記述子との間の変換作業のほとんどを自動処理する Transformer ユーティリティが用意されています。このユーティリティは http://devex.allaire.com/developer/gallery/info.cfm?ID=6244656D-C1CA-11D4-AAB000508B94F380&method=Full で入手可能です。


メモ

Transformer ユーティリティを使用して JRun 2.3.3 プロパティ ファイルを Web アプリ ケーション web.xml ファイルに変換することもできます。