ソースコード
このチュートリアルで使われるプラグインのソースコードはAtlassian public source repository内で利用可能である。
ここでソースコードをチェックすることができる。
Overview
このチュートリアルは、
Confluence web interface内にmenu optionを挿入することで、どのようにあなたのプラグインの中のWeb UI moduleを使うかを示す。
Web UI moduleもまた、link,tab,sections of linksを挿入することができる。
これをするために、非常に単純なConfluence pluginを作る。
あなたのプラグインは次のコンポーネントで構成されている。
- plugin UIのdisplayのためのresource。
- Confluence内のplugin moduleを可能にするplugin descriptor。
これらのコンポーネントはすべて、単独のJAR fileに含まれている。
各コンポーネントは下記の例でさらに詳しく紹介されている。
※より精巧なpluginは、さらにplugin logicをカプセルに入れるJavaクラスを含むだろう。この場合はしかしながら、我々はConfluenceにWeb UI Moduleを加えることにただ専念している。我々はボタンをactivateさせるために適所に既存のCnfluence actionを置くだろう。
Step1.Create the Plugin Project
あなたのプラグインを作成するために、適切なatlas-create-application-pluginを使いなさい。
- atlas-create-jira-plugin
- atlas-create-confluence-pluginなど
2つの値、group IDとartifact IDを入力するように促されるだろう。
このチュートリアルでは次の値を使った。
- Group ID:com.atlassian.tutorial
- Artifact ID:webitemz
Step2.Edit the atlassian-plugin.xml file(atlassian-plugin.xml fileの編集)
このステップでは、あなたはあなたのplugin descriptor(atlassian-plugin.xml)の中でplugin moduleを登録しななければならない。
言い換えれば、atlassian-plugin.xml fileの<atlassian-plugin>タグの間、ただし<plugin-info>タググループのあとに次のコードを加えなさい。
では、XMLコードについて見ていこう。
この例の中で、私たちはConfluenceのツールメニューにアイテムを加えている。それがクリックされた場合、Customise Space Logo pageを開くだろう。
これをするために、私たちは多くのことをした。
Choosing a menu location for the new item(新しいアイテムのためにメニューを選択)
まず最初の行を見てみよう。
| <web-item key="spacelogo" name="Space Logo" section="system.content.add/space" weight="40"> |
このラインは4つの属性を含んでいる。
①key="spacelogo"は新しいアイテムのための内部的な名前をセットしている。
②name="Space Logo"は、新しいアイテムの内部的な別名である。
③section="system.content.add/space"は、アイテムのためのメニューの場所を定義している。(この場合はAdd Menuの最初のパート)。
④weightは、presentationをコントロールするための変数で、初期値を残すことができる。
Choosing a graphic to appear in the menu
次に、下記の部分を見てみよう。
<icon height="16" width="16"> <link>/images/icons/logo_add_16.gif</link> </icon> |
メニュー内に出現するであろう小さなグラフィックアイコンを定義している。
Heightと&COLOR{width}はグラフィックのプレゼンテーションをコントロールするためにあり、linkはグラフィックのファイルの位置を指している。
Controlling when the web item is displayed
次はこのコード
| <condition class="com.atlassian.confluence.plugin.descriptor.web.conditions.NotPersonalSpaceCondition"/> |
これは、personal spaceではないspaceでweb itemを単に表示する。
'web condition'の使用によりこれを行う。
web conditionはweb itemの表示をコントロールする。
より多くの情報がConfluenceプラグイン開発のための参照ドキュメンテーションにおいて利用可能である。
Adding new resource files and internationalisation
私たちは、私たちのConfluenceメニューの項目で表示するべきテキストラベルを指定したいと思うだろう。
You could hard-code this information into your atlassian-plugin.xml file,しかしそれを新しいresourceのファイルに加えることで、我々は国際性、互換性を持つプラグインを作ることができる。
そうするために、単にあなたのプラグインのresourcesディレクトリの中に新しいファイルを加え(message.propertiesと呼ばれる)、その中にコードの1行を入れなさい。
(この場合はsrc/main/resources/message.properties)
その表記は
| webitemz.new.item=New Option! |
加えて、我々は我々のatlassian-plugin.xml file内のこのresource fileに言及する必要がある。
これをするために、<web item>コードのブロックのあとにつぎのコードを加えなさい。
| <resource type="i18n" name="i18n" location="message" /> |
これはあなたのmessage.properties fileにアクセスし、私たちのボタンラベルのためのテキストを検索するだろう。
この結果として、ここで指定したテキスト'NEw Option!'がAdd Menuないの新しいボタンのタイトルテキストとして出現する。
Step3.Build,Install and Run the Plugin
あなたのプラグインを構築しインストールするこれらのステップによって、あなたはコードをテストすることができる。
もしまだアプリケーションを開始していないのならば、ここで開始せよ。
- cmdを開き、プラグインのルートフォルダ(pom.xmlがある場所)に行く。
- atlas-run(IDEにデバッガを送り出したいかも知れない場合はatlas-debug)を走らせる。
この時点から前方へ、behind the scenes as you work プラグインを再インストールするためにfastDevを使用することができる。
もしあなたがsarvletを開発しているならば、あなたのプラグインの再設置を引き起こすことで
①servlet moduleに変更を加えなさい。 ②あなたのブラウザに行き、あなたのservletにナビゲートしなさい。 ③Do a hard refresh of the page: ・Shift+Reload in most browsers. Ctrl+Reload on Windows or in Internet Explorer. ・In Safari 5, you will need to hold down the Shift key while clicking the Reload icon in the Location bar.6br()④Go back to step 1 |
もしあなたがservletを開発していないのならば、reloadのtriggerとしてFastDev servletを使うことができる。
ブラウザに戻りなさい。アップロードしたプラグインがアプリケーションのなかにインストールされていて、あなたは変更部分のテストを行うことができる。
充分な指示は
SDK guide内にある。
atlas-runコマンドはプラグインプロジェクトをコンパイルし、Confluenceのローカルインスタンスを始めるだろう。
一度Confluenceをロードしたら、次のURLでlocal instanceにアクセスしなさい。
usernameとpasswordを両方'admin'と入力して、初期スペースの中にページを作りなさい。
'Add Page'をクリックしてページを1つ作る。 Documentation Themeを選択 |
'Add Menu'にアクセスしたときに、メニューないに加えた新しいweb itemを見ることができるだろう。
それをクリックすることで'Customise Space Logo'screenに着手するだろう。
今回の例は、Confluence pluginの中のメニュー項目を加えるように要求するものである。このプロジェクトを拡張することで、あならのボタンが活性化するべき新しい機能性を構築することができる。
今回の例ではJavaの記述は使用しなかったが、web itemと行く新しい機能性を作るためにJavaを書くことに移りたかったならば、
XWork-WebWork moduleでactionを作成することができる。
最終更新:2012年06月14日 16:08