#------------------------------------------------------------------------------
# Name:      xmlBlaster.properties
# Project:   xmlBlaster.org
# Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
# Comment:   Properties for xmlBlaster MOM server, copy into your home directory
# See:       http://www.xmlblaster.org/xmlBlaster/doc/requirements/util.property.html
# See:       http://www.xmlblaster.org/xmlBlaster/doc/requirements/util.property.env.html#
#All JVM system variables are supported, e.g.
#   ${user.dir}
#   ${user.home}
#could be used and would be replaced to the current directory and
#the users home directory respectively.
#
#Further you can reference all variables in this file or from command line
#with ${...}
#------------------------------------------------------------------------------


#========================IMPORTANT NOTE========================================
# NOTE: If you uncomment the following 7 lines for the server, and the next 1 for the client, xmlBlaster
# will run RAM based only (without any database)
# Server side
#persistence/msgUnitStore/defaultPlugin=RAM,1.0
#persistence/session/defaultPlugin=RAM,1.0
#persistence/subscribe/defaultPlugin=RAM,1.0
#queue/subject/defaultPlugin=RAM,1.0
#queue/history/defaultPlugin=RAM,1.0
#queue/callback/defaultPlugin=RAM,1.0
#useTopicStore=false

# Client side
#queue/connection/defaultPlugin=RAM,1.0

# NOTE: If you don't want the embedded hsqldb database to handle persistence you need to install a
# Postgres, Oracle, Firebird or MS-SQLServer database
#   See
#    xmlBlaster/src/java/org/xmlBlaster/util/queue/jdbc/README
#    http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.postgres.html
#    http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.oracle.html
#    http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.firebird.html
#    http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.sqlserver.html

#==============================================================================


#------------------------------------------------------------------------------
# Authentication and Authorization
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/security.htpasswd.html
Security.Server.Plugin[simple][1.0]=org.xmlBlaster.authentication.plugins.simple.Manager
Security.Server.Plugin[gui][1.0]=org.xmlBlaster.authentication.plugins.demo.Manager
Security.Server.Plugin[ldap][1.0]=org.xmlBlaster.authentication.plugins.ldap.Manager
Security.Server.Plugin[htpasswd][1.0]=org.xmlBlaster.authentication.plugins.htpasswd.Manager

# NONE switches off security checks in passwd file:
Security.Server.Plugin.htpasswd.secretfile=NONE
#Security.Server.Plugin.htpasswd.secretfile=${user.home}${file.separator}xmlBlaster.htpasswd
Security.Server.Plugin.htpasswd.allowPartialUsername=false

# Force on client side a specified plugin (as default)
# Only if you access xmlBlaster with java clients and
# use our helper class XmlBlasterAccess.java
# With "gui,1.0" will the server popup a GUI panel
#Security.Client.DefaultPlugin=htpasswd,1.0
Security.Client.Plugin[gui][1.0]=org.xmlBlaster.authentication.plugins.demo.ClientPlugin
Security.Client.Plugin[simple][1.0]=org.xmlBlaster.authentication.plugins.simple.ClientPlugin
Security.Client.Plugin[ldap][1.0]=org.xmlBlaster.authentication.plugins.ldap.ClientPlugin
Security.Client.Plugin[htpasswd][1.0]=org.xmlBlaster.authentication.plugins.htpasswd.ClientPlugin
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# List of all xmlBlaster access protocol drivers (I_Driver and I_Callback implementations)
# For supported protocol types see xmlBlaster/src/java/org/xmlBlaster/protocol directory
# SEE: http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.html
# NOTE: Please use xmlBlasterPlugins.xml to configure which protocols to offer

CbProtocolPlugin[IOR][1.0]=org.xmlBlaster.protocol.corba.CallbackCorbaDriver
# The CallbackSocketDriver is a fake as we tunnel back through the same socket
# But we need it for persistent Session/Subscription recovery on server startup
CbProtocolPlugin[SOCKET][1.0]=org.xmlBlaster.protocol.socket.CallbackSocketDriver
CbProtocolPlugin[socket_ssl][1.0]=org.xmlBlaster.protocol.socket.CallbackSocketDriver,SSL=true,compress/type=zlib:stream
CbProtocolPlugin[socket_script][1.0]=org.xmlBlaster.protocol.socket.CallbackSocketDriver,\
                             compress/type=,\
                             isNullTerminated=true,\
                             parserClass=org.xmlBlaster.util.xbformat.XmlScriptParser
#CbProtocolPlugin[RMI][1.0]=org.xmlBlaster.protocol.rmi.CallbackRmiDriver
CbProtocolPlugin[XMLRPC][1.0]=org.xmlBlaster.protocol.xmlrpc.CallbackXmlRpcDriver
CbProtocolPlugin[LOCAL][1.0]=org.xmlBlaster.protocol.local.CallbackLocalDriver
CbProtocolPlugin[JDBC][1.0]=org.xmlBlaster.protocol.jdbc.CallbackJdbcDriver
#CbProtocolPlugin[SOAP][1.0]=org.xmlBlaster.protocol.soap.CallbackSoapDriver,classpath=soap/jdom.jar:soap/log4j-core.jar:soap/log4j.jar:soap/saw.jar:soap/soap.jar:soap/xerces.jar
CbProtocolPlugin[email][1.0]=org.xmlBlaster.protocol.email.CallbackEmailDriver,\
                             mail.smtp.from=xmlBlaster@localhost,\
                             compress/type=zlib,\
                             compress/minSize=1200,\
                             mail.subject=Server generated callback,\
                             parserClass=org.xmlBlaster.util.xbformat.XmlScriptParser
#                             parserClass=org.xmlBlaster.util.xbformat.XbfParser
#plugin/email/responseTimeout=300000
#plugin/email/pingResponseTimeout=60000
#plugin/email/updateResponseTimeout=30000000
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# On client side only

# Register the client side protocol plugin to connect to server
ClientProtocolPlugin[IOR][1.0]=org.xmlBlaster.client.protocol.corba.CorbaConnection
ClientProtocolPlugin[SOCKET][1.0]=org.xmlBlaster.client.protocol.socket.SocketConnection
ClientProtocolPlugin[socket_ssl][1.0]=org.xmlBlaster.client.protocol.socket.SocketConnection,SSL=true,compress/type=zlib:stream
ClientProtocolPlugin[socket_script][1.0]=org.xmlBlaster.client.protocol.socket.SocketConnection,\
                             compress/type=,\
                             isNullTerminated=true,\
                             parserClass=org.xmlBlaster.util.xbformat.XmlScriptParser
#ClientProtocolPlugin[RMI][1.0]=org.xmlBlaster.client.protocol.rmi.RmiConnection
ClientProtocolPlugin[XMLRPC][1.0]=org.xmlBlaster.client.protocol.xmlrpc.XmlRpcConnection
ClientProtocolPlugin[LOCAL][1.0]=org.xmlBlaster.client.protocol.local.LocalConnection
#ClientProtocolPlugin[SOAP][1.0]=org.xmlBlaster.client.protocol.soap.SoapConnection
ClientProtocolPlugin[email][1.0]=org.xmlBlaster.client.protocol.email.EmailConnection,\
                                 mail.smtp.url=smtp://demo:demo@localhost,\
                                 mail.smtp.from=demo@localhost,\
                                 mail.pop3.url=pop3://demo:demo@localhost/INBOX,\
                                 pop3PollingInterval=500,\
                                 holdbackExpireTimeout=20000,\
                                 compress/type=zlib,\
                                 compress/minSize=200,\
                                 parserClass=org.xmlBlaster.util.xbformat.XbfParser
#                                 parserClass=org.xmlBlaster.util.xbformat.XmlScriptParser

# Register the client side callback server plugins:
ClientCbServerProtocolPlugin[IOR][1.0]=org.xmlBlaster.client.protocol.corba.CorbaCallbackServer
ClientCbServerProtocolPlugin[SOCKET][1.0]=org.xmlBlaster.client.protocol.socket.SocketCallbackImpl
ClientCbServerProtocolPlugin[socket_ssl][1.0]=org.xmlBlaster.client.protocol.socket.SocketCallbackImpl,SSL=true,compress/type=zlib:stream
ClientCbServerProtocolPlugin[socket_script][1.0]=org.xmlBlaster.client.protocol.socket.SocketCallbackImpl,\
                             compress/type=,\
                             isNullTerminated=true,\
                             parserClass=org.xmlBlaster.util.xbformat.XmlScriptParser
#ClientCbServerProtocolPlugin[RMI][1.0]=org.xmlBlaster.client.protocol.rmi.RmiCallbackServer
ClientCbServerProtocolPlugin[XMLRPC][1.0]=org.xmlBlaster.client.protocol.xmlrpc.XmlRpcCallbackServer
ClientCbServerProtocolPlugin[LOCAL][1.0]=org.xmlBlaster.client.protocol.local.LocalCallbackImpl
#ClientCbServerProtocolPlugin[SOAP][1.0]=org.xmlBlaster.client.protocol.soap.SoapCallbackServer
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/protocol.email.html
ClientCbServerProtocolPlugin[email][1.0]=org.xmlBlaster.client.protocol.email.EmailCallbackImpl,\
                                         mail.smtp.url=smtp://demo:demo@localhost,\
                                         mail.smtp.from=demo@localhost,\
                                         mail.pop3.url=pop3://demo:demo@localhost/INBOX,\
                                         pop3PollingInterval=500,\
                                         holdbackExpireTimeout=20000,\
                                         compress/type=zlib,\
                                         compress/minSize=200,\
                                         messageIdForceBase64=false,\
                                         contentForceBase64=false,\
                                         parserClass=org.xmlBlaster.util.xbformat.XbfParser
#                                         schemaDeclaration=xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='mySchema.xsd',\
#                                         xmlDeclaration=<?xml version='1.0' encoding='UTF-8'?>,\
#                                         mail.subject=Generated email,\
#                                         sendResponseSessionId=false,\
#                                         sendResponseRequestId=false,\
#                                         sendSimpleExceptionFormat=true,\
#                                         parserClass=org.xmlBlaster.util.xbformat.XmlScriptParser
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Customize dispatcher plugin
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/dispatch.plugin.html
DispatchPlugin[Priority][1.0]=org.xmlBlaster.util.dispatch.plugins.prio.PriorizedDispatchPlugin
#DispatchPlugin/defaultPlugin=Priority,1.0
dispatch/connection/DispatchPlugin/defaultPlugin=undef
dispatch/callback/DispatchPlugin/defaultPlugin=undef
#DispatchPlugin/defaultPlugin=undef

#dispatch/callback/DispatchPlugin/defaultPlugin=Priority,1.0
#dispatch/callback/DispatchPlugin/defaultPlugin=undef

# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/dispatch.plugin.priorizedDispatch.html
PriorizedDispatchPlugin/config=<msgDispatch defaultStatus='64k' defaultAction='send'> \
   <onStatus oid='_bandwidth.status' content='64k' defaultAction='destroy'> \
     <action do='send'  ifPriority='7-9'/> \
     <action do='queue'  ifPriority='2-6'/> \
  </onStatus> \
   <onStatus oid='_bandwidth.status' content='2M'> \
     <action do='send'  ifPriority='0-9'/> \
   </onStatus> \
 </msgDispatch>

#
# This is used for the replication
#
DispatchPlugin[ReplManager][1.0]=org.xmlBlaster.contrib.replication.impl.ReplManagerPlugin

#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# MsgDistributor Plugin configuration
#
MsgDistributorPlugin[ConsumableQueue][1.0]=org.xmlBlaster.engine.distributor.plugins.ConsumableQueuePlugin

MsgDistributorPlugin/defaultPlugin=undef,1.0
#MsgDistributorPlugin/defaultPlugin=ConsumableQueue,1.0

#------------------------------------------------------------------------------
# Server side plugins to store single messages persistently 'msgUnitStore'
# Server side setup to recover topics after a server crash 'topicStore'

# Switch to old persistence layer with (see http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.html):
#JdbcStorage[XXXXX]=org.xmlBlaster.util.queue.jdbc.JdbcQueueCommonTablePlugin,\

# Settings for the persistence plugins (StoragePlugin and QueuePlugin) for POSTGRES
#
JdbcStorage[postgres]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                      url=jdbc:postgresql://localhost:5432/test,\
                      user=postgres,\
                      password=,\
                      connectionPoolSize=1,\
                      connectionBusyTimeout=90000,\
                      maxWaitingThreads=300,\
                      tableNamePrefix=XB_,\
                      entriesTableName=ENTRIES,\
                      dbAdmin=true

# Settings for the persistence plugins (StoragePlugin and QueuePlugin) for ORACLE
#
JdbcStorage[Oracle]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                    url=jdbc:oracle:thin:@localhost:1521:xmlb,\
                    user=xmlblaster,\
                    password=secret,\
                    connectionPoolSize=1,\
                    connectionBusyTimeout=90000,\
                    maxWaitingThreads=300,\
                    tableNamePrefix=XB_,\
                    entriesTableName=ENTRIES,\
                    dbAdmin=true

# DB2 express C 9.1, using com.ibm.db2.jcc.DB2Driver
# db2 create database xmlblast
# db2 connect to xmlblast user db2inst1
JdbcStorage[DB2]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                    url=jdbc:db2://linux:50001/xmlblast,\
                    user=db2inst1,\
                    password=secret,\
                    connectionPoolSize=1,\
                    connectionBusyTimeout=90000,\
                    maxWaitingThreads=300,\
                    tableNamePrefix=XB_,\
                    entriesTableName=ENTRIES,\
                    dbAdmin=true

# Settings for the persistence plugins (StoragePlugin and QueuePlugin)
# for FIREBIRD http://www.ibphoenix.com/
JdbcStorage[Firebird]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                      url=jdbc:firebirdsql:localhost/3050:c:/Firebird/Data/mydb.fdb,\
                      user=user,\
                      password=password,\
                      connectionPoolSize=1,\
                      connectionBusyTimeout=90000,\
                      maxWaitingThreads=300,\
                      tableNamePrefix=XB_,\
                      entriesTableName=ENTRIES,\
                      dbAdmin=true

# Settings for the persistence plugins (StoragePlugin and QueuePlugin)
# for Microsoft SQL server:
JdbcStorage[MicrosoftSQLServer]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                  url=jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor;DatabaseName=xmlBlaster,\
                  user=sa,\
                  password=,\
                  connectionPoolSize=5,\
                  connectionBusyTimeout=90000,\
                  maxWaitingThreads=300,\
                  tableNamePrefix=XB_,\
                  entriesTableName=ENTRIES,\
                  colNamePrefix=XB_,\
                  dbAdmin=true

# Settings for the persistence plugins (StoragePlugin and QueuePlugin)
# for Microsoft SQL Server 2005 JDBC (sqljdbc.jar Version 1.0 and earlier):
#JdbcStorage[MicrosoftSQLServer2005]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
#                  url=jdbc:sqlserver://localhost:1433/database=xmlBlaster,\
#                  user=sa,\
#                  password=xxx,\
#                  configurationIdentifier=MicrosoftSQLServer2005,\
#                  connectionPoolSize=5,\
#                  connectionBusyTimeout=90000,\
#                  maxWaitingThreads=300,\
#                  tableNamePrefix=XB_,\
#                  entriesTableName=ENTRIES,\
#                  colNamePrefix=XB_,\
#                  dbAdmin=true

# for Microsoft SQL Server 2005 JDBC (sqljdbc.jar Version 1.2):
# with driver class com.microsoft.sqlserver.jdbc.SQLServerDriver
# Use this for SQLServer 2000 and 2005!
# If you use v1.1 please remove the adaptive setting
JdbcStorage[MicrosoftSQLServer2005]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                  url=jdbc:sqlserver://localhost:1433;responseBuffering=adaptive;databaseName=xmlBlaster,\
                  user=sa,\
                  password=xxx,\
                  configurationIdentifier=MicrosoftSQLServer2005,\
                  connectionPoolSize=5,\
                  connectionBusyTimeout=90000,\
                  maxWaitingThreads=300,\
                  tableNamePrefix=XB_,\
                  entriesTableName=ENTRIES,\
                  colNamePrefix=XB_,\
                  dbAdmin=true

# for Microsoft SQL Server 2005 JDBC (sqljdbc.jar Version 1.2)
# Using the new Database schema xbstore, xbref, xbmeat
# see xmlBlaster/doc/jdbc/migration.txt and admin.txt
#JdbcStorage[MicrosoftSQLServer2005]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
#                  url=jdbc:sqlserver://localhost:1433;responseBuffering=adaptive;databaseName=xmlBlaster,\
#                  user=sa,\
#                  password=xxx,\
#                  configurationIdentifier=MicrosoftSQLServer2005,\
#                  connectionPoolSize=5,\
#                  connectionBusyTimeout=90000,\
#                  maxWaitingThreads=300,\
#                  maxExceptionRetries=6,\
#                  retrySleepMillis=2,\
#                  dbPool.class=org.xmlBlaster.contrib.db.DbWaitingPool,\
#                  dbAdmin=true


# http://jtds.sourceforge.net/faq.html#driverImplementation
# Add jtds-1.2.2.jar to your CLASSPATH
# net.sourceforge.jtds.jdbc.Driver
JdbcStorage[MicrosoftSQLServerJTDS]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                  url=jdbc:jtds:sqlserver://localhost:1433/xmlBlaster,\
                  user=sa,\
                  password=xxx,\
                  configurationIdentifier=MicrosoftSQLServer2005,\
                  connectionPoolSize=5,\
                  maxExceptionRetries=6,\
                  connectionBusyTimeout=90000,\
                  maxWaitingThreads=300,\
                  tableNamePrefix=XB_,\
                  entriesTableName=ENTRIES,\
                  colNamePrefix=XB_,\
                  dbAdmin=true

# for HSQLDB (the default embedded database)
# DB is created in users home tmp directory, e.g. "/home/joe/tmp/xmlBlaster_192_168_1_4_3412.*"
# The term "$_{xmlBlaster_uniqueId}" is replaced by JdbcConnectionPool.java to a unique ID
# for every server or client instance if not given explicitly.
JdbcStorage[HSQLDatabaseEngine]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                  url=jdbc:hsqldb:${user.home}${file.separator}tmp${file.separator}$_{xmlBlaster_uniqueId},\
                  user=sa,\
                  password=,\
                  connectionPoolSize=1,\
                  connectionBusyTimeout=90000,\
                  maxWaitingThreads=300,\
                  tableNamePrefix=XB_,\
                  entriesTableName=ENTRIES,\
                  dbAdmin=true

JdbcStorage[ldbc]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                    url=jdbc:ldbc:postgresql://localhost/test,\
                    user=postgres,\
                    password=,\
                    connectionPoolSize=1,\
                    connectionBusyTimeout=90000,\
                    maxWaitingThreads=300,\
                    tableNamePrefix=XB_,\
                    entriesTableName=ENTRIES,\
                    dbAdmin=true,\
                    cascadeDeleteSupported=false,\
                    nestedBracketsSupported=false,\
                    configurationIdentifier=ldbc

#SQLite: After extending PreparedStatement.setBinaryStream(),ResultSet.getBinaryStream()
#        with Base64 encoding and setting ping() to return 'true'.
#http://www.ch-werner.de/javasqlite/
# Point to dll or shared library (libsqlite_jni.so and libsqlite.so)
#export LD_LIBRARY_PATH=/opt/sqlite-bin/lib
#SQLite.JDBCDriver
#file:/opt/j2sdk1.4.1/jre/lib/ext/sqlite.jar!/SQLite/JDBCDriver.class  + commons-codec.jar (Base64)
JdbcStorage[SQLite]=org.xmlBlaster.util.queue.jdbc.JdbcQueue,\
                      url=jdbc:sqlite:/${user.home}${file.separator}tmp${file.separator}$_{xmlBlaster_uniqueId}.db,\
                      user=sqlite,\
                      password=,\
                      connectionPoolSize=1,\
                      connectionBusyTimeout=90000,\
                      maxWaitingThreads=300,\
                      tableNamePrefix=XB_,\
                      entriesTableName=ENTRIES,\
                      dbAdmin=true


StoragePlugin[JDBC][1.0]=${JdbcStorage[HSQLDatabaseEngine]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[postgres]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[Oracle]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[DB2]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[Firebird]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[MicrosoftSQLServer]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[MicrosoftSQLServer2005]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[MicrosoftSQLServerJTDS]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[ldbc]}
#StoragePlugin[JDBC][1.0]=${JdbcStorage[SQLite]}
StoragePlugin[RAM][1.0]=org.xmlBlaster.engine.msgstore.ram.MapPlugin
StoragePlugin[CACHE][1.0]=org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin,persistentQueue=JDBC,transientQueue=RAM

# Choose the plugins
#persistence/topicStore/defaultPlugin=JDBC,1.0
#persistence/msgUnitStore/defaultPlugin=CACHE,1.0
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Declare existing queue implementation plugins
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/engine.queue.html
QueuePlugin[JDBC][1.0]=${JdbcStorage[HSQLDatabaseEngine]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[postgres]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[Oracle]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[DB2]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[Firebird]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[MicrosoftSQLServer]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[MicrosoftSQLServer2005]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[MicrosoftSQLServerJTDS]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[ldbc]}
#QueuePlugin[JDBC][1.0]=${JdbcStorage[SQLite]}

QueuePlugin[RAM][1.0]=org.xmlBlaster.util.queue.ram.RamQueuePlugin
QueuePlugin[CACHE][1.0]=org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin,persistentQueue=JDBC,transientQueue=RAM

# Choose the plugin (each client can overwrite this in its connect/publish QoS)
#queue/subject/defaultPlugin=CACHE,1.0
#queue/history/defaultPlugin=CACHE,1.0
#queue/callback/defaultPlugin=CACHE,1.0
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Customize queue and persistence properties
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/engine.message.lifecycle.html

# The property with appended 'Cache' is in RAM, the second property is swap space on harddisk

# How many history messages of same key oid (topic) to hold in xmlBlaster (holds references only)
queue/history/maxEntriesCache = 10
queue/history/maxEntries = ${queue/history/maxEntriesCache}

# How big is a callback queue for each client (holds references only)
queue/callback/maxEntriesCache = 1000
queue/callback/maxEntries = ${queue/callback/maxEntriesCache}
queue/callback/maxBytesCache = 200555666
queue/callback/maxBytes = 4147483647

# How big is the topic cache for messages of same oid (here your message content occupies the memory)
# If you have already data in the DB you should NEVER reduce maxEntries or maxBytes below the current existing data
# The values of maxEntriesCache and maxBytesCache however you can reduce or increase on next startup
persistence/msgUnitStore/maxEntriesCache = 10000
persistence/msgUnitStore/maxEntries = 100000000
persistence/msgUnitStore/maxBytesCache = 2097152
persistence/msgUnitStore/maxBytes = 2200147483647

# Tail back queue on client side (contains the real data of all message types)
queue/connection/maxEntriesCache = 1000
queue/connection/maxEntries = 10000000
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# List of all jdbc drivers to initalize for the XmlDBAdapter and for the jdbc persistence queue
# Don't forget to add the corresponding jdbc jar file to your CLASSPATH as well.
# Remove all not needed drivers or set your driver to the beginning to get useful exception texts
# SEE: http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.service.rdbms.html
# SEE: http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.commontable.html
JdbcDriver.drivers=org.hsqldb.jdbcDriver:\
                   org.ldbc.jdbc.jdbcDriver:\
                   com.mckoi.JDBCDriver:\
                   sun.jdbc.odbc.JdbcOdbcDriver:\
                   ORG.as220.tinySQL.dbfFileDriver:\
                   oracle.jdbc.driver.OracleDriver:\
                   com.ibm.db2.jcc.DB2Driver:\
                   com.microsoft.jdbc.sqlserver.SQLServerDriver:\
                   com.microsoft.sqlserver.jdbc.SQLServerDriver:\
                   net.sourceforge.jtds.jdbc.Driver:\
                   com.mysql.jdbc.Driver:\
                   org.postgresql.Driver:\
                   org.firebirdsql.jdbc.FBDriver:\
                   de.sag.jdbc.adabasd.ADriver:\
                   com.sybase.jdbc2.jdbc.SybDriver:\
                   SQLite.JDBCDriver

# Now you can configure your database types.
# Note: In the case below the default [...] key is the returned value of
#       JDBC DatabaseMetaData.getDatabaseProductName()
#       It can be re-configured with 'configurationIdentifier=...'
JdbcDriver.mapping[HSQLDatabaseEngine]=string=VARCHAR,longint=BIGINT,int=INTEGER,blob=BINARY,boolean=CHAR
JdbcDriver.mapping[postgres]=string=text,longint=bigint,int=integer,boolean=char(1)
JdbcDriver.mapping[Oracle]=string=VARCHAR(128),longint=NUMBER(19),int=NUMBER(10),blob=BLOB,boolean=CHAR(1)
#DB2 please do manually:
# CREATE TABLE XB_ENTRIES (dataId bigint not null , queueName varchar(128) not null , prio integer, flag varchar(128), durable char(1), byteSize bigint, blob blob, PRIMARY KEY (dataId, queueName))
#JdbcDriver.mapping[DB2]=string=VARCHAR(128),longint=BIGINT,int=INTEGER,blob=BLOB,boolean=CHAR(1),text=VARCHAR(128)
JdbcDriver.mapping[Firebird]=string=VARCHAR(128),"longint=decimal(18,0)",int=integer,boolean=CHAR(1),blob=blob,blobVarName=msg
JdbcDriver.mapping[MicrosoftSQLServer]=string=VARCHAR(128),longint=numeric (19),boolean=char(1),blob=image
JdbcDriver.mapping[MicrosoftSQLServer2005]=string=VARCHAR(128),longint=numeric (19),boolean=char(1),blob=image
JdbcDriver.mapping[ldbc]=string=varchar(128),"longint=decimal(19,0)",int=int,boolean=char(1),blob=blob,blobVarName=ablob,keyAttr=not null

#------------------------------------------------------------------------------
# Add here your MIME based plugins which allow to filter messages you
# subscribed with subscribe() or access with get() with your own supplied rules.
# SEE: http://www.xmlblaster.org/xmlBlaster/doc/requirements/mime.plugin.accessfilter.html
MimeAccessPlugin[ContentLenFilter][1.0]=org.xmlBlaster.engine.mime.demo.ContentLenFilter
MimeAccessPlugin[GnuRegexFilter][1.0]=org.xmlBlaster.engine.mime.regex.GnuRegexFilter
MimeAccessPlugin[XPathFilter][1.0]=org.xmlBlaster.engine.mime.xpath.XPathFilter
MimeAccessPlugin[Sql92Filter][1.0]=org.xmlBlaster.engine.mime.sql92.Sql92Filter,cacheQuery=false
MimeAccessPlugin[DropIfNotDeliverable][1.0]=org.xmlBlaster.contrib.mime.DropIfNotDeliverable
MimeAccessPlugin[DropIfNotDeliverableUniqueOnly][1.0]=org.xmlBlaster.contrib.mime.DropIfNotDeliverableUniqueOnly
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Add here your MIME based plugins which allow to filter published messages.
# SEE: http://www.xmlblaster.org/xmlBlaster/doc/requirements/mime.plugin.publishfilter.html
# MimePublishPlugin[PublishLenChecker][1.0]=org.xmlBlaster.engine.mime.demo.PublishLenChecker,DEFAULT_MAX_LEN=200
# MimePublishPlugin[TestDelayer][1.0]=org.xmlBlaster.engine.mime.demo.PublishDelayer,delayMillis=200,exceptionErrorCode=,filterKeyOid=
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Customize clustering
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/cluster.html
LoadBalancerPlugin[RoundRobin][1.0]=org.xmlBlaster.engine.cluster.simpledomain.RoundRobin
MapMsgToMasterPlugin[DomainToMaster][1.0]=org.xmlBlaster.engine.cluster.simpledomain.DomainToMaster,DEFAULT_DOMAIN=dummy
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Telnet access to xmlBlaster for administration
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/admin.telnet.html
#admin.remoteconsole.port=2702
#admin.remoteconsole.sessionTimeout=600000
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Deprecated! Switched off since 1.3! Please use admin.events framework instead
#
# Switch on/off internal messages, events sent on client login and logout
# SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/engine.LoginLogoutEvent.html
# SEE: http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.events.html
loginEvent=false
logoutEvent=false
userListEvent=false
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# When an XmlBlasterException is thrown, how to format the getMessage() string, see:
# http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.html
XmlBlasterException.logFormat=XmlBlasterException errorCode=[{0}] serverSideException={3} location=[{2}] message=[{4} : {8}] [See URL {9}]
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# JAXP parsers.
# See http://www.xmlblaster.org/FAQ.html#xml-parser
# See http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/DocumentBuilderFactory.html#newInstance()
# Currently only crimson is actually possible to use for JDK 1.4
# For JDK 1.5 the default delivered parser is used, you can overwrite this here:
#javax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl
#javax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl

# For IBM JDK 1.4 or IBM JDK 1.5 uncomment the following lines (or use a jaxp.properties):
#javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
#javax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
#javax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------
# Any other custom properties can be added here.
# These are available through the API e.g.
# String str = Global.instance().getProperty().get("MyApp.mykey", "defaultValue");
#------------------------------------------------------------------------------

