2004年12月 5日
Java.OBL | ozacc-blog library リリース
ozacc-blog libraryをリリースしました。ozacc-mail libraryと同様、DIコンテナでの使用を考慮した作りにしています。
備えている機能は次の通りです。
・RSSの取得
・RSSの生成
・RSS Auto-Discovery
・TrackBackの送信(同期/非同期)
・TrackBack受信HttpServletRequestからTrackBackインスタンスの生成
・TrackBack Auto-Discovery
・更新Ping(Weblogs.Comとかに送るやつ)の送信(同期/非同期)
依存ライブラリ
・Informa 0.6 (RSSの取得・生成時に必要)
・JDOM b10 <Informaが依存> (RSSの取得・生成時に必要)
・commons-httpclient 2.0.2 (必須)
・commons-logging 1.0.4 (必須)
・Apache XML-RPC 1.2-b1 (更新Pingの送信時に必要)
とりあえずバイナリ版だけリリース。ダウンロードはSourceForge.jpから。JavaDoc以外まだ何もドキュメントはありません。
ソース版はもう少ししてからリリースします。
いきなりバージョンは1.2.1ですが、これは仕事のプロジェクトのために8月末に1.0をリリースして、バージョンアップを重ねてきたからです。とは言っても、まだ安定しきってるわけではないと思います。
RSSの部分に関しては、以前に書いたエントリーの解となるライブラリにしたつもりです。今回はInformaを使用していますが、アダプターパターンを用いてInformaと連携しているので、アダプターさえ用意すればRSS4Jを利用することもできます、多分。
今後はRSSのXMLパーサを独自に実装していこうと考えています。
また仕事ではozacc-blog + Spring + QuartzでRSSクローラーも作っているので、この辺りも汎用化していきたいと思ってます。
▼使用方法 / RSSの取得
RSSParser parser = new RSSParserImpl();
parser.setXmlInputStreamParser(new XmlInputStreamParserImpl());Channel channel = parser.parseRSS("http://www3.asahi.com/rss/index.rdf");
String title = channel.getTitle(); // asahi.com
Item[] items = channel.getItems();
for(int i = 0; i < items.length; i++) {
Item item = items[i];
// Itemをいじる
}
▼使用方法 / RSSの生成
RSSGenerator generator = new RSSGeneratorImpl();Channel channel = generator.newChannel();
channel.setTitle("OZACC.blog");
channel.setLink(new URL("http://blog.ozacc.com/"));
Item item1 = channel.newItem();
item1.setTitle("ozacc-blog libraryリリース");
item1.setLink(new URL("http://blog.ozacc.com/archives/000932.html"));
channel.addItem(item1);File file = new File("/path/to/index.rdf");
generator.write(channel, file, RSSVersion.RSS_1_0);
▼使用方法 / TrackBackの送信
TrackBackPing ping = new TrackBackPing();
ping.setTitle("ozacc-blog libraryリリース");
ping.setExcerpt("ozacc-blog libraryをリリースしました。");
ping.setUrl("http://blog.ozacc.com/archives/000932.html");
ping.setBlogName("OZACC.blog");TrackBackClient client = new TrackBackClientImpl();
client.ping("トラックバック先URL", ping);
▼使用方法 / 更新Pingの送信(非同期)
String blogName = "OZACC.blog";
String blogUrl = "http://blog.ozacc.com/";
String host = "http://ping.blo.gs"; // Ping送信先UpdatePingCallbackHandler handler = new UpdatePingCallbackHandler() {
/*
* Ping送信成功時
*/
public void handleResult(String message, String pingUrl) {
// 何もしない
}
/*
* Ping送信失敗時
*/
public void handleError(UpdatePingException ex, String pingUrl) {
System.out.println("URL='" + pingUrl + "', Message='" + ex.getMessage() + "'");
}
};AsyncUpdatePingClient client = new AsyncXmlRpcUpdatePingClientImpl();
client.ping(host, blogName, blogUrl, handler);
はじめまして。
Informaの使用サンプルを探していてここにたどり着きました。blogライブラリの機能一覧を見ていて非常に魅力的に感じています。できればソースも見たいのですが、ソースの公開はいつごろでしょうか。よろしくお願いいたします。
ごめんなさい、今は公開を一時中断してます。
Informaはアップデートされないので、今後はRomeを使用していくつもりです。
http://wiki.java.net/bin/view/Javawsxml/Rome