confluence
以前Confluenceのプラグインを作ってたのはもう13年も前だったのか…ということで、やり直し。 Atlassianのドキュメント Atlassianのドキュメントは相変わらずあっちゃこっちゃ飛んでいてなかなかにまとまりが無い。とりあえずこのあたりを参考にした。 - Con…
Confluenceの添付ファイルのプロパティありますよね。 でも、これだと1つだけしか入れられないので こんな感じにしたい!っていう要望を受けて簡単にJavaScriptで擬似的にコメント欄に無理やり入れ込んだ。 使い方 gist71f1c384c19ddda6f56250dbaa6c888c で…
よくある1サーバーでConfluenceを複数稼働させたい場合のリバースProxy設定ですね。 こんな感じ。 あるいは、iptablesで無駄にポートを開けたくない場合とか。 で、内輪向けのConfluenceなんで、Basic認証をかければゼロデイアタックとかも多少は防げるんじ…
何気に6系は初めてだったりする。 いつものようにMySQLでデータベースを作成 mysql> create database confluence_demo_20171205 default character set utf8 ; Query OK, 1 row affected (0.01 sec) で、confluence/WEB-INF/classes/confluence-init.propert…
結論から言うと、その別のアドオンを事前にインストールしてないとインストールに失敗しますよということ。 お互いのComponentを循環参照するようなアドオンは作れないってことですね。 こんな簡単なことに気づかずにはまりました。 IDE上ではpom.xmlに <dependency> <groupId>jp.</groupid></dependency>…
Atlassianのデータを保存する場所といえば、BandanaでありContentPropertyManagerである。 tohokuaiki.hateblo.jp が、JIRA4.4からConfluence4.3からは特に意識しなくてもActiveObjectsが使えるようになった。こちらの方が早くて軽くて大容量でそのプラグイ…
pom.xmlに依存性のあるjarを設置する ${basedir}はpom.xmlのある位置なので、以下の記述をdependenciesに設置する <dependency> <groupId>jp.co.example.confluence.plugins</groupId> <artifactId>example</artifactId> <version>1.00.01</version> <scope>system</scope> <type>jar</type> <systemPath>${basedir}\example-1.00.01.jar</systemPath> </dependency>
GETメソッドの場合は引数を@QueryParamで受け取ればなんてことなかったのだけど、POSTの場合はちょっと違った。 なお、通信はXMLじゃなくてすべてJSONを使った場合。 AtlassianのDocumentでいうとこの辺りが参考になる。使わなかったけど。 Developing a RES…
マクロパラメータとかの名称をi18nにしたいなーって思ったときに今までやったことが無いことに気が付いた。 元資料 Including Information in your Macro for the Macro Browser - Atlassian Developers の最後の方によると、自動的にi18nの定義を見てくれる…
SDK 6.2.2が出てた 年末に出てたらしい。 https://sdkrepo.atlassian.com/win-signed/ ということで、6.2.2にしてサンプルプロジェクトを作ってみた。気になるところはpom.xmlのここ <properties> <confluence.version>5.9.3</confluence.version> <confluence.data.version>5.7.4</confluence.data.version> <amps.version>6.2.1</amps.version> <plugin.testrunner.version>1.2…</plugin.testrunner.version></properties>
ということで。これ。 https://developer.atlassian.com/static/connect/docs/latest/guides/connect-cookbook.html all.jsを読み込む方法 Getting startでは、直接描いたall.jsのScriptタグ <script src="//localhost:1990/confluence/atlassian-connect/all.js" type="text/javascript"></script> を動的に読み込む方法。ただし、サーバサイドで何かするとかいう…
チュートリアルの Getting startedを行う。今回作るのは、サーバ版アドオンで言う所のサーブレットモジュールである。 なお、Windows8ですべてローカルで賄うものとする。 local開発用Confluenceを起動を以前のエントリ通り行っているものとする。 HTTPDを用…
なんか5.3.1の実機にインストールしてみたところエラーでる。 2015-08-27 17:16:01,408 ERROR [http-8191-6] [plugin.descriptor.web.ConfluenceWebInterfaceManager] getHtml Failed to render web panel: com.atlassian.plugin.web.descriptors.DefaultWeb…
Atlassian CloudのアドオンはJavaアプリではないので作り方が全く違う。ということで、Getting start. https://developer.atlassian.com/static/connect/docs/latest/guides/getting-started.html とりあえず、デモの起動まで Getting startでは、プレーンな…
メモ書き ファイルパスを作成するクラスを使った概観 com.atlassian.confluence.pages.persistence.dao.HierarchicalFileSystemAttachmentDataDao のcreateDirectoryHierarchy()を追ってみると、IdMultiPartHashGeneratorクラスのgenerateで行ってる。 で、…
Atlassianマーケットプレイスで有料出品するにはライセンス認証が必須になる。 Paid via Atlassianならライセンスのパッケージもあるし、集金周りもやってくれる*1。Confluenceの場合でやってみた。参考ドキュメント Tutorial: Adding licensing support to …
EventLitenerの使い方自体はこちらに過去書きましたが。。。 Confluenceのプラグイン開発で、Eventを使う方法(Annotation Based) - tohokuaikiのチラシの裏tohokuaiki.hateblo.jp プラグインの自分自身のアンインストール(あるいは無効化)のEventはキャッ…
Atlassian Cloud Atlassianはオンプレミス型のサービス展開をしていたのだけど、数年前からCloud型のサインアップだけで使えるシステムを提供している。ハード的な資源は共有しながらも、JIRAやConfluenceなどは1つずつのインスタンスとして動作しているので…
これがなんか微妙に動いた動かなかったりで、環境変数変えたりSDK変えたりしてるんです。SDKの過去バージョンはここから。 Atlassian Plugin SDK - Windows - Version history | Atlassian Marketplaceここには、最新と思われるSDKもある。 Index of /groups…
覚書 設定に従った日付表記 $dateFormatter.formatDateTime($sampleDate) プラグインの情報を取りたい時 XWorkのAction内だと Plugin plugin = this.pluginAccessor.getPlugin("プラグインキー"); plugin.getParameter("ここにatlassian-plugin.xml の plugi…
タスクを決められたタイミングで自動実行するプラグインを作ります。管理画面の「スケジュール ジョブ」から実行できたり無効化できたりするやつです。 以下のドキュメントを参考にしました。 Trigger Module - Atlassian Developers Job Module - Atlassian…
管理画面から行う自動バックアップとかのタスクのスケジューリング設定。 Scheduled Jobs - Confluence Latest - Atlassian Documentationcrontabによく似ているのですが、秒の指定ができたりとちょっと違う。 管理画面の編集でライブチェックができる 時刻…
なんか、bandanaManagerを通してConfluenceに登録してたObjectが何かのタイミングで消えてしまってた現象が発生。あれー?って思ってログ見たら 2015-06-18 16:59:45,738 WARN [http-1990-1] [confluence.setup.bandana.ConfluenceDaoBandanaPersister] getO…
XMLエクスポートやインポートの時に出てくるプログラスバーがあるあれです。ソースコード見てたらTransactionTemplateを使ってあれこれやるらしいのだけど、まんまコピペ―したらエラーが出た。エラーの内容は、この人と一緒。Creating a LongRunningTask - A…
プラグインでXMLRPCできるようにしたい ということで、pom.xmlにapache.xmlrpcを追加 <dependency> <groupId>org.apache.xmlrpc</groupId> <artifactId>xmlrpc-client</artifactId> <version>3.1.3</version> </dependency> あんまり久しぶりだったので、NetBeansから追加した際に<scope>jar</scope>が入っててそのままにしたらコンパイルは通るんだけど、実際に動作さ…
atlassian-plugin.xml 1か所だけになる。 あとは、Classのアノテーションを使っていくことで対応できる。サンプル。 <rest key="conf2dita-get-topictype" path="/conf2dita" version="1.0"> <description>get dita topictype assigned to this page</description> </rest> URLのマッピングについて ConfluenceのSDKの場合は、 [http://localhost:1990/confluence/res…
ConfluenceのAPIはいろいろあって、 XML-RPC JSON-RPC REST の順で整備されているみたい。JSON-RPCなんかは、ConfluenceのSDKではRESTブラウザが管理画面から使えるようになっている。 http://localhost:1990/confluence/plugins/servlet/restbrowser/ 今後…
4カ月ほど前にプリキュアハッカソン2という頭のおかしい殺伐としたサザンクロスWEB業界に癒しを与えるようなイベントに出席したのですが、その際に作ったプリキュアマクロをリリースします。Release first release · tohokuaiki/confluence-precuremacro · G…
別のプラグインで作成したpublicなcomponentを使うことができます。ただし、インストールしてあるjarを使うのではなくjarのコンパイル時に組み込むので呼び出し先のjarファイルが必要です。こんな感じです。 2つプラグインを作っていくので、atlas-runし直さ…
Confluenceでリンクを設定してその後で編集しようとして 数値参照になってしまうのは昔から困ったバグなのですが、なかなか直りません*1。こんな感じで困ってらっしゃる方もいらっしゃいます。 リンク編集時の文字化け - GakuNinmAPpublic - meatwiki 根本的…