= Core Runtime Services
:page-role: -toc -narrow


:Notice: 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.

include::../section-hooks/causeway.core.runtime-services~pre.adoc[]

[cols="3a,2a,5a", options="header"]
|===
|Property
|Default
|Description
|
[[causeway.core.runtime-services.application-features.init]]
causeway.core.runtime-services. +
application-features.init

| 
| Whether the ``ApplicationFeatureRepository`` (or the default implementation of that service, at least) should compute the set of ``ApplicationFeature`` that describe the metamodel eagerly, or lazily.


|
[[causeway.core.runtime-services.email.override.bcc]]
causeway.core.runtime-services. +
email.override.bcc

| 
| Intended for testing purposes only, if set then the requested ``bcc:`` of the email will be ignored, and instead sent to this email address instead.


|
[[causeway.core.runtime-services.email.override.cc]]
causeway.core.runtime-services. +
email.override.cc

| 
| Intended for testing purposes only, if set then the requested ``cc:`` of the email will be ignored, and instead sent to this email address instead.


|
[[causeway.core.runtime-services.email.override.to]]
causeway.core.runtime-services. +
email.override.to

| 
| Intended for testing purposes only, if set then the requested ``to:`` of the email will be ignored, and instead sent to this email address instead.


|
[[causeway.core.runtime-services.email.port]]
causeway.core.runtime-services. +
email.port

|  587
| The port to use for sending email.


|
[[causeway.core.runtime-services.email.sender.address]]
causeway.core.runtime-services. +
email.sender.address

| 
| Specifies the email address of the user sending the email.

If the username is not specified, is also used as the username to connect to the SMTP service.

This configuration property is mandatory (for the default implementation of the ``EmailService``, at least).


|
[[causeway.core.runtime-services.email.sender.hostname]]
causeway.core.runtime-services. +
email.sender.hostname

| 
| Specifies the host running the SMTP service.

If not specified, then the value used depends upon the email implementation. The default implementation will use the ``host`` system property.


|
[[causeway.core.runtime-services.email.sender.password]]
causeway.core.runtime-services. +
email.sender.password

| 
| Specifies the password (corresponding to the username to connect to the SMTP service.

This configuration property is mandatory (for the default implementation of the ``EmailService``, at least).


|
[[causeway.core.runtime-services.email.sender.username]]
causeway.core.runtime-services. +
email.sender.username

| 
| Specifies the username to use to connect to the SMTP service.

If not specified, then the sender's address will be used instead.


|
[[causeway.core.runtime-services.email.socket-connection-timeout]]
causeway.core.runtime-services. +
email.socket-connection-timeout

|  2000
| The maximum number of millseconds to wait to obtain a socket connection before timing out.


|
[[causeway.core.runtime-services.email.socket-timeout]]
causeway.core.runtime-services. +
email.socket-timeout

|  2000
| The maximum number of millseconds to wait to obtain a socket before timing out.


|
[[causeway.core.runtime-services.email.throw-exception-on-fail]]
causeway.core.runtime-services. +
email.throw-exception-on-fail

|  true
| If an email fails to send, whether to propagate the exception (meaning that potentially the end-user might see the exception), or whether instead to just indicate failure through the return value of the method (``EmailService#send(List, List, List, String, String, DataSource...)`` that's being called.


|
[[causeway.core.runtime-services.email.tls.enabled]]
causeway.core.runtime-services. +
email.tls.enabled

|  true
| Whether TLS encryption should be started (that is, ``STARTTLS``).


|
[[causeway.core.runtime-services.exception-recognizer.dae.disable]]
causeway.core.runtime-services. +
exception-recognizer.dae.disable

| 
| Whether the ``ExceptionRecognizer`` implementation for Spring's DataAccessException - which attempts to sanitize any exceptions arising from object stores - should be disabled (meaning that exceptions will potentially propagate as more serious to the end user).


|
[[causeway.core.runtime-services.repository-service.disable-auto-flush]]
causeway.core.runtime-services. +
repository-service. +
disable-auto-flush

| 
| Normally any queries are automatically preceded by flushing pending executions.

This key allows this behaviour to be disabled.

NOTE: this key is redundant for JPA/EclipseLink, which supports its own auto-flush using https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABDHEEB[eclipselink.persistence-context.flush-mode]


|
[[causeway.core.runtime-services.translation.po.mode]]
causeway.core.runtime-services. +
translation.po.mode

| 
| Specifies the initial mode for obtaining/discovering translations.

There are three modes:

* The default mode of write is appropriate for integration testing or prototyping, meaning that the service records any requests made of it but just returns the string unaltered. This is a good way to discover new strings that require translation.
* The read mode is appropriate for production; the service looks up translations that have previously been captured.
* The disabled performs no translation and simply returns the original string unchanged. Unlike the write mode, it does _not_ keep track of translation requests.


|
[[causeway.core.runtime-services.translation.resource-location]]
causeway.core.runtime-services. +
translation.resource-location

| 
| Specifies the relative resource path to look for translation files.

If \{@code null} uses \{@code servletContext.getResource("/WEB-INF/")}.

Replaces the former Servlet context parameter 'causeway.config.dir';



|===

include::../section-hooks/causeway.core.runtime-services~post.adoc[]
