Liferay-J2EEのオープンソースポータル

ちょうど昨日、Liferay(SVN / Mercurial / CVSブラウザ)の最初のフル機能のポートレットを完成させました-最小限の経験を共有したいと思います。 Liferayでは、Habréではまだ何も実行されていません。 この記事は非常に表面的なものですが、それにもかかわらず、最初のアイデアが得られることを願っています



画像







Liferayとは



一言で言えば-LiferayはJ2EEテクノロジーで実行されるポータルです(わかりました、2語以上が判明しました)。 サイトwww.liferay.comで見ることができます。また、それが何であるかを想像するのは簡単です-ここに同様の製品がありますが、他の技術で作られています:



このポータルを使用すると、さまざまなモジュールを1つのWebアプリケーション(および1つのWebページ)に結合できます。 Liferayといえば-それは



さらに、ポートレットと呼ばれる独自のモジュールを開発する可能性があります。

ポートレットは、ポートレットコンテナのコンテキストで実行されるコンポーネントであり、提供されるページ領域のレンダリングを担当します(通常のサーブレットでページ全体をレンダリングするのではなく)。



J2EEの他の多くのテクノロジーと同様に、ポートレットAPIはJSR(Java Specification Request)を介して標準化されます。 ポートレットは、JSR-168(Portlet 1.0)およびJSR-268(Portlet 2.0)だけでなく、他の多くのJSR(たとえば、JSR-301-JavaServer FacesのPortlet Bridge Specification)を担当します。



標準が存在するため、任意のポータルで実行できるポートレットを開発できます。 Liferayに加えて、他にも多くのオープンソース実装があります(商用のものは言うまでもありません):



しかし、私の謙虚な意見では、Liferayは最も強力で完全に機能するものであり、SunがLifeSpaceをWebSpaceポータルの基盤として選択したことは無駄ではありません。

標準/非標準



標準は良いです! これも非常に良いです! しかし、特定の例を取り上げる場合(私のポートレット)-私はLiferay専用のポートレットを開発することにしました-つまり、他のポータルでは機能しません。 なんで? まあ、まず、私のポートレットがLiferay以外の場所で使用されることを非常に疑います(まだ必要な場合は、一般的なバージョンを作成します)。



私の場合、テーブルレンダリングタグは非常に役立ちました。データセットを作成し、このタグを使用してテーブルの形式で表示すると、Liferayの他のすべてのテーブルと同様にスタイル設定されたテーブルをデータページ付けで取得できます、ページ間のナビゲーションは、1ページの要素の数を制御します。 私はほぼすべてのフォームにテーブルを持っているので、それは私にとって重要であり、Liferay固有の機能を使用することで私の生活はずっと楽になりました



しかし、すべてのプロジェクトで、可能であれば個別に決定する必要があると思います-可能であれば、標準に従う(および移植性を確保する)方がよい-しかし、移植性が不要で、特定のポータル用にソリューションが作成される場合-特定のサービスと機能を使用できます



Liferayが選択された理由は、その中で使用される一連の技術とそのポートレットが私のEmForgeに近いためです。



ポートレット開発



Lifelets for Portletsのユーザーインターフェイスを開発する場合、通常のJava Webアプリケーションの開発と同様に、ほぼすべてのフレームワークを使用できます。



あなたはJSFで書くことができます-しかし、裸のJSFで作業することは悲しいです、そして、IceFacesは追加のフレームワークからサポートされ、RichFacesをサポートすることに関するフォーラムでの発表は昨日のみ通過しました(しかし明らかにアルファ状態で)

他のフレームワークは動作するはずですが、チェックする必要があります(「ニュアンス」がある場合があります)。 たとえば、誰もWicketが機能するかどうかを確認できませんでした。



ポートレットの開発は、Javaでの通常のWebアプリケーションの開発と非常によく似ています-プロジェクトの構造はほとんど同じで、同じweb.xml-いくつかの追加の構成ファイルがあり、プログラム全体はServetとFilterではなく、わずかに異なるコンテキストで実行されます。 s-ポートレットとポートレットフィルター

開発の難しさ



主な難しさは、ドキュメントが非常に少ないことです:(-それは、liferay.comの不十分な構造のwikiのセットとフォーラム投稿です。私にとって、最高のドキュメントは、Liferay自体とそのネイティブポートレットのソースコードでした。 -あなたは、同様の機能を持つポートレットを探しており、そのソースコードを見て、同じ方法でそれを行います(すべてがオープンソースでアクセス可能であるという利点があります)

使用する場所



私はLiferayが本当に好きだった-そしてあなたがJavaでCMSを書く必要があるなら-考えて-多分あなたは車輪を再発明する必要はない? Liferayを使用すると、ユーザーおよびロール管理、多くのコンポーネント、およびJavaに拡張する機能を備えたサイトを取得できます。これらはすべてオープンソースで無料です。



All Articles