Categories: 未分類

ApacheTapestry

Apache_Tapestry

Apacheのタペストリーがあるオープンソースのコンポーネント指向のJava Webアプリケーションフレームワークに概念的に類似のJavaServerの顔とApacheの自動改札。タペストリーはハワードルイスシップによって作成されました、によって採択されたApache Software Foundationの2006年トップレベルプロジェクトとして ApacheTapestry 原作者
ハワードルイスシップ
開発者
Apache Software Foundation
安定リリース .6.x 5.6.3 / 2021年3月16日; 6か月前 (2021-03-16)
5.7.x
5.7.1 / 2021年3月16日; 6か月前 (2021-03-16)
リポジトリ
タペストリーリポジトリ
で書かれている Java オペレーティング・システム
クロスプラットフォーム(Java仮想マシン)
タイプ
Webアプリケーションフレームワーク
ライセンス
Apacheライセンス2.0
Webサイト
tapestry .apache .org
タペストリーは、シンプルさ、使いやすさ、開発者の生産性を重視しています。それはに付着設定より規約ほとんどすべてのXML構成を排除し、パラダイム。 Tapestryは、Webページ上の各ユーザーインターフェイスコンポーネント(オブジェクト)とそれに対応するJavaクラスの間に強力なバインディングを持たせることにより、Web開発にモジュラーアプローチを使用します。このコンポーネントベースのアーキテクチャは、WebObjectsから多くのアイデアを取り入れています。

コンテンツ
1 注目すべき機能
2 HelloWorldの例
3 クラス変換
4 クライアント側のサポート
5 コア原則
6 批判
7 他のフレームワークとの関係
8 歴史
9 も参照してください
10 参考文献
10.1 ノート
11 外部リンク

注目すべき機能
ライブクラスのリロード
Tapestryは、Javaページクラス、コンポーネントクラス、サービス実装クラス、HTMLテンプレート、およびコンポーネントプロパティファイルへの変更についてファイルシステムを監視し、再起動せずに実行中のアプリケーションに変更をホットスワップします。これにより、開発者の生産性が大幅に向上すると言われている非常に短いコード保存ビューフィードバックサイクルが提供されます。
コンポーネントベース
ページは、それぞれがテンプレートとコンポーネントクラスを持つ小さなネスト可能なコンポーネントで構成できます。カスタムコンポーネントは、構築するのが簡単だと言われています。
設定より規約
Tapestryは、XMLではなく命名規則と注釈を使用してアプリケーションを構成します。
HTTPSessionの予備使用
Tapestryは、HTTPSessionの使用を最小限に抑えることにより、クラスター化されたセッション複製環境で非常に効率的になるように設計されています。
投稿/リダイレクト/取得
ほとんどのフォーム送信は、投稿/リダイレクト/取得(PRG)パターンに従います
。これにより、複数のフォーム送信の事故が減り、URLがわかりやすくブックマークしやすくなり、ブラウザーのボタンとボタンが正常に動作できるようになります。
制御の反転(IoC)
Tapestryは、Google Guiceと類似した軽量の制御の反転レイヤー
上に構築されてい
ますが、Tapestryの動作のほぼすべての側面を構成可能で交換可能にするように設計されています。

HelloWorldの例
最小限のテンプレート化されたTapestryアプリケーションには、次の3つのファイルのみが必要です。 HelloWorld.tml / helloworldページの(X)HTMLテンプレート。タペストリーテンプレートには、整形式の(X)HTMLマークアップを含めることができます。

xmlns:t = “http://tapestry.apache.org/schema/tapestry_5_3.xsd” > こんにちは、$ {username} p> body> html>
HelloWorld.javaに関連付けられているページクラス。ここでは、テンプレートがアクセスできる* username *プロパティを提供するだけです。
パッケージ org.example.demo.pages ;/ **ページクラス(同じ名前のテンプレートファイルに自動的に関連付けられます)* / public class HelloWorld { / **通常のゲッター* / public String getUsername () {
return “World” ; } } web.xml サーブレット・アプリケーション
配備記述子サーブレットフィルタとしてタペストリーをインストールし、。
PUBLIC “-// Sun Microsystems、Inc .// DTD Web Application 2.3 // EN”
“http:// java。 sun.com/dtd/web-app_2_3.dtd “> タペストリーの例 display-name>
指示しますおよびmixins-> tapestry.app-package param-name> org.example.demo param-value> context-param>

app filter-name>
org.apache.tapestry5.TapestryFilter filter-class> filter>

アプリ filter-name>
/ * url-pattern> filter-mapping> web-app>

クラス変換
Tapestryは、バイトコード操作を使用して、実行時にページクラスとコンポーネントクラスを変換します。このアプローチにより、ページクラスとコンポーネントクラスを単純なPOJOとして記述でき、いくつかの命名規則とアノテーションにより、クラスのロード時に実質的な追加の動作がトリガーされる可能性がTapestryバージョン5.0、5.1、および5.2は、Javassistバイトコード操作ライブラリを使用していました。以降のバージョンでは、JavassistがObjectWebASMに基づくPlasticと呼ばれる新しいバイトコード操作レイヤーに置き換えられました。

クライアント側のサポート
Tapestry 5バージョンから5.3までは、Prototypeおよびscript.aculo.us JavaScriptフレームワークと、Tapestry固有のライブラリをバンドルして、一級市民としてのAjax操作をサポートしています。Prototype / Scriptaculousの代わりに、またはPrototype / Scriptaculousに加えて、サードパーティのモジュールを使用してjQueryを統合できます。
バージョン5.4以降、Tapestryには新しいJavaScriptレイヤーが含まれており、組み込みコンポーネントのPrototypeへの依存がなくなり、jQueryまたは別のJavaScriptフレームワークをプラグインできるようになります。
バージョン5.4では、RequireJSモジュールローディングシステムを使用したJavaScriptモジュールのサポートも導入されています。

コア原則
Tapestryプロジェクトのドキュメントには、2008年のバージョン5以降、Tapestryのすべての開発決定を管理する4つの「原則」が引用されています。
静的構造、動的動作-ページおよびコンポーネントの構造は本質的に静的であるため、大きなページおよびコンポーネントツリーを構築(およびセッションメモリに格納)する必要がありません。
アダプティブAPI-フレームワークは、コードをフレームワークに適応させるのではなく、コードに適応するように設計されています
パブリックAPIと内部APIを区別する-必然的にパブリックであるものを除いて、すべてのAPIは明示的に「内部」(プライベート)です。
下位互換性の確保-Tapestry開発者は、Tapestryの最新バージョンへのアップグレードが常に簡単であることを保証することに取り組んでいると報告されています。

批判
Tapestryは、メジャーバージョン間で下位互換性がないことで批判されています。特に、既存のアプリケーションでクリーンな移行パスが利用できなかったバージョン4からバージョン5への移行で注目されています。プロジェクトチームのメンバーは、これをTapestryのユーザーにとって過去の主要な問題として認識しており、下位互換性は今後のTapestryの主要な設計目標になりました。バージョン5の開発の初期から、下位互換性はTapestryの4つの新しい「コア原則」の1つとしてリストされ、他の3つのうち2つは、下位互換性を犠牲にすることなくフレームワークの進化を可能にすることを目的としていました。プロジェクトチームのメンバーは、5.0以降のすべてのTapestryリリースは高度な下位互換性があると主張しています。
Tapestry 5に対する初期の批判も、欠点としてドキュメントに言及していました。プロジェクトメンバーは現在、この欠陥は徹底的に改訂および更新されたユーザーガイドおよびその他のドキュメントで大部分が対処されていると主張しています。
バージョン5.0以降、TapestryはPrototypeライブラリとScriptaculousJavaScriptライブラリをバンドルしています。ハワードルイスシップによると、2008年から2009年の期間では、これらは合理的な選択でした。しかし、それ以来、Prototypeの人気は低下し、jQueryの人気は劇的に上昇しました。これに応えて、Tapestryコミュニティは、プロトタイプに加えて、またはプロトタイプの代わりにjQueryを使用できるようにするモジュールを開発しました。一方、現在のバージョンのTapestry 5.4では、Prototypeへの依存関係が完全に削除され、jQueryまたはPrototype(またはその他のJavaScriptフレームワーク)をプラグインできる互換性レイヤーに置き換えられています。

他のフレームワークとの関係
ハワードルイスシップによると、タペストリーは当初、WebObjectsに見られる一般的な概念とアプローチのいくつかをJavaで実装する試みとして考案されました。これは、当時Objective-Cで記述されたクローズドソースでした。
Wicketの創始者であるJonathanLockeによると、Apache Wicketは、Tapestryの初期バージョンの複雑さに対応するために開発されました。
JavaServer FacesのデフォルトのビューテクノロジーであるFaceletsは、「業界標準としてJavaServer Facesに裏打ちされた、Tapestryのようなフレームワーク」のニーズを満たすための試みとして、初期バージョンのTapestryに触発されたと報告されています。

歴史
バージョン
日にち
説明
古いバージョン、メンテナンスされていません: 1.0 2000年
内部使用のためにハワードルイスシップによって開発されました
古いバージョン、メンテナンスされていません: 2.0 2002-04
GNU Lesser General PublicLicenseの下でSourceForgeで最初に利用可能になりました。
古いバージョン、メンテナンスされていません: 3.0 2004-04
JakartaサブプロジェクトとしてのApacheでの最初のリリース。
古いバージョン、メンテナンスされていません: 4.0 4.0 2006-01
JDK 1.5アノテーションのサポート、新しい入力検証サブシステム、および改善されたエラーレポートの導入
古いバージョンですが、まだ維持されています: 5.0 2008-12
Tapestry 4からほぼ完全に書き直され、設定より規約を強調する新しいPOJOベースのコンポーネントモデルが導入され、Hivemindが新しい非XMLの制御の反転レイヤーに置き換えられました。
古いバージョンですが、まだ維持されています: 5.1 2009-04
パフォーマンスとメモリの改善、自動GZIP圧縮、JavaScript集約が、Tapestry5.0との下位互換性を維持しました。
古いバージョンですが、まだ維持されています: 5.2 2010-12
JSR 303 BeanValidationを追加しました。サービス実装への拡張ライブクラスリロード。ページプーリングを削除しました。
古いバージョンですが、まだ維持されています: 5.3 2011-11
HTML5 doctypeのサポートの追加、インジェクション用のJSR-330アノテーション、パフォーマンスとメモリの改善、新しいコンポーネント、JavaAssistからASMバイトコード操作への切り替え
古いバージョンですが、まだ維持されています: 5.3.1-5.3.8 2012-2014
バグ修正とマイナーな機能強化
現在の安定バージョン: 5.4-5.4.5 2015-2019
クライアント側の主な機能強化。切り替えのjQuery /プロトタイプのサポートのための新しいJavaScriptの層は、そのJavaScriptのモジュールシステム、用Require.jsを使用してTwitterのブートストラップのデフォルトのスタイルのために。
現在の安定バージョン: 5.5 2020-03
現在の安定バージョン。Java 12バイトコード、Typescript、およびBootstrap4のサポート。

も参照してください Apache Wicket Webフレームワークの比較
フェイスレット Java EE Javaビューテクノロジーとフレームワーク

参考文献
Drobiazko、Igor(2012)、Tapestry 5:Javaでの迅速なWebアプリケーション開発、Igor Drobiazko、p。アーカイブ482、オリジナルの2014年12月15日に、取得した2013年1月20日を
Kolesnikov、Alexander(2008年1月15日)、Tapestry 5:Webアプリケーションの構築:開発者に優しいApache Tapestryフレームワークを使用したJavaWeb開発のステップバイステップガイド、Packt Publishing、p。280、ISBN 1-84719-307-2
Iok Tong、Ka(2007年1月1日)、Tapestryを使用したWeb開発の楽しみ(第3版)、p。497、ASIN  B00262M3HS
ルイス・シップ、ハワード(2004)、タペストリー・イン・アクション、マニング、p。580、ISBN 1932394117

ノート
^ “ニュース-ApacheTapestry”。tapestry.apache.org。Apache SoftwareFoundation 。2021-03-25を取得。
^ 「タペストリーのハワードルイス船のインタビュー(2012-10-22)」。
^ Drobiazko 2012、p。1.1。
^ http://tapestryjava.blogspot.com/2006/07/tapestry-5-updates.html ^ 実際のタペストリー-ハワードルイスシップによる序文 ^ http://tapestry.apache.org/class-reloading.html ^ Drobiazko 2012、p。20。
^ Drobiazko 2012、p。7。
^ http://tapestry.apache.org/performance-and-clustering.html ^ http://tapestry.apache.org/forms-and-validation.html ^ Drobiazko 2012、p。7。
^ http://tawus.wordpress.com/2011/04/18/meeting-plastic/ ^ 「アーカイブされたコピー」。
^ http://tapestryjava.blogspot.com/2012/10/zeroing-in-on-tapestry-54.html ^ 「原則」。2010-12-21。
^ 「Tapestry5の将来の互換性」。2009-04-30 。
^ 「アーカイブされたコピー」。
^ https://web.archive.org/web/20040909074534/http://www.theserverside.com/news/thread.tss?thread_id=28162 ^ https://web.archive.org/web/20070706220453/https://facelets.dev.java.net/ ^ https://web.archive.org/web/20130113100928/http://www.jsfcentral.com/articles/facelets_1.html ^ 「Tapestry:Java WebComponentsリリース2.0がリリースされました」。
^ 「タペストリー3.0最終リリース」。
^ 「タペストリー4.0がリリースされました」。
^ 「タペストリーとJSR-303Bean ValidationAPI」。2010-01-04。
^ 「タペストリー5.2の発表」。2010-12-17。取得した2012年11月14日を。
^ http://tapestry.apache.org/using-jsr-330-standard-annotations.html ^ 「JavaScriptリライト」。

外部リンク
公式サイト
  “

admin

Share
Published by
admin

Recent Posts

アルトゥーリ・アールト

Artturi_Aalto 見…

2日 ago

アーサーシャレット

Arthur_Shallett…

2日 ago

Artyom Bogucharsky

Artyom_Boguchar…

2日 ago

アーツカタリスト

Arts_Catalyst A…

2日 ago

Asamardhuni Jivayatra

Asamardhuni_Jiv…

2日 ago