# ------------------------------------------------------------------- # $Id$ # # This is the configuration file for Turbine. # # Note that strings containing "," (comma) characters must backslash # escape the comma (i.e. '\,') # # ------------------------------------------------------------------- # ------------------------------------------------------------------- # # S Y S T E M P R O P E R T I E S # # ------------------------------------------------------------------- # Your mail server for outgoing email. # # Default: null system.mail.host=localhost # SMTP-From header for your outgoing messages # # All failed delivery messages will be returned to this address. # If unset, these messages will be sent to the address in the # From header (standard behaviour) # # Default: null system.mail.smtp.from= # ------------------------------------------------------------------- # # L O G G I N G # # ------------------------------------------------------------------- # We use Log4J for all Turbine logging and we embed the log4j # properties within our application configuration. # # NOTE: # The presence of ${webapp} in the logging configuration # is not a mistake. Internally the value of ${webapp} # is set so that you can use it with standard log4j # properties to get logs to appear in your # webapp space. # ------------------------------------------------------------------- # This first category is required and the category # must be named 'default'. This is used for all logging # where an explicit category is not specified. log4j.category.default = ALL, default log4j.appender.default = org.apache.log4j.FileAppender log4j.appender.default.file = ./turbine.log log4j.appender.default.layout = org.apache.log4j.PatternLayout log4j.appender.default.layout.conversionPattern = %d [%t] %-5p %c - %m%n log4j.appender.default.append = false # This category is used in the BasePeer class. All # SQL generated will be logged if the category # priority is set to DEBUG log4j.category.sql = DEBUG, sql log4j.appender.sql = org.apache.log4j.FileAppender log4j.appender.sql.file = ./sql.log log4j.appender.sql.layout = org.apache.log4j.PatternLayout log4j.appender.sql.layout.conversionPattern = %d [%t] %-5p %c - %m%n log4j.appender.sql.append = false # ------------------------------------------------------------------- # # M O D U L E C A C H I N G # # ------------------------------------------------------------------- # This determines whether or not to cache the modules in memory. For # development, turn this off. For production, turn this on. # # Default: false # ------------------------------------------------------------------- module.cache=false # If module.cache=true, then how large should we make the hashtables # by default. action.cache.size=20 layout.cache.size=10 navigation.cache.size=10 page.cache.size=5 screen.cache.size=50 scheduledjob.cache.size=10 # ------------------------------------------------------------------- # # M O D U L E P A C K A G E S # # ------------------------------------------------------------------- # This is the "classpath" for Turbine. In order to locate your own # modules, you should add them to this path. For example, if you have # com.company.actions, com.company.screens, com.company.navigations, # then this setting would be "com.company,org.apache.turbine.modules". # This path is searched in order. For example, Turbine comes with a # screen module named "Login". If you wanted to have your own screen # module named "Login", then you would specify the path to your # modules before the others. # # Default: org.apache.turbine.modules # ------------------------------------------------------------------- module.packages=org.tigris.scarab,org.apache.turbine.flux.modules # These are the default modules to emulate the Turbine # 2.1 page/layout/nav/screen system. module.default.actions = TemplateAction module.default.screens=TemplateScreen module.default.layouts = TemplateLayout module.default.navigations=TemplateNavigation # You can define any module type you wish here and # they will be added to Turbine's module processing # system. You must provide a default module! # # module.default.woogy = Boogie # module.default.floogy = Moogie pipeline.default = org.tigris.scarab.pages.ScarabPage pipeline.default.targetModuleType = screens template.default = /Default template.default.extension = vm # ------------------------------------------------------------------- # # F R A M E W O R K S E T T I N G S # # ------------------------------------------------------------------- # The are settings that control the behaviour of the framework, # such as determining whether a template system is in use, what # the default templates and screens are and session handling settings. # ------------------------------------------------------------------- # This is the template that is shown on an incorrect login attempt. # Setting this property will override any value of screen.login specfied # below. # # Default: Login template.login=Login.vm # Used to set the template homepage if you are using a template # layout. # # Default: /index.wm template.homepage=Index.vm # This is the template that is used by the respective Template based # ErrorScreen for displaying the error. If you are not using a Template based # ErrorScreen, then this is ignored. # # Default: /Error.wm template.error=Error.vm # This is the default action to log a user in. # Default: LoginUser action.login=Login # This is the default action to log a user out. action.logout=Logout # This is the default action to validate whether or not a session is # valid. For example, if you want to make sure if a user has already # logged in or not. # # Default: SessionValidator action.sessionvalidator=sessionvalidator.TemplateSessionValidator # This is the timeout in seconds for sessions. If left commented out, the # servlet container's default timeout will be left as is. # session.timeout=1800 # This is the default action that builds up the AccessControlList for # the individual users session. action.accesscontroller=AccessController # Set the default Doctype. The default Doctype can be set by using # the single strings: Html40Strict, Html40Transitional, or # Html40Frameset. Additionally the default can be supplied as two # strings separated by a comma giving the DTD and URI. # # Default: ignored if not set to some value. default.doctype=Html40Transitional # ------------------------------------------------------------------- # # J N D I C O N T E X T S # # ------------------------------------------------------------------- # This indicates whether Turbine should try to create JNDI contexts. # # Default: false # # contexts=true # These are the JNDI context properties. Each context's properties # are defined by the properties beginning with context.name. # # Default: none # # Example: The following will create a JNDI context named "name" in # the data.contexts Hashtable. It will point at the RMI registry on # localhost running on port 1099, and will use # com.sun.jndi.rmi.registry.RegistryContextFactory as the initial # context factory: # # context.name.java.naming.provider.url=rmi://localhost:1099 # context.name.java.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory # ------------------------------------------------------------------- # # M E S S A G E S # # ------------------------------------------------------------------- # Note that strings containing "," (comma) characters must backslash # escape the comma (i.e. '\,') # The message that can be displayed before a user logs in. login.message=Thank you for your visit. Please log into the system. # The message that can be displayed when no screen is defined. login.message.noscreen=There has been an error. Your session is valid but the screen variable is not defined. # The message that can be displayed when a user enters an incorrect # password or username. login.error=Sorry your username or password is incorrect! # The message that can be displayed when a user logs out. logout.message=Thank you for using the system. Please come back soon. # ------------------------------------------------------------------- # # S E C U R E S O C K E T S L A Y E R # # ------------------------------------------------------------------- # Whether the web server is able to use SSL. Links in Turbine can # check this property to determine if SSL can be used. # # Default: true # ------------------------------------------------------------------- use.ssl=true # ------------------------------------------------------------------- # # S E R V I C E S # # ------------------------------------------------------------------- # Classes for Turbine Services should be defined here. # Format: services.[name].classname=[implementing class] # # To specify properties of a service use the following syntax: # service.[name].[property]=[value] # # The order that these services is listed is important! The # order that is stated here is the order in which the services # will be initialized. Keep this is mind if you have services # that depend on other services during initialization. # ------------------------------------------------------------------- services.FactoryService.classname=org.apache.fulcrum.factory.TurbineFactoryService services.PoolService.classname=org.apache.fulcrum.pool.TurbinePoolService services.MimeTypeService.classname=org.apache.fulcrum.mimetype.TurbineMimeTypeService services.SchedulerService.classname=org.apache.fulcrum.schedule.TurbineSchedulerService #services.XmlRpcService.classname=org.apache.fulcrum.xmlrpc.TurbineXmlRpcService services.UploadService.classname=org.apache.fulcrum.upload.TurbineUploadService services.SecurityService.classname=org.apache.fulcrum.security.impl.db.DBSecurityService services.DatabaseService.classname=org.apache.fulcrum.db.TurbineDatabaseService #services.XSLTService.classname=org.apache.fulcrum.xslt.TurbineXSLTService #services.BSFService.classname=org.apache.fulcrum.bsf.TurbineBSFService services.GlobalCacheService.classname=org.apache.fulcrum.cache.TurbineGlobalCacheService services.RunDataService.classname=org.apache.turbine.services.rundata.TurbineRunDataService services.LocalizationService.classname=org.apache.turbine.services.localization.TurbineLocalizationService services.PullService.classname=org.apache.turbine.services.pull.TurbinePullService services.IntakeService.classname=org.apache.turbine.services.intake.TurbineIntakeService services.TemplateService.classname=org.apache.turbine.services.template.TurbineTemplateService # Turn on the appropriate template service. services.VelocityService.classname=org.apache.turbine.services.velocity.TurbineVelocityService # ------------------------------------------------------------------- # # D A T A B A S E S E R V I C E # # ------------------------------------------------------------------- # These are your database settings. Look in the # org.apache.turbine.util.db.pool.* packages for more information. # The default driver for Turbine is for MySQL. # # The parameters to connect to the default database. You MUST # configure these properly. # ------------------------------------------------------------------- services.DatabaseService.earlyInit = true services.DatabaseService.database.default=default services.DatabaseService.database.default.driver=org.gjt.mm.mysql.Driver services.DatabaseService.database.default.url=jdbc:mysql://localhost:3306/scarab services.DatabaseService.database.default.username= services.DatabaseService.database.default.password= # The number of database connections to cache per ConnectionPool # instance (specified per database). services.DatabaseService.database.default.maxConnections=80 # The amount of time (in milliseconds) that database connections will be # cached (specified per database). # # Default: one hour = 60 * 60 * 1000 services.DatabaseService.database.default.expiryTime=3600000 # The amount of time (in milliseconds) a connection request will have to wait # before a time out occurs and an error is thrown. # # Default: ten seconds = 10 * 1000 services.DatabaseService.database.default.connectionWaitTimeout=10000 # The interval (in milliseconds) between which the PoolBrokerService logs # the status of it's ConnectionPools. # # Default: No logging = 0 = 0 * 1000 services.DatabaseService.database.logInterval=0 # These are the supported JDBC drivers and their associated Turbine # adaptor. These properties are used by the DBFactory. You can add # all the drivers you want here. services.DatabaseService.database.adaptor=DBMM services.DatabaseService.database.adaptor.DBMM=org.gjt.mm.mysql.Driver # Determines if the quantity column of the IDBroker's id_table should # be increased automatically if requests for ids reaches a high # volume. services.DatabaseService.idbroker.cleverquantity=true # ------------------------------------------------------------------- # # R U N D A T A S E R V I C E # # ------------------------------------------------------------------- # Default implementations of base interfaces for request processing. # Additional configurations can be defined by using other keys # in the place of the key. # ------------------------------------------------------------------- services.RunDataService.default.run.data=org.apache.turbine.services.rundata.DefaultTurbineRunData services.RunDataService.default.parameter.parser=org.apache.turbine.util.parser.DefaultParameterParser services.RunDataService.default.cookie.parser=org.apache.turbine.util.parser.DefaultCookieParser # ------------------------------------------------------------------- # # C A C H E S E R V I C E # # ------------------------------------------------------------------- # Interval at which the cache will be checked. The default is # 5000ms or 5 seconds. services.GlobalCacheService.cacheCheckFrequency = 5000 # ------------------------------------------------------------------- # # B S F S E R V I C E # # ------------------------------------------------------------------- services.BSFService.scriptsDirectory = WEB-INF/scripts services.BSFService.defaultExtension = py # ------------------------------------------------------------------- # # P U L L S E R V I C E # # ------------------------------------------------------------------- # These are the properties for the Pull Service, the service # that works in conjuction with the Turbine Pull Model API. # ------------------------------------------------------------------- # This determines whether the non-request tools are refreshed # on each request (request tools aren't ever, because they're # instantiated for the request only anyway). services.PullService.toolsPerRequestRefresh=true # These are tools that are placed in the context by the service # These tools will be made available to all your # templates. You list the tools in the following way: # # services.PullService.tool.. = # # is the tool scope: global, request, session # or persistent (see below for more details) # is the name of the tool in the context # # You can configure the tools in this way: # services.PullService.tool.. = # # So if you find "global", "request", "session" or "persistent" as second # part, it is a configuration to put a tool into the toolbox, else it is a # tool specific configuration. # # For example: # # services.PullService.tool.global.ui = org.apache.turbine.util.pull.UIManager # services.PullService.tool.global.mm = org.apache.turbine.util.pull.MessageManager # services.PullService.tool.request.link = org.apache.turbine.util.template.TemplateLink # services.PullService.tool.request.page = org.apache.turbine.util.template.TemplatePageAttributes # # Then: # # tool.ui.skin = default # # configures the value of "skin" for the "ui" tool. # # Tools are accessible in all templates by the given # to the tool. So for the above listings the UIManager would # be available as $ui, the MessageManager as $mm, the TemplateLink # as $link and the TemplatePageAttributes as $page. # # You should avoid using tool names called "global", "request", # "session" or "persistent" because of clashes with the possible Scopes. # # Scopes: # # global: tool is instantiated once and that instance is available # to all templates for all requests. Tool must be threadsafe. # # request: tool is instantiated once for each request (although the # PoolService is used to recycle instances). Tool need not # be threadsafe. # # session: tool is instantiated once for each user session, and is # stored in the user's temporary hashtable. Tool should be # threadsafe. # # persistent: tool is instantitated once for each use session, and # is stored in the user's permanent hashtable. This means # for a logged in user the tool will be persisted in the # user's objectdata. Tool should be threadsafe and # Serializable. # # Defaults: none services.PullService.tool.request.link=org.tigris.scarab.util.ScarabLink services.PullService.tool.request.page=org.apache.turbine.util.template.TemplatePageAttributes services.PullService.tool.request.content=org.apache.turbine.util.ContentURI services.PullService.tool.request.flux=org.apache.turbine.flux.tools.FluxTool # These are intake tools. services.PullService.tool.request.om=org.apache.turbine.om.OMTool services.PullService.tool.request.intake=org.apache.turbine.services.intake.IntakeTool services.PullService.tool.global.ui=org.apache.turbine.services.pull.util.UIManager services.PullService.earlyInit = true # The UI Manager will allow you to skin your Turbine # application using simple properties files that are # located in the WEBAPP/resources/ui/skins/ directory # hierarchy. #This is a remain thorn in our side. How to provide properties #for pull tools elegantly. This is not good. tool.ui.skin=default # ------------------------------------------------------------------- # # T E M P L A T E S E R V I C E # # ------------------------------------------------------------------- # Roughly, the number of templates in each category. # # Defaults: layout=2, navigation=10, screen=50 services.TemplateService.default.page = ScarabPage services.TemplateService.default.screen=TemplateScreen services.TemplateService.default.layout = TemplateLayout services.TemplateService.default.navigation=TemplateNavigation services.TemplateService.default.error.screen = Error services.TemplateService.layout.cache.size=2 services.TemplateService.navigation.cache.size=10 services.TemplateService.screen.cache.size=50 # ------------------------------------------------------------------- # # V E L O C I T Y S E R V I C E # # ------------------------------------------------------------------- # The location of Velocity configuration file, relative to webapp root # These properties will override the default properties set by Velocity. # You should specify the path to the templates directories as well as # the path to the log file and they should also be relative to webapp root services.VelocityService.template.extension=vm services.VelocityService.default.page.template = /Default.vm services.VelocityService.default.layout.template = /Default.vm services.VelocityService.runtime.log=/logs/velocity.log #services.VelocityService.input.encoding=UTF-8 services.VelocityService.velocimacro.library = flux/GlobalMacros.vm,GlobalMacros.vm services.VelocityService.resource.loader = file services.VelocityService.file.resource.loader.description = Velocity File Resource Loader services.VelocityService.file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader services.VelocityService.file.resource.loader.path = /templates,/templates/flux services.VelocityService.file.resource.loader.cache = false services.VelocityService.file.resource.loader.modificationCheckInterval = 2 services.VelocityService.resource.loader = classpath services.VelocityService.classpath.resource.loader.description = Velocity Classpath Resource Loader services.VelocityService.classpath.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader services.VelocityService.velocimacro.permissions.allow.inline.to.replace.global=true services.VelocityService.earlyInit = true # ------------------------------------------------------------------- # # U P L O A D S E R V I C E # # ------------------------------------------------------------------- # Whether the files should be automatically picked up by # ParameterParser. services.UploadService.automatic=true # # The directory where files will be temporarily stored. # services.UploadService.repository=. # # The maximum size of a request that will be processed. # services.UploadService.size.max=16777216 # # The maximum size of a request that will have it's elements cached in # memory by TurbineUploadService class. # services.UploadService.size.threshold=1048576 # ------------------------------------------------------------------- # # L O C A L I Z A T I O N S E R V I C E # # ------------------------------------------------------------------- # Default ResourceBundle and language/country codes used by the # TurbineLocalizationService. # services.LocalizationService.locale.default.bundle=MyBundle services.LocalizationService.locale.default.language=en services.LocalizationService.locale.default.country=US # # This will set the charset= portion of the ContentType: header. # Leave commented out unless you want to return stuff as a different # charset. # # services.LocalizationService.locale.default.charset= # ------------------------------------------------------------------- # # M I M E T Y P E S E R V I C E # # ------------------------------------------------------------------- # This property specifies a file containing mappings between MIME # content types and the corresponding file name extensions. The # service itself contains a hardcoded set of most common mappings. # The file must use the same syntax as the mime.types file of # the Apache Server, i.e. # ... # #services.MimeTypeService.mime.types=/WEB-INF/conf/mime.types # This property specifies a file containing mappings between locales # and the corresponding character encodings. The service itself # contains a hardcoded set of most common mappings. # The file should use the Java property file syntax, i.e. # = # #services.MimeTypeService.charsets=/WEB-INF/conf/charset.properties # ------------------------------------------------------------------- # # S C H E D U L E R S E R V I C E # # ------------------------------------------------------------------- # # Set enabled to true to start the scheduler. # # Default = false # services.SchedulerService.earlyInit = false # ------------------------------------------------------------------- # # S E C U R I T Y S E R V I C E # # ------------------------------------------------------------------- # # This is the class that implements the User interface. # You want to override this setting only if you want your User # implementation to provide application specific addtional # functionality. # # Default: org.apache.fulcrum.security.impl.db.entity.TurbineUser # services.SecurityService.user.class=org.tigris.scarab.om.ScarabUserImpl # # This setting is DBSecurityService specific - this class is consulted for the names # of the columns in the users' tables for the purpose of creating join queries. # If you use your own User implementation in conjunction with DBSecurityService, # it's peer class must implement org.apache.turbine.om.security.peer.UserPeer interface, # and you need to specify the name of the peer class here. # # Defalut: org.apache.turbine.om.security.peer.TurbineUserPeer # services.SecurityService.userPeer.class=org.tigris.scarab.om.ScarabUserImplPeer # # This is the class that implements UserManager interface. # Override this setting if you want your User information stored # on a different medium (LADP directory is a good example). # Default implementation uses Peers and a relational database . # services.SecurityService.user.manager=org.apache.fulcrum.security.impl.db.DBUserManager # # This is used by the SecurityService to make the password checking # secure. When enabled, passwords are transformed by a one-way # function into a sequence of bytes that is base64 encoded. # It is impossible to guess the plain-text form of the password # from the representation. When user logs in, the entered password # is transformed the same way and then compared with stored value. # # Default: false # services.SecurityService.secure.passwords=true # # This property lets you choose what digest algorithm will be used # for encrypting passwords. Check documentation of your JRE for # available algorithms. # # Default: SHA # services.SecurityService.secure.passwords.algorithm=SHA # ------------------------------------------------------------------- # # X M L R P C S E R V I C E # # ------------------------------------------------------------------- # This property specifies which class should be used to parse # xml for XmlRpc functionality. # # Default: org.apache.xerces.parsers.SAXParser services.XmlRpcService.parser=org.apache.xerces.parsers.SAXParser # This property specifies which port the server part of the XmlRpc # should listen, if it is active. # # Default: 12345 services.XmlRpcService.port=12345 # If any classes are specified here, the Service will create an # instance of them here and start up a listener on the specified # port. # # Note that the handlers demonstrated are not very useful. You # will have to invent your own services. They do however # illustrate that any class with a default constructor can be # added here # # The handler parameter without further extension determines # the default handler for the service # # Default: no classes are specified by default #services.XmlRpcService.handler.$default=java.util.Hashtable #services.XmlRpcService.handler.stringhandler=java.lang.String # The following properties allow the transfer of data between # separate Turbine applications running on different servers. # This allows B2B type behavior such as sending database # updates in the form of XML or whatever type of data # that needs to be shared between Turbine applications # running on separate servers. services.XmlRpcService.handler.file = org.apache.fulcrum.xmlrpc.util.FileHandler services.XmlRpcService.paranoid = false services.XmlRpcService.acceptClient = 192.168.1.* services.XmlRpcService.denyClient = # Do we want a secure server services.XmlRpcService.secure.server = false # Secure server options services.XmlRpcService.secure.server.option.java.protocol.handler.pkgs = \ com.sun.net.ssl.internal.www.protocol services.XmlRpcService.secure.server.option.security.provider = \ com.sun.net.ssl.internal.ssl.Provider services.XmlRpcService.secure.server.option.security.protocol = TLS # You probably want to keep your key stores and trust stores # clear out of your webapp. services.XmlRpcService.secure.server.option.javax.net.ssl.keyStore = /tmp/keystore services.XmlRpcService.secure.server.option.javax.net.ssl.keyStoreType = jks services.XmlRpcService.secure.server.option.javax.net.ssl.keyStorePassword = password services.XmlRpcService.secure.server.option.javax.net.ssl.trustStore = /tmp/truststore services.XmlRpcService.secure.server.option.javax.net.ssl.trustStoreType = jks services.XmlRpcService.secure.server.option.javax.net.ssl.trustStorePassword = password services.XmlRpcService.secure.server.option.sun.ssl.keymanager.type = SunX509 services.XmlRpcService.secure.server.option.sun.ssl.trust.manager.type = SunX509 # These values should be set to 'all' for debugging purposes. services.XmlRpcService.secure.server.option.javax.net.debug = none services.XmlRpcService.secure.server.option.java.security.debug = none services.XmlRpcService.earlyInit = true # ------------------------------------------------------------------- # # P O O L S E R V I C E # # ------------------------------------------------------------------- # Default capacity of pools of the Object pooling service. # # Default: 128 services.PoolService.pool.capacity = 128 # Class specific capacities used instead of the default if specified. # #services.PoolService.pool.capacity.org.apache.turbine.services.rundata.DefaultTurbineRunData=512 # ------------------------------------------------------------------- # # F A C T O R Y S E R V I C E # # ------------------------------------------------------------------- # A comma separated list of classloaders (very optional) # # Example: org.foo.bar.MyClassLoader, org.ack.joe.YourClassLoader # #services.FactoryService.class.loaders= # Customized factories to be used instead of the default factory. # E.g. to instantiate XML parsers, SSL sockets, etc., which require # specific instantiation not supported by the default factory. # The property name is prefixed with "factory" followed by the # name of the production class. The value is the class name of # the factory implementing the Factory interface. The factory # will be instantiated by using the service itself. # # Examples: # # services.FactoryService.factory.javax.xml.parsers.DocumentBuilder=org.foo.xml.DomBuilderFactory # services.FactoryService.factory.javax.xml.parsers.SAXParser=org.foo.xml.SaxParserFactory # services.FactoryService.factory.java.net.ServerSocket=org.foo.net.SslServerSocketFactory # ------------------------------------------------------------------- # # I N T A K E S E R V I C E # # ------------------------------------------------------------------- # The location of the xml file specifying valid inputs # # Example: org.foo.bar.MyClassLoader, org.ack.joe.YourClassLoader # services.IntakeService.xml.path=WEB-INF/conf/intake.xml #-------------------------------------------------------------------- # # P A R A M E T E R P A R S E R # #-------------------------------------------------------------------- # # This variable controls the case folding applied to URL variable # names. # # Allowed values: none, lower, upper # Default: lower # url.case.folding=lower # ------------------------------------------------------------------- # # A D D I T I O N A L P R O P E R T I E S # # ------------------------------------------------------------------- # The full path name to an additional properties file. Properties in # this file will be included in this property set. Duplicate name # values will be replaced, so be careful. # # Default: none # ------------------------------------------------------------------- include=./Scarab.properties include=./Flux.properties