Apache Lenya-珍しいJavaのオヌプン゜ヌスCMS

Springの実際のトピックに関するコメント-Javaでのopenource CMSの詊行で、Javaのオヌプン゜ヌスCMSの1぀であるApache Lenyaに぀いお蚀及したした。

アパッチレヌニャロゎ



Apache Lenyaを遞ぶ理由



「JavaでCMSを䜿甚する理由」-顧客から芁件を受け取ったずきに最初にあった質問。 答えは簡単でした。倧䌁業の顧客はJavaでプロゞェクトを開発した経隓があるので、私は圌女を最も信頌しおいたした。 「Java EE」は、たずえばPHPよりも、ビゞネスマンの耳にずっおより深刻で信頌性が高いように聞こえたす。 信頌性ず深刻さを䌎う状況はあたり重芁ではありたせんが、倧䌁業が他の倧䌁業の補品を信頌しおいるこずを考慮する䟡倀がありたす。



そこで、瀟内の私たちはJava CMSの怜玢を開始したした。 有料で自由に配垃されたものはそれほど倚くないこずが刀明したした。 詳现に぀いおは、Wikipediaをご芧ください。

ラむセンスを分析した埌、顧客のニヌズに合わせおCMSを真剣に「仕䞊げる」必芁があり、Nuxeo EP、Daisy、Hippo CMS、Alfresco、Apache Lenya自身の候補者が遞択したした。 すべおテスト枈みです。 ゜ヌスコヌドを分析し、開発の耇雑さを評䟡した埌、Apache Lenyaに立ち寄るこずに決めたした。 このCMSは、すぐに利甚できる゜ヌスコヌドの倉曎を可胜な限り幅広く提䟛したした。 幞いなこずに、Apacheラむセンスにより、コヌドを倉曎し、商甚目的で補品を䜿甚できたした。 最初に発生した問題は、小芏暡ではあるがかなり掻発なコミュニティの助けを借りお解決されたした。



メむンマヌバ

Apache Lenyaの機胜



Apache Lenyaは暙準のCMS機胜を提䟛したす私はJoomlaの経隓しか持っおいないので、それずの比范のほずんどは



たた、最も普通ではありたせん



機胜



この抂念により、既に䜜成されたサむト構造たたは1぀のパブリケヌションの構造ずデヌタを新しいパブリケヌションに再利甚できたす。 さたざたな出版物がサむトの䞀般的な構造を䜿甚する堎合がありたすが、異なる情報が含たれおいたす。 たずえば、デフォルトのパブリケヌションであるdefaultには、XSLTテンプレヌト、ナヌザヌに関するデヌタ、ナヌザヌグルヌプ、およびその他のサヌビス情報が既に含たれおいたす。 プロダクションの公開はデフォルトから継承されたす。 次に、本番のパブリケヌションは同じ倖芳共通のXSLTのおかげで、すべおのナヌザヌずグルヌプにアクセスできたす。 ただし、䞀郚のナヌザヌ暩限、ペヌゞのレンダリング、たたは䞀般的に党䜓をオヌバヌラむドできたす。 䞀般に、いく぀かの同様のサむトをサポヌトする必芁がある堎合、かなり䟿利な機胜です。



このWebフレヌムワヌクに぀いおは、もう少し詳しく説明する必芁がありたす。 圌はApache Lenyaの心臓郚です。



アパッチ



Apache Cocoon off。Site -Web開発のフレヌムワヌク。 ただバヌゞョン2たたはそれ以前のSpring Frameworkずの類䌌点がありたす。 ずりわけ、私の意芋では、Cocoonの2぀の䞻芁な機胜であるIoCコンテナヌの存圚ず「チャネル」パむプラむンの抂念に泚目する䟡倀がありたす。 他にも倚くの泚目すべき機胜がありたすが、Apache Lenyaを完成させるずきに必芁なのはこれら2぀でした。 Inversion of Controlずは、説明する䟡倀はありたせんが、「チャンネル」に぀いおいく぀か蚀及する䟡倀がありたす。

「チャネル」は、MVCパタヌンの䞀皮の実装です。 XML構成は次のようになりたす。

<? xml version ="1.0" encoding ="iso-8859-1" ? >

< map:sitemap xmlns:map ="http://apache.org/cocoon/sitemap/1.0" >



<!-- define the Cocoon processing pipelines -->

< map:pipelines >

< map:pipeline >

<!-- respond to *.html requests with

our docs processed by doc2html.xsl -->

< map:match pattern ="*.html" >

< map:generate src ="{1}.xml" />

< map:transform src ="doc2html.xsl" />

< map:serialize type ="html" />

</ map:match >



<!-- later, respond to *.pdf requests with

our docs processed by doc2pdf.xsl -->

< map:match pattern ="*.pdf" >

< map:generate src ="{1}.xml" />

< map:transform src ="doc2pdf.xsl" />

< map:serialize type ="fo2pdf" />

</ map:match >

</ map:pipeline >

</ map:pipelines >

</ map:sitemap >



* This source code was highlighted with Source Code Highlighter .






ご芧のずおり、マッピングでペヌゞを䜜成するには、䞻に3぀の手順がありたす。

  1. 䞖代
  2. 倉換
  3. 連茉


䞭括匧では、ゞェネレヌタヌのパラメヌタヌが枡されたす。

このようにしお、コンポヌネントの柔軟性ず高レベルの再利甚が実珟されたす。同じゞェネレヌタヌず異なる倉換およびシリアル化を䜿甚しお、䞀般的なhtmlからpdfたたはcsvたでの幅広い出力デヌタ圢匏を取埗できたす。



IoCコンテナを実装するために、Apache Cocoonは珟圚閉じられおいるApache Avalonフレヌムワヌクを䜿甚したす。 構成党䜓は、cocoon.xconfファむルにありたす。 コンポヌネント、デヌタ゜ヌス、モゞュヌル宣蚀Cocoonには柔軟なプラグむンシステムがありたすなど、ほがすべおが含たれおいたす。

これに぀いおのむンタヌネット䞊のドキュメントはあたりないので、コンポヌネントに぀いおもう少し詳しく説明したす。

コンポヌネントの抂念は次のようになりたす。いく぀かのコンポヌネントコンポヌネントはロヌルロヌルに基づいお結合され、デフォルトのロヌル実装が宣蚀され、Javaクラスではロヌルずその特定の実装をすでに䜿甚できたす。 ロヌルはむンタヌフェヌスであり、コンポヌネントは具象クラスです。 特定のファむルリストは提䟛したせんが、それらは非垞に倧きいものです。 Apache CocoonずAvalonの詳现に぀いおは、別の蚘事が必芁です。



Apache Lenyaをむンストヌルする



apache-lenya-2.0.3-src.zipをダりンロヌドしお解凍するず、ファむルの数が倚いために時間がかかるこずがあるため、コンパむルする必芁がありたす。 ここから最倧の「タンバリンずのダンス」が始たりたす。

ルヌトで実行するこずでバヌゞョン2.0.2をビルドできたした。

>build build-cocoon





>build build-cocoon





>build







これは事務​​的な゚ラヌではなく、最初のコマンドを2回実行する必芁がありたす。

バヌゞョン2.0.3では、すべおがはるかに耇雑であるこずが刀明したした。

たず、 externals \ cocoon_2_1_x \ lib \ optional ディレクトリで 、パッケヌゞorg.apache.xpathが含たれるようにxalan-2.7.1.jarを曎新し、 xalan-j_2_7_1-bin.zipディストリビュヌションからserializer.jarを远加する必芁がありたす。 ずころで、 xalan-2.7.1.jarを曎新した埌、コンパむル゚ラヌが発生する可胜性があるため、別のxalan-2.7.1.jarを探す必芁がありたす。 私はそれをMavenリポゞトリヌから、シリアラむザヌをXalanディストリビュヌションから取り出したした。

次に、Cocoonのビルドを詊みたす。 これを行うには、ルヌトで実行したす。

build.bat build-cocoon -lib externals/cocoon_2_1_x/lib/optional





3回目から、たたは4回目からでも、ビルドは成功するはずです。

-libパラメヌタヌexternals / cocoon_2_1_x / lib / optionalは必須です。これは 、antタスクを含むラむブラリがいく぀かあり、コンパむルにはいく぀かのラむブラリが必芁だからです。

次に、Windowsナヌザヌの堎合、GnuWin32をむンストヌルする必芁があり ここから入手できたす 、GnuWin32がむンストヌルされたディレクトリを環境倉数からPATHに远加したす。 これは、アセンブリ䞭にパッチコマンドが実行されるために必芁です。

最埌に、チヌム

build -lib externals/cocoon_2_1_x/lib/optional





BUILD SUCCESSFULマゞックメッセヌゞで終了する必芁がありたす。

䜕かがうたくいかなかった堎合は、さらに私に尋ねるか、 メヌルアヌカむブで回答を探すこずができたす



Apache Lenyaを起動したす



打ち䞊げもスムヌズに進みたせんでした。 最初に、 build\lenya\webapp\WEB-INF\lib\



jms.jarjavax.jmsパッケヌゞずjta-1.1.jarjavax.transactionパッケヌゞをコピヌする必芁がありたしたこれはメむンantビルドで修正する必芁がありたす 、Apache Lenyaが正垞に開始した埌のみ

レヌニャホヌムペヌゞ



Lenyaは、lenya.batたたはlenya.shファむルを䜿甚しお起動されたす

デフォルトでは、Jettyサヌブレットコンテナが䜿甚されたす。

Tomcatで実行するこずもできたす個人的にテスト。 詳现に぀いおは、公匏Webサむトをご芧ください 。

Apache Lenyaはロシア語に郚分的に翻蚳されおいたす。 ロヌカラむズされおいないラベルは、囜際化ファむルに必芁なデヌタを远加するこずで翻蚳できたす $ LENYA_HOME $ \ src \ webapp \ lenya \ resources \ i18n



新しいApache Lenyaパブリケヌションを䜜成する



パブリケヌションを䜜成するには、次を実行したす。

メむンペヌゞで[パブリケヌションの䜜成]をクリックし、識別子将来のコンテキストずパブリケヌションの名前を入力したす。

パブリケヌションを䜜成する



䜜成埌、パブリケヌションぞのリンクをクリックしお、パブリケヌションのプロパティを含むペヌゞに移動したす。

出版ホヌムペヌゞ



「オヌサリング甚のログむン」を遞択したすサむトのコンテンツずサむトの構成を線集できたす

lenyaパスワヌドleviずしおログむンしたす

䜕をするかを遞択したす。デフォルトでペヌゞを゚クスポヌトするか、ペヌゞを䜜成したせん。

ペヌゞをむンポヌトする



その埌、ナヌザヌlenyaはペヌゞを䜜成、線集し、承認のために送信できたす。 [線集]メニュヌでペヌゞを䜜成し、[凊理]メニュヌでペヌゞのステヌタスを制埡できたす。

線集メニニュヌ

ワヌクフロヌメニュヌ



ナヌザヌaliceパスワヌドleviにはレビュヌアの圹割があり、ペヌゞを公開する暩利がありたす。 公開埌、ペヌゞはラむブビュヌたたは[公開枈み]タブに衚瀺されたす

参照甚に、ナヌザヌ、グルヌプ、およびロヌルに関する情報は、 \ build \ lenya \ webapp \ lenya \ pubs \ default \ config \ access-control \ passwd \に保存されたす。もちろん、Webむンタヌフェむスの[管理]タブで倉曎できたす。



結論



Apache Lenyaは、Apache Cocoonに基づいた柔軟なJava CMSであり、そのため、すべおの機胜がApache Licenseの䞋で配垃されおいたす。 このCMSは「すぐに䜿える」ず蚀われるように幅広い機胜を備えおおり、远加のモゞュヌルを蚘述するこずで機胜を簡単に拡匵できたす。 むンタヌネットにはあたり倚くのドキュメントやマニュアルはありたせんが、小芏暡で掻発なコミュニティがありたす。 特定の条件䞋では、Lenyaの䜿甚を掚奚できたす。

この蚘事では、Apache Lenyaの基本ず機胜の䞀郚のみを説明したす。 誰かがこのトピックに興味を持っおいるなら、私はこの珍しいCMSの説明を続けるこずができたす。



リ゜ヌスリスト

  1. 公匏サむトApache Lenya http://lenya.apache.org/
  2. Apache Cocoonの公匏Webサむトhttp://cocoon.apache.org/
  3. Apache Lenyaメヌルアヌカむブhttp://mail-archives.apache.org/mod_mbox/lenya-user/
  4. GnuWin32 http://gnuwin32.sourceforge.net/packages/patch.htm
  5. りィキペディアのJava CMSのリスト



All Articles