nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.journal.ThreadManagedJournalServiceは、スレッド単位でのジャーナル出力を実現するJournal実装サービスです。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.queue.Queue | 非同期に出力するためのキュー。 |
jp.ossc.nimbus.service.journal.editorfinder.EditorFinder | ジャーナルを編集するJournalEditorをみつける。 |
jp.ossc.nimbus.service.writer.Category | ジャーナルを出力する。 |
jp.ossc.nimbus.service.sequence.Sequence | 通番を取得する。 |
以下に簡単なサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- ジャーナルサービス
- ジャーナリングされたオブジェクトをスレッド毎に管理する。
- -->
- <service name="Journal"
- code="jp.ossc.nimbus.service.journal.ThreadManagedJournalService">
- <!-- EditorFinderサービスのサービス名を設定する -->
- <attribute name="EditorFinderName">#EditorFinder</attribute>
- <!-- WritableElementのキー名を設定する
- ジャーナルオブジェクトをJournalEditorによって編集した後、
- 編集後のオブジェクトをMapに詰めて、Categoryサービスへと渡す。
- その際の、Mapのキー名であり、最終的にはWritableElementのキーとなる。
- -->
- <attribute name="WritableElementKey">Journal</attribute>
- <!-- リクエスト通番を発番するSequenceサービスのサービス名を設定する -->
- <attribute name="SequenceServiceName">#Sequence</attribute>
- <!-- ジャーナルの出力先となるCategoryサービスのサービス名を設定する -->
- <attribute name="CategoryServiceNames">#Category</attribute>
- <depends>EditorFinder</depends>
- <depends>Sequence</depends>
- <depends>Category</depends>
- </service>
- <!-- ジャーナルを編集するJournalEditorを提供するEditorFinderサービス
- ジャーナルオブジェクトの型毎に、JournalEditorサービスをマッピングし
- 提供する。
- -->
- <service name="EditorFinder"
- code="jp.ossc.nimbus.service.journal.editorfinder.ObjectMappedEditorFinderService">
- <attribute name="EditorProperties">
- java.lang.Object=#ObjectJournalEditor
- java.util.Date=#DateJournalEditor
- jp.ossc.nimbus.service.journal.RequestJournal=#RequestJournalEditor
- </attribute>
- <depends>ObjectJournalEditor</depends>
- <depends>DateJournalEditor</depends>
- <depends>RequestJournalEditor</depends>
- </service>
- <!-- 任意のオブジェクトを文字列に変換するJournalEditorサービス
- 文字列への変換には、toString()メソッドを使用する
- -->
- <service name="ObjectJournalEditor"
- code="jp.ossc.nimbus.service.journal.editor.ObjectJournalEditorService"/>
- <!-- java.util.Dateオブジェクトを文字列に変換するJournalEditorサービス -->
- <service name="DateJournalEditor"
- code="jp.ossc.nimbus.service.journal.editor.DateJournalEditorService">
- <attribute name="Format">yyyy/MM/dd HH:mm:ss.SSS</attribute>
- </service>
- <!-- jp.ossc.nimbus.service.journal.RequestJournalオブジェクトを文字列に変換するJournalEditorサービス -->
- <service name="RequestJournalEditor"
- code="jp.ossc.nimbus.service.journal.editor.SimpleRequestJournalEditorService"/>
- <!-- 通番を発番するSequenceサービス -->
- <service name="Sequence"
- code="jp.ossc.nimbus.service.sequence.StringSequenceService">
- <attribute name="format">ID_;0,9;0,9;0,9;0,9;0,9;0,9;0,9</attribute>
- </service>
- <!-- ジャーナルを出力するCategoryサービス -->
- <service name="Category"
- code="jp.ossc.nimbus.service.writer.SimpleCategoryService">
- <attribute name="WritableRecordFactoryServiceName">#WritableRecordFactory</attribute>
- <attribute name="MessageWriterServiceName">#Writer</attribute>
- <depends>
- <!-- 出力情報をフォーマットするWritableRecordFactoryサービス -->
- <service name="WritableRecordFactory"
- code="jp.ossc.nimbus.service.writer.WritableRecordFactoryService">
- <attribute name="Format">%Journal%</attribute>
- </service>
- </depends>
- <depends>
- <!-- ファイルに出力するMessageWriterサービス -->
- <service name="Writer"
- code="jp.ossc.nimbus.service.writer.OneWriteFileMessageWriterService">
- <attribute name="Append">true</attribute>
- <attribute name="File">journal.log</attribute>
- </service>
- </depends>
- </service>
- </manager>
- </server>