###############################################################################
# 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
#cache.file.store=runtime/data/utilcache
#default.maxSize=0
#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.BshLocationParsedCache.expireTime=10000
script.BshBsfParsedCache.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.BsfEvents.expireTime=10000
webapp.JasperReportsCompiled.expireTime=10000
webapp.ControllerConfig.expireTime=10000

widget.form.locationResource.expireTime=10000
widget.form.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


