2011年1月15日土曜日

[java][log] 使うか使わないかcommons-logging

自分には log4j-1.2.x がデファクトで、コード中でしっかりimportしています。
が、それはいかがなものかというコンセプトの commons-logging を使ってみました。
commons-loggingを使うと、どうもこういうことらしい。
  • Loggerの実装(例えばlog4j)の選択を後回しにして、でもアプリケーションの実装には着手できます。
  • プロパティファイルの変更(など)だけで、Loggerの実装を変更できます。
こんなシチュエーションに一度も遭遇したことがないけれど。
自分のPCを探してみると結構 commons-logging は使われていました。
(正確に言うと同梱していました。)
  • Oxygen XML Editor
  • DITA Open Toolkit
  • Ant
やっぱり一枚挟んでおくのが礼儀ですか。

◆Javaコード:App.java
-----------------------------
package com.hisagisoft.tomorrowscode.logger;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class App {
  private static final Log log = LogFactory.getLog(App.class);

  public static void main( String[] args ){
    log.info("this is log.");
    System.out.println( "Hello World!" );
  }
}
-----------------------------

◆プロパティファイル:commons-logging.properties
-----------------------------
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
-----------------------------

◆プロパティファイル:log4j.properties
-----------------------------
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c(%L) - %m%n

log4j.appender.null=org.apache.log4j.varia.NullAppender

log4j.rootLogger=debug, null
log4j.logger.com.hisagisoft=debug, stdout
-----------------------------

◆これらの配置



























◆実行(NetBeans上で、です)
------------------------------
run:
2011-01-15 20:41:30,062 [main] INFO  com.hisagisoft.tomorrowscode.logger.App(15) - this is log.
Hello World!
構築成功 (合計時間: 0 秒)
------------------------------


◆結論
手に入るときは使うようにします。

ではまた。

2010年12月23日木曜日

[java][subversion]年末に向けてひきこもり環境構築

年末は自宅でこそこそコードを書こう、書けたらいいなと思いまして
作業環境を整えています。


1. NetBeans IDE
-------------------
NetBeansの6.9.1の全部入りを入れました。古いリリースは削除。
JavaFXのプロジェクトが開けなくなりました。
もう開く必要ないだろ?ってことだよね。了解です。


2011/1/15の後日談です。
以下の作業の後、無事にJavaFXのプロジェクトを開き起動することができました。
  1. JavaFX 1.3.1をインストール
  2. Java SE Development Kit 6u23をインストール
  3. JDKの古いリリースをアンインストール
  4. NetBeans 6.9.1をアンインストール
  5. NetBeans 6.9.1を再度インストール
2. Subversionクライアント
---------------------------
TortoiseSVNの1.6と日本語パックを入れました。


3. Subversionリポジトリ
-------------------------
フリーでリポジトリをホスティングしているところを探しました。
http://www.assembla.com/
ギットもマーキュリアルもあって2時間ぐらいテンション上がったけど、
冷静さを取り戻してSubversionで。


誕生。このブログの姉妹的なリポジトリ。
http://www.assembla.com/spaces/tomorrowscode


ではまた。

2010年11月21日日曜日

[xml][dita]OTでJavaHelpをパブリッシュして開いてみる

DITA Open ToolkitのためにJavaHelpをインストールします。

OT公式ドキュメント"Installing and upgrading DITA Open Toolkit"
(installing_map.pdf)に、JavaHelpのインストール方法がありますが、
配布元の情報が古いので、以下のようにしてください。

前提ソフトウェア
---------------------
DITA Open Toolkit 1.5.2 M7

入手とインストール
---------------------
  1. JavaHelpプロジェクトのサイトに行く。URL: https://javahelp.dev.java.net/
  2. "Download the Latest JavaHelp System Build"のセクションまでスクロールする。
  3. "To download the latest JavaHelp system build, click here."の"here"をクリックする。
  4. 今日現在では以下のリンクになっている。
    http://download.java.net/javadesktop/javahelp/javahelp2_0_05.zip
  5. zipを解凍して C:\javahelp\jh2.0 に保存する。
環境変数の設定
---------------------
環境変数JHHOMEに C:\javahelp\jh2.0 を設定する。
これは startcmd.bat に書いてもいいです。
build_dita2javahelp.xmlは環境変数JHHOMEを見て動きますから必ずやってください。

---
<target name="compile.Java.Help"
    if="env.JHHOME"
    description="Compile Java Help output">
  <!-- delete 'JavaHelpSearch' directory before compiling. -->
  <condition property="compile.dir" value="${dita.map.output.dir}">
    <isset property="old.transform"/>
  </condition>
  <condition property="compile.dir" value="${output.dir}">
    <isset property="inner.transform"/>
  </condition>
  <delete dir="${compile.dir}${file.separator}JavaHelpSearch" />
  <java jar="${env.JHHOME}${file.separator}javahelp${file.separator}bin${file.separator}jhindexer.jar"
      fork="true"
      dir="${compile.dir}">
    <arg value="." />
  </java>
</target>
---

サンプルからJavaHelpをパブリッシュ
----------------------------------
{DITA-OT}\startcmd.bat をダブルクリック。
コマンドを叩く。
> ant -f build_demo.xml samples.javahelp -v

vオプションを付けて冗長メッセージにしたので、ビルドの最後の方で
compile.Java.Helpタスクが動いたっぽい形跡がわかるはずです。
(ちなみに私の環境ではJ:ドライブです。)
---
compile.Java.Help:
   [delete] Deleting directory J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch
   [delete] Deleting J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch\DOCS
   [delete] Deleting J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch\DOCS.TAB
   [delete] Deleting J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch\OFFSETS
   [delete] Deleting J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch\POSITIONS
   [delete] Deleting J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch\SCHEMA
   [delete] Deleting J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch\TMAP
   [delete] Deleting directory J:\DITA-OT1.5.2\out\samples\javahelp\JavaHelpSearch
     [java] Executing 'C:\Program Files\Java\jre6\bin\java.exe' with arguments:
     [java] '-jar'
     [java] 'J:\javahelp\jh2.0\javahelp\bin\jhindexer.jar'
     [java] '.'
     [java]
     [java] The ' characters around the executable and arguments are
     [java] not part of the command.
---

JavaHelpビューワーで見てみる
----------------------------
J:ドライブにすべてインストールされているものとして説明します。

1. J:\javahelp\jh2.0\demos\bin\hsviewer.jar をダブルクリック。
2. HelpSet URLにチューザーから J:\DITA-OT1.5.2\out\samples\javahelp\hierarchy_helpset.hs を選ぶ。


3. [Display]ボタンをクリック。
4. おなじみのGarage SampleがJavaHelpとなって出現するはず。




    [xml][dita]OT公式ドキュメントの最近

    DITA-OT 1.5.2 M7(2010-11-19 Released) は以下のドキュメントを含んでいます。

    • DITA Readme map
      DITA-readme.pdf
    • Ant Quick Start Guide for DITA Open Toolkit
      ant-quick-start-guide-for-ditaot.pdf
    • Developerworks articles about DITA
      DITA-articles.pdf
    • Installing and upgrading DITA Open Toolkit
      installing_map.pdf
    どこが変わったのかとても気になります。
    zipから取り出したpdfをどこかにUpしたいけど、ここはダメ。もどかしい。

      2010年11月3日水曜日

      [xml][dita]OT Plug-inのアイディア - DITA to ReleaseNote/ChangeLog Plug-in

      Release NoteとChange Logのためのspecializeと、

      それっぽい見栄えのpublish。

      でも、こういった一連て、MySQLにデータ入れて

      PHPでブラウザに返すのと何も変わらない。

      変わらないなら、やる意味がない。

      トピック指向で再利用。そこがハマらないと意味がない。

      [xml][dita]OT Plug-inのアイディア - Feed to DITA

      RSS/AtomをDITAに変換したらどうだろう。

      URLを入力。DITA source fileを出力。

      で、それを、それが、どうなったら誰がどんな状況で

      うれぴいのか。

      [xml][dita]OT Plug-inのアイディア - DITA to Wiki transform あるいはその逆も

      DITAからWiki文法(Wikiフォーマット)に変換するtranstypeを
      Plug-inとして提供するとか。

      問題は、Wikiにもいろいろあるってことだけど、自分が欲しいのは
      RedmineのWiki。

      逆も欲しくなってきた。

      Wiki to DITA transform Plug-in

      最近仕事ではWiki文法でなんでもかんでも書いているから。
      Wikiフォーマットの文書をSubversionにちまちまコミットして持っているけど、
      なんかチガウヨナ感が。。