1 回答
- 210
ActiveObjectsによるDBのテーブル名(Kengo Ohsaki 2016/09/09)コメントより
実際のところアドオンはJavaプログラムなのでJDBCで外部DBへ接続することはできます。
なので…、プラグインからDataSourceを使ってDB(Postgres)に接続してテーブルの読み書きする方法としては、以下方法でできると思います。JIRAとなっていますが、Confluenceでも一緒です。
https://answers.atlassian.com/questions/90026/answers/3593966
DataSource dataSource;
try
{
InitialContext initalContext = new InitialContext();
Context context = (Context) initalContext.lookup(
"java:comp/env"
);
dataSource = (DataSource) context.lookup(
"jdbc/myDataSource"
);
}
catch (NamingException ex)
{
//
...
}
dataSource 経由でDBに接続できたら、あとはJDBCの世界かと思いますので
JDBCのサンプルとかを参考にしていただければと思います。
参考になりましたら幸いです。
- 阿久根宏明
https://answers.atlassian.com/questions/90026/answers/3593966
上記のDataSourceを使用する方法ですが、target/container/tomcat6x/cargo-confluence-home/conf/server.xml を編集後、SDK(開発環境)でatlas-run を実行すると server.xmlが上書きされてしまいます。何か回避する方法はあるでしょうか?
- Kengo Ohsaki
https://answers.atlassian.com/questions/53817/how-do-you-persist-database-connections-in-server-xml-when-developing-using-the-sdk のベストアンサーの方法で自分のtomcat.zip を作ってしまう方法があります…上記内容で言及されているのは以下のベストアンサーの内容ですね。
あとは、atlas-run ではなく、atlas-debug で実行して、server.xml修正。atlas-debugで再度実行。別ターミナルで atlas-cli を実行しておき、アドオンを開発してアドオンの更新インストールが必要になったら、atlas-cliのターミナルで pi を実行すれば回避は出来たきがします…
- 阿久根宏明
なるほど!大変、参考になりました。どうも、ありがとうございました。
コメントを追加...
Confluence 5.7.3をDB(Postgres)で使用しています。
Postgresにテーブルを作成し、プラグインから接続することを想定しています。
プラグインからDataSourceを使ってDB(Postgres)に接続してテーブルの読み書きをするようなサンプルのコードはないでしょうか?