ilscipio/scipio-erp

View on GitHub
framework/service/config/service.properties

Summary

Maintainability
Test Coverage
###############################################################################
# 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.
###############################################################################

# flag to automatically export all services: same of setting export="true" for all service definitions
remotedispatcher.exportall=false
# complete answer from SOAP WSDL or only brief message "Problem processing the service" for security reason
secureSoapAnswer=true
# By default shows all services durations in logs by using a 0 ms value
showServiceDurationThreshold=0
# By default shows/marks slow services in logs by using a 1000 ms value
showSlowServiceThreshold=1000
# enable JMS or not
enableJMS=true

# SCIPIO: Sets the required enabled log level (info, verbose) for the "Set default value..."
# service invocations parameter default-value info log message.
# NOTE: Is always printed to info level and individual services can force print info level using debug="true" service attribute.
# Changed this to "verbose" in SCIPIO ERP (was "info" in ofbiz). Added 2017-09-13.
run.logParamLevel=verbose

############################################
# SCIPIO: SOAP axis2 Scipio-specific configuration
############################################

# If true, SOAP service calls share a ConfigurationContext (much faster); if false, each gets its own (legacy ofbiz behavior).
soap.context.shared=true

####
# SOAP HTTPClient4 configuration
####
# SOAP HttpClient configuration mode. Values:
# * custom-client: the settings below are passed to axis2 by creating a custom httpclient instance (most control).
#                  WARN: At this time (2018-07-12), there could be thread safety issues with this mode (?) - TBD.            
# * custom-connmanager: the settings below are passed to axis2 by creating only a custom pooling connection manager instance.
#                       creates fewer differences against axis2 stock compared to custom-client.
#                       implies reuseClient=false.
# * stock: disables everything below and uses stock SOAP/axis2 connect and cert validate config.
soap.connect.configMode=stock

# Reuse client; implies reuseConnManager and a thread-safe pooling connection manager [ignored if configMode=custom-compat]
# WARN: reuseClient=true is not fully tested (2018-07-12); safer to rely on reuseConnManager=true instead at current time.
soap.connect.reuseClient=false
# Reuse pooling connection manager, can be used with reuseClient=false in case of issues [ignored if configMode=custom-compat]
# NOTE: To return to single-threaded (legacy axis2 ofbiz config), you must set reuseClient=false and reuseConnManager=false
soap.connect.reuseConnManager=true

# Max connections settings, only applied if reuseClient=true (axis2 1.7.8 defaults: 200/200)
soap.connect.maxConnections=200
soap.connect.maxConnectionsPerHost=200

# Connect timeouts, in milliseconds (axis2 1.7.8 defaults: 60000, 60000)
# NOTE: When configMode=custom, you must set these here; they cannot be read from axis2/conf/axis2.xml
soap.connect.connectTimeout=60000
soap.connect.socketTimeout=60000

####
# SOAP HTTPS X509 certificate validation configuration
####
# Values:
# * custom: use the definitions below [IMPORTANT: requires soap.connect.configMode=custom (above)]
# * stock: ignore all definitions below and use stock axis2 configuration (more or less: system-truststore-prop + system)
soap.cert.validate.configMode=custom

# TLS, TLSv1, TLSv1.1, TLSv1.2
soap.cert.validate.sslProtocol=TLS

# Certificate custom validation methods
# 
# Types (.type):
# * system: default system validation, usually includes public infrastructure certs (JVM X509 trust manager)
# * keystore: specific keystore in filesystem
# * component-keystore: specific keystore from ofbiz-component.xml, referenced by name 
#                       (keystoreName required; componentName can be omitted and will search in all components from last)
# * component-truststores: load all keystores defined as <keystore is-truststore="true"/> in ofbiz-component.xml
# * system-truststore-prop: load only system truststore defined in javax.net.ssl.trustStore
# * system-truststore-ext: load the system truststore defined in javax.net.ssl.trustStore OR special /lib/security/... locations (does not fully include "system" (JVM))
# * ofbiz-truststores: load system-truststore-ext AND component-truststores (WARN: legacy mechanism for RMI; subject to change! Does not fully include "system" (JVM)!)
# * self-signed: trust self-signed certs (DANGEROUS - testing/dev only!)
# * any: trust any certs (DANGEROUS - testing/dev only!)
# 
# Common entry options:
# * .type: see Types above
# * .optional=[true|false, default false]: whether to abort config if missing or not; if abort happens, a "trust noone" manager is used
#                                          NOTE: some types (e.g. ofbiz-truststores, system-truststore-ext) may not respond to this
#

# Specific keystore file: uncomment this to trust a keystore of specific server certs for your organization,
# if the certs are not already in the public sphere
#soap.cert.validate.methods.10.type=keystore
#soap.cert.validate.methods.10.keystoreFile=component://service/config/rmitrust.jks
#soap.cert.validate.methods.10.keystoreType=jks
#soap.cert.validate.methods.10.keystorePass=changeit
#soap.cert.validate.methods.10.optional=false

# Specific keystore component def: <keystore name="[keystoreName]"/> from ofbiz-component.xml definitions
# NOTE: If you add a keystore this way, it will likely also be picked up by other clients
# such as RMI (which rely on "ofbiz-truststores" method); if this is a problem, use the previous file-specific definition instead.
#soap.cert.validate.methods.20.type=component-keystore
#soap.cert.validate.methods.20.componentName=service
#soap.cert.validate.methods.20.keystoreName=rmitrust
#soap.cert.validate.methods.20.optional=false

# Self-trust: trust our own server certs, otherwise can't https to localhost
soap.cert.validate.methods.30.type=keystore
soap.cert.validate.methods.30.keystoreFile=component://base/config/ofbizssl.jks
soap.cert.validate.methods.30.keystoreType=jks
soap.cert.validate.methods.30.keystorePass=changeit

# Component truststores - use this if you want to defer configuration to ofbiz-component.xml files (<keystore is-truststore="true"/>)
# NOTE: Like component-keystore, if you define keystores this way, they may also be used by other clients.
#soap.cert.validate.methods.40.type=component-truststores
#soap.cert.validate.methods.40.optional=true

# System truststore property only (javax.net.ssl.trustStore) (NOTE: covers much less than "system" trust manager)
#soap.cert.validate.methods.50.type=system-truststore-prop
#soap.cert.validate.methods.50.optional=true

# Standard legacy ofbiz method (legacy behavior ~equivalent to chaining system-truststore-ext followed by component-truststores)
#soap.cert.validate.methods.60.type=ofbiz-truststores
#soap.cert.validate.methods.60.optional=true

# Self-signed certs trusting - uncomment this for testing/dev purposes
# WARN: DANGEROUS: Better to add your cert to a keystore file such as above
#soap.cert.validate.methods.80.type=self-signed

# Default system trust manager (JVM, not ofbiz)
soap.cert.validate.methods.90.type=system
soap.cert.validate.methods.90.optional=true
# NOTE: these shouldn't be needed, but you can try uncommenting if you have an issue (defaults: false/true/false - server check only)
#soap.cert.validate.methods.90.checkClient=true
#soap.cert.validate.methods.90.checkServer=true
#soap.cert.validate.methods.90.acceptedIssuers=true

# SCIPIO: Set to true for extra debug info during job polling, with optional min interval between logging (milliseconds); verbose adds taskList info
jobManager.debug=false
jobManager.debug.problemLogLevel=warning
jobManager.debug.poll.logInterval=-1
jobManager.debug.poll.logInterval.verbose=false
jobManager.debug.poll.noCapacityWarnInterval=-1
jobManager.debug.poll.noCapacityWarnInterval.verbose=false
jobManager.debug.poll.pollSleepWarnInterval=-1
jobManager.debug.poll.pollSleepWarnInterval.verbose=false
jobManager.debug.poll.startupPollSleepWarnInterval=-1
jobManager.debug.poll.startupPollSleepWarnInterval.verbose=false

# SCIPIO: Optional configurable filter to prevent reloading certain (or all) crashed jobs; supports the same values and syntax
# as the system property, scipio.job.crashed.ignore.filter. On command line usage is OS-specific but bash or equivalent must be used:
# '-Dscipio.job.crashed.ignore.filter=${job.serviceName=="rebuildSolrIndex"}' (EL expression, linux/bash)
# '-Dscipio.job.crashed.ignore.filter=${groovy:job.serviceName=="rebuildSolrIndex"}' (Groovy expression, linux/bash)
# -Dscipio.job.crashed.ignore.filter=true (bypass all crashed jobs - use carefully)
# DO NOT use Windows batch interpreter due to escaping problems - use bash emulation.
# The scriptlet evaluates to a true/false expression. The job variable is a JobSandbox entity GenericValue, so any field can be checked:
# serviceName, jobName, jobId, statusId, ... (see framework/service/entitydef/entitymodel.xml)
# Ignored crashed jobs are marked failed and not rescheduled unless they had recurrence info in which case they will either
# have already been rescheduled for non-SERVICE_QUEUED states based on the original execution time or will be rescheduled
# on startup for SERVICE_QUEUED states. In the latter case, the original service execution time will be used instead of
# the current time because it emulates the former case to make behavior consistent - even though the scheduled time may be in the past.
# That means the recurrence may be picked up immediately despite the crash failure-recurrence being ignored - check logs for distinction.
#job.crashed.ignore.filter=${job.serviceName=="rebuildSolrIndex"}
#job.crashed.ignore.filter=${groovy:job.serviceName=="rebuildSolrIndex"}
#job.crashed.ignore.filter=true
job.crashed.ignore.filter=

# SCIPIO: Convenience/debug filter to bypass Scipio SCH_EVENT_STARTUP startup jobs for a single instance or execution.
# Same syntax as job.crashed.ignore.filter; corresponds to system property scipio.job.startup.ignore.filter.
# NOTE: For Solr, a separate solrconfig.properties#solr.index.rebuild.startup.force is available.
# Neither of these affect crashed jobs; use explicit job.crashed.ignore.filter in addition or the ant target "start[-debug]-no-reindex-solr".
job.startup.ignore.filter=