You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/05/25 13:51:20 UTC
[2/5] isis git commit: ISIS-1133: reworking references
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_aaa.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_aaa.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_aaa.adoc
new file mode 100644
index 0000000..9f39f04
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_aaa.adoc
@@ -0,0 +1,253 @@
+= anchor:reference-services-api[]Summary
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+
+IMPORTANT: TODO
+
+
+== Applib Services
+
+The table below summarizes all the APIs defined by Apache Isis. It also lists their corresponding implementation, either a default implementation provided by Isis itself, or provided by one of the in http://isisaddons.org[Isis Addons] (non-ASF)modules.
+
+.Domain Services
+[cols="2,4a,3a,1", options="header"]
+|===
+
+|API
+|Description
+|Implementation
+|Notes
+
+
+|<<__code_actioninvocationcontext_code, `o.a.i.applib.` +
+`services.actinv` +
+`ActionInvocation-` +
+`Context`>>
+|Request-scoped access to whether action is invoked on object and/or on collection of objects
+|`ActionInvocationContext` +
+``o.a.i.core`` +
+``isis-core-applib``
+|API is also concrete class
+
+
+|<<__code_backgroundservice_code, `o.a.i.applib.` +
+`services.background` +
+`BackgroundService`>>
+|Programmatic persistence of commands to be persisted (so can be executed by a background mechanism, eg scheduler)
+|`BackgroundServiceDefault` +
+``o.a.i.core`` +
+``isis-core-runtime``
+|depends on: +
+`BackgroundCommandService`
+
+
+|<<__code_bookmarkservice_code, `o.a.i.applib.` +
+`services.bookmark` +
+`BookmarkService`>>
+|Convert object reference to a serializable "bookmark", and vice versa
+|`BookmarkServiceDefault` +
+``o.a.i.core`` +
+``isis-core-metamodel``
+|related services:
+`BookmarkHolder-` ++
+`ActionContributions`,
+`BookmarkHolder-` ++
+`AssociationContributions`
+
+
+|<<__code_clockservice_code, `o.a.i.applib.` +
+`services.clock` +
+`ClockService`>>
+|Access the current time (and for testing, allow the time to be changed)
+|`ClockService` +
+``o.a.i.core`` +
+``isis-core-applib``
+|API is also a concrete class.
+
+
+|<<__code_commandcontext_code, `o.a.i.applib.` +
+`services.command` +
+`CommandContext`>>
+|Request-scoped access the current action that is being invoked, represented as a command object
+|`CommandContext` +
+``o.a.i.core`` +
+``isis-core-applib``
+|API is also a concrete class. +
+depends on: +
+`CommandService` for persistent `Command`, else in-memory impl. used
+
+|<<__code_deeplinkservice_code, `o.a.i.applib` +
+`services.deeplink` +
+`DeepLinkService`>>
+|Obtain a URL to a domain object (eg for use within an email or report)
+|`DeepLinkServiceWicket` +
+``o.a.i.viewer`` +
+``isis-viewer-wicket-impl``
+|Implementation only usable within Wicket viewer
+
+
+|<<__code_domainobjectcontainer_code, `o.a.i.applib` +
+`DomainObjectContainer`>>
+|Generic repository to search, create and delete objects. Also miscellaneous other functions, eg obtain title of object.
+|`DomainObjectContainerDefault` +
+``o.a.i.core`` +
+``isis-core-metamodel``
+|
+
+
+|<<__code_emailservice_code, `o.a.i.applib.` +
+`services.email` +
+`EmailService`>>
+|Send a HTML email, optionally with attachments.
+|`EmailServiceDefault` +
+``o.a.i.core`` +
+``isis-core-runtime``
+|
+
+
+|<<__code_eventbusservice_code, `o.a.i.applib.` +
+`services.eventbus` +
+`EventBusService`>>
+|Programmatically post events to the internal event bus. Also used by Isis itself to broadcast domain events:
+
+* xref:__a_id_reference_annotations_manpage_action_a_domainevent[`Action#domainEvent()`]
+* xref:__a_id_reference_annotations_manpage_property_a_domainevent[`Property#domainEvent()`]
+* xref:__a_id_reference_annotations_manpage_collection_a_domainevent[`Collection#domainEvent()`]
+|`EventBusServiceJdo` +
+``o.a.i.core`` +
+``isis-core-objectstore-jdo-datanucleus``
+|
+
+
+|<<__code_guicebeanprovider_code, `o.a.i.applib.` +
+`services.guice` +
+`GuiceBeanProvider`>>
+|Access to internal framework services initialized using Guice DI.
+|`GuiceBeanProviderWicket` +
+``o.a.i.core`` +
+``isis-viewer-wicket-impl``
+|
+
+
+|<<__code_isisjdosupport_code, `o.a.i.applib.` +
+`services.jdosupport` +
+`IsisJdoSupport`>>
+|Lower level access to the JDO Persistence API.
+|`IsisJdoSupportImpl` +
+``o.a.i.core`` +
+``isis-core-objectstore-jdo-datanucleus``
+|
+
+
+|<<__code_mementoservice_code, `o.a.i.applib.` +
+`services.memento` +
+`MementoService`>>
+|Capture a serializable memento of a set of primitives or xref:__a_id_reference_services_api_manpage_a_code_bookmarkservice_code[bookmarks]. Primarily used internally, eg in support of commands/auditing.
+|`MementoServiceDefault` +
+``o.a.i.core`` +
+``isis-core-runtime``
+|
+
+
+|<<__code_metamodelservice_code, `o.a.i.applib.` +
+`services.metamodel` +
+`MetaModelService`>>
+|Access to certain information from the Isis metamodel.
+|`MetaModelServiceDefault` +
+``o.a.i.core`` +
+``isis-core-metamodel``
+|
+
+
+|<<__code_queryresultscache_code, `o.a.i.applib.` +
+`services.` +
+`queryresultscache` +
+`QueryResultsCache`>>
+|Request-scoped caching of the results of queries (or any data set generated by a given set of input arguments).
+|`QueryResultsCache` +
+``o.a.i.core`` +
+``isis-core-applib``
+|API is also a concrete class
+
+
+|<<__code_scratchpad_code, `o.a.i.applib.` +
+`services.scratchpad` +
+`Scratchpad`>>
+|Request-scoped service for interchanging information between and aggregating over multiple method calls; in particular for use by "bulk" actions (invoking of an action for all elements of a collection)
+|`Scratchpad` +
+``o.a.i.core`` +
+``isis-core-applib``
+|API is also a concrete class
+
+
+|<<__code_scratchpad_code, `o.a.i.applib.` +
+`services.sudo` +
+`SudoService`>>
+|For use in testing while running xref:__a_id_reference_classes_super_manpage_a_code_fixturescripts_code[fixture scripts], allows a block of code to run as a specified user account.
+|`SudoServiceDefault` +
+``o.a.i.core`` +
+``isis-core-runtime``
+|API is also a concrete class
+
+
+|<<__code_wrapperfactory_code, `o.a.i.applib.` +
+`services.wrapper` +
+`WrapperFactory`>>
+|Interact with another domain object "as if" through the UI (enforcing business rules, firing domain events)
+|`WrapperFactoryDefault` +
+``o.a.i.core`` +
+``isis-core-wrapper``
+|
+
+
+|<<__code_xmlsnapshotservice_code, `o.a.i.applib.` +
+`services.xmlsnapshot` +
+`XmlSnapshotService`>>
+|Generate an XML representation of an object and optionally a graph of related objects.
+|`XmlSnapshotServiceDefault` +
+``o.a.i.core`` +
+``isis-core-runtime``
+|
+
+|===
+
+Key:
+
+* `o.a.i` is an abbreviation for `org.apache.isis`
+* `o.ia.m` is an abbreviation for `org.isisaddons.module`
+
+
+
+
+== Deprecated Services
+
+There is also a number of deprecated domain services.
+
+.Deprecated Domain Services
+[cols="2,4a,1,1", options="header"]
+|===
+
+|API
+|Maven Module +
+Impl'n (g: a:)
+|Implementation
+|Notes
+
+|`o.a.i.applib.` +
+`annotation`
+`Bulk.InteractionContext`
+|``o.a.i.core`` +
+``isis-core-applib``
+|`Bulk.InteractionContext`
+|Replaced by `ActionInvocationContext`
+
+
+|===
+
+Key:
+
+* `o.a.i` is an abbreviation for `org.apache.isis`
+* `o.ia.m` is an abbreviation for `org.isisaddons.module`
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ActionInvocationContext.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ActionInvocationContext.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ActionInvocationContext.adoc
new file mode 100644
index 0000000..d89749b
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ActionInvocationContext.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-ActionInvocationContext]]
+= `ActionInvocationContext`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BackgroundService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BackgroundService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BackgroundService.adoc
new file mode 100644
index 0000000..8549afe
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BackgroundService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-BackgroundService]]
+= `BackgroundService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BookmarkService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BookmarkService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BookmarkService.adoc
new file mode 100644
index 0000000..c5df5df
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-BookmarkService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-BookmarkService]]
+= `BookmarkService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ClockService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ClockService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ClockService.adoc
new file mode 100644
index 0000000..16f8bf5
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ClockService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-ClockService]]
+= `ClockService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-CommandContext.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-CommandContext.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-CommandContext.adoc
new file mode 100644
index 0000000..ed91cf5
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-CommandContext.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-CommandContext]]
+= `CommandContext`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DeepLinkService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DeepLinkService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DeepLinkService.adoc
new file mode 100644
index 0000000..3623b22
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DeepLinkService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-DeepLinkService]]
+= `DeepLinkService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DomainObjectContainer.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DomainObjectContainer.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DomainObjectContainer.adoc
new file mode 100644
index 0000000..a68459e
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-DomainObjectContainer.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-DomainObjectContainer]]
+= `DomainObjectContainer`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EmailService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EmailService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EmailService.adoc
new file mode 100644
index 0000000..c69364b
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EmailService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-EmailService]]
+= `EmailService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EventBusService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EventBusService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EventBusService.adoc
new file mode 100644
index 0000000..bd86829
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-EventBusService.adoc
@@ -0,0 +1,16 @@
+[[reference-services-api_manpage-EventBusService]]
+= `EventBusService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+## Implementation
+
+IMPORTANT: TODO
+
+## Registration
+
+The `EventBusServiceJdo` class provides the default implementation and (as of 1.6.0+) is automatically registered using `@DomainService`. No further configuration is necessary.
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-GuiceBeanProvider.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-GuiceBeanProvider.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-GuiceBeanProvider.adoc
new file mode 100644
index 0000000..6eb0846
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-GuiceBeanProvider.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-GuiceBeanProvider]]
+= `GuiceBeanProvider`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-IsisJdoSupport.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-IsisJdoSupport.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-IsisJdoSupport.adoc
new file mode 100644
index 0000000..5385eb9
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-IsisJdoSupport.adoc
@@ -0,0 +1,130 @@
+[[reference-services-api_manpage-IsisJdoSupport]]
+= `IsisJdoSupport`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+The `IsisJdoSupport` service provides a number of general purpose methods for working with the JDO/DataNucleus objectstore.
+
+
+== API
+
+The API provided by `IsisJdoSupport` is:
+
+[source,java]
+----
+public interface IsisJdoSupport {
+ List<Map<String, Object>> executeSql(String sql);
+ Integer executeUpdate(String sql);
+ void deleteAll(Class<?>... pcClasses);
+ <T> T refresh(T domainObject);
+ void ensureLoaded(Collection<?> collectionOfDomainObjects);
+ PersistenceManager getJdoPersistenceManager();
+}
+----
+
+Each of these methods are discussed in more details below.
+
+
+== Executing arbitrary SQL
+
+The `executeSql(...)` method allows arbitrary queries to be submitted:
+
+[source,java]
+----
+List<Map<String, Object>> results = isisJdoSupport.executeSql("select * from custMgmt.customers");
+----
+
+The result set is automatically converted into a list of maps, where the map key is the column name.
+
+
+In a similar manner, the `executeUpdate(...)` allows arbitrary updates to be performed.
+
+[source,java]
+----
+int count = isisJdoSupport.executeUpdate("select count(*) from custMgmt.customers);
+----
+
+The returned value is the number of rows updated.
+
+
+
+== Fixture support
+
+The `deleteAll(...)` method is provided pretty much exclusively for tearing down fixture data:
+
+[source,java]
+----
+deleteAll(Order.class);
+deleteAll(CustomerAddress.class);
+deleteAll(Customer.class);
+----
+
+[NOTE]
+====
+It can occasionally be the case that Isis' internal adapter for the domain object is
+still in memory. JDO/DataNucleus seems to bump up the version of the object prior to its deletion,
+which under normal circumstances would cause Isis to throw a concurrency exception. Therefore
+to prevent this from happening (ie to <i>force</i> the deletion of all instances), concurrency checking
+is temporarily disabled while this method is performed.
+====
+
+
+
+== Reloading entities
+
+A http://www.datanucleus.org/products/datanucleus/jdo/orm/relationships.html[known limitation] of DataNucleus' implementation of JDO is that persisting a child entity (in a 1:n bidirectional relationship) does not cause the parent's collection to be updated.
+
+The `refresh(T domainObject)` method can be used to reload the parent object (or indeed any object).
+
+For example:
+
+[source,java]
+----
+public Order newOrder(final Customer customer) {
+ Order order = newTransientInstance(Order.class);
+ order.setCustomer(customer);
+ persist(customer);
+ getContainer().flush(); // <1>
+ isisJdoSupport.refresh(customer); // <2>
+ return order;
+}
+----
+<1> flush to database
+<2> reload parent from database
+
+
+[NOTE]
+====
+The particular example that led to this method being added was a 1:m bidirectional relationship,
+analogous to `Customer <-> * Order`. Persisting the child `Order` object did not cause
+the parent ``Customer``'s collection of orders to be updated. In fact, JDO does not make any
+such guarantee to do so. Options are therefore either to maintain the collection in code, or to
+refresh the parent.
+
+====
+
+
+
+
+== Using JDO `PersistenceManager` directly
+
+Apache Isis provides a simplified API on top of only supports JDO, and so does not support all of JDO's features. For example, Isis (currently) only supports named queries. If you require more flexibility than this, eg for dynamically constructed queries, then the service provides access to the underlying JDO `PersistenceManager` API:
+
+[source,java]
+----
+public List<Order> findOrders(...) {
+ javax.jdo.PersistenceManager pm = isisJdoSupport.getPersistenceManager();
+
+ // knock yourself out...
+
+ return someListOfOrders;
+}
+----
+
+
+
+== Registering the Service
+
+The `IsisJdoSupportImpl` class provides the default implementation and (as of 1.6.0+) is automatically registered using `@DomainService`. No further configuration is necessary.
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MementoService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MementoService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MementoService.adoc
new file mode 100644
index 0000000..972380e
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MementoService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-MementoService]]
+= `MementoService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MetamodelService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MetamodelService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MetamodelService.adoc
new file mode 100644
index 0000000..87a58e3
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-MetamodelService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-MetamodelService]]
+= `MetamodelService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-QueryResultsCache.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-QueryResultsCache.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-QueryResultsCache.adoc
new file mode 100644
index 0000000..6d6ce09
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-QueryResultsCache.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-QueryResultsCache]]
+= `QueryResultsCache`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ScratchPad.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ScratchPad.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ScratchPad.adoc
new file mode 100644
index 0000000..766dd99
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-ScratchPad.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-ScratchPad]]
+= `ScratchPad`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-SudoService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-SudoService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-SudoService.adoc
new file mode 100644
index 0000000..e654708
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-SudoService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-SudoService]]
+= `SudoService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-WrapperFactory.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-WrapperFactory.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-WrapperFactory.adoc
new file mode 100644
index 0000000..fd896e0
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-WrapperFactory.adoc
@@ -0,0 +1,19 @@
+[[reference-services-api_manpage-WrapperFactory]]
+= `WrapperFactory`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
+
+
+
+
+
+== `wrapNoExecute()`
+
+
+== `wrapSkipRules()`
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-XmlSnapshotService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-XmlSnapshotService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-XmlSnapshotService.adoc
new file mode 100644
index 0000000..f4087d6
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-api_manpage-XmlSnapshotService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-api_manpage-XmlSnapshotService]]
+= `XmlSnapshotService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi.adoc
new file mode 100644
index 0000000..dccb94b
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi.adoc
@@ -0,0 +1,29 @@
+= anchor:chapter[]Reference: Domain Services (SPI)
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+Apache Isis includes an extensive number of domain services for your domain objects to use; these are listed in xref:__a_id_chapter_a_reference_domain_services_(api)[Reference: Domain Services (API)]. But some of the services interfaces defined in the applib are intended to be used (primarily) not by your domain objects but instead by Isis itself.
+
+A good example of this is the xref:__code_auditingservice3_code[`AuditingService3`] service; if an implementation is present then Isis will call that service in order to record audit log entries. If no implementation is available then Isis will carry on regardless.
+
+Some domain services can be considered both API and SPI; a good example is the `EmailService` that is of direct use for domain objects wishing to send out emails, but is also used by the framework to support the user registration functionality supported by the xref:_wicket_viewer[Wicket viewer]. The same is true of the xref:__code_eventbusservice_code[`EventBusService`]; this can be used by domain objects to broadcast arbitrary events, but is also used by the framework to automatically emit events eg for `@Action(domainEvent=...)`. For these hybrid services we have categorized the service as an "API" service. This chapter therefore contains only the strictly SPI services.
+
+include::_ug_reference-services-spi_aaa.adoc[leveloffset=+1]
+
+include::_ug_reference-services-spi_manpage-AuditingService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-BackgroundCommandService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-ClassDiscoveryService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-CommandService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-ContentMappingService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-ContentNegotiationService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-EmailNotificationService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-EventSerializer.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-ExceptionRecognizer.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-LocaleProvider.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-PublishingService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-TranslationService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-TranslationsResolver.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-UserProfileService.adoc[leveloffset=+1]
+include::_ug_reference-services-spi_manpage-UserRegistrationService.adoc[leveloffset=+1]
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_aaa.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_aaa.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_aaa.adoc
new file mode 100644
index 0000000..67728e1
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_aaa.adoc
@@ -0,0 +1,236 @@
+= anchor:reference-services-spi[]Summary
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+
+IMPORTANT: TODO
+
+== Applib SPIs
+
+
+.Domain Services
+[cols="2,4a,1,1", options="header"]
+|===
+
+
+|API
+|Description
+|Implementation
+|Notes
+
+
+|<<__code_auditingservice3_code, `o.a.i.applib.` +
+`services.audit` +
+`AuditingService3`>>
+|Create an audit record for every changed property of every changed object within a transaction.
+|`AuditingService` +
+``o.ia.m.audit`` +
+``isis-module-audit``
+|related services:
+`AuditingService-` +
+`Contributions`,
+`AuditingService-` +
+`Repository`
+
+|<<__code_backgroundcommandservice_code, `o.a.i.applib.` +
+`services.background` +
+`BackgroundCommandService`>>
+|Persisted a memento of an action invocation such that it can be executed asynchronously ("in the background") eg by a scheduler.
+|`BackgroundCommandServiceJdo` +
+``o.ia.m.command`` +
+``isis-module-command``
+|related services:
+`BackgroundCommandService-` +
+`JdoContributions`,
+`BackgroundCommandService-` +
+`JdoRepository`
+
+
+|<<__code_classdiscoveryservice_code, `o.a.i.applib.` +
+`services.classdiscovery` +
+`ClassDiscoveryService`>>
+|Mechanism to locate (from the classpath) classes with a specific annotation (eg xref:__a_id_reference_annotations_manpage_a_code_domainservice_code[`@DomainService`])
+
+Subtypes of a given type (eg xref:__a_id_reference_classes_super_manpage_a_code_fixturescript_code[`FixtureScript`]).
+|`ClassDiscoveryService-` +
+`UsingReflections` +
+``o.a.i.core`` +
+``isis-core-applib``
+|requires `org.reflections:reflections` as Maven dependency
+
+
+|<<__code_commandservice_code, `o.a.i.applib.` +
+`services.command.spi` +
+`CommandService`>>
+|Service to act as a factory and repository (create and save) of command instances, ie representations of an action invocation. Used for command/auditing and background services.
+|`CommandServiceJdo` +
+``o.ia.m.command`` +
+``isis-module-command``
+|related services: +
+`CommandService-` ++
+`JdoContributions`,
+`CommandService-` ++
+`JdoRepository`
+
+
+|<<__code_emailnotificationservice_code, `o.a.i.applib.` +
+`services.userreg` +
+`EmailNotificationService`>>
+|Notify a user during xref:__a_id_reference_services_spi_manpage_a_code_userregistrationservice_code[self-registration] of users.
+|`EmailNotificationService-` +
+`Default` +
+``o.a.i.core`` +
+``isis-core-runtime``
+|depends on: +
+a configured `EmailService`
+
+|<<__code_eventserializer_code, `o.a.i.applib.` +
+`services.publish` +
+`EventSerializer`>>
+|Creates a representation of either an action invocation or a changed object being published through the xref:__a_id_reference_services_spi_manpage_a_code_publishingservice_code[`PublishingService`].
+|`RestfulObjects-` +
+`SpecEventSerializer` +
+``o.ia.m.publishing`` +
+``isis-module-publishing``
+|
+
+
+|<<__code_exceptionrecognizer_code, `o.a.i.applib.` +
+`services.exceprecog` +
+`ExceptionRecognizer`>>
+|Convert certain exceptions (eg foreign or unique key violation in the database) into a format that can be rendered to the end-user.
+|`ExceptionRecognizer-` +
+`CompositeFor-` +
+`JdoObjectStore` +
+``o.a.i.core`` +
+``isis-core-applib``
+|Extensible using composite pattern if required
+
+
+|<<__code_localeprovider_code, `o.a.i.applib.` +
+`services.i18n` +
+`LocaleProvider`>>
+|Request-scoped service to return the locale of the current user, in support of i18n (ie so that the app's UI, messages and exceptions can be translated to the required locale by the xref:__a_id_reference_services_spi_manpage_a_code_translationservice_code[`TranslationService`].
+|`LocaleProviderWicket` +
+``o.a.i.viewer`` +
+``isis-viewer-wicket-impl``
+|
+
+|<<__code_publishingservice_code, `o.a.i.applib.` +
+`services.publish` +
+`PublishingService`>>
+|Publish any action invocations and changed objects, typically for interchange with an external system in a different bounded context.
+|`PublishingService` +
+``o.ia.m.publishing`` +
+``isis-module-publishing``
+|related services:
+`PublishingService-` ++
+`Contributions`,
+`PublishingService-` ++
+`Repository`. +
+depends on: +
+`EventSerializer`
+
+
+|<<__code_translationservice_code, `o.a.i.applib.` +
+`services.i18n` +
+`TranslationService`>>
+|Translate an app's UI, messages and exceptions for the current user (as per the locale provided by xref:__a_id_reference_services_spi_manpage_a_code_localprovider_code[`LocalProvider`].
+|`TranslationServicePo` +
+``o.a.i.core`` +
+``isis-core-runtime``
+|related services: `TranslationServicePoMenu` +
+depends on: +
+`TranslationsResolver`, `LocaleProvider`
+
+
+|<<__code_translationsresolver_code, `o.a.i.applib.` +
+`services.i18n` +
+`TranslationsResolver`>>
+|Obtain translations for a particuar phrase and locale, in support of i18n (ie so that the app's UI, messages and exceptions can be translated to the required locale by the xref:__a_id_reference_services_spi_manpage_a_code_translationservice_code[`TranslationService`]
+|`TranslationsResolverWicket` +
+``o.a.i.viewer`` +
+``isis-viewer-wicket-impl``
+|
+
+
+|<<__code_userprofileservice_code, `o.a.i.applib.` +
+`services.userprof` +
+`UserProfileService`>>
+|Obtain an alternative (usually enriched/customized) name for the current user, to render in the UI.
+|
+|SPI only
+
+|<<__code_userregistrationservice_code, `o.a.i.applib.` +
+`services.userreg` +
+`UserRegistrationService`>>
+|Create a new user account with the configured security mechanism.
+|`SecurityModule-` +
+`AppUserRegistrationService` +
+``o.ia.m.security`` +
+``isis-module-security``
+|depends (implicitly) on: +
+a configured `EmailService`
+
+
+|===
+
+
+Key:
+
+* `o.a.i` is an abbreviation for `org.apache.isis`
+* `o.ia.m` is an abbreviation for `org.isisaddons.module`
+
+
+Where an implementation is available (on the classpath) then it is always registered automatically (that is, they are all (with one exception) annotated with xref:__a_id_reference_annotations_manpage_a_code_domainservice_code[`@DomainService`]. The one exception is xref:__a_id_reference_services_spi_manpage_a_code_exceptionrecognizer_code[`ExceptionRecognizer`], which must be registered explicitly in `isis.properties`; this makes the service extensible (for new exceptions to be recognized).
+
+
+
+
+== "Internal" SPIs
+
+These services definitions depend on the internals of the framework.
+
+[WARNING]
+====
+We do not guarantee that link:semver.org[semantic versioning] will be honoured for these APIs.
+====
+
+
+
+.Semi-public SPI
+[cols="3,3,2,2a", options="header"]
+|===
+
+|SPI
+|Maven Module +
+Impl'n (g: a:)
+|Implementation
+|Notes
+
+
+|<<__code_contentmappingservice_code, `o.a.i.v.ro.` +
+`rendering.service.conneg.` +
+`ContentMappingService`>>
+|(Attempt to) map the returned data into the representation required by the client's HTTP `Accept` header.
+|
+|No default implementation.
+
+|<<__code_contentnegotiationservice_code, `o.a.i.v.ro.` +
+`rendering.service.conneg.` +
+`ContentNegotiationService`>>
+|Encodes the algorithm that delegate to any registered xref:__a_id_reference_services_spi_manpage_a_code_contentmappingservice_code[`ContentMappingService`]s.
+|`ContentNegotiationService-` +
+`XRoDomainType` +
+``o.a.i.core`` +
+`isis-core-viewer-restfulobjects-rendering`
+|
+
+
+|===
+
+Key:
+
+* `o.a.i.v.ro` is an abbreviation for `org.apache.isis.viewer.restfulobjects`
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-AuditingService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-AuditingService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-AuditingService.adoc
new file mode 100644
index 0000000..b0a8976
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-AuditingService.adoc
@@ -0,0 +1,83 @@
+[[reference-services-spi_manpage-AuditingService3]]
+= `AuditingService3`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+
+
+
+The auditing service provides a simple mechanism to capture changes to data. It is called for each property that has changed on any domain object, as a set of pre- and post-values.
+
+== API
+
+The API for the service is:
+
+[source,java]
+----
+public interface AuditingService3 {
+
+ @Programmatic
+ public void audit(
+ final UUID transactionId, String targetClassName, final Bookmark target,
+ String memberIdentifier, final String propertyName,
+ final String preValue, final String postValue,
+ final String user, final java.sql.Timestamp timestamp);
+ }
+----
+
+
+
+== Implementations
+
+For 1.7.0+, see the http://github.com/isisaddons/isis-module-audit[Isis addons' Audit module] (non-ASF).
+
+If you just want to debug (writing to stderr), you can instead configure `org.apache.isis.applib.services.audit.AuditingService3$Stderr`
+
+
+
+== Usage
+
+=== Explicitly marking an object as audited
+
+The typical way to indicate that an object should be audited is to annotate it with the link:../recognized-annotations/Audited.html[@Audited] annotation, for example:
+
+[source,java]
+----
+@Audited
+public class ToDoItem ... {
+ ...
+}
+----
+
+=== Making auditing the default
+
+As an alternative to annotating every object with `@Audited`, alternatively this can be configured as the default. Add the following to `isis.properties`:
+
+[source]
+----
+isis.services.audit.objects=all
+----
+
+To prevent an object from being audited (even if globally enabled), use the `@Audited` annotation with the `disabled` attribute:
+
+[source]
+----
+@Audited(disabled=true)
+public class NotAuditedObject { ... }
+----
+
+To disable globally, use:
+
+[source]
+----
+isis.services.audit.objects=none
+----
+
+If the key is not present in `isis.properties`, then objects are not audited by default.
+
+
+=== Related Services
+
+A similar service that you may want to use alongside or instead of the auditing service is the link:publishing-service.html[Publishing Service].
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-BackgroundCommandService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-BackgroundCommandService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-BackgroundCommandService.adoc
new file mode 100644
index 0000000..f51ef95
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-BackgroundCommandService.adoc
@@ -0,0 +1,13 @@
+[[reference-services-spi_manpage-BackgroundCommandService]]
+= `BackgroundCommandService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
+== Isis Addons Implementation
+
+For 1.7.0+, see the http://github.com/isisaddons/isis-module-command[Isis addons' Command module] (non-ASF).
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ClassDiscoveryService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ClassDiscoveryService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ClassDiscoveryService.adoc
new file mode 100644
index 0000000..65fc0c5
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ClassDiscoveryService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-ClassDiscoveryService]]
+= `ClassDiscoveryService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-CommandService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-CommandService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-CommandService.adoc
new file mode 100644
index 0000000..bd9d2b4
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-CommandService.adoc
@@ -0,0 +1,12 @@
+[[reference-services-spi_manpage-CommandService]]
+= `CommandService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
+== Isis Addons Implementation
+
+For 1.7.0+, see the http://github.com/isisaddons/isis-module-command[Isis addons' Command module] (non-ASF).
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentMappingService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentMappingService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentMappingService.adoc
new file mode 100644
index 0000000..a04dc75
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentMappingService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-ContentMappingService]]
+= `ContentMappingService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentNegotiationService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentNegotiationService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentNegotiationService.adoc
new file mode 100644
index 0000000..3d3cd9a
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ContentNegotiationService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-ContentNegotiationService]]
+= `ContentNegotiationService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EmailNotificationService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EmailNotificationService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EmailNotificationService.adoc
new file mode 100644
index 0000000..75382a8
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EmailNotificationService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-EmailNotificationService]]
+= `EmailNotificationService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EventSerializer.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EventSerializer.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EventSerializer.adoc
new file mode 100644
index 0000000..75dc642
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-EventSerializer.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-EventSerializer]]
+= `EventSerializer`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ExceptionRecognizer.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ExceptionRecognizer.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ExceptionRecognizer.adoc
new file mode 100644
index 0000000..56aabd3
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-ExceptionRecognizer.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-ExceptionRecognizer]]
+= `ExceptionRecognizer`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-LocaleProvider.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-LocaleProvider.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-LocaleProvider.adoc
new file mode 100644
index 0000000..3949a51
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-LocaleProvider.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-LocaleProvider]]
+= `LocaleProvider`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-PublishingService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-PublishingService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-PublishingService.adoc
new file mode 100644
index 0000000..7bf1802
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-PublishingService.adoc
@@ -0,0 +1,12 @@
+[[reference-services-spi_manpage-PublishingService]]
+= `PublishingService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
+== Isis Addons Implementation
+
+For 1.7.0+, see the http://github.com/isisaddons/isis-module-publishing[Isis addons' Publishing module] (non-ASF).
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationService.adoc
new file mode 100644
index 0000000..46f1a2d
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-TranslationService]]
+= `TranslationService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationsResolver.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationsResolver.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationsResolver.adoc
new file mode 100644
index 0000000..03748a5
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-TranslationsResolver.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-TranslationsResolver]]
+= `TranslationsResolver`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserProfileService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserProfileService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserProfileService.adoc
new file mode 100644
index 0000000..cbf800f
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserProfileService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-UserProfileService]]
+= `UserProfileService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserRegistrationService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserRegistrationService.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserRegistrationService.adoc
new file mode 100644
index 0000000..7274021
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services-spi_manpage-UserRegistrationService.adoc
@@ -0,0 +1,9 @@
+[[reference-services-spi_manpage-UserRegistrationService]]
+= `UserRegistrationService`
+: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.
+:_basedir: ../
+:_imagesdir: images/
+
+IMPORTANT: TODO
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services.adoc
deleted file mode 100644
index f1afd08..0000000
--- a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services.adoc
+++ /dev/null
@@ -1,16 +0,0 @@
-= anchor:chapter[]Reference: Services
-: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.
-:_basedir: ../
-:_imagesdir: images/
-
-
-Apache Isis includes an extensive number of domain services for your domain objects to use; simply define the service as an annotated field and Isis will inject the service into your object. These services' API are all defined in Isis' applib (`o.a.i.core:isis-core-applib` module); this minimizes the coupling between your code and Isis. It also allows you to easily mock out these services in your unit tests.
-
-Some of the services defined in the applib are intended to be used (primarily) not by your domain objects but instead by Isis itself. A good example of this is the xref:__code_auditingservice3_code[`AuditingService3`] service; if an implementation is present then Isis will call that service in order to record audit log entries. If no implementation is available then Isis will carry on regardless.
-
-Some domain services can be considered both API and SPI; a good example is the `EmailService` that is of direct use for domain objects wishing to send out emails, but is also used by the framework to support the user registration functionality supported by the xref:_wicket_viewer[Wicket viewer]. The same is true of the xref:__code_eventbusservice_code[`EventBusService`]; this can be used by domain objects to broadcast arbitrary events, but is also used by the framework to automatically emit events eg for `@Action(domainEvent=...)`. For these hybrid services we we have categorized the service as an "API" service.
-
-
-include::_ug_reference-services_api.adoc[leveloffset=+1]
-include::_ug_reference-services_spi.adoc[leveloffset=+1]
-
http://git-wip-us.apache.org/repos/asf/isis/blob/f6fe92db/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services_api.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services_api.adoc b/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services_api.adoc
deleted file mode 100644
index aa5abf1..0000000
--- a/adocs/documentation/src/main/asciidoc/user-guide/_ug_reference-services_api.adoc
+++ /dev/null
@@ -1,30 +0,0 @@
-= anchor:reference-services[]Domain Services (API)
-: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.
-:_basedir: ../
-:_imagesdir: images/
-
-
-IMPORTANT: TODO
-
-include::_ug_reference-services_api_aaa.adoc[leveloffset=+1]
-
-include::_ug_reference-services_api_manpage-ActionInvocationContext.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-BackgroundService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-BookmarkService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-ClockService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-CommandContext.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-DeepLinkService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-DomainObjectContainer.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-EmailService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-EventBusService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-GuiceBeanProvider.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-IsisJdoSupport.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-MementoService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-MetamodelService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-QueryResultsCache.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-ScratchPad.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-SudoService.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-WrapperFactory.adoc[leveloffset=+1]
-include::_ug_reference-services_api_manpage-XmlSnapshotService.adoc[leveloffset=+1]
-
-