Recent Changes

2011-06-29
2011-06-22
2011-06-16

Latest File Release

How to write a How-To (0.3_ja1)2011-06-20 20:18
Using Forrest (0.9_ja1)2011-06-18 08:56

Wiki Guide

Side Bar

FAQ

Outline

1. はじめにとForrestの構築

1.1. どのようにこれらのFAQを使う?

これらのFAQに特別な順番はありません。 キーワードを検索するために、あなたのブラウザーの「このページで検索する」機能を使ってください。

1.2. Forrestを動かそうとする方法について、私はどこで概要を読むことができますか?

「Using Forrest」ガイド(日本語訳を参照してください。

1.3. すべてのドキュメントは、どこにありますか?

あなたは、Forrestのあなたのバージョンで、主な文書のローカルコピーを持ちます。 'cd site-author; forrest run'を実行して、あなたのブラウザでhttp://localhost:8888/を訪問してください。 最新の文書は、forrest.apache.orgウェブサイトをつくるSVNトランクにあります。

各々のプラグインは、それ自身の文書とその技術の動作例を持ちます。

例のseedサイトは、他の文書といろいろな技術の動作例を持ちます。 'cd my-new-directory; forrest seed-sample; forrest run'を実行します。 毎時、forrestbotは私たちのテストゾーンでこの文書の安定版を生成します。

1.4. Forrestの動作環境は何ですか?

もちろんJava以外は、Forrestはビルドと実行に必要なすべてを包含します。 すべてのCocoon JARsに加えて、ForrestはApache Antのそれ自身のバージョンを包含し、使います。

Java 1.5(またはより新しい)が必要とされます。 あなたが現状のままでForrestを利用するだけであるならば、あなたはJava Runtime Environment(JRE)だけを必要とします。 あなたがForrestを強化して、再構築する(または、SubversionでForrestソースを使うか、ソースのスナップショットを使う)つもりであるならば、あなたは完全なJDKを必要とします。

1.5. 古いxmlforrestのCVSコード・リポジトリが、停滞しているようです。何がありましたか?

Forrestは、CVSコード・リポジトリからSVN(Subversion)コード・リポジトリへ切り替えました。 古いCVSリポジトリは閉鎖されて、現行の状態に保たれません。

1.6. どのように、私は最新のコードベースで最新の状態に保つSVNを使うことができますか?

これらのBuilding Forrestメモに従ってください。

Using Forrestガイドは、あなたのプロジェクトのためにForrestの始め方の一歩一歩の支援をさらに提供します。

1.7. どのように特定のプラグインについて以前のバージョンを使いますか?

時々、ある人はプラグインの最新の機能を使いたくなくて、その代わりに以前のバージョンを使う必要があります。 各々のプラグインへの変更に関する情報は、その文書で見つけることができます。

forrest.propertiesファイルでは、あなたが必要とするプラグインのバージョンを指定します。たとえば、

project.required.plugins=org.apache.forrest.plugin.input.PhotoGallery-0.1,...

Forrest 0.7のユーザは、以下のエラーが出るならば、projectInfoプラグインに対してこれを実行する必要があります。。。

Could not find component for role:
  [org.apache.cocoon.components.modules.input.InputModule/lm]
  (Key='org.apache.cocoon.components.modules.input.InputModule/

…そして、残念に思って、私たちは誤って新しい「locationmap」機能(バージョン0.8に予定される)を加えました。 それで、こうします…

project.required.plugins=org.apache.forrest.plugin.input.projectInfo-0.1,...

1.8.Forrestを使って「スタンドアローンの文書」を生成する最もよい方法は、何ですか?

ビルドであなたの所用時間を減らすことができる、トリックがあります。 forrest.propertiesで...

# The URL to start crawling from
# project.start-uri=linkmap.html

それをアンコメントして、それをあなたが望む特定のページにセットしてください。 Forrestはその一つの文書を構築して、そして、もちろん、それはそこからクロールするリンクを保ちます。 それはサブディレクトリに限定されるかもしれません、しかし、リンクに依存することは結局サイト全体を生成することになるかもしれません。 主要なことは、あなたの関心があるページが最初に構築されるということです。

コマンド・ラインのパラメータとして一時的にこの変更をすることは、多分最も簡単でしょう。たとえば、

forrest -Dproject.start-uri=live-sites.html

あなたは、あなたの関心があるページが構築されたあと、'kill'またはCtrl-Cでforrestを終了させることができます。

Cocoonは、Cocoonのcli.xconfファイルを通して、リンク(その"follow-links"パラメータを参照してください)に従わないよう指示されることができます。 それで、これは指定された文書だけを構築するでしょう。

慎重になってください、あなたが通常PDFページも構築するならば、それらは構築されないでしょう。 あなたがその後しばらくの間除外する必要があるならば、Cocoonは特定のURIを処理しないように指示されることもできます。

もう一つの役に立つ技術は、個々のファイルを取り出すために、"wget"またはApache AntのGetタスクを使うことです、 たとえば、'forrest run'を実行して、'wget http://localhost:8888/index.pdf'を実行します。

1.9. cygwinで./build.shを実行するとき、エラーが出ます:cygpath.exe: *** can't create title mutex, Win32 error 6.

これは、cygwinのバグであると思われます。 その代わりに.batスクリプトを使用します。

1.10. Java 6において、validate-sitemapタスクに失敗します。RELAX NGデータ型ライブラリを見落とします。

validate-sitemap:
apache-forrest-0.8/main/webapp/resources/schema/relaxng/sitemap-v06.rng:72:31:
error: datatype library "http://www.w3.org/2001/XMLSchema-datatypes" not recognized

Jingのバージョンが更新される必要があります。

これは、Forrest-0.9-devバージョンで修正されています。 FOR-984を参照してください。

1つの回避方法は、$FORREST_HOME/lib/core/にJing jarのあなたのコピーを更新することです。

もう一つの回避方法は、"forrest.validate.sitemap"プロパティを公開して、それを"false"にセットするために、forrest.properties設定ファイルを編集することです。 "forrest.validate.stylesheets"プロパティのために同じようにする必要があるかもしれません。

1.11. Windowsは、どのJavaバージョンを使うべきかについて混乱します。

ゴホゴホ、そうですね! Forrestメーリングリストにおけるこの説明を参照してください。

1.12. どのように、私はJavaによって使われるために、メモリの量を指定することができますか?

これを制御する2つの方法が、あります。 Cocoonがページを生成しているとき、あなたがOutOfMemoryErrorを得るならば、最初のパラグラフを参照してください。 Cocoon(たとえば、生のファイルをコピーすること)の外側にあるとき、あなたがOutOfMemoryErrorを得るならば、第2のパラグラフを参照してください。

forrest.propertiesファイルのmaxmemoryプロパティは、Cocoonがどれくらいのメモリを使うかについて制御します。 多くの他のプロパティのように、あなたは、main/fresh-site/forrest.propertiesにあるデフォルト設定からそれらをコピーすることができます。

あなたがforrestを実行する前に、ANT_OPTS環境変数をセットしてください。 あなたがそれをセットした正確な値はあなたのJVMに依存しています、しかし、ANT_OPTS=-Xmx500Mのような何かは多分うまくいくでしょう。

1.13. どのように、私はJavaデバッグモードでforrestに起動することができますか?

forrest.propertiesファイルのforrest.jvmargsプロパティは、特定のポートにおいてデバッグモードでforrestを起動するのに使われることができます。 forrest.jvmargs=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

2. コンテンツ生成

2.1. どんなツールが、コンテンツを編集するのに用いられることができますか?

もし、あなたが、Apache Forrest XML文書形式、DocBookまたは他のXMLドキュメントタイプを使用しているならば、あなたはあらゆるテキスト・エディタまたは専用のXMLエディタさえ使用することができます。 あなたは、有効なXMLであることを確実にしなければなりません。 いろいろなエディタに関する私たちの設定メモを参照してください。

Apache Lenyaのようなコンテンツ管理システムがあります。

Forrestは他のソース形式(例えばOpenOffice.org文書またはJSPWiki)を使うこともできることを覚えておいてください。 それらのドキュメントタイプのために適切なエディタを使用して、文書構造が整合性がとれていることを確実にします。 Forrestはソースフォーマットとして"html"を使うこともできます、その場合には、あなたはMozillaウェブ・ブラウザを備えているもののようなテキスト・エディタまたは"htmlエディタ"を使うことができます。

2.2. メニューとリンクのためにsite.xml設定ファイルを使う方法。

site.xml設定ファイルが、2つの異なる目的のために使われます: ナビゲーション・メニューを定めること、そして、ドキュメント間でリンクするときに使われる関連を定義する方法としてのもの このファイルは、Menus and Linkingで完全に説明されます。 概略がここにあります:

ラベルは、あなたが望むどんなテキストでもありえます。

<faq label="FAQs" href="faq.html">
  <tech label="Technical" href="faq-tech.html">
    <docbook href="#docbook"/>
    <ignoring_javadocs href="#ignoring_javadocs"/>
  </tech>
  <user label="User" href="faq-user.html">
</faq>

それは、これのような3つのリンクをもつメニューを作成します:

FAQs
   Technical
   User

これらの文書は、他の文書からリンクされることができます、このように:

<a href="site:faq/tech"> link to the top of the Tech FAQs
<a href="site:faq/tech/docbook"> link to the DocBook FAQ in the Tech FAQs

その"docbook"エントリーが、あなたのsite.xmlにおける固有の名であるならば、あなたはその後者のリンクを短くすることができます:

<a href="site:docbook"> link to the DocBook FAQ in the Tech FAQs

2.3. ドキュメント、site.xmlとtabs.xmlファイルの例はどこにありますか?

例が'forrest seed site'にあります、そのうえ、Forrestウェブサイトのドキュメントはディストリビューション(cd forrest/site-author; forrest run)に含まれます。

2.4. 助けてください、私のドキュメントのうちの1つが描画されていません。

あなたは、それへのリンクをしましたか? Forrestは、ソース・ドキュメントを見つけるためにファイルシステムを調べることによって、ドキュメントを見つけるわけではありません。 むしろ、それは1つのドキュメントで始めて、処理するために他のドキュメントへのリンクをクロールします。

基本的に、関連を確立する2つの方法があります。 ナビゲーションとメニューを定義するsite.xmlファイルを通して、または、直接の相対的なリンクを通して。 前のFAQを参照してください。

通常、ソースの資料は、ローカルです。 Forrestクローラは、サイト外のリンクに従わないで、処理しません。 新しいlocationmap(0.8+)は、コンテンツがリモート・ソースから描画されるのを可能にします。

2.5. どのように、私は、サイト全体もしくはサイトのうち選択されたページから1つのPDFファイルを生成することができますか?

以下のエントリーをあなたのsite.xmlファイルに加えてください。 hrefは、すべてのドキュメントを結合するためにサイトマップで特別なマッチを誘発する、正確に"wholesite"または"site"でなければならないことに注意すべきです。

<about tab="home" label="About" href="">
  ...
  <all_site label="Full HTML" href="wholesite.html"/>    
  <all_sitePDF label="Full PDF" href="wholesite.pdf"/>  
   ...
</about>

この場合、「About」ラベルをつけられたメニューは、2つの新しいアイテムを持っています: "Full PDF"と"Full HTML"。

How to create a PDF document for each tabも参照してください。 これは、あなたが、あなたのサイト構造とナビゲーションのためにsite.xmlの方法を、古いbook.xml方法よりもむしろ、使用すると仮定します。

警告
"wholesite"集約は、多くの問題があります。問題トラッカーとメーリングリストを検索してください。

2.6. どのように、私はページの区切りをドキュメントに挿入しますか?

ページの区切りは、スクリーンでの表示する意図をもつHTML文書で、多くの意味をなしません。 しかし、PDF文書は印刷を目的とします、したがって、ページの区切りは重要でありえます。

ページの区切りをPDF文書に挿入するために、単にpageBreakBeforeやpageBreakAfterをあなたがページの区切りを強制したいブロックのクラス属性に加えます。 すべての共通ブロック・グループ要素は、このクラス(たとえば、note、warning、pとその他)をサポートします。

あなたがこれらのクラスがあなたのHTML文書でも処理されることを望むならば、あなたはあなたのプロジェクトのskinconf.xmlで以下を追加のcss要素に加えなければなりません

          .pageBreakBefore { 
            margin-bottom: 0; 
            page-break-before: always; 
          } 
          .pageBreakAfter {
            margin-bottom: 0; 
            page-break-after: always; 
            } 

2.7. どのように、私は、(author要素の)「クリックできる」電子メール・アドレスを表示するために、html-ページを生成することができますか?

あなたは、$FORREST_HOME/main/webapp/skins/common/xslt/html/document-to-html.xslを上書きして、headers/authorsテンプレートを編集するでしょう。

2.8. どのように、私は生のファイル(たとえばconfig.txtとbrochure.pdf)にリンクしますか?

生のファイルの取扱いは、Forrest 0.7でかなり変わりました。 すべての詳細のためにUpgrading to Apache Forrest 0.7を参照してください。

2.9. 画像がPDFで表示しません。どのように、私はこれを修正しますか?

Forrestは、PDFを提供するために、Apache FOPを使います。 FOPはネイティブにすべての画像形式を取り扱うことができるというわけではなくて、サードパーティのjarが追加されることを必要とします。 FOPは、ネイティブにBMP、GIF、JPG、TIFFとEPS(多少の制限を持って)を取り扱います。 FOPは、SVG(Batikを通して)とPNG(以下参照)を取り扱うこともできます。 詳細については、FOP Graphicsフォーマットを参照してください

JimiとともにPDFで機能するPNGを手に入れるために:

  1. http://java.sun.com/products/jimi/ からKimiをダウンロードします。
  2. Jimiディストリビューションを解凍し、JimiProClasses.zipを$FORREST/lib/optional/jimi-1.0.jarへコピーします。

代わりに、あなたはJAI(http://java.sun.com/products/java-media/jaiのJava Advanced Imaging API)を使うことができます。 詳細は、FOP Graphics Packagesを参照してください

注意
Sunライセンスのために、私たちはForrestとともにJimiやJAIを再配布することができません。

2.10.私のサイトのタブ・リンクが、'index.html'がにリンクされたディレクトリに存在すると誤って仮定します。どのように、私はこれを修正しますか?

tabs.xmlに、@dirの代わりに@hrefを使ってください、そして、後ろについている'/'を省略してください。 サイトマップの関心事は、それから、役に立つどのファイルですか。 たとえば、「User Manual」タブがmanual/Introduction.htmlにリンクするならば、tabs.xmlは以下を含まなければなりません:

<tab label="User Manual" href="manual"/>

そして、このルールをサイトマップに加えてください:

<map:match pattern="manual">
  <map:redirect-to uri="manual/Introduction.html"/>
</map:match>

2.11. 私は、tabs.xmlとsite.xmlの間の相互作用で、援助を必要とします

tipsを参照してください。

2.12. どのように、私がhttp://myserverまたは!http://myserver/mydir/のようなURLを要求するとき、Forrestが探すデフォルト・ファイル名を変えることができますか?

デフォルト・ファイル名を'index.html'(デフォルト)から'overview.html'に変えるために、あなたは以下の変更をする必要があります:

  1. あなたのプロジェクトのために'cli.xconf'ファイルを作成してください。
  2. <default-filename>index.html</default-filename>の'index.html'を'overview.html'で置き換えるために、そのファイルを編集してください。
  3. あなたのプロジェクトのsitemap.xmapファイルを編集してください。
  4. 以下のコードを単に、pipeline要素の終わりの前に加えてください:
<map:pipeline>
  <map:match type="regexp" pattern="^.+/$">
     <map:redirect-to uri="overview.html"/>
  </map:match>
</map:pipeline>

2.13. どのように、私はindex.html以外のスタートアップ・ページを使うことができますか?

Forrestは、あなたのサイトの最初のページ(ホームページ)がindex.htmlという名前をつけられるとデフォルトで仮定します。 あなたがhttp://myserverのようなURLを呼び出したとき、多くのWebサーバがindex.htmlを探すように設定されているので、どちらがよいですか。

Forrestで、どんなにこれが変わることができても(たとえば、あなたがCDベースの文書プロジェクトのためにページの上のあなたのスタートが'start.html'という名前をつけられることを望むとき)、大部分のセッティングを好きにしてください。

サイトのスタート・ページを変えるために:

  1. あなたのプロジェクトのsitemap.xmapファイルを編集してください。
  2. 以下のコードを単に、pipeline要素の終わりの前に加えてください:
      <map:pipeline>
        <map:match pattern="">
          <map:redirect-to uri="start.html" />
        </map:match>
      </map:pipeline>
    
  3. あなたがスタートページにしたいと思っているどんなところでも、uri属性を指定してください。
  4. そのページを作成して、あなたのsite.xmlでそれを参照するのを忘れないでください

2.14. どのように、出力(例えば*.php)に対して、異なるファイル名拡張子を使いますか?

Cocoonサイトマップの力を使ってください。 'php'拡張子を"html"への内部的な要求へとマップするために、*.phpに対するデフォルト取り扱い(main/webapp/sitemap.xmapを参照してください。)があります。 PHPについて詳細は以下を参照してください。

あなたの特別な要望のために、同じ内部的なリダイレクト技術を使ってください、たとえばそのphpのマッチをあなたのプロジェクト・サイトマップへコピーして、その代わりに".htm"を使います。

2.15. どのように、PHPによって給仕することの準備ができているページを生成しますか?

site.xmlナビゲーションにおいて出力htmlリンクのために*.phpファイル名拡張子(上記参照)を使ってください。 あなたのphp処理命令をソース・ドキュメントに加えてください。

しかし、FOR-999"processing-instruction nodes in source are not always passed through to html output"に注意してください、それによって特定のbody要素におけるAPIだけが取り扱われます。

2.16. どのように、site.xmlファイルのラベルで、特殊文字を使いますか?

文字符号のために数値を使ってください。 たとえば、&ouml;を用いるよりはむしろ、&#246;を使ってください。

XHTML Character Entitiesを参照して、問題FOR-244におけるより多くの議論を参照してください。

2.17. Forrestは、英語以外の言語のためにアクセントを取り扱いますか?

はい、Forrestはあらゆるlanguageでテキストを処理することができるので、あなたは以下を含めることができます:

アクセント:
分節:
波形符号:

これは、ForrestのドキュメントのソースがXMLドキュメントであるからです。それはこれらのどんなものでも含むことができ、ファイルで使われている実際のエンコーディングをマッチさせるXMLドキュメントによって宣言されるエンコーディングを提供します。 たとえば、あなたがデフォルトのエンコーディングを宣言するならば:

<?xml version="1.0" encoding="UTF-8"?> 

しかし、ファイル内容はISO-8859-1を現実に使っています、そして、特にあなたが若干の非アスキー文字を含めるならば、あなたは検証エラーを受け取ります。

あなたが符号化に注意を払うことなくあなたのお気に入りの(おそらくローカライズされた)エディタでforrest seedによって作成されるテンプレートを編集するとき、あるいは、あなたが新しいファイルを作成して、単にヘッダをもう一つのファイルからコピーするとき、この状況は一般に遭遇します。

UTF-8が大部分の言語のために適切なエンコーディングであるが、それは通常人気があるエディタやシステムのデフォルトでありません。 UNIXのようなシステムでは、最も人気のあるエディタは、ディスクにファイルを書くために、異なるエンコーディングを取り扱うことができます。 いくつかのエディタで、ファイルのエンコーディングが保護されます、一方、他のものではデフォルトが元々のエンコーディングを気にせずに使われます。 ほとんどの場合、ファイルを書くのに用いられるエンコーディングは、環境変数LANGを適切な値にセットすることによって制御することができます、 たとえば:

[localhost]$ export LANG=en_US.UTF-8

もちろん、エンコーディングをセットする適切な方法は、エディタ/OSに依存します、しかし、最終的には利用者の好みによります。 そのため、XML宣言のエンコーディング属性がファイルの実際のエンコーディングに一致する限り、あなたが好むエンコーディングを使うことができます。 あなたがISO-8859-1を捨てる気がないならば、あなたがその代わりに以下の宣言を常に使うことができることを、これは意味します:

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

もう一つのオプションは、「文字符号」(例えば&ouml;(o)または数の形式&#246;(o))を使うことです。

もう一つの関連する問題は、あなたのwebserverがhtmlページに一致するcharset定義とともにhttpヘッダを送信する必要があるということです。

さらに説明するいくらかの参考資料が、ここにあります: Torsten SchlabachによるGT2004 presentationAlan WoodのUnicode resources

2.18. どのように、XMLエンティティ(たとえば文字列置換)を使いますか?

一組のシンボルが利用できます。 新しい'forrest seed'サイト(samples-b/xml-entities.htmlにある)で、デモンストレーションを参照してください。 たとえば、商標記号"My Project Name?"と一緒にプロジェクト名を表現するために。"&myp-t;"を使ってください。 長いタイピングと潜在的スペルミスを避けてください。

2.19. どのように、Forrestはプロジェクトのビルド・ディレクトリをきれいにしますか?

デフォルトで、Forrestはプロジェクト・ワークスペースでそのビルド・ディレクトリをきれいにしません。 これは、forrestの連続実行の速度を上げるために、Cocoonがそのディスク・キャッシュを使うのを可能にします。

'forrest clean-site'を実行すると、プロジェクトの生成されたドキュメント・ディレクトリのコンテンツを削除します。 'forrest clean-work'を実行すると、プロジェクトの作業ディレクトリー(通常、CocoonキャッシュとCocoonログを含む、build/tmpとbuild/webappです)を削除します。 'forrest clean'を実行すると、両方の部分を削除します。

2.20. どのように、私はコンテンツを国際化(i18n)することができますか?

たとえば、ナビゲーション・メニューが国際化されることができます、そして、異なるコンテンツが提供されることができます。

機能をデモして、説明するための例があります。 'forrest seed-sample'サイトを参照してください。

字句のすべての国際化は、Cocoon i18n Transformerによって行われます。

2.21. どのように、私はForrestによってスキンされないHTMLコンテンツを含めることができますか?

提供するために(たとえばレガシーHTMLサイト)、以下のような何かをあなたのプロジェクトのサイトマップに加えて、src/documentation/content/old_site/ディレクトリに、ソース・コンテンツを置いてください。

      <map:match pattern="old_site/**.html">
        <map:select type="exists">
          <map:when test="{properties:content}{0}">
            <map:read src="{properties:content}{0}" mime-type="text/html"/>
<!--
            If you want JTidy to clean up your HTML source, then use a
            generator/serializer instead of the reader. However see FOR-679.
            <map:generate type="html" src="{properties:content}{0}" />
            <map:serialize type="html"/>
            -->
          </map:when>
        </map:select>
      </map:match>

正確にマッチがそうでなければならないことは、あなたのコンテンツ構造に依存しています。 明細を提供することはこのFAQの範囲外です、しかし、新規ユーザーはCocoonサイトマップ文書に参照するのを好んでもよいです。

このトピックに関するより詳細な議論が、新たに種をまかれたサイトのサンプルにあります。 この文書を参照するために、以下をしてください:

  1. mkdir seed
  2. cd seed
  3. forrest seed-sample
  4. forrest run
  5. http://localhost:8888/samples-b/linking.html#no-decoration

2.22. どのように、追加のJavascriptとCSSファイルを含めますか?

いろいろなリソース(たとえばjavascriptやcss)を"project skins"ディレクトリに置いてください。 デフォルトのforrest.propertiesは、これをsrc/documentation/skins/$skin-name/に持ちます。 Javascriptファイルは、"scripts"サブディレクトリに入ります。 CSSファイルは、"css"サブディレクトリに入ります。

そして、/skin/blah.jsや/skin/foo.cssのようなURIを持つ、あなたのソース・ドキュメントからそれらを参照します。

これが、forrest/main/webapp/resources.xmapと呼ばれている中心的なサイトマップで取り扱われる方法を参照してください "javascript"を探してください、そして、<map:resource name="skin-read">セクションに従ってください。

2.23. どのように、全部のサイトの目次を示せますか?

あらゆるサイトは、site.xmlナビゲーション設定から作られるlinkmap.htmlに自動的に生成されたドキュメントを持っています。 それは、各々のノードのために、@labelと絶対化された@hrefと要素名と@descriptionを使います。

たとえば、ForrestプロジェクトのSite Linkmap Table of Contentsです。

あなたの文書を開発して、他の文書にリンクするとき、ドキュメントも役に立ちます。 要素名(#2列)(たとえば、href="site:mail-lists"やhref="site:howto/overview"

これは、個々のページをビルドするためにリンクに従う、Cocoonクローラをキックスタートするために'forrest site'が使うドキュメントでもあります。 forrest.propertiesファイルでproject.start-uriを参照してください。

3. 技術

3.1. Javaコードはどこですか?

私たちがApache Cocoonに基づくので、多くの機能が舞台裏で提供されます。 すなわち、私たちはXSLT変換器のようなCocoonのサイトマップとサイトマップ・コンポーネントを使います。 それで、Forrestではそれほど多くのJavaコードが必要ではありません。

そのコードを調査するか、強化したいForrest開発者のために、Apache Cocoon SVN trunkを参照してください。 時々、私たちはCocoonのForrestのパッケージ化されたバージョンを更新します、そのため、あなたの貢献を含めることができます。

とは言うものの、あなたは、Forrestで開発されたCocoonコンポーネント(たとえば、LocationmapとDispatcher)に対する、ForrestでのいくらかのJavaコードをmain/java/...で見つけるでしょう。 特殊な目的(例えばPhotoGallery)をもついくつかのプラグインのためにもJavaコードがあります。

3.2. キャッシュの応答性を強化する方法は?

Apache Cocoonは、洗練されたキャッシュを持っています。 ダイナミック・モードでForrestを実行するとき、最初の訪問者はより遅い反応を受け取ります。 提供される一番最初のページは、Cocoonがパイプラインをキャッシュする原因になります。 後のリクエストはそれらのキャッシュされたコンポーネントを再利用して、他をキャッシュに加えます。 良い技術は、forrestのwebappが再起動されたあと、キャッシュを暖めることです。 フロントページだけを要求することは、キャッシュに他のページのために使われる共通のアイテムを配置するでしょう。 wgetのようなクモを使うことは、すべてを暖めます。

Cocoonキャッシュとサイトマップは、調整されることができます。 Cocoon Performance TipsCocoonPerformanceとmain/webapp/WEB-INF/cocoon.xconfの"Object Stores"セクションを参照してください。

応答性は、透過プロキシサーバー(例えばフロントエンドとしてのApache HTTP Server)を利用することによって、さらに強化されることができます。 CocoonAndApacheModProxyを参照してください。

3.3. 私はプロキシの後にいます、そして、それはPluginsがダウンロードされるのを防いでいます、私は何をしなければなりませんか?

あなたは、forrest.propertiesファイルでプロキシを設定することができます。 それに応じてproxy.hostとproxy.portをセットしてください。 あなたは、それに応じてproxy.userとproxy.passwordをセットすることによって、認証されたプロキシを越えることもできます。

プロキシ設定を一般化します
あなたは、間違いなく、あなたにはあるForrestプロジェクトごとにあなたのプロキシを越える必要があります。
すべてのプロジェクトのforrest.propertiesファイルを編集することを回避するために、あなたはあなたの${user.home}/forrest.propertiesで、一度にすることができます!

3.4. どのように、私はCVSかSVNの改訂タグを示すために、HTMLページを生成することができますか?

あなたが次を持つならば: <version>$Revision: 1.30 $</version> '1.30'が抽出されて、"version 1.30"として脚部に表示されます。 たとえばUsing Forrestドキュメントの脚部を参照してください。

この技術が、$Dateで修正日に使われることもできました:2004/01/15 08:52:47 $

Subversionを使うとき、関連したsvn:keywordsプロパティをセットするのを忘れないでください。

3.5. CocoonによるURIの処理を制御する方法、たとえば特定のURIを除外して、他の追加のものを含む方法。

Forrestは、cli.xconfと呼ばれているApache Cocoonコマンド・ラインによってされる処理を制御するために、設定ファイルを使用します

あなたのプロジェクトはそれ自身のcli.xconfを供給することができて、除外するURIのパターンを定めることができます。 他の強力な設定機能も、あります。

これは、ディレクトリsrc/documentation/conf(または${forrest.conf-dir}が指すどこでも)をつくって、$FORREST_HOME/main/webapp/WEB-INF/cli.xconfをそれへコピーすることを意味します。 forrest.properties設定でこのファイルの位置を宣言してください、 たとえば、project.configfile=${project.home}/src/documentation/conf/cli.xconf

それから、cli.xconfを編集してください、そして、何でもあなたが必要とするexcludeセクションを付け加えてください。 デフォルトのcli.xconfはディレクトリ・リンクと、'apidocs'を含むか、'api/'で始まるリンクを無視します:

   ....
   <!-- Includes and excludes can be used to limit which URLs are rendered -->
   

   <exclude pattern="**/"/>
   <exclude pattern="**apidocs**"/>
   <exclude pattern="api/**"/>
   

   <uri src="favicon.ico"/>
</cocoon>

これはただの例です、そして、あなたはあなたのサイトのために適切にそれを修正しなければなりません。

注
ワイルドカードが使われてもよいです。これらは、Cocoonのサイトマップの強力な機能です。
たとえば、foo/*は、foo/barにマッチしますが、foo/bar/bazにマッチしません-それにマッチするためにfoo/**を使います。

リンクされていない追加のドキュメントをCocoon CLIを使用している処理に含める方法を説明している、例"How To Generate an ASF mirrors page"を参照してください。

3.6. 私はForrestが、javadocsのような、存在しないかもしれない外部ファイルへリンクするのを中断するをどのように止めますか?

これは、cli.xconf Cocoon設定ファイルによって上書きされて、除外するURLのパターンを定めることによってされることができます。

3.7. それらが共通のファイル名を使用するので、私のファイルのいくらかは処理されていません。

特定のパターンは、特別な処理のためにデフォルト・サイトマップによって要求されます。 これらの予約語は以下を含みます: site, wholesite, changes, todo, faq, images, my-images, skinconf, community, howto

時々、回避方法があります。たとえばfaq.htmやfaq-interview.htmlが失敗するでしょう、しかし、interview-faq.htmlはよいでしょう。 Forrestの将来のバージョンにおいて、私たちはこの問題(FOR-217)に対処しようとします。

3.8. Forrestはそれがビルドした各々のドキュメントをリストするとき、シンボルと数は何を意味しますか?

そのCocoonがリンクを処理するたびに、それはステータスメッセージを報告します...

...
* [212/166] [0/0]  1.16s  62.4Kb  docs_0_60/your-project.pdf
X [0]         /docs_0_80/upgrading_08.html  BROKEN: No pipeline matched...
* [213/164] [0/0]  0.391s 29.2Kb  docs_0_70/howto/howto-buildPlugin.pdf
^                           apidocs/index.html
* [214/170] [7/66] 1.476s 45.5Kb  docs_0_60/sitemap-ref.html
...
  • 第1列は、ページのビルド・ステータスです(*=オッケー X=リンク切れ =ページ・スキップ)。
  • 第2列は、ページ数(完了ページ数/残りページ数)です。1つのページを処理する間、Cocoonがさらに発見するので、後者は変わるでしょう。
  • 第3列は、そのページ(ページにある新しいリンク数/ページにあるリンク数)から集められたリンクの数です。
  • 第4列は、かかった時間です。
  • 第5列は、ページサイズです。

3.9. SVGからPNG画像を生成するとき、エラーが出ます:Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.

あなたがJDK 1.5かより新しいものを使用しているならば、このように、あなたはforrest.jvmargパラメータを-Djava.awt.headless=trueに設定してForrestを実行することによって頭のない運用を可能にすることができます:

forrest -Dforrest.jvmargs=-Djava.awt.headless=true site

Cocoon FAQも参照してください。

3.10. SVGから生成されるプロジェクト・ロゴが、私のプロジェクト名を切り詰めています。

'forrest seed site'において、プロジェクトとグループ・ロゴは、skinconf.xmlファイルの<project-name>と<group-name>要素からのテキストを使用して、スケーラブル・ベクタ・グラフィックス(SVG)ファイルから生成されます。 あなたが長いプロジェクト名を持つならば、あなたは画像の幅を調節する必要があるかもしれません。 おそらく、あなたは色も変えたいでしょう。 src/documentation/content/xdocs/images/project.svgでファイルを編集して、<svg>要素の"width"属性を調節してください。 詳しくは、SVGリソースを参照してください。

3.11. どのように、私はローカルのForrest DTDを見つけるために、私のお気に入りのXMLエディタかパーサーを設定しますか?

Using Catalog Entity Resolver for local DTDsでいろいろなツールに対して、メモが用意されています。

3.12. 私自身のローカル・プロジェクトDTDを使うために、Catalog Entity Resolverを設定する方法は?

設定手引きについてUsing Forrestを参照してください。

3.13. 私たちは、プロジェクトの間でDTDを共有するために、追加のシステム全体カタログを必要とします

設定手引きについてUsing Forrestを参照してください。

3.14. Catalog Entity ResolverとローカルDTDをデバッグする方法は?

XML validationを参照してください。

3.15. どのように、サイトの見た目をよりよくして、そのスキンを変えますか?

提供されるデフォルトのスキンがあります、それは設定可能です、それゆえ多くのプロジェクトの要求に合わなければなりません。 狙いは、追加のスキンが必要でないように、多くの能力を提供することです。

スキンの設定について、メモを参照してください。 いくつかのプロジェクトは特別な要求を持つかもしれず、彼ら自身のスキンを定めることができます。

3.16. どのように、私はXSP処理を有効にしますか?

最初に、Forrestよりはむしろ、あなたのニーズがCocoon自体によってよりよく満たされるかどうか考えてください。

とはいっても、プログラム的に生成されたコンテンツを必要とする正当な理由があります、そして、これはXSPを有効にする方法です:

1. Cocoons SVNツリーからjdtcore-*.jarをダウンロードしてください、そして、それを$FORREST_HOME/main/webapp/WEB-INF/libディレクトリ(またはソース・ディストリビューションにあるlib/core/ディレクトリ)へコピーしてください。

2. mapにおいて以下のgenerator定義を加えてください:あなたのプロジェクト・サイトマップのgeneratorセクション

<map:generator name="serverpages"
   pool-grow="2" pool-max="32" pool-min="4"
   src="org.apache.cocoon.generation.ServerPagesGenerator"/>

3. あなたがXSPを使いたい方法を決定してください。単一ファイルについては、あなたはただ*.xmlマッチャを定めてもよかったです:

<map:match pattern="dynamic.xml">
  <map:generate src="content/xdocs/dynamic.xsp" type="serverpages"/>
  ...
  <map:serialize type="xml"/>
</map:match>

あなたは、その代わりに、XSPsのために一般的なマッピングを定めるためにforrest.xmapを越えたいかもしれません。

また、AddingXSPToForrest Wikiページを参照してください。

3.17. どのように、パンくずは動作しますか?なぜ、それらはローカルでは動作しませんか?

パンくずは、skinconf.xmlで指定されている最高3つのURLから始めます。 Forrestのサイトが使うものは、ここにあります:

<trail>
  <link1 name="Apache Software Foundation" href="http://www.apache.org/"/>
  <link2 name="Apache Forrest" href="http://forrest.apache.org/"/>
  <link3 name="" href=""/>
</trail>

あらゆるリンクが空白であるならば、それらは使われません。 これらの最初のリンクの後、JavaScriptはカレントページのURLを見て、ドメインの後にディレクトリごとにリンクをします。 あなたがローカルにサイトを見ているならば、ドメインがありません、したがって、追加のパンくず(skinconf.xmlで指定されているものだけ)がありません。

3.18. どのように、私はforrest runが異なるポートで待ちうけるようにしますか?

forrest run -Dforrest.jvmargs="-Djetty.port=80"

または、Forrestのmain/webapp/jettyconf.xmlファイルをあなたのプロジェクトのsrc/documentationディレクトリへコピーして、ポート番号をそのファイルにセットしてください。 それから、forrest runを実行してください

3.19. 私は、Javaデバッギングをオンにして、Forrestを実行することができますか?

あなたがEclipseのようなIDEを使用して、ForrestでJavaコードをデバッグしたいならば、あなたはデバッグ・モードをオンにしてForrestを起動する必要があります。 こうするために、あなたは-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,susp end=nをforrest.propertiesファイルのforrest.jvmargsプロパティに加える必要があります。 プロパティがそのファイルでアンコメントされることを確実にするのを忘れないでください。

3.20. どのように、私はCocoonのドキュメント・チェックサム機能を有効にしますか?

なぜ、あなたはこうしたいかもしれませんか? Cocoon処理に対する影響が本当にありません、しかし、時間がファイルシステムに書き込むことにわずかな時間を取っておかれることができます。それは何千ものファイルを持つサイトのために大きい節約が蓄積するでしょう。

いくつかのツールは、生成されたファイルの"date-last-modified"タイムスタン依存します。 たとえば、Forrestbotはそれから変更されたファイルだけを配備します。

これに関するいくつかの議論が、Forrest開発者メーリングリストにあります: Cocoon Checksumは、具体的には、新しいファイルが既存ファイルと同じであるならば、この機能はCocoonがディスクに書くのを止めるだけという点に注意します。 Cocoonは、まだ、チェックサムが有効にされないならば、それがそうするだろうコンテンツを生成している同じだけの時間を過ごします。

cli.xconfの中でchecksums-uriタグを見つけて、チェックサム・ファイルのためにコンテンツを絶対パスとファイル名に入れ替えてください。 プロジェクトは彼ら自身のもの(FAQ:Cocoon cli.xconfを参照してください)を供給することができるか、デフォルト・インストールにあるcli.xconfファイルを使用することができます。

3.21. いくつかのCocoonサイトマップ・コンポーネント(たとえば出力htmlエンコーディングやdoctype)を設定する方法は?

中心的なCocoonコンポーネントは、main/webapp/sitemap.xmapファイルで定義されます。 通常、デフォルト設定は適切です。 あなたがプロジェクトごとに変えるのが好きかもしれないことがいくつかあります。 たとえば、出力HTMLファイルに対するHTMLエンコーディングをデフォルトのUTF-8から変更して、Dispatcherのために異なる文書型宣言を設定してください。

'forrest seed'で新しいサイトをつくって、src/documentation/resources/schema/symbols-project-v10.entファイルにある、シンボルのセットを参照してください。 そのファイルをあなた自身のプロジェクトの同じ場所へコピーしてください。 また、src/documentation/resources/schema/catalog.xcatファイルで、seedサイトで示されるように、エントリーをあなたのプロジェクトxmlカタログに加えてください。

すぐに、src/documentation/resources/schema/catalog.xcatファイルからあなたのプロジェクトへと、あなたが再定義したいと思っている特定のエンティティをコピーして、エンティティ宣言を編集してください。 Forrestを再起動します。

3.22. たとえそれらが変わらなかったとしても、なぜ、SVN diffがいくつかのドキュメントのためにありますか?

それらのファイルのために'svn add'をしたコミッタが、"svn:eol-style"設定のためにきちんと設定される彼らのSubversionクライアントがなかったので、これらの不必要な違いは起こります。 この問題を訂正することについて、いくつかのメモを参照してください。

4. Older version: 0.6

4.1. それらが共通のファイル名を使用するので、私のファイルのいくらかは処理されていません。

特定のパターンは、特別な処理のためにデフォルト・サイトマップによって要求されます。 これらは以下を含みます: site, changes, todo, faq, images, my-images, skinconf, community, howto

時々、回避方法があります、たとえば、faq.htmlやfaq-interview.htmlが失敗します、しかし、interview-faq.htmlはよいです。 Forrestの将来のバージョンにおいて、私たちはこの問題(FOR-217)に対処しようとします。

5. 一般

5.1. site.xmlとbook.xmlの関係は、何ですか?

あなたのプロジェクト・ルートにある1つのsite.xmlファイルは、あなたのサイトですべてのbook.xmlファイル(一つのディレクトリにつき一つ)にとって代わることができます。 内部的には、Forrestはbook.xmlファイルを動的に生成するために、site.xmlを使います。 しかし、Forrestは最初にbook.xmlファイルの存在をチェックするので、下位互換性は保たれます。 ディレクトリにはbook.xmlファイルがあるならば、book.xmlはメニューを生成するのに用いられます。 この補完は、site.xml生成のメニューが適切でない状況において役立ちます。 Menus and Linkingを参照してください。

5.2. どのように、私はXML文書フォーマットとしてDocBookを使いますか?

2つの方法があります。 Forrestには、進行中にDocBookフォーマットをForrest "xdocs"フォーマットに変換することができて、それから通常のForrestドキュメントとしてそれを描画することができる、simplifiedDocbookプラグインがあります。 この変換をするstylesheetが故意に非常に制限されて、すべてのDocBook要素を処理しようとしないことに注意してください。

他の方法は、完全なDocBook stylesheetsを直接使うことです。 DocBook DTDはForrestで出荷されて、自動的に取り扱われます。 しかし、あなたはあなたのシステム上にDocBook stylesheets(それらは、Forrestで出荷するにはあまりに大きいです)を持って、それに応じてForrestを設定する必要があります。 あなたは、Using Forrestで説明されるようにプロジェクト・サイトマップを作成して、あなたのDocBookドキュメントを取り扱うためにマッチを加える必要があります。 ここに例があります。 あなたがあなたの状況に合わせるために、あなたはそれを変える必要があることに注意すべきです。 DocBookドキュメントがマッチされるようにだけ、マッチは非常に明確でなければなりません。 残りのドキュメントは、Forrestコアによって取り扱われます。 強力な正規表現能力は利用できます。

<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
 <map:pipelines>
  <map:pipeline>
   <map:match pattern="resolver-*.html">
    <map:generate src="{properties:content.xdocs}resolver-{1}.xml"/>
    <map:transform
      src="file:///usr/share/sgml/docbook/xsl-stylesheets/xhtml/docbook.xsl"/>
    <map:serialize type="xhtml"/>
   </map:match>
  </map:pipeline>
 </map:pipelines>
</map:sitemap>

あなたは、サイトマップのcomponentsセクションにおいて、<map:serialize type="xhtml"/>で使われるxhtml serializerを定義する必要があります。 あなたがこのコンポーネントを定義するために加える必要がある要素について、Cocoon文書を参照してください。 あなたは、FORREST_HOME/main/webapp/sitemap.xmapファイルの中に加えられている他のコンポーネントの例を参照することができます。 代わりに、"html" DocBook stylesheetsとデフォルトのCocoon serializerを使ってください、 すなわち、<map:serialize type="html"/>です。

上記のサイトマップの出力は、Forrestテーマとナビゲーションで装飾されない単純なhtmlです。 その代わりにあなたが後者を必要とするならば、その代わりに以下の技術を使ってください。 これはDocBook xmlをhtmlに変換して、 そして、内部xmlフォーマットへと変換してシリアライズするために、Forrestのコアstylesheetを使います、 それから、通常の仕組みは、取って代わって、出力変換を実行します。 これは、ソースxmlをこっそり見るために、Content Aware Pipelines(SourceTypeAction)を使います。 それがDocBook-4.2であるならば、このサイトマップ・マッチは引き起こされます、 そうでないならば、それはForrestのコアへとフォールスルーします。

<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
 <map:components>
  <map:actions>
   <map:action logger="sitemap.action.sourcetype"
      name="sourcetype"src="org.apache.forrest.sourcetype.SourceTypeAction">
    <sourcetype name="docbook-v4.2">
     <document-declaration public-id="-//OASIS//DTD DocBook XML V4.2//EN"/>
    </sourcetype>
   </map:action>
  </map:actions>
  <map:selectors default="parameter">
   <map:selector logger="sitemap.selector.parameter"
      name="parameter" src="org.apache.cocoon.selection.ParameterSelector"/>
  </map:selectors>
 </map:components>
 <map:pipelines>
  <map:pipeline>
   <map:match pattern="**.xml">
    <map:act type="sourcetype" src="{properties:content.xdocs}{1}.xml">
     <map:select type="parameter">
      <map:parameter name="parameter-selector-test" value="{sourcetype}"/>
      <map:when test="docbook-v4.2">
       <map:generate src="{properties:content.xdocs}{../1}.xml"/>
       <map:transform
          src="file:///usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"/>
       <map:transform src="{forrest:forrest.stylesheets}/html-to-document.xsl"/>
       <map:transform type="idgen"/>
       <map:serialize type="xml-document"/>
      </map:when>
     </map:select>
    </map:act>
   </map:match>
  </map:pipeline>
 </map:pipelines>
</map:sitemap>

あなたは、いくつかはForrestによって自動的に取り扱われ、またいくつかは直接DocBook stylesheetsを使うという、混合した方法を使うこともできます。 あなたは、"document-v*" DTDとDocBookとしてソースファイルの混成を持つこともできます。

あなたのXMLインスタンスにおける文書型宣言が十分に指定されることを確実にしてください。 公的な識別子を使ってください。 DTDは、それからForrestによって適切に解決されます。 あなたが異なるDTDを使う必要があるならば、設定手引きについてUsing Forrestを参照してください。

5.3. どのバージョンのForrestが使われていて、プロパティがセットされているかを表示する方法は?

バージョン番号を見つけるために、'forrest -projecthelp'または'. /build.sh'を実行してください。 また、'forrest'または'forrest run'を起動するとき、forrest、JavaとANTのバージョンが表示されます。

プロパティと他のものを記載するために、"forrest.echo=true"をあなたのforrest.propertiesファイルに加えて、ビルド・メッセージを見てください。 'forrest -v'をすることは、冗長なビルド・メッセージと他の有益な情報を提供します。

'forrest run'モードでは、ビルド情報とプロパティを参照するために、Forrestbarを使ってください、さもなければ、それらに直接アクセスしてください:

  • http://localhost:8888/build-info
  • http://localhost:8888/module.properties.properties

新しいプロパティ・システムについて文書を参照してください。

5.4. エラーについてより多くの情報を見つけるためのログファイルはどこでしょうか?

ログファイルは、build/webapp/WEB-INF/logs/にあります。

ログ・レベルは、logkit.xconf設定で上げられることができます。 あなたがインタラクティブなwebappモード(それは、通常、エラーをデバッグすることに最も容易です)でForrestを使っているならば、main/webapp/WEB-INF/logkit.xconfファイルを参照してください。 あなたが、(コマンド・ライン'forrest'で)静的サイトを生成しているならば、$FORREST_HOME/main/webapp/WEB-INF/logkit.xconfをあなたのプロジェクトにあるsrc/documentation/conf/logkit.xconfへコピーして、それを修正してください。 Cocoonログについて、詳細な情報と効率的なヒントを参照してください。

'forrest -v'を実行することは、冗長なビルド・メッセージを標準出力に提供します。

5.5. 標準出力メッセージをフィルターするか減らす方法は?

あなたは、どこで、通常'forrest'や'forrest run'その他を実行するでしょうか。 "quiet"オプションを使う代わりに、'forrest -q'や'forrest -q run'その他を実行してください。 エラーが報告されるならば、エラーに対する状況を手に入れるために、"quiet"オプションをやめて、もう一度実行してください。

'forrest -v'を実行することは、非常に冗長な造りメッセージを標準出力に提供します。

5.6. 色のついた標準的な出力メッセージを有効にする方法は?

色をforrestな出力メッセージに加えることは、読みやすさを大いに助けます。

そのようにANT_ARGS環境変数をセットしてください:

export ANT_ARGS="$ANT_ARGS -logger org.apache.tools.ant.listener.AnsiColorLogger" 

デフォルトの色を変えるために、そのようにANT_OPTS環境変数をセットしてください:

export ANT_OPTS="$ANT_OPTS -Dant.logger.defaults=$FORREST_HOME/etc/AnsiColorLogger.properties" 

そして、Apache Ant Manualで説明されるようにその設定ファイルを作成してください。 それはMac OS X上で必要とされます、そして、色ごとに"Attribute"はデフォルトの「2」よりもむしろ「0」である必要があります。

すべてのターミナルがANSIカラーコードをサポートするというわけではないことに注意すべきです。

5.7. 援助する方法は?

Forrestプロジェクト・メーリングリストのうちの1つに加わって、あなたが何を改善したいと思うかについて、我々に話してください。 特に新顔から、私たちはすべてのフィードバックを貴重であると考えます-しばしば、ぎりぎり近くはソフトウェア開発者に他の皆にとって明らかである誤りを見失わせます。 恥ずかしがらないでください!

5.8. パッチに寄付する方法は?

我々の問題トラッカーを通してすべての貢献を送ってください。 パッチを作ることに関するメモは、ここにあります。

貢献することについてのより多くの情報は、Forrestへの貢献ページで見つかります。 飛び込む前にForrest問題トラッカーをチェックすることは、常に良い考えです。

5.9. どのように、職務は広告されることができますか?

雇い主は、雇用の機会について通知を送ることができます。 特別なjobs<AT>apache.orgメーリングリストが、あります。 あなたは、これらの通知をプロジェクト・メーリングリストに送ることもできます、 たとえば、ForrestまたはCocoonのdevリスト([jobs]をタイトル行に加えてください)。 あなたは、特定の開発者にリスト外でアプローチすることもできます。 どんなに本物の仕事であろうとも、無料の支援を訴えてはいけません(メーリングリストを参照してください)。

いくつかの進んだ雇い主は、彼らの従業員が、仕事関連のリソースを使用している仕事時間の間、作成された資料を寄稿できるようにします。 Apacheソフトウェア財団とともにCorporate Contributor License Agreement(CCLA)をファイルする必要に注意してください。

5.10. プレスキットがありますか?

ジャーナリストは、誰に連絡することができますか? プレスの問い合わせは、ASF PR活動委員会(PRC)を通して調整されていなければなりません。 連絡先を参照してください。 PRCもガイドラインを提供して、ASF商標およびロゴの特定の使用法を取り扱います(FAQガイドラインも参照してください)。

Apache Forrestロゴ(PNG)とバナー(SVG | PNG)は、利用できます。 残念なことに、ロゴはPNGとしてのみ使用可能です。

5.11. セキュリティ問題を報告する方法は?

セキュリティと脆弱性の問題は、ASF Security Teamを通して調整されています。 これは、Apache製品における公表されていないセキュリティ脆弱性を報告するためだけです。 他の問題に対しては、Forrestプロジェクトの問題トラッカーを利用してください。