Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-06-07 16:00:41 +0000
committerEike Stepper2012-06-07 16:00:41 +0000
commitfea9a8c7ef1711000c05627fdc2c199aea0aadc8 (patch)
treeb18fd74ad97bc968d774cf23c493f8765c207efb
parentfce1378c776953be9eea47338ecda5e2419948f0 (diff)
downloadcdo-fea9a8c7ef1711000c05627fdc2c199aea0aadc8.tar.gz
cdo-fea9a8c7ef1711000c05627fdc2c199aea0aadc8.tar.xz
cdo-fea9a8c7ef1711000c05627fdc2c199aea0aadc8.zip
Update Javadocs
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.db.doc.warnings10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.util.doc.warnings27
-rw-r--r--plugins/org.eclipse.net4j.db.db2/src/org/eclipse/net4j/db/db2/DB2Adapter.java343
-rw-r--r--plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java179
-rw-r--r--plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.java86
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/index-all.html19
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html5
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.RowHandler.html5
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html5
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.html9
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/DBUtil.RowHandler.html6
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/IDBAdapter.html12
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/DerbyAdapter.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/class-use/DerbyAdapter.html2
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-summary.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-use.html2
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/H2Adapter.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/package-summary.html2
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/package-summary.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/MYSQLAdapter.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/package-summary.html2
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-summary.html9
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-use.html9
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html4
-rw-r--r--plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/package-summary.html2
-rw-r--r--plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java3
-rw-r--r--plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java199
-rw-r--r--plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.java2
-rw-r--r--plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java323
-rw-r--r--plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java367
-rw-r--r--plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java2169
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-frame.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-noframe.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/index-all.html107
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/ConcurrentValue.html8
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/package-summary.html19
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/Container.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.Modifiable.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.html13
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.pngbin1275 -> 5477 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/Container.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/IContainer.html8
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.html13
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.pngbin5699 -> 8632 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html5
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.pngbin4436 -> 7087 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerCollection.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerQueue.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-summary.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-use.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-summary.html6
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-use.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Event.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/IEvent.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/INotifier.html8
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Notifier.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.DeferrableActivation.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/Lifecycle.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.pngbin19201 -> 20495 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.html11
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.pngbin9986 -> 15539 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/AbstractLogHandler.html5
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html6
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.pngbin1735 -> 2041 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.html14
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.pngbin1421 -> 4664 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/Logger.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.html9
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.pngbin656 -> 1937 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.html24
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.pngbin6182 -> 13776 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.Level.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.html6
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html6
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.pngbin1747 -> 2058 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.html52
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.pngbin1450 -> 5302 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/AbstractLogHandler.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogHandler.html11
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogger.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-summary.html23
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-use.html26
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.html32
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.pngbin1280 -> 3852 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.html12
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.pngbin4882 -> 6805 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.html13
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.pngbin3375 -> 6063 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.html8
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.pngbin1245 -> 1704 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.html31
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.pngbin1601 -> 1967 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html6
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.pngbin1666 -> 1994 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html203
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html13
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.pngbin1975 -> 3126 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html30
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.pngbin2002 -> 2320 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.html17
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.pngbin568 -> 1618 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/Tracer.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/ContextTracer.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandler.html5
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandlerEvent.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTracer.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.Listener.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.html14
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-frame.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-summary.html32
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-use.html27
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.html7
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.pngbin2149 -> 3160 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.html7
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.pngbin712 -> 1508 bytes
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/OptionsEvent.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/class-use/IOptionsEvent.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-summary.html4
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-use.html2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/javadoc/serialized-form.html14
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrentValue.java220
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/Container.java230
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IContainer.java104
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/SetContainer.java9
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.java46
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerSet.java52
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java155
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.java130
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java133
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/Logger.java228
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogFilter.java63
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogHandler.java52
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogger.java126
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.java164
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java118
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/ContextTracer.java189
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandler.java43
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.java60
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTracer.java99
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PerfTracer.java164
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PrintTraceHandler.java275
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.java296
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceServer.java846
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/TraceHandlerEvent.java154
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/Tracer.java258
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/options/IOptions.java57
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/options/IOptionsContainer.java44
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/options/OptionsEvent.java70
157 files changed, 4948 insertions, 4223 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.db.doc.warnings b/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.db.doc.warnings
deleted file mode 100644
index b03c28921e..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.db.doc.warnings
+++ /dev/null
@@ -1,10 +0,0 @@
-Class description missing: org.eclipse.net4j.db.DBUtil$DeserializeRowHandler.class(DBUtil.java:1075)
-Class description missing: org.eclipse.net4j.db.DBUtil$RowHandler.class(DBUtil.java:1056)
-Class description missing: org.eclipse.net4j.db.DBUtil$SerializeRowHandler.class(DBUtil.java:1065)
-Class description missing: org.eclipse.net4j.db.derby.DerbyAdapter.class(DerbyAdapter.java:21)
-Class description missing: org.eclipse.net4j.db.derby.EmbeddedDerbyAdapter.class(EmbeddedDerbyAdapter.java:24)
-Class description missing: org.eclipse.net4j.db.h2.H2Adapter.class(H2Adapter.java:28)
-Class description missing: org.eclipse.net4j.db.hsqldb.HSQLDBAdapter.class(HSQLDBAdapter.java:27)
-Class description missing: org.eclipse.net4j.db.hsqldb.HSQLDBDataSource.class(HSQLDBDataSource.java:20)
-Class description missing: org.eclipse.net4j.db.mysql.MYSQLAdapter.class(MYSQLAdapter.java:29)
-Class description missing: org.eclipse.net4j.db.postgresql.PostgreSQLAdapter.class(PostgreSQLAdapter.java:36)
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.util.doc.warnings b/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.util.doc.warnings
index 05df7ca9c2..1fff33cdab 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.util.doc.warnings
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.net4j.util.doc.warnings
@@ -67,9 +67,6 @@ Class description missing: org.eclipse.net4j.util.concurrent.TimerLifecycle$Daem
Class description missing: org.eclipse.net4j.util.concurrent.TimerLifecycle.class(TimerLifecycle.java:28)
Class description missing: org.eclipse.net4j.util.concurrent.Worker$WorkContext.class(Worker.java:240)
Class description missing: org.eclipse.net4j.util.concurrent.Worker.class(Worker.java:26)
-Class description missing: org.eclipse.net4j.util.container.IContainer$Modifiable.class(IContainer.java:41)
-Class description missing: org.eclipse.net4j.util.container.SetContainer.class(SetContainer.java:21)
-Class description missing: org.eclipse.net4j.util.container.delegate.IContainerBlockingQueue.class(IContainerBlockingQueue.java:18)
Class description missing: org.eclipse.net4j.util.fsm.FiniteStateMachine$StateChangedEvent.class(FiniteStateMachine.java:355)
Class description missing: org.eclipse.net4j.util.io.AsyncOutputStream.class(AsyncOutputStream.java:26)
Class description missing: org.eclipse.net4j.util.io.AsyncWriter.class(AsyncWriter.java:26)
@@ -123,15 +120,6 @@ Class description missing: org.eclipse.net4j.util.io.ZIPUtil$FileSystemZipHandle
Class description missing: org.eclipse.net4j.util.io.ZIPUtil$UnzipHandler.class(ZIPUtil.java:159)
Class description missing: org.eclipse.net4j.util.io.ZIPUtil$ZipEntryHandler.class(ZIPUtil.java:151)
Class description missing: org.eclipse.net4j.util.io.ZIPUtil.class(ZIPUtil.java:31)
-Class description missing: org.eclipse.net4j.util.om.log.AbstractLogHandler.class(AbstractLogHandler.java:19)
-Class description missing: org.eclipse.net4j.util.om.log.EclipseLoggingBridge.class(EclipseLoggingBridge.java:24)
-Class description missing: org.eclipse.net4j.util.om.log.FileLogHandler.class(FileLogHandler.java:24)
-Class description missing: org.eclipse.net4j.util.om.log.Logger.class(Logger.java:19)
-Class description missing: org.eclipse.net4j.util.om.log.OMLogHandler.class(OMLogHandler.java:18)
-Class description missing: org.eclipse.net4j.util.om.log.OMLogger$Level.class(OMLogger.java:57)
-Class description missing: org.eclipse.net4j.util.om.log.OMLogger.class(OMLogger.java:20)
-Class description missing: org.eclipse.net4j.util.om.log.OSGiLoggingBridge.class(OSGiLoggingBridge.java:23)
-Class description missing: org.eclipse.net4j.util.om.log.PrintLogHandler.class(PrintLogHandler.java:21)
Class description missing: org.eclipse.net4j.util.om.monitor.AbstractMonitor$AsyncTimerTask.class(AbstractMonitor.java:158)
Class description missing: org.eclipse.net4j.util.om.monitor.AbstractMonitor.class(AbstractMonitor.java:22)
Class description missing: org.eclipse.net4j.util.om.monitor.DelegatingMonitor.class(DelegatingMonitor.java:17)
@@ -153,21 +141,6 @@ Class description missing: org.eclipse.net4j.util.om.monitor.TimeoutMonitor.clas
Class description missing: org.eclipse.net4j.util.om.pref.OMPreference$Type.class(OMPreference.java:39)
Class description missing: org.eclipse.net4j.util.om.pref.OMPreference.class(OMPreference.java:18)
Class description missing: org.eclipse.net4j.util.om.pref.OMPreferences.class(OMPreferences.java:21)
-Class description missing: org.eclipse.net4j.util.om.trace.ContextTracer.class(ContextTracer.java:18)
-Class description missing: org.eclipse.net4j.util.om.trace.OMTraceHandler.class(OMTraceHandler.java:16)
-Class description missing: org.eclipse.net4j.util.om.trace.OMTraceHandlerEvent.class(OMTraceHandlerEvent.java:18)
-Class description missing: org.eclipse.net4j.util.om.trace.OMTracer.class(OMTracer.java:20)
-Class description missing: org.eclipse.net4j.util.om.trace.PerfTracer.class(PerfTracer.java:19)
-Class description missing: org.eclipse.net4j.util.om.trace.PrintTraceHandler.class(PrintTraceHandler.java:21)
-Class description missing: org.eclipse.net4j.util.om.trace.RemoteTraceHandler.class(RemoteTraceHandler.java:26)
-Class description missing: org.eclipse.net4j.util.om.trace.RemoteTraceServer$Event.class(RemoteTraceServer.java:206)
-Class description missing: org.eclipse.net4j.util.om.trace.RemoteTraceServer$Listener.class(RemoteTraceServer.java:348)
-Class description missing: org.eclipse.net4j.util.om.trace.RemoteTraceServer$PrintListener.class(RemoteTraceServer.java:353)
-Class description missing: org.eclipse.net4j.util.om.trace.RemoteTraceServer.class(RemoteTraceServer.java:31)
-Class description missing: org.eclipse.net4j.util.om.trace.TraceHandlerEvent.class(TraceHandlerEvent.java:19)
-Class description missing: org.eclipse.net4j.util.om.trace.Tracer.class(Tracer.java:22)
-Class description missing: org.eclipse.net4j.util.options.IOptionsContainer.class(IOptionsContainer.java:18)
-Class description missing: org.eclipse.net4j.util.options.OptionsEvent.class(OptionsEvent.java:20)
Class description missing: org.eclipse.net4j.util.ref.KeyedPhantomReference.class(KeyedPhantomReference.java:20)
Class description missing: org.eclipse.net4j.util.ref.KeyedReference.class(KeyedReference.java:19)
Class description missing: org.eclipse.net4j.util.ref.KeyedSoftReference.class(KeyedSoftReference.java:20)
diff --git a/plugins/org.eclipse.net4j.db.db2/src/org/eclipse/net4j/db/db2/DB2Adapter.java b/plugins/org.eclipse.net4j.db.db2/src/org/eclipse/net4j/db/db2/DB2Adapter.java
index 6349c1be5d..a6d74383ee 100644
--- a/plugins/org.eclipse.net4j.db.db2/src/org/eclipse/net4j/db/db2/DB2Adapter.java
+++ b/plugins/org.eclipse.net4j.db.db2/src/org/eclipse/net4j/db/db2/DB2Adapter.java
@@ -1,170 +1,173 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.db.db2;
-
-import org.eclipse.net4j.db.DBType;
-import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.spi.db.DBAdapter;
-
-/**
- * @author Eike Stepper
- * @since 4.0
- */
-public class DB2Adapter extends DBAdapter
-{
- public static final String NAME = "db2"; //$NON-NLS-1$
-
- public static final String VERSION = "3.59.81"; //$NON-NLS-1$
-
- private static final String[] RESERVED_WORDS = { "ACTIVATE", "ABS", "ADD", "AFTER", "ALIAS", "ALL", "ALLOCATE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
- "ALLOW", "ALTER", "AND", "ANY", "ARE", "ARRAY", "AS", "ASENSITIVE", "ASSOCIATE", "ASUTIME", "ASYMMETRIC", "AT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "ATOMIC", "ATTRIBUTES", "AUDIT", "AUTHORIZATION", "AUX", "AUXILIARY", "AVG", "BEFORE", "BEGIN", "BETWEEN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "BIGINT", "BINARY", "BLOB", "BOOLEAN", "BOTH", "BUFFERPOOL", "BY", "CACHE", "CALL", "CALLED", "CAPTURE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "CARDINALITY", "CASCADED", "CASE", "CAST", "CCSID", "CEIL", "CEILING", "CHAR", "CHAR_LENGTH", "CHARACTER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "CHARACTER_LENGTH", "CHECK", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLECT", "COLLECTION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "COLLID", "COLUMN", "COMMENT", "COMMIT", "CONCAT", "CONDITION", "CONNECT", "CONNECTION", "CONSTRAINT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "CONTAINS", "CONTINUE", "CONVERT", "CORR", "CORRESPONDING", "COUNT", "COUNT_BIG", "COVAR_POP", "COVAR_SAMP", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "CREATE", "CROSS", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
- "CURRENT_LC_CTYPE", "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_SERVER", "CURRENT_TIME", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- "CURRENT_TIMESTAMP", "CURRENT_TIMEZONE", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CYCLE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- "DATA", "DATABASE", "DATAPARTITIONNAME", "DATAPARTITIONNUM", "DATE", "DAY", "DAYS", "DB2GENERAL", "DB2GENRL", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "DB2SQL", "DBINFO", "DBPARTITIONNAME", "DBPARTITIONNUM", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "DEFAULTS", "DEFINITION", "DELETE", "DENSE_RANK", "DENSERANK", "DEREF", "DESCRIBE", "DESCRIPTOR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "DETERMINISTIC", "DIAGNOSTICS", "DISABLE", "DISALLOW", "DISCONNECT", "DISTINCT", "DO", "DOUBLE", "DROP", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "DSSIZE", "DYNAMIC", "EACH", "EDITPROC", "ELEMENT", "ELSE", "ELSEIF", "ENABLE", "ENCODING", "ENCRYPTION", "END", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "END-EXEC", "ENDING", "ERASE", "ESCAPE", "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDING", "EXCLUSIVE", "EXEC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "EXECUTE", "EXISTS", "EXIT", "EXP", "EXPLAIN", "EXTERNAL", "EXTRACT", "FALSE", "FENCED", "FETCH", "FIELDPROC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "FILE", "FILTER", "FINAL", "FLOAT", "FLOOR", "FOR", "FOREIGN", "FREE", "FROM", "FULL", "FUNCTION", "FUSION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRAPHIC", "GROUP", "GROUPING", "HANDLER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "HASH", "HASHED_VALUE", "HAVING", "HINT", "HOLD", "HOUR", "HOURS", "IDENTITY", "IF", "IMMEDIATE", "IN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "INCLUDING", "INCLUSIVE", "INCREMENT", "INDEX", "INDICATOR", "INHERIT", "INNER", "INOUT", "INSENSITIVE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "INSERT", "INT", "INTEGER", "INTEGRITY", "INTERSECT", "INTERSECTION", "INTERVAL", "INTO", "IS", "ISOBID", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "ISOLATION", "ITERATE", "JAR", "JAVA", "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE", "LATERAL", "LC_CTYPE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "LEADING", "LEAVE", "LEFT", "LIKE", "LINKTYPE", "LN", "LOCAL", "LOCALDATE", "LOCALE", "LOCALTIME", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "LOCALTIMESTAMP", "LOCATOR", "LOCATORS", "LOCK", "LOCKMAX", "LOCKSIZE", "LONG", "LOOP", "LOWER", "MAINTAINED", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "MATCH", "MATERIALIZED", "MAX", "MAXVALUE", "MEMBER", "MERGE", "METHOD", "MICROSECOND", "MICROSECONDS", "MIN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "MINUTE", "MINUTES", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODULE", "MONTH", "MONTHS", "MULTISET", "NATIONAL", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "NATURAL", "NCHAR", "NCLOB", "NEW", "NEW_TABLE", "NEXTVAL", "NO", "NOCACHE", "NOCYCLE", "NODENAME", "NODENUMBER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "NOMAXVALUE", "NOMINVALUE", "NONE", "NOORDER", "NORMALIZE", "NORMALIZED", "NOT", "NULL", "NULLIF", "NULLS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "NUMERIC", "NUMPARTS", "OBID", "OCTET_LENGTH", "OF", "OLD", "OLD_TABLE", "ON", "ONLY", "OPEN", "OPTIMIZATION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "OPTIMIZE", "OPTION", "OR", "ORDER", "OUT", "OUTER", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "PACKAGE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "PADDED", "PAGESIZE", "PARAMETER", "PART", "PARTITION", "PARTITIONED", "PARTITIONING", "PARTITIONS", "PASSWORD", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PIECESIZE", "PLAN", "POSITION", "POWER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "PRECISION", "PREPARE", "PREVVAL", "PRIMARY", "PRIQTY", "PRIVILEGES", "PROCEDURE", "PROGRAM", "PSID", "QUERY", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "QUERYNO", "RANGE", "RANK", "READ", "READS", "REAL", "RECOVERY", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "REFRESH", "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "REGR_SXY", "REGR_SYY", "RELEASE", "RENAME", "REPEAT", "RESET", "RESIGNAL", "RESTART", "RESTRICT", "RESULT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "RESULT_SET_LOCATOR", "RETURN", "RETURNS", "REVOKE", "RIGHT", "ROLLBACK", "ROLLUP", "ROUTINE", "ROW", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "ROW_NUMBER", "ROWNUMBER", "ROWS", "ROWSET", "RRN", "RUN", "SAVEPOINT", "SCHEMA", "SCOPE", "SCRATCHPAD", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "SCROLL", "SEARCH", "SECOND", "SECONDS", "SECQTY", "SECURITY", "SELECT", "SENSITIVE", "SEQUENCE", "SESSION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "SESSION_USER", "SET", "SIGNAL", "SIMILAR", "SIMPLE", "SMALLINT", "SOME", "SOURCE", "SPECIFIC", "SPECIFICTYPE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "SQL", "SQLEXCEPTION", "SQLID", "SQLSTATE", "SQLWARNING", "SQRT", "STACKED", "STANDARD", "START", "STARTING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "STATEMENT", "STATIC", "STAY", "STDDEV_POP", "STDDEV_SAMP", "STOGROUP", "STORES", "STYLE", "SUBMULTISET", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "SUBSTRING", "SUM", "SUMMARY", "SYMMETRIC", "SYNONYM", "SYSFUN", "SYSIBM", "SYSPROC", "SYSTEM", "SYSTEM_USER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "TABLE", "TABLESAMPLE", "TABLESPACE", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TO", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "TRAILING", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIM", "TRUE", "TYPE", "UESCAPE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "UNDO", "UNION", "UNIQUE", "UNKNOWN", "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "VALIDPROC", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIANT", "VARYING", "VCAT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "VERSION", "VIEW", "VOLATILE", "VOLUMES", "WHEN", "WHENEVER", "WHERE", "WHILE", "WIDTH_BUCKET", "WINDOW", "WITH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "WITHIN", "WITHOUT", "WLM", "WRITE", "XMLELEMENT", "YEAR", "YEARS" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-
- public DB2Adapter()
- {
- super(NAME, VERSION);
- }
-
- public com.ibm.db2.jcc.DB2Driver getJDBCDriver()
- {
- return new com.ibm.db2.jcc.DB2Driver();
- }
-
- public com.ibm.db2.jcc.DB2SimpleDataSource createJDBCDataSource()
- {
- return new com.ibm.db2.jcc.DB2SimpleDataSource();
- }
-
- @Override
- public int getMaxTableNameLength()
- {
- return 128;
- }
-
- @Override
- public int getMaxFieldNameLength()
- {
- return 128; // 30 for SQLDA, see
- // http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0001029.html
- }
-
- @Override
- public DBType adaptType(DBType type)
- {
- switch (type)
- {
- // Required in order to not add to the total length of a record.
- // See http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp
- //
- // The actual data for BLOB, CLOB, LONG VARCHAR, DBCLOB, and LONG VARGRAPHIC columns
- // is not included in this count. However, information about the location of that data
- // does take up some space in the row."
- case VARCHAR:
- return DBType.LONGVARCHAR;
-
- case BOOLEAN:
- return DBType.SMALLINT;
- }
-
- return super.adaptType(type);
- }
-
- @Override
- protected String getTypeName(IDBField field)
- {
- DBType type = field.getType();
- switch (type)
- {
- case BINARY:
- case VARBINARY:
- case LONGVARBINARY:
- return "BLOB"; //$NON-NLS-1$
-
- case TINYINT:
- return "SMALLINT"; //$NON-NLS-1$
-
- case FLOAT:
- return "REAL"; //$NON-NLS-1$
-
- case BOOLEAN:
- case BIT:
- return "SMALLINT"; //$NON-NLS-1$
- }
-
- return super.getTypeName(field);
- }
-
- @Override
- public boolean isValidFirstChar(char ch)
- {
- switch (ch)
- {
- case '_':
- return false;
-
- default:
- return super.isValidFirstChar(ch);
- }
- }
-
- public String[] getReservedWords()
- {
- return RESERVED_WORDS;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.db.db2;
+
+import org.eclipse.net4j.db.DBType;
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.ddl.IDBField;
+import org.eclipse.net4j.spi.db.DBAdapter;
+
+/**
+ * A {@link IDBAdapter DB adapter} for <a href="http://www-01.ibm.com/software/data/db2">DB2</a> databases.
+ *
+ * @author Eike Stepper
+ * @since 4.0
+ */
+public class DB2Adapter extends DBAdapter
+{
+ public static final String NAME = "db2"; //$NON-NLS-1$
+
+ public static final String VERSION = "3.59.81"; //$NON-NLS-1$
+
+ private static final String[] RESERVED_WORDS = { "ACTIVATE", "ABS", "ADD", "AFTER", "ALIAS", "ALL", "ALLOCATE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+ "ALLOW", "ALTER", "AND", "ANY", "ARE", "ARRAY", "AS", "ASENSITIVE", "ASSOCIATE", "ASUTIME", "ASYMMETRIC", "AT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "ATOMIC", "ATTRIBUTES", "AUDIT", "AUTHORIZATION", "AUX", "AUXILIARY", "AVG", "BEFORE", "BEGIN", "BETWEEN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "BIGINT", "BINARY", "BLOB", "BOOLEAN", "BOTH", "BUFFERPOOL", "BY", "CACHE", "CALL", "CALLED", "CAPTURE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "CARDINALITY", "CASCADED", "CASE", "CAST", "CCSID", "CEIL", "CEILING", "CHAR", "CHAR_LENGTH", "CHARACTER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "CHARACTER_LENGTH", "CHECK", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLECT", "COLLECTION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "COLLID", "COLUMN", "COMMENT", "COMMIT", "CONCAT", "CONDITION", "CONNECT", "CONNECTION", "CONSTRAINT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "CONTAINS", "CONTINUE", "CONVERT", "CORR", "CORRESPONDING", "COUNT", "COUNT_BIG", "COVAR_POP", "COVAR_SAMP", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "CREATE", "CROSS", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+ "CURRENT_LC_CTYPE", "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_SERVER", "CURRENT_TIME", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ "CURRENT_TIMESTAMP", "CURRENT_TIMEZONE", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CYCLE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ "DATA", "DATABASE", "DATAPARTITIONNAME", "DATAPARTITIONNUM", "DATE", "DAY", "DAYS", "DB2GENERAL", "DB2GENRL", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "DB2SQL", "DBINFO", "DBPARTITIONNAME", "DBPARTITIONNUM", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "DEFAULTS", "DEFINITION", "DELETE", "DENSE_RANK", "DENSERANK", "DEREF", "DESCRIBE", "DESCRIPTOR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "DETERMINISTIC", "DIAGNOSTICS", "DISABLE", "DISALLOW", "DISCONNECT", "DISTINCT", "DO", "DOUBLE", "DROP", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "DSSIZE", "DYNAMIC", "EACH", "EDITPROC", "ELEMENT", "ELSE", "ELSEIF", "ENABLE", "ENCODING", "ENCRYPTION", "END", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "END-EXEC", "ENDING", "ERASE", "ESCAPE", "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDING", "EXCLUSIVE", "EXEC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "EXECUTE", "EXISTS", "EXIT", "EXP", "EXPLAIN", "EXTERNAL", "EXTRACT", "FALSE", "FENCED", "FETCH", "FIELDPROC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "FILE", "FILTER", "FINAL", "FLOAT", "FLOOR", "FOR", "FOREIGN", "FREE", "FROM", "FULL", "FUNCTION", "FUSION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRAPHIC", "GROUP", "GROUPING", "HANDLER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "HASH", "HASHED_VALUE", "HAVING", "HINT", "HOLD", "HOUR", "HOURS", "IDENTITY", "IF", "IMMEDIATE", "IN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "INCLUDING", "INCLUSIVE", "INCREMENT", "INDEX", "INDICATOR", "INHERIT", "INNER", "INOUT", "INSENSITIVE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "INSERT", "INT", "INTEGER", "INTEGRITY", "INTERSECT", "INTERSECTION", "INTERVAL", "INTO", "IS", "ISOBID", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "ISOLATION", "ITERATE", "JAR", "JAVA", "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE", "LATERAL", "LC_CTYPE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "LEADING", "LEAVE", "LEFT", "LIKE", "LINKTYPE", "LN", "LOCAL", "LOCALDATE", "LOCALE", "LOCALTIME", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "LOCALTIMESTAMP", "LOCATOR", "LOCATORS", "LOCK", "LOCKMAX", "LOCKSIZE", "LONG", "LOOP", "LOWER", "MAINTAINED", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "MATCH", "MATERIALIZED", "MAX", "MAXVALUE", "MEMBER", "MERGE", "METHOD", "MICROSECOND", "MICROSECONDS", "MIN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "MINUTE", "MINUTES", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODULE", "MONTH", "MONTHS", "MULTISET", "NATIONAL", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "NATURAL", "NCHAR", "NCLOB", "NEW", "NEW_TABLE", "NEXTVAL", "NO", "NOCACHE", "NOCYCLE", "NODENAME", "NODENUMBER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "NOMAXVALUE", "NOMINVALUE", "NONE", "NOORDER", "NORMALIZE", "NORMALIZED", "NOT", "NULL", "NULLIF", "NULLS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "NUMERIC", "NUMPARTS", "OBID", "OCTET_LENGTH", "OF", "OLD", "OLD_TABLE", "ON", "ONLY", "OPEN", "OPTIMIZATION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "OPTIMIZE", "OPTION", "OR", "ORDER", "OUT", "OUTER", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "PACKAGE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "PADDED", "PAGESIZE", "PARAMETER", "PART", "PARTITION", "PARTITIONED", "PARTITIONING", "PARTITIONS", "PASSWORD", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PIECESIZE", "PLAN", "POSITION", "POWER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "PRECISION", "PREPARE", "PREVVAL", "PRIMARY", "PRIQTY", "PRIVILEGES", "PROCEDURE", "PROGRAM", "PSID", "QUERY", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "QUERYNO", "RANGE", "RANK", "READ", "READS", "REAL", "RECOVERY", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "REFRESH", "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "REGR_SXY", "REGR_SYY", "RELEASE", "RENAME", "REPEAT", "RESET", "RESIGNAL", "RESTART", "RESTRICT", "RESULT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "RESULT_SET_LOCATOR", "RETURN", "RETURNS", "REVOKE", "RIGHT", "ROLLBACK", "ROLLUP", "ROUTINE", "ROW", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "ROW_NUMBER", "ROWNUMBER", "ROWS", "ROWSET", "RRN", "RUN", "SAVEPOINT", "SCHEMA", "SCOPE", "SCRATCHPAD", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "SCROLL", "SEARCH", "SECOND", "SECONDS", "SECQTY", "SECURITY", "SELECT", "SENSITIVE", "SEQUENCE", "SESSION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "SESSION_USER", "SET", "SIGNAL", "SIMILAR", "SIMPLE", "SMALLINT", "SOME", "SOURCE", "SPECIFIC", "SPECIFICTYPE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "SQL", "SQLEXCEPTION", "SQLID", "SQLSTATE", "SQLWARNING", "SQRT", "STACKED", "STANDARD", "START", "STARTING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "STATEMENT", "STATIC", "STAY", "STDDEV_POP", "STDDEV_SAMP", "STOGROUP", "STORES", "STYLE", "SUBMULTISET", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "SUBSTRING", "SUM", "SUMMARY", "SYMMETRIC", "SYNONYM", "SYSFUN", "SYSIBM", "SYSPROC", "SYSTEM", "SYSTEM_USER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "TABLE", "TABLESAMPLE", "TABLESPACE", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TO", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "TRAILING", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIM", "TRUE", "TYPE", "UESCAPE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "UNDO", "UNION", "UNIQUE", "UNKNOWN", "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "VALIDPROC", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIANT", "VARYING", "VCAT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "VERSION", "VIEW", "VOLATILE", "VOLUMES", "WHEN", "WHENEVER", "WHERE", "WHILE", "WIDTH_BUCKET", "WINDOW", "WITH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "WITHIN", "WITHOUT", "WLM", "WRITE", "XMLELEMENT", "YEAR", "YEARS" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+
+ public DB2Adapter()
+ {
+ super(NAME, VERSION);
+ }
+
+ public com.ibm.db2.jcc.DB2Driver getJDBCDriver()
+ {
+ return new com.ibm.db2.jcc.DB2Driver();
+ }
+
+ public com.ibm.db2.jcc.DB2SimpleDataSource createJDBCDataSource()
+ {
+ return new com.ibm.db2.jcc.DB2SimpleDataSource();
+ }
+
+ @Override
+ public int getMaxTableNameLength()
+ {
+ return 128;
+ }
+
+ @Override
+ public int getMaxFieldNameLength()
+ {
+ return 128; // 30 for SQLDA, see
+ // http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0001029.html
+ }
+
+ @Override
+ public DBType adaptType(DBType type)
+ {
+ switch (type)
+ {
+ // Required in order to not add to the total length of a record.
+ // See http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp
+ //
+ // The actual data for BLOB, CLOB, LONG VARCHAR, DBCLOB, and LONG VARGRAPHIC columns
+ // is not included in this count. However, information about the location of that data
+ // does take up some space in the row."
+ case VARCHAR:
+ return DBType.LONGVARCHAR;
+
+ case BOOLEAN:
+ return DBType.SMALLINT;
+ }
+
+ return super.adaptType(type);
+ }
+
+ @Override
+ protected String getTypeName(IDBField field)
+ {
+ DBType type = field.getType();
+ switch (type)
+ {
+ case BINARY:
+ case VARBINARY:
+ case LONGVARBINARY:
+ return "BLOB"; //$NON-NLS-1$
+
+ case TINYINT:
+ return "SMALLINT"; //$NON-NLS-1$
+
+ case FLOAT:
+ return "REAL"; //$NON-NLS-1$
+
+ case BOOLEAN:
+ case BIT:
+ return "SMALLINT"; //$NON-NLS-1$
+ }
+
+ return super.getTypeName(field);
+ }
+
+ @Override
+ public boolean isValidFirstChar(char ch)
+ {
+ switch (ch)
+ {
+ case '_':
+ return false;
+
+ default:
+ return super.isValidFirstChar(ch);
+ }
+ }
+
+ public String[] getReservedWords()
+ {
+ return RESERVED_WORDS;
+ }
+}
diff --git a/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java b/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java
index 1cf25938bd..f490833a94 100644
--- a/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java
+++ b/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java
@@ -1,88 +1,91 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.db.derby;
-
-import org.eclipse.net4j.db.DBType;
-import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.spi.db.DBAdapter;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- */
-public abstract class DerbyAdapter extends DBAdapter
-{
- public static final String VERSION = "10.3.2.1"; //$NON-NLS-1$
-
- private static final String[] RESERVED_WORDS = { "ADD", "ALL", "ALLOCATE", "ALTER", "AND", "ANY", "ARE", "AS", "ASC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "ASSERTION", "AT", "AUTHORIZATION", "AVG", "BEGIN", "BETWEEN", "BIGINT", "BIT", "BOOLEAN", "BOTH", "BY", "CALL", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "CASCADE", "CASCADED", "CASE", "CAST", "CHAR", "CHARACTER", "CHECK", "CLOSE", "COALESCE", "COLLATE", "COLLATION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "COLUMN", "COMMIT", "CONNECT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTINUE", "CONVERT", "CORRESPONDING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "CREATE", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "DEALLOCATE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFERRABLE", "DEFERRED", "DELETE", "DESC", "DESCRIBE", "DIAGNOSTICS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "DISCONNECT", "DISTINCT", "DOUBLE", "DROP", "ELSE", "END", "END-EXEC", "ESCAPE", "EXCEPT", "EXCEPTION", "EXEC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "EXECUTE", "EXISTS", "EXPLAIN", "EXTERNAL", "FALSE", "FETCH", "FIRST", "FLOAT", "FOR", "FOREIGN", "FOUND", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "FROM", "FULL", "FUNCTION", "GET", "GETCURRENTCONNECTION", "GLOBAL", "GO", "GOTO", "GRANT", "GROUP", "HAVING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "HOUR", "IDENTITY", "IMMEDIATE", "IN", "INDICATOR", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "INSERT", "INT", "INTEGER", "INTERSECT", "INTO", "IS", "ISOLATION", "JOIN", "KEY", "LAST", "LEFT", "LIKE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "LOWER", "LTRIM", "MATCH", "MAX", "MIN", "MINUTE", "NATIONAL", "NATURAL", "NCHAR", "NVARCHAR", "NEXT", "NO", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "NOT", "NULL", "NULLIF", "NUMERIC", "OF", "ON", "ONLY", "OPEN", "OPTION", "OR", "ORDER", "OUTER", "OUTPUT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$ //$NON-NLS-13$
- "OVERLAPS", "PAD", "PARTIAL", "PREPARE", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURE", "PUBLIC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "READ", "REAL", "REFERENCES", "RELATIVE", "RESTRICT", "REVOKE", "RIGHT", "ROLLBACK", "ROWS", "RTRIM", "SCHEMA", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "SCROLL", "SECOND", "SELECT", "SESSION_USER", "SET", "SMALLINT", "SOME", "SPACE", "SQL", "SQLCODE", "SQLERROR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "SQLSTATE", "SUBSTR", "SUBSTRING", "SUM", "SYSTEM_USER", "TABLE", "TEMPORARY", "TIMEZONE_HOUR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "TIMEZONE_MINUTE", "TO", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TRIM", "TRUE", "UNION", "UNIQUE", "UNKNOWN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "UPDATE", "UPPER", "USER", "USING", "VALUES", "VARCHAR", "VARYING", "VIEW", "WHENEVER", "WHERE", "WITH", "WORK", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "WRITE", "XML", "XMLEXISTS", "XMLPARSE", "XMLQUERY", "XMLSERIALIZE", "YEAR" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-
- public DerbyAdapter(String name)
- {
- super(name, VERSION);
- }
-
- @Override
- protected String getTypeName(IDBField field)
- {
- DBType type = field.getType();
- switch (type)
- {
- case TINYINT:
- case BOOLEAN:
- case BIT:
- return "SMALLINT"; //$NON-NLS-1$
-
- case LONGVARBINARY:
- case VARBINARY:
- case BINARY:
- return "BLOB"; //$NON-NLS-1$
- }
-
- return super.getTypeName(field);
- }
-
- public String[] getReservedWords()
- {
- return RESERVED_WORDS;
- }
-
- @Override
- public boolean isValidFirstChar(char ch)
- {
- switch (ch)
- {
- case '_':
- return false;
-
- default:
- return super.isValidFirstChar(ch);
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.db.derby;
+
+import org.eclipse.net4j.db.DBType;
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.ddl.IDBField;
+import org.eclipse.net4j.spi.db.DBAdapter;
+
+/**
+ * A {@link IDBAdapter DB adapter} for <a href="http://db.apache.org/derby">Derby</a> databases.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public abstract class DerbyAdapter extends DBAdapter
+{
+ public static final String VERSION = "10.3.2.1"; //$NON-NLS-1$
+
+ private static final String[] RESERVED_WORDS = { "ADD", "ALL", "ALLOCATE", "ALTER", "AND", "ANY", "ARE", "AS", "ASC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "ASSERTION", "AT", "AUTHORIZATION", "AVG", "BEGIN", "BETWEEN", "BIGINT", "BIT", "BOOLEAN", "BOTH", "BY", "CALL", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "CASCADE", "CASCADED", "CASE", "CAST", "CHAR", "CHARACTER", "CHECK", "CLOSE", "COALESCE", "COLLATE", "COLLATION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "COLUMN", "COMMIT", "CONNECT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTINUE", "CONVERT", "CORRESPONDING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "CREATE", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "DEALLOCATE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFERRABLE", "DEFERRED", "DELETE", "DESC", "DESCRIBE", "DIAGNOSTICS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "DISCONNECT", "DISTINCT", "DOUBLE", "DROP", "ELSE", "END", "END-EXEC", "ESCAPE", "EXCEPT", "EXCEPTION", "EXEC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "EXECUTE", "EXISTS", "EXPLAIN", "EXTERNAL", "FALSE", "FETCH", "FIRST", "FLOAT", "FOR", "FOREIGN", "FOUND", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "FROM", "FULL", "FUNCTION", "GET", "GETCURRENTCONNECTION", "GLOBAL", "GO", "GOTO", "GRANT", "GROUP", "HAVING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "HOUR", "IDENTITY", "IMMEDIATE", "IN", "INDICATOR", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "INSERT", "INT", "INTEGER", "INTERSECT", "INTO", "IS", "ISOLATION", "JOIN", "KEY", "LAST", "LEFT", "LIKE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "LOWER", "LTRIM", "MATCH", "MAX", "MIN", "MINUTE", "NATIONAL", "NATURAL", "NCHAR", "NVARCHAR", "NEXT", "NO", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "NOT", "NULL", "NULLIF", "NUMERIC", "OF", "ON", "ONLY", "OPEN", "OPTION", "OR", "ORDER", "OUTER", "OUTPUT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$ //$NON-NLS-13$
+ "OVERLAPS", "PAD", "PARTIAL", "PREPARE", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURE", "PUBLIC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "READ", "REAL", "REFERENCES", "RELATIVE", "RESTRICT", "REVOKE", "RIGHT", "ROLLBACK", "ROWS", "RTRIM", "SCHEMA", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "SCROLL", "SECOND", "SELECT", "SESSION_USER", "SET", "SMALLINT", "SOME", "SPACE", "SQL", "SQLCODE", "SQLERROR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "SQLSTATE", "SUBSTR", "SUBSTRING", "SUM", "SYSTEM_USER", "TABLE", "TEMPORARY", "TIMEZONE_HOUR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "TIMEZONE_MINUTE", "TO", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TRIM", "TRUE", "UNION", "UNIQUE", "UNKNOWN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "UPDATE", "UPPER", "USER", "USING", "VALUES", "VARCHAR", "VARYING", "VIEW", "WHENEVER", "WHERE", "WITH", "WORK", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "WRITE", "XML", "XMLEXISTS", "XMLPARSE", "XMLQUERY", "XMLSERIALIZE", "YEAR" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+
+ public DerbyAdapter(String name)
+ {
+ super(name, VERSION);
+ }
+
+ @Override
+ protected String getTypeName(IDBField field)
+ {
+ DBType type = field.getType();
+ switch (type)
+ {
+ case TINYINT:
+ case BOOLEAN:
+ case BIT:
+ return "SMALLINT"; //$NON-NLS-1$
+
+ case LONGVARBINARY:
+ case VARBINARY:
+ case BINARY:
+ return "BLOB"; //$NON-NLS-1$
+ }
+
+ return super.getTypeName(field);
+ }
+
+ public String[] getReservedWords()
+ {
+ return RESERVED_WORDS;
+ }
+
+ @Override
+ public boolean isValidFirstChar(char ch)
+ {
+ switch (ch)
+ {
+ case '_':
+ return false;
+
+ default:
+ return super.isValidFirstChar(ch);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.java b/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.java
index cf9071f280..0adb73aaf2 100644
--- a/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.java
+++ b/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.java
@@ -1,42 +1,44 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.db.derby;
-
-import org.apache.derby.jdbc.EmbeddedDataSource;
-import org.apache.derby.jdbc.EmbeddedDriver;
-
-import javax.sql.DataSource;
-
-import java.sql.Driver;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- */
-public class EmbeddedDerbyAdapter extends DerbyAdapter
-{
- public static final String NAME = "derby-embedded"; //$NON-NLS-1$
-
- public EmbeddedDerbyAdapter()
- {
- super(NAME);
- }
-
- public Driver getJDBCDriver()
- {
- return new EmbeddedDriver();
- }
-
- public DataSource createJDBCDataSource()
- {
- return new EmbeddedDataSource();
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.db.derby;
+
+import org.apache.derby.jdbc.EmbeddedDataSource;
+import org.apache.derby.jdbc.EmbeddedDriver;
+
+import javax.sql.DataSource;
+
+import java.sql.Driver;
+
+/**
+ * A {@link DerbyAdapter Derby adapter} for <a href="http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html">embedded</a> databases.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public class EmbeddedDerbyAdapter extends DerbyAdapter
+{
+ public static final String NAME = "derby-embedded"; //$NON-NLS-1$
+
+ public EmbeddedDerbyAdapter()
+ {
+ super(NAME);
+ }
+
+ public Driver getJDBCDriver()
+ {
+ return new EmbeddedDriver();
+ }
+
+ public DataSource createJDBCDataSource()
+ {
+ return new EmbeddedDataSource();
+ }
+}
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/index-all.html b/plugins/org.eclipse.net4j.db.doc/javadoc/index-all.html
index 2b91dd020a..d438c70b64 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/index-all.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/index-all.html
@@ -225,10 +225,13 @@ Constructor for exception org.eclipse.net4j.db.<A HREF="./org/eclipse/net4j/db/D
<DT><A HREF="./org/eclipse/net4j/db/DBException.html#DBException(java.lang.String, java.lang.Throwable, java.lang.String)"><B>DBException(String, Throwable, String)</B></A> -
Constructor for exception org.eclipse.net4j.db.<A HREF="./org/eclipse/net4j/db/DBException.html" title="class in org.eclipse.net4j.db">DBException</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/db/DBType.html" title="enum in org.eclipse.net4j.db"><B>DBType</B></A> - Enum in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>Enumerates the SQL data types that are compatible with the DB framework.<DT><A HREF="./org/eclipse/net4j/db/DBUtil.html" title="class in org.eclipse.net4j.db"><B>DBUtil</B></A> - Class in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>A utility class with various static factory and convenience methods.<DT><A HREF="./org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html" title="interface in org.eclipse.net4j.db"><B>DBUtil.DeserializeRowHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><B>DBUtil.RowHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html" title="interface in org.eclipse.net4j.db"><B>DBUtil.SerializeRowHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/ddl/IDBField.html#DEFAULT"><B>DEFAULT</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/DBType.html" title="enum in org.eclipse.net4j.db"><B>DBType</B></A> - Enum in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>Enumerates the SQL data types that are compatible with the DB framework.<DT><A HREF="./org/eclipse/net4j/db/DBUtil.html" title="class in org.eclipse.net4j.db"><B>DBUtil</B></A> - Class in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>A utility class with various static factory and convenience methods.<DT><A HREF="./org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html" title="interface in org.eclipse.net4j.db"><B>DBUtil.DeserializeRowHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>A <A HREF="./org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="./org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row deserialized within <A HREF="./org/eclipse/net4j/db/DBUtil.html#deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, org.eclipse.net4j.util.om.monitor.OMMonitor, org.eclipse.net4j.db.DBUtil.DeserializeRowHandler)"><CODE>DBUtil.deserializeTable()</CODE></A>.<DT><A HREF="./org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><B>DBUtil.RowHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>Call-back interface with a <A HREF="./org/eclipse/net4j/db/DBUtil.RowHandler.html#done(boolean)"><CODE>method</CODE></A> that is called <i>after</i>
+ a number of table rows have been handled by one of the subtypes of this interface.<DT><A HREF="./org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html" title="interface in org.eclipse.net4j.db"><B>DBUtil.SerializeRowHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/db/package-summary.html">org.eclipse.net4j.db</A><DD>A <A HREF="./org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="./org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row serialized within <A HREF="./org/eclipse/net4j/db/DBUtil.html#serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, java.lang.String, java.lang.String, org.eclipse.net4j.db.DBUtil.SerializeRowHandler)"><CODE>DBUtil.serializeTable()</CODE></A>.<DT><A HREF="./org/eclipse/net4j/db/ddl/IDBField.html#DEFAULT"><B>DEFAULT</B></A> -
Static variable in interface org.eclipse.net4j.db.ddl.<A HREF="./org/eclipse/net4j/db/ddl/IDBField.html" title="interface in org.eclipse.net4j.db.ddl">IDBField</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><B>DerbyAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/derby/package-summary.html">org.eclipse.net4j.db.derby</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/derby/DerbyAdapter.html#DerbyAdapter(java.lang.String)"><B>DerbyAdapter(String)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><B>DerbyAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/derby/package-summary.html">org.eclipse.net4j.db.derby</A><DD>A <A HREF="./org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://db.apache.org/derby">Derby</a> databases.<DT><A HREF="./org/eclipse/net4j/db/derby/DerbyAdapter.html#DerbyAdapter(java.lang.String)"><B>DerbyAdapter(String)</B></A> -
Constructor for class org.eclipse.net4j.db.derby.<A HREF="./org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby">DerbyAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/db/DBUtil.html#deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, org.eclipse.net4j.util.om.monitor.OMMonitor)"><B>deserializeTable(ExtendedDataInput, Connection, IDBTable, OMMonitor)</B></A> -
@@ -263,7 +266,7 @@ Method in interface org.eclipse.net4j.db.<A HREF="./org/eclipse/net4j/db/IDBAdap
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
-<DT><A HREF="./org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><B>EmbeddedDerbyAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/derby/package-summary.html">org.eclipse.net4j.db.derby</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html#EmbeddedDerbyAdapter()"><B>EmbeddedDerbyAdapter()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><B>EmbeddedDerbyAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/derby/package-summary.html">org.eclipse.net4j.db.derby</A><DD>A <A HREF="./org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><CODE>Derby adapter</CODE></A> for <a href="http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html">embedded</a> databases.<DT><A HREF="./org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html#EmbeddedDerbyAdapter()"><B>EmbeddedDerbyAdapter()</B></A> -
Constructor for class org.eclipse.net4j.db.derby.<A HREF="./org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html" title="class in org.eclipse.net4j.db.derby">EmbeddedDerbyAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/db/DBUtil.html#executeBatch(java.sql.PreparedStatement, int)"><B>executeBatch(PreparedStatement, int)</B></A> -
@@ -495,7 +498,7 @@ Method in interface org.eclipse.net4j.db.<A HREF="./org/eclipse/net4j/db/IDBAdap
<A NAME="_H_"><!-- --></A><H2>
<B>H</B></H2>
<DL>
-<DT><A HREF="./org/eclipse/net4j/db/h2/H2Adapter.html" title="class in org.eclipse.net4j.db.h2"><B>H2Adapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/h2/package-summary.html">org.eclipse.net4j.db.h2</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/h2/H2Adapter.html#H2Adapter()"><B>H2Adapter()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/h2/H2Adapter.html" title="class in org.eclipse.net4j.db.h2"><B>H2Adapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/h2/package-summary.html">org.eclipse.net4j.db.h2</A><DD>A <A HREF="./org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.h2database.com/html/main.html">H2</a> databases.<DT><A HREF="./org/eclipse/net4j/db/h2/H2Adapter.html#H2Adapter()"><B>H2Adapter()</B></A> -
Constructor for class org.eclipse.net4j.db.h2.<A HREF="./org/eclipse/net4j/db/h2/H2Adapter.html" title="class in org.eclipse.net4j.db.h2">H2Adapter</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/db/IDBRowHandler.html#handle(int, java.lang.Object...)"><B>handle(int, Object...)</B></A> -
@@ -507,10 +510,10 @@ Method in interface org.eclipse.net4j.db.<A HREF="./org/eclipse/net4j/db/DBUtil.
<DT><A HREF="./org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><B>handleRow(ExtendedDataOutput, Connection, IDBField[], Object[])</B></A> -
Method in interface org.eclipse.net4j.db.<A HREF="./org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.SerializeRowHandler</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html" title="class in org.eclipse.net4j.db.hsqldb"><B>HSQLDBAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/hsqldb/package-summary.html">org.eclipse.net4j.db.hsqldb</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html#HSQLDBAdapter()"><B>HSQLDBAdapter()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html" title="class in org.eclipse.net4j.db.hsqldb"><B>HSQLDBAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/hsqldb/package-summary.html">org.eclipse.net4j.db.hsqldb</A><DD>A <A HREF="./org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://hsqldb.org/">HyperSQL</a> databases.<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html#HSQLDBAdapter()"><B>HSQLDBAdapter()</B></A> -
Constructor for class org.eclipse.net4j.db.hsqldb.<A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html" title="class in org.eclipse.net4j.db.hsqldb">HSQLDBAdapter</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html" title="class in org.eclipse.net4j.db.hsqldb"><B>HSQLDBDataSource</B></A> - Class in <A HREF="./org/eclipse/net4j/db/hsqldb/package-summary.html">org.eclipse.net4j.db.hsqldb</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html#HSQLDBDataSource()"><B>HSQLDBDataSource()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html" title="class in org.eclipse.net4j.db.hsqldb"><B>HSQLDBDataSource</B></A> - Class in <A HREF="./org/eclipse/net4j/db/hsqldb/package-summary.html">org.eclipse.net4j.db.hsqldb</A><DD>An <CODE>HSQLDB data source</CODE> with a nicer <A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html#toString()"><CODE>HSQLDBDataSource.toString()</CODE></A> method.<DT><A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html#HSQLDBDataSource()"><B>HSQLDBDataSource()</B></A> -
Constructor for class org.eclipse.net4j.db.hsqldb.<A HREF="./org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html" title="class in org.eclipse.net4j.db.hsqldb">HSQLDBDataSource</A>
<DD>&nbsp;
</DL>
@@ -551,7 +554,7 @@ Method in interface org.eclipse.net4j.db.<A HREF="./org/eclipse/net4j/db/IDBAdap
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
-<DT><A HREF="./org/eclipse/net4j/db/mysql/MYSQLAdapter.html" title="class in org.eclipse.net4j.db.mysql"><B>MYSQLAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/mysql/package-summary.html">org.eclipse.net4j.db.mysql</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/mysql/MYSQLAdapter.html#MYSQLAdapter()"><B>MYSQLAdapter()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/mysql/MYSQLAdapter.html" title="class in org.eclipse.net4j.db.mysql"><B>MYSQLAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/mysql/package-summary.html">org.eclipse.net4j.db.mysql</A><DD>A <A HREF="./org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.mysql.com/">MySQL</a> databases.<DT><A HREF="./org/eclipse/net4j/db/mysql/MYSQLAdapter.html#MYSQLAdapter()"><B>MYSQLAdapter()</B></A> -
Constructor for class org.eclipse.net4j.db.mysql.<A HREF="./org/eclipse/net4j/db/mysql/MYSQLAdapter.html" title="class in org.eclipse.net4j.db.mysql">MYSQLAdapter</A>
<DD>&nbsp;
</DL>
@@ -578,7 +581,7 @@ Static variable in class org.eclipse.net4j.db.postgresql.<A HREF="./org/eclipse/
<A NAME="_P_"><!-- --></A><H2>
<B>P</B></H2>
<DL>
-<DT><A HREF="./org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html" title="class in org.eclipse.net4j.db.postgresql"><B>PostgreSQLAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/postgresql/package-summary.html">org.eclipse.net4j.db.postgresql</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html#PostgreSQLAdapter()"><B>PostgreSQLAdapter()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html" title="class in org.eclipse.net4j.db.postgresql"><B>PostgreSQLAdapter</B></A> - Class in <A HREF="./org/eclipse/net4j/db/postgresql/package-summary.html">org.eclipse.net4j.db.postgresql</A><DD>A <A HREF="./org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.postgresql.org/">PostgreSQL</a> databases.<DT><A HREF="./org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html#PostgreSQLAdapter()"><B>PostgreSQLAdapter()</B></A> -
Constructor for class org.eclipse.net4j.db.postgresql.<A HREF="./org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html" title="class in org.eclipse.net4j.db.postgresql">PostgreSQLAdapter</A>
<DD>&nbsp;
</DL>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html
index 74f19e9ce2..facccf99b2 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html
@@ -113,6 +113,11 @@ Interface DBUtil.DeserializeRowHandler</H2>
<P>
+A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row deserialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, org.eclipse.net4j.util.om.monitor.OMMonitor, org.eclipse.net4j.db.DBUtil.DeserializeRowHandler)"><CODE>DBUtil.deserializeTable()</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.RowHandler.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.RowHandler.html
index d43043409c..703b73417c 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.RowHandler.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.RowHandler.html
@@ -113,6 +113,11 @@ Interface DBUtil.RowHandler</H2>
<P>
+Call-back interface with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html#done(boolean)"><CODE>method</CODE></A> that is called <i>after</i>
+ a number of table rows have been handled by one of the subtypes of this interface.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html
index 52527af56c..394ea617c8 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html
@@ -113,6 +113,11 @@ Interface DBUtil.SerializeRowHandler</H2>
<P>
+A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row serialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, java.lang.String, java.lang.String, org.eclipse.net4j.db.DBUtil.SerializeRowHandler)"><CODE>DBUtil.serializeTable()</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.html
index 50dfb23fb5..2e9c37923e 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/DBUtil.html
@@ -132,7 +132,8 @@ A utility class with various static factory and convenience methods.
<TD><CODE><B><A HREF="../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.DeserializeRowHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row deserialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, org.eclipse.net4j.util.om.monitor.OMMonitor, org.eclipse.net4j.db.DBUtil.DeserializeRowHandler)"><CODE>DBUtil.deserializeTable()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -140,7 +141,8 @@ A utility class with various static factory and convenience methods.
<TD><CODE><B><A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.RowHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call-back interface with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html#done(boolean)"><CODE>method</CODE></A> that is called <i>after</i>
+ a number of table rows have been handled by one of the subtypes of this interface.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -148,7 +150,8 @@ A utility class with various static factory and convenience methods.
<TD><CODE><B><A HREF="../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.SerializeRowHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row serialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, java.lang.String, java.lang.String, org.eclipse.net4j.db.DBUtil.SerializeRowHandler)"><CODE>DBUtil.serializeTable()</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/DBUtil.RowHandler.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/DBUtil.RowHandler.html
index 4740fae8cd..8634a50453 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/DBUtil.RowHandler.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/DBUtil.RowHandler.html
@@ -116,7 +116,8 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" tit
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.DeserializeRowHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row deserialized within <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.html#deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, org.eclipse.net4j.util.om.monitor.OMMonitor, org.eclipse.net4j.db.DBUtil.DeserializeRowHandler)"><CODE>DBUtil.deserializeTable()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -124,7 +125,8 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" tit
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.SerializeRowHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row serialized within <A HREF="../../../../../org/eclipse/net4j/db/DBUtil.html#serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, java.lang.String, java.lang.String, org.eclipse.net4j.db.DBUtil.SerializeRowHandler)"><CODE>DBUtil.serializeTable()</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/IDBAdapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/IDBAdapter.html
index 74548915d9..5561f5a4bb 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/IDBAdapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/class-use/IDBAdapter.html
@@ -256,7 +256,7 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="int
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby">DerbyAdapter</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://db.apache.org/derby">Derby</a> databases.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -264,7 +264,7 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="int
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html" title="class in org.eclipse.net4j.db.derby">EmbeddedDerbyAdapter</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><CODE>Derby adapter</CODE></A> for <a href="http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html">embedded</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
@@ -289,7 +289,7 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="int
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/h2/H2Adapter.html" title="class in org.eclipse.net4j.db.h2">H2Adapter</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.h2database.com/html/main.html">H2</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
@@ -314,7 +314,7 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="int
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html" title="class in org.eclipse.net4j.db.hsqldb">HSQLDBAdapter</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://hsqldb.org/">HyperSQL</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
@@ -339,7 +339,7 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="int
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/mysql/MYSQLAdapter.html" title="class in org.eclipse.net4j.db.mysql">MYSQLAdapter</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.mysql.com/">MySQL</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
@@ -364,7 +364,7 @@ Uses of <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="int
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html" title="class in org.eclipse.net4j.db.postgresql">PostgreSQLAdapter</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.postgresql.org/">PostgreSQL</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/DerbyAdapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/DerbyAdapter.html
index 80e878f989..1ad25ea180 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/DerbyAdapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/DerbyAdapter.html
@@ -119,6 +119,10 @@ Class DerbyAdapter</H2>
<P>
+A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://db.apache.org/derby">Derby</a> databases.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html
index 53dabffc9c..319a1d1560 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html
@@ -116,6 +116,10 @@ Class EmbeddedDerbyAdapter</H2>
<P>
+A <A HREF="../../../../../org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><CODE>Derby adapter</CODE></A> for <a href="http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html">embedded</a> databases.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/class-use/DerbyAdapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/class-use/DerbyAdapter.html
index ea4dc80e1b..97fb11d0f5 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/class-use/DerbyAdapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/class-use/DerbyAdapter.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/db/derby/DerbyAdapter.html"
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html" title="class in org.eclipse.net4j.db.derby">EmbeddedDerbyAdapter</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><CODE>Derby adapter</CODE></A> for <a href="http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html">embedded</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-summary.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-summary.html
index 29ab21259e..34a903ec94 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-summary.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-summary.html
@@ -102,11 +102,11 @@ The Net4j DB Framework support for Derby databases.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby">DerbyAdapter</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://db.apache.org/derby">Derby</a> databases.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/db/derby/EmbeddedDerbyAdapter.html" title="class in org.eclipse.net4j.db.derby">EmbeddedDerbyAdapter</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../org/eclipse/net4j/db/derby/DerbyAdapter.html" title="class in org.eclipse.net4j.db.derby"><CODE>Derby adapter</CODE></A> for <a href="http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html">embedded</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-use.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-use.html
index 0f60707ee4..4864a3650d 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-use.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/derby/package-use.html
@@ -106,7 +106,7 @@ Classes in <A HREF="../../../../../org/eclipse/net4j/db/derby/package-summary.ht
<TD><B><A HREF="../../../../../org/eclipse/net4j/db/derby/class-use/DerbyAdapter.html#org.eclipse.net4j.db.derby"><B>DerbyAdapter</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://db.apache.org/derby">Derby</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/H2Adapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/H2Adapter.html
index 4d8f62bb90..cd95f318e4 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/H2Adapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/H2Adapter.html
@@ -115,6 +115,10 @@ Class H2Adapter</H2>
<P>
+A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.h2database.com/html/main.html">H2</a> databases.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/package-summary.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/package-summary.html
index b01d51c3d4..108ffc6f2a 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/package-summary.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/h2/package-summary.html
@@ -101,7 +101,7 @@ The Net4j DB Framework support for H2 databases.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/db/h2/H2Adapter.html" title="class in org.eclipse.net4j.db.h2">H2Adapter</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.h2database.com/html/main.html">H2</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html
index 0804801982..16a2027f54 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html
@@ -115,6 +115,10 @@ Class HSQLDBAdapter</H2>
<P>
+A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://hsqldb.org/">HyperSQL</a> databases.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html
index 087095a7b5..85226efa6e 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html
@@ -116,6 +116,10 @@ Class HSQLDBDataSource</H2>
<P>
+An <CODE>HSQLDB data source</CODE> with a nicer <A HREF="../../../../../org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html#toString()"><CODE>toString()</CODE></A> method.
+<P>
+
+<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#org.eclipse.net4j.db.hsqldb.HSQLDBDataSource">Serialized Form</A></DL>
<HR>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/package-summary.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/package-summary.html
index 9b22550e86..ff35307ac9 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/package-summary.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/hsqldb/package-summary.html
@@ -103,11 +103,11 @@ The Net4j DB Framework support for HSQLDB databases.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.html" title="class in org.eclipse.net4j.db.hsqldb">HSQLDBAdapter</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://hsqldb.org/">HyperSQL</a> databases.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html" title="class in org.eclipse.net4j.db.hsqldb">HSQLDBDataSource</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An <CODE>HSQLDB data source</CODE> with a nicer <A HREF="../../../../../org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.html#toString()"><CODE>HSQLDBDataSource.toString()</CODE></A> method.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/MYSQLAdapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/MYSQLAdapter.html
index b7af722443..b1e4a0ce56 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/MYSQLAdapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/MYSQLAdapter.html
@@ -115,6 +115,10 @@ Class MYSQLAdapter</H2>
<P>
+A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.mysql.com/">MySQL</a> databases.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/package-summary.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/package-summary.html
index 3453754492..b92418a497 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/package-summary.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/mysql/package-summary.html
@@ -101,7 +101,7 @@ The Net4j DB Framework support for MYSQL databases.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/db/mysql/MYSQLAdapter.html" title="class in org.eclipse.net4j.db.mysql">MYSQLAdapter</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.mysql.com/">MySQL</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-summary.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-summary.html
index 7b6ae74834..5eb44df775 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-summary.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-summary.html
@@ -109,15 +109,18 @@ The Net4j DB framework.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.DeserializeRowHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row deserialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, org.eclipse.net4j.util.om.monitor.OMMonitor, org.eclipse.net4j.db.DBUtil.DeserializeRowHandler)"><CODE>DBUtil.deserializeTable()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.RowHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Call-back interface with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html#done(boolean)"><CODE>method</CODE></A> that is called <i>after</i>
+ a number of table rows have been handled by one of the subtypes of this interface.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html" title="interface in org.eclipse.net4j.db">DBUtil.SerializeRowHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row serialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, java.lang.String, java.lang.String, org.eclipse.net4j.db.DBUtil.SerializeRowHandler)"><CODE>DBUtil.serializeTable()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db">IDBAdapter</A></B></TD>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-use.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-use.html
index b2bb3fd185..00309e78d3 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-use.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/package-use.html
@@ -151,19 +151,22 @@ Classes in <A HREF="../../../../org/eclipse/net4j/db/package-summary.html">org.e
<TD><B><A HREF="../../../../org/eclipse/net4j/db/class-use/DBUtil.DeserializeRowHandler.html#org.eclipse.net4j.db"><B>DBUtil.DeserializeRowHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.DeserializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row deserialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, org.eclipse.net4j.util.om.monitor.OMMonitor, org.eclipse.net4j.db.DBUtil.DeserializeRowHandler)"><CODE>DBUtil.deserializeTable()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../org/eclipse/net4j/db/class-use/DBUtil.RowHandler.html#org.eclipse.net4j.db"><B>DBUtil.RowHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call-back interface with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html#done(boolean)"><CODE>method</CODE></A> that is called <i>after</i>
+ a number of table rows have been handled by one of the subtypes of this interface.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../org/eclipse/net4j/db/class-use/DBUtil.SerializeRowHandler.html#org.eclipse.net4j.db"><B>DBUtil.SerializeRowHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../org/eclipse/net4j/db/DBUtil.RowHandler.html" title="interface in org.eclipse.net4j.db"><CODE>row handler</CODE></A> with a <A HREF="../../../../org/eclipse/net4j/db/DBUtil.SerializeRowHandler.html#handleRow(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBField[], java.lang.Object[])"><CODE>method</CODE></A>
+ that is called once per row serialized within <A HREF="../../../../org/eclipse/net4j/db/DBUtil.html#serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput, java.sql.Connection, org.eclipse.net4j.db.ddl.IDBTable, java.lang.String, java.lang.String, org.eclipse.net4j.db.DBUtil.SerializeRowHandler)"><CODE>DBUtil.serializeTable()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../org/eclipse/net4j/db/class-use/IDBAdapter.html#org.eclipse.net4j.db"><B>IDBAdapter</B></A></B>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html
index 4c6bceeb24..dc556b6b88 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html
@@ -115,6 +115,10 @@ Class PostgreSQLAdapter</H2>
<P>
+A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.postgresql.org/">PostgreSQL</a> databases.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/package-summary.html b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/package-summary.html
index 0ce77d7439..a601869817 100644
--- a/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/package-summary.html
+++ b/plugins/org.eclipse.net4j.db.doc/javadoc/org/eclipse/net4j/db/postgresql/package-summary.html
@@ -101,7 +101,7 @@ The Net4j DB Framework support for PostgreSQL databases.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.html" title="class in org.eclipse.net4j.db.postgresql">PostgreSQLAdapter</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../org/eclipse/net4j/db/IDBAdapter.html" title="interface in org.eclipse.net4j.db"><CODE>DB adapter</CODE></A> for <a href="http://www.postgresql.org/">PostgreSQL</a> databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java b/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java
index de46b7975d..1640647857 100644
--- a/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java
+++ b/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java
@@ -11,6 +11,7 @@
package org.eclipse.net4j.db.h2;
import org.eclipse.net4j.db.DBType;
+import org.eclipse.net4j.db.IDBAdapter;
import org.eclipse.net4j.db.ddl.IDBField;
import org.eclipse.net4j.spi.db.DBAdapter;
@@ -22,6 +23,8 @@ import java.sql.Driver;
import java.sql.SQLException;
/**
+ * A {@link IDBAdapter DB adapter} for <a href="http://www.h2database.com/html/main.html">H2</a> databases.
+ *
* @author Eike Stepper
* @since 2.0
*/
diff --git a/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java b/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java
index 202f9c2f0c..24ecbcd499 100644
--- a/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java
+++ b/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java
@@ -1,98 +1,101 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.db.hsqldb;
-
-import org.eclipse.net4j.db.DBType;
-import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.spi.db.DBAdapter;
-
-import org.hsqldb.jdbcDriver;
-
-import javax.sql.DataSource;
-
-import java.sql.Driver;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- */
-public class HSQLDBAdapter extends DBAdapter
-{
- private static final String NAME = "hsqldb"; //$NON-NLS-1$
-
- public static final String VERSION = "1.8.0.8"; //$NON-NLS-1$
-
- public HSQLDBAdapter()
- {
- super(NAME, VERSION);
- }
-
- public Driver getJDBCDriver()
- {
- return new jdbcDriver();
- }
-
- public DataSource createJDBCDataSource()
- {
- return new HSQLDBDataSource();
- }
-
- @Override
- protected String getTypeName(IDBField field)
- {
- DBType type = field.getType();
- switch (type)
- {
- case BOOLEAN:
- case BIT:
- case TINYINT:
- case SMALLINT:
- case INTEGER:
- case BIGINT:
- case FLOAT:
- case REAL:
- case DOUBLE:
- case DATE:
- case TIME:
- case TIMESTAMP:
- return type.toString();
-
- case LONGVARCHAR:
- return "LONGVARCHAR"; //$NON-NLS-1$
-
- case LONGVARBINARY:
- return "LONGVARBINARY"; //$NON-NLS-1$
-
- case BLOB:
- return "LONGVARBINARY"; //$NON-NLS-1$
-
- case CLOB:
- return "LONGVARCHAR"; //$NON-NLS-1$
-
- case CHAR:
- case VARCHAR:
- case BINARY:
- case VARBINARY:
- return type.toString() + field.formatPrecision();
-
- case NUMERIC:
- case DECIMAL:
- return type.toString() + field.formatPrecisionAndScale();
- }
-
- return super.getTypeName(field);
- }
-
- public String[] getReservedWords()
- {
- return getSQL92ReservedWords();
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.db.hsqldb;
+
+import org.eclipse.net4j.db.DBType;
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.ddl.IDBField;
+import org.eclipse.net4j.spi.db.DBAdapter;
+
+import org.hsqldb.jdbcDriver;
+
+import javax.sql.DataSource;
+
+import java.sql.Driver;
+
+/**
+ * A {@link IDBAdapter DB adapter} for <a href="http://hsqldb.org/">HyperSQL</a> databases.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public class HSQLDBAdapter extends DBAdapter
+{
+ private static final String NAME = "hsqldb"; //$NON-NLS-1$
+
+ public static final String VERSION = "1.8.0.8"; //$NON-NLS-1$
+
+ public HSQLDBAdapter()
+ {
+ super(NAME, VERSION);
+ }
+
+ public Driver getJDBCDriver()
+ {
+ return new jdbcDriver();
+ }
+
+ public DataSource createJDBCDataSource()
+ {
+ return new HSQLDBDataSource();
+ }
+
+ @Override
+ protected String getTypeName(IDBField field)
+ {
+ DBType type = field.getType();
+ switch (type)
+ {
+ case BOOLEAN:
+ case BIT:
+ case TINYINT:
+ case SMALLINT:
+ case INTEGER:
+ case BIGINT:
+ case FLOAT:
+ case REAL:
+ case DOUBLE:
+ case DATE:
+ case TIME:
+ case TIMESTAMP:
+ return type.toString();
+
+ case LONGVARCHAR:
+ return "LONGVARCHAR"; //$NON-NLS-1$
+
+ case LONGVARBINARY:
+ return "LONGVARBINARY"; //$NON-NLS-1$
+
+ case BLOB:
+ return "LONGVARBINARY"; //$NON-NLS-1$
+
+ case CLOB:
+ return "LONGVARCHAR"; //$NON-NLS-1$
+
+ case CHAR:
+ case VARCHAR:
+ case BINARY:
+ case VARBINARY:
+ return type.toString() + field.formatPrecision();
+
+ case NUMERIC:
+ case DECIMAL:
+ return type.toString() + field.formatPrecisionAndScale();
+ }
+
+ return super.getTypeName(field);
+ }
+
+ public String[] getReservedWords()
+ {
+ return getSQL92ReservedWords();
+ }
+}
diff --git a/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.java b/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.java
index 4fbaa18f12..f5f8844a72 100644
--- a/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.java
+++ b/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBDataSource.java
@@ -15,6 +15,8 @@ import org.hsqldb.jdbc.JDBCDataSource;
import java.text.MessageFormat;
/**
+ * An {@link JDBCDataSource HSQLDB data source} with a nicer {@link #toString()} method.
+ *
* @author Eike Stepper
*/
public class HSQLDBDataSource extends JDBCDataSource
diff --git a/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java b/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java
index a1cca74201..a2257f17c4 100644
--- a/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java
+++ b/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java
@@ -1,160 +1,163 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.db.mysql;
-
-import org.eclipse.net4j.db.DBException;
-import org.eclipse.net4j.db.DBType;
-import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.spi.db.DBAdapter;
-
-import com.mysql.jdbc.Driver;
-import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
-
-import javax.sql.DataSource;
-
-import java.sql.SQLException;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- */
-public class MYSQLAdapter extends DBAdapter
-{
- public static final String NAME = "mysql"; //$NON-NLS-1$
-
- public static final String VERSION = "5.1.5"; //$NON-NLS-1$
-
- private static final String[] RESERVED_WORDS = {
- "ACCESSIBLE", "ACTION", "ADD", "ALL", "ALTER", "ANALYZE", "AND", "AS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "ASC", "ASENSITIVE", "BEFORE", "BETWEEN", "BIGINT", "BINARY", "BIT", "BLOB", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "BOTH", "BY", "CALL", "CASCADE", "CASE", "CHANGE", "CHAR", "CHARACTER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "CHECK", "COLLATE", "COLUMN", "COLUMNS", "CONDITION", "CONNECTION", "CONSTRAINT", "CONTINUE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "CONVERT", "CREATE", "CROSS", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "DATABASE", "DATABASES", "DATE", "DAY_HOUR", "DAY_MICROSECOND", "DAY_MINUTE", "DAY_SECOND", "DEC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "DECIMAL", "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "DISTINCT", "DISTINCTROW", "DIV", "DOUBLE", "DROP", "DUAL", "EACH", "ELSE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "ELSEIF", "ENCLOSED", "ENUM", "ESCAPED", "EXISTS", "EXIT", "EXPLAIN", "FALSE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "FETCH", "FIELDS", "FLOAT", "FLOAT4", "FLOAT8", "FOR", "FORCE", "FOREIGN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "FROM", "FULLTEXT", "GENERAL", "GOTO", "GRANT", "GROUP", "HAVING", "HIGH_PRIORITY", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "HOUR_MICROSECOND", "HOUR_MINUTE", "HOUR_SECOND", "IF", "IGNORE", "IGNORE_SERVER_IDS", "IN", "INDEX", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "INFILE", "INNER", "INOUT", "INSENSITIVE", "INSERT", "INT", "INT1", "INT2", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "INT3", "INT4", "INT8", "INTEGER", "INTERVAL", "INTO", "IS", "ITERATE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "JOIN", "KEY", "KEYS", "KILL", "LABEL", "LEADING", "LEAVE", "LEFT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD", "LOCALTIME", "LOCALTIMESTAMP", "LOCK", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "LONG", "LONGBLOB", "LONGTEXT", "LOOP", "LOW_PRIORITY", "MASTER_HEARTBEAT_PERIOD", "MASTER_SSL_VERIFY_SERVER_CERT", "MATCH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "MAXVALUE", "MEDIUMBLOB", "MEDIUMINT", "MEDIUMTEXT", "MIDDLEINT", "MINUTE_MICROSECOND", "MINUTE_SECOND", "MOD", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "MODIFIES", "NATURAL", "NO", "NOT", "NO_WRITE_TO_BINLOG", "NULL", "NUMERIC", "ON", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", "OUT", "OUTER", "OUTFILE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "PRECISION", "PRIMARY", "PRIVILEGES", "PROCEDURE", "PURGE", "RAID0", "RANGE", "READ", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "READS", "READ_WRITE", "REAL", "REFERENCES", "REGEXP", "RELEASE", "RENAME", "REPEAT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "REPLACE", "REQUIRE", "RESIGNAL", "RESTRICT", "RETURN", "REVOKE", "RIGHT", "RLIKE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "SCHEMA", "SCHEMAS", "SECOND_MICROSECOND", "SELECT", "SENSITIVE", "SEPARATOR", "SET", "SHOW", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "SIGNAL", "SLOW", "SMALLINT", "SONAME", "SPATIAL", "SPECIFIC", "SQL", "SQL_BIG_RESULT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "SQL_CALC_FOUND_ROWS", "SQLEXCEPTION", "SQL_SMALL_RESULT", "SQLSTATE", "SQLWARNING", "SSL", "STARTING", "STRAIGHT_JOIN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "TABLE", "TABLES", "TERMINATED", "TEXT", "THEN", "TIME", "TIMESTAMP", "TINYBLOB", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "TINYINT", "TINYTEXT", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE", "UPGRADE", "USAGE", "USE", "USING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", "VALUES", "VARBINARY", "VARCHAR", "VARCHARACTER", "VARYING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "WHEN", "WHERE", "WHILE", "WITH", "WRITE", "X509", "XOR", "YEAR_MONTH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "ZEROFILL" }; //$NON-NLS-1$
-
- public MYSQLAdapter()
- {
- super(NAME, VERSION);
- }
-
- public Driver getJDBCDriver()
- {
- try
- {
- return new Driver();
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- }
-
- public DataSource createJDBCDataSource()
- {
- return new MysqlDataSource();
- }
-
- /**
- * @since 2.0
- */
- @Override
- public int getMaxTableNameLength()
- {
- return 64;
- }
-
- /**
- * @since 2.0
- */
- @Override
- public int getMaxFieldNameLength()
- {
- return 64;
- }
-
- @Override
- protected String getTypeName(IDBField field)
- {
- DBType type = field.getType();
- switch (type)
- {
- case VARCHAR:
- case CLOB:
- return "LONGTEXT"; //$NON-NLS-1$
- case BLOB:
- return "LONGBLOB"; //$NON-NLS-1$
- }
-
- return super.getTypeName(field);
- }
-
- @Override
- protected void addIndexField(StringBuilder builder, IDBField field)
- {
- super.addIndexField(builder, field);
- if (field.getType() == DBType.VARCHAR)
- {
- builder.append("("); //$NON-NLS-1$
- builder.append(field.getPrecision());
- builder.append(")"); //$NON-NLS-1$
- }
- }
-
- public String[] getReservedWords()
- {
- return RESERVED_WORDS;
- }
-
- @Override
- public boolean isTypeIndexable(DBType type)
- {
- switch (type)
- {
- case VARCHAR:
- return false;
-
- default:
- return super.isTypeIndexable(type);
- }
- }
-
- @Override
- public boolean isDuplicateKeyException(SQLException ex)
- {
- return "23000".equals(ex.getSQLState());
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.db.mysql;
+
+import org.eclipse.net4j.db.DBException;
+import org.eclipse.net4j.db.DBType;
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.ddl.IDBField;
+import org.eclipse.net4j.spi.db.DBAdapter;
+
+import com.mysql.jdbc.Driver;
+import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
+
+import javax.sql.DataSource;
+
+import java.sql.SQLException;
+
+/**
+ * A {@link IDBAdapter DB adapter} for <a href="http://www.mysql.com/">MySQL</a> databases.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public class MYSQLAdapter extends DBAdapter
+{
+ public static final String NAME = "mysql"; //$NON-NLS-1$
+
+ public static final String VERSION = "5.1.5"; //$NON-NLS-1$
+
+ private static final String[] RESERVED_WORDS = {
+ "ACCESSIBLE", "ACTION", "ADD", "ALL", "ALTER", "ANALYZE", "AND", "AS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "ASC", "ASENSITIVE", "BEFORE", "BETWEEN", "BIGINT", "BINARY", "BIT", "BLOB", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "BOTH", "BY", "CALL", "CASCADE", "CASE", "CHANGE", "CHAR", "CHARACTER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "CHECK", "COLLATE", "COLUMN", "COLUMNS", "CONDITION", "CONNECTION", "CONSTRAINT", "CONTINUE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "CONVERT", "CREATE", "CROSS", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "DATABASE", "DATABASES", "DATE", "DAY_HOUR", "DAY_MICROSECOND", "DAY_MINUTE", "DAY_SECOND", "DEC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "DECIMAL", "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "DISTINCT", "DISTINCTROW", "DIV", "DOUBLE", "DROP", "DUAL", "EACH", "ELSE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "ELSEIF", "ENCLOSED", "ENUM", "ESCAPED", "EXISTS", "EXIT", "EXPLAIN", "FALSE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "FETCH", "FIELDS", "FLOAT", "FLOAT4", "FLOAT8", "FOR", "FORCE", "FOREIGN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "FROM", "FULLTEXT", "GENERAL", "GOTO", "GRANT", "GROUP", "HAVING", "HIGH_PRIORITY", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "HOUR_MICROSECOND", "HOUR_MINUTE", "HOUR_SECOND", "IF", "IGNORE", "IGNORE_SERVER_IDS", "IN", "INDEX", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "INFILE", "INNER", "INOUT", "INSENSITIVE", "INSERT", "INT", "INT1", "INT2", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "INT3", "INT4", "INT8", "INTEGER", "INTERVAL", "INTO", "IS", "ITERATE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "JOIN", "KEY", "KEYS", "KILL", "LABEL", "LEADING", "LEAVE", "LEFT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD", "LOCALTIME", "LOCALTIMESTAMP", "LOCK", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "LONG", "LONGBLOB", "LONGTEXT", "LOOP", "LOW_PRIORITY", "MASTER_HEARTBEAT_PERIOD", "MASTER_SSL_VERIFY_SERVER_CERT", "MATCH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "MAXVALUE", "MEDIUMBLOB", "MEDIUMINT", "MEDIUMTEXT", "MIDDLEINT", "MINUTE_MICROSECOND", "MINUTE_SECOND", "MOD", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "MODIFIES", "NATURAL", "NO", "NOT", "NO_WRITE_TO_BINLOG", "NULL", "NUMERIC", "ON", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", "OUT", "OUTER", "OUTFILE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "PRECISION", "PRIMARY", "PRIVILEGES", "PROCEDURE", "PURGE", "RAID0", "RANGE", "READ", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "READS", "READ_WRITE", "REAL", "REFERENCES", "REGEXP", "RELEASE", "RENAME", "REPEAT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "REPLACE", "REQUIRE", "RESIGNAL", "RESTRICT", "RETURN", "REVOKE", "RIGHT", "RLIKE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "SCHEMA", "SCHEMAS", "SECOND_MICROSECOND", "SELECT", "SENSITIVE", "SEPARATOR", "SET", "SHOW", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "SIGNAL", "SLOW", "SMALLINT", "SONAME", "SPATIAL", "SPECIFIC", "SQL", "SQL_BIG_RESULT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "SQL_CALC_FOUND_ROWS", "SQLEXCEPTION", "SQL_SMALL_RESULT", "SQLSTATE", "SQLWARNING", "SSL", "STARTING", "STRAIGHT_JOIN", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "TABLE", "TABLES", "TERMINATED", "TEXT", "THEN", "TIME", "TIMESTAMP", "TINYBLOB", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "TINYINT", "TINYTEXT", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE", "UPGRADE", "USAGE", "USE", "USING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", "VALUES", "VARBINARY", "VARCHAR", "VARCHARACTER", "VARYING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "WHEN", "WHERE", "WHILE", "WITH", "WRITE", "X509", "XOR", "YEAR_MONTH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "ZEROFILL" }; //$NON-NLS-1$
+
+ public MYSQLAdapter()
+ {
+ super(NAME, VERSION);
+ }
+
+ public Driver getJDBCDriver()
+ {
+ try
+ {
+ return new Driver();
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ }
+
+ public DataSource createJDBCDataSource()
+ {
+ return new MysqlDataSource();
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ public int getMaxTableNameLength()
+ {
+ return 64;
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ public int getMaxFieldNameLength()
+ {
+ return 64;
+ }
+
+ @Override
+ protected String getTypeName(IDBField field)
+ {
+ DBType type = field.getType();
+ switch (type)
+ {
+ case VARCHAR:
+ case CLOB:
+ return "LONGTEXT"; //$NON-NLS-1$
+ case BLOB:
+ return "LONGBLOB"; //$NON-NLS-1$
+ }
+
+ return super.getTypeName(field);
+ }
+
+ @Override
+ protected void addIndexField(StringBuilder builder, IDBField field)
+ {
+ super.addIndexField(builder, field);
+ if (field.getType() == DBType.VARCHAR)
+ {
+ builder.append("("); //$NON-NLS-1$
+ builder.append(field.getPrecision());
+ builder.append(")"); //$NON-NLS-1$
+ }
+ }
+
+ public String[] getReservedWords()
+ {
+ return RESERVED_WORDS;
+ }
+
+ @Override
+ public boolean isTypeIndexable(DBType type)
+ {
+ switch (type)
+ {
+ case VARCHAR:
+ return false;
+
+ default:
+ return super.isTypeIndexable(type);
+ }
+ }
+
+ @Override
+ public boolean isDuplicateKeyException(SQLException ex)
+ {
+ return "23000".equals(ex.getSQLState());
+ }
+}
diff --git a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
index 524698581a..fae3e1f67e 100644
--- a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
+++ b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
@@ -1,182 +1,185 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Victor Roldan Betancort - initial API and implementation
- * Eike Stepper - maintenance
- * Stefan Winkler - Bug 276979
- * Stefan Winkler - Bug 289445
- */
-package org.eclipse.net4j.db.postgresql;
-
-import org.eclipse.net4j.db.DBException;
-import org.eclipse.net4j.db.DBType;
-import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.db.ddl.IDBTable;
-import org.eclipse.net4j.db.internal.postgresql.bundle.OM;
-import org.eclipse.net4j.spi.db.DBAdapter;
-import org.eclipse.net4j.util.om.trace.ContextTracer;
-
-import org.postgresql.Driver;
-import org.postgresql.ds.PGSimpleDataSource;
-
-import javax.sql.DataSource;
-
-import java.sql.SQLException;
-import java.sql.Savepoint;
-import java.sql.Statement;
-
-/**
- * @author Victor Roldan Betancort
- */
-public class PostgreSQLAdapter extends DBAdapter
-{
- public static final String NAME = "postgresql"; //$NON-NLS-1$
-
- public static final String VERSION = "8.3"; //$NON-NLS-1$
-
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SQL, DBAdapter.class);
-
- private static final String[] RESERVED_WORDS = { "ALL", "ANALYSE", "ANALYZE", "AND", "ANY", "AS", "ASC", "ATOMIC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "AUTHORIZATION", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN", "BOTH", "C", "CASE", "CAST", "CHAR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "CHARACTER", "CHECK", "COALESCE", "COLLATE", "COLUMN", "CONSTRAINT", "CONVERT", "CREATE", "CROSS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
- "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DEC", "DECIMAL", "DEFAULT", "DEFERRABLE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "DESC", "DISTINCT", "DO", "ELSE", "END", "EXCEPT", "EXECUTE", "EXISTS", "EXTRACT", "FALSE", "FLOAT", "FOR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "FOREIGN", "FREEZE", "FROM", "FULL", "GRANT", "GROUP", "HAVING", "ILIKE", "IN", "INITIALLY", "INNER", "INT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "INTEGER", "INTERSECT", "INTERVAL", "INTO", "IS", "ISNULL", "JOIN", "LEADING", "LEFT", "LIKE", "LIMIT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "LOCALTIME", "LOCALTIMESTAMP", "NATURAL", "NCHAR", "NCLOB", "NEW", "NONE", "NOT", "NOTNULL", "NULL", "NULLIF", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "NUMERIC", "OFF", "OFFSET", "OLD", "ON", "ONLY", "OR", "ORDER", "OUTER", "OVERLAPS", "OVERLAY", "PLACING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
- "POSITION", "PRIMARY", "REAL", "RECHECK", "REFERENCES", "RIGHT", "ROW", "SELECT", "SESSION_USER", "SETOF", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "SIMILAR", "SMALLINT", "SOME", "SUBSTRING", "TABLE", "THEN", "TIME", "TIMESTAMP", "TO", "TRAILING", "TREAT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
- "TRIM", "TRUE", "UNION", "UNIQUE", "USER", "USING", "VARCHAR", "VERBOSE", "WHEN", "WHERE" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
-
- public PostgreSQLAdapter()
- {
- super(NAME, VERSION);
- }
-
- public Driver getJDBCDriver()
- {
- return new Driver();
- }
-
- public DataSource createJDBCDataSource()
- {
- return new PGSimpleDataSource();
- }
-
- /**
- * @since 2.0
- */
- @Override
- public int getMaxTableNameLength()
- {
- // http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html
- return 63;
- }
-
- /**
- * @since 2.0
- */
- @Override
- public int getMaxFieldNameLength()
- {
- // http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html
- return 63;
- }
-
- @Override
- protected String getTypeName(IDBField field)
- {
- DBType type = field.getType();
- switch (type)
- {
- case LONGVARCHAR:
- case VARCHAR:
- case CLOB:
- return "text"; //$NON-NLS-1$
- case VARBINARY:
- case BLOB:
- return "bytea"; //$NON-NLS-1$
- case DOUBLE:
- return "double precision"; //$NON-NLS-1$
- }
-
- return super.getTypeName(field);
- }
-
- public String[] getReservedWords()
- {
- return RESERVED_WORDS;
- }
-
- /*
- * TODO Remove this method override after fixing Bug 282791 - [DB] Check for existing tables instead of relying on
- * SQLExceptions PostgreSQL uses transaction on DDL operations. If an error occurs, the SQL Connection goes to an
- * error state, and can only be cleared by rolling back. Therefore, savepoints for table creation were added
- */
- @Override
- public boolean createTable(IDBTable table, Statement statement) throws DBException
- {
- boolean created = true;
- Savepoint savepoint = null;
-
- try
- {
- savepoint = statement.getConnection().setSavepoint();
- }
- catch (SQLException ex)
- {
- OM.LOG.error(ex);
- }
-
- try
- {
- doCreateTable(table, statement);
- }
- catch (SQLException ex)
- {
- created = false;
- if (TRACER.isEnabled())
- {
- TRACER.trace("-- " + ex.getMessage() + ". Trying to rollback operation"); //$NON-NLS-1$
- }
-
- if (savepoint != null)
- {
- try
- {
- statement.getConnection().rollback(savepoint);
- }
- catch (SQLException ex1)
- {
- OM.LOG.error(ex1);
- }
- }
- else
- {
- OM.LOG.error("Could not rollback last operation. Savepoint was not created."); //$NON-NLS-1$
- }
- }
-
- validateTable(table, statement);
- return created;
- }
-
- @Override
- public DBType adaptType(DBType type)
- {
- switch (type)
- {
- // Due to Bug 289194: [DB] BLOB not correctly handled by PostgreSQL DBAdapter
- case BLOB:
- return DBType.VARBINARY;
- }
-
- return super.adaptType(type);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Victor Roldan Betancort - initial API and implementation
+ * Eike Stepper - maintenance
+ * Stefan Winkler - Bug 276979
+ * Stefan Winkler - Bug 289445
+ */
+package org.eclipse.net4j.db.postgresql;
+
+import org.eclipse.net4j.db.DBException;
+import org.eclipse.net4j.db.DBType;
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.ddl.IDBField;
+import org.eclipse.net4j.db.ddl.IDBTable;
+import org.eclipse.net4j.db.internal.postgresql.bundle.OM;
+import org.eclipse.net4j.spi.db.DBAdapter;
+import org.eclipse.net4j.util.om.trace.ContextTracer;
+
+import org.postgresql.Driver;
+import org.postgresql.ds.PGSimpleDataSource;
+
+import javax.sql.DataSource;
+
+import java.sql.SQLException;
+import java.sql.Savepoint;
+import java.sql.Statement;
+
+/**
+ * A {@link IDBAdapter DB adapter} for <a href="http://www.postgresql.org/">PostgreSQL</a> databases.
+ *
+ * @author Victor Roldan Betancort
+ */
+public class PostgreSQLAdapter extends DBAdapter
+{
+ public static final String NAME = "postgresql"; //$NON-NLS-1$
+
+ public static final String VERSION = "8.3"; //$NON-NLS-1$
+
+ private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SQL, DBAdapter.class);
+
+ private static final String[] RESERVED_WORDS = { "ALL", "ANALYSE", "ANALYZE", "AND", "ANY", "AS", "ASC", "ATOMIC", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "AUTHORIZATION", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN", "BOTH", "C", "CASE", "CAST", "CHAR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "CHARACTER", "CHECK", "COALESCE", "COLLATE", "COLUMN", "CONSTRAINT", "CONVERT", "CREATE", "CROSS", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DEC", "DECIMAL", "DEFAULT", "DEFERRABLE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "DESC", "DISTINCT", "DO", "ELSE", "END", "EXCEPT", "EXECUTE", "EXISTS", "EXTRACT", "FALSE", "FLOAT", "FOR", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "FOREIGN", "FREEZE", "FROM", "FULL", "GRANT", "GROUP", "HAVING", "ILIKE", "IN", "INITIALLY", "INNER", "INT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "INTEGER", "INTERSECT", "INTERVAL", "INTO", "IS", "ISNULL", "JOIN", "LEADING", "LEFT", "LIKE", "LIMIT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "LOCALTIME", "LOCALTIMESTAMP", "NATURAL", "NCHAR", "NCLOB", "NEW", "NONE", "NOT", "NOTNULL", "NULL", "NULLIF", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "NUMERIC", "OFF", "OFFSET", "OLD", "ON", "ONLY", "OR", "ORDER", "OUTER", "OVERLAPS", "OVERLAY", "PLACING", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
+ "POSITION", "PRIMARY", "REAL", "RECHECK", "REFERENCES", "RIGHT", "ROW", "SELECT", "SESSION_USER", "SETOF", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ "SIMILAR", "SMALLINT", "SOME", "SUBSTRING", "TABLE", "THEN", "TIME", "TIMESTAMP", "TO", "TRAILING", "TREAT", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$
+ "TRIM", "TRUE", "UNION", "UNIQUE", "USER", "USING", "VARCHAR", "VERBOSE", "WHEN", "WHERE" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+
+ public PostgreSQLAdapter()
+ {
+ super(NAME, VERSION);
+ }
+
+ public Driver getJDBCDriver()
+ {
+ return new Driver();
+ }
+
+ public DataSource createJDBCDataSource()
+ {
+ return new PGSimpleDataSource();
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ public int getMaxTableNameLength()
+ {
+ // http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html
+ return 63;
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ public int getMaxFieldNameLength()
+ {
+ // http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html
+ return 63;
+ }
+
+ @Override
+ protected String getTypeName(IDBField field)
+ {
+ DBType type = field.getType();
+ switch (type)
+ {
+ case LONGVARCHAR:
+ case VARCHAR:
+ case CLOB:
+ return "text"; //$NON-NLS-1$
+ case VARBINARY:
+ case BLOB:
+ return "bytea"; //$NON-NLS-1$
+ case DOUBLE:
+ return "double precision"; //$NON-NLS-1$
+ }
+
+ return super.getTypeName(field);
+ }
+
+ public String[] getReservedWords()
+ {
+ return RESERVED_WORDS;
+ }
+
+ /*
+ * TODO Remove this method override after fixing Bug 282791 - [DB] Check for existing tables instead of relying on
+ * SQLExceptions PostgreSQL uses transaction on DDL operations. If an error occurs, the SQL Connection goes to an
+ * error state, and can only be cleared by rolling back. Therefore, savepoints for table creation were added
+ */
+ @Override
+ public boolean createTable(IDBTable table, Statement statement) throws DBException
+ {
+ boolean created = true;
+ Savepoint savepoint = null;
+
+ try
+ {
+ savepoint = statement.getConnection().setSavepoint();
+ }
+ catch (SQLException ex)
+ {
+ OM.LOG.error(ex);
+ }
+
+ try
+ {
+ doCreateTable(table, statement);
+ }
+ catch (SQLException ex)
+ {
+ created = false;
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace("-- " + ex.getMessage() + ". Trying to rollback operation"); //$NON-NLS-1$
+ }
+
+ if (savepoint != null)
+ {
+ try
+ {
+ statement.getConnection().rollback(savepoint);
+ }
+ catch (SQLException ex1)
+ {
+ OM.LOG.error(ex1);
+ }
+ }
+ else
+ {
+ OM.LOG.error("Could not rollback last operation. Savepoint was not created."); //$NON-NLS-1$
+ }
+ }
+
+ validateTable(table, statement);
+ return created;
+ }
+
+ @Override
+ public DBType adaptType(DBType type)
+ {
+ switch (type)
+ {
+ // Due to Bug 289194: [DB] BLOB not correctly handled by PostgreSQL DBAdapter
+ case BLOB:
+ return DBType.VARBINARY;
+ }
+
+ return super.adaptType(type);
+ }
+}
diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java
index fcc778a09b..81903d1fa7 100644
--- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java
+++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java
@@ -1,1080 +1,1089 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.db;
-
-import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.db.ddl.IDBSchema;
-import org.eclipse.net4j.db.ddl.IDBTable;
-import org.eclipse.net4j.internal.db.DataSourceConnectionProvider;
-import org.eclipse.net4j.internal.db.bundle.OM;
-import org.eclipse.net4j.spi.db.DBSchema;
-import org.eclipse.net4j.util.ReflectUtil;
-import org.eclipse.net4j.util.io.ExtendedDataInput;
-import org.eclipse.net4j.util.io.ExtendedDataOutput;
-import org.eclipse.net4j.util.om.monitor.OMMonitor;
-import org.eclipse.net4j.util.om.monitor.OMMonitor.Async;
-import org.eclipse.net4j.util.om.trace.ContextTracer;
-
-import javax.sql.DataSource;
-
-import java.io.IOException;
-import java.sql.Blob;
-import java.sql.Clob;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-/**
- * A utility class with various static factory and convenience methods.
- *
- * @author Eike Stepper
- */
-public final class DBUtil
-{
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SQL, DBUtil.class);
-
- private DBUtil()
- {
- }
-
- /**
- * For debugging purposes ONLY!
- *
- * @deprecated Should only be used when debugging.
- * @since 3.0
- */
- @Deprecated
- public static void sqlDump(Connection conn, String sql)
- {
- ResultSet rs = null;
-
- try
- {
- TRACER.format("Dumping output of {0}", sql); //$NON-NLS-1$
- rs = conn.createStatement().executeQuery(sql);
- int numCol = rs.getMetaData().getColumnCount();
-
- StringBuilder row = new StringBuilder();
- for (int c = 1; c <= numCol; c++)
- {
- row.append(String.format("%10s | ", rs.getMetaData().getColumnLabel(c))); //$NON-NLS-1$
- }
-
- TRACER.trace(row.toString());
-
- row = new StringBuilder();
- for (int c = 1; c <= numCol; c++)
- {
- row.append("-----------+--"); //$NON-NLS-1$
- }
-
- TRACER.trace(row.toString());
-
- while (rs.next())
- {
- row = new StringBuilder();
- for (int c = 1; c <= numCol; c++)
- {
- row.append(String.format("%10s | ", rs.getString(c))); //$NON-NLS-1$
- }
-
- TRACER.trace(row.toString());
- }
-
- row = new StringBuilder();
- for (int c = 1; c <= numCol; c++)
- {
- row.append("-----------+-"); //$NON-NLS-1$
- }
-
- TRACER.trace(row.toString());
- }
- catch (SQLException ex)
- {
- // Do nothing
- }
- finally
- {
- close(rs);
- }
- }
-
- /**
- * For debugging purposes ONLY!
- *
- * @deprecated Should only be used when debugging.
- * @since 3.0
- */
- @Deprecated
- public static void sqlDump(IDBConnectionProvider connectionProvider, String sql)
- {
- Connection connection = connectionProvider.getConnection();
-
- try
- {
- sqlDump(connection, sql);
- }
- finally
- {
- close(connection);
- }
- }
-
- public static IDBSchema createSchema(String name)
- {
- return new DBSchema(name);
- }
-
- public static DataSource createDataSource(Map<Object, Object> properties)
- {
- return createDataSource(properties, null);
- }
-
- public static DataSource createDataSource(Map<Object, Object> properties, String namespace)
- {
- return createDataSource(properties, namespace, "class"); //$NON-NLS-1$
- }
-
- public static DataSource createDataSource(Map<Object, Object> properties, String namespace, String driverClassKey)
- {
- try
- {
- return (DataSource)ReflectUtil.instantiate(properties, namespace, driverClassKey, OM.class.getClassLoader());
- }
- catch (Exception ex)
- {
- throw new DBException(ex);
- }
- }
-
- public static IDBConnectionProvider createConnectionProvider(DataSource dataSource)
- {
- return new DataSourceConnectionProvider(dataSource);
- }
-
- /**
- * Can only be used when Eclipse is running. In standalone scenarios create the adapter instance by directly calling
- * the constructor of the adapter class.
- */
- public static IDBAdapter getDBAdapter(String adapterName)
- {
- return IDBAdapter.REGISTRY.get(adapterName);
- }
-
- public static Exception close(Connection connection)
- {
- if (connection != null)
- {
- try
- {
- // Only for connections with autoCommit = false, we try a rollback
- // first to clear any open transactions.
- if (!connection.getAutoCommit())
- {
- rollback(connection);
- }
-
- connection.close();
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- return ex;
- }
- }
-
- return null;
- }
-
- private static void rollback(Connection connection)
- {
- try
- {
- connection.rollback();
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- }
- }
-
- public static Exception close(Statement statement)
- {
- if (statement != null)
- {
- try
- {
- statement.close();
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- return ex;
- }
- }
-
- return null;
- }
-
- public static Exception close(ResultSet resultSet)
- {
- if (resultSet != null)
- {
- try
- {
- Statement statement = resultSet.getStatement();
- if (statement != null && statement.getMaxRows() != 0)
- {
- statement.setMaxRows(0);
- }
- }
- catch (Exception ignore)
- {
- }
-
- try
- {
- resultSet.close();
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- return ex;
- }
- }
-
- return null;
- }
-
- /**
- * @since 3.0
- */
- public static List<String> getAllSchemaTableNames(Connection connection)
- {
- try
- {
- DatabaseMetaData metaData = connection.getMetaData();
- return getAllSchemaTableNames(metaData);
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- }
-
- /**
- * @since 3.0
- */
- public static List<String> getAllSchemaTableNames(DatabaseMetaData metaData)
- {
- ResultSet schemas = null;
-
- try
- {
- List<String> names = new ArrayList<String>();
- schemas = metaData.getSchemas();
- while (schemas.next())
- {
- String name = schemas.getString(1);
- names.add(name);
- }
-
- return names;
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(schemas);
- }
- }
-
- public static List<String> getAllTableNames(Connection connection, String dbName)
- {
- ResultSet tables = null;
-
- try
- {
- List<String> names = new ArrayList<String>();
- DatabaseMetaData metaData = connection.getMetaData();
- if (dbName != null)
- {
- dbName = dbName.toUpperCase();
- List<String> schemaNames = getAllSchemaTableNames(metaData);
- if (!schemaNames.contains(dbName))
- {
- dbName = null;
- }
- }
-
- tables = metaData.getTables(null, dbName, null, new String[] { "TABLE" }); //$NON-NLS-1$
- while (tables.next())
- {
- String name = tables.getString(3);
- // System.out.println(tables.getString(2) + "." + name);
- names.add(name);
- }
-
- return names;
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(tables);
- }
- }
-
- /**
- * @since 4.0
- */
- public static List<Exception> dropAllTables(Connection connection, String dbName)
- {
- List<Exception> exceptions = new ArrayList<Exception>();
- Statement statement = null;
-
- try
- {
- statement = connection.createStatement();
- for (String tableName : DBUtil.getAllTableNames(connection, dbName))
- {
- String sql = "DROP TABLE " + tableName; //$NON-NLS-1$
- trace(sql);
-
- try
- {
- statement.execute(sql);
- }
- catch (SQLException ex)
- {
- exceptions.add(ex);
- }
- }
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- DBUtil.close(statement);
- }
-
- return exceptions;
- }
-
- /**
- * @since 3.0
- */
- public static int selectMinimumInt(Connection connection, IDBField field, String... where) throws DBException
- {
- Number number = getFunctionResult(connection, field, "MIN", where); //$NON-NLS-1$
- if (number instanceof Integer)
- {
- return (Integer)number;
- }
- else if (number == null)
- {
- return 0;
- }
-
- throw new DBException("Not an integer number: " + number); //$NON-NLS-1$
- }
-
- /**
- * @since 3.0
- */
- public static long selectMinimumLong(Connection connection, IDBField field, String... where) throws DBException
- {
- Number number = getFunctionResult(connection, field, "MIN", where); //$NON-NLS-1$
- if (number instanceof Long)
- {
- return (Long)number;
- }
- else if (number == null)
- {
- return 0L;
- }
-
- throw new DBException("Not a long number: " + number); //$NON-NLS-1$
- }
-
- /**
- * @since 3.0
- */
- public static int selectMaximumInt(Connection connection, IDBField field, String... where) throws DBException
- {
- Number number = getFunctionResult(connection, field, "MAX", where); //$NON-NLS-1$
- if (number instanceof Integer)
- {
- return (Integer)number;
- }
- else if (number == null)
- {
- return 0;
- }
-
- throw new DBException("Not an integer number: " + number); //$NON-NLS-1$
- }
-
- /**
- * @since 3.0
- */
- public static long selectMaximumLong(Connection connection, IDBField field, String... where) throws DBException
- {
- Number number = getFunctionResult(connection, field, "MAX", where); //$NON-NLS-1$
- if (number instanceof Long)
- {
- return (Long)number;
- }
- else if (number == null)
- {
- return 0L;
- }
-
- throw new DBException("Not a long number: " + number); //$NON-NLS-1$
- }
-
- private static Number getFunctionResult(Connection connection, IDBField field, String function, String... where)
- throws DBException
- {
- StringBuilder builder = new StringBuilder();
- builder.append("SELECT "); //$NON-NLS-1$
- builder.append(function);
- builder.append("("); //$NON-NLS-1$
- builder.append(field);
- builder.append(") FROM "); //$NON-NLS-1$
- builder.append(field.getTable());
-
- for (int i = 0; i < where.length; i++)
- {
- if (i == 0)
- {
- builder.append(" WHERE "); //$NON-NLS-1$
- }
- else
- {
- builder.append(" AND "); //$NON-NLS-1$
- }
-
- builder.append("("); //$NON-NLS-1$
- builder.append(where[i]);
- builder.append(")"); //$NON-NLS-1$
- }
-
- String sql = trace(builder.toString());
- Statement statement = null;
- ResultSet resultSet = null;
-
- try
- {
- statement = connection.createStatement();
-
- try
- {
- resultSet = statement.executeQuery(sql);
- if (!resultSet.next())
- {
- return null;
- }
-
- return (Number)resultSet.getObject(1);
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(resultSet);
- }
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(statement);
- }
- }
-
- /**
- * @since 4.1
- */
- public static void executeBatch(PreparedStatement stmt, int counter)
- {
- executeBatch(stmt, counter, true);
- }
-
- /**
- * @since 4.1
- */
- public static void executeBatch(PreparedStatement stmt, int counter, boolean checkExactlyOne)
- {
- try
- {
- int[] results = stmt.executeBatch();
- if (results.length != counter)
- {
- throw new DBException("Statement has " + results.length + " results (expected: " + counter + ")");
- }
-
- for (int i = 0; i < results.length; i++)
- {
- int result = results[i];
- if (result < 0 && result != Statement.SUCCESS_NO_INFO)
- {
- throw new DBException("Result " + i + " is not successful: " + result);
- }
- else if (checkExactlyOne && result != 1)
- {
- throw new DBException("Result " + i + " did not affect exactly one row: " + result);
- }
- }
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- }
-
- public static int update(Connection connection, String sql)
- {
- trace(sql);
- Statement statement = null;
-
- try
- {
- statement = connection.createStatement();
- return statement.executeUpdate(sql);
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(statement);
- }
- }
-
- /**
- * Execute update on the given prepared statement and handle common cases of return values.
- *
- * @param stmt
- * the prepared statement
- * @param exactlyOne
- * if <code>true</code>, the update count is checked to be <code>1</code>. Else the update result is only
- * checked so that the update was successful (i.e. result code != Statement.EXECUTE_FAILED).
- * @return the update count / execution result as returned by {@link PreparedStatement#executeUpdate()}. Can be used
- * by the caller to perform more advanced checks.
- * @throws SQLException
- * if {@link PreparedStatement#executeUpdate()} throws it.
- * @throws IllegalStateException
- * if the check indicated by <code>excatlyOne</code> indicates an error.
- * @since 4.0
- */
- public static int update(PreparedStatement stmt, boolean exactlyOne) throws SQLException
- {
- trace(stmt.toString());
- int result = stmt.executeUpdate();
-
- // basic check of update result
- if (exactlyOne && result != 1)
- {
- throw new IllegalStateException(stmt.toString() + " returned Update count " + result + " (expected: 1)"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- if (result == Statement.EXECUTE_FAILED)
- {
- throw new IllegalStateException(stmt.toString() + " returned EXECUTE_FAILED"); //$NON-NLS-1$
- }
-
- return result;
- }
-
- /**
- * @since 4.1
- */
- public static int clearTable(Connection connection, IDBTable table)
- {
- return clearTable(connection, table.getName());
- }
-
- /**
- * @since 4.1
- */
- public static int clearTable(Connection connection, String tableName)
- {
- String sql = "DELETE FROM " + tableName;
- return update(connection, sql);
- }
-
- public static int select(Connection connection, IDBRowHandler rowHandler, String where, IDBField... fields)
- throws DBException
- {
- IDBTable table = fields[0].getTable();
- for (int i = 1; i < fields.length; i++)
- {
- if (fields[i].getTable() != table)
- {
- throw new IllegalArgumentException("Multiple tables not allowed: " + Arrays.asList(fields)); //$NON-NLS-1$
- }
- }
-
- StringBuilder builder = new StringBuilder();
- builder.append("SELECT "); //$NON-NLS-1$
- for (int i = 0; i < fields.length; i++)
- {
- if (i > 0)
- {
- builder.append(", "); //$NON-NLS-1$
- }
-
- builder.append(fields[i]);
- }
-
- builder.append(" FROM "); //$NON-NLS-1$
- builder.append(table);
- if (where != null)
- {
- builder.append(" WHERE "); //$NON-NLS-1$
- builder.append(where);
- }
-
- String sql = trace(builder.toString());
- Statement statement = null;
- ResultSet resultSet = null;
-
- try
- {
- statement = connection.createStatement();
-
- try
- {
- int rows = 0;
- boolean proceed = true;
- Object[] values = new Object[fields.length];
- resultSet = statement.executeQuery(sql);
- while (proceed && resultSet.next())
- {
- for (int i = 0; i < fields.length; i++)
- {
- values[i] = resultSet.getObject(i + 1);
- if (values[i] instanceof Blob)
- {
- Blob blob = (Blob)values[i];
- long length = blob.length();
- if (length > Integer.MAX_VALUE)
- {
- throw new IllegalStateException("byte[] too long: " + length); //$NON-NLS-1$
- }
-
- values[i] = blob.getBytes(1, (int)length);
- }
- else if (values[i] instanceof Clob)
- {
- Clob clob = (Clob)values[i];
- long length = clob.length();
- if (length > Integer.MAX_VALUE)
- {
- throw new IllegalStateException("String too long: " + length); //$NON-NLS-1$
- }
-
- values[i] = clob.getSubString(1, (int)length);
- }
- }
-
- proceed = rowHandler.handle(rows++, values);
- }
-
- return rows;
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(resultSet);
- }
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(statement);
- }
- }
-
- public static int select(Connection connection, IDBRowHandler rowHandler, IDBField... fields) throws DBException
- {
- return select(connection, rowHandler, null, fields);
- }
-
- public static Object[] select(Connection connection, String where, IDBField... fields) throws DBException
- {
- final Object[][] result = new Object[1][];
- IDBRowHandler rowHandler = new IDBRowHandler()
- {
- public boolean handle(int row, Object... values)
- {
- result[0] = values;
- return false;
- }
- };
-
- select(connection, rowHandler, where, fields);
- return result[0];
- }
-
- /**
- * Returns the number of rows contained in the given result set.
- * <p>
- * The {@link ResultSet#getStatement() statement} of the result set must have been created with
- * {@link ResultSet#TYPE_SCROLL_INSENSITIVE TYPE_SCROLL_INSENSITIVE}.
- *
- * @since 4.0
- */
- public static int getRowCount(ResultSet resultSet) throws DBException
- {
- reset(resultSet);
-
- try
- {
- resultSet.last();
- return resultSet.getRow();
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- reset(resultSet);
- }
- }
-
- private static void reset(ResultSet resultSet) throws DBException
- {
- try
- {
- resultSet.beforeFirst();
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- }
-
- /**
- * @since 3.0
- */
- public static void serializeTable(ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias,
- String sqlSuffix) throws DBException, IOException
- {
- serializeTable(out, connection, table, tableAlias, sqlSuffix, null);
- }
-
- /**
- * @since 4.1
- */
- public static void serializeTable(ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias,
- String sqlSuffix, SerializeRowHandler handler) throws DBException, IOException
- {
- IDBField[] fields = table.getFields();
-
- StringBuilder builder = new StringBuilder();
- builder.append("SELECT "); //$NON-NLS-1$
- for (int i = 0; i < fields.length; i++)
- {
- if (i > 0)
- {
- builder.append(", "); //$NON-NLS-1$
- }
-
- if (tableAlias != null)
- {
- builder.append(tableAlias);
- builder.append("."); //$NON-NLS-1$
- }
-
- builder.append(fields[i]);
- }
-
- builder.append(" FROM "); //$NON-NLS-1$
- builder.append(table);
- if (tableAlias != null)
- {
- builder.append(" "); //$NON-NLS-1$
- builder.append(tableAlias);
- }
-
- if (sqlSuffix != null)
- {
- builder.append(sqlSuffix);
- }
-
- String sql = trace(builder.toString());
- Statement statement = null;
- ResultSet resultSet = null;
- boolean successful = false;
-
- try
- {
- statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
-
- try
- {
- resultSet = statement.executeQuery(sql);
-
- // Write resultSet size for progress monitoring
- int size = getRowCount(resultSet);
- out.writeInt(size);
- if (size == 0)
- {
- return;
- }
-
- Object[] values = handler != null ? new Object[fields.length] : null;
-
- while (resultSet.next())
- {
- for (int i = 0; i < fields.length; i++)
- {
- IDBField field = fields[i];
- DBType type = field.getType();
- boolean canBeNull = !field.isNotNull();
-
- Object value = type.writeValueWithResult(out, resultSet, i + 1, canBeNull);
- if (values != null)
- {
- values[i] = value;
- }
- }
-
- if (handler != null)
- {
- handler.handleRow(out, connection, fields, values);
- }
- }
-
- successful = true;
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(resultSet);
- }
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- try
- {
- if (handler != null)
- {
- handler.done(successful);
- }
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(statement);
- }
- }
- }
-
- /**
- * @since 4.0
- */
- public static void deserializeTable(ExtendedDataInput in, Connection connection, IDBTable table, OMMonitor monitor)
- throws IOException
- {
- deserializeTable(in, connection, table, monitor, null);
- }
-
- /**
- * @since 4.1
- */
- public static void deserializeTable(ExtendedDataInput in, Connection connection, IDBTable table, OMMonitor monitor,
- DeserializeRowHandler handler) throws IOException
- {
- int size = in.readInt();
- if (size == 0)
- {
- return;
- }
-
- IDBField[] fields = table.getFields();
-
- StringBuilder builder = new StringBuilder();
- StringBuilder params = new StringBuilder();
-
- builder.append("INSERT INTO "); //$NON-NLS-1$
- builder.append(table);
- builder.append("("); //$NON-NLS-1$
-
- for (int i = 0; i < fields.length; i++)
- {
- if (i > 0)
- {
- builder.append(", "); //$NON-NLS-1$
- params.append(", "); //$NON-NLS-1$
- }
-
- builder.append(fields[i]);
- params.append("?"); //$NON-NLS-1$
- }
-
- builder.append(") VALUES ("); //$NON-NLS-1$
- builder.append(params.toString());
- builder.append(")"); //$NON-NLS-1$
-
- String sql = trace(builder.toString());
- PreparedStatement statement = null;
- boolean successful = false;
-
- monitor.begin(1 + 2 * size);
-
- try
- {
- statement = connection.prepareStatement(sql);
- monitor.worked();
-
- Object[] values = handler != null ? new Object[fields.length] : null;
-
- for (int row = 0; row < size; row++)
- {
- for (int i = 0; i < fields.length; i++)
- {
- IDBField field = fields[i];
- DBType type = field.getType();
- boolean canBeNull = !field.isNotNull();
- Object value = type.readValueWithResult(in, statement, i + 1, canBeNull);
- if (values != null)
- {
- values[i] = value;
- }
- }
-
- statement.addBatch();
- if (handler != null)
- {
- handler.handleRow(in, connection, fields, values);
- }
-
- monitor.worked();
- }
-
- Async async = monitor.forkAsync(size);
-
- try
- {
- statement.executeBatch();
- }
- finally
- {
- async.stop();
- }
-
- successful = true;
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- try
- {
- if (handler != null)
- {
- handler.done(successful);
- }
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- close(statement);
- monitor.done();
- }
- }
- }
-
- /**
- * @since 3.0
- */
- public static String trace(String sql)
- {
- if (TRACER.isEnabled())
- {
- TRACER.trace(sql);
- }
-
- return sql;
- }
-
- /**
- * @author Eike Stepper
- * @since 4.1
- */
- public interface RowHandler
- {
- public void done(boolean successful) throws SQLException, IOException;
- }
-
- /**
- * @author Eike Stepper
- * @since 4.1
- */
- public interface SerializeRowHandler extends RowHandler
- {
- public void handleRow(ExtendedDataOutput out, Connection connection, IDBField[] fields, Object[] values)
- throws SQLException, IOException;
- }
-
- /**
- * @author Eike Stepper
- * @since 4.1
- */
- public interface DeserializeRowHandler extends RowHandler
- {
- public void handleRow(ExtendedDataInput in, Connection connection, IDBField[] fields, Object[] values)
- throws SQLException, IOException;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.db;
+
+import org.eclipse.net4j.db.ddl.IDBField;
+import org.eclipse.net4j.db.ddl.IDBSchema;
+import org.eclipse.net4j.db.ddl.IDBTable;
+import org.eclipse.net4j.internal.db.DataSourceConnectionProvider;
+import org.eclipse.net4j.internal.db.bundle.OM;
+import org.eclipse.net4j.spi.db.DBSchema;
+import org.eclipse.net4j.util.ReflectUtil;
+import org.eclipse.net4j.util.io.ExtendedDataInput;
+import org.eclipse.net4j.util.io.ExtendedDataOutput;
+import org.eclipse.net4j.util.om.monitor.OMMonitor;
+import org.eclipse.net4j.util.om.monitor.OMMonitor.Async;
+import org.eclipse.net4j.util.om.trace.ContextTracer;
+
+import javax.sql.DataSource;
+
+import java.io.IOException;
+import java.sql.Blob;
+import java.sql.Clob;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A utility class with various static factory and convenience methods.
+ *
+ * @author Eike Stepper
+ */
+public final class DBUtil
+{
+ private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SQL, DBUtil.class);
+
+ private DBUtil()
+ {
+ }
+
+ /**
+ * For debugging purposes ONLY!
+ *
+ * @deprecated Should only be used when debugging.
+ * @since 3.0
+ */
+ @Deprecated
+ public static void sqlDump(Connection conn, String sql)
+ {
+ ResultSet rs = null;
+
+ try
+ {
+ TRACER.format("Dumping output of {0}", sql); //$NON-NLS-1$
+ rs = conn.createStatement().executeQuery(sql);
+ int numCol = rs.getMetaData().getColumnCount();
+
+ StringBuilder row = new StringBuilder();
+ for (int c = 1; c <= numCol; c++)
+ {
+ row.append(String.format("%10s | ", rs.getMetaData().getColumnLabel(c))); //$NON-NLS-1$
+ }
+
+ TRACER.trace(row.toString());
+
+ row = new StringBuilder();
+ for (int c = 1; c <= numCol; c++)
+ {
+ row.append("-----------+--"); //$NON-NLS-1$
+ }
+
+ TRACER.trace(row.toString());
+
+ while (rs.next())
+ {
+ row = new StringBuilder();
+ for (int c = 1; c <= numCol; c++)
+ {
+ row.append(String.format("%10s | ", rs.getString(c))); //$NON-NLS-1$
+ }
+
+ TRACER.trace(row.toString());
+ }
+
+ row = new StringBuilder();
+ for (int c = 1; c <= numCol; c++)
+ {
+ row.append("-----------+-"); //$NON-NLS-1$
+ }
+
+ TRACER.trace(row.toString());
+ }
+ catch (SQLException ex)
+ {
+ // Do nothing
+ }
+ finally
+ {
+ close(rs);
+ }
+ }
+
+ /**
+ * For debugging purposes ONLY!
+ *
+ * @deprecated Should only be used when debugging.
+ * @since 3.0
+ */
+ @Deprecated
+ public static void sqlDump(IDBConnectionProvider connectionProvider, String sql)
+ {
+ Connection connection = connectionProvider.getConnection();
+
+ try
+ {
+ sqlDump(connection, sql);
+ }
+ finally
+ {
+ close(connection);
+ }
+ }
+
+ public static IDBSchema createSchema(String name)
+ {
+ return new DBSchema(name);
+ }
+
+ public static DataSource createDataSource(Map<Object, Object> properties)
+ {
+ return createDataSource(properties, null);
+ }
+
+ public static DataSource createDataSource(Map<Object, Object> properties, String namespace)
+ {
+ return createDataSource(properties, namespace, "class"); //$NON-NLS-1$
+ }
+
+ public static DataSource createDataSource(Map<Object, Object> properties, String namespace, String driverClassKey)
+ {
+ try
+ {
+ return (DataSource)ReflectUtil.instantiate(properties, namespace, driverClassKey, OM.class.getClassLoader());
+ }
+ catch (Exception ex)
+ {
+ throw new DBException(ex);
+ }
+ }
+
+ public static IDBConnectionProvider createConnectionProvider(DataSource dataSource)
+ {
+ return new DataSourceConnectionProvider(dataSource);
+ }
+
+ /**
+ * Can only be used when Eclipse is running. In standalone scenarios create the adapter instance by directly calling
+ * the constructor of the adapter class.
+ */
+ public static IDBAdapter getDBAdapter(String adapterName)
+ {
+ return IDBAdapter.REGISTRY.get(adapterName);
+ }
+
+ public static Exception close(Connection connection)
+ {
+ if (connection != null)
+ {
+ try
+ {
+ // Only for connections with autoCommit = false, we try a rollback
+ // first to clear any open transactions.
+ if (!connection.getAutoCommit())
+ {
+ rollback(connection);
+ }
+
+ connection.close();
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ return ex;
+ }
+ }
+
+ return null;
+ }
+
+ private static void rollback(Connection connection)
+ {
+ try
+ {
+ connection.rollback();
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ }
+ }
+
+ public static Exception close(Statement statement)
+ {
+ if (statement != null)
+ {
+ try
+ {
+ statement.close();
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ return ex;
+ }
+ }
+
+ return null;
+ }
+
+ public static Exception close(ResultSet resultSet)
+ {
+ if (resultSet != null)
+ {
+ try
+ {
+ Statement statement = resultSet.getStatement();
+ if (statement != null && statement.getMaxRows() != 0)
+ {
+ statement.setMaxRows(0);
+ }
+ }
+ catch (Exception ignore)
+ {
+ }
+
+ try
+ {
+ resultSet.close();
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ return ex;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static List<String> getAllSchemaTableNames(Connection connection)
+ {
+ try
+ {
+ DatabaseMetaData metaData = connection.getMetaData();
+ return getAllSchemaTableNames(metaData);
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static List<String> getAllSchemaTableNames(DatabaseMetaData metaData)
+ {
+ ResultSet schemas = null;
+
+ try
+ {
+ List<String> names = new ArrayList<String>();
+ schemas = metaData.getSchemas();
+ while (schemas.next())
+ {
+ String name = schemas.getString(1);
+ names.add(name);
+ }
+
+ return names;
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(schemas);
+ }
+ }
+
+ public static List<String> getAllTableNames(Connection connection, String dbName)
+ {
+ ResultSet tables = null;
+
+ try
+ {
+ List<String> names = new ArrayList<String>();
+ DatabaseMetaData metaData = connection.getMetaData();
+ if (dbName != null)
+ {
+ dbName = dbName.toUpperCase();
+ List<String> schemaNames = getAllSchemaTableNames(metaData);
+ if (!schemaNames.contains(dbName))
+ {
+ dbName = null;
+ }
+ }
+
+ tables = metaData.getTables(null, dbName, null, new String[] { "TABLE" }); //$NON-NLS-1$
+ while (tables.next())
+ {
+ String name = tables.getString(3);
+ // System.out.println(tables.getString(2) + "." + name);
+ names.add(name);
+ }
+
+ return names;
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(tables);
+ }
+ }
+
+ /**
+ * @since 4.0
+ */
+ public static List<Exception> dropAllTables(Connection connection, String dbName)
+ {
+ List<Exception> exceptions = new ArrayList<Exception>();
+ Statement statement = null;
+
+ try
+ {
+ statement = connection.createStatement();
+ for (String tableName : DBUtil.getAllTableNames(connection, dbName))
+ {
+ String sql = "DROP TABLE " + tableName; //$NON-NLS-1$
+ trace(sql);
+
+ try
+ {
+ statement.execute(sql);
+ }
+ catch (SQLException ex)
+ {
+ exceptions.add(ex);
+ }
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ DBUtil.close(statement);
+ }
+
+ return exceptions;
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static int selectMinimumInt(Connection connection, IDBField field, String... where) throws DBException
+ {
+ Number number = getFunctionResult(connection, field, "MIN", where); //$NON-NLS-1$
+ if (number instanceof Integer)
+ {
+ return (Integer)number;
+ }
+ else if (number == null)
+ {
+ return 0;
+ }
+
+ throw new DBException("Not an integer number: " + number); //$NON-NLS-1$
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static long selectMinimumLong(Connection connection, IDBField field, String... where) throws DBException
+ {
+ Number number = getFunctionResult(connection, field, "MIN", where); //$NON-NLS-1$
+ if (number instanceof Long)
+ {
+ return (Long)number;
+ }
+ else if (number == null)
+ {
+ return 0L;
+ }
+
+ throw new DBException("Not a long number: " + number); //$NON-NLS-1$
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static int selectMaximumInt(Connection connection, IDBField field, String... where) throws DBException
+ {
+ Number number = getFunctionResult(connection, field, "MAX", where); //$NON-NLS-1$
+ if (number instanceof Integer)
+ {
+ return (Integer)number;
+ }
+ else if (number == null)
+ {
+ return 0;
+ }
+
+ throw new DBException("Not an integer number: " + number); //$NON-NLS-1$
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static long selectMaximumLong(Connection connection, IDBField field, String... where) throws DBException
+ {
+ Number number = getFunctionResult(connection, field, "MAX", where); //$NON-NLS-1$
+ if (number instanceof Long)
+ {
+ return (Long)number;
+ }
+ else if (number == null)
+ {
+ return 0L;
+ }
+
+ throw new DBException("Not a long number: " + number); //$NON-NLS-1$
+ }
+
+ private static Number getFunctionResult(Connection connection, IDBField field, String function, String... where)
+ throws DBException
+ {
+ StringBuilder builder = new StringBuilder();
+ builder.append("SELECT "); //$NON-NLS-1$
+ builder.append(function);
+ builder.append("("); //$NON-NLS-1$
+ builder.append(field);
+ builder.append(") FROM "); //$NON-NLS-1$
+ builder.append(field.getTable());
+
+ for (int i = 0; i < where.length; i++)
+ {
+ if (i == 0)
+ {
+ builder.append(" WHERE "); //$NON-NLS-1$
+ }
+ else
+ {
+ builder.append(" AND "); //$NON-NLS-1$
+ }
+
+ builder.append("("); //$NON-NLS-1$
+ builder.append(where[i]);
+ builder.append(")"); //$NON-NLS-1$
+ }
+
+ String sql = trace(builder.toString());
+ Statement statement = null;
+ ResultSet resultSet = null;
+
+ try
+ {
+ statement = connection.createStatement();
+
+ try
+ {
+ resultSet = statement.executeQuery(sql);
+ if (!resultSet.next())
+ {
+ return null;
+ }
+
+ return (Number)resultSet.getObject(1);
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(resultSet);
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(statement);
+ }
+ }
+
+ /**
+ * @since 4.1
+ */
+ public static void executeBatch(PreparedStatement stmt, int counter)
+ {
+ executeBatch(stmt, counter, true);
+ }
+
+ /**
+ * @since 4.1
+ */
+ public static void executeBatch(PreparedStatement stmt, int counter, boolean checkExactlyOne)
+ {
+ try
+ {
+ int[] results = stmt.executeBatch();
+ if (results.length != counter)
+ {
+ throw new DBException("Statement has " + results.length + " results (expected: " + counter + ")");
+ }
+
+ for (int i = 0; i < results.length; i++)
+ {
+ int result = results[i];
+ if (result < 0 && result != Statement.SUCCESS_NO_INFO)
+ {
+ throw new DBException("Result " + i + " is not successful: " + result);
+ }
+ else if (checkExactlyOne && result != 1)
+ {
+ throw new DBException("Result " + i + " did not affect exactly one row: " + result);
+ }
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ }
+
+ public static int update(Connection connection, String sql)
+ {
+ trace(sql);
+ Statement statement = null;
+
+ try
+ {
+ statement = connection.createStatement();
+ return statement.executeUpdate(sql);
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(statement);
+ }
+ }
+
+ /**
+ * Execute update on the given prepared statement and handle common cases of return values.
+ *
+ * @param stmt
+ * the prepared statement
+ * @param exactlyOne
+ * if <code>true</code>, the update count is checked to be <code>1</code>. Else the update result is only
+ * checked so that the update was successful (i.e. result code != Statement.EXECUTE_FAILED).
+ * @return the update count / execution result as returned by {@link PreparedStatement#executeUpdate()}. Can be used
+ * by the caller to perform more advanced checks.
+ * @throws SQLException
+ * if {@link PreparedStatement#executeUpdate()} throws it.
+ * @throws IllegalStateException
+ * if the check indicated by <code>excatlyOne</code> indicates an error.
+ * @since 4.0
+ */
+ public static int update(PreparedStatement stmt, boolean exactlyOne) throws SQLException
+ {
+ trace(stmt.toString());
+ int result = stmt.executeUpdate();
+
+ // basic check of update result
+ if (exactlyOne && result != 1)
+ {
+ throw new IllegalStateException(stmt.toString() + " returned Update count " + result + " (expected: 1)"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ if (result == Statement.EXECUTE_FAILED)
+ {
+ throw new IllegalStateException(stmt.toString() + " returned EXECUTE_FAILED"); //$NON-NLS-1$
+ }
+
+ return result;
+ }
+
+ /**
+ * @since 4.1
+ */
+ public static int clearTable(Connection connection, IDBTable table)
+ {
+ return clearTable(connection, table.getName());
+ }
+
+ /**
+ * @since 4.1
+ */
+ public static int clearTable(Connection connection, String tableName)
+ {
+ String sql = "DELETE FROM " + tableName;
+ return update(connection, sql);
+ }
+
+ public static int select(Connection connection, IDBRowHandler rowHandler, String where, IDBField... fields)
+ throws DBException
+ {
+ IDBTable table = fields[0].getTable();
+ for (int i = 1; i < fields.length; i++)
+ {
+ if (fields[i].getTable() != table)
+ {
+ throw new IllegalArgumentException("Multiple tables not allowed: " + Arrays.asList(fields)); //$NON-NLS-1$
+ }
+ }
+
+ StringBuilder builder = new StringBuilder();
+ builder.append("SELECT "); //$NON-NLS-1$
+ for (int i = 0; i < fields.length; i++)
+ {
+ if (i > 0)
+ {
+ builder.append(", "); //$NON-NLS-1$
+ }
+
+ builder.append(fields[i]);
+ }
+
+ builder.append(" FROM "); //$NON-NLS-1$
+ builder.append(table);
+ if (where != null)
+ {
+ builder.append(" WHERE "); //$NON-NLS-1$
+ builder.append(where);
+ }
+
+ String sql = trace(builder.toString());
+ Statement statement = null;
+ ResultSet resultSet = null;
+
+ try
+ {
+ statement = connection.createStatement();
+
+ try
+ {
+ int rows = 0;
+ boolean proceed = true;
+ Object[] values = new Object[fields.length];
+ resultSet = statement.executeQuery(sql);
+ while (proceed && resultSet.next())
+ {
+ for (int i = 0; i < fields.length; i++)
+ {
+ values[i] = resultSet.getObject(i + 1);
+ if (values[i] instanceof Blob)
+ {
+ Blob blob = (Blob)values[i];
+ long length = blob.length();
+ if (length > Integer.MAX_VALUE)
+ {
+ throw new IllegalStateException("byte[] too long: " + length); //$NON-NLS-1$
+ }
+
+ values[i] = blob.getBytes(1, (int)length);
+ }
+ else if (values[i] instanceof Clob)
+ {
+ Clob clob = (Clob)values[i];
+ long length = clob.length();
+ if (length > Integer.MAX_VALUE)
+ {
+ throw new IllegalStateException("String too long: " + length); //$NON-NLS-1$
+ }
+
+ values[i] = clob.getSubString(1, (int)length);
+ }
+ }
+
+ proceed = rowHandler.handle(rows++, values);
+ }
+
+ return rows;
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(resultSet);
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(statement);
+ }
+ }
+
+ public static int select(Connection connection, IDBRowHandler rowHandler, IDBField... fields) throws DBException
+ {
+ return select(connection, rowHandler, null, fields);
+ }
+
+ public static Object[] select(Connection connection, String where, IDBField... fields) throws DBException
+ {
+ final Object[][] result = new Object[1][];
+ IDBRowHandler rowHandler = new IDBRowHandler()
+ {
+ public boolean handle(int row, Object... values)
+ {
+ result[0] = values;
+ return false;
+ }
+ };
+
+ select(connection, rowHandler, where, fields);
+ return result[0];
+ }
+
+ /**
+ * Returns the number of rows contained in the given result set.
+ * <p>
+ * The {@link ResultSet#getStatement() statement} of the result set must have been created with
+ * {@link ResultSet#TYPE_SCROLL_INSENSITIVE TYPE_SCROLL_INSENSITIVE}.
+ *
+ * @since 4.0
+ */
+ public static int getRowCount(ResultSet resultSet) throws DBException
+ {
+ reset(resultSet);
+
+ try
+ {
+ resultSet.last();
+ return resultSet.getRow();
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ reset(resultSet);
+ }
+ }
+
+ private static void reset(ResultSet resultSet) throws DBException
+ {
+ try
+ {
+ resultSet.beforeFirst();
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static void serializeTable(ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias,
+ String sqlSuffix) throws DBException, IOException
+ {
+ serializeTable(out, connection, table, tableAlias, sqlSuffix, null);
+ }
+
+ /**
+ * @since 4.1
+ */
+ public static void serializeTable(ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias,
+ String sqlSuffix, SerializeRowHandler handler) throws DBException, IOException
+ {
+ IDBField[] fields = table.getFields();
+
+ StringBuilder builder = new StringBuilder();
+ builder.append("SELECT "); //$NON-NLS-1$
+ for (int i = 0; i < fields.length; i++)
+ {
+ if (i > 0)
+ {
+ builder.append(", "); //$NON-NLS-1$
+ }
+
+ if (tableAlias != null)
+ {
+ builder.append(tableAlias);
+ builder.append("."); //$NON-NLS-1$
+ }
+
+ builder.append(fields[i]);
+ }
+
+ builder.append(" FROM "); //$NON-NLS-1$
+ builder.append(table);
+ if (tableAlias != null)
+ {
+ builder.append(" "); //$NON-NLS-1$
+ builder.append(tableAlias);
+ }
+
+ if (sqlSuffix != null)
+ {
+ builder.append(sqlSuffix);
+ }
+
+ String sql = trace(builder.toString());
+ Statement statement = null;
+ ResultSet resultSet = null;
+ boolean successful = false;
+
+ try
+ {
+ statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
+
+ try
+ {
+ resultSet = statement.executeQuery(sql);
+
+ // Write resultSet size for progress monitoring
+ int size = getRowCount(resultSet);
+ out.writeInt(size);
+ if (size == 0)
+ {
+ return;
+ }
+
+ Object[] values = handler != null ? new Object[fields.length] : null;
+
+ while (resultSet.next())
+ {
+ for (int i = 0; i < fields.length; i++)
+ {
+ IDBField field = fields[i];
+ DBType type = field.getType();
+ boolean canBeNull = !field.isNotNull();
+
+ Object value = type.writeValueWithResult(out, resultSet, i + 1, canBeNull);
+ if (values != null)
+ {
+ values[i] = value;
+ }
+ }
+
+ if (handler != null)
+ {
+ handler.handleRow(out, connection, fields, values);
+ }
+ }
+
+ successful = true;
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(resultSet);
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ try
+ {
+ if (handler != null)
+ {
+ handler.done(successful);
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(statement);
+ }
+ }
+ }
+
+ /**
+ * @since 4.0
+ */
+ public static void deserializeTable(ExtendedDataInput in, Connection connection, IDBTable table, OMMonitor monitor)
+ throws IOException
+ {
+ deserializeTable(in, connection, table, monitor, null);
+ }
+
+ /**
+ * @since 4.1
+ */
+ public static void deserializeTable(ExtendedDataInput in, Connection connection, IDBTable table, OMMonitor monitor,
+ DeserializeRowHandler handler) throws IOException
+ {
+ int size = in.readInt();
+ if (size == 0)
+ {
+ return;
+ }
+
+ IDBField[] fields = table.getFields();
+
+ StringBuilder builder = new StringBuilder();
+ StringBuilder params = new StringBuilder();
+
+ builder.append("INSERT INTO "); //$NON-NLS-1$
+ builder.append(table);
+ builder.append("("); //$NON-NLS-1$
+
+ for (int i = 0; i < fields.length; i++)
+ {
+ if (i > 0)
+ {
+ builder.append(", "); //$NON-NLS-1$
+ params.append(", "); //$NON-NLS-1$
+ }
+
+ builder.append(fields[i]);
+ params.append("?"); //$NON-NLS-1$
+ }
+
+ builder.append(") VALUES ("); //$NON-NLS-1$
+ builder.append(params.toString());
+ builder.append(")"); //$NON-NLS-1$
+
+ String sql = trace(builder.toString());
+ PreparedStatement statement = null;
+ boolean successful = false;
+
+ monitor.begin(1 + 2 * size);
+
+ try
+ {
+ statement = connection.prepareStatement(sql);
+ monitor.worked();
+
+ Object[] values = handler != null ? new Object[fields.length] : null;
+
+ for (int row = 0; row < size; row++)
+ {
+ for (int i = 0; i < fields.length; i++)
+ {
+ IDBField field = fields[i];
+ DBType type = field.getType();
+ boolean canBeNull = !field.isNotNull();
+ Object value = type.readValueWithResult(in, statement, i + 1, canBeNull);
+ if (values != null)
+ {
+ values[i] = value;
+ }
+ }
+
+ statement.addBatch();
+ if (handler != null)
+ {
+ handler.handleRow(in, connection, fields, values);
+ }
+
+ monitor.worked();
+ }
+
+ Async async = monitor.forkAsync(size);
+
+ try
+ {
+ statement.executeBatch();
+ }
+ finally
+ {
+ async.stop();
+ }
+
+ successful = true;
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ try
+ {
+ if (handler != null)
+ {
+ handler.done(successful);
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ close(statement);
+ monitor.done();
+ }
+ }
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static String trace(String sql)
+ {
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace(sql);
+ }
+
+ return sql;
+ }
+
+ /**
+ * Call-back interface with a {@link #done(boolean) method} that is called <i>after</i>
+ * a number of table rows have been handled by one of the subtypes of this interface.
+ *
+ * @author Eike Stepper
+ * @since 4.1
+ */
+ public interface RowHandler
+ {
+ public void done(boolean successful) throws SQLException, IOException;
+ }
+
+ /**
+ * A {@link RowHandler row handler} with a {@link #handleRow(ExtendedDataOutput, Connection, IDBField[], Object[]) method}
+ * that is called once per row serialized within {@link DBUtil#serializeTable(ExtendedDataOutput, Connection, IDBTable, String, String, SerializeRowHandler) DBUtil.serializeTable()}.
+ *
+ * @author Eike Stepper
+ * @since 4.1
+ */
+ public interface SerializeRowHandler extends RowHandler
+ {
+ public void handleRow(ExtendedDataOutput out, Connection connection, IDBField[] fields, Object[] values)
+ throws SQLException, IOException;
+ }
+
+ /**
+ * A {@link RowHandler row handler} with a {@link #handleRow(ExtendedDataInput, Connection, IDBField[], Object[]) method}
+ * that is called once per row deserialized within {@link DBUtil#deserializeTable(ExtendedDataInput, Connection, IDBTable, OMMonitor, DeserializeRowHandler) DBUtil.deserializeTable()}.
+ *
+ * @author Eike Stepper
+ * @since 4.1
+ */
+ public interface DeserializeRowHandler extends RowHandler
+ {
+ public void handleRow(ExtendedDataInput in, Connection connection, IDBField[] fields, Object[] values)
+ throws SQLException, IOException;
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-frame.html b/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-frame.html
index 5b43e8509a..c0eb72d8fd 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-frame.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-frame.html
@@ -666,6 +666,8 @@ All Classes (Net4j Utilities Documentation)
<BR>
<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace" target="classFrame">RemoteTraceServer</A>
<BR>
+<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace" target="classFrame">RemoteTraceServer.Event</A>
+<BR>
<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace" target="classFrame"><I>RemoteTraceServer.Listener</I></A>
<BR>
<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace" target="classFrame">RemoteTraceServer.PrintListener</A>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-noframe.html b/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-noframe.html
index ae85779455..d8514a8dbd 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-noframe.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/allclasses-noframe.html
@@ -666,6 +666,8 @@ All Classes (Net4j Utilities Documentation)
<BR>
<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A>
<BR>
+<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<BR>
<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><I>RemoteTraceServer.Listener</I></A>
<BR>
<A HREF="org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.PrintListener</A>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/index-all.html b/plugins/org.eclipse.net4j.util.doc/javadoc/index-all.html
index 740d5a286f..469d969748 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/index-all.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/index-all.html
@@ -92,7 +92,8 @@ Constructor for class org.eclipse.net4j.util.container.delegate.<A HREF="./org/e
method.<DT><A HREF="./org/eclipse/net4j/util/collection/AbstractIterator.html#AbstractIterator()"><B>AbstractIterator()</B></A> -
Constructor for class org.eclipse.net4j.util.collection.<A HREF="./org/eclipse/net4j/util/collection/AbstractIterator.html" title="class in org.eclipse.net4j.util.collection">AbstractIterator</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/log/AbstractLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><B>AbstractLogHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/AbstractLogHandler.html#AbstractLogHandler(org.eclipse.net4j.util.om.log.OMLogger.Level)"><B>AbstractLogHandler(OMLogger.Level)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/log/AbstractLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><B>AbstractLogHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>An abstract base implementation of a <A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that filters log events with a <A HREF="./org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log"><CODE>log level</CODE></A>
+ greater than a configurable <CODE>maximum level</CODE>.<DT><A HREF="./org/eclipse/net4j/util/om/log/AbstractLogHandler.html#AbstractLogHandler(org.eclipse.net4j.util.om.log.OMLogger.Level)"><B>AbstractLogHandler(OMLogger.Level)</B></A> -
Constructor for class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/AbstractLogHandler.html" title="class in org.eclipse.net4j.util.om.log">AbstractLogHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/log/AbstractLogHandler.html#AbstractLogHandler()"><B>AbstractLogHandler()</B></A> -
@@ -384,6 +385,9 @@ Method in class org.eclipse.net4j.util.concurrent.<A HREF="./org/eclipse/net4j/u
<DT><A HREF="./org/eclipse/net4j/util/ui/views/MasterDetailsView.html#adjustDetails(java.lang.Object)"><B>adjustDetails(Object)</B></A> -
Method in class org.eclipse.net4j.util.ui.views.<A HREF="./org/eclipse/net4j/util/ui/views/MasterDetailsView.html" title="class in org.eclipse.net4j.util.ui.views">MasterDetailsView</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#agentID"><B>agentID</B></A> -
+Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/security/Randomizer.html#ALGORITHM_SHA1PRNG"><B>ALGORITHM_SHA1PRNG</B></A> -
Static variable in class org.eclipse.net4j.util.security.<A HREF="./org/eclipse/net4j/util/security/Randomizer.html" title="class in org.eclipse.net4j.util.security">Randomizer</A>
<DD>&nbsp;
@@ -512,6 +516,9 @@ Variable in class org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/util/om
<DT><A HREF="./org/eclipse/net4j/util/ui/UIActivator.html#bundleContext"><B>bundleContext</B></A> -
Variable in class org.eclipse.net4j.util.ui.<A HREF="./org/eclipse/net4j/util/ui/UIActivator.html" title="class in org.eclipse.net4j.util.ui">UIActivator</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#bundleID"><B>bundleID</B></A> -
+Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/ui/widgets/HistoryTextDialog.html#buttonPressed(int)"><B>buttonPressed(int)</B></A> -
Method in class org.eclipse.net4j.util.ui.widgets.<A HREF="./org/eclipse/net4j/util/ui/widgets/HistoryTextDialog.html" title="class in org.eclipse.net4j.util.ui.widgets">HistoryTextDialog</A>
<DD>&nbsp;
@@ -883,24 +890,7 @@ Constructor for class org.eclipse.net4j.util.collection.<A HREF="./org/eclipse/n
<DT><A HREF="./org/eclipse/net4j/util/collection/ConcurrentArray.Unique.html" title="class in org.eclipse.net4j.util.collection"><B>ConcurrentArray.Unique</B></A>&lt;<A HREF="./org/eclipse/net4j/util/collection/ConcurrentArray.Unique.html" title="type parameter in ConcurrentArray.Unique">E</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/collection/package-summary.html">org.eclipse.net4j.util.collection</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/collection/ConcurrentArray.Unique.html#ConcurrentArray.Unique()"><B>ConcurrentArray.Unique()</B></A> -
Constructor for class org.eclipse.net4j.util.collection.<A HREF="./org/eclipse/net4j/util/collection/ConcurrentArray.Unique.html" title="class in org.eclipse.net4j.util.collection">ConcurrentArray.Unique</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/concurrent/ConcurrentValue.html" title="class in org.eclipse.net4j.util.concurrent"><B>ConcurrentValue</B></A>&lt;<A HREF="./org/eclipse/net4j/util/concurrent/ConcurrentValue.html" title="type parameter in ConcurrentValue">T</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/concurrent/package-summary.html">org.eclipse.net4j.util.concurrent</A><DD>Allow synchronization between many threads for a specific value, e.g.:
-
-
- MainThread cv.set(1);
- Thread1 cv.acquire(3);
- Thread2 cv.acquire(4);
- Thread3 cv.acquire(100);
- Thread4 cv.acquire(new Object()
- {
- public boolean equals(Object other)
- {
- return other.equals(2) || other.equals(3);
- }
- });
- Thread5 cv.acquire(1);
- ...
- // Thread 1,2,3 and 4 are blocked
- // Thread 5 isn't blocked.<DT><A HREF="./org/eclipse/net4j/util/concurrent/ConcurrentValue.html#ConcurrentValue(T)"><B>ConcurrentValue(T)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/concurrent/ConcurrentValue.html" title="class in org.eclipse.net4j.util.concurrent"><B>ConcurrentValue</B></A>&lt;<A HREF="./org/eclipse/net4j/util/concurrent/ConcurrentValue.html" title="type parameter in ConcurrentValue">T</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/concurrent/package-summary.html">org.eclipse.net4j.util.concurrent</A><DD>Allow synchronization between many threads for a specific value.<DT><A HREF="./org/eclipse/net4j/util/concurrent/ConcurrentValue.html#ConcurrentValue(T)"><B>ConcurrentValue(T)</B></A> -
Constructor for class org.eclipse.net4j.util.concurrent.<A HREF="./org/eclipse/net4j/util/concurrent/ConcurrentValue.html" title="class in org.eclipse.net4j.util.concurrent">ConcurrentValue</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/ui/container/ElementWizardDialog.html#configureShell(org.eclipse.swt.widgets.Shell)"><B>configureShell(Shell)</B></A> -
@@ -930,7 +920,7 @@ Static variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/
<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#CONSOLE"><B>CONSOLE</B></A> -
Static variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.PrintListener</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><B>Container</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/Container.html" title="type parameter in Container">E</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>A default <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="./org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/Container.html#Container()"><B>Container()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><B>Container</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/Container.html" title="type parameter in Container">E</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>An abstract base implementation of a <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="./org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/Container.html#Container()"><B>Container()</B></A> -
Constructor for class org.eclipse.net4j.util.container.<A HREF="./org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/container/delegate/ContainerBlockingQueue.html" title="class in org.eclipse.net4j.util.container.delegate"><B>ContainerBlockingQueue</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/ContainerBlockingQueue.html" title="type parameter in ContainerBlockingQueue">E</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A default implementation of a <A HREF="./org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate"><CODE>container blocking queue</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/ContainerBlockingQueue.html#ContainerBlockingQueue(java.util.concurrent.BlockingQueue)"><B>ContainerBlockingQueue(BlockingQueue&lt;E&gt;)</B></A> -
@@ -1087,10 +1077,13 @@ Method in class org.eclipse.net4j.util.registry.<A HREF="./org/eclipse/net4j/uti
<DT><A HREF="./org/eclipse/net4j/util/registry/UnmodifiableRegistry.html#containsValue(java.lang.Object)"><B>containsValue(Object)</B></A> -
Method in class org.eclipse.net4j.util.registry.<A HREF="./org/eclipse/net4j/util/registry/UnmodifiableRegistry.html" title="class in org.eclipse.net4j.util.registry">UnmodifiableRegistry</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#context"><B>context</B></A> -
+Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html#context"><B>context</B></A> -
Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace">TraceHandlerEvent</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace"><B>ContextTracer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html#ContextTracer(org.eclipse.net4j.util.om.trace.OMTracer, java.lang.Class)"><B>ContextTracer(OMTracer, Class&lt;?&gt;)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace"><B>ContextTracer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>Encapsulates a tracing <A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html#getContext()"><CODE>context</CODE></A> and delegates trace calls to a bundle <A HREF="./org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html#ContextTracer(org.eclipse.net4j.util.om.trace.OMTracer, java.lang.Class)"><B>ContextTracer(OMTracer, Class&lt;?&gt;)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace">ContextTracer</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/ui/views/ContainerView.html#contributeToActionBars()"><B>contributeToActionBars()</B></A> -
@@ -2055,7 +2048,7 @@ Constructor for class org.eclipse.net4j.util.collection.<A HREF="./org/eclipse/n
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
-<DT><A HREF="./org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><B>EclipseLoggingBridge</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html#EclipseLoggingBridge()"><B>EclipseLoggingBridge()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><B>EclipseLoggingBridge</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>A <A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the Eclipse <CODE>error log</CODE>.<DT><A HREF="./org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html#EclipseLoggingBridge()"><B>EclipseLoggingBridge()</B></A> -
Constructor for class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log">EclipseLoggingBridge</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/monitor/EclipseMonitor.html" title="class in org.eclipse.net4j.util.om.monitor"><B>EclipseMonitor</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html">org.eclipse.net4j.util.om.monitor</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/monitor/EclipseMonitor.html#EclipseMonitor(org.eclipse.core.runtime.IProgressMonitor, java.lang.String)"><B>EclipseMonitor(IProgressMonitor, String)</B></A> -
@@ -2423,7 +2416,7 @@ Static variable in class org.eclipse.net4j.util.fsm.<A HREF="./org/eclipse/net4j
<DT><A HREF="./org/eclipse/net4j/util/collection/FastList.html" title="class in org.eclipse.net4j.util.collection"><B>FastList</B></A>&lt;<A HREF="./org/eclipse/net4j/util/collection/FastList.html" title="type parameter in FastList">E</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/collection/package-summary.html">org.eclipse.net4j.util.collection</A><DD><B>Deprecated.</B>&nbsp;<I>As of 3.2 use <A HREF="./org/eclipse/net4j/util/collection/ConcurrentArray.html" title="class in org.eclipse.net4j.util.collection"><CODE>ConcurrentArray</CODE></A>.</I><DT><A HREF="./org/eclipse/net4j/util/collection/FastList.html#FastList()"><B>FastList()</B></A> -
Constructor for class org.eclipse.net4j.util.collection.<A HREF="./org/eclipse/net4j/util/collection/FastList.html" title="class in org.eclipse.net4j.util.collection">FastList</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/log/FileLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><B>FileLogHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/FileLogHandler.html#FileLogHandler(java.io.File, org.eclipse.net4j.util.om.log.OMLogger.Level)"><B>FileLogHandler(File, OMLogger.Level)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/log/FileLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><B>FileLogHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>A <A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to a <A HREF="./org/eclipse/net4j/util/om/log/FileLogHandler.html#getLogFile()"><CODE>file</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/log/FileLogHandler.html#FileLogHandler(java.io.File, org.eclipse.net4j.util.om.log.OMLogger.Level)"><B>FileLogHandler(File, OMLogger.Level)</B></A> -
Constructor for class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/FileLogHandler.html" title="class in org.eclipse.net4j.util.om.log">FileLogHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/log/FileLogHandler.html#FileLogHandler(java.io.File)"><B>FileLogHandler(File)</B></A> -
@@ -3068,6 +3061,9 @@ Method in class org.eclipse.net4j.util.ui.views.<A HREF="./org/eclipse/net4j/uti
<DT><A HREF="./org/eclipse/net4j/util/ui/views/ContainerView.Default.html#getContainerListener()"><B>getContainerListener()</B></A> -
Method in class org.eclipse.net4j.util.ui.views.<A HREF="./org/eclipse/net4j/util/ui/views/ContainerView.Default.html" title="class in org.eclipse.net4j.util.ui.views">ContainerView.Default</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html#getContext()"><B>getContext()</B></A> -
+Method in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace">ContextTracer</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html#getContext()"><B>getContext()</B></A> -
Method in interface org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace">OMTraceHandlerEvent</A>
<DD>&nbsp;
@@ -3557,6 +3553,9 @@ Method in class org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/util/io/S
<DT><A HREF="./org/eclipse/net4j/util/io/SortedFileMap.html#getEntrySize()"><B>getEntrySize()</B></A> -
Method in class org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/util/io/SortedFileMap.html" title="class in org.eclipse.net4j.util.io">SortedFileMap</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()"><B>getErr()</B></A> -
+Method in class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log">PrintLogHandler</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/ui/views/ContainerItemProvider.html#getErrorText(org.eclipse.net4j.util.container.IContainer)"><B>getErrorText(IContainer&lt;Object&gt;)</B></A> -
Method in class org.eclipse.net4j.util.ui.views.<A HREF="./org/eclipse/net4j/util/ui/views/ContainerItemProvider.html" title="class in org.eclipse.net4j.util.ui.views">ContainerItemProvider</A>
<DD>&nbsp;
@@ -4019,6 +4018,9 @@ Method in class org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/util/om/O
<DT><A HREF="./org/eclipse/net4j/util/ui/UIActivator.html#getOMBundle()"><B>getOMBundle()</B></A> -
Method in class org.eclipse.net4j.util.ui.<A HREF="./org/eclipse/net4j/util/ui/UIActivator.html" title="class in org.eclipse.net4j.util.ui">UIActivator</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()"><B>getOut()</B></A> -
+Method in class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log">PrintLogHandler</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/container/LifecycleEventConverter.html#getOwner()"><B>getOwner()</B></A> -
Method in class org.eclipse.net4j.util.container.<A HREF="./org/eclipse/net4j/util/container/LifecycleEventConverter.html" title="class in org.eclipse.net4j.util.container">LifecycleEventConverter</A>
<DD>&nbsp;
@@ -4391,6 +4393,12 @@ Method in interface org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/util/
<DT><A HREF="./org/eclipse/net4j/util/fsm/FiniteStateMachine.html#getStates()"><B>getStates()</B></A> -
Method in class org.eclipse.net4j.util.fsm.<A HREF="./org/eclipse/net4j/util/fsm/FiniteStateMachine.html" title="class in org.eclipse.net4j.util.fsm">FiniteStateMachine</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#getStream()"><B>getStream()</B></A> -
+Method in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">PrintTraceHandler</A>
+<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()"><B>getStream()</B></A> -
+Method in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.PrintListener</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/OMBundle.TranslationSupport.html#getString(java.lang.String)"><B>getString(String)</B></A> -
Method in interface org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/util/om/OMBundle.TranslationSupport.html" title="interface in org.eclipse.net4j.util.om">OMBundle.TranslationSupport</A>
<DD>Returns the string resource associated with the key.
@@ -5046,7 +5054,7 @@ Constructor for class org.eclipse.net4j.util.cache.<A HREF="./org/eclipse/net4j/
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
-<DT><A HREF="./org/eclipse/net4j/util/cache/ICache.html" title="interface in org.eclipse.net4j.util.cache"><B>ICache</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitor.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheMonitor</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitor.Condition.html" title="enum in org.eclipse.net4j.util.cache"><B>ICacheMonitor.Condition</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitor.ConditionPolicy.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheMonitor.ConditionPolicy</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitorEvent.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheMonitorEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheProbe.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheProbe</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheRegistration.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheRegistration</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/IChallengeResponse.html" title="interface in org.eclipse.net4j.util.security"><B>IChallengeResponse</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/IChallengeResponse.Event.html" title="enum in org.eclipse.net4j.util.security"><B>IChallengeResponse.Event</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/IChallengeResponse.State.html" title="enum in org.eclipse.net4j.util.security"><B>IChallengeResponse.State</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><B>IContainer</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="type parameter in IContainer">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Contains a number of elements and notifies about element addition and removal.<DT><A HREF="./org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="interface in org.eclipse.net4j.util.container"><B>IContainer.Modifiable</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="type parameter in IContainer.Modifiable">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerBlockingQueue</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="type parameter in IContainerBlockingQueue">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerCollection.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerCollection</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerCollection.html" title="type parameter in IContainerCollection">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><CODE>Collection</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerDelta</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="type parameter in IContainerDelta">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Describes the addition or removal of a single element from a <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerDelta.Kind.html" title="enum in org.eclipse.net4j.util.container"><B>IContainerDelta.Kind</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Enumerates the possible <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="interface in org.eclipse.net4j.util.container"><CODE>container delta</CODE></A> kinds <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.Kind.html#ADDED"><CODE>IContainerDelta.Kind.ADDED</CODE></A> or <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.Kind.html#REMOVED"><CODE>IContainerDelta.Kind.REMOVED</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerEvent.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerEvent</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerEvent.html" title="type parameter in IContainerEvent">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>An <A HREF="./org/eclipse/net4j/util/event/IEvent.html" title="interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired from a <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> when its elements have changed.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerEventVisitor</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.html" title="type parameter in IContainerEventVisitor">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>A callback interface for visiting <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="interface in org.eclipse.net4j.util.container"><CODE>container deltas</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.Filtered.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerEventVisitor.Filtered</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.Filtered.html" title="type parameter in IContainerEventVisitor.Filtered">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>An extension interface for <A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.html" title="interface in org.eclipse.net4j.util.container"><CODE>container event visitors</CODE></A> that can <A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.Filtered.html#filter(E)"><CODE>filter</CODE></A> deltas from being visited.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerList.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerList</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerList.html" title="type parameter in IContainerList">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><CODE>List</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerMap.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerMap</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerMap.html" title="type parameter in IContainerMap">K</A>,<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerMap.html" title="type parameter in IContainerMap">V</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> (of <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util"><CODE>map entries</CODE></A>) that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><CODE>Map</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerQueue.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerQueue</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerQueue.html" title="type parameter in IContainerQueue">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Queue.html?is-external=true" title="class or interface in java.util"><CODE>Queue</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSet.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerSet</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSet.html" title="type parameter in IContainerSet">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><CODE>Set</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerSortedSet</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html" title="type parameter in IContainerSortedSet">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util"><CODE>SortedSet</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/concurrent/ICorrelator.html" title="interface in org.eclipse.net4j.util.concurrent"><B>ICorrelator</B></A>&lt;<A HREF="./org/eclipse/net4j/util/concurrent/ICorrelator.html" title="type parameter in ICorrelator">CORRELATION</A>,<A HREF="./org/eclipse/net4j/util/concurrent/ICorrelator.html" title="type parameter in ICorrelator">VALUE</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/concurrent/package-summary.html">org.eclipse.net4j.util.concurrent</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/ICredentials.html" title="interface in org.eclipse.net4j.util.security"><B>ICredentials</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/ICredentialsProvider.html" title="interface in org.eclipse.net4j.util.security"><B>ICredentialsProvider</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/ui/views/IElementFilter.html" title="interface in org.eclipse.net4j.util.ui.views"><B>IElementFilter</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/ui/views/package-summary.html">org.eclipse.net4j.util.ui.views</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/container/IElementProcessor.html" title="interface in org.eclipse.net4j.util.container"><B>IElementProcessor</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Processes elements of a <A HREF="./org/eclipse/net4j/util/container/IManagedContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>managed container</CODE></A> when they're added to the container.<DT><A HREF="./org/eclipse/net4j/util/ui/container/IElementWizard.html" title="interface in org.eclipse.net4j.util.ui.container"><B>IElementWizard</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/ui/container/package-summary.html">org.eclipse.net4j.util.ui.container</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/IErrorHandler.html" title="interface in org.eclipse.net4j.util"><B>IErrorHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/package-summary.html">org.eclipse.net4j.util</A><DD>A callback interface with a <A HREF="./org/eclipse/net4j/util/IErrorHandler.html#handleError(java.lang.Throwable)"><CODE>handleError()</CODE></A> method.<DT><A HREF="./org/eclipse/net4j/util/event/IEvent.html" title="interface in org.eclipse.net4j.util.event"><B>IEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/event/package-summary.html">org.eclipse.net4j.util.event</A><DD>An event that is fired from a <A HREF="./org/eclipse/net4j/util/event/INotifier.html" title="interface in org.eclipse.net4j.util.event"><CODE>notifier</CODE></A> and can be handled by <A HREF="./org/eclipse/net4j/util/event/IListener.html" title="interface in org.eclipse.net4j.util.event"><CODE>listeners</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/factory/IFactory.html" title="interface in org.eclipse.net4j.util.factory"><B>IFactory</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/factory/package-summary.html">org.eclipse.net4j.util.factory</A><DD><A HREF="./org/eclipse/net4j/util/factory/IFactory.html#create(java.lang.String)"><CODE>Creates</CODE></A> objects from a string <A HREF="./org/eclipse/net4j/util/factory/IFactory.html#getDescriptionFor(java.lang.Object)"><CODE>description</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/factory/IFactoryKey.html" title="interface in org.eclipse.net4j.util.factory"><B>IFactoryKey</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/factory/package-summary.html">org.eclipse.net4j.util.factory</A><DD>Identifies a <A HREF="./org/eclipse/net4j/util/factory/IFactory.html" title="interface in org.eclipse.net4j.util.factory"><CODE>factory</CODE></A> by <A HREF="./org/eclipse/net4j/util/factory/IFactoryKey.html#getProductGroup()"><CODE>product group</CODE></A> and <A HREF="./org/eclipse/net4j/util/factory/IFactoryKey.html#getType()"><CODE>type</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/fsm/FiniteStateMachine.html#IGNORE"><B>IGNORE</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/cache/ICache.html" title="interface in org.eclipse.net4j.util.cache"><B>ICache</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitor.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheMonitor</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitor.Condition.html" title="enum in org.eclipse.net4j.util.cache"><B>ICacheMonitor.Condition</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitor.ConditionPolicy.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheMonitor.ConditionPolicy</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheMonitorEvent.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheMonitorEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheProbe.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheProbe</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ICacheRegistration.html" title="interface in org.eclipse.net4j.util.cache"><B>ICacheRegistration</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/IChallengeResponse.html" title="interface in org.eclipse.net4j.util.security"><B>IChallengeResponse</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/IChallengeResponse.Event.html" title="enum in org.eclipse.net4j.util.security"><B>IChallengeResponse.Event</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/IChallengeResponse.State.html" title="enum in org.eclipse.net4j.util.security"><B>IChallengeResponse.State</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><B>IContainer</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="type parameter in IContainer">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Contains a number of elements and notifies about element addition and removal.<DT><A HREF="./org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="interface in org.eclipse.net4j.util.container"><B>IContainer.Modifiable</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="type parameter in IContainer.Modifiable">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with additional methods to add or remove elements.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerBlockingQueue</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="type parameter in IContainerBlockingQueue">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerCollection.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerCollection</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerCollection.html" title="type parameter in IContainerCollection">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><CODE>Collection</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerDelta</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="type parameter in IContainerDelta">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Describes the addition or removal of a single element from a <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerDelta.Kind.html" title="enum in org.eclipse.net4j.util.container"><B>IContainerDelta.Kind</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Enumerates the possible <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="interface in org.eclipse.net4j.util.container"><CODE>container delta</CODE></A> kinds <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.Kind.html#ADDED"><CODE>IContainerDelta.Kind.ADDED</CODE></A> or <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.Kind.html#REMOVED"><CODE>IContainerDelta.Kind.REMOVED</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerEvent.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerEvent</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerEvent.html" title="type parameter in IContainerEvent">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>An <A HREF="./org/eclipse/net4j/util/event/IEvent.html" title="interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired from a <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> when its elements have changed.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerEventVisitor</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.html" title="type parameter in IContainerEventVisitor">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>A callback interface for visiting <A HREF="./org/eclipse/net4j/util/container/IContainerDelta.html" title="interface in org.eclipse.net4j.util.container"><CODE>container deltas</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.Filtered.html" title="interface in org.eclipse.net4j.util.container"><B>IContainerEventVisitor.Filtered</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.Filtered.html" title="type parameter in IContainerEventVisitor.Filtered">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>An extension interface for <A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.html" title="interface in org.eclipse.net4j.util.container"><CODE>container event visitors</CODE></A> that can <A HREF="./org/eclipse/net4j/util/container/IContainerEventVisitor.Filtered.html#filter(E)"><CODE>filter</CODE></A> deltas from being visited.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerList.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerList</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerList.html" title="type parameter in IContainerList">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><CODE>List</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerMap.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerMap</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerMap.html" title="type parameter in IContainerMap">K</A>,<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerMap.html" title="type parameter in IContainerMap">V</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> (of <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util"><CODE>map entries</CODE></A>) that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><CODE>Map</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerQueue.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerQueue</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerQueue.html" title="type parameter in IContainerQueue">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Queue.html?is-external=true" title="class or interface in java.util"><CODE>Queue</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSet.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerSet</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSet.html" title="type parameter in IContainerSet">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><CODE>Set</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html" title="interface in org.eclipse.net4j.util.container.delegate"><B>IContainerSortedSet</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html" title="type parameter in IContainerSortedSet">E</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html">org.eclipse.net4j.util.container.delegate</A><DD>A <A HREF="./org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util"><CODE>SortedSet</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/concurrent/ICorrelator.html" title="interface in org.eclipse.net4j.util.concurrent"><B>ICorrelator</B></A>&lt;<A HREF="./org/eclipse/net4j/util/concurrent/ICorrelator.html" title="type parameter in ICorrelator">CORRELATION</A>,<A HREF="./org/eclipse/net4j/util/concurrent/ICorrelator.html" title="type parameter in ICorrelator">VALUE</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/concurrent/package-summary.html">org.eclipse.net4j.util.concurrent</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/ICredentials.html" title="interface in org.eclipse.net4j.util.security"><B>ICredentials</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/security/ICredentialsProvider.html" title="interface in org.eclipse.net4j.util.security"><B>ICredentialsProvider</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/security/package-summary.html">org.eclipse.net4j.util.security</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/ui/views/IElementFilter.html" title="interface in org.eclipse.net4j.util.ui.views"><B>IElementFilter</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/ui/views/package-summary.html">org.eclipse.net4j.util.ui.views</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/container/IElementProcessor.html" title="interface in org.eclipse.net4j.util.container"><B>IElementProcessor</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>Processes elements of a <A HREF="./org/eclipse/net4j/util/container/IManagedContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>managed container</CODE></A> when they're added to the container.<DT><A HREF="./org/eclipse/net4j/util/ui/container/IElementWizard.html" title="interface in org.eclipse.net4j.util.ui.container"><B>IElementWizard</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/ui/container/package-summary.html">org.eclipse.net4j.util.ui.container</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/IErrorHandler.html" title="interface in org.eclipse.net4j.util"><B>IErrorHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/package-summary.html">org.eclipse.net4j.util</A><DD>A callback interface with a <A HREF="./org/eclipse/net4j/util/IErrorHandler.html#handleError(java.lang.Throwable)"><CODE>handleError()</CODE></A> method.<DT><A HREF="./org/eclipse/net4j/util/event/IEvent.html" title="interface in org.eclipse.net4j.util.event"><B>IEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/event/package-summary.html">org.eclipse.net4j.util.event</A><DD>An event that is fired from a <A HREF="./org/eclipse/net4j/util/event/INotifier.html" title="interface in org.eclipse.net4j.util.event"><CODE>notifier</CODE></A> and can be handled by <A HREF="./org/eclipse/net4j/util/event/IListener.html" title="interface in org.eclipse.net4j.util.event"><CODE>listeners</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/factory/IFactory.html" title="interface in org.eclipse.net4j.util.factory"><B>IFactory</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/factory/package-summary.html">org.eclipse.net4j.util.factory</A><DD><A HREF="./org/eclipse/net4j/util/factory/IFactory.html#create(java.lang.String)"><CODE>Creates</CODE></A> objects from a string <A HREF="./org/eclipse/net4j/util/factory/IFactory.html#getDescriptionFor(java.lang.Object)"><CODE>description</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/factory/IFactoryKey.html" title="interface in org.eclipse.net4j.util.factory"><B>IFactoryKey</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/factory/package-summary.html">org.eclipse.net4j.util.factory</A><DD>Identifies a <A HREF="./org/eclipse/net4j/util/factory/IFactory.html" title="interface in org.eclipse.net4j.util.factory"><CODE>factory</CODE></A> by <A HREF="./org/eclipse/net4j/util/factory/IFactoryKey.html#getProductGroup()"><CODE>product group</CODE></A> and <A HREF="./org/eclipse/net4j/util/factory/IFactoryKey.html#getType()"><CODE>type</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/fsm/FiniteStateMachine.html#IGNORE"><B>IGNORE</B></A> -
Static variable in class org.eclipse.net4j.util.fsm.<A HREF="./org/eclipse/net4j/util/fsm/FiniteStateMachine.html" title="class in org.eclipse.net4j.util.fsm">FiniteStateMachine</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/collection/IHistory.html" title="interface in org.eclipse.net4j.util.collection"><B>IHistory</B></A>&lt;<A HREF="./org/eclipse/net4j/util/collection/IHistory.html" title="type parameter in IHistory">T</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/collection/package-summary.html">org.eclipse.net4j.util.collection</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/collection/IHistoryChangeEvent.html" title="interface in org.eclipse.net4j.util.collection"><B>IHistoryChangeEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/collection/package-summary.html">org.eclipse.net4j.util.collection</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/collection/IHistoryElement.html" title="interface in org.eclipse.net4j.util.collection"><B>IHistoryElement</B></A>&lt;<A HREF="./org/eclipse/net4j/util/collection/IHistoryElement.html" title="type parameter in IHistoryElement">T</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/collection/package-summary.html">org.eclipse.net4j.util.collection</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><B>ILifecycle</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/lifecycle/package-summary.html">org.eclipse.net4j.util.lifecycle</A><DD>An entity that has a well-defined <A HREF="./org/eclipse/net4j/util/lifecycle/ILifecycle.html#getLifecycleState()"><CODE>lifecycle</CODE></A> and can be <A HREF="./org/eclipse/net4j/util/lifecycle/ILifecycle.html#activate()"><CODE>activated</CODE></A> or
@@ -5241,7 +5249,7 @@ Method in class org.eclipse.net4j.util.lifecycle.<A HREF="./org/eclipse/net4j/ut
<DT><A HREF="./org/eclipse/net4j/util/ReflectUtil.html#invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object...)"><B>invokeMethod(Method, Object, Object...)</B></A> -
Static method in class org.eclipse.net4j.util.<A HREF="./org/eclipse/net4j/util/ReflectUtil.html" title="class in org.eclipse.net4j.util">ReflectUtil</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/io/IOFilter.html" title="interface in org.eclipse.net4j.util.io"><B>IOFilter</B></A>&lt;<A HREF="./org/eclipse/net4j/util/io/IOFilter.html" title="type parameter in IOFilter">T</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/io/package-summary.html">org.eclipse.net4j.util.io</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><B>IOptions</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>Encapsulates a set of notifying configuration options.<DT><A HREF="./org/eclipse/net4j/util/options/IOptionsContainer.html" title="interface in org.eclipse.net4j.util.options"><B>IOptionsContainer</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><B>IOptionsEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>A generic <A HREF="./org/eclipse/net4j/util/event/IEvent.html" title="interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired from an <A HREF="./org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><CODE>options</CODE></A> object when an option has changed.<DT><A HREF="./org/eclipse/net4j/util/io/IORunnable.html" title="interface in org.eclipse.net4j.util.io"><B>IORunnable</B></A>&lt;<A HREF="./org/eclipse/net4j/util/io/IORunnable.html" title="type parameter in IORunnable">IO</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/io/package-summary.html">org.eclipse.net4j.util.io</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/io/IORuntimeException.html" title="class in org.eclipse.net4j.util.io"><B>IORuntimeException</B></A> - Exception in <A HREF="./org/eclipse/net4j/util/io/package-summary.html">org.eclipse.net4j.util.io</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/io/IORuntimeException.html#IORuntimeException()"><B>IORuntimeException()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/io/IOFilter.html" title="interface in org.eclipse.net4j.util.io"><B>IOFilter</B></A>&lt;<A HREF="./org/eclipse/net4j/util/io/IOFilter.html" title="type parameter in IOFilter">T</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/io/package-summary.html">org.eclipse.net4j.util.io</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><B>IOptions</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>Encapsulates a set of notifying configuration options.<DT><A HREF="./org/eclipse/net4j/util/options/IOptionsContainer.html" title="interface in org.eclipse.net4j.util.options"><B>IOptionsContainer</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>The container of an <A HREF="./org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><CODE>options set</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><B>IOptionsEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>A generic <A HREF="./org/eclipse/net4j/util/event/IEvent.html" title="interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired from an <A HREF="./org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><CODE>options</CODE></A> object when an option has changed.<DT><A HREF="./org/eclipse/net4j/util/io/IORunnable.html" title="interface in org.eclipse.net4j.util.io"><B>IORunnable</B></A>&lt;<A HREF="./org/eclipse/net4j/util/io/IORunnable.html" title="type parameter in IORunnable">IO</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/io/package-summary.html">org.eclipse.net4j.util.io</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/io/IORuntimeException.html" title="class in org.eclipse.net4j.util.io"><B>IORuntimeException</B></A> - Exception in <A HREF="./org/eclipse/net4j/util/io/package-summary.html">org.eclipse.net4j.util.io</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/io/IORuntimeException.html#IORuntimeException()"><B>IORuntimeException()</B></A> -
Constructor for exception org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/util/io/IORuntimeException.html" title="class in org.eclipse.net4j.util.io">IORuntimeException</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/io/IORuntimeException.html#IORuntimeException(java.lang.String)"><B>IORuntimeException(String)</B></A> -
@@ -5804,7 +5812,7 @@ Method in class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/
<DT><A HREF="./org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html#logged(org.osgi.framework.BundleContext, org.eclipse.net4j.util.om.log.OMLogger.Level, java.lang.String, java.lang.Throwable)"><B>logged(BundleContext, OMLogger.Level, String, Throwable)</B></A> -
Method in class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log">OSGiLoggingBridge</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/log/Logger.html" title="class in org.eclipse.net4j.util.om.log"><B>Logger</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/Logger.html#Logger(org.eclipse.net4j.util.om.OMBundle)"><B>Logger(OMBundle)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/log/Logger.html" title="class in org.eclipse.net4j.util.om.log"><B>Logger</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>The default <A HREF="./org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>logger</CODE></A> implementation.<DT><A HREF="./org/eclipse/net4j/util/om/log/Logger.html#Logger(org.eclipse.net4j.util.om.OMBundle)"><B>Logger(OMBundle)</B></A> -
Constructor for class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/Logger.html" title="class in org.eclipse.net4j.util.om.log">Logger</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/OMBundle.html#logger()"><B>logger()</B></A> -
@@ -5917,6 +5925,9 @@ Method in class org.eclipse.net4j.util.registry.<A HREF="./org/eclipse/net4j/uti
<DT><A HREF="./org/eclipse/net4j/util/registry/DelegatingRegistry.html#mergedValues()"><B>mergedValues()</B></A> -
Method in class org.eclipse.net4j.util.registry.<A HREF="./org/eclipse/net4j/util/registry/DelegatingRegistry.html" title="class in org.eclipse.net4j.util.registry">DelegatingRegistry</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#message"><B>message</B></A> -
+Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html#message"><B>message</B></A> -
Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace">TraceHandlerEvent</A>
<DD>&nbsp;
@@ -6240,8 +6251,8 @@ Method in class org.eclipse.net4j.util.ui.container.<A HREF="./org/eclipse/net4j
Method in class org.eclipse.net4j.util.ui.security.<A HREF="./org/eclipse/net4j/util/ui/security/CredentialsDialog.html" title="class in org.eclipse.net4j.util.ui.security">CredentialsDialog</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><B>OMBundle</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/package-summary.html">org.eclipse.net4j.util.om</A><DD>Represents a <CODE>bundle</CODE>, whether OSGi <A HREF="./org/eclipse/net4j/util/om/OMPlatform.html#isOSGiRunning()"><CODE>is running</CODE></A> or not.<DT><A HREF="./org/eclipse/net4j/util/om/OMBundle.DebugSupport.html" title="interface in org.eclipse.net4j.util.om"><B>OMBundle.DebugSupport</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/package-summary.html">org.eclipse.net4j.util.om</A><DD>A facility for accessing OSGi <CODE>debug options</CODE>, whether OSGi <A HREF="./org/eclipse/net4j/util/om/OMPlatform.html#isOSGiRunning()"><CODE>is
- running</CODE></A> or not.<DT><A HREF="./org/eclipse/net4j/util/om/OMBundle.TranslationSupport.html" title="interface in org.eclipse.net4j.util.om"><B>OMBundle.TranslationSupport</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/package-summary.html">org.eclipse.net4j.util.om</A><DD>A facility for accessing <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util"><CODE>resource bundles</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log"><B>OMLogFilter</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>Filters log events before they are being passed to <A HREF="./org/eclipse/net4j/util/om/OMPlatform.html#addLogFilter(org.eclipse.net4j.util.om.log.OMLogFilter)"><CODE>registered</CODE></A>
- <A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log"><B>OMLogger</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log"><B>OMLogger.Level</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><B>OMLogHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/monitor/OMMonitor.html" title="interface in org.eclipse.net4j.util.om.monitor"><B>OMMonitor</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html">org.eclipse.net4j.util.om.monitor</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/monitor/OMMonitor.Async.html" title="interface in org.eclipse.net4j.util.om.monitor"><B>OMMonitor.Async</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html">org.eclipse.net4j.util.om.monitor</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/monitor/OMMonitorProgress.html" title="interface in org.eclipse.net4j.util.om.monitor"><B>OMMonitorProgress</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html">org.eclipse.net4j.util.om.monitor</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/OMPlatform.html" title="interface in org.eclipse.net4j.util.om"><B>OMPlatform</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/package-summary.html">org.eclipse.net4j.util.om</A><DD>Represents the platform that <A HREF="./org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundles</CODE></A> are deployed into, whether OSGi <A HREF="./org/eclipse/net4j/util/om/OMPlatform.html#isOSGiRunning()"><CODE>is
+ running</CODE></A> or not.<DT><A HREF="./org/eclipse/net4j/util/om/OMBundle.TranslationSupport.html" title="interface in org.eclipse.net4j.util.om"><B>OMBundle.TranslationSupport</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/package-summary.html">org.eclipse.net4j.util.om</A><DD>A facility for accessing <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util"><CODE>resource bundles</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log"><B>OMLogFilter</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>Filters log events before they are being passed to the registered <A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log"><B>OMLogger</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>The <A HREF="./org/eclipse/net4j/util/om/OMBundle.html#logger()"><CODE>logger</CODE></A> of a <A HREF="./org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log"><B>OMLogger.Level</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>Enumerates the possible severity levels of log events.<DT><A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><B>OMLogHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>Handles <A HREF="./org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>filtered</CODE></A> log events, for example appends them to a <A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><CODE>stream</CODE></A> or
+ the Eclipse <A HREF="./org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><CODE>error log</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/monitor/OMMonitor.html" title="interface in org.eclipse.net4j.util.om.monitor"><B>OMMonitor</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html">org.eclipse.net4j.util.om.monitor</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/monitor/OMMonitor.Async.html" title="interface in org.eclipse.net4j.util.om.monitor"><B>OMMonitor.Async</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html">org.eclipse.net4j.util.om.monitor</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/monitor/OMMonitorProgress.html" title="interface in org.eclipse.net4j.util.om.monitor"><B>OMMonitorProgress</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html">org.eclipse.net4j.util.om.monitor</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/OMPlatform.html" title="interface in org.eclipse.net4j.util.om"><B>OMPlatform</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/package-summary.html">org.eclipse.net4j.util.om</A><DD>Represents the platform that <A HREF="./org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundles</CODE></A> are deployed into, whether OSGi <A HREF="./org/eclipse/net4j/util/om/OMPlatform.html#isOSGiRunning()"><CODE>is
running</CODE></A> or not.<DT><A HREF="./org/eclipse/net4j/util/om/pref/OMPreference.html" title="interface in org.eclipse.net4j.util.om.pref"><B>OMPreference</B></A>&lt;<A HREF="./org/eclipse/net4j/util/om/pref/OMPreference.html" title="type parameter in OMPreference">T</A>&gt; - Interface in <A HREF="./org/eclipse/net4j/util/om/pref/package-summary.html">org.eclipse.net4j.util.om.pref</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/pref/OMPreference.Type.html" title="enum in org.eclipse.net4j.util.om.pref"><B>OMPreference.Type</B></A> - Enum in <A HREF="./org/eclipse/net4j/util/om/pref/package-summary.html">org.eclipse.net4j.util.om.pref</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/ui/prefs/OMPreferencePage.html" title="class in org.eclipse.net4j.util.ui.prefs"><B>OMPreferencePage</B></A> - Class in <A HREF="./org/eclipse/net4j/util/ui/prefs/package-summary.html">org.eclipse.net4j.util.ui.prefs</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/ui/prefs/OMPreferencePage.html#OMPreferencePage(org.eclipse.net4j.util.om.pref.OMPreferences)"><B>OMPreferencePage(OMPreferences)</B></A> -
Constructor for class org.eclipse.net4j.util.ui.prefs.<A HREF="./org/eclipse/net4j/util/ui/prefs/OMPreferencePage.html" title="class in org.eclipse.net4j.util.ui.prefs">OMPreferencePage</A>
<DD>&nbsp;
@@ -6249,7 +6260,8 @@ Constructor for class org.eclipse.net4j.util.ui.prefs.<A HREF="./org/eclipse/net
value has changed.<DT><A HREF="./org/eclipse/net4j/util/ui/prefs/OMPreferenceStore.html" title="class in org.eclipse.net4j.util.ui.prefs"><B>OMPreferenceStore</B></A> - Class in <A HREF="./org/eclipse/net4j/util/ui/prefs/package-summary.html">org.eclipse.net4j.util.ui.prefs</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/ui/prefs/OMPreferenceStore.html#OMPreferenceStore(org.eclipse.net4j.util.om.pref.OMPreferences)"><B>OMPreferenceStore(OMPreferences)</B></A> -
Constructor for class org.eclipse.net4j.util.ui.prefs.<A HREF="./org/eclipse/net4j/util/ui/prefs/OMPreferenceStore.html" title="class in org.eclipse.net4j.util.ui.prefs">OMPreferenceStore</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><B>OMTraceHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><B>OMTraceHandlerEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><B>OMTracer</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/io/DigestWriter.html#on(boolean)"><B>on(boolean)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><B>OMTraceHandler</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>Handles <A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>, for example appends them to a <A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>stream</CODE></A> sends them to a
+ <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>remote</CODE></A> trace handler.<DT><A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><B>OMTraceHandlerEvent</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>Encapsulates the information of a trace event.<DT><A HREF="./org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><B>OMTracer</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>A <A HREF="./org/eclipse/net4j/util/om/trace/OMTracer.html#getName()"><CODE>named</CODE></A> <A HREF="./org/eclipse/net4j/util/om/OMBundle.html#tracer(java.lang.String)"><CODE>tracer</CODE></A> within the <A HREF="./org/eclipse/net4j/util/om/trace/OMTracer.html#getParent()"><CODE>hierarchy</CODE></A> of tracers of a <A HREF="./org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/io/DigestWriter.html#on(boolean)"><B>on(boolean)</B></A> -
Method in class org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/util/io/DigestWriter.html" title="class in org.eclipse.net4j.util.io">DigestWriter</A>
<DD>Turns the digest function on or off.
<DT><A HREF="./org/eclipse/net4j/util/lifecycle/LifecycleEventAdapter.html#onAboutToActivate(org.eclipse.net4j.util.lifecycle.ILifecycle)"><B>onAboutToActivate(ILifecycle)</B></A> -
@@ -6315,7 +6327,7 @@ Static method in class org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/ut
<DT><A HREF="./org/eclipse/net4j/util/options/IOptionsContainer.html#options()"><B>options()</B></A> -
Method in interface org.eclipse.net4j.util.options.<A HREF="./org/eclipse/net4j/util/options/IOptionsContainer.html" title="interface in org.eclipse.net4j.util.options">IOptionsContainer</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/options/OptionsEvent.html" title="class in org.eclipse.net4j.util.options"><B>OptionsEvent</B></A> - Class in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/options/OptionsEvent.html#OptionsEvent(org.eclipse.net4j.util.options.IOptions)"><B>OptionsEvent(IOptions)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/options/OptionsEvent.html" title="class in org.eclipse.net4j.util.options"><B>OptionsEvent</B></A> - Class in <A HREF="./org/eclipse/net4j/util/options/package-summary.html">org.eclipse.net4j.util.options</A><DD>The default implementation of an <A HREF="./org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/options/OptionsEvent.html#OptionsEvent(org.eclipse.net4j.util.options.IOptions)"><B>OptionsEvent(IOptions)</B></A> -
Constructor for class org.eclipse.net4j.util.options.<A HREF="./org/eclipse/net4j/util/options/OptionsEvent.html" title="class in org.eclipse.net4j.util.options">OptionsEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/package-summary.html"><B>org.eclipse.net4j.util</B></A> - package org.eclipse.net4j.util<DD>Utility classes.<DT><A HREF="./org/eclipse/net4j/util/cache/package-summary.html"><B>org.eclipse.net4j.util.cache</B></A> - package org.eclipse.net4j.util.cache<DD>A generic caching and memory monitoring framework.<DT><A HREF="./org/eclipse/net4j/util/collection/package-summary.html"><B>org.eclipse.net4j.util.collection</B></A> - package org.eclipse.net4j.util.collection<DD>Additional collection-like interfaces and classes.<DT><A HREF="./org/eclipse/net4j/util/concurrent/package-summary.html"><B>org.eclipse.net4j.util.concurrent</B></A> - package org.eclipse.net4j.util.concurrent<DD>Utility interfaces and classes commonly useful in concurrent programming.<DT><A HREF="./org/eclipse/net4j/util/container/package-summary.html"><B>org.eclipse.net4j.util.container</B></A> - package org.eclipse.net4j.util.container<DD>A framework of notifying collections and wiring containers.<DT><A HREF="./org/eclipse/net4j/util/container/delegate/package-summary.html"><B>org.eclipse.net4j.util.container.delegate</B></A> - package org.eclipse.net4j.util.container.delegate<DD>Hybrid interfaces of notifying containers and the Java Collection Framework.<DT><A HREF="./org/eclipse/net4j/util/event/package-summary.html"><B>org.eclipse.net4j.util.event</B></A> - package org.eclipse.net4j.util.event<DD>A framework for sending of and listening to events.<DT><A HREF="./org/eclipse/net4j/util/factory/package-summary.html"><B>org.eclipse.net4j.util.factory</B></A> - package org.eclipse.net4j.util.factory<DD>A framework for factory based instance creation.<DT><A HREF="./org/eclipse/net4j/util/fsm/package-summary.html"><B>org.eclipse.net4j.util.fsm</B></A> - package org.eclipse.net4j.util.fsm<DD>A framework for <a href="http://en.wikipedia.org/wiki/Finite-state_machine">finite state machines</a>.<DT><A HREF="./org/eclipse/net4j/util/io/package-summary.html"><B>org.eclipse.net4j.util.io</B></A> - package org.eclipse.net4j.util.io<DD>Interfaces and classes for I/O.<DT><A HREF="./org/eclipse/net4j/util/lifecycle/package-summary.html"><B>org.eclipse.net4j.util.lifecycle</B></A> - package org.eclipse.net4j.util.lifecycle<DD>A framework for components with a simple lifecycle.<DT><A HREF="./org/eclipse/net4j/util/om/package-summary.html"><B>org.eclipse.net4j.util.om</B></A> - package org.eclipse.net4j.util.om<DD>Interfaces and classes for platform-independent <i>operations and maintenance</i> (O&amp;M).<DT><A HREF="./org/eclipse/net4j/util/om/log/package-summary.html"><B>org.eclipse.net4j.util.om.log</B></A> - package org.eclipse.net4j.util.om.log<DD>Interfaces and classes for platform-independent logging.<DT><A HREF="./org/eclipse/net4j/util/om/monitor/package-summary.html"><B>org.eclipse.net4j.util.om.monitor</B></A> - package org.eclipse.net4j.util.om.monitor<DD>Interfaces and classes for platform-independent progress monitoring.<DT><A HREF="./org/eclipse/net4j/util/om/pref/package-summary.html"><B>org.eclipse.net4j.util.om.pref</B></A> - package org.eclipse.net4j.util.om.pref<DD>Interfaces and classes for platform-independent preference management.<DT><A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html"><B>org.eclipse.net4j.util.om.trace</B></A> - package org.eclipse.net4j.util.om.trace<DD>Interfaces and classes for platform-independent tracing.<DT><A HREF="./org/eclipse/net4j/util/options/package-summary.html"><B>org.eclipse.net4j.util.options</B></A> - package org.eclipse.net4j.util.options<DD>A framework for option containers that fire change events.<DT><A HREF="./org/eclipse/net4j/util/properties/package-summary.html"><B>org.eclipse.net4j.util.properties</B></A> - package org.eclipse.net4j.util.properties<DD>A framework to describe and access properties of POJOs and to support Eclipse
@@ -6332,7 +6344,7 @@ Constructor for class org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/uti
<DT><A HREF="./org/eclipse/net4j/util/om/OSGiApplication.html" title="class in org.eclipse.net4j.util.om"><B>OSGiApplication</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/package-summary.html">org.eclipse.net4j.util.om</A><DD>A default implementation of an OSGi <CODE>application</CODE>.<DT><A HREF="./org/eclipse/net4j/util/om/OSGiApplication.html#OSGiApplication(java.lang.String)"><B>OSGiApplication(String)</B></A> -
Constructor for class org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/util/om/OSGiApplication.html" title="class in org.eclipse.net4j.util.om">OSGiApplication</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><B>OSGiLoggingBridge</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html#OSGiLoggingBridge()"><B>OSGiLoggingBridge()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><B>OSGiLoggingBridge</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>A <A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the OSGi <CODE>log service</CODE>.<DT><A HREF="./org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html#OSGiLoggingBridge()"><B>OSGiLoggingBridge()</B></A> -
Constructor for class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log">OSGiLoggingBridge</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/io/DelegatingOutputStream.html#out"><B>out</B></A> -
@@ -6394,7 +6406,7 @@ Method in class org.eclipse.net4j.util.ui.dnd.<A HREF="./org/eclipse/net4j/util/
<DT><A HREF="./org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.html#performDrop(TYPE, java.lang.Object)"><B>performDrop(TYPE, Object)</B></A> -
Method in class org.eclipse.net4j.util.ui.dnd.<A HREF="./org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.html" title="class in org.eclipse.net4j.util.ui.dnd">DNDDropAdapter</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/PerfTracer.html" title="class in org.eclipse.net4j.util.om.trace"><B>PerfTracer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/PerfTracer.html#PerfTracer(org.eclipse.net4j.util.om.trace.OMTracer, java.lang.Class)"><B>PerfTracer(OMTracer, Class&lt;?&gt;)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/PerfTracer.html" title="class in org.eclipse.net4j.util.om.trace"><B>PerfTracer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>A <A HREF="./org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>context tracer</CODE></A> that maintains a number of timers for performance measurements.<DT><A HREF="./org/eclipse/net4j/util/om/trace/PerfTracer.html#PerfTracer(org.eclipse.net4j.util.om.trace.OMTracer, java.lang.Class)"><B>PerfTracer(OMTracer, Class&lt;?&gt;)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/PerfTracer.html" title="class in org.eclipse.net4j.util.om.trace">PerfTracer</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/transaction/ITransactionalOperation.html#phase1(CONTEXT)"><B>phase1(CONTEXT)</B></A> -
@@ -6466,7 +6478,7 @@ Static method in class org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/ut
<DT><A HREF="./org/eclipse/net4j/util/io/IOUtil.html#print(java.lang.Throwable)"><B>print(Throwable)</B></A> -
Static method in class org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/util/io/IOUtil.html" title="class in org.eclipse.net4j.util.io">IOUtil</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><B>PrintLogHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html#PrintLogHandler(java.io.PrintStream, java.io.PrintStream)"><B>PrintLogHandler(PrintStream, PrintStream)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><B>PrintLogHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/log/package-summary.html">org.eclipse.net4j.util.om.log</A><DD>A <A HREF="./org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to <A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()"><CODE>error</CODE></A> and <A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()"><CODE>output</CODE></A> streams.<DT><A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html#PrintLogHandler(java.io.PrintStream, java.io.PrintStream)"><B>PrintLogHandler(PrintStream, PrintStream)</B></A> -
Constructor for class org.eclipse.net4j.util.om.log.<A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log">PrintLogHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/log/PrintLogHandler.html#PrintLogHandler()"><B>PrintLogHandler()</B></A> -
@@ -6478,7 +6490,8 @@ Static method in class org.eclipse.net4j.util.<A HREF="./org/eclipse/net4j/util/
<DT><A HREF="./org/eclipse/net4j/util/ReflectUtil.html#printStackTrace(java.lang.StackTraceElement[])"><B>printStackTrace(StackTraceElement[])</B></A> -
Static method in class org.eclipse.net4j.util.<A HREF="./org/eclipse/net4j/util/ReflectUtil.html" title="class in org.eclipse.net4j.util">ReflectUtil</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><B>PrintTraceHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#PrintTraceHandler(java.io.PrintStream)"><B>PrintTraceHandler(PrintStream)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><B>PrintTraceHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>A <A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that appends <A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to a <A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#getStream()"><CODE>print stream</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#PrintTraceHandler(java.io.PrintStream)"><B>PrintTraceHandler(PrintStream)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">PrintTraceHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#PrintTraceHandler()"><B>PrintTraceHandler()</B></A> -
@@ -7030,7 +7043,7 @@ Method in class org.eclipse.net4j.util.registry.<A HREF="./org/eclipse/net4j/uti
<DT><A HREF="./org/eclipse/net4j/util/registry/Registry.Transaction.html#rememberRegistered(K, V)"><B>rememberRegistered(K, V)</B></A> -
Method in class org.eclipse.net4j.util.registry.<A HREF="./org/eclipse/net4j/util/registry/Registry.Transaction.html" title="class in org.eclipse.net4j.util.registry">Registry.Transaction</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html#RemoteTraceHandler()"><B>RemoteTraceHandler()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceHandler</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>A <A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that sends <A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a remote trace <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html#RemoteTraceHandler()"><B>RemoteTraceHandler()</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html#RemoteTraceHandler(java.lang.String)"><B>RemoteTraceHandler(String)</B></A> -
@@ -7042,7 +7055,8 @@ Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net
<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html#RemoteTraceHandler(java.lang.String, java.lang.String, int)"><B>RemoteTraceHandler(String, String, int)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceHandler</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#RemoteTraceServer()"><B>RemoteTraceServer()</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>A server that <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>agents</CODE></A> can connect to and that passes the received <A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#RemoteTraceServer()"><B>RemoteTraceServer()</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#RemoteTraceServer(int)"><B>RemoteTraceServer(int)</B></A> -
@@ -7051,7 +7065,11 @@ Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net
<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#RemoteTraceServer(int, java.lang.String)"><B>RemoteTraceServer(int, String)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.Event</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.Listener</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.PrintListener</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#RemoteTraceServer.PrintListener(java.io.PrintStream)"><B>RemoteTraceServer.PrintListener(PrintStream)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.Event</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>A trace event being passed by a remote trace <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A> to
+ <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#RemoteTraceServer.Event(org.eclipse.net4j.util.om.trace.RemoteTraceServer)"><B>RemoteTraceServer.Event(RemoteTraceServer)</B></A> -
+Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.Listener</B></A> - Interface in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>Listens to <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> being passed by a remote trace <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.PrintListener</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>A <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listener</CODE></A> that appends <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a <A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()"><CODE>print stream</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#RemoteTraceServer.PrintListener(java.io.PrintStream)"><B>RemoteTraceServer.PrintListener(PrintStream)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.PrintListener</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#RemoteTraceServer.PrintListener()"><B>RemoteTraceServer.PrintListener()</B></A> -
@@ -7582,7 +7600,7 @@ Method in class org.eclipse.net4j.util.cache.<A HREF="./org/eclipse/net4j/util/c
<DT><A HREF="./org/eclipse/net4j/util/cache/CacheMonitor.html#setConditionPolicy(org.eclipse.net4j.util.cache.ICacheMonitor.ConditionPolicy)"><B>setConditionPolicy(ICacheMonitor.ConditionPolicy)</B></A> -
Method in class org.eclipse.net4j.util.cache.<A HREF="./org/eclipse/net4j/util/cache/CacheMonitor.html" title="class in org.eclipse.net4j.util.cache">CacheMonitor</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container"><B>SetContainer</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/SetContainer.html" title="type parameter in SetContainer">E</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/container/SetContainer.html#SetContainer(java.lang.Class)"><B>SetContainer(Class&lt;E&gt;)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container"><B>SetContainer</B></A>&lt;<A HREF="./org/eclipse/net4j/util/container/SetContainer.html" title="type parameter in SetContainer">E</A>&gt; - Class in <A HREF="./org/eclipse/net4j/util/container/package-summary.html">org.eclipse.net4j.util.container</A><DD>An implementation of a <A HREF="./org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="./org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="./org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/container/SetContainer.html#SetContainer(java.lang.Class)"><B>SetContainer(Class&lt;E&gt;)</B></A> -
Constructor for class org.eclipse.net4j.util.container.<A HREF="./org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/container/SetContainer.html#SetContainer(java.lang.Class, java.util.Set)"><B>SetContainer(Class&lt;E&gt;, Set&lt;E&gt;)</B></A> -
@@ -8069,6 +8087,9 @@ Constructor for class org.eclipse.net4j.util.io.<A HREF="./org/eclipse/net4j/uti
<DT><A HREF="./org/eclipse/net4j/util/container/SetContainer.html#sortElements(E[])"><B>sortElements(E[])</B></A> -
Method in class org.eclipse.net4j.util.container.<A HREF="./org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#stackTrace"><B>stackTrace</B></A> -
+Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/OSGiActivator.html#start(org.osgi.framework.BundleContext)"><B>start(BundleContext)</B></A> -
Method in class org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/util/om/OSGiActivator.html" title="class in org.eclipse.net4j.util.om">OSGiActivator</A>
<DD>&nbsp;
@@ -8215,6 +8236,9 @@ Static variable in interface org.eclipse.net4j.util.om.monitor.<A HREF="./org/ec
<DT><A HREF="./org/eclipse/net4j/util/cache/ThresholdConditionPolicy.html" title="class in org.eclipse.net4j.util.cache"><B>ThresholdConditionPolicy</B></A> - Class in <A HREF="./org/eclipse/net4j/util/cache/package-summary.html">org.eclipse.net4j.util.cache</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/cache/ThresholdConditionPolicy.html#ThresholdConditionPolicy(long, long)"><B>ThresholdConditionPolicy(long, long)</B></A> -
Constructor for class org.eclipse.net4j.util.cache.<A HREF="./org/eclipse/net4j/util/cache/ThresholdConditionPolicy.html" title="class in org.eclipse.net4j.util.cache">ThresholdConditionPolicy</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#throwable"><B>throwable</B></A> -
+Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html#throwable"><B>throwable</B></A> -
Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace">TraceHandlerEvent</A>
<DD>&nbsp;
@@ -8470,7 +8494,7 @@ Method in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/uti
<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html#traced(org.eclipse.net4j.util.om.trace.OMTraceHandlerEvent)"><B>traced(OMTraceHandlerEvent)</B></A> -
Method in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceHandler</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace"><B>TraceHandlerEvent</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html#TraceHandlerEvent(org.eclipse.net4j.util.om.trace.OMTracer, java.lang.Class, java.lang.String, java.lang.Throwable)"><B>TraceHandlerEvent(OMTracer, Class&lt;?&gt;, String, Throwable)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace"><B>TraceHandlerEvent</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>The default implementation of a <A HREF="./org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace event</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html#TraceHandlerEvent(org.eclipse.net4j.util.om.trace.OMTracer, java.lang.Class, java.lang.String, java.lang.Throwable)"><B>TraceHandlerEvent(OMTracer, Class&lt;?&gt;, String, Throwable)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace">TraceHandlerEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/OMBundle.html#tracer(java.lang.String)"><B>tracer(String)</B></A> -
@@ -8482,12 +8506,15 @@ Method in interface org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j
<DT><A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html#tracer"><B>tracer</B></A> -
Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace">TraceHandlerEvent</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/net4j/util/om/trace/Tracer.html" title="class in org.eclipse.net4j.util.om.trace"><B>Tracer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/net4j/util/om/trace/Tracer.html#Tracer(org.eclipse.net4j.util.om.OMBundle, java.lang.String)"><B>Tracer(OMBundle, String)</B></A> -
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/Tracer.html" title="class in org.eclipse.net4j.util.om.trace"><B>Tracer</B></A> - Class in <A HREF="./org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A><DD>The default implementation of a <A HREF="./org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.<DT><A HREF="./org/eclipse/net4j/util/om/trace/Tracer.html#Tracer(org.eclipse.net4j.util.om.OMBundle, java.lang.String)"><B>Tracer(OMBundle, String)</B></A> -
Constructor for class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/Tracer.html" title="class in org.eclipse.net4j.util.om.trace">Tracer</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/trace/Tracer.html#tracer(java.lang.String)"><B>tracer(String)</B></A> -
Method in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/Tracer.html" title="class in org.eclipse.net4j.util.om.trace">Tracer</A>
<DD>&nbsp;
+<DT><A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#tracerName"><B>tracerName</B></A> -
+Variable in class org.eclipse.net4j.util.om.trace.<A HREF="./org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>
+<DD>&nbsp;
<DT><A HREF="./org/eclipse/net4j/util/om/OSGiActivator.html#traceStart(org.osgi.framework.BundleContext)"><B>traceStart(BundleContext)</B></A> -
Static method in class org.eclipse.net4j.util.om.<A HREF="./org/eclipse/net4j/util/om/OSGiActivator.html" title="class in org.eclipse.net4j.util.om">OSGiActivator</A>
<DD>&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/ConcurrentValue.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/ConcurrentValue.html
index 9559db0af6..e7c4bbc455 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/ConcurrentValue.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/ConcurrentValue.html
@@ -110,8 +110,8 @@ Class ConcurrentValue&lt;T&gt;</H2>
<P>
-Allow synchronization between many threads for a specific value, e.g.:
-
+Allow synchronization between many threads for a specific value.
+
<pre>
MainThread cv.set(1);
Thread1 cv.acquire(3);
@@ -128,9 +128,9 @@ Allow synchronization between many threads for a specific value, e.g.:
...
// Thread 1,2,3 and 4 are blocked
// Thread 5 isn't blocked.
-
+
MainThread cv.set(3);
-
+
// Thread 1 and 4 are unblocked.
// Thread 2 and 3 are still blocked.
</pre>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/package-summary.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/package-summary.html
index 08bec17349..86a41724ce 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/package-summary.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/concurrent/package-summary.html
@@ -158,24 +158,7 @@ Utility interfaces and classes commonly useful in concurrent programming.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/concurrent/ConcurrentValue.html" title="class in org.eclipse.net4j.util.concurrent">ConcurrentValue&lt;T&gt;</A></B></TD>
-<TD>Allow synchronization between many threads for a specific value, e.g.:
-
-
- MainThread cv.set(1);
- Thread1 cv.acquire(3);
- Thread2 cv.acquire(4);
- Thread3 cv.acquire(100);
- Thread4 cv.acquire(new Object()
- {
- public boolean equals(Object other)
- {
- return other.equals(2) || other.equals(3);
- }
- });
- Thread5 cv.acquire(1);
- ...
- // Thread 1,2,3 and 4 are blocked
- // Thread 5 isn't blocked.</TD>
+<TD>Allow synchronization between many threads for a specific value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/concurrent/ExecutorServiceFactory.html" title="class in org.eclipse.net4j.util.concurrent">ExecutorServiceFactory</A></B></TD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/Container.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/Container.html
index feaaa4295d..2a8f5e16f3 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/Container.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/Container.html
@@ -123,7 +123,7 @@ Class Container&lt;E&gt;</H2>
<P>
-A default <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.
+An abstract base implementation of a <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.
<P>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.Modifiable.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.Modifiable.html
index 5aefbd4ea8..f05e30ea66 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.Modifiable.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.Modifiable.html
@@ -113,6 +113,10 @@ Interface IContainer.Modifiable&lt;E&gt;</H2>
<P>
+A <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with additional methods to add or remove elements.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.html
index 1c5acfdee1..289003568d 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/IContainer.html
@@ -151,7 +151,7 @@ Contains a number of elements and notifies about element addition and removal.
<TD><CODE><B><A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="interface in org.eclipse.net4j.util.container">IContainer.Modifiable</A>&lt;<A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="type parameter in IContainer.Modifiable">E</A>&gt;</B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with additional methods to add or remove elements.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.html
index 849b51043f..4015d4a703 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.html
@@ -108,8 +108,10 @@ Class SetContainer&lt;E&gt;</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="Container.html" title="Container" alt="" coords="15,6,92,31"/>
-<area shape="rect" id="node2" href="SetContainer.html" title="SetContainer" alt="" coords="5,71,101,97"/>
+<area shape="rect" id="node1" href="delegate/IContainerSortedSet.html" title="&#171;interface&#187; IContainerSortedSet (org.eclipse.net4j.util.container.delegate)" alt="" coords="5,158,261,213"/>
+<area shape="rect" id="node2" href="delegate/IContainerSet.html" title="&#171;interface&#187; IContainerSet (org.eclipse.net4j.util.container.delegate)" alt="" coords="291,158,547,213"/>
+<area shape="rect" id="node3" href="Container.html" title="Container" alt="" coords="237,6,315,31"/>
+<area shape="rect" id="node4" href="SetContainer.html" title="SetContainer" alt="" coords="227,75,324,101"/>
</map>
<CENTER><IMG SRC="SetContainer.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -117,10 +119,15 @@ Class SetContainer&lt;E&gt;</H2>
<P>
+An implementation of a <A HREF="../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>3.2</DD>
-</DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/net4j/util/container/delegate/IContainerSet.html" title="interface in org.eclipse.net4j.util.container.delegate"><CODE>IContainerSet</CODE></A>,
+<A HREF="../../../../../org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html" title="interface in org.eclipse.net4j.util.container.delegate"><CODE>IContainerSortedSet</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.png
index 403c13e2c9..0ae9cba2b4 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/SetContainer.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/Container.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/Container.html
index 01a6316749..24331a314a 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/Container.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/Container.html
@@ -120,7 +120,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.ht
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/IContainer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/IContainer.html
index f320247ccf..54ae18c402 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/IContainer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/class-use/IContainer.html
@@ -128,7 +128,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.h
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="interface in org.eclipse.net4j.util.container">IContainer.Modifiable&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with additional methods to add or remove elements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -162,7 +162,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.h
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -178,7 +178,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.h
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -308,7 +308,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.h
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate">IContainerBlockingQueue&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html
index 517c117b50..ea076ab433 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html
@@ -115,6 +115,10 @@ Interface IContainerBlockingQueue&lt;E&gt;</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.html
index 613cd71a33..40694fbe19 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.html
@@ -107,11 +107,12 @@ Interface IContainerSet&lt;E&gt;</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" title="&#171;interface&#187; Set (java.util)" alt="" coords="35,6,120,61"/>
-<area shape="rect" id="node2" href="IContainerSortedSet.html" title="&#171;interface&#187; IContainerSortedSet" alt="" coords="5,179,144,219"/>
-<area shape="rect" id="node3" href="IContainerSet.html" title="&#171;interface&#187; IContainerSet" alt="" coords="98,100,197,140"/>
-<area shape="rect" id="node4" href="IContainerCollection.html" title="&#171;interface&#187; IContainerCollection" alt="" coords="150,13,287,53"/>
-<area shape="rect" id="node5" href="ContainerSet.html" title="ContainerSet" alt="" coords="174,186,271,211"/>
+<area shape="rect" id="node1" title="&#171;interface&#187; Set (java.util)" alt="" coords="5,6,91,61"/>
+<area shape="rect" id="node2" href="IContainerSortedSet.html" title="&#171;interface&#187; IContainerSortedSet" alt="" coords="47,200,185,240"/>
+<area shape="rect" id="node3" href="IContainerSet.html" title="&#171;interface&#187; IContainerSet" alt="" coords="139,117,239,157"/>
+<area shape="rect" id="node4" href="IContainerCollection.html" title="&#171;interface&#187; IContainerCollection" alt="" coords="121,13,257,53"/>
+<area shape="rect" id="node5" href="../SetContainer.html" title="SetContainer (org.eclipse.net4j.util.container)" alt="" coords="288,13,491,53"/>
+<area shape="rect" id="node6" href="ContainerSet.html" title="ContainerSet" alt="" coords="215,207,312,233"/>
</map>
<CENTER><IMG SRC="IContainerSet.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -123,6 +124,8 @@ A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" t
<P>
<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container"><CODE>SetContainer</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.png
index fea3ae43f2..12725dd075 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSet.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html
index ca5d6a656c..de7904d812 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.html
@@ -105,9 +105,10 @@ Interface IContainerSortedSet&lt;E&gt;</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" title="&#171;interface&#187; SortedSet (java.util)" alt="" coords="5,6,91,61"/>
-<area shape="rect" id="node2" href="IContainerSortedSet.html" title="&#171;interface&#187; IContainerSortedSet" alt="" coords="40,100,179,140"/>
+<area shape="rect" id="node2" href="IContainerSortedSet.html" title="&#171;interface&#187; IContainerSortedSet" alt="" coords="101,117,240,157"/>
<area shape="rect" id="node3" href="IContainerSet.html" title="&#171;interface&#187; IContainerSet" alt="" coords="121,13,220,53"/>
-<area shape="rect" id="node4" href="ContainerSortedSet.html" title="ContainerSortedSet" alt="" coords="42,179,176,205"/>
+<area shape="rect" id="node4" href="../SetContainer.html" title="SetContainer (org.eclipse.net4j.util.container)" alt="" coords="251,13,453,53"/>
+<area shape="rect" id="node5" href="ContainerSortedSet.html" title="ContainerSortedSet" alt="" coords="103,201,237,226"/>
</map>
<CENTER><IMG SRC="IContainerSortedSet.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.png
index 5bf094accf..5dd3650a8f 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/IContainerSortedSet.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerCollection.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerCollection.html
index 69af2b7dc9..47d55ffbe1 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerCollection.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerCollection.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/container/delegate/
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate">IContainerBlockingQueue&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerQueue.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerQueue.html
index 52c4b3fad6..1ba84b3fd8 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerQueue.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/class-use/IContainerQueue.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/container/delegate/
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate">IContainerBlockingQueue&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-summary.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-summary.html
index 0e82b34d59..430a49bcd4 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-summary.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-summary.html
@@ -114,7 +114,7 @@ Hybrid interfaces of notifying containers and the Java Collection Framework.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate">IContainerBlockingQueue&lt;E&gt;</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/container/delegate/IContainerCollection.html" title="interface in org.eclipse.net4j.util.container.delegate">IContainerCollection&lt;E&gt;</A></B></TD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-use.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-use.html
index 37b98c915c..1b8a68c065 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-use.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/delegate/package-use.html
@@ -136,7 +136,7 @@ Classes in <A HREF="../../../../../../org/eclipse/net4j/util/container/delegate/
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/container/delegate/class-use/IContainerBlockingQueue.html#org.eclipse.net4j.util.container.delegate"><B>IContainerBlockingQueue</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/container/delegate/class-use/IContainerCollection.html#org.eclipse.net4j.util.container.delegate"><B>IContainerCollection</B></A></B>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-summary.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-summary.html
index 2f97c81783..6110beacb2 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-summary.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-summary.html
@@ -118,7 +118,7 @@ A framework of notifying collections and wiring containers.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="interface in org.eclipse.net4j.util.container">IContainer.Modifiable&lt;E&gt;</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with additional methods to add or remove elements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/container/IContainerDelta.html" title="interface in org.eclipse.net4j.util.container">IContainerDelta&lt;E&gt;</A></B></TD>
@@ -166,7 +166,7 @@ A framework of notifying collections and wiring containers.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container&lt;E&gt;</A></B></TD>
-<TD>A default <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+<TD>An abstract base implementation of a <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/container/ContainerDelta.html" title="class in org.eclipse.net4j.util.container">ContainerDelta&lt;E&gt;</A></B></TD>
@@ -196,7 +196,7 @@ A framework of notifying collections and wiring containers.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An implementation of a <A HREF="../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/container/SingleDeltaContainerEvent.html" title="class in org.eclipse.net4j.util.container">SingleDeltaContainerEvent&lt;E&gt;</A></B></TD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-use.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-use.html
index d490f9c3a0..642108e4f0 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-use.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/container/package-use.html
@@ -150,7 +150,7 @@ Classes in <A HREF="../../../../../org/eclipse/net4j/util/container/package-summ
<TD><B><A HREF="../../../../../org/eclipse/net4j/util/container/class-use/Container.html#org.eclipse.net4j.util.container"><B>Container</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/net4j/util/container/class-use/ContainerEvent.html#org.eclipse.net4j.util.container"><B>ContainerEvent</B></A></B>
@@ -267,7 +267,7 @@ Classes in <A HREF="../../../../../org/eclipse/net4j/util/container/package-summ
<TD><B><A HREF="../../../../../org/eclipse/net4j/util/container/class-use/Container.html#org.eclipse.net4j.util.registry"><B>Container</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/net4j/util/container/class-use/IContainer.html#org.eclipse.net4j.util.registry"><B>IContainer</B></A></B>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Event.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Event.html
index 1475edd687..0e432b47a5 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Event.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Event.html
@@ -244,7 +244,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/Event.html" titl
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/options/OptionsEvent.html" title="class in org.eclipse.net4j.util.options">OptionsEvent</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default implementation of an <A HREF="../../../../../../org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/IEvent.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/IEvent.html
index 0528374083..0afb190bb3 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/IEvent.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/IEvent.html
@@ -538,7 +538,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/IEvent.html" tit
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/options/OptionsEvent.html" title="class in org.eclipse.net4j.util.options">OptionsEvent</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default implementation of an <A HREF="../../../../../../org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/INotifier.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/INotifier.html
index 4ea6ad74b5..7024f3b565 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/INotifier.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/INotifier.html
@@ -359,7 +359,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/INotifier.html"
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.Modifiable.html" title="interface in org.eclipse.net4j.util.container">IContainer.Modifiable&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with additional methods to add or remove elements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -393,7 +393,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/INotifier.html"
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -409,7 +409,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/INotifier.html"
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -450,7 +450,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/INotifier.html"
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.html" title="interface in org.eclipse.net4j.util.container.delegate">IContainerBlockingQueue&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that is a <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>BlockingQueue</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Notifier.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Notifier.html
index 316c646d54..fec0efc1ae 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Notifier.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/class-use/Notifier.html
@@ -295,7 +295,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/Notifier.html" t
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -311,7 +311,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/event/Notifier.html" t
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.DeferrableActivation.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.DeferrableActivation.html
index 7d08ea3e5b..e4e0c472a4 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.DeferrableActivation.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.DeferrableActivation.html
@@ -246,7 +246,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.D
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -262,7 +262,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.D
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.html
index 2c2831a36b..399f50e391 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/ILifecycle.html
@@ -280,7 +280,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.h
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -296,7 +296,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.h
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/Lifecycle.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/Lifecycle.html
index 31484fd63e..13622f75ec 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/Lifecycle.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/lifecycle/class-use/Lifecycle.html
@@ -246,7 +246,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/Lifecycle.ht
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container">Container&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A default <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> implementation with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/IContainer.html" title="interface in org.eclipse.net4j.util.container"><CODE>container</CODE></A> with a <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/ILifecycle.html" title="interface in org.eclipse.net4j.util.lifecycle"><CODE>lifecycle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -262,7 +262,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/lifecycle/Lifecycle.ht
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html" title="class in org.eclipse.net4j.util.container">SetContainer&lt;E&gt;</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/container/Container.html" title="class in org.eclipse.net4j.util.container"><CODE>container</CODE></A> that stores its <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getElements()"><CODE>elements</CODE></A> in a <A HREF="../../../../../../org/eclipse/net4j/util/container/SetContainer.html#getSet()"><CODE>set</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.html
index 5c909439ae..3d521ccb32 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.html
@@ -98,11 +98,11 @@ Interface OMBundle</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" title="Properties (java.util)" alt="" coords="506,5,587,45"/>
-<area shape="rect" id="node2" href="OMBundle.html" title="&#171;interface&#187; OMBundle" alt="" coords="195,156,280,196"/>
+<area shape="rect" id="node2" href="OMBundle.html" title="&#171;interface&#187; OMBundle" alt="" coords="195,189,280,229"/>
<area shape="rect" id="node3" href="OMBundle.DebugSupport.html" title="&#171;interface&#187; OMBundle.DebugSupport" alt="" coords="462,64,631,104"/>
<area shape="rect" id="node4" href="OMBundle.TranslationSupport.html" title="&#171;interface&#187; OMBundle.TranslationSupport" alt="" coords="449,123,644,163"/>
<area shape="rect" id="node5" href="log/OMLogger.html" title="&#171;interface&#187; OMLogger (org.eclipse.net4j.util.om.log)" alt="" coords="452,182,641,237"/>
-<area shape="rect" id="node6" href="OMPlatform.html" title="&#171;interface&#187; OMPlatform" alt="" coords="5,156,96,196"/>
+<area shape="rect" id="node6" href="OMPlatform.html" title="&#171;interface&#187; OMPlatform" alt="" coords="5,189,96,229"/>
<area shape="rect" id="node7" href="pref/OMPreferences.html" title="&#171;interface&#187; OMPreferences (org.eclipse.net4j.util.om.pref)" alt="" coords="450,255,643,310"/>
<area shape="rect" id="node8" href="trace/OMTracer.html" title="&#171;interface&#187; OMTracer (org.eclipse.net4j.util.om.trace)" alt="" coords="446,329,647,383"/>
</map>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.png
index 42c9396cd9..f278d01097 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMBundle.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.html
index 8e5539e03e..e5fcc3b8ea 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.html
@@ -97,11 +97,12 @@ Interface OMPlatform</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="trace/OMTraceHandler.html" title="&#171;interface&#187; OMTraceHandler (org.eclipse.net4j.util.om.trace)" alt="" coords="5,102,205,157"/>
-<area shape="rect" id="node2" href="OMPlatform.html" title="&#171;interface&#187; OMPlatform" alt="" coords="368,5,459,45"/>
-<area shape="rect" id="node3" href="log/OMLogHandler.html" title="&#171;interface&#187; OMLogHandler (org.eclipse.net4j.util.om.log)" alt="" coords="236,102,425,157"/>
-<area shape="rect" id="node4" href="OMBundle.html" title="&#171;interface&#187; OMBundle" alt="" coords="455,109,540,149"/>
-<area shape="rect" id="node5" title="File (java.io)" alt="" coords="569,109,636,149"/>
+<area shape="rect" id="node1" title="File (java.io)" alt="" coords="343,5,409,45"/>
+<area shape="rect" id="node2" href="OMBundle.html" title="&#171;interface&#187; OMBundle" alt="" coords="333,64,419,104"/>
+<area shape="rect" id="node3" href="log/OMLogFilter.html" title="&#171;interface&#187; OMLogFilter (org.eclipse.net4j.util.om.log)" alt="" coords="281,123,471,178"/>
+<area shape="rect" id="node4" href="log/OMLogHandler.html" title="&#171;interface&#187; OMLogHandler (org.eclipse.net4j.util.om.log)" alt="" coords="281,197,471,251"/>
+<area shape="rect" id="node5" href="OMPlatform.html" title="&#171;interface&#187; OMPlatform" alt="" coords="5,151,96,191"/>
+<area shape="rect" id="node6" href="trace/OMTraceHandler.html" title="&#171;interface&#187; OMTraceHandler (org.eclipse.net4j.util.om.trace)" alt="" coords="275,270,477,325"/>
</map>
<CENTER><IMG SRC="OMPlatform.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.png
index 3568c4b94a..e782c342cf 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/OMPlatform.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/AbstractLogHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/AbstractLogHandler.html
index 6b5ba3bf40..d057dfd004 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/AbstractLogHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/AbstractLogHandler.html
@@ -120,6 +120,11 @@ Class AbstractLogHandler</H2>
<P>
+An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that filters log events with a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log"><CODE>log level</CODE></A>
+ greater than a configurable <CODE>maximum level</CODE>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html
index 77e0b86f43..f4cd6d45f8 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html
@@ -107,7 +107,7 @@ Class EclipseLoggingBridge</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="OMLogHandler.html" title="&#171;interface&#187; OMLogHandler" alt="" coords="25,5,132,45"/>
-<area shape="rect" id="node2" href="EclipseLoggingBridge.html" title="EclipseLoggingBridge" alt="" coords="5,85,152,110"/>
+<area shape="rect" id="node2" href="EclipseLoggingBridge.html" title="EclipseLoggingBridge" alt="" coords="5,102,152,127"/>
</map>
<CENTER><IMG SRC="EclipseLoggingBridge.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -115,6 +115,10 @@ Class EclipseLoggingBridge</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the Eclipse <CODE>error log</CODE>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.png
index a212089261..f92aae410f 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.html
index b6c5f1ddcb..1c738bb6d5 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.html
@@ -106,8 +106,10 @@ Class FileLogHandler</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="AbstractLogHandler.html" title="AbstractLogHandler" alt="" coords="5,6,141,31"/>
-<area shape="rect" id="node2" href="FileLogHandler.html" title="FileLogHandler" alt="" coords="19,71,127,97"/>
+<area shape="rect" id="node1" href="OMLogHandler.html" title="&#171;interface&#187; OMLogHandler" alt="" coords="5,157,112,197"/>
+<area shape="rect" id="node2" href="AbstractLogHandler.html" title="AbstractLogHandler" alt="" coords="61,6,197,31"/>
+<area shape="rect" id="node3" href="PrintLogHandler.html" title="PrintLogHandler" alt="" coords="143,165,257,190"/>
+<area shape="rect" id="node4" href="FileLogHandler.html" title="FileLogHandler" alt="" coords="75,75,183,101"/>
</map>
<CENTER><IMG SRC="FileLogHandler.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -115,10 +117,16 @@ Class FileLogHandler</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html#getLogFile()"><CODE>file</CODE></A>.
+ <p>
+ The file is opened before and closed after each log event.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
-</DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><CODE>PrintLogHandler</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.png
index 98337e2d03..288429e711 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/FileLogHandler.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/Logger.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/Logger.html
index 9551678168..a7db44ca04 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/Logger.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/Logger.html
@@ -115,6 +115,10 @@ Class Logger</H2>
<P>
+The default <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>logger</CODE></A> implementation.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.html
index d3fa705c62..3055fc5fba 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.html
@@ -97,7 +97,8 @@ Interface OMLogFilter</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="OMLogFilter.html" title="&#171;interface&#187; OMLogFilter" alt="" coords="5,5,99,45"/>
+<area shape="rect" id="node1" href="../OMPlatform.html" title="&#171;interface&#187; OMPlatform (org.eclipse.net4j.util.om)" alt="" coords="5,6,173,61"/>
+<area shape="rect" id="node2" href="OMLogFilter.html" title="&#171;interface&#187; OMLogFilter" alt="" coords="43,117,136,157"/>
</map>
<CENTER><IMG SRC="OMLogFilter.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -105,15 +106,15 @@ Interface OMLogFilter</H2>
<P>
-Filters log events before they are being passed to <A HREF="../../../../../../org/eclipse/net4j/util/om/OMPlatform.html#addLogFilter(org.eclipse.net4j.util.om.log.OMLogFilter)"><CODE>registered</CODE></A>
- <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.
+Filters log events before they are being passed to the registered <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>3.2</DD>
-</DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/om/OMPlatform.html#addLogFilter(org.eclipse.net4j.util.om.log.OMLogFilter)"><CODE>OMPlatform.addLogFilter(OMLogFilter)</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/OMPlatform.html#removeLogFilter(org.eclipse.net4j.util.om.log.OMLogFilter)"><CODE>OMPlatform.removeLogFilter(OMLogFilter)</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.png
index fabc656284..cb124e78f6 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogFilter.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.html
index cdd3cda77f..821580a70d 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.html
@@ -100,11 +100,13 @@ Interface OMLogHandler</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="../OMPlatform.html" title="&#171;interface&#187; OMPlatform (org.eclipse.net4j.util.om)" alt="" coords="156,6,324,61"/>
-<area shape="rect" id="node2" href="OMLogHandler.html" title="&#171;interface&#187; OMLogHandler" alt="" coords="186,117,293,157"/>
-<area shape="rect" id="node3" href="AbstractLogHandler.html" title="AbstractLogHandler" alt="" coords="5,201,141,226"/>
-<area shape="rect" id="node4" href="OSGiLoggingBridge.html" title="OSGiLoggingBridge" alt="" coords="172,201,308,226"/>
-<area shape="rect" id="node5" href="EclipseLoggingBridge.html" title="EclipseLoggingBridge" alt="" coords="337,201,484,226"/>
+<area shape="rect" id="node1" href="../OMPlatform.html" title="&#171;interface&#187; OMPlatform (org.eclipse.net4j.util.om)" alt="" coords="191,6,359,61"/>
+<area shape="rect" id="node2" href="OMLogHandler.html" title="&#171;interface&#187; OMLogHandler" alt="" coords="307,117,415,157"/>
+<area shape="rect" id="node3" href="AbstractLogHandler.html" title="AbstractLogHandler" alt="" coords="5,214,141,239"/>
+<area shape="rect" id="node4" href="PrintLogHandler.html" title="PrintLogHandler" alt="" coords="172,214,287,239"/>
+<area shape="rect" id="node5" href="OSGiLoggingBridge.html" title="OSGiLoggingBridge" alt="" coords="316,214,452,239"/>
+<area shape="rect" id="node6" href="FileLogHandler.html" title="FileLogHandler" alt="" coords="407,21,515,46"/>
+<area shape="rect" id="node7" href="EclipseLoggingBridge.html" title="EclipseLoggingBridge" alt="" coords="481,214,628,239"/>
</map>
<CENTER><IMG SRC="OMLogHandler.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -112,6 +114,18 @@ Interface OMLogHandler</H2>
<P>
+Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>filtered</CODE></A> log events, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><CODE>stream</CODE></A> or
+ the Eclipse <A HREF="../../../../../../org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><CODE>error log</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/om/OMPlatform.html#addLogHandler(org.eclipse.net4j.util.om.log.OMLogHandler)"><CODE>OMPlatform.addLogHandler(OMLogHandler)</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/OMPlatform.html#removeLogHandler(org.eclipse.net4j.util.om.log.OMLogHandler)"><CODE>OMPlatform.removeLogHandler(OMLogHandler)</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html#INSTANCE"><CODE>EclipseLoggingBridge.INSTANCE</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#CONSOLE"><CODE>PrintLogHandler.CONSOLE</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html#INSTANCE"><CODE>OSGiLoggingBridge.INSTANCE</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><CODE>FileLogHandler</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.png
index 3b2ed3c1e7..a9164b3c59 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogHandler.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.Level.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.Level.html
index e567df570f..58cb9b07dd 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.Level.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.Level.html
@@ -117,6 +117,10 @@ Enum OMLogger.Level</H2>
<P>
+Enumerates the possible severity levels of log events.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.html
index 49a1e923a4..21e73a9365 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OMLogger.html
@@ -110,6 +110,10 @@ Interface OMLogger</H2>
<P>
+The <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#logger()"><CODE>logger</CODE></A> of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
@@ -133,7 +137,7 @@ Interface OMLogger</H2>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log">OMLogger.Level</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enumerates the possible severity levels of log events.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html
index 7f4cc24117..c790949e43 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html
@@ -107,7 +107,7 @@ Class OSGiLoggingBridge</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="OMLogHandler.html" title="&#171;interface&#187; OMLogHandler" alt="" coords="19,5,127,45"/>
-<area shape="rect" id="node2" href="OSGiLoggingBridge.html" title="OSGiLoggingBridge" alt="" coords="5,85,141,110"/>
+<area shape="rect" id="node2" href="OSGiLoggingBridge.html" title="OSGiLoggingBridge" alt="" coords="5,102,141,127"/>
</map>
<CENTER><IMG SRC="OSGiLoggingBridge.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -115,6 +115,10 @@ Class OSGiLoggingBridge</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the OSGi <CODE>log service</CODE>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.png
index 0defc7217c..8573f5ded9 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.html
index ef48b4aa00..265346cf9c 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.html
@@ -106,8 +106,10 @@ Class PrintLogHandler</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="AbstractLogHandler.html" title="AbstractLogHandler" alt="" coords="5,6,141,31"/>
-<area shape="rect" id="node2" href="PrintLogHandler.html" title="PrintLogHandler" alt="" coords="16,71,131,97"/>
+<area shape="rect" id="node1" href="OMLogHandler.html" title="&#171;interface&#187; OMLogHandler" alt="" coords="5,5,112,45"/>
+<area shape="rect" id="node2" href="AbstractLogHandler.html" title="AbstractLogHandler" alt="" coords="142,13,279,38"/>
+<area shape="rect" id="node3" href="PrintLogHandler.html" title="PrintLogHandler" alt="" coords="153,102,268,127"/>
+<area shape="rect" id="node4" href="FileLogHandler.html" title="FileLogHandler" alt="" coords="309,13,416,38"/>
</map>
<CENTER><IMG SRC="PrintLogHandler.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -115,6 +117,10 @@ Class PrintLogHandler</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()"><CODE>error</CODE></A> and <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()"><CODE>output</CODE></A> streams.
+<P>
+
+<P>
<HR>
<P>
@@ -173,6 +179,22 @@ Class PrintLogHandler</H2>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()">getErr</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()">getOut</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#writeLog(org.eclipse.net4j.util.om.log.OMLogger, org.eclipse.net4j.util.om.log.OMLogger.Level, java.lang.String, java.lang.Throwable)">writeLog</A></B>(<A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log">OMLogger</A>&nbsp;logger,
<A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log">OMLogger.Level</A>&nbsp;level,
@@ -259,6 +281,32 @@ protected <B>PrintLogHandler</B>()</PRE>
</TR>
</TABLE>
+<A NAME="getOut()"><!-- --></A><H3>
+getOut</H3>
+<PRE>
+public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A> <B>getOut</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getErr()"><!-- --></A><H3>
+getErr</H3>
+<PRE>
+public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A> <B>getErr</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DD>
+</DL>
+<HR>
+
<A NAME="writeLog(org.eclipse.net4j.util.om.log.OMLogger, org.eclipse.net4j.util.om.log.OMLogger.Level, java.lang.String, java.lang.Throwable)"><!-- --></A><H3>
writeLog</H3>
<PRE>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.png
index c161577455..e6ff592f23 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/PrintLogHandler.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/AbstractLogHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/AbstractLogHandler.html
index 87273c855e..3b261f8d3c 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/AbstractLogHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/AbstractLogHandler.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/AbstractLogH
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html" title="class in org.eclipse.net4j.util.om.log">FileLogHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to a <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html#getLogFile()"><CODE>file</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -124,7 +124,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/AbstractLogH
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log">PrintLogHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()"><CODE>error</CODE></A> and <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()"><CODE>output</CODE></A> streams.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogHandler.html
index ea77463a56..45648ef177 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogHandler.html
@@ -153,7 +153,8 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/AbstractLogHandler.html" title="class in org.eclipse.net4j.util.om.log">AbstractLogHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that filters log events with a <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log"><CODE>log level</CODE></A>
+ greater than a configurable <CODE>maximum level</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -161,7 +162,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log">EclipseLoggingBridge</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the Eclipse <CODE>error log</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -169,7 +170,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html" title="class in org.eclipse.net4j.util.om.log">FileLogHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to a <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html#getLogFile()"><CODE>file</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -177,7 +178,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log">OSGiLoggingBridge</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the OSGi <CODE>log service</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -185,7 +186,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log">PrintLogHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()"><CODE>error</CODE></A> and <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()"><CODE>output</CODE></A> streams.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogger.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogger.html
index 2a947057bd..b51b445b59 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogger.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/class-use/OMLogger.html
@@ -145,7 +145,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogger.htm
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/log/Logger.html" title="class in org.eclipse.net4j.util.om.log">Logger</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default <A HREF="../../../../../../../org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>logger</CODE></A> implementation.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-summary.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-summary.html
index f84caf7d85..f9b3c6df7a 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-summary.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-summary.html
@@ -111,16 +111,16 @@ Interfaces and classes for platform-independent logging.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log">OMLogFilter</A></B></TD>
-<TD>Filters log events before they are being passed to <A HREF="../../../../../../org/eclipse/net4j/util/om/OMPlatform.html#addLogFilter(org.eclipse.net4j.util.om.log.OMLogFilter)"><CODE>registered</CODE></A>
- <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.</TD>
+<TD>Filters log events before they are being passed to the registered <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log">OMLogger</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#logger()"><CODE>logger</CODE></A> of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log">OMLogHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>filtered</CODE></A> log events, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><CODE>stream</CODE></A> or
+ the Eclipse <A HREF="../../../../../../org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><CODE>error log</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -134,27 +134,28 @@ Interfaces and classes for platform-independent logging.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/AbstractLogHandler.html" title="class in org.eclipse.net4j.util.om.log">AbstractLogHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that filters log events with a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log"><CODE>log level</CODE></A>
+ greater than a configurable <CODE>maximum level</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log">EclipseLoggingBridge</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the Eclipse <CODE>error log</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html" title="class in org.eclipse.net4j.util.om.log">FileLogHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/FileLogHandler.html#getLogFile()"><CODE>file</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/Logger.html" title="class in org.eclipse.net4j.util.om.log">Logger</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The default <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>logger</CODE></A> implementation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/OSGiLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log">OSGiLoggingBridge</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the OSGi <CODE>log service</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log">PrintLogHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()"><CODE>error</CODE></A> and <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()"><CODE>output</CODE></A> streams.</TD>
</TR>
</TABLE>
&nbsp;
@@ -168,7 +169,7 @@ Interfaces and classes for platform-independent logging.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log">OMLogger.Level</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Enumerates the possible severity levels of log events.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-use.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-use.html
index 300113e8f1..36cc569aa2 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-use.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/log/package-use.html
@@ -114,7 +114,7 @@ Classes in <A HREF="../../../../../../org/eclipse/net4j/util/om/log/package-summ
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OMLogger.Level.html#org.eclipse.net4j.util.lifecycle"><B>OMLogger.Level</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enumerates the possible severity levels of log events.</TD>
</TR>
</TABLE>
&nbsp;
@@ -129,20 +129,20 @@ Classes in <A HREF="../../../../../../org/eclipse/net4j/util/om/log/package-summ
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OMLogFilter.html#org.eclipse.net4j.util.om"><B>OMLogFilter</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters log events before they are being passed to <A HREF="../../../../../../org/eclipse/net4j/util/om/OMPlatform.html#addLogFilter(org.eclipse.net4j.util.om.log.OMLogFilter)"><CODE>registered</CODE></A>
- <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters log events before they are being passed to the registered <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handlers</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OMLogger.html#org.eclipse.net4j.util.om"><B>OMLogger</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#logger()"><CODE>logger</CODE></A> of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OMLogHandler.html#org.eclipse.net4j.util.om"><B>OMLogHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>filtered</CODE></A> log events, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><CODE>stream</CODE></A> or
+ the Eclipse <A HREF="../../../../../../org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><CODE>error log</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -157,43 +157,45 @@ Classes in <A HREF="../../../../../../org/eclipse/net4j/util/om/log/package-summ
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/AbstractLogHandler.html#org.eclipse.net4j.util.om.log"><B>AbstractLogHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract base implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that filters log events with a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogger.Level.html" title="enum in org.eclipse.net4j.util.om.log"><CODE>log level</CODE></A>
+ greater than a configurable <CODE>maximum level</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/EclipseLoggingBridge.html#org.eclipse.net4j.util.om.log"><B>EclipseLoggingBridge</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the Eclipse <CODE>error log</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OMLogger.html#org.eclipse.net4j.util.om.log"><B>OMLogger</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#logger()"><CODE>logger</CODE></A> of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OMLogger.Level.html#org.eclipse.net4j.util.om.log"><B>OMLogger.Level</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enumerates the possible severity levels of log events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OMLogHandler.html#org.eclipse.net4j.util.om.log"><B>OMLogHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogFilter.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>filtered</CODE></A> log events, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html" title="class in org.eclipse.net4j.util.om.log"><CODE>stream</CODE></A> or
+ the Eclipse <A HREF="../../../../../../org/eclipse/net4j/util/om/log/EclipseLoggingBridge.html" title="class in org.eclipse.net4j.util.om.log"><CODE>error log</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/OSGiLoggingBridge.html#org.eclipse.net4j.util.om.log"><B>OSGiLoggingBridge</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to the OSGi <CODE>log service</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/log/class-use/PrintLogHandler.html#org.eclipse.net4j.util.om.log"><B>PrintLogHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/log/OMLogHandler.html" title="interface in org.eclipse.net4j.util.om.log"><CODE>log handler</CODE></A> that appends log events to <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getErr()"><CODE>error</CODE></A> and <A HREF="../../../../../../org/eclipse/net4j/util/om/log/PrintLogHandler.html#getOut()"><CODE>output</CODE></A> streams.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.html
index b7a020bf8b..e1f984b670 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.html
@@ -105,8 +105,9 @@ Class ContextTracer</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="PerfTracer.html" title="PerfTracer" alt="" coords="15,71,96,97"/>
-<area shape="rect" id="node2" href="ContextTracer.html" title="ContextTracer" alt="" coords="5,6,107,31"/>
+<area shape="rect" id="node1" href="OMTracer.html" title="&#171;interface&#187; OMTracer" alt="" coords="5,88,91,128"/>
+<area shape="rect" id="node2" href="PerfTracer.html" title="PerfTracer" alt="" coords="133,95,213,121"/>
+<area shape="rect" id="node3" href="ContextTracer.html" title="ContextTracer" alt="" coords="83,6,185,31"/>
</map>
<CENTER><IMG SRC="ContextTracer.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -114,6 +115,12 @@ Class ContextTracer</H2>
<P>
+Encapsulates a tracing <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getContext()"><CODE>context</CODE></A> and delegates trace calls to a bundle <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PerfTracer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>PerfTracer</CODE></A></DL>
<HR>
<P>
@@ -172,6 +179,14 @@ Class ContextTracer</H2>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getContext()">getContext</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace">OMTracer</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getDelegate()">getDelegate</A></B>()</CODE>
@@ -284,6 +299,19 @@ public <B>ContextTracer</B>(<A HREF="../../../../../../org/eclipse/net4j/util/om
</TR>
</TABLE>
+<A NAME="getContext()"><!-- --></A><H3>
+getContext</H3>
+<PRE>
+public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt; <B>getContext</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DD>
+</DL>
+<HR>
+
<A NAME="getBundle()"><!-- --></A><H3>
getBundle</H3>
<PRE>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.png
index 59d3a9d8cc..775fbdcb37 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/ContextTracer.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.html
index bde7cadd0a..a7bf392752 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.html
@@ -102,8 +102,8 @@ Interface OMTraceHandler</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="OMTraceHandler.html" title="&#171;interface&#187; OMTraceHandler" alt="" coords="98,117,216,157"/>
<area shape="rect" id="node2" href="../OMPlatform.html" title="&#171;interface&#187; OMPlatform (org.eclipse.net4j.util.om)" alt="" coords="73,6,241,61"/>
-<area shape="rect" id="node3" href="RemoteTraceHandler.html" title="RemoteTraceHandler" alt="" coords="5,201,147,226"/>
-<area shape="rect" id="node4" href="PrintTraceHandler.html" title="PrintTraceHandler" alt="" coords="177,201,303,226"/>
+<area shape="rect" id="node3" href="RemoteTraceHandler.html" title="RemoteTraceHandler" alt="" coords="5,214,147,239"/>
+<area shape="rect" id="node4" href="PrintTraceHandler.html" title="PrintTraceHandler" alt="" coords="184,214,309,239"/>
</map>
<CENTER><IMG SRC="OMTraceHandler.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -111,6 +111,14 @@ Interface OMTraceHandler</H2>
<P>
+Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>stream</CODE></A> sends them to a
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>remote</CODE></A> trace handler.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#CONSOLE"><CODE>PrintTraceHandler.CONSOLE</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>RemoteTraceHandler</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.png
index 492ffcf8b6..2d2917855f 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandler.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html
index 9a5fb7896a..0cecce69ea 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html
@@ -109,6 +109,10 @@ Interface OMTraceHandlerEvent</H2>
<P>
+Encapsulates the information of a trace event.
+<P>
+
+<P>
<DL>
<DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.html
index 7d7e66c5fa..b3f79bae8d 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.html
@@ -100,9 +100,10 @@ Interface OMTracer</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="OMTracer.html" title="&#171;interface&#187; OMTracer" alt="" coords="47,117,132,157"/>
+<area shape="rect" id="node1" href="OMTracer.html" title="&#171;interface&#187; OMTracer" alt="" coords="119,117,204,157"/>
<area shape="rect" id="node2" href="../OMBundle.html" title="&#171;interface&#187; OMBundle (org.eclipse.net4j.util.om)" alt="" coords="5,6,173,61"/>
-<area shape="rect" id="node3" href="Tracer.html" title="Tracer" alt="" coords="60,201,119,226"/>
+<area shape="rect" id="node3" href="Tracer.html" title="Tracer" alt="" coords="132,201,191,226"/>
+<area shape="rect" id="node4" href="ContextTracer.html" title="ContextTracer" alt="" coords="210,21,312,46"/>
</map>
<CENTER><IMG SRC="OMTracer.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -110,8 +111,14 @@ Interface OMTracer</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getName()"><CODE>named</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#tracer(java.lang.String)"><CODE>tracer</CODE></A> within the <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getParent()"><CODE>hierarchy</CODE></A> of tracers of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.
+<P>
+
+<P>
<DL>
-<DT><B>No Implement</B></DT>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#tracer(java.lang.String)"><CODE>OMBundle.tracer(String)</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#tracer(java.lang.String)"><CODE>tracer(String)</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>ContextTracer</CODE></A><DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
<DT><B>No Extend</B></DT>
<DD>This interface is not intended to be extended by clients.</DD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.png
index 403e46fee9..09c458a630 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/OMTracer.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.html
index 2b1db2cc49..501dfe60b8 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.html
@@ -103,7 +103,7 @@ Class PerfTracer</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="PerfTracer.html" title="PerfTracer" alt="" coords="15,71,96,97"/>
+<area shape="rect" id="node1" href="PerfTracer.html" title="PerfTracer" alt="" coords="15,89,96,114"/>
<area shape="rect" id="node2" href="ContextTracer.html" title="ContextTracer" alt="" coords="5,6,107,31"/>
</map>
@@ -112,6 +112,10 @@ Class PerfTracer</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>context tracer</CODE></A> that maintains a number of timers for performance measurements.
+<P>
+
+<P>
<HR>
<P>
@@ -189,7 +193,7 @@ Class PerfTracer</H2>
<TH ALIGN="left"><B>Methods inherited from class org.eclipse.net4j.util.om.trace.<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace">ContextTracer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#format(java.lang.String, java.lang.Object...)">format</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#format(java.lang.String, java.lang.Throwable, java.lang.Object...)">format</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getBundle()">getBundle</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getDelegate()">getDelegate</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getFullName()">getFullName</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getName()">getName</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getParent()">getParent</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#isEnabled()">isEnabled</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#setEnabled(boolean)">setEnabled</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#trace(java.lang.String)">trace</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#trace(java.lang.String, java.lang.Throwable)">trace</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#trace(java.lang.Throwable)">trace</A></CODE></TD>
+<TD><CODE><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#format(java.lang.String, java.lang.Object...)">format</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#format(java.lang.String, java.lang.Throwable, java.lang.Object...)">format</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getBundle()">getBundle</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getContext()">getContext</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getDelegate()">getDelegate</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getFullName()">getFullName</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getName()">getName</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getParent()">getParent</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#isEnabled()">isEnabled</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#setEnabled(boolean)">setEnabled</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#trace(java.lang.String)">trace</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#trace(java.lang.String, java.lang.Throwable)">trace</A>, <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#trace(java.lang.Throwable)">trace</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.png
index 623f904f6b..4b89b4ddef 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PerfTracer.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.html
index 1e31d048d1..0ea6feb422 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.html
@@ -107,7 +107,7 @@ Class PrintTraceHandler</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="OMTraceHandler.html" title="&#171;interface&#187; OMTraceHandler" alt="" coords="9,5,127,45"/>
-<area shape="rect" id="node2" href="PrintTraceHandler.html" title="PrintTraceHandler" alt="" coords="5,85,131,110"/>
+<area shape="rect" id="node2" href="PrintTraceHandler.html" title="PrintTraceHandler" alt="" coords="5,102,131,127"/>
</map>
<CENTER><IMG SRC="PrintTraceHandler.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -115,6 +115,11 @@ Class PrintTraceHandler</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that appends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#getStream()"><CODE>print stream</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
@@ -211,6 +216,14 @@ Class PrintTraceHandler</H2>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#getStream()">getStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#isShortContext()">isShortContext</A></B>()</CODE>
@@ -321,6 +334,22 @@ protected <B>PrintTraceHandler</B>()</PRE>
</TR>
</TABLE>
+<A NAME="getStream()"><!-- --></A><H3>
+getStream</H3>
+<PRE>
+public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A> <B>getStream</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DD>
+</DL>
+<HR>
+
<A NAME="getPattern()"><!-- --></A><H3>
getPattern</H3>
<PRE>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.png
index b333ca8ac7..e004722326 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/PrintTraceHandler.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html
index 3aff8abf4b..53b5251be9 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html
@@ -107,7 +107,7 @@ Class RemoteTraceHandler</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="OMTraceHandler.html" title="&#171;interface&#187; OMTraceHandler" alt="" coords="17,5,135,45"/>
-<area shape="rect" id="node2" href="RemoteTraceHandler.html" title="RemoteTraceHandler" alt="" coords="5,85,147,110"/>
+<area shape="rect" id="node2" href="RemoteTraceHandler.html" title="RemoteTraceHandler" alt="" coords="5,102,147,127"/>
</map>
<CENTER><IMG SRC="RemoteTraceHandler.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -115,6 +115,10 @@ Class RemoteTraceHandler</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that sends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.png
index ac904084e4..22396f8df9 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html
index c628d28e5e..7fa2e5bcc6 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html
@@ -76,9 +76,9 @@ function windowTitle()
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.util.EventObject">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
@@ -104,7 +104,7 @@ Class RemoteTraceServer.Event</H2>
</DL>
<HR>
<DL>
- <DT>public class <B>RemoteTraceServer.Event</B>
+ <DT>public static class <B>RemoteTraceServer.Event</B>
<DD>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>
</DL>
@@ -118,6 +118,11 @@ Class RemoteTraceServer.Event</H2>
<P>
+A trace event being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A> to
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../serialized-form.html#org.eclipse.net4j.util.om.trace.RemoteTraceServer.Event">Serialized Form</A></DL>
<HR>
@@ -131,6 +136,62 @@ Class RemoteTraceServer.Event</H2>
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#agentID">agentID</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#bundleID">bundleID</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#context">context</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#message">message</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StackTraceElement.html?is-external=true" title="class or interface in java.lang">StackTraceElement</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#stackTrace">stackTrace</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#throwable">throwable</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#tracerName">tracerName</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_java.util.EventObject"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
@@ -142,6 +203,24 @@ Class RemoteTraceServer.Event</H2>
</TR>
</TABLE>
&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#RemoteTraceServer.Event(org.eclipse.net4j.util.om.trace.RemoteTraceServer)">RemoteTraceServer.Event</A></B>(<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A>&nbsp;server)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
@@ -276,6 +355,120 @@ Class RemoteTraceServer.Event</H2>
&nbsp;
<P>
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="agentID"><!-- --></A><H3>
+agentID</H3>
+<PRE>
+protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>agentID</B></PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+<HR>
+
+<A NAME="bundleID"><!-- --></A><H3>
+bundleID</H3>
+<PRE>
+protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>bundleID</B></PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+<HR>
+
+<A NAME="tracerName"><!-- --></A><H3>
+tracerName</H3>
+<PRE>
+protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>tracerName</B></PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+<HR>
+
+<A NAME="context"><!-- --></A><H3>
+context</H3>
+<PRE>
+protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>context</B></PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+<HR>
+
+<A NAME="message"><!-- --></A><H3>
+message</H3>
+<PRE>
+protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>message</B></PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+<HR>
+
+<A NAME="throwable"><!-- --></A><H3>
+throwable</H3>
+<PRE>
+protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>throwable</B></PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+<HR>
+
+<A NAME="stackTrace"><!-- --></A><H3>
+stackTrace</H3>
+<PRE>
+protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StackTraceElement.html?is-external=true" title="class or interface in java.lang">StackTraceElement</A>[] <B>stackTrace</B></PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RemoteTraceServer.Event(org.eclipse.net4j.util.om.trace.RemoteTraceServer)"><!-- --></A><H3>
+RemoteTraceServer.Event</H3>
+<PRE>
+protected <B>RemoteTraceServer.Event</B>(<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A>&nbsp;server)</PRE>
+<DL>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DL>
+
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
@@ -481,9 +674,9 @@ public boolean <B>hasError</B>()</PRE>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.util.EventObject">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html
index 4f63821a8e..6b748341be 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html
@@ -103,8 +103,9 @@ Interface RemoteTraceServer.Listener</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="RemoteTraceServer.Listener.html" title="&#171;interface&#187; RemoteTraceServer.Listener" alt="" coords="18,5,203,45"/>
-<area shape="rect" id="node2" href="RemoteTraceServer.PrintListener.html" title="RemoteTraceServer.PrintListener" alt="" coords="5,85,216,110"/>
+<area shape="rect" id="node1" href="RemoteTraceServer.Listener.html" title="&#171;interface&#187; RemoteTraceServer.Listener" alt="" coords="18,88,203,128"/>
+<area shape="rect" id="node2" href="RemoteTraceServer.PrintListener.html" title="RemoteTraceServer.PrintListener" alt="" coords="5,185,216,210"/>
+<area shape="rect" id="node3" href="RemoteTraceServer.html" title="RemoteTraceServer" alt="" coords="43,6,177,31"/>
</map>
<CENTER><IMG SRC="RemoteTraceServer.Listener.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -112,6 +113,14 @@ Interface RemoteTraceServer.Listener</H2>
<P>
+Listens to <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>RemoteTraceServer.addListener(Listener)</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#removeListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>RemoteTraceServer.removeListener(Listener)</CODE></A>,
+<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>RemoteTraceServer.PrintListener</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.png
index 27c3274cd3..6f934e333a 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html
index a0f05e0847..6a94a46f94 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html
@@ -110,7 +110,7 @@ Class RemoteTraceServer.PrintListener</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="RemoteTraceServer.Listener.html" title="&#171;interface&#187; RemoteTraceServer.Listener" alt="" coords="18,5,203,45"/>
-<area shape="rect" id="node2" href="RemoteTraceServer.PrintListener.html" title="RemoteTraceServer.PrintListener" alt="" coords="5,85,216,110"/>
+<area shape="rect" id="node2" href="RemoteTraceServer.PrintListener.html" title="RemoteTraceServer.PrintListener" alt="" coords="5,102,216,127"/>
</map>
<CENTER><IMG SRC="RemoteTraceServer.PrintListener.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -118,6 +118,10 @@ Class RemoteTraceServer.PrintListener</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listener</CODE></A> that appends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()"><CODE>print stream</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
@@ -175,6 +179,14 @@ Class RemoteTraceServer.PrintListener</H2>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()">getStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#notifyRemoteTrace(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Event)">notifyRemoteTrace</A></B>(<A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A>&nbsp;event)</CODE>
@@ -248,6 +260,22 @@ protected <B>RemoteTraceServer.PrintListener</B>()</PRE>
</TR>
</TABLE>
+<A NAME="getStream()"><!-- --></A><H3>
+getStream</H3>
+<PRE>
+public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A> <B>getStream</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
+</DL>
+</DD>
+</DL>
+<HR>
+
<A NAME="notifyRemoteTrace(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Event)"><!-- --></A><H3>
notifyRemoteTrace</H3>
<PRE>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.png
index e6fc7f5b81..9ded806ccf 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.html
index b736e9c29e..257edd5afe 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.html
@@ -102,7 +102,8 @@ Class RemoteTraceServer</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="RemoteTraceServer.html" title="RemoteTraceServer" alt="" coords="5,6,139,31"/>
+<area shape="rect" id="node1" href="RemoteTraceServer.Listener.html" title="&#171;interface&#187; RemoteTraceServer.Listener" alt="" coords="5,88,189,128"/>
+<area shape="rect" id="node2" href="RemoteTraceServer.html" title="RemoteTraceServer" alt="" coords="30,6,164,31"/>
</map>
<CENTER><IMG SRC="RemoteTraceServer.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -110,6 +111,11 @@ Class RemoteTraceServer</H2>
<P>
+A server that <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>agents</CODE></A> can connect to and that passes the received <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
@@ -123,11 +129,12 @@ Class RemoteTraceServer</H2>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;class</CODE></FONT></TD>
+<CODE>static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A trace event being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A> to
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -135,7 +142,7 @@ Class RemoteTraceServer</H2>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Listener</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Listens to <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -143,7 +150,7 @@ Class RemoteTraceServer</H2>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.PrintListener</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listener</CODE></A> that appends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()"><CODE>print stream</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== FIELD SUMMARY =========== -->
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.png
index 20290a3174..14d8d49f1b 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/RemoteTraceServer.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html
index 7200950f95..8455619586 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html
@@ -116,6 +116,10 @@ Class TraceHandlerEvent</H2>
<P>
+The default implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace event</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../serialized-form.html#org.eclipse.net4j.util.om.trace.TraceHandlerEvent">Serialized Form</A><DT><B>No Extend</B></DT>
<DD>This interface is not intended to be extended by clients.</DD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/Tracer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/Tracer.html
index 3a6f818004..9b7b6894b8 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/Tracer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/Tracer.html
@@ -115,6 +115,10 @@ Class Tracer</H2>
<P>
+The default implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/ContextTracer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/ContextTracer.html
index deba52347e..420ba03809 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/ContextTracer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/ContextTracer.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/ContextTra
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/PerfTracer.html" title="class in org.eclipse.net4j.util.om.trace">PerfTracer</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>context tracer</CODE></A> that maintains a number of timers for performance measurements.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandler.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandler.html
index f7ebe8695f..08dd38a2e1 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandler.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandler.html
@@ -153,7 +153,8 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHan
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">PrintTraceHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that appends <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to a <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#getStream()"><CODE>print stream</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -161,7 +162,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHan
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that sends <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a remote trace <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandlerEvent.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandlerEvent.html
index b04fc5faba..e6fca94091 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandlerEvent.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTraceHandlerEvent.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHan
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace">TraceHandlerEvent</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default implementation of a <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace event</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTracer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTracer.html
index 9e531a26d3..0998bd0a83 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTracer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/OMTracer.html
@@ -145,7 +145,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.h
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/Tracer.html" title="class in org.eclipse.net4j.util.om.trace">Tracer</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default implementation of a <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.Listener.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.Listener.html
index 9bda77af53..ed58dc31bd 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.Listener.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.Listener.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTrac
<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.PrintListener</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listener</CODE></A> that appends <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()"><CODE>print stream</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.html
index 86cdf4eaee..aef9ae3122 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.html
@@ -121,6 +121,20 @@ Uses of <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTrac
</TABLE>
&nbsp;
<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/package-summary.html">org.eclipse.net4j.util.om.trace</A> with parameters of type <A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html#RemoteTraceServer.Event(org.eclipse.net4j.util.om.trace.RemoteTraceServer)">RemoteTraceServer.Event</A></B>(<A HREF="../../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A>&nbsp;server)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
<HR>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-frame.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-frame.html
index 5f406b32ff..b3536c50dc 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-frame.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-frame.html
@@ -51,6 +51,8 @@ Classes</FONT>&nbsp;
<BR>
<A HREF="RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace" target="classFrame">RemoteTraceServer</A>
<BR>
+<A HREF="RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace" target="classFrame">RemoteTraceServer.Event</A>
+<BR>
<A HREF="RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace" target="classFrame">RemoteTraceServer.PrintListener</A>
<BR>
<A HREF="TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace" target="classFrame">TraceHandlerEvent</A>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-summary.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-summary.html
index aff34122af..38a5ae22cb 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-summary.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-summary.html
@@ -116,19 +116,20 @@ Interfaces and classes for platform-independent tracing.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace">OMTraceHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>stream</CODE></A> sends them to a
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>remote</CODE></A> trace handler.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace">OMTraceHandlerEvent</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Encapsulates the information of a trace event.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace">OMTracer</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getName()"><CODE>named</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#tracer(java.lang.String)"><CODE>tracer</CODE></A> within the <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getParent()"><CODE>hierarchy</CODE></A> of tracers of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Listener</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Listens to <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -142,35 +143,42 @@ Interfaces and classes for platform-independent tracing.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace">ContextTracer</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Encapsulates a tracing <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getContext()"><CODE>context</CODE></A> and delegates trace calls to a bundle <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PerfTracer.html" title="class in org.eclipse.net4j.util.om.trace">PerfTracer</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>context tracer</CODE></A> that maintains a number of timers for performance measurements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">PrintTraceHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that appends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#getStream()"><CODE>print stream</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that sends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A server that <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>agents</CODE></A> can connect to and that passes the received <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.Event</A></B></TD>
+<TD>A trace event being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A> to
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html" title="class in org.eclipse.net4j.util.om.trace">RemoteTraceServer.PrintListener</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listener</CODE></A> that appends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()"><CODE>print stream</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace">TraceHandlerEvent</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The default implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace event</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/Tracer.html" title="class in org.eclipse.net4j.util.om.trace">Tracer</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The default implementation of a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-use.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-use.html
index 50f8395b69..512c43a4af 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-use.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/om/trace/package-use.html
@@ -110,13 +110,14 @@ Classes in <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/package-su
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/OMTraceHandler.html#org.eclipse.net4j.util.om"><B>OMTraceHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>stream</CODE></A> sends them to a
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>remote</CODE></A> trace handler.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/OMTracer.html#org.eclipse.net4j.util.om"><B>OMTracer</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getName()"><CODE>named</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#tracer(java.lang.String)"><CODE>tracer</CODE></A> within the <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getParent()"><CODE>hierarchy</CODE></A> of tracers of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -131,55 +132,59 @@ Classes in <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/package-su
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/ContextTracer.html#org.eclipse.net4j.util.om.trace"><B>ContextTracer</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encapsulates a tracing <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/ContextTracer.html#getContext()"><CODE>context</CODE></A> and delegates trace calls to a bundle <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>tracer</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/OMTraceHandler.html#org.eclipse.net4j.util.om.trace"><B>OMTraceHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handles <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/TraceHandlerEvent.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>, for example appends them to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>stream</CODE></A> sends them to a
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>remote</CODE></A> trace handler.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/OMTraceHandlerEvent.html#org.eclipse.net4j.util.om.trace"><B>OMTraceHandlerEvent</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encapsulates the information of a trace event.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/OMTracer.html#org.eclipse.net4j.util.om.trace"><B>OMTracer</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getName()"><CODE>named</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html#tracer(java.lang.String)"><CODE>tracer</CODE></A> within the <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTracer.html#getParent()"><CODE>hierarchy</CODE></A> of tracers of a <A HREF="../../../../../../org/eclipse/net4j/util/om/OMBundle.html" title="interface in org.eclipse.net4j.util.om"><CODE>bundle</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/PrintTraceHandler.html#org.eclipse.net4j.util.om.trace"><B>PrintTraceHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandler.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace handler</CODE></A> that appends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/PrintTraceHandler.html#getStream()"><CODE>print stream</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.html#org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A server that <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceHandler.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>agents</CODE></A> can connect to and that passes the received <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A>
+ to <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.Event.html#org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.Event</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A trace event being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A> to
+ <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html#addListener(org.eclipse.net4j.util.om.trace.RemoteTraceServer.Listener)"><CODE>registered</CODE></A> <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listeners</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.Listener.html#org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.Listener</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Listens to <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> being passed by a remote trace <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>server</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/net4j/util/om/trace/class-use/RemoteTraceServer.PrintListener.html#org.eclipse.net4j.util.om.trace"><B>RemoteTraceServer.PrintListener</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Listener.html" title="interface in org.eclipse.net4j.util.om.trace"><CODE>listener</CODE></A> that appends <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.Event.html" title="class in org.eclipse.net4j.util.om.trace"><CODE>trace events</CODE></A> to a <A HREF="../../../../../../org/eclipse/net4j/util/om/trace/RemoteTraceServer.PrintListener.html#getStream()"><CODE>print stream</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.html
index 08b3d5d002..df6023387e 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.html
@@ -101,8 +101,9 @@ Interface IOptions</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="IOptions.html" title="&#171;interface&#187; IOptions" alt="" coords="52,100,137,140"/>
-<area shape="rect" id="node2" href="../event/INotifier.html" title="&#171;interface&#187; INotifier (org.eclipse.net4j.util.event)" alt="" coords="5,6,184,61"/>
+<area shape="rect" id="node1" href="IOptionsContainer.html" title="&#171;interface&#187; IOptionsContainer" alt="" coords="32,200,157,240"/>
+<area shape="rect" id="node2" href="IOptions.html" title="&#171;interface&#187; IOptions" alt="" coords="52,104,137,144"/>
+<area shape="rect" id="node3" href="../event/INotifier.html" title="&#171;interface&#187; INotifier (org.eclipse.net4j.util.event)" alt="" coords="5,6,184,61"/>
</map>
<CENTER><IMG SRC="IOptions.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -117,7 +118,7 @@ Encapsulates a set of notifying configuration options.
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
-</DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/net4j/util/options/IOptionsContainer.html" title="interface in org.eclipse.net4j.util.options"><CODE>IOptionsContainer</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.png
index 033f1d6fb6..20a497e552 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptions.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.html
index 580cabf7db..40f743421a 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.html
@@ -97,7 +97,8 @@ Interface IOptionsContainer</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="IOptionsContainer.html" title="&#171;interface&#187; IOptionsContainer" alt="" coords="5,5,131,45"/>
+<area shape="rect" id="node1" href="IOptionsContainer.html" title="&#171;interface&#187; IOptionsContainer" alt="" coords="5,101,131,141"/>
+<area shape="rect" id="node2" href="IOptions.html" title="&#171;interface&#187; IOptions" alt="" coords="25,5,111,45"/>
</map>
<CENTER><IMG SRC="IOptionsContainer.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -105,6 +106,10 @@ Interface IOptionsContainer</H2>
<P>
+The container of an <A HREF="../../../../../org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><CODE>options set</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.png b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.png
index ad54e28404..f41e9e7439 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.png
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsContainer.png
Binary files differ
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/OptionsEvent.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/OptionsEvent.html
index c61839e3ef..21a29ab4e5 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/OptionsEvent.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/OptionsEvent.html
@@ -118,6 +118,10 @@ Class OptionsEvent</H2>
<P>
+The default implementation of an <A HREF="../../../../../org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/class-use/IOptionsEvent.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/class-use/IOptionsEvent.html
index ea5b9ecc71..b7da91dc02 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/class-use/IOptionsEvent.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/class-use/IOptionsEvent.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../org/eclipse/net4j/util/options/IOptionsEvent.
<TD><CODE><B><A HREF="../../../../../../org/eclipse/net4j/util/options/OptionsEvent.html" title="class in org.eclipse.net4j.util.options">OptionsEvent</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default implementation of an <A HREF="../../../../../../org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-summary.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-summary.html
index b45083725d..6ab3921e4b 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-summary.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-summary.html
@@ -110,7 +110,7 @@ A framework for option containers that fire change events.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/options/IOptionsContainer.html" title="interface in org.eclipse.net4j.util.options">IOptionsContainer</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The container of an <A HREF="../../../../../org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><CODE>options set</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options">IOptionsEvent</A></B></TD>
@@ -128,7 +128,7 @@ A framework for option containers that fire change events.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/net4j/util/options/OptionsEvent.html" title="class in org.eclipse.net4j.util.options">OptionsEvent</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The default implementation of an <A HREF="../../../../../org/eclipse/net4j/util/options/IOptionsEvent.html" title="interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-use.html b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-use.html
index 9074974f64..d93b88da3e 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-use.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/package-use.html
@@ -112,7 +112,7 @@ Classes in <A HREF="../../../../../org/eclipse/net4j/util/options/package-summar
<TD><B><A HREF="../../../../../org/eclipse/net4j/util/options/class-use/IOptionsContainer.html#org.eclipse.net4j.util.options"><B>IOptionsContainer</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The container of an <A HREF="../../../../../org/eclipse/net4j/util/options/IOptions.html" title="interface in org.eclipse.net4j.util.options"><CODE>options set</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/net4j/util/options/class-use/IOptionsEvent.html#org.eclipse.net4j.util.options"><B>IOptionsEvent</B></A></B>
diff --git a/plugins/org.eclipse.net4j.util.doc/javadoc/serialized-form.html b/plugins/org.eclipse.net4j.util.doc/javadoc/serialized-form.html
index f8c5bc47de..ee5ef2d82f 100644
--- a/plugins/org.eclipse.net4j.util.doc/javadoc/serialized-form.html
+++ b/plugins/org.eclipse.net4j.util.doc/javadoc/serialized-form.html
@@ -667,6 +667,8 @@ agentID</H3>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>agentID</B></PRE>
<DL>
<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
</DL>
</DL>
<HR>
@@ -676,6 +678,8 @@ bundleID</H3>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>bundleID</B></PRE>
<DL>
<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
</DL>
</DL>
<HR>
@@ -685,6 +689,8 @@ tracerName</H3>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>tracerName</B></PRE>
<DL>
<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
</DL>
</DL>
<HR>
@@ -694,6 +700,8 @@ context</H3>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>context</B></PRE>
<DL>
<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
</DL>
</DL>
<HR>
@@ -703,6 +711,8 @@ message</H3>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>message</B></PRE>
<DL>
<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
</DL>
</DL>
<HR>
@@ -712,6 +722,8 @@ throwable</H3>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>throwable</B></PRE>
<DL>
<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
</DL>
</DL>
<HR>
@@ -721,6 +733,8 @@ stackTrace</H3>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StackTraceElement.html?is-external=true" title="class or interface in java.lang">StackTraceElement</A>[] <B>stackTrace</B></PRE>
<DL>
<DL>
+<DT><B>Since:</B></DT>
+ <DD>3.2</DD>
</DL>
</DL>
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrentValue.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrentValue.java
index b0a7b95d27..ad3714e1e1 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrentValue.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrentValue.java
@@ -1,110 +1,110 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Simon McDuff - initial API and implementation
- * Eike Stepper - maintenance
- */
-package org.eclipse.net4j.util.concurrent;
-
-/**
- * Allow synchronization between many threads for a specific value, e.g.:
- *
- * <pre>
- * MainThread cv.set(1);
- * Thread1 cv.acquire(3);
- * Thread2 cv.acquire(4);
- * Thread3 cv.acquire(100);
- * Thread4 cv.acquire(new Object()
- * {
- * public boolean equals(Object other)
- * {
- * return other.equals(2) || other.equals(3);
- * }
- * });
- * Thread5 cv.acquire(1);
- * ...
- * // Thread 1,2,3 and 4 are blocked
- * // Thread 5 isn't blocked.
- *
- * MainThread cv.set(3);
- *
- * // Thread 1 and 4 are unblocked.
- * // Thread 2 and 3 are still blocked.
- * </pre>
- *
- * @author Simon McDuff
- * @since 2.0
- */
-public final class ConcurrentValue<T>
-{
- private Object notifier = new Notifier();
-
- private T value;
-
- public ConcurrentValue(T value)
- {
- this.value = value;
- }
-
- public T get()
- {
- return value;
- }
-
- /**
- * Specify the new value.
- */
- public void set(T newValue)
- {
- synchronized (notifier)
- {
- value = newValue;
- notifier.notifyAll();
- }
- }
-
- /**
- * Reevaluate the condition. It is only useful if a thread is blocked at {@link #acquire(Object)} and the parameter
- * passed changed. {@link #acquire(Object)} generates a reevaluation automatically.
- */
- public void reevaluate()
- {
- synchronized (notifier)
- {
- notifier.notifyAll();
- }
- }
-
- /**
- * Blocking call.
- * <p>
- * Return when value accept is equal to {@link #get()}.
- */
- public void acquire(Object accept) throws InterruptedException
- {
- if (accept == null)
- {
- throw new IllegalArgumentException("accept == null"); //$NON-NLS-1$
- }
-
- synchronized (notifier)
- {
- while (!accept.equals(value))
- {
- notifier.wait();
- }
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private static final class Notifier extends Object
- {
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Simon McDuff - initial API and implementation
+ * Eike Stepper - maintenance
+ */
+package org.eclipse.net4j.util.concurrent;
+
+/**
+ * Allow synchronization between many threads for a specific value.
+ *
+ * <pre>
+ * MainThread cv.set(1);
+ * Thread1 cv.acquire(3);
+ * Thread2 cv.acquire(4);
+ * Thread3 cv.acquire(100);
+ * Thread4 cv.acquire(new Object()
+ * {
+ * public boolean equals(Object other)
+ * {
+ * return other.equals(2) || other.equals(3);
+ * }
+ * });
+ * Thread5 cv.acquire(1);
+ * ...
+ * // Thread 1,2,3 and 4 are blocked
+ * // Thread 5 isn't blocked.
+ *
+ * MainThread cv.set(3);
+ *
+ * // Thread 1 and 4 are unblocked.
+ * // Thread 2 and 3 are still blocked.
+ * </pre>
+ *
+ * @author Simon McDuff
+ * @since 2.0
+ */
+public final class ConcurrentValue<T>
+{
+ private Object notifier = new Notifier();
+
+ private T value;
+
+ public ConcurrentValue(T value)
+ {
+ this.value = value;
+ }
+
+ public T get()
+ {
+ return value;
+ }
+
+ /**
+ * Specify the new value.
+ */
+ public void set(T newValue)
+ {
+ synchronized (notifier)
+ {
+ value = newValue;
+ notifier.notifyAll();
+ }
+ }
+
+ /**
+ * Reevaluate the condition. It is only useful if a thread is blocked at {@link #acquire(Object)} and the parameter
+ * passed changed. {@link #acquire(Object)} generates a reevaluation automatically.
+ */
+ public void reevaluate()
+ {
+ synchronized (notifier)
+ {
+ notifier.notifyAll();
+ }
+ }
+
+ /**
+ * Blocking call.
+ * <p>
+ * Return when value accept is equal to {@link #get()}.
+ */
+ public void acquire(Object accept) throws InterruptedException
+ {
+ if (accept == null)
+ {
+ throw new IllegalArgumentException("accept == null"); //$NON-NLS-1$
+ }
+
+ synchronized (notifier)
+ {
+ while (!accept.equals(value))
+ {
+ notifier.wait();
+ }
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static final class Notifier extends Object
+ {
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/Container.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/Container.java
index 6aae78cea8..3dbf3a7d65 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/Container.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/Container.java
@@ -1,115 +1,115 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.container;
-
-import org.eclipse.net4j.util.container.IContainerDelta.Kind;
-import org.eclipse.net4j.util.event.IEvent;
-import org.eclipse.net4j.util.lifecycle.ILifecycle;
-import org.eclipse.net4j.util.lifecycle.Lifecycle;
-
-import java.util.List;
-
-/**
- * A default {@link IContainer container} implementation with a {@link ILifecycle lifecycle}.
- *
- * @author Eike Stepper
- */
-public abstract class Container<E> extends Lifecycle implements IContainer<E>
-{
- public Container()
- {
- }
-
- public boolean isEmpty()
- {
- if (!isActive())
- {
- return true;
- }
-
- E[] elements = getElements();
- return elements == null || elements.length == 0;
- }
-
- @Override
- public void fireEvent(IEvent event)
- {
- if (event instanceof IContainerEvent<?>)
- {
- if (((IContainerEvent<?>)event).isEmpty())
- {
- return;
- }
- }
-
- super.fireEvent(event);
- }
-
- public void fireContainerEvent(E element, Kind kind)
- {
- fireEvent(newContainerEvent(element, kind));
- }
-
- public void fireElementAddedEvent(E element)
- {
- fireContainerEvent(element, IContainerDelta.Kind.ADDED);
- }
-
- public void fireElementRemovedEvent(E element)
- {
- fireContainerEvent(element, IContainerDelta.Kind.REMOVED);
- }
-
- /**
- * @since 2.0
- */
- public void fireContainerEvent(E[] elements, Kind kind)
- {
- ContainerEvent<E> event = new ContainerEvent<E>(this);
- for (E element : elements)
- {
- event.addDelta(element, kind);
- }
-
- fireEvent(event);
- }
-
- /**
- * @since 2.0
- */
- public void fireElementsAddedEvent(E[] elements)
- {
- fireContainerEvent(elements, IContainerDelta.Kind.ADDED);
- }
-
- /**
- * @since 2.0
- */
- public void fireElementsRemovedEvent(E[] elements)
- {
- fireContainerEvent(elements, IContainerDelta.Kind.REMOVED);
- }
-
- public void fireContainerEvent(List<IContainerDelta<E>> deltas)
- {
- fireEvent(new ContainerEvent<E>(this, deltas));
- }
-
- protected SingleDeltaContainerEvent<E> newContainerEvent(E element, IContainerDelta.Kind kind)
- {
- return new SingleDeltaContainerEvent<E>(this, element, kind);
- }
-
- protected ContainerEvent<E> newContainerEvent()
- {
- return new ContainerEvent<E>(this);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.container;
+
+import org.eclipse.net4j.util.container.IContainerDelta.Kind;
+import org.eclipse.net4j.util.event.IEvent;
+import org.eclipse.net4j.util.lifecycle.ILifecycle;
+import org.eclipse.net4j.util.lifecycle.Lifecycle;
+
+import java.util.List;
+
+/**
+ * An abstract base implementation of a {@link IContainer container} with a {@link ILifecycle lifecycle}.
+ *
+ * @author Eike Stepper
+ */
+public abstract class Container<E> extends Lifecycle implements IContainer<E>
+{
+ public Container()
+ {
+ }
+
+ public boolean isEmpty()
+ {
+ if (!isActive())
+ {
+ return true;
+ }
+
+ E[] elements = getElements();
+ return elements == null || elements.length == 0;
+ }
+
+ @Override
+ public void fireEvent(IEvent event)
+ {
+ if (event instanceof IContainerEvent<?>)
+ {
+ if (((IContainerEvent<?>)event).isEmpty())
+ {
+ return;
+ }
+ }
+
+ super.fireEvent(event);
+ }
+
+ public void fireContainerEvent(E element, Kind kind)
+ {
+ fireEvent(newContainerEvent(element, kind));
+ }
+
+ public void fireElementAddedEvent(E element)
+ {
+ fireContainerEvent(element, IContainerDelta.Kind.ADDED);
+ }
+
+ public void fireElementRemovedEvent(E element)
+ {
+ fireContainerEvent(element, IContainerDelta.Kind.REMOVED);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public void fireContainerEvent(E[] elements, Kind kind)
+ {
+ ContainerEvent<E> event = new ContainerEvent<E>(this);
+ for (E element : elements)
+ {
+ event.addDelta(element, kind);
+ }
+
+ fireEvent(event);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public void fireElementsAddedEvent(E[] elements)
+ {
+ fireContainerEvent(elements, IContainerDelta.Kind.ADDED);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public void fireElementsRemovedEvent(E[] elements)
+ {
+ fireContainerEvent(elements, IContainerDelta.Kind.REMOVED);
+ }
+
+ public void fireContainerEvent(List<IContainerDelta<E>> deltas)
+ {
+ fireEvent(new ContainerEvent<E>(this, deltas));
+ }
+
+ protected SingleDeltaContainerEvent<E> newContainerEvent(E element, IContainerDelta.Kind kind)
+ {
+ return new SingleDeltaContainerEvent<E>(this, element, kind);
+ }
+
+ protected ContainerEvent<E> newContainerEvent()
+ {
+ return new ContainerEvent<E>(this);
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IContainer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IContainer.java
index 97eae94642..e8addd8f2b 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IContainer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IContainer.java
@@ -1,51 +1,53 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Victor Roldan Betancort - maintenance
- */
-package org.eclipse.net4j.util.container;
-
-import org.eclipse.net4j.util.event.INotifier;
-
-import java.util.Collection;
-
-/**
- * Contains a number of elements and notifies about element addition and removal.
- * <p>
- * A container can fire the following events:
- * <ul>
- * <li> {@link IContainerEvent} after the addition and/or removal of elements.
- * </ul>
- *
- * @author Eike Stepper
- * @apiviz.landmark
- * @apiviz.composedOf {@link java.lang.Object} - - elements
- * @apiviz.uses {@link IContainerEvent} - - fires
- */
-public interface IContainer<E> extends INotifier
-{
- public boolean isEmpty();
-
- public E[] getElements();
-
- /**
- * @author Eike Stepper
- * @since 2.0
- */
- public interface Modifiable<E> extends IContainer<E>
- {
- public boolean addElement(E element);
-
- public boolean addAllElements(Collection<E> elements);
-
- public boolean removeElement(E element);
-
- public boolean removeAllElements(Collection<E> elements);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Victor Roldan Betancort - maintenance
+ */
+package org.eclipse.net4j.util.container;
+
+import org.eclipse.net4j.util.event.INotifier;
+
+import java.util.Collection;
+
+/**
+ * Contains a number of elements and notifies about element addition and removal.
+ * <p>
+ * A container can fire the following events:
+ * <ul>
+ * <li> {@link IContainerEvent} after the addition and/or removal of elements.
+ * </ul>
+ *
+ * @author Eike Stepper
+ * @apiviz.landmark
+ * @apiviz.composedOf {@link java.lang.Object} - - elements
+ * @apiviz.uses {@link IContainerEvent} - - fires
+ */
+public interface IContainer<E> extends INotifier
+{
+ public boolean isEmpty();
+
+ public E[] getElements();
+
+ /**
+ * A {@link IContainer container} with additional methods to add or remove elements.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ */
+ public interface Modifiable<E> extends IContainer<E>
+ {
+ public boolean addElement(E element);
+
+ public boolean addAllElements(Collection<E> elements);
+
+ public boolean removeElement(E element);
+
+ public boolean removeAllElements(Collection<E> elements);
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/SetContainer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/SetContainer.java
index b85b6d289b..a7a3833c5a 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/SetContainer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/SetContainer.java
@@ -10,13 +10,20 @@
*/
package org.eclipse.net4j.util.container;
+import org.eclipse.net4j.util.container.delegate.IContainerSet;
+import org.eclipse.net4j.util.container.delegate.IContainerSortedSet;
+
import java.lang.reflect.Array;
import java.util.HashSet;
import java.util.Set;
/**
- * @author Eike Stepper
+ * An implementation of a {@link Container container} that stores its {@link #getElements() elements} in a {@link #getSet() set}.
+ *
* @since 3.2
+ * @author Eike Stepper
+ * @see IContainerSet
+ * @see IContainerSortedSet
*/
public class SetContainer<E> extends Container<E>
{
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.java
index b9171525a3..0a3ccc75a7 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerBlockingQueue.java
@@ -1,21 +1,25 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.container.delegate;
-
-import java.util.concurrent.BlockingQueue;
-
-/**
- * @author Eike Stepper
- */
-public interface IContainerBlockingQueue<E> extends IContainerQueue<E>, BlockingQueue<E>
-{
- public BlockingQueue<E> getDelegate();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.container.delegate;
+
+import org.eclipse.net4j.util.container.IContainer;
+
+import java.util.concurrent.BlockingQueue;
+
+/**
+ * A {@link IContainer container} that is a {@link BlockingQueue}.
+ *
+ * @author Eike Stepper
+ */
+public interface IContainerBlockingQueue<E> extends IContainerQueue<E>, BlockingQueue<E>
+{
+ public BlockingQueue<E> getDelegate();
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerSet.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerSet.java
index 8950981e9e..2309f79c55 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerSet.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/delegate/IContainerSet.java
@@ -1,25 +1,27 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.container.delegate;
-
-import org.eclipse.net4j.util.container.IContainer;
-
-import java.util.Set;
-
-/**
- * A {@link IContainer container} that is a {@link Set}.
- *
- * @author Eike Stepper
- */
-public interface IContainerSet<E> extends IContainerCollection<E>, Set<E>
-{
- public Set<E> getDelegate();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.container.delegate;
+
+import org.eclipse.net4j.util.container.IContainer;
+import org.eclipse.net4j.util.container.SetContainer;
+
+import java.util.Set;
+
+/**
+ * A {@link IContainer container} that is a {@link Set}.
+ *
+ * @author Eike Stepper
+ * @see SetContainer
+ */
+public interface IContainerSet<E> extends IContainerCollection<E>, Set<E>
+{
+ public Set<E> getDelegate();
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java
index b7e6935157..c2b961dc8d 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java
@@ -1,76 +1,79 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.util.om.log.OMLogger.Level;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- */
-public abstract class AbstractLogHandler implements OMLogHandler
-{
- private Level logLevel;
-
- public AbstractLogHandler(Level logLevel)
- {
- this.logLevel = logLevel;
- }
-
- public AbstractLogHandler()
- {
- this(Level.DEBUG);
- }
-
- public Level getLogLevel()
- {
- return logLevel;
- }
-
- public void setLogLevel(Level logLevel)
- {
- this.logLevel = logLevel;
- }
-
- public void logged(OMLogger logger, Level level, String msg, Throwable t)
- {
- try
- {
- if (level.ordinal() <= logLevel.ordinal())
- {
- writeLog(logger, level, msg, t);
- }
- }
- catch (Throwable ignore)
- {
- // Ignore
- }
- }
-
- protected abstract void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable;
-
- public static String toString(Level level)
- {
- switch (level)
- {
- case ERROR:
- return "[ERROR]"; //$NON-NLS-1$
- case WARN:
- return "[WARN]"; //$NON-NLS-1$
- case INFO:
- return "[INFO]"; //$NON-NLS-1$
- case DEBUG:
- return "[DEBUG]"; //$NON-NLS-1$
- default:
- throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+/**
+ * An abstract base implementation of a {@link OMLogHandler log handler} that filters log events with a {@link Level log level}
+ * greater than a configurable {@link #setLogLevel(Level) maximum level}.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public abstract class AbstractLogHandler implements OMLogHandler
+{
+ private Level logLevel;
+
+ public AbstractLogHandler(Level logLevel)
+ {
+ this.logLevel = logLevel;
+ }
+
+ public AbstractLogHandler()
+ {
+ this(Level.DEBUG);
+ }
+
+ public Level getLogLevel()
+ {
+ return logLevel;
+ }
+
+ public void setLogLevel(Level logLevel)
+ {
+ this.logLevel = logLevel;
+ }
+
+ public void logged(OMLogger logger, Level level, String msg, Throwable t)
+ {
+ try
+ {
+ if (level.ordinal() <= logLevel.ordinal())
+ {
+ writeLog(logger, level, msg, t);
+ }
+ }
+ catch (Throwable ignore)
+ {
+ // Ignore
+ }
+ }
+
+ protected abstract void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable;
+
+ public static String toString(Level level)
+ {
+ switch (level)
+ {
+ case ERROR:
+ return "[ERROR]"; //$NON-NLS-1$
+ case WARN:
+ return "[WARN]"; //$NON-NLS-1$
+ case INFO:
+ return "[INFO]"; //$NON-NLS-1$
+ case DEBUG:
+ return "[DEBUG]"; //$NON-NLS-1$
+ default:
+ throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.java
index c314132e16..f22f2447d0 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/EclipseLoggingBridge.java
@@ -1,64 +1,66 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.internal.util.om.OSGiBundle;
-import org.eclipse.net4j.util.om.log.OMLogger.Level;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @author Eike Stepper
- */
-public class EclipseLoggingBridge implements OMLogHandler
-{
- /**
- * @Singleton
- */
- public static final EclipseLoggingBridge INSTANCE = new EclipseLoggingBridge();
-
- protected EclipseLoggingBridge()
- {
- }
-
- public void logged(OMLogger logger, Level level, String msg, Throwable t)
- {
- try
- {
- OSGiBundle bundle = (OSGiBundle)logger.getBundle();
- ILog log = Platform.getLog(bundle.getBundleContext().getBundle());
- log.log(new Status(toEclipse(level), bundle.getBundleID(), IStatus.OK, msg, t));
- }
- catch (RuntimeException ignore)
- {
- }
- }
-
- public static int toEclipse(Level level)
- {
- switch (level)
- {
- case ERROR:
- return IStatus.ERROR;
- case WARN:
- return IStatus.WARNING;
- case INFO:
- return IStatus.INFO;
- case DEBUG:
- return IStatus.OK;
- default:
- throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.internal.util.om.OSGiBundle;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+import org.eclipse.core.runtime.ILog;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+
+/**
+ * A {@link OMLogHandler log handler} that appends log events to the Eclipse {@link ILog error log}.
+ *
+ * @author Eike Stepper
+ */
+public class EclipseLoggingBridge implements OMLogHandler
+{
+ /**
+ * @Singleton
+ */
+ public static final EclipseLoggingBridge INSTANCE = new EclipseLoggingBridge();
+
+ protected EclipseLoggingBridge()
+ {
+ }
+
+ public void logged(OMLogger logger, Level level, String msg, Throwable t)
+ {
+ try
+ {
+ OSGiBundle bundle = (OSGiBundle)logger.getBundle();
+ ILog log = Platform.getLog(bundle.getBundleContext().getBundle());
+ log.log(new Status(toEclipse(level), bundle.getBundleID(), IStatus.OK, msg, t));
+ }
+ catch (RuntimeException ignore)
+ {
+ }
+ }
+
+ public static int toEclipse(Level level)
+ {
+ switch (level)
+ {
+ case ERROR:
+ return IStatus.ERROR;
+ case WARN:
+ return IStatus.WARNING;
+ case INFO:
+ return IStatus.INFO;
+ case DEBUG:
+ return IStatus.OK;
+ default:
+ throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java
index 3072471680..71a335a135 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java
@@ -1,64 +1,69 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.util.io.IOUtil;
-import org.eclipse.net4j.util.om.log.OMLogger.Level;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- */
-public class FileLogHandler extends AbstractLogHandler
-{
- private File logFile;
-
- public FileLogHandler(File logFile, Level logLevel)
- {
- super(logLevel);
- this.logFile = logFile;
- }
-
- public FileLogHandler(File logFile)
- {
- this.logFile = logFile;
- }
-
- public File getLogFile()
- {
- return logFile;
- }
-
- @Override
- protected void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable
- {
- FileOutputStream fos = null;
-
- try
- {
- fos = new FileOutputStream(logFile, true);
- PrintStream stream = new PrintStream(fos);
- stream.println(toString(level) + " " + msg); //$NON-NLS-1$
- if (t != null)
- {
- IOUtil.print(t, stream);
- }
- }
- finally
- {
- IOUtil.close(fos);
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.util.io.IOUtil;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+
+/**
+ * A {@link OMLogHandler log handler} that appends log events to a {@link #getLogFile() file}.
+ * <p>
+ * The file is opened before and closed after each log event.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ * @see PrintLogHandler
+ */
+public class FileLogHandler extends AbstractLogHandler
+{
+ private File logFile;
+
+ public FileLogHandler(File logFile, Level logLevel)
+ {
+ super(logLevel);
+ this.logFile = logFile;
+ }
+
+ public FileLogHandler(File logFile)
+ {
+ this.logFile = logFile;
+ }
+
+ public File getLogFile()
+ {
+ return logFile;
+ }
+
+ @Override
+ protected void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable
+ {
+ FileOutputStream fos = null;
+
+ try
+ {
+ fos = new FileOutputStream(logFile, true);
+ PrintStream stream = new PrintStream(fos);
+ stream.println(toString(level) + " " + msg); //$NON-NLS-1$
+ if (t != null)
+ {
+ IOUtil.print(t, stream);
+ }
+ }
+ finally
+ {
+ IOUtil.close(fos);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/Logger.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/Logger.java
index 0aedecc08d..f5859fc497 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/Logger.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/Logger.java
@@ -1,113 +1,115 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.internal.util.bundle.AbstractPlatform;
-import org.eclipse.net4j.util.om.OMBundle;
-
-/**
- * @author Eike Stepper
- */
-public class Logger implements OMLogger
-{
- private OMBundle bundle;
-
- public Logger(OMBundle bundle)
- {
- this.bundle = bundle;
- }
-
- public OMBundle getBundle()
- {
- return bundle;
- }
-
- public void log(Level level, String msg, Throwable t)
- {
- ((AbstractPlatform)bundle.getPlatform()).log(this, level, msg, t);
- }
-
- public void error(String msg, Throwable t)
- {
- log(Level.ERROR, msg, t);
- }
-
- public void warn(String msg, Throwable t)
- {
- log(Level.WARN, msg, t);
- }
-
- public void info(String msg, Throwable t)
- {
- log(Level.INFO, msg, t);
- }
-
- public void debug(String msg, Throwable t)
- {
- log(Level.DEBUG, msg, t);
- }
-
- public void log(Level level, String msg)
- {
- log(level, msg, null);
- }
-
- public void error(String msg)
- {
- log(Level.ERROR, msg);
- }
-
- public void warn(String msg)
- {
- log(Level.WARN, msg);
- }
-
- public void info(String msg)
- {
- log(Level.INFO, msg);
- }
-
- public void debug(String msg)
- {
- log(Level.DEBUG, msg);
- }
-
- public void log(Level level, Throwable t)
- {
- String msg = t.getMessage();
- if (msg == null)
- {
- msg = t.getClass().getSimpleName();
- }
-
- log(level, msg, t);
- }
-
- public void error(Throwable t)
- {
- log(Level.ERROR, t);
- }
-
- public void warn(Throwable t)
- {
- log(Level.WARN, t);
- }
-
- public void info(Throwable t)
- {
- log(Level.INFO, t);
- }
-
- public void debug(Throwable t)
- {
- log(Level.DEBUG, t);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.internal.util.bundle.AbstractPlatform;
+import org.eclipse.net4j.util.om.OMBundle;
+
+/**
+ * The default {@link OMLogger logger} implementation.
+ *
+ * @author Eike Stepper
+ */
+public class Logger implements OMLogger
+{
+ private OMBundle bundle;
+
+ public Logger(OMBundle bundle)
+ {
+ this.bundle = bundle;
+ }
+
+ public OMBundle getBundle()
+ {
+ return bundle;
+ }
+
+ public void log(Level level, String msg, Throwable t)
+ {
+ ((AbstractPlatform)bundle.getPlatform()).log(this, level, msg, t);
+ }
+
+ public void error(String msg, Throwable t)
+ {
+ log(Level.ERROR, msg, t);
+ }
+
+ public void warn(String msg, Throwable t)
+ {
+ log(Level.WARN, msg, t);
+ }
+
+ public void info(String msg, Throwable t)
+ {
+ log(Level.INFO, msg, t);
+ }
+
+ public void debug(String msg, Throwable t)
+ {
+ log(Level.DEBUG, msg, t);
+ }
+
+ public void log(Level level, String msg)
+ {
+ log(level, msg, null);
+ }
+
+ public void error(String msg)
+ {
+ log(Level.ERROR, msg);
+ }
+
+ public void warn(String msg)
+ {
+ log(Level.WARN, msg);
+ }
+
+ public void info(String msg)
+ {
+ log(Level.INFO, msg);
+ }
+
+ public void debug(String msg)
+ {
+ log(Level.DEBUG, msg);
+ }
+
+ public void log(Level level, Throwable t)
+ {
+ String msg = t.getMessage();
+ if (msg == null)
+ {
+ msg = t.getClass().getSimpleName();
+ }
+
+ log(level, msg, t);
+ }
+
+ public void error(Throwable t)
+ {
+ log(Level.ERROR, t);
+ }
+
+ public void warn(Throwable t)
+ {
+ log(Level.WARN, t);
+ }
+
+ public void info(Throwable t)
+ {
+ log(Level.INFO, t);
+ }
+
+ public void debug(Throwable t)
+ {
+ log(Level.DEBUG, t);
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogFilter.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogFilter.java
index 34545e9f06..f7186ebd59 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogFilter.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogFilter.java
@@ -1,31 +1,32 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.util.om.OMPlatform;
-import org.eclipse.net4j.util.om.log.OMLogger.Level;
-
-/**
- * Filters log events before they are being passed to {@link OMPlatform#addLogFilter(OMLogFilter) registered}
- * {@link OMLogHandler log handlers}.
- *
- * @author Eike Stepper
- * @since 3.2
- */
-public interface OMLogFilter
-{
- /**
- * Prevents the log event represented by the arguments from being passed to
- * {@link OMPlatform#addLogFilter(OMLogFilter) registered} {@link OMLogHandler log handlers}, if and only if
- * <code>true</code> is returned.
- */
- public boolean filter(OMLogger logger, Level level, String msg, Throwable t);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.util.om.OMPlatform;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+/**
+ * Filters log events before they are being passed to the registered {@link OMLogHandler log handlers}.
+ *
+ * @since 3.2
+ * @author Eike Stepper
+ * @see OMPlatform#addLogFilter(OMLogFilter)
+ * @see OMPlatform#removeLogFilter(OMLogFilter)
+ */
+public interface OMLogFilter
+{
+ /**
+ * Prevents the log event represented by the arguments from being passed to
+ * {@link OMPlatform#addLogFilter(OMLogFilter) registered} {@link OMLogHandler log handlers}, if and only if
+ * <code>true</code> is returned.
+ */
+ public boolean filter(OMLogger logger, Level level, String msg, Throwable t);
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogHandler.java
index 3c4c7a2f12..ccef284a84 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogHandler.java
@@ -1,21 +1,31 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.util.om.log.OMLogger.Level;
-
-/**
- * @author Eike Stepper
- */
-public interface OMLogHandler
-{
- public void logged(OMLogger logger, Level level, String msg, Throwable t);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.util.om.OMPlatform;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+/**
+ * Handles {@link OMLogFilter filtered} log events, for example appends them to a {@link PrintLogHandler stream} or
+ * the Eclipse {@link EclipseLoggingBridge error log}.
+ *
+ * @author Eike Stepper
+ * @see OMPlatform#addLogHandler(OMLogHandler)
+ * @see OMPlatform#removeLogHandler(OMLogHandler)
+ * @see EclipseLoggingBridge#INSTANCE
+ * @see PrintLogHandler#CONSOLE
+ * @see OSGiLoggingBridge#INSTANCE
+ * @see FileLogHandler
+ */
+public interface OMLogHandler
+{
+ public void logged(OMLogger logger, Level level, String msg, Throwable t);
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogger.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogger.java
index fda15b3d73..4063dc87d7 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogger.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OMLogger.java
@@ -1,61 +1,65 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.util.om.OMBundle;
-
-/**
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface OMLogger
-{
- public OMBundle getBundle();
-
- public void log(Level level, String msg, Throwable t);
-
- public void error(String msg, Throwable t);
-
- public void warn(String msg, Throwable t);
-
- public void info(String msg, Throwable t);
-
- public void debug(String msg, Throwable t);
-
- public void log(Level level, String msg);
-
- public void error(String msg);
-
- public void warn(String msg);
-
- public void info(String msg);
-
- public void debug(String msg);
-
- public void log(Level level, Throwable t);
-
- public void error(Throwable t);
-
- public void warn(Throwable t);
-
- public void info(Throwable t);
-
- public void debug(Throwable t);
-
- /**
- * @author Eike Stepper
- */
- public enum Level
- {
- ERROR, WARN, INFO, DEBUG
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.util.om.OMBundle;
+
+/**
+ * The {@link OMBundle#logger() logger} of a {@link OMBundle bundle}.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface OMLogger
+{
+ public OMBundle getBundle();
+
+ public void log(Level level, String msg, Throwable t);
+
+ public void error(String msg, Throwable t);
+
+ public void warn(String msg, Throwable t);
+
+ public void info(String msg, Throwable t);
+
+ public void debug(String msg, Throwable t);
+
+ public void log(Level level, String msg);
+
+ public void error(String msg);
+
+ public void warn(String msg);
+
+ public void info(String msg);
+
+ public void debug(String msg);
+
+ public void log(Level level, Throwable t);
+
+ public void error(Throwable t);
+
+ public void warn(Throwable t);
+
+ public void info(Throwable t);
+
+ public void debug(Throwable t);
+
+ /**
+ * Enumerates the possible severity levels of log events.
+ *
+ * @author Eike Stepper
+ */
+ public enum Level
+ {
+ ERROR, WARN, INFO, DEBUG
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.java
index 9e887612b6..c75db02680 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/OSGiLoggingBridge.java
@@ -1,81 +1,83 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.internal.util.om.OSGiBundle;
-import org.eclipse.net4j.util.om.log.OMLogger.Level;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.log.LogService;
-
-/**
- * @author Eike Stepper
- */
-public class OSGiLoggingBridge implements OMLogHandler
-{
- // @Singleton
- public static final OSGiLoggingBridge INSTANCE = new OSGiLoggingBridge();
-
- protected OSGiLoggingBridge()
- {
- }
-
- public void logged(OMLogger logger, Level level, String msg, Throwable t)
- {
- try
- {
- BundleContext bundleContext = ((OSGiBundle)logger.getBundle()).getBundleContext();
- logged(bundleContext, level, msg, t);
- }
- catch (RuntimeException ignore)
- {
- }
- }
-
- public void logged(BundleContext bundleContext, Level level, String msg, Throwable t)
- {
- LogService logService = getLogService(bundleContext);
- logService.log(toOSGi(level), msg, t);
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- protected LogService getLogService(BundleContext bundleContext)
- {
- try
- {
- ServiceReference ref = bundleContext.getServiceReference(LogService.class.getName());
- LogService logService = (LogService)bundleContext.getService(ref);
- return logService;
- }
- catch (RuntimeException ex)
- {
- throw new IllegalStateException("Log service not found", ex); //$NON-NLS-1$
- }
- }
-
- public static int toOSGi(Level level)
- {
- switch (level)
- {
- case ERROR:
- return LogService.LOG_ERROR;
- case WARN:
- return LogService.LOG_WARNING;
- case INFO:
- return LogService.LOG_INFO;
- case DEBUG:
- return LogService.LOG_DEBUG;
- default:
- throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.internal.util.om.OSGiBundle;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogService;
+
+/**
+ * A {@link OMLogHandler log handler} that appends log events to the OSGi {@link LogService log service}.
+ *
+ * @author Eike Stepper
+ */
+public class OSGiLoggingBridge implements OMLogHandler
+{
+ // @Singleton
+ public static final OSGiLoggingBridge INSTANCE = new OSGiLoggingBridge();
+
+ protected OSGiLoggingBridge()
+ {
+ }
+
+ public void logged(OMLogger logger, Level level, String msg, Throwable t)
+ {
+ try
+ {
+ BundleContext bundleContext = ((OSGiBundle)logger.getBundle()).getBundleContext();
+ logged(bundleContext, level, msg, t);
+ }
+ catch (RuntimeException ignore)
+ {
+ }
+ }
+
+ public void logged(BundleContext bundleContext, Level level, String msg, Throwable t)
+ {
+ LogService logService = getLogService(bundleContext);
+ logService.log(toOSGi(level), msg, t);
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ protected LogService getLogService(BundleContext bundleContext)
+ {
+ try
+ {
+ ServiceReference ref = bundleContext.getServiceReference(LogService.class.getName());
+ LogService logService = (LogService)bundleContext.getService(ref);
+ return logService;
+ }
+ catch (RuntimeException ex)
+ {
+ throw new IllegalStateException("Log service not found", ex); //$NON-NLS-1$
+ }
+ }
+
+ public static int toOSGi(Level level)
+ {
+ switch (level)
+ {
+ case ERROR:
+ return LogService.LOG_ERROR;
+ case WARN:
+ return LogService.LOG_WARNING;
+ case INFO:
+ return LogService.LOG_INFO;
+ case DEBUG:
+ return LogService.LOG_DEBUG;
+ default:
+ throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java
index 2feb28ae50..7ab97aae6d 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java
@@ -1,50 +1,68 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.log;
-
-import org.eclipse.net4j.util.io.IOUtil;
-import org.eclipse.net4j.util.om.log.OMLogger.Level;
-
-import java.io.PrintStream;
-
-/**
- * @author Eike Stepper
- */
-public class PrintLogHandler extends AbstractLogHandler
-{
- public static final PrintLogHandler CONSOLE = new PrintLogHandler();
-
- private PrintStream out;
-
- private PrintStream err;
-
- public PrintLogHandler(PrintStream out, PrintStream err)
- {
- this.out = out;
- this.err = err;
- }
-
- protected PrintLogHandler()
- {
- this(IOUtil.OUT(), IOUtil.ERR());
- }
-
- @Override
- protected void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable
- {
- PrintStream stream = level == Level.ERROR ? err : out;
- stream.println(toString(level) + " " + msg); //$NON-NLS-1$
- if (t != null)
- {
- IOUtil.print(t, stream);
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.log;
+
+import org.eclipse.net4j.util.io.IOUtil;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+import java.io.PrintStream;
+
+/**
+ * A {@link OMLogHandler log handler} that appends log events to {@link #getErr() error} and {@link #getOut() output} streams.
+ *
+ * @author Eike Stepper
+ */
+public class PrintLogHandler extends AbstractLogHandler
+{
+ public static final PrintLogHandler CONSOLE = new PrintLogHandler();
+
+ private PrintStream out;
+
+ private PrintStream err;
+
+ public PrintLogHandler(PrintStream out, PrintStream err)
+ {
+ this.out = out;
+ this.err = err;
+ }
+
+ protected PrintLogHandler()
+ {
+ this(IOUtil.OUT(), IOUtil.ERR());
+ }
+
+ /**
+ * @since 3.2
+ */
+ public PrintStream getOut()
+ {
+ return out;
+ }
+
+ /**
+ * @since 3.2
+ */
+ public PrintStream getErr()
+ {
+ return err;
+ }
+
+ @Override
+ protected void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable
+ {
+ PrintStream stream = level == Level.ERROR ? err : out;
+ stream.println(toString(level) + " " + msg); //$NON-NLS-1$
+ if (t != null)
+ {
+ IOUtil.print(t, stream);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/ContextTracer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/ContextTracer.java
index e64f654d0e..cab5ad0661 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/ContextTracer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/ContextTracer.java
@@ -1,89 +1,100 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-import org.eclipse.net4j.util.om.OMBundle;
-
-/**
- * @author Eike Stepper
- */
-public class ContextTracer
-{
- private OMTracer delegate;
-
- private Class<?> context;
-
- public ContextTracer(OMTracer delegate, Class<?> context)
- {
- this.delegate = delegate;
- this.context = context;
- }
-
- public OMBundle getBundle()
- {
- return delegate.getBundle();
- }
-
- public String getFullName()
- {
- return delegate.getFullName();
- }
-
- public String getName()
- {
- return delegate.getName();
- }
-
- public OMTracer getDelegate()
- {
- return delegate;
- }
-
- public OMTracer getParent()
- {
- return delegate.getParent();
- }
-
- public boolean isEnabled()
- {
- return delegate.isEnabled();
- }
-
- public void setEnabled(boolean enabled)
- {
- delegate.setEnabled(enabled);
- }
-
- public void format(String pattern, Object... args)
- {
- delegate.format(context, pattern, args);
- }
-
- public void format(String pattern, Throwable t, Object... args)
- {
- delegate.format(context, pattern, t, args);
- }
-
- public void trace(String msg, Throwable t)
- {
- delegate.trace(context, msg, t);
- }
-
- public void trace(String msg)
- {
- delegate.trace(context, msg);
- }
-
- public void trace(Throwable t)
- {
- delegate.trace(context, t);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+import org.eclipse.net4j.util.om.OMBundle;
+
+/**
+ * Encapsulates a tracing {@link #getContext() context} and delegates trace calls to a bundle {@link OMTracer tracer}.
+ *
+ * @author Eike Stepper
+ * @see PerfTracer
+ */
+public class ContextTracer
+{
+ private OMTracer delegate;
+
+ private Class<?> context;
+
+ public ContextTracer(OMTracer delegate, Class<?> context)
+ {
+ this.delegate = delegate;
+ this.context = context;
+ }
+
+ /**
+ * @since 3.2
+ */
+ public Class<?> getContext()
+ {
+ return context;
+ }
+
+ public OMBundle getBundle()
+ {
+ return delegate.getBundle();
+ }
+
+ public String getFullName()
+ {
+ return delegate.getFullName();
+ }
+
+ public String getName()
+ {
+ return delegate.getName();
+ }
+
+ public OMTracer getDelegate()
+ {
+ return delegate;
+ }
+
+ public OMTracer getParent()
+ {
+ return delegate.getParent();
+ }
+
+ public boolean isEnabled()
+ {
+ return delegate.isEnabled();
+ }
+
+ public void setEnabled(boolean enabled)
+ {
+ delegate.setEnabled(enabled);
+ }
+
+ public void format(String pattern, Object... args)
+ {
+ delegate.format(context, pattern, args);
+ }
+
+ public void format(String pattern, Throwable t, Object... args)
+ {
+ delegate.format(context, pattern, t, args);
+ }
+
+ public void trace(String msg, Throwable t)
+ {
+ delegate.trace(context, msg, t);
+ }
+
+ public void trace(String msg)
+ {
+ delegate.trace(context, msg);
+ }
+
+ public void trace(Throwable t)
+ {
+ delegate.trace(context, t);
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandler.java
index 0ca72ab987..2d40ed2f1e 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandler.java
@@ -1,19 +1,24 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-/**
- * @author Eike Stepper
- */
-public interface OMTraceHandler
-{
- public void traced(OMTraceHandlerEvent event);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+/**
+ * Handles {@link TraceHandlerEvent trace events}, for example appends them to a {@link PrintTraceHandler stream} sends them to a
+ * {@link RemoteTraceHandler remote} trace handler.
+ *
+ * @author Eike Stepper
+ * @see PrintTraceHandler#CONSOLE
+ * @see RemoteTraceHandler
+ */
+public interface OMTraceHandler
+{
+ public void traced(OMTraceHandlerEvent event);
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.java
index c3c5299b36..4b96ebb2fe 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTraceHandlerEvent.java
@@ -1,29 +1,31 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-/**
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface OMTraceHandlerEvent
-{
- public long getTimeStamp();
-
- public OMTracer getTracer();
-
- public Class<?> getContext();
-
- public String getMessage();
-
- public Throwable getThrowable();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+/**
+ * Encapsulates the information of a trace event.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface OMTraceHandlerEvent
+{
+ public long getTimeStamp();
+
+ public OMTracer getTracer();
+
+ public Class<?> getContext();
+
+ public String getMessage();
+
+ public Throwable getThrowable();
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTracer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTracer.java
index a27fa97458..49909bea04 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTracer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/OMTracer.java
@@ -1,47 +1,52 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-import org.eclipse.net4j.util.om.OMBundle;
-
-/**
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface OMTracer
-{
- public OMBundle getBundle();
-
- public OMTracer getParent();
-
- public String getName();
-
- public String getFullName();
-
- public boolean isEnabled();
-
- public void setEnabled(boolean enabled);
-
- public void trace(OMTraceHandlerEvent traceRecord);
-
- public OMTraceHandlerEvent format(Class<?> context, String pattern, Object... args);
-
- public OMTraceHandlerEvent format(Class<?> context, String pattern, Throwable t, Object... args);
-
- public OMTraceHandlerEvent trace(Class<?> context, String msg, Throwable t);
-
- public OMTraceHandlerEvent trace(Class<?> context, String msg);
-
- public OMTraceHandlerEvent trace(Class<?> context, Throwable t);
-
- public OMTracer tracer(String name);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+import org.eclipse.net4j.util.om.OMBundle;
+
+/**
+ * A {@link #getName() named} {@link OMBundle#tracer(String) tracer} within the {@link #getParent() hierarchy} of tracers of a {@link OMBundle bundle}.
+ *
+ * @author Eike Stepper
+ * @see OMBundle#tracer(String)
+ * @see OMTracer#tracer(String)
+ * @see ContextTracer
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface OMTracer
+{
+ public OMBundle getBundle();
+
+ public OMTracer getParent();
+
+ public String getName();
+
+ public String getFullName();
+
+ public boolean isEnabled();
+
+ public void setEnabled(boolean enabled);
+
+ public void trace(OMTraceHandlerEvent traceRecord);
+
+ public OMTraceHandlerEvent format(Class<?> context, String pattern, Object... args);
+
+ public OMTraceHandlerEvent format(Class<?> context, String pattern, Throwable t, Object... args);
+
+ public OMTraceHandlerEvent trace(Class<?> context, String msg, Throwable t);
+
+ public OMTraceHandlerEvent trace(Class<?> context, String msg);
+
+ public OMTraceHandlerEvent trace(Class<?> context, Throwable t);
+
+ public OMTracer tracer(String name);
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PerfTracer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PerfTracer.java
index 564b948dc0..f414ec8867 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PerfTracer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PerfTracer.java
@@ -1,81 +1,83 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-import java.util.IdentityHashMap;
-import java.util.Map;
-
-/**
- * @author Eike Stepper
- */
-public class PerfTracer extends ContextTracer
-{
- public static final long NOT_STARTED = 0L;
-
- private Map<Object, Long> timers = new IdentityHashMap<Object, Long>();
-
- public PerfTracer(OMTracer delegate, Class<?> context)
- {
- super(delegate, context);
- }
-
- public void start(Object object)
- {
- if (isEnabled())
- {
- synchronized (timers)
- {
- timers.put(object, System.currentTimeMillis());
- }
- }
- }
-
- public long stop(Object object)
- {
- long duration = NOT_STARTED;
- if (isEnabled())
- {
- Long timer;
- synchronized (timers)
- {
- timer = timers.remove(object);
- }
-
- if (timer != null)
- {
- duration = System.currentTimeMillis() - timer;
- format("{0} = {1} millis", object, duration); //$NON-NLS-1$
- }
- }
-
- return duration;
- }
-
- public long getDuration(Object object)
- {
- long duration = NOT_STARTED;
- if (isEnabled())
- {
- Long timer;
- synchronized (timers)
- {
- timer = timers.get(object);
- }
-
- if (timer != null)
- {
- duration = System.currentTimeMillis() - timer;
- }
- }
-
- return duration;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+import java.util.IdentityHashMap;
+import java.util.Map;
+
+/**
+ * A {@link ContextTracer context tracer} that maintains a number of timers for performance measurements.
+ *
+ * @author Eike Stepper
+ */
+public class PerfTracer extends ContextTracer
+{
+ public static final long NOT_STARTED = 0L;
+
+ private Map<Object, Long> timers = new IdentityHashMap<Object, Long>();
+
+ public PerfTracer(OMTracer delegate, Class<?> context)
+ {
+ super(delegate, context);
+ }
+
+ public void start(Object object)
+ {
+ if (isEnabled())
+ {
+ synchronized (timers)
+ {
+ timers.put(object, System.currentTimeMillis());
+ }
+ }
+ }
+
+ public long stop(Object object)
+ {
+ long duration = NOT_STARTED;
+ if (isEnabled())
+ {
+ Long timer;
+ synchronized (timers)
+ {
+ timer = timers.remove(object);
+ }
+
+ if (timer != null)
+ {
+ duration = System.currentTimeMillis() - timer;
+ format("{0} = {1} millis", object, duration); //$NON-NLS-1$
+ }
+ }
+
+ return duration;
+ }
+
+ public long getDuration(Object object)
+ {
+ long duration = NOT_STARTED;
+ if (isEnabled())
+ {
+ Long timer;
+ synchronized (timers)
+ {
+ timer = timers.get(object);
+ }
+
+ if (timer != null)
+ {
+ duration = System.currentTimeMillis() - timer;
+ }
+ }
+
+ return duration;
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PrintTraceHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PrintTraceHandler.java
index d0fd8b3a62..5753b46111 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PrintTraceHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/PrintTraceHandler.java
@@ -1,132 +1,143 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-import org.eclipse.net4j.util.io.IOUtil;
-
-import java.io.PrintStream;
-import java.text.MessageFormat;
-
-/**
- * @author Eike Stepper
- */
-public class PrintTraceHandler implements OMTraceHandler
-{
- public static final PrintTraceHandler CONSOLE = new PrintTraceHandler();
-
- private PrintStream stream;
-
- private String pattern;
-
- private boolean shortContext;
-
- public PrintTraceHandler(PrintStream stream)
- {
- this.stream = stream;
- }
-
- protected PrintTraceHandler()
- {
- this(IOUtil.OUT());
- }
-
- public String getPattern()
- {
- return pattern;
- }
-
- /**
- * Pattern arguments:
- * <p>
- * <ul>
- * <li>0} --> String <b>tracerName</b><br>
- * <li>1} --> String <b>tracerShort</b><br>
- * <li>2} --> String <b>contextName</b><br>
- * <li>3} --> String <b>contextShort</b><br>
- * <li>4} --> long <b>timeStamp</b><br>
- * <li>5} --> String <b>message</b><br>
- * <li>6} --> String <b>threadName</b><br>
- * <li>7} --> long <b>threadID</b><br>
- * <li>8} --> int <b>threadPriority</b><br>
- * <li>9} --> Thread.State <b>threadState</b><br>
- * </ul>
- */
- public void setPattern(String pattern)
- {
- this.pattern = pattern;
- }
-
- public boolean isShortContext()
- {
- return shortContext;
- }
-
- public void setShortContext(boolean shortContext)
- {
- this.shortContext = shortContext;
- }
-
- public void traced(OMTraceHandlerEvent event)
- {
- String line = pattern == null ? format(shortContext, event) : format(pattern, event);
- stream.println(line);
- if (event.getThrowable() != null)
- {
- IOUtil.print(event.getThrowable(), stream);
- }
- }
-
- public static String format(boolean shortContext, OMTraceHandlerEvent event)
- {
- Class<?> context = event.getContext();
- String contextName = shortContext ? context.getSimpleName() : context.getName();
- return Thread.currentThread().getName() + " [" + contextName + "] " + event.getMessage(); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Pattern arguments:
- * <p>
- * <ul>
- * <li>0} --> String <b>tracerName</b><br>
- * <li>1} --> String <b>tracerShort</b><br>
- * <li>2} --> String <b>contextName</b><br>
- * <li>3} --> String <b>contextShort</b><br>
- * <li>4} --> long <b>timeStamp</b><br>
- * <li>5} --> String <b>message</b><br>
- * <li>6} --> String <b>threadName</b><br>
- * <li>7} --> long <b>threadID</b><br>
- * <li>8} --> int <b>threadPriority</b><br>
- * <li>9} --> Thread.State <b>threadState</b><br>
- * </ul>
- */
- public static String format(String pattern, OMTraceHandlerEvent event)
- {
- final OMTracer tracer = event.getTracer();
- final String tracerName = tracer.getFullName();
- final String tracerShort = tracer.getName();
-
- final Class<?> context = event.getContext();
- final String contextName = context.getName();
- final String contextShort = context.getName();
-
- final long timeStamp = event.getTimeStamp();
- final String message = event.getMessage();
-
- final Thread thread = Thread.currentThread();
- final String threadName = thread.getName();
- final long threadID = thread.getId();
- final int threadPriority = thread.getPriority();
- final Thread.State threadState = thread.getState();
-
- return MessageFormat.format(pattern, tracerName, tracerShort, contextName, contextShort, timeStamp, message,
- threadName, threadID, threadPriority, threadState);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+import org.eclipse.net4j.util.io.IOUtil;
+
+import java.io.PrintStream;
+import java.text.MessageFormat;
+
+/**
+ * A {@link OMTraceHandler trace handler} that appends {@link OMTraceHandlerEvent trace events}
+ * to a {@link #getStream() print stream}.
+ *
+ * @author Eike Stepper
+ */
+public class PrintTraceHandler implements OMTraceHandler
+{
+ public static final PrintTraceHandler CONSOLE = new PrintTraceHandler();
+
+ private PrintStream stream;
+
+ private String pattern;
+
+ private boolean shortContext;
+
+ public PrintTraceHandler(PrintStream stream)
+ {
+ this.stream = stream;
+ }
+
+ protected PrintTraceHandler()
+ {
+ this(IOUtil.OUT());
+ }
+
+ /**
+ * @since 3.2
+ */
+ public PrintStream getStream()
+ {
+ return stream;
+ }
+
+ public String getPattern()
+ {
+ return pattern;
+ }
+
+ /**
+ * Pattern arguments:
+ * <p>
+ * <ul>
+ * <li>0} --> String <b>tracerName</b><br>
+ * <li>1} --> String <b>tracerShort</b><br>
+ * <li>2} --> String <b>contextName</b><br>
+ * <li>3} --> String <b>contextShort</b><br>
+ * <li>4} --> long <b>timeStamp</b><br>
+ * <li>5} --> String <b>message</b><br>
+ * <li>6} --> String <b>threadName</b><br>
+ * <li>7} --> long <b>threadID</b><br>
+ * <li>8} --> int <b>threadPriority</b><br>
+ * <li>9} --> Thread.State <b>threadState</b><br>
+ * </ul>
+ */
+ public void setPattern(String pattern)
+ {
+ this.pattern = pattern;
+ }
+
+ public boolean isShortContext()
+ {
+ return shortContext;
+ }
+
+ public void setShortContext(boolean shortContext)
+ {
+ this.shortContext = shortContext;
+ }
+
+ public void traced(OMTraceHandlerEvent event)
+ {
+ String line = pattern == null ? format(shortContext, event) : format(pattern, event);
+ stream.println(line);
+ if (event.getThrowable() != null)
+ {
+ IOUtil.print(event.getThrowable(), stream);
+ }
+ }
+
+ public static String format(boolean shortContext, OMTraceHandlerEvent event)
+ {
+ Class<?> context = event.getContext();
+ String contextName = shortContext ? context.getSimpleName() : context.getName();
+ return Thread.currentThread().getName() + " [" + contextName + "] " + event.getMessage(); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Pattern arguments:
+ * <p>
+ * <ul>
+ * <li>0} --> String <b>tracerName</b><br>
+ * <li>1} --> String <b>tracerShort</b><br>
+ * <li>2} --> String <b>contextName</b><br>
+ * <li>3} --> String <b>contextShort</b><br>
+ * <li>4} --> long <b>timeStamp</b><br>
+ * <li>5} --> String <b>message</b><br>
+ * <li>6} --> String <b>threadName</b><br>
+ * <li>7} --> long <b>threadID</b><br>
+ * <li>8} --> int <b>threadPriority</b><br>
+ * <li>9} --> Thread.State <b>threadState</b><br>
+ * </ul>
+ */
+ public static String format(String pattern, OMTraceHandlerEvent event)
+ {
+ final OMTracer tracer = event.getTracer();
+ final String tracerName = tracer.getFullName();
+ final String tracerShort = tracer.getName();
+
+ final Class<?> context = event.getContext();
+ final String contextName = context.getName();
+ final String contextShort = context.getName();
+
+ final long timeStamp = event.getTimeStamp();
+ final String message = event.getMessage();
+
+ final Thread thread = Thread.currentThread();
+ final String threadName = thread.getName();
+ final long threadID = thread.getId();
+ final int threadPriority = thread.getPriority();
+ final Thread.State threadState = thread.getState();
+
+ return MessageFormat.format(pattern, tracerName, tracerShort, contextName, contextShort, timeStamp, message,
+ threadName, threadID, threadPriority, threadState);
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.java
index b44cfc81e8..e80e1e9755 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceHandler.java
@@ -1,147 +1,149 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-import org.eclipse.net4j.internal.util.bundle.OM;
-import org.eclipse.net4j.util.io.IOUtil;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.util.UUID;
-
-/**
- * @author Eike Stepper
- */
-public class RemoteTraceHandler implements OMTraceHandler
-{
- public static final String DEFAULT_HOST = "localhost"; //$NON-NLS-1$
-
- public static final int DEFAULT_PORT = RemoteTraceServer.DEFAULT_PORT;
-
- private static int uniqueCounter;
-
- private String agentID;
-
- private String host;
-
- private int port;
-
- private Socket socket;
-
- public RemoteTraceHandler() throws IOException
- {
- this(uniqueAgentID());
- }
-
- public RemoteTraceHandler(String agentID) throws IOException
- {
- this(agentID, DEFAULT_HOST);
- }
-
- public RemoteTraceHandler(String agentID, String host) throws IOException
- {
- this(agentID, host, DEFAULT_PORT);
- }
-
- public RemoteTraceHandler(String agentID, String host, int port) throws IOException
- {
- this.agentID = agentID;
- this.host = host;
- this.port = port;
- socket = connect();
- }
-
- public Exception close()
- {
- try
- {
- socket.close();
- return null;
- }
- catch (IOException ex)
- {
- OM.LOG.error(ex);
- return ex;
- }
- }
-
- public void traced(OMTraceHandlerEvent event)
- {
- try
- {
- OutputStream outputStream = socket.getOutputStream();
- DataOutputStream out = new DataOutputStream(outputStream);
-
- out.writeLong(event.getTimeStamp());
- writeUTF(out, agentID);
- writeUTF(out, event.getTracer().getBundle().getBundleID());
- writeUTF(out, event.getTracer().getFullName());
- writeUTF(out, event.getContext() == null ? "" : event.getContext().getName()); //$NON-NLS-1$
- writeUTF(out, event.getMessage());
- if (event.getThrowable() == null)
- {
- out.writeBoolean(false);
- }
- else
- {
- out.writeBoolean(true);
- String message = event.getThrowable().getMessage();
- writeUTF(out, message);
-
- StackTraceElement[] stackTrace = event.getThrowable().getStackTrace();
- int size = stackTrace == null ? 0 : stackTrace.length;
- out.writeInt(size);
-
- for (int i = 0; i < size; i++)
- {
- StackTraceElement element = stackTrace[i];
- writeUTF(out, element.getClassName());
- writeUTF(out, element.getMethodName());
- writeUTF(out, element.getFileName());
- out.writeInt(element.getLineNumber());
- }
- }
-
- out.flush();
- }
- catch (IOException ex)
- {
- IOUtil.print(ex);
- }
- }
-
- protected Socket connect() throws IOException
- {
- return new Socket(host, port);
- }
-
- protected void writeUTF(DataOutputStream out, String str) throws IOException
- {
- out.writeUTF(str == null ? "" : str); //$NON-NLS-1$
- }
-
- public static String uniqueAgentID()
- {
- try
- {
- InetAddress localMachine = InetAddress.getLocalHost();
- return localMachine.getHostName() + "#" + ++uniqueCounter; //$NON-NLS-1$
- }
- catch (Exception ex)
- {
- UUID uuid = UUID.randomUUID();
- return uuid.toString();
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+import org.eclipse.net4j.internal.util.bundle.OM;
+import org.eclipse.net4j.util.io.IOUtil;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.util.UUID;
+
+/**
+ * A {@link OMTraceHandler trace handler} that sends {@link OMTraceHandlerEvent trace events} to a remote trace {@link RemoteTraceServer server}.
+ *
+ * @author Eike Stepper
+ */
+public class RemoteTraceHandler implements OMTraceHandler
+{
+ public static final String DEFAULT_HOST = "localhost"; //$NON-NLS-1$
+
+ public static final int DEFAULT_PORT = RemoteTraceServer.DEFAULT_PORT;
+
+ private static int uniqueCounter;
+
+ private String agentID;
+
+ private String host;
+
+ private int port;
+
+ private Socket socket;
+
+ public RemoteTraceHandler() throws IOException
+ {
+ this(uniqueAgentID());
+ }
+
+ public RemoteTraceHandler(String agentID) throws IOException
+ {
+ this(agentID, DEFAULT_HOST);
+ }
+
+ public RemoteTraceHandler(String agentID, String host) throws IOException
+ {
+ this(agentID, host, DEFAULT_PORT);
+ }
+
+ public RemoteTraceHandler(String agentID, String host, int port) throws IOException
+ {
+ this.agentID = agentID;
+ this.host = host;
+ this.port = port;
+ socket = connect();
+ }
+
+ public Exception close()
+ {
+ try
+ {
+ socket.close();
+ return null;
+ }
+ catch (IOException ex)
+ {
+ OM.LOG.error(ex);
+ return ex;
+ }
+ }
+
+ public void traced(OMTraceHandlerEvent event)
+ {
+ try
+ {
+ OutputStream outputStream = socket.getOutputStream();
+ DataOutputStream out = new DataOutputStream(outputStream);
+
+ out.writeLong(event.getTimeStamp());
+ writeUTF(out, agentID);
+ writeUTF(out, event.getTracer().getBundle().getBundleID());
+ writeUTF(out, event.getTracer().getFullName());
+ writeUTF(out, event.getContext() == null ? "" : event.getContext().getName()); //$NON-NLS-1$
+ writeUTF(out, event.getMessage());
+ if (event.getThrowable() == null)
+ {
+ out.writeBoolean(false);
+ }
+ else
+ {
+ out.writeBoolean(true);
+ String message = event.getThrowable().getMessage();
+ writeUTF(out, message);
+
+ StackTraceElement[] stackTrace = event.getThrowable().getStackTrace();
+ int size = stackTrace == null ? 0 : stackTrace.length;
+ out.writeInt(size);
+
+ for (int i = 0; i < size; i++)
+ {
+ StackTraceElement element = stackTrace[i];
+ writeUTF(out, element.getClassName());
+ writeUTF(out, element.getMethodName());
+ writeUTF(out, element.getFileName());
+ out.writeInt(element.getLineNumber());
+ }
+ }
+
+ out.flush();
+ }
+ catch (IOException ex)
+ {
+ IOUtil.print(ex);
+ }
+ }
+
+ protected Socket connect() throws IOException
+ {
+ return new Socket(host, port);
+ }
+
+ protected void writeUTF(DataOutputStream out, String str) throws IOException
+ {
+ out.writeUTF(str == null ? "" : str); //$NON-NLS-1$
+ }
+
+ public static String uniqueAgentID()
+ {
+ try
+ {
+ InetAddress localMachine = InetAddress.getLocalHost();
+ return localMachine.getHostName() + "#" + ++uniqueCounter; //$NON-NLS-1$
+ }
+ catch (Exception ex)
+ {
+ UUID uuid = UUID.randomUUID();
+ return uuid.toString();
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceServer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceServer.java
index 771b444989..c641443d9e 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceServer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/trace/RemoteTraceServer.java
@@ -1,399 +1,447 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.om.trace;
-
-import org.eclipse.net4j.internal.util.bundle.OM;
-import org.eclipse.net4j.util.io.IOUtil;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.Date;
-import java.util.EventObject;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-/**
- * @author Eike Stepper
- */
-public class RemoteTraceServer
-{
- public static final String DEFAULT_ADDRESS = "0.0.0.0"; //$NON-NLS-1$
-
- public static final int DEFAULT_PORT = 2035;
-
- public static final int ANY_PORT = 0;
-
- private static long lastEventID;
-
- private int port;
-
- private String address;
-
- private ServerSocket serverSocket;
-
- private Queue<Listener> listeners = new ConcurrentLinkedQueue<Listener>();
-
- public RemoteTraceServer() throws IOException
- {
- this(DEFAULT_PORT);
- }
-
- public RemoteTraceServer(int port) throws IOException
- {
- this(port, DEFAULT_ADDRESS);
- }
-
- public RemoteTraceServer(int port, String address) throws IOException
- {
- this.port = port;
- this.address = address;
- serverSocket = bind();
- start();
- }
-
- /**
- * @since 3.0
- */
- public void start()
- {
- new Thread("RemoteTraceServer") //$NON-NLS-1$
- {
- @Override
- public void run()
- {
- handleConnections();
- }
- }.start();
- }
-
- public void addListener(Listener listener)
- {
- if (!listeners.contains(listener))
- {
- listeners.add(listener);
- }
- }
-
- public void removeListener(Listener listener)
- {
- listeners.remove(listener);
- }
-
- public Exception close()
- {
- try
- {
- serverSocket.close();
- return null;
- }
- catch (IOException ex)
- {
- OM.LOG.error(ex);
- return ex;
- }
- }
-
- protected ServerSocket bind() throws IOException
- {
- InetAddress addr = InetAddress.getByName(address);
- return new ServerSocket(port, 5, addr);
- }
-
- protected void handleConnections()
- {
- for (;;)
- {
- try
- {
- final Socket socket = serverSocket.accept();
- new Thread()
- {
- @Override
- public void run()
- {
- handleSession(socket);
- }
- }.start();
- }
- catch (IOException ex)
- {
- if (!serverSocket.isClosed())
- {
- IOUtil.print(ex);
- }
-
- break;
- }
- }
- }
-
- protected void handleSession(Socket socket)
- {
- try
- {
- InputStream inputStream = socket.getInputStream();
- DataInputStream in = new DataInputStream(inputStream);
-
- for (;;)
- {
- handleTrace(in);
- }
- }
- catch (IOException ex)
- {
- IOUtil.print(ex);
- }
- }
-
- protected void handleTrace(DataInputStream in) throws IOException
- {
- Event event = new Event();
- event.timeStamp = in.readLong();
- event.agentID = in.readUTF();
- event.bundleID = in.readUTF();
- event.tracerName = in.readUTF();
- event.context = in.readUTF();
- event.message = in.readUTF();
- if (in.readBoolean())
- {
- event.throwable = in.readUTF();
- int size = in.readInt();
- event.stackTrace = new StackTraceElement[size];
- for (int i = 0; i < size; i++)
- {
- String className = in.readUTF();
- String methodName = in.readUTF();
- String fileName = in.readUTF();
- int lineNumber = in.readInt();
- event.stackTrace[i] = new StackTraceElement(className, methodName, fileName, lineNumber);
- }
- }
-
- fireEvent(event);
- }
-
- protected void fireEvent(Event event)
- {
- for (Listener listener : listeners)
- {
- try
- {
- listener.notifyRemoteTrace(event);
- }
- catch (RuntimeException ex)
- {
- IOUtil.print(ex);
- }
- }
- }
-
- /**
- * @author Eike Stepper
- */
- public class Event extends EventObject
- {
- private static final long serialVersionUID = 1L;
-
- private long id;
-
- long timeStamp;
-
- String agentID;
-
- String bundleID;
-
- String tracerName;
-
- String context;
-
- String message;
-
- String throwable;
-
- StackTraceElement[] stackTrace;
-
- Event()
- {
- super(RemoteTraceServer.this);
- id = ++lastEventID;
- }
-
- public RemoteTraceServer getRemoteTraceServer()
- {
- return (RemoteTraceServer)source;
- }
-
- public long getID()
- {
- return id;
- }
-
- public long getTimeStamp()
- {
- return timeStamp;
- }
-
- public String getAgentID()
- {
- return agentID;
- }
-
- public String getBundleID()
- {
- return bundleID;
- }
-
- public String getContext()
- {
- return context;
- }
-
- public String getMessage()
- {
- return message;
- }
-
- public StackTraceElement[] getStackTrace()
- {
- return stackTrace;
- }
-
- public String getThrowable()
- {
- return throwable;
- }
-
- public String getTracerName()
- {
- return tracerName;
- }
-
- @Override
- public String toString()
- {
- StringBuilder builder = new StringBuilder();
- builder.append("TraceEvent[agentID="); //$NON-NLS-1$
- builder.append(agentID);
-
- builder.append(", bundleID="); //$NON-NLS-1$
- builder.append(bundleID);
-
- builder.append(", tracerName="); //$NON-NLS-1$
- builder.append(tracerName);
-
- builder.append(", context="); //$NON-NLS-1$
- builder.append(context);
-
- builder.append(", message="); //$NON-NLS-1$
- builder.append(message);
-
- builder.append(", throwable="); //$NON-NLS-1$
- builder.append(throwable);
-
- builder.append(", stackTrace="); //$NON-NLS-1$
- builder.append(stackTrace);
-
- builder.append("]"); //$NON-NLS-1$
- return builder.toString();
- }
-
- public String getText(int index)
- {
- switch (index)
- {
- case 0:
- return Long.toString(id);
- case 1:
- return new Date(timeStamp).toString();
- case 2:
- return agentID;
- case 3:
- return bundleID;
- case 4:
- return tracerName;
- case 5:
- return context;
- case 6:
- return message;
- case 7:
- return throwable;
- }
-
- throw new IllegalArgumentException("Invalid index: " + index); //$NON-NLS-1$
- }
-
- public boolean hasError()
- {
- return throwable != null && throwable.length() != 0 //
- || stackTrace != null && stackTrace.length != 0;
- }
- }
-
- /**
- * @author Eike Stepper
- */
- public interface Listener
- {
- public void notifyRemoteTrace(Event event);
- }
-
- public static class PrintListener implements Listener
- {
- public static final PrintListener CONSOLE = new PrintListener();
-
- private PrintStream stream;
-
- public PrintListener(PrintStream stream)
- {
- this.stream = stream;
- }
-
- protected PrintListener()
- {
- this(IOUtil.OUT());
- }
-
- public void notifyRemoteTrace(Event event)
- {
- stream.println("[TRACE] " + event.getAgentID()); //$NON-NLS-1$
- stream.println(event.getBundleID());
- stream.println(event.getTracerName());
- stream.println(event.getContext());
- stream.println(event.getMessage());
-
- String throwable = event.getThrowable();
- if (throwable != null && throwable.length() != 0)
- {
- stream.println(throwable);
- }
-
- StackTraceElement[] stackTrace = event.getStackTrace();
- if (stackTrace != null)
- {
- for (StackTraceElement element : stackTrace)
- {
- stream.print(element.getClassName());
- stream.print("." + element.getMethodName()); //$NON-NLS-1$
- stream.print("(" + element.getFileName()); //$NON-NLS-1$
- stream.print(":" + element.getLineNumber()); //$NON-NLS-1$
- stream.println(")"); //$NON-NLS-1$
- }
- }
-
- stream.println();
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.om.trace;
+
+import org.eclipse.net4j.internal.util.bundle.OM;
+import org.eclipse.net4j.util.io.IOUtil;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.Date;
+import java.util.EventObject;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * A server that {@link RemoteTraceHandler agents} can connect to and that passes the received {@link OMTraceHandlerEvent trace events}
+ * to {@link #addListener(Listener) registered} {@link Listener listeners}.
+ *
+ * @author Eike Stepper
+ */
+public class RemoteTraceServer
+{
+ public static final String DEFAULT_ADDRESS = "0.0.0.0"; //$NON-NLS-1$
+
+ public static final int DEFAULT_PORT = 2035;
+
+ public static final int ANY_PORT = 0;
+
+ private static long lastEventID;
+
+ private int port;
+
+ private String address;
+
+ private ServerSocket serverSocket;
+
+ private Queue<Listener> listeners = new ConcurrentLinkedQueue<Listener>();
+
+ public RemoteTraceServer() throws IOException
+ {
+ this(DEFAULT_PORT);
+ }
+
+ public RemoteTraceServer(int port) throws IOException
+ {
+ this(port, DEFAULT_ADDRESS);
+ }
+
+ public RemoteTraceServer(int port, String address) throws IOException
+ {
+ this.port = port;
+ this.address = address;
+ serverSocket = bind();
+ start();
+ }
+
+ /**
+ * @since 3.0
+ */
+ public void start()
+ {
+ new Thread("RemoteTraceServer") //$NON-NLS-1$
+ {
+ @Override
+ public void run()
+ {
+ handleConnections();
+ }
+ }.start();
+ }
+
+ public void addListener(Listener listener)
+ {
+ if (!listeners.contains(listener))
+ {
+ listeners.add(listener);
+ }
+ }
+
+ public void removeListener(Listener listener)
+ {
+ listeners.remove(listener);
+ }
+
+ public Exception close()
+ {
+ try
+ {
+ serverSocket.close();
+ return null;
+ }
+ catch (IOException ex)
+ {
+ OM.LOG.error(ex);
+ return ex;
+ }
+ }
+
+ protected ServerSocket bind() throws IOException
+ {
+ InetAddress addr = InetAddress.getByName(address);
+ return new ServerSocket(port, 5, addr);
+ }
+
+ protected void handleConnections()
+ {
+ for (;;)
+ {
+ try
+ {
+ final Socket socket = serverSocket.accept();
+ new Thread()
+ {
+ @Override
+ public void run()
+ {
+ handleSession(socket);
+ }
+ }.start();
+ }
+ catch (IOException ex)
+ {
+ if (!serverSocket.isClosed())
+ {
+ IOUtil.print(ex);
+ }
+
+ break;
+ }
+ }
+ }
+
+ protected void handleSession(Socket socket)
+ {
+ try
+ {
+ InputStream inputStream = socket.getInputStream();
+ DataInputStream in = new DataInputStream(inputStream);
+
+ for (;;)
+ {
+ handleTrace(in);
+ }
+ }
+ catch (IOException ex)
+ {
+ IOUtil.print(ex);
+ }
+ }
+
+ protected void handleTrace(DataInputStream in) throws IOException
+ {
+ Event event = new Event(this);
+ event.timeStamp = in.readLong();
+ event.agentID = in.readUTF();
+ event.bundleID = in.readUTF();
+ event.tracerName = in.readUTF();
+ event.context = in.readUTF();
+ event.message = in.readUTF();
+ if (in.readBoolean())
+ {
+ event.throwable = in.readUTF();
+ int size = in.readInt();
+ event.stackTrace = new StackTraceElement[size];
+ for (int i = 0; i < size; i++)
+ {
+ String className = in.readUTF();
+ String methodName = in.readUTF();
+ String fileName = in.readUTF();
+ int lineNumber = in.readInt();
+ event.stackTrace[i] = new StackTraceElement(className, methodName, fileName, lineNumber);
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ protected void fireEvent(Event event)
+ {
+ for (Listener listener : listeners)
+ {
+ try
+ {
+ listener.notifyRemoteTrace(event);
+ }
+ catch (RuntimeException ex)
+ {
+ IOUtil.print(ex);
+ }
+ }
+ }
+
+ /**
+ * A trace event being passed by a remote trace {@link RemoteTraceServer server} to
+ * {@link RemoteTraceServer#addListener(Listener) registered} {@link Listener listeners}.
+ *
+ * @author Eike Stepper
+ */
+ public static class Event extends EventObject
+ {
+ private static final long serialVersionUID = 1L;
+
+ private long id;
+
+ long timeStamp;
+
+ /**</