2010-02-01から1ヶ月間の記事一覧

SNMPトラップ受信を実践に向けて(1)

先日作成したCometHashMap 一定時間経過で削除されるマップを利用して SNMPトラップ受信マップを作る。 import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; i…

シングルトンとGoogle guice

Google guice ではインジェクト生成の結果としてシングルトンになることを目的に @Singleton がある。 この方法ではなく! 古くからあるJavaシングルトン生成時に、Goole guice を使ってみたくなった。 private コンストラクタに、@Inject を付ける。 例とし…

CometTreeMap

HashMap → CometHashMap なら、当然、TreeMap に対するものも。。。 しかし、残念ながら、コンストラクタが2個あるので、CpmetHashMapのように、 Google guice インジェクトには対応はできない。 import java.util.Calendar; import java.util.Comparator; …

CometHashMapのつづき

先日書いたCometHashMap には、ひと工夫を埋め込みがある。 new 演算子による生成だけでなく Google guice でインジェクト生成できるようにしてある。 CometHashMapのコンストラクタを次のようにしている。 @Inject public CometHashMap(@CometLiveScorp lon…

CometHashMap という名前が良いか?

UDP受信のように、同じデータが短い時間間隔で送られてくる可能性がある 場合の受け側で、1回だけを検出して処理する方法を考える。 当初、タイマー付きMapみたいなことを考えたが、マップに格納した要素 1つ1つにタイマースレッドを作成するのは危…

SNMP4J でトラップ送信

SNMP4J トラップ受信を Google guice で書いたので、今度は送信するもの。 PDU に Variable データは1個だけで任意のトラップ番号を送るもの。 import org.apache.log4j.Logger; import org.snmp4j.CommunityTarget; import org.snmp4j.PDU; import org.snm…

SNMP4J でトラップ受信

SNMP4J トラップ受信をGoogle guice で動かせるようにしてみた。 import java.io.IOException; import org.apache.log4j.Logger; import org.snmp4j.CommandResponder; import org.snmp4j.MessageDispatcherImpl; import org.snmp4j.Snmp; import org.snmp4j…

TypeLiteral

Google guice の TypeLiteral を使う機会はあまりない。でも Named アノテーションでは うまくバインド定義を書けない時に便利で利用ルールも限定できる。 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.la…

Injectの注意

Google guice使用時、見落としそうで初歩的なミスを防ぐのに注意すべきこと。 コンストラクタ以外のメソッドにも @Inject を付けるとインジェクト時に、 そのメソッドも動作する。 @Inject public void foo(String s){ // コンストラクタ実行後に、このメソ…

Velocity & Google guice(3)

先日のVelocityTemplateModule を利用 Injector injector = Guice.createInjector( new VelocityTemplateModule("sample.vm") ); ================ @Inject private Template temp; // インジェクトされたら、VelocityContext 実行する以下のようなラッパを…

Velocity & Google guice(2)

Google guice で org.apache.velocity.Template 生成プロバイダと、VelocityEngine で初期化する 属性値のインジェクトポイントを作成できたら、次はいよいよ、 com.google.inject.AbstractModule で、Template のバインド定義と bindListener によるバイン…

Velocity & Google guice(1)

com.google.inject.spi.TypeListener を使うことにして、Velocity の利用方法を見直すことにした。 まずは、org.apache.velocity.Template の生成プロバイダであるが、 再利用を考えてpublic で 非 final にする、特別にアノテーションを用意する。 import j…

BlockingQueue とスレッド(4)

iBATIS 3 リリース間近で SqlMapClient での処理を書くのも引けてしまうが、 SqlSession でもこれを参考にしようかと思う。 import java.util.ArrayList; import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; /** * SqlMapClient バッチ…

BlockingQueue とスレッド(3)

これらをiBATIS2 のSqlMapClient を実行するようなキュースレッド、 キューデータは、SQLMap 記述のID 等、そして Google guice で立ち上げることを考えると。。。 public class SqlOperation implements Comparable<SqlOperation>{ public String sqlID; public SqlOpe ty</sqloperation>…