#
# The MIT License
# Copyright © 2014-2019 Ilkka Seppälä
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#


#################################################################################
#
# specify system components.
#
# The values correspond to the named components in the installer-registry.properties file
# in the org.apache.isis.core:isis-core-runtime JAR (in the org.apache.isis.core.runtime package)
#
# Although all configuration could reside in isis.properties, the recommendation is
# to split out into component specific files:
# 
#    xxx_yyy.properties files
#
# where
#    * xxx is the component type, and
#    * yyy is the component name.
#
# For example, viewer_wicket.properties holds configuration information specific to the Wicket viewer.
#
#################################################################################


#
# configure the persistor (object store) to use
#

# JDO/DataNucleus objectstore
isis.persistor=datanucleus



#
# configure authentication mechanism to use (to logon to the system)
#
 
#isis.authentication=bypass
isis.authentication=shiro


#
# configure authorization mechanism to use
#
 
#isis.authorization=bypass
isis.authorization=shiro





#################################################################################
#
# MetaModel
#
# The metamodel typically does not require additional configuration, although
# the system components (defined above) may refine the metamodel for their needs.
#
#################################################################################


#
# Additional programming model facet factories, or remove standard facet factories.
# Comma separated list of fully qualified class names.
#
#isis.reflector.facets.include=
#isis.reflector.facets.exclude=


#
# Metamodel validation (in addition to that automatically performed by the programming model facet factories)
# Default implementation does nothing.
#
# Use a custom implementation to enforce additional constraints specific to your app/project/company.
#
#isis.reflector.validator=org.apache.isis.core.metamodel.metamodelvalidator.dflt.MetaModelValidatorDefault



#
# Whether to allow deprecated annotations/method prefixes (otherwise raise metamodel validation errors).
# If not specified, default is to allow.
#
isis.reflector.validator.allowDeprecated=false



#
# Implementation to use for reading dynamic layout.  Default implementation reads Xxx.layout.json files from classpath.
#
#isis.reflector.layoutMetadataReaders=org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson



#
# patterns for applying CssClassFa facet (font-awesome icons), matching on action names
#
isis.reflector.facet.cssClassFa.patterns=\
                        new.*:fa-plus,\
                        add.*:fa-plus-square,\
                        create.*:fa-plus,\
                        update.*:fa-edit,\
                        change.*:fa-edit,\
                        remove.*:fa-minus-square,\
                        move.*:fa-exchange,\
                        first.*:fa-star,\
                        find.*:fa-search,\
                        lookup.*:fa-search,\
                        clear.*:fa-remove,\
                        previous.*:fa-step-backward,\
                        next.*:fa-step-forward,\
                        list.*:fa-list, \
                        all.*:fa-list, \
                        download.*:fa-download, \
                        upload.*:fa-upload, \
                        execute.*:fa-bolt, \
                        run.*:fa-bolt, \
                        calculate.*:fa-calculator, \
                        verify.*:fa-check-circle, \
                        refresh.*:fa-refresh, \
                        install.*:fa-wrench


#
# patterns for applying CssClass facet (CSS styles), matching on member names
#
isis.reflector.facet.cssClass.patterns=\
                        delete.*:btn-warning


#################################################################################
#
# Value facet defaults
#
# (see also viewer-specific config files, eg viewer_wicket.properties)
#
#################################################################################

# as used by @Title of a date
isis.value.format.date=dd-MM-yyyy



#################################################################################
#
# Application Services and fixtures
#
#################################################################################

#
# Specify the domain services.
# 
# These are the most important configuration properties in the system, as they define
# the set of the classes for Isis to instantiate as domain service singletons.
# From these domain service instances the rest of the metamodel is discovered, while the 
# end-user gains access to other domain objects by invoking the actions of the domain services.
#
isis.services-installer=configuration-and-annotation
isis.services.ServicesInstallerFromAnnotation.packagePrefix=domainapp

# additional services/overriding default (@DomainService) implementations
isis.services =



# Specify the (optional) test fixtures
#
# Fixtures are used to seed the object store with an initial set of data.  For the 
# in-memory object store, the fixtures are installed on every run.  For other
# object stores, they are used only when the object store is first initialized.
#
isis.fixtures=domainapp.fixture.scenarios.RecreateSimpleObjects


#
# required by EmailServiceDefault
#
#isis.service.email.sender.address=some.valid@email.address
#isis.service.email.sender.password=the.password.for-isis.notification.email.sender.address



#
# whether ExceptionRecognizers should also log any recognized exceptions
# (default false; enable for diagnostics/debugging)
#
#isis.services.exceprecog.logRecognizedExceptions=true


#
# disable to (automatically registered) ExceptionRecognizerCompositeForJdoObjectStore service
# almost all of this service should be registered.  Since all exception recognizer implementations
# are consulted in the event of an exception, it's not sufficient to override the implementation
# (in isis.services); instead this configuration property disables this particular implementation.
#
#isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable=true


################################################################################
#
# Auditing, Publishing, Command
#
################################################################################

#
# Whether changes to objects should be audited; if not set, defaults to "none"
# - if not set or set to "none", can explicitly enable using @DomainObject(auditing=Auditing.ENABLED)
# - if set to "all", can explicitly disable using @Object(auditing=Auditing.DISABLED)
#
#isis.services.audit.objects=all|none

#
# Whether changes to objects should be published; if not set, defaults to "none"
# - if not set or set to "none", can explicitly enable using @DomainObject(publishing=Publishing.ENABLED)
# - if set to "all", can explicitly disable using @Object(publishing=Publishing.DISABLED)
#
#isis.services.publish.objects=all|none

#
# Whether all (or all non-query only) actions should be published; if not set, defaults to "none"
# - if not set or set to "none", can explicitly enable using @Action(publishing=Publishing.ENABLED)
# - if set to "all", can explicitly disable using @Action(publishing=Publishing.DISABLED)
#
#isis.services.publish.actions=all|none|ignoreQueryOnly


#
# Whether all (or all non-query only) actions should be reified as commands; if not set, defaults to "none"
# - if not set or set to "none", can explicitly enable using @Action(command=CommandReification.ENABLED)
# - if set to "all", can explicitly disable using @Action(command=CommandReification.DISABLED)
#
#isis.services.command.actions=all|none|ignoreQueryOnly





################################################################################
#
# Policies
#
#################################################################################

#
# Whether editing of object properties is allowed; if not set, defaults to "true"
# - if not set or set to "true", can explicitly disable using @DomainObject(editing=Editing.DISABLED)
# - if set to "false", can explicitly enable using @DomainObject(editing=Editing.ENABLED)
#
#isis.objects.editing=true|false





################################################################################
#
# i18n
#
#################################################################################

#
# force read translations, even if running in prototype mode
#
#isis.services.translation.po.mode=read





################################################################################
#
# Viewer defaults
#
#################################################################################

#
# Specify viewer defaults
# 
#isis.viewers.paged.standalone=30
#isis.viewers.paged.parented=10


#isis.viewers.propertyLayout.labelPosition=LEFT
#isis.viewers.parameterLayout.labelPosition=LEFT
