# # Copyright 2014 Internet2 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # Grouper Hibernate Configuration # $Id: grouper.hibernate.example.properties,v 1.9 2009-08-11 20:18:09 mchyzer Exp $ # ######################################## ## Config chaining hierarchy ## The grouper hibernate config uses Grouper Configuration Overlays (documented on wiki) ## By default the configuration is read from grouper.hibernate.base.properties ## (which should not be edited), and the grouper.hibernate.properties overlays ## the base settings. See the grouper.hibernate.base.properties for the possible ## settings that can be applied to the grouper.hibernate.properties ######################################## # comma separated config files that override each other (files on the right override the left) # each should start with file: or classpath: # e.g. classpath:grouper.hibernate.base.properties, file:c:/temp/myFile.properties grouper.hibernate.config.hierarchy = classpath:grouper.hibernate.base.properties, classpath:grouper.hibernate.properties # seconds between checking to see if the config files are updated grouper.hibernate.config.secondsBetweenUpdateChecks = 60 ######################################## ## DB settings ######################################## # e.g. mysql: jdbc:mysql://localhost:3306/grouper?useSSL=false # e.g. p6spy (log sql): [use the URL that your DB requires] # e.g. oracle: jdbc:oracle:thin:@server.school.edu:1521:sid # e.g. hsqldb (a): jdbc:hsqldb:dist/run/grouper;create=true # e.g. hsqldb (b): jdbc:hsqldb:hsql://localhost:9001/grouper # e.g. postgres (a): jdbc:postgresql://localhost:5432/database # e.g. postgres (b): jdbc:postgresql://localhost:5432/database?currentSchema=mySchema #hibernate.connection.url = jdbc:hsqldb:hsql://localhost:9001/grouper hibernate.connection.url.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_DATABASE_URL')} #hibernate.connection.username = sa hibernate.connection.username.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_DATABASE_USERNAME')} # If you are using an empty password, depending upon your version of # Java and Ant you may need to specify a password of "". # Note: you can keep passwords external and encrypted: https://bugs.internet2.edu/jira/browse/GRP-122 #hibernate.connection.password = hibernate.connection.password.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_DATABASE_PASSWORD')} ################ BELOW HERE YOU GENERALLY DO NOT NEED TO CHANGE #################### # Leave blank to autodetect based on URL, or specify # Hibernate3. # e.g. org.hibernate.dialect.Oracle10gDialect, org.hibernate.dialect.HSQLDialect # e.g. org.hibernate.dialect.PostgreSQLDialect ,org.hibernate.dialect.MySQL5Dialect # e.g. org.hibernate.dialect.SQLServerDialect hibernate.dialect = # see http://ehcache.org/documentation/user-guide/hibernate#Configure-Ehcache-as-the-Second-Level-Cache-Provider # Hibernate 3.0 - 3.2 # hibernate.cache.provider_class = org.hibernate.cache.EhCacheProvider # Hibernate 3.3+ # hibernate.cache.region.factory_class = net.sf.ehcache.hibernate.EhCacheRegionFactory # Hibernate 4.0+ # hibernate.cache.region.factory_class = org.hibernate.cache.ehcache.EhCacheRegionFactory hibernate.cache.region.factory_class = edu.internet2.middleware.grouper.cache.GrouperEhcacheRegionFactory # number of seconds that database configs are cached grouper.cache.database.configs.seconds = 120 # # Generic Hibernate Configuration # hibernate.cache.use_query_cache = true # leave blank to autodetect based on URL # e.g. mysql: com.mysql.jdbc.Driver # e.g. p6spy (log sql): com.p6spy.engine.spy.P6SpyDriver # for p6spy, put the underlying driver in spy.properties # e.g. oracle: oracle.jdbc.driver.OracleDriver # e.g. hsqldb: org.hsqldb.jdbcDriver # e.g. postgres: org.postgresql.Driver # e.g. mssql: com.microsoft.sqlserver.jdbc.SQLServerDriver hibernate.connection.driver_class = hibernate.connection.autocommit = false # Use c3p0 connection pooling (since dbcp not supported in hibernate anymore) # http://www.hibernate.org/214.html, http://www.hibernate.org/hib_docs/reference/en/html/session-configuration.html hibernate.c3p0.max_size = 100 hibernate.c3p0.min_size = 0 #seconds hibernate.c3p0.timeout = 100 hibernate.c3p0.max_statements = 0 hibernate.c3p0.idle_test_period = 100 hibernate.c3p0.acquire_increment = 1 hibernate.c3p0.validate = false #What to do if there are connection problems - see http://www.mchange.com/projects/c3p0/index.html#configuration_properties #These settings are designed to cause exceptions sooner rather than later so end users are not left with a hanging UI. Once the database #is available again a connection will be made witout further intervention #If tou get intermittent connection problems in the UI even though the database is OK try increasing the max_size setting above and #tune the settings below hibernate.c3p0.acquireRetryAttempts=5 hibernate.c3p0.acquireRetryDelay=2000 hibernate.c3p0.checkoutTimeout=180000 #hibernate.c3p0.debugUnreturnedConnectionStackTraces = false # in seconds, if connections are removed from the pool for longer than this, # and debugUnreturnedConnectionStackTraces is true, then log the stack of who took the connection (and didnt return it) #hibernate.c3p0.unreturnedConnectionTimeout = 30 hibernate.jdbc.use_streams_for_binary = true hibernate.max_fetch_depth = 1 hibernate.show_sql = false hibernate.jdbc.batch_size = 200 hibernate.connection.isolation = 2 hibernate.jdbc.fetch_size = 1000 ####################################### ## Initialization settings ####################################### # what version should we auto install DDL up to. You should put the major and minor version here (e.g. 2.5.*). Or you could go to a build number if you like, # or nothing to not auto DDL. e.g. 2.5.32 or 2.5.* # {valueType: "string"} registry.auto.ddl.upToVersion.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_AUTO_DDL_UPTOVERSION')} # if you are consciously not doing auto-ddl, set this to true # {valueType: "boolean", required: true} registry.auto.ddl.dontRemindMeAboutUpToVersion = false # its ok if a WS is a little behind on DDL as the UI. If the major and minor version are the same then its not considered a mismatch # {valueType: "boolean", required: true} registry.auto.ddl.okIfSameMajorAndMinorVersion = true # if should ignore ddl checks at startup # {valueType: "boolean", required: true} registry.auto.ddl.ignoreAtStartup = false # if an exception should be throw on morph errors when grouper starts up grouper.ignoreMorphErrorsOnStartup = false # if Grouper should delay at startup, e.g. to wait for a database to start # {valueType: "integer", defaultValue: "0"} grouper.start.delay.seconds.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_START_DELAY_SECONDS')} ####################################### ## The UI servlet will be loaded so that the UI can be run in Tomee ####################################### grouper.is.ui.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_UI')} # The WS servlet will be loaded so that the WS can be run in Tomee grouper.is.ws.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_WS')} # The SCIM servlet will be loaded so that the SCIM can be run in Tomee grouper.is.scim.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_SCIM')} # The daemon thread will be started in Tomee grouper.is.daemon.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_DAEMON')} # if grouper should how mock services to test provisioning grouper.is.mockServices.elConfig = ${elUtils.processEnvVarOrFile('GROUPER_MOCK_SERVICES')} # UI basic auth is for quick start. Set to false when you migrate to shib or something else grouper.is.ui.basicAuthn.elConfig= ${elUtils.processEnvVarOrFile('GROUPER_UI_GROUPER_AUTH')} # WS basic auth is usually for a quick start. Set to false if you migrate to ldap or kerberos or something else grouper.is.ws.basicAuthn.elConfig= ${elUtils.processEnvVarOrFile('GROUPER_WS_GROUPER_AUTH')} # SCIM basic auth is usually for a quick start. Set to false if you migrate to ldap or kerberos or something else grouper.is.scim.basicAuthn.elConfig= ${elUtils.processEnvVarOrFile('GROUPER_SCIM_GROUPER_AUTH')} # override a grouper authn password here for testing and development # grouperPasswordConfigOverride__subjectId_pass = pass (hopefully encrypted but doesnt need to) # e.g. grouperPasswordConfigOverride_UI_GrouperSystem_pass = abnf234