SOAフレームワークBeehiveに挑戦(2) 4/4

Beehive開発環境「Pollinate」を使ってみよう

www.netpotlet.com
原田洋子
2005/3/17

Pollinateを使った簡単なプログラミング

 Pollinateは現在のところNetUIプロジェクトのページフローを編集する機能がある程度ですが、注釈処理など基本的な部分は実装されているので

 http://incubator.apache.org/beehive/controls/tutorial_controls.html

で紹介されているサンプルも試してみましょう。このサンプルはBeehiveが解釈できる注釈とnetuiタグを使ってJSPを記述する簡単なものです。

1)Beehiveプロジェクトの作成

 最初にBeehiveプロジェクトを作成します。今度はデモテンプレートは必要ないので、プロジェクト名を入力したら終了します。

 ファイル → 新規 → その他 → Pollinate/Beehive Project → 次へ
 Name に tulip を入力 → 終了

2)パッケージの作成

 Javaのインターフェイス、クラスを作りますのでパッケージhellocontrolを作っておきます。パッケージはtulipプロジェクトのWebContent/WEB-INF/srcソースフォルダに、通常のJavaアプリケーションと同じ方法で作ります。

3)インターフェイスと実装の作成

 インターフェイスHelloと実装クラスHelloImplを作ります。インターフェイスHello(リスト3のHello.java)には、コントロールを意味する注釈「@ControlInterface」が5行目にあります。このインターフェイスの実装クラスがリスト4のHelloImplクラスで、Beehiveでは拡張子に.jcsを付けることになっています。ただし、Controllerファイル同様、現状では拡張子を.javaにしておかないとPollinateプラグインが正しく動作しません。このため、ここではHelloImp.javaというファイル名で作っています。

 ここで注釈がどのように処理されたかを見てみましょう。すべてのファイルを見たいので、リソースパースペクティブのナビゲータービューを表示させます。すると、図21に示すようにtulip/WebContent/WEB-INF/src/hellocontrolフォルダには

  • Hello.java
  • HelloImpl.java

のみですが、tulip/WebContent/WEB-INF/.tmp-src/hellocontrolフォルダには

  • HelloBean.java
  • HelloBeanBeanInfo.java
  • HelloImplInitializer.java

が作られ、tulip/WebContent/WEB-INF/classes/hellocontrolに自動生成された*.javaも含む、コンパイルされた*.classファイルが作られています。本連載ではまだ詳しい説明をしていませんが、これがBeehiveのコントロールの機能です。

4)JSPファイルの作成

 必要なクラスができたら、JSPファイルを作って実行してみます。ここではリスト5のhello.jspを次のようにして作りました。

 tulip/WebContent選択 → 右クリック → 新規 → ファイル →
 ファイル名入力(hello.jsp) → 終了

 このJSPでは10、11行目にあるように、自動生成されたhellocontrol.HelloBeanを参照しています。netuiのプレフィックスで始まるタグはBeehiveが提供するタグライブラリで

にリファレンスがあります。

5)JSPの実行

 Eclipse上でJSPを選択して実行するか、ブラウザで

 http://localhost:8080/tulip/hello.jsp

をリクエストします。すると、図22のように表示されます。

 1  package hellocontrol;
 2  
 3  import org.apache.beehive.controls.api.bean.ControlInterface;
 4  
 5  @ControlInterface
 6  public interface Hello {
 7      public String hello();
 8      public String helloParam(String name);
 9  }
リスト3 Hello.java

 1  package hellocontrol;
 2  
 3  import org.apache.beehive.controls.api.bean.ControlImplementation;
 4  
 5  @ControlImplementation
 6  public class HelloImpl implements Hello {
 7  
 8      public String hello() {
 9          return "こんにちは、世界";
10      }
11  
12      public String helloParam(String name) {
13          return "こんにちは、"+name+"!";
14      }
15  }
リスト4 HelloImpl.java

 1  <%@ page language="java"
             contentType="text/html;charset=UTF-8"%>
 2  <%@ taglib 
     uri="http://beehive.apache.org/netui/tags-databinding-1.0"
     prefix="netui-data"%>
 3  <%@ taglib
     uri="http://beehive.apache.org/netui/tags-html-1.0"
     prefix="netui"%>
 4  <%@ taglib
     uri="http://beehive.apache.org/netui/tags-template-1.0"
     prefix="netui-template"%>
 5  <netui:html>
 6    <head>
 7      <title>Controls Tutorial Page</title>
 8    </head>
 9    <netui:body>
10      <jsp:useBean class="hellocontrol.HelloBean"
11                   id="helloBean" scope="session"/>
12      <h3>Control Tutorial Test Page</h3>
13      <p>
14        Response from hello() method on the Hello Control:
15        <i><netui:label value="<%= helloBean.hello() %>"/></i>
16      </p>
17      <p>
18        Response from helloParam() method on the Hello Control:
19        <i><netui:label
                value="<%= helloBean.helloParam("Moon") %>"/></i>
20      </p>
21    </netui:body>
22  </netui:html>
リスト5 hello.jsp

図21 tulip プロジェクトのファイル

図22 hello.jsp 実行結果(クリックで拡大します)


まとめ

 今回はBeehive用のEclipseプラグインPollinateを紹介し、サンプルを動かしてみました。HTMLページなどエンドユーザーが目にするプレゼンテーション部分を作成するビジュアルエディタは多いですが、このようにサーバサイドのためのビジュアルエディタはまだ珍しい存在ではないかと思います。しかもPollinateはオープンソースとしてリリースされていますから、気軽に使えますし、似たようなビジュアルエディタを作ろうとしている開発者が参考にできる点は多いのではないかと思います。JDK 1.5で追加された注釈を本格的に利用してみようという開発者にとっても参考になるツールでしょう。Beehive同様、これからの発展が期待されているところですから、現状ではできることが少ないかもしれませんが、これからのプログラミングスタイルを体験できるツールです。一度、お試しください。

 次回はBeehiveの詳細な機能とプログラミングを紹介する予定です。(次回に続く)

4/4

 Index
SOAフレームワークBeehiveに挑戦(2)
Beehive開発環境「Pollinate」を
使ってみよう
  Page 1
・Eclipseプラグイン「Pollinate」とは
・Pollinateプロジェクトとは
・Pollinateの機能
・Pollinateを使ってみよう
  Page 2
・ページフローサンプル
 1)Beehiveプロジェクトの作成
 2)Beehive Webアプリケーションの設定
  Page 3
 3)Beehive Webアプリケーションの実行
 4)ページフローエディタの操作
Page 4
・Pollinateを使った簡単なプログラミング
・まとめ


「SOAフレームワークBeehiveに挑戦」


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間