###############################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
###############################################################################

####
# OFBiz UtilCache properties File
####

# Default Settings
# Sets the maximum number of entries that can be placed in the cache. A
# setting of zero indicates no maximum.
#default.maxSize=0
# Sets the expire time in milliseconds. If set to 0, elements will never expire.
#default.expireTime=0
#default.useSoftReference=false

# No maxSize for properties.UtilPropertiesResourceCache
#properties.UtilPropertiesResourceCache.maxSize=0
#properties.UtilPropertiesResourceCache.expireTime=0

# No maxSize for properties.UtilPropertiesUrlCache
#properties.UtilPropertiesUrlCache.maxSize=0
#properties.UtilPropertiesUrlCache.expireTime=0

# This should be increased if more users will be simultaneously on the system.
security.UserLoginSecurityGroupByUserLoginId.maxSize=1000
# 30 min
security.UserLoginSecurityGroupByUserLoginId.expireTime=1800000

security.SecurityGroupPermissionCache.maxSize=0
# 30 min
security.SecurityGroupPermissionCache.expireTime=1800000

# Examples for per-delegator Entity Engine cache settings
#entitycache.entity.default.ServerHitType.expireTime=0
#entitycache.entity.default.ServerHitType.useSoftReference=true
#entitycache.entity-list.default.ProductPriceRule.expireTime=0
#entitycache.entity-list.default.ProductPriceRule.useSoftReference=true

# product.content.rendered cache settings, set to expire in 1 minutes by default to avoid too much administrative confusion, can comment this out or increase for better performance
product.content.rendered.expireTime=60000
product.content.rendered.useSoftReference=true

# product.config cache settings, used by product (pc like) configurations, set to expire in 1 minutes by default to avoid too much administrative confusion, can comment this out or increase for better performance
product.config.expireTime=60000
product.config.useSoftReference=true

# Development Mode - comment these out to better cache groovy scripts, etc
#These are all cleared by default every 10000 milliseconds, or ten seconds
minilang.SimpleMethodsDirect.expireTime=10000
minilang.SimpleMethodsResource.expireTime=10000
minilang.SimpleMethodsURL.expireTime=10000

script.ParsedScripts.expireTime=10000
script.GroovyLocationParsedCache.expireTime=10000

# Uncomment this for more flexibility with service changes.
# Clearing this cache will reload service defs, for all service and so it takes time and results in lots of log messages, so it is commented by default.
#service.ModelServiceMapByDispatcher.expireTime=10000

webapp.ControllerConfig.expireTime=10000

widget.form.locationResource.expireTime=10000
widget.form.webappResource.expireTime=10000
widget.grid.locationResource.expireTime=10000
widget.grid.webappResource.expireTime=10000
widget.menu.classResource.expireTime=10000
widget.menu.locationResource.expireTime=10000
widget.menu.webappResource.expireTime=10000
widget.screen.locationResource.expireTime=10000
widget.screen.webappResource.expireTime=10000
widget.tree.locationResource.expireTime=10000
widget.tree.webappResource.expireTime=10000

template.ftl.location.expireTime=10000
template.ftl.general.expireTime=10000
widget.screen.template.ftl.general.expireTime=10000

ModelDataFile.expireTime=10000


