Eclipse Oomph のドキュメント日本語訳: Contents-Scopes


6月末にリリースされた Eclipse Mars に搭載された新機能 "Oomph" を使ってみようと思ったのだが上手く使いこなせず，出てくる用語もイマイチ理解しきれていなかったので，自分の頭のなかを整理するためにオンラインドキュメントの日本語訳をやってみる．
英文の日本語訳をするのは大学のゼミにいた頃 (プログラミングは関係ない) 以来ですし技術的にも不勉強なところもあると思うので，わかりづらかったり，もっと良い訳があるよ，という場合はぜひご指摘ください．
あと，自分の興味がある (というか理解しきれていない) 場所だけ飛び飛びで書いてくのでその点はご容赦ください．あと自信ないところは訳注で言い訳してます．

ということで，以下のページの和訳．
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.oomph.setup.doc%2Fhtml%2Fconcepts%2FDocScope.html

---

# Scopes
スコープ (`Scope`) とは，関係するタスクをグループ化するための単位です．スコープは階層構造をもっており，タスクはスコープの階層構造に基づいて集約されます．スコープはリソース (resources) に保管されます．

それぞれのスコープには以下のプロパティがあります．

* `attribute`: 必須項目であり，それは小文字で書かれている必要があります．つまり， Java のパッケージ名のドットで区切られた各要素のように書かれるべきです．スコープは階層に基づいた構造で `attribute` を保持するので，スコープ名のドット区切りによる就職がなされます．つまり，スコープ名の小文字で記載されることが推奨されます．
* `label`: 任意項目であり，タイトルケース (各単語の先頭が大文字) で記載されるべきであって空白文字や句読点が含まれても問題ありません．
* `description`: 任意項目．

## 1. プロダクトカタログ
プロダクトカタログ (`ProductCatalog`) とはプロダクト (訳注: Eclipse の各バージョンやパッケージを指す	) に対応するコンテナ (`container`) であり，プロダクトのインストールに必要なタスクのコンテナでもあります．例えば，Eclipse のダウンロードページで手に入るすべてのパッケージに対応した Eclipse プロダクトのカタログ，といった具合です．言い換えれば，Eclipse.org から普通にダウンロードして unzip することで手に入るパッケージはすべて Oomph でダウンロード可能ということです．もし Oomph はインストールされているけれども Oomph によってインストールされたわけではないプロダクト (Eclipse) については，「自分自身のブロダクトを含んだプロダクトカタログ」という言い方をします．これは (後述される) プロジェクトカタログリソース内に保管されます．
(訳注: 最後の部分難しくて自信ないのですが，こういうケースはこう呼ぶよ，という話をしてるんだと理解しました…難しい．) 

### 1.1 プロダクト
プロダクト (product) とは，プロダクトの各バージョンに対応したコンテナであり，そのバージョンのインストールに必要なタスクのコンテナです．例えば，各 Eclipse のパッケージ (訳注: CDT とか，Java EE とか) のプロダクトカテゴリの中にあるひとつひとつ (訳注: のバージョン) はプロダクトです．もし， Oomph はインストールされているものの Oomph によってインストールされたわけではないプロダクトは，「自らのプロダクトのバージョンを含んだプロダクトカタログにあるプロダクト」という言い方をします．

#### 1.1.1 プロダクトバージョン
プロダクトバージョン (product version) とは，プロダクトの特定のバージョンのインストールに必要なタスクのコンテナです．例えば，Eclipse のプロダクトカテゴリないにある Eclipse Standard product (というコンテナ) の中には， Luna バージョンのパッケージをインストールするためのプロダクトバージョン (というコンテナ) があります．

Oomph がインストールされているものの Oomph によってインストールされたわけではないプロダクトの場合，それは自分自身のプロダクトカタログにある自分自身のプロダクトの自分自身のバージョンという呼び方をします．その際，そのプロダクトには p2 タスクを通じてインストール可能なすべての要素 (訳注: Eclipse を構成するモジュール？) の情報や，p2 のアップデートサイトが記録されており，自分自身のインストール済み要素の行進に必要な情報が全て揃っていることになります．

## 2. Project Catalogs 
プロジェクトカタログ (project catalog) とは，プロジェクト (後述) のコンテナです．つまりプロジェクトのワークスペースをプロビジョニングするタスクや，そのプロジェクトの作業に必要なツール (訳注: プラグインとか) のインストールを行うタスクのコンテナです．
例えば， Eclipse.org がホストしている様々なプロジェクトのための Eclipse プロジェクトカタログ, という言い方をします．これはプロジェクトカタログリソース内に保管されます．

### 2.1 プロジェクト
プロジェクト (project) とはストリーム (後述) のコンテナであり，ワークスペースのプロビジョニングや必要なツールのインストールはこのストリームを用いて行われます．例えば， Eclipse プロジェクトカタログには Oomph プロジェクト自身 (のワークスペースをプロビジョニングするための) のプロジェクト (というコンテナ) が存在します．プロジェクトはプロジェクトリソース内に保管されます．

プロジェクトは，複数のプロジェクトをネストすることができます (しなくても構いません)．ネストしたプロジェクトが存在した場合，それらの情報は個別のプロジェクトリソースに保管されることもかのうですし，親となるプロジェクトのプロジェクトリソース内に保管されることも可能です．

#### 2.1.1 ストリーム
ストリーム (streams) は，そのストリームにの行うワークスペースのプロビジョニングやツールのインストールなどの個々のタスクのコンテナです．例えば，Eclipse プロジェクトカタログにある Oomph プロジェクトには， Oomph プロジェクトの Git レポジトリにある master ブランチのソースコードをプロビジョニングする (訳注: チェックアウトする) というストリームがあります．

## 3. インストール
インストール (installation) とは，特定の Eclipse プロダクトのプロビジョニングを行うタスクのコンテナです．しかし，実際にこのコンテナの主な役目は，そのプロビジョニングがどのブロダクトのバージョンを参照しているかを特定しているということです．そのプロダクトのバージョンのためのタスク一式が実行されることで，プロダクトはインストールされます．インストールウィザードは表示したプロダクトページ上で選択されたプロダクトバージョンに基づいて，このインストールコンテナのインスタンスを生成します．たとえプロダクトのインストールが Oomph を用いて行われなかったとしても，もし Oomph が存在しているのであれば，自分のプロダクトバージョンの参照を作るためにインストールコンテナのインスタンスが生成されます．

## 4. ワークスペース
ワークスペース (workspace) とは，特定の Eclipse のワークスペースのプロビジョニングを行うタスクのコンテナです．このコンテナの主な役割はプロジェクトに紐づく複数のストリームを特定することにあります．ワークスペースの特定したストリームにあるタスクが実行されると，ワークスペースのプロビジョニングや必要なツールのインストールが行われます．インストールウィザードは，表示したプロジェクトページで選択されたプロジェクトストリームにもとづいてワークスペースのインスタンスを生成します．

## 5. ユーザー
ユーザー (users) とは，インストールされた Eclipse ごと，また開かれたワークスペースそれぞれごとに，ユーザーに紐づくプロビジョニングを行うタスクのコンテナです．このコンテナによって，各ユーザー自身が 各 Eclipse のバージョン，各プロジェクトのワークスペースにわたってのあらゆる側面の UX をカスタマイズすることが出来ます．更に，以下のことも可能です．

* 自動的にインストールされるツールのライセンスを承認したことの記録．つまり，一度ライセンスの承認をすれば，次回以降のツールのインストール時にはインストール時のライセンス承認を行う必要がなくなります．
* 署名のないコンテンツに対するポリシーの記録．つまり，一度署名のないコンテンツを受け入れたら，そのことは記録されて次回以降もう一度プロンプトが表示されることがなくなります．
* レポジトリやワークスペース，インストール内容がどこにどのように保存されているかの設定の保存．これは attribute rules と呼ばれます．