blob: dd4980bab4a1c1f4649c3e68941e28c44dd8e6da [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Configuration Guide :: Apache Isis</title>
<link rel="canonical" href="https://isis.apache.org/refguide/2.0.0-M5/config/about.html">
<meta name="generator" content="Antora 2.3.4">
<link rel="stylesheet" href="../../../_/css/site.css">
<link rel="stylesheet" href="../../../_/css/site-custom.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i|Raleway:300,400,500,700,800|Montserrat:300,400,700" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"/>
<link rel="home" href="https://isis.apache.org" title="Apache Isis">
<link rel="next" href="sections/isis.applib.html" title="Applib">
<link rel="prev" href="../applib-classes/spec.html" title="Specification pattern">
</head>
<body class="article">
<header class="header">
<nav class="navbar">
<div class="navbar-brand">
<a class="navbar-item" href="https://isis.apache.org">
<span class="icon">
<img src="../../../_/img/isis-logo-48x48.png"></img>
</span>
<span>Apache Isis</span>
</a>
<button class="navbar-burger" data-target="topbar-nav">
<span></span>
<span></span>
<span></span>
</button>
</div>
<div id="topbar-nav" class="navbar-menu">
<a class="navbar-end">
<div class="navbar-item hide-for-print">
<span>
<input id="algolia-search-input" placeholder="Search"></span>
</span>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Quick Start</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Starter Apps</span>
<a class="navbar-item" href="../../../docs/2.0.0-M5/starters/helloworld.html">Hello World</a>
<a class="navbar-item" href="../../../docs/2.0.0-M5/starters/simpleapp.html">Simple App</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Demos &amp; Tutorials</span>
<a class="navbar-item" href="../../../docs/2.0.0-M5/demo/about.html">Demo App</a>
<a class="navbar-item" href="https://danhaywood.gitlab.io/isis-petclinic-tutorial-docs/petclinic/1.16.2/intro.html">Petclinic (tutorial)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Resources</span>
<a class="navbar-item" href="../../../docs/2.0.0-M5/resources/cheatsheet.html">Cheatsheet</a>
<a class="navbar-item" href="../../../docs/2.0.0-M5/resources/icons.html">Icons</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Guides</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Development</span>
<a class="navbar-item" href="../../../setupguide/2.0.0-M5/about.html">Setup Guide</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Core</span>
<a class="navbar-item" href="../../../userguide/2.0.0-M5/about.html">User Guide</a>
<a class="navbar-item" href="../../../refguide/2.0.0-M5/about.html">Reference Guide</a>
<a class="navbar-item" href="../../../testing/2.0.0-M5/about.html">Testing Guide</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Libraries</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">For Use in Apps</span>
<a class="navbar-item" href="../../../subdomains/2.0.0-M5/about.html">Subdomain Libraries</a>
<a class="navbar-item" href="../../../valuetypes/2.0.0-M5/about.html">Value Types</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Integrate between Apps</span>
<a class="navbar-item" href="../../../mappings/2.0.0-M5/about.html">Bounded Context Mapping Libraries</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Other</span>
<a class="navbar-item" href="../../../incubator/2.0.0-M5/about.html">Incubator</a>
<a class="navbar-item" href="../../../legacy/2.0.0-M5/about.html">Legacy</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Components</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Viewers</span>
<a class="navbar-item" href="../../../vw/2.0.0-M5/about.html">Web UI (Wicket)</a>
<a class="navbar-item" href="../../../vro/2.0.0-M5/about.html">REST API (Restful Objects)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Security</span>
<a class="navbar-item" href="../../../security/2.0.0-M5/about.html">Security Guide</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Persistence</span>
<a class="navbar-item" href="../../../pjpa/2.0.0-M5/about.html">JPA (EclipseLink)</a>
<a class="navbar-item" href="../../../pjdo/2.0.0-M5/about.html">JDO (DataNucleus)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Extensions</span>
<a class="navbar-item" href="../../../extensions/2.0.0-M5/about.html">Extensions Catalog</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Support</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Contact</span>
<a class="navbar-item" href="../../../docs/2.0.0-M5/support/slack-channel.html">Slack</a>
<a class="navbar-item" href="../../../docs/2.0.0-M5/support/mailing-list.html">Mailing Lists</a>
<a class="navbar-item" href="https://issues.apache.org/jira/browse/ISIS">JIRA</a>
<a class="navbar-item" href="https://stackoverflow.com/questions/tagged/isis">Stack Overflow</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Releases</span>
<a class="navbar-item" href="../../../docs/2.0.0-M5/downloads/how-to.html">Downloads</a>
<a class="navbar-item" href="../../../relnotes/2.0.0-M5/about.html">Release Notes</a>
<a class="navbar-item" href="../../../docs/2.0.0-M5/archive/1-x.html">Archive (1.x)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Framework</span>
<a class="navbar-item" href="../../../conguide/2.0.0-M5/about.html">Contributors' Guide</a>
<a class="navbar-item" href="../../../comguide/2.0.0-M5/about.html">Committers' Guide</a>
<a class="navbar-item" href="../../../core/2.0.0-M5/about.html">Core Design</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">ASF</a>
<div class="navbar-dropdown">
<a class="navbar-item" href="http://www.apache.org/">Apache Homepage</a>
<a class="navbar-item" href="https://www.apache.org/events/current-event">Events</a>
<a class="navbar-item" href="https://www.apache.org/licenses/">Licenses</a>
<a class="navbar-item" href="https://www.apache.org/security/">Security</a>
<a class="navbar-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
<a class="navbar-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
<hr class="navbar-divider"/>
<a class="navbar-item" href="https://whimsy.apache.org/board/minutes/Isis.html">PMC board minutes</a>
</div>
</div>
<a class="navbar-item" href="../../../docs/2.0.0-M5/about.html">
<span class="icon">
<img src="../../../_/img/home.png"></img>
</span>
</a>
</div>
</div>
</nav>
</header>
<div class="body ">
<div class="nav-container" data-component="refguide" data-version="2.0.0-M5">
<aside class="nav">
<div class="panels">
<div class="nav-panel-pagination">
<a class="page-previous" rel="prev" href="../applib-classes/spec.html" title="Specification pattern"><span></span></a>
<a class="page-next" rel="next"
href="sections/isis.applib.html" title="Applib"><span></span></a>
<!--
page.parent doesn't seem to be set...
<a class="page-parent disabled" rel="prev" href="" title="Specification pattern"><span></span></a>
-->
</div>
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<h3 class="title"><a href="../about.html">Reference Guide</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-svc/about.html">Domain Services</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/acceptheader/AcceptHeaderService.html">AcceptHeaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/appfeat/ApplicationFeatureRepository.html">ApplicationFeatureRepository</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/bookmark/BookmarkService.html">BookmarkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/bookmarkui/BookmarkUiService.html">BookmarkUiService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/clock/ClockService.html">ClockService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/commanddto/processor/spi/CommandDtoProcessorService.html">CommandDtoProcessorService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/command/CommandExecutorService.html">CommandExecutorService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/publishing/spi/CommandSubscriber.html">CommandSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/confview/ConfigurationMenu.html">ConfigurationMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/confview/ConfigurationViewService.html">ConfigurationViewService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/conmap/ContentMappingService.html">ContentMappingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/linking/DeepLinkService.html">DeepLinkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/userreg/EmailNotificationService.html">EmailNotificationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/email/EmailService.html">EmailService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/publishing/spi/EntityChangesSubscriber.html">EntityChangesSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/publishing/spi/EntityPropertyChangeSubscriber.html">EntityPropertyChangeSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/error/ErrorReportingService.html">ErrorReportingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/eventbus/EventBusService.html">EventBusService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/exceprecog/ExceptionRecognizerService.html">ExceptionRecognizerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/factory/FactoryService.html">FactoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/grid/GridLoaderService.html">GridLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/grid/GridService.html">GridService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/grid/GridSystemService.html">GridSystemService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/health/HealthCheckService.html">HealthCheckService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/hint/HintStore.html">HintStore</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/homepage/HomePageResolverService.html">HomePageResolverService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/iactn/InteractionContext.html">InteractionContext</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/jaxb/JaxbService.html">JaxbService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/layout/LayoutService.html">LayoutService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/layout/LayoutServiceMenu.html">LayoutServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/i18n/LocaleProvider.html">LocaleProvider</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/menu/MenuBarsLoaderService.html">MenuBarsLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/menu/MenuBarsService.html">MenuBarsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/message/MessageService.html">MessageService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/metamodel/MetaModelService.html">MetamodelService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/metamodel/MetaModelServiceMenu.html">MetamodelServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/metrics/MetricsService.html">MetricsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/publishing/spi/ExecutionSubscriber.html">ExecutionSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/queryresultscache/QueryResultsCache.html">QueryResultsCache</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/repository/RepositoryService.html">RepositoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/routing/RoutingService.html">RoutingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/scratchpad/Scratchpad.html">Scratchpad</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/inject/ServiceInjector.html">ServiceInjector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/registry/ServiceRegistry.html">ServiceRegistry</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/session/SessionLoggingService.html">SessionLoggingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/sudo/SudoService.html">SudoService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/swagger/SwaggerService.html">SwaggerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/tablecol/TableColumnOrderService.html">TableColumnOrderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/title/TitleService.html">TitleService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/i18n/TranslationService.html">TranslationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/i18n/TranslationsResolver.html">TranslationsResolver</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/xactn/TransactionalProcessor.html">TransactionProcessor</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/xactn/TransactionService.html">TransactionService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/urlencoding/UrlEncodingService.html">UrlEncodingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/userprof/UserProfileService.html">UserProfileService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/userreg/UserRegistrationService.html">UserRegistrationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/user/UserService.html">UserService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/wrapper/WrapperFactory.html">WrapperFactory</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/xml/XmlService.html">XmlService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/services/xmlsnapshot/XmlSnapshotService.html">XmlSnapshotService</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-ant/about.html">Annotations</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/Action.html">Action</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/ActionLayout.html">ActionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/Collection.html">Collection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/CollectionLayout.html">CollectionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/Column.html">Column</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/Digits.html">Digits</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/Discriminator.html">Discriminator</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/DomainObject.html">DomainObject</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/DomainObjectLayout.html">DomainObjectLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/DomainService.html">DomainService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/DomainServiceLayout.html">DomainServiceLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/Facets.html">Facets</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/HomePage.html">HomePage</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/MemberOrder.html">MemberOrder</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/NotPersistent.html">NotPersistent.</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/Nullable.html">Nullable</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/MinLength.html">MinLength</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/Parameter.html">Parameter</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/ParameterLayout.html">ParameterLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/Pattern.html">Pattern</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/PersistenceCapable.html">PersistenceCapable</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/PrimaryKey.html">PrimaryKey</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/Programmatic.html">Programmatic</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/Property.html">Property</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/PropertyLayout.html">PropertyLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/InteractionScope.html">RequestScoped</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib/index/annotation/Title.html">Title</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/XmlJavaTypeAdapter.html">XmlJavaTypeAdapter</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-ant/XmlRootElement.html">XmlRootElement</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-methods/about.html">Methods</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-methods/prefixes.html">Supporting Methods</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-methods/ui-hints.html">UI Hint Methods</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-methods/lifecycle.html">Lifecycle Methods</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-classes/about.html">Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-classes/events.html">Events</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-classes/non-persisted-objects.html">Non-persisted objects</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/ViewModel.html">ViewModel</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/RecreatableDomainObject.html">RecreatableDomainObject</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-classes/layout.html">Layout</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-classes/value-types.html">Value Types</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/Blob.html">Blob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/Clob.html">Clob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/Markup.html">Markup</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/LocalResourcePath.html">LocalResourcePath</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/Password.html">Password</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-classes/utility.html">Utility Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/Enums.html">Enums</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/JaxbUtil.html">JaxbUtil</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/ObjectContracts.html">ObjectContracts</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/Reasons.html">Reasons</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/ReasonBuffer.html">ReasonBuffer</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/ReasonBuffer2.html">ReasonBuffer2</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/TitleBuffer.html">TitleBuffer</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-classes/mixees-and-mixins.html">Mixees and Mixins</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/layout/Object_downloadLayoutXml.html">Object_downloadLayoutXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/metamodel/Object_downloadMetamodelXml.html">Object_downloadMetamodelXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/metamodel/Object_rebuildMetamodel.html">Object_rebuildMetamodel</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/metamodel/Object_objectType.html">Object_objectType</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/metamodel/Object_objectIdentifier.html">Object_objectIdentifier</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../viewer/index/wicket/viewer/mixins/Object_clearHints.html">Object_clearHints</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/rest/Object_openRestApi.html">Object_openRestApi</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/dto/Dto_downloadXml.html">Dto_downloadXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/dto/Dto_downloadXsd.html">Dto_downloadXsd</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../persistence/index/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.html">Persistable_downloadJdoMetadata</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../persistence/index/jdo/datanucleus/mixins/Persistable_datanucleusIdLong.html">Persistable_datanucleusIdLong</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../persistence/index/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.html">Persistable_datanucleusVersionLong</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../persistence/index/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.html">Persistable_datanucleusVersionTimestamp</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../extensions/index/commandlog/impl/mixins/HasInteractionId_command.html">HasInteractionId_command</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/mixins/system/DomainChangeRecord_openTargetObject.html">DomainChangeRecord_openTargetObject</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../applib-classes/spec.html">Specification pattern</a>
</li>
</ul>
</li>
<li class="nav-item is-current-page" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="about.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.applib.html">Applib</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.core.config.html">Core Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.core.meta-model.html">Core MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.core.meta-model.introspector.html">Core MetaModel Introspection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.core.meta-model.validator.html">MetaModel Validator</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.core.runtime.html">Core Runtime</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.core.runtime-services.html">Core Runtime Services</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.persistence.schema.html">Core Persistence Schema</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.security.shiro.html">Shiro Security Implementation</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.security.spring.html">Spring Security Implementation</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.viewer.restfulobjects.html">Restful Objects Viewer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.viewer.wicket.html">Wicket Viewer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/datanucleus.html">DataNucleus Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/resteasy.html">RestEasy Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.extensions.html">Extensions</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.value-types.html">Value types</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.testing.html">Testing</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/isis.legacy.html">Legacy</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="sections/Other.html">Other</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../schema/about.html">Schema</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../schema/mml.html">MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../schema/cmd.html">Command</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../schema/ixn.html">Interaction</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../schema/chg.html">Changes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../schema/common.html">Common</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
<div class="context">
<span class="title">Reference Guide</span>
<span class="version">2.0.0-M5</span>
</div>
<ul class="components">
<li class="component">
<span class="title"> </span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../docs/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">BC Mapping Libraries</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../mappings/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Committers' Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../comguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Contributors' Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../conguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Design Docs</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../core/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Extensions Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../extensions/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Incubator Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../incubator/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">JDO/DataNucleus</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../pjdo/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">JPA</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../pjpa/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Legacy Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../legacy/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component is-current">
<span class="title">Reference Guide</span>
<ul class="versions">
<li class="version is-current is-latest">
<a href="../about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Release Notes</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../relnotes/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">REST API (Restful Objects Viewer)</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../vro/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Security Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../security/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Setup Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../setupguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Subdomains Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../subdomains/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Testing Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../testing/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Tooling</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../tooling/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">User Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../userguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Value Types Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../valuetypes/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Web UI (Wicket Viewer)</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../vw/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</aside>
</div>
<main role="main">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
<a href="../../../docs/2.0.0-M5/about.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../about.html">Reference Guide</a></li>
<li><a href="about.html">Configuration</a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/apache/isis/edit/2.0.0-M5/core/config/src/main/adoc/modules/config/pages/about.adoc">Edit</a></div>
</div>
<article class="doc">
<a name="section-top"></a>
<h1 class="page">Configuration Guide</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Apache Isis' is a Spring Boot application, and so is typically configured using an <code>application.properties</code> or <code>application.yml</code> file.</p>
</div>
<div class="paragraph">
<p>The configuration can be obtained from a variety of external locations; see the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config">Spring Boot</a> documentation for more details.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
The <a href="../../../docs/2.0.0-M5/starters/about.html" class="page">starter apps</a> use <code>application.yml</code> for configuration that doesn&#8217;t change between environments, and <code>config/application.properties</code> for settings (such as JDBC URL) that does vary.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>This chapter describes the configuration properties available to configure an Apache Isis application.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="deployment-types"><a class="anchor" href="#deployment-types"></a>Deployment Types</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Apache Isis distinguishes between the application being run in prototyping mode vs running in production mode.
The framework calls this the "deployment type" (corresponding internally to the <code>DeploymentType</code> class).</p>
</div>
<div class="paragraph">
<p>A similar concept appears in the <a href="https://wicket.apache.org">Apache Wicket</a> framework (which is the library with which the <a href="../../../vw/2.0.0-M5/about.html" class="page">Web UI (Wicket viewer)</a> is implemented, of course).
Wicket&#8217;s term is the "configuration".</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 1. Wicket equivalent concepts</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Apache Isis<br>
deployment type</th>
<th class="tableblock halign-left valign-top">Apache Wicket library<br>
configuration</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><em>prototyping</em></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><em>development</em></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><em>production</em></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><em>deployment</em></p>
</div></div></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>By default Apache Isis runs in production mode.
But if configured to run instead in prototyping mode, then any actions <a href="../applib/index/annotation/Action.html#restrictTo" class="page">restricted to</a> to prototype mode are visible.
In particular, the "Prototyping" menu will appear, containing a number of framework-provided menu services - all restricted to prototyping mode.
For example, menu items to run in <a href="../../../testing/2.0.0-M5/fixtures/about.html" class="page">fixture scripts</a> are on this menu.</p>
</div>
<div class="paragraph">
<p>Prototyping mode can be enabled in a number of ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>environment variable:</p>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">export PROTOTYPING=true</code></pre>
</div>
</div>
</li>
<li>
<p><code>PROTOTYPING</code> system property</p>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">-DPROTOTYPING=true</code></pre>
</div>
</div>
</li>
<li>
<p><code>isis.deploymentType</code> system property</p>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">-Disis.deploymentType=PROTOTYPING</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>It is also possible to explicitly specify production mode:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>PRODUCTION</code> system property</p>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">-DPROTOTYPING=false</code></pre>
</div>
</div>
</li>
<li>
<p><code>isis.deploymentType</code> system property</p>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">-Disis.deploymentType=PRODUCTION</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>If (by a combination of mechanisms) both prototyping and production modes are specified, then production mode wins.</p>
</div>
<div class="sect2">
<h3 id="isissystemenvironment-domain-service"><a class="anchor" href="#isissystemenvironment-domain-service"></a><code>IsisSystemEnvironment</code> domain service</h3>
<div class="paragraph">
<p>Applications can discover the prototyping mode by injecting the <code>IsisSystemEnvironment</code> service.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="specifying-components"><a class="anchor" href="#specifying-components"></a>Specifying components</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Components are pluggable parts of the Apache Isis framework that are responsible for the presentation layer, for security, or for persistence.
Each component corresponds to one or more Maven module(s), and are specified using the Spring <a href="https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Import.html">@Import</a> statements from a top-level class annotated with Spring&#8217;s <a href="https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html">@Configuration</a> annotation.
These are then bootstrapped from a <a href="https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/SpringBootApplication.html">@SpringBootApplication</a> or <a href="https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/SpringBootTest.html">@SpringBootTest</a>.</p>
</div>
<div class="paragraph">
<p>For example, the <a href="../../../docs/2.0.0-M5/starters/simpleapp.html" class="page">simpleapp starter app</a> project is bootstrapped using <code>SimpleApp</code>, annotated with <code>@SpringBootApplication</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@SpringBootApplication
@Import({
AppManifest.class, <i class="conum" data-value="1"></i><b>(1)</b>
})
public class SimpleApp
extends SpringBootServletInitializer {
public static void main(String[] args) {
IsisPresets.prototyping(); <i class="conum" data-value="2"></i><b>(2)</b>
SpringApplication.run(
new Class[] { SimpleApp.class }, args);
}
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>references the <code>AppManifest</code>, discussed below.</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>specifies prototyping mode.
This enables actions marked for prototyping to become available, useful during the early stages of development.</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>In turn, the "app manifest" (the name has been retained from Apache Isis v1.x) is the top-level Spring <code>@Configuration</code>.
It looks like this:</p>
</div>
<div class="listingblock">
<div class="title">AppManifest.java</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@Configuration
@Import({
IsisModuleCoreRuntimeServices.class, <i class="conum" data-value="1"></i><b>(1)</b>
IsisModuleSecurityShiro.class, <i class="conum" data-value="2"></i><b>(2)</b>
IsisModuleJpaEclipselink.class, <i class="conum" data-value="3"></i><b>(3)</b>
IsisModuleViewerRestfulObjectsJaxrsResteasy4.class, <i class="conum" data-value="4"></i><b>(4)</b>
IsisModuleViewerWicketViewer.class, <i class="conum" data-value="5"></i><b>(5)</b>
...
ApplicationModule.class, <i class="conum" data-value="6"></i><b>(6)</b>
...
})
public class AppManifest {
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>Mandatory - specifies the core of the Apache Isis framework</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>Enables the Shiro security mechanism.
There are several security implementations, precisely one must be selected</td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td>Enables <a href="../../../pjpa/2.0.0-M5/about.html" class="page">JPA/Eclipselink</a> for persistence.
<div class="paragraph">
<p>Alternatively, <code>IsisModuleJdoDataNucleus5.class</code> would be specified in order to use <a href="../../../pjdo/2.0.0-M5/about.html" class="page">JDO/DataNucleus</a> instead.</p>
</div>
<div class="paragraph">
<p>Optional (though if omitted then only <a href="../../../userguide/2.0.0-M5/fun/overview.html#view-models" class="page">view models</a> may be used, with hand-rolled persistence).</p>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td>Enables the <a href="../../../vro/2.0.0-M5/about.html" class="page">REST API (Restful Objects viewer)</a>.</td>
</tr>
<tr>
<td><i class="conum" data-value="5"></i><b>5</b></td>
<td>Enables the <a href="../../../vw/2.0.0-M5/about.html" class="page">Web UI (Wicket viewer)</a></td>
</tr>
<tr>
<td><i class="conum" data-value="6"></i><b>6</b></td>
<td>References the application&#8217;s module(s), in this case just the one, <code>ApplicationModule</code>.<br></td>
</tr>
</table>
</div>
<div class="paragraph">
<p>All of the components available are named in the form`IsisModuleXxx`, so they are easy to discover.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Components currently do <em>not</em> use Spring Boot&#8217;s auto-configuration capabilities.
That means that it&#8217;s not enough to just add the appropriate Maven module to the classpath; its corresponding <code>IsisModuleXxx</code> must be referenced using an <code>@Import</code>.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="configuration-properties"><a class="anchor" href="#configuration-properties"></a>Configuration Properties</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The core framework has a large number of configuration properties, as do the various <a href="#specifying-components">components</a>.
For that matter, so do some of the <a href="../../../subdomains/2.0.0-M5/about.html" class="page">subdomain</a> libraries, bounded context <a href="../../../mappings/2.0.0-M5/about.html" class="page">mapping</a> libraries and <a href="../../../valuetypes/2.0.0-M5/about.html" class="page">value type</a> libraries.</p>
</div>
<div class="paragraph">
<p>The remainder of this guide lists the various configuration properties available, broken out into logical sections.</p>
</div>
<div class="sect2">
<h3 id="isisconfiguration-domain-service"><a class="anchor" href="#isisconfiguration-domain-service"></a>IsisConfiguration domain service</h3>
<div class="paragraph">
<p>Applications can discover the current configuration properties for the framework (under the <code>isis</code> top-level key) by injecting the <code>IsisConfiguration</code> domain service.
There are similar domain services for <a href="../../../pjpa/2.0.0-M5/about.html" class="page">JPA/Eclipselink</a> (<code>EclipselinkConfiguration</code>), <a href="../../../pjdo/2.0.0-M5/about.html" class="page">JDO/DataNucleus</a> (<code>DatanucleusConfiguration</code>) and RestEasy (<code>RestEasyConfiguration</code>), as used by <a href="../../../vro/2.0.0-M5/about.html" class="page">REST API (Restful Objects viewer)</a>.</p>
</div>
<div class="paragraph">
<p>Applications can also create their own configuration properties file; the <a href="../../../docs/2.0.0-M5/starters/simpleapp.html" class="page">simpleapp</a> starter app provides an example.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="application-css"><a class="anchor" href="#application-css"></a>application.css</h2>
<div class="sectionbody">
<div class="paragraph">
<p>All of the layout annotations provide the ability to specify adhoc CSS classes, associated with the corresponding element:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="../applib/index/annotation/DomainObjectLayout.html#cssClass" class="page">@DomainObjectLayout#cssClass()</a></p>
</li>
<li>
<p><a href="../applib/index/annotation/ActionLayout.html#cssClass" class="page">@ActionLayout#cssClass()</a></p>
</li>
<li>
<p><a href="../applib/index/annotation/PropertyLayout.html#cssClass" class="page">@PropertyLayout#cssClass()</a></p>
</li>
<li>
<p><a href="../applib/index/annotation/CollectionLayout.html#cssClass" class="page">@CollectionLayout#cssClass()</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>CSS can also be specified using the <a href="../../../userguide/2.0.0-M5/fun/ui.html#object-layout" class="page">Xxx.layout.xml</a> layout files.
The viewer can then use this information within the rendered page.
For example, the <a href="../../../vw/2.0.0-M5/about.html" class="page">Web UI (Wicket viewer)</a> adds the CSS as a style in a containing <code>&lt;div&gt;</code> for each element.</p>
</div>
<div class="paragraph">
<p>The serving of the CSS (containing the style definitions) is also viewer-specific.
In the case of the <a href="../../../vw/2.0.0-M5/about.html" class="page">Web UI (Wicket viewer)</a> it uses Spring Boot to serve the CSS file, under <code>static</code> package on the classpath.</p>
</div>
<div class="paragraph">
<p>The name of the file under <code>static</code> is configurable, in either <code>application.yml</code> or <code>application.properties</code>.
For example, the <a href="../../../docs/2.0.0-M5/starters/simpleapp.html" class="page">SimpleApp</a> starter app uses <code>application.yml</code>:</p>
</div>
<div class="listingblock">
<div class="title">application.yml</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">isis:
viewer:
wicket:
application:
css: css/application.css</code></pre>
</div>
</div>
<div class="paragraph">
<p>This corresponds to the <code>static/css/application.css</code> (in <code>src/main/resources</code> in the simpleapp&#8217;s webapp module).</p>
</div>
</div>
</div>
</article>
<aside class="article-aside toc hide-for-print" role="navigation">
<p class="toc-title">On this page</p>
<div id="article-toc"></div>
</aside>
</main>
</div>
<footer class="footer">
<div class="content">
<div class="copyright">
<p>
Copyright © 2010~2021 The Apache Software Foundation, licensed under the Apache License, v2.0.
<br/>
Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.
</p>
</div>
<div class="revision">
<p>Revision: 2.0.0-M5.20210523-1443</p>
</div>
</div>
</footer>
<script src="../../../_/js/site.js"></script>
<script async src="../../../_/js/vendor/highlight.js"></script>
<script src="../../../_/js/vendor/jquery-3.4.1.min.js"></script>
<script src="../../../_/js/vendor/jquery-ui-1.12.1.custom.widget-only.min.js"></script>
<script src="../../../_/js/vendor/jquery.tocify.min.js"></script>
<script>
$(function() {
$("#article-toc").tocify( {
showEffect: "slideDown",
hashGenerator: "pretty",
hideEffect: "slideUp",
selectors: "h2, h3",
scrollTo: 120,
smoothScroll: true,
theme: "jqueryui",
highlightOnScroll: true
} );
});
</script>
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script>
function focusSearchInput () { document.querySelector('#algolia-search-input').focus() }
var search = docsearch({
appId: '5ISP5TFAEN',
apiKey: '0fc51c28b4ad46e7318e96d4e97fab7c',
indexName: 'isis-apache-org',
inputSelector: '#algolia-search-input',
autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
debug: false,
}).autocomplete
search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
focusSearchInput()
window.addEventListener('load', focusSearchInput);
</script>
<!--
docsearch options:
https://docsearch.algolia.com/docs/behavior/
-->
<!--
https://www.algolia.com/doc/api-reference/api-parameters/
algoliaOptions: { hitsPerPage: 6 },
-->
</body>
</html>