atlassian plugin.xml

atlassian plugin

   <atlassian-plugin name="plugin name" key="plugin key" enabled="true" plugins-version="2">

属性 説明
key pluginモジュールを識別するString。この属性は必須で、plugin内でユニークである必要がある。keyがユニークであることを保証するために、reverse domain記法を使うべきである。デフォルトで設定される。
name これは、アプリケーション内のメニューの中でディスプレイに使用された、人から見て判読可能な名前。デフォルトで設定される
state これはデフォルトで可能になる。全pluginを不能にするためには、無効を指定する。
plugins-version OSGiプラグインを作成するために、plugins-version="2"を使用する。
i18n-name-key pluginモジュールの人間の判読可能な名前用のlocalizationキー。
class このpluginモジュールを実装するクラス。提供する必要のあるクラスはモジュール・タイプに依存する。例えば、Confluenceのテーマ、レイアウトおよび色彩設計モジュールは、Confluenceの中で既に提供されているクラスを使用することができる。したがって、Javaコードのないテーマ-pluginを書くことができる。マクロとリスナーのモジュールがなかったならば、自分のインプリメントするクラスを書き、pluginにそれを含んでいる必要がある。
system このpluginモジュールがシステムpluginモジュール(value='true')かどうか(value='false')を示す。

plugin-info Element

管理者、pluginパラメーターおよびOSGi束指示のためのアプリケーションによって表示されたplugin情報を含んでいる。
その親エレメントは<atlassian-plugin>。また、それはいくつかの入れ子の要素をサポートする。

   <atlassian-plugin ...>
       <plugin-info>
           <!-- ... -->
           <description>New macros for integration with Acme Corp. web services</description>
           <version>1.2</version>
           <application-version min="2.0" max="2.7" />
           <vendor name="Acme Systems Ltd" url="http://acme.example.com/" />]
           <param name="configure.url">/admin/plugins/example/configurePlugin.action</param>
           <bundle-instructions>
               <Export-Package>my.external.pkg</Export-Package>
               <Import-Package>com.mylibrary,*;resolution:=optional</Import-Package>
           </bundle-instructions>
       </plugin-info>
   </atlassian-plugin>

<description> 作成したプラグイン内で、人が読むことができる記述。
<version> 作成したプラグインのヴァージョン。アプリケーションのplugin manager内に記述される。
<java-version> 作成したプラグインで要求されるJavaのヴァージョン。
<vendor> プラグインのデベロッパについての情報。
<param> パラメータの値。(プラグインで必要であれば。)
<bundle-instructions> plugin dependencyを宣言して、OSGiがplugin XML(OSGi pluginsだけ)の中で指示を直接束ねることを明示することにより、exportパッケージ・リストを短くする。

Plugin module elements


   <web-item name="Radio Paradise" i18n-name-key="radio-paradise.name" key="radio-paradise" section="client-sites-link/my-section" weight="1000">
       <description key="radio-paradise.description">The Radio Paradise Plugin</description>
       <label key="radio-paradise.label"></label>
       <link linkId="radio-paradise-link"></link>
   </web-item>



resource

'resource'はpluginが作動するために必要になる場合があるnon-Javaファイル。
可能なresourceの例は下記の通り。
  • Confluence中のマクロかレイアウトpluginモジュール用のHTMLを生成するために使用するVelocity file。
  • theme layout plugin moduleによって要求されたCSS file。
  • layout plugin moduleの内部から参考文献として載せられたimage。
  • macro help file
  • localisation property file

   <resource name="searchreplace/" type="download" location="searchreplace/"/>

要素 属性 説明
<resource> 'resourse'を定義するブロック。
例:<resource type="velocity" name="template" location="com/example/plugin/template.vm"/>
<resource> name resourceのnameは、plugin moduleがどのように特定のresourceを見つけることができるか定義する。
'namePattern'がそうでない場合、指定されるだろう。
location parameterが単一のresourceではなくディレクトリーを指す場合、「/」を用いて名前を指定する。
例:<resource type="download" name="myimages/" location="com/example/plugin/myimages"/>
<resource> namePattern derectory resourceをロードする時に使用するpattern。
<resource> type 資源のtypeは、どのようにその資源を使用することができるかmoduleに伝える。
各アプリケーションによって、許可されるvalueは異なる。
モジュールはあるタイプか名前のresourceを捜すことができる。
例えば、layout pluginは、そのヘルプ・ファイルのtypeがvelocityでnameがhelpであることを必要とする。
<resource> location resourceのlocationは、jar fileでどこでresourceを見つけることができるかpluginに伝える。
(resourceはJavaのclasspath resource loaderによってロードされる。)
<property> key/value resourceは任意のkey/valueペアを含んでいる可能性がある。
例:<property key="content-type" value="text/css"/>
<param> name/value resourceは任意のname/valueペアを含んでいる可能性がある。

web-resource

   <web-resource name='TinyMCE Search Replace Web Resources' key='tinymce-searchreplace-resources'>
       <resource name="searchreplace.js" type="download" location="searchreplace/editor_plugin.js"/>
       <resource name="searchreplace-adapter.js" type="download" location="searchreplace/confluence-adapter.js"/>
       <context>wysiwyg-editor</context>
   </web-resource>

component

   <component key="pluginScheduler" class="com.atlassian.sal.core.scheduling.TimerPluginScheduler" public="true" >

       <interface>com.atlassian.sal.api.scheduling.PluginScheduler</interface>

   </component>

component import

   <component-import key="loc" interface="com.atlassian.sal.api.license.LicenseHandler" />

codeformatter

   <codeformatter name="ruby" key="ruby" class="com.example.confluence.formatters.RubyFormatter">
       <description>Code formatter for the Ruby programming language</description>
   </codeformatter>

タグ:

+ タグ編集
  • タグ:
最終更新:2012年07月03日 10:03