tohokuaikiのチラシの裏

技術的ネタとか。

java

pom.xmlで依存性jarをローカルに置く方法

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>

Javaのプリミティブ型とObjectの違いをコードで

恥ずかしながら、Integerとintの比較とか分かってなかったので、実験しつつメモ。Ideone.com - PuegZx - Online Java Compiler & Debugging Tool /* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import jav…

ConfluenceのSystemプロパティ一覧

Confluence内のコードで Properties properties = System.getProperties(); for(Object s:properties.keySet()){ System.out.println(s.toString()); System.out.println(properties.get(s).toString()); } ってやった結果。 key value java.vendor Sun Micr…

ConfluenceのXWorkで、ダウンロードさせるActionを作る

Struts2の記事を参考に。ただ、参考にと言ってもXWorkにはない機能がStruts2にあるので要注意。 atlassian-plugin.xml resultのtypeにstreamを使用する。こんな感じ。 <result name="success" type="stream"> <param name="contentType">application/octet-stream</param> <param name="inputName">exportZipInputStream</param> <param name="bufferSize">1024</param> </result>

SaxonでDTDチェックする

本来はこういう使い方はしないんだろうけど、SaxonをDTDバリデータとして使ってみる。Saxonは8.7. // 対象となるXML String xml = "<xsl:stylesheet version=\"2.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"></xsl:stylesheet>"; try { StreamSource xslSource = …

SaxonでJavaのAPIを通してパラメータを渡す方法

Javaのコード内の変数をXSLスタイルシートに渡す方法を調べた。参考ページ パラメータを使った値の受渡し Saxon 9.2 / Java / XSLT: setting transformer parameters using setParameters() - Stack Overflow Java側の設定 TransformerのsetParameterメソッ…

Confluenceプラグインのコード内でpageManagerとかbandanaManagerとかを取得する方法

各種Manager系Objectが取れないと話にならないですよねーってことで。 Servletプラグイン編 servletプラグインの場合は、コンストラクタに書く。 書いておいて当たればSpringの方で適当にInjectionしてくれる。 public class HogehogeServlet extends HttpSe…

ConfluenceのPlugin作成で一時データを取っておきたいときの方法 - ContentPropertyManagerとBandanaManager

Confluenceでデータを取っておきたい方法について。2つある。ContentPropertyManagerとBandanaManager。*1 参考ページ Persistence in Confluence - Atlassian Developers Developing a Confluence Plugin « Luminis Software Development基本的にどちらも、…

dom4jでバリデーションを効かせたくないのでいろいろやった結果

いちいちhttpでDTD取ってこられると大変なので、ローカルに置いたものでValidationしてほしいわけで。ところがDOCTYPEの書き換えをしようとする際にもこのDTDバリデーションをしてしまってては意味がないわけでして。 dom4jのDocumentみると dom4j - Frequen…

JavaでZIPファイルの一覧を取得しようとしたら日本語ファイル名が文字化けしたので悩んだ件

原因 java.util.zip.ZipFileは、ZIPファイルのファイル名がUTF-8であるとして処理される。そこで、 Javaのマニアじゃない入門の「ZipFileクラスを使う」を使ったら日本語がダメになってしまった。*1 対策 java.util.zip.ZipFileではなく、org.apache.tools.z…

ConfluenceのプラグインでXWork/WebWork2の仕組みを使ったときのボタンによるAction先の制御

ConfluenceのバンドルしてるXWorkでは、サブミットボタンの名称によるAction先の変更はできないようだ。なんとなく、 <input type="submit" name="Top_Action" value="トップへ"/> とすると、Top_Actionに関連付けられたActionになるのかなと思いきや、そうではない。実際には、2方向しか移動ができないみたい。 進む …

ConfluenceのXWorkによるプラグイン作成における値チェック(Validator)の方法が少なくてガッカリした

基本的な使い方 atlassian-plugin.xml にて、インターセプターでActionに対してvalidatingStackにしておく。 <package name="jpages" extends="default" namespace="/pages"> <default-interceptor-ref name="validatingStack"/> </default-interceptor-ref></package>

Struts2について読む記事

CodeZine Struts 2入門(1)~基本形で理解する仕組みと構造~ (1/4):CodeZine Struts 2入門(1)~基本形で理解する仕組みと構造~ (2/4):CodeZine Struts 2入門(1)~基本形で理解する仕組みと構造~ (3/4):CodeZine Struts 2入門(1)~基本形…

Javaで文字コードを気にしつつファイルの読み込み・書き込み

文字コードを気にするときは、FileReader/FileWriterを使ってはいけないという話。 この場合、新しいものは文字化けする。 File file = new File("file_0"); BufferedReader b = new BufferedReader(new FileReader(file)); File file_w = new File("file_0_…

Javaメモ

なんせ初心者なもんで・・・・。 NetBeansでウォッチしてる値が「現在のコンテキスト内で既知の変数ではありません。」 documentをウォッチしたい場合、 Document document ; try { document = reader.read(file.getPath()); root = document.getRootElement…