You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2023/01/25 10:37:15 UTC
[isis] branch master updated: ISIS-3328: factor out the doc stuff into its own dedicated module
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 350bd2c7da ISIS-3328: factor out the doc stuff into its own dedicated module
350bd2c7da is described below
commit 350bd2c7da5ac7856d75fa4b3022bc0095d56181
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jan 25 11:37:08 2023 +0100
ISIS-3328: factor out the doc stuff into its own dedicated module
- allows the doc stuff to be optional and is not forced onto devs
- also so we can depend on the ascii doc value type and add more
powerful features later on
---
bom/pom.xml | 9 +++++
.../runtimeservices/src/main/java/module-info.java | 1 -
.../CausewayModuleCoreRuntimeServices.java | 4 ---
examples/demo/domain/pom.xml | 4 +++
.../main/java/demoapp/dom/DemoModuleCommon.java | 2 ++
.../src/main/java/demoapp/dom/menubars.layout.xml | 2 +-
extensions/core/docgen/pom.xml | 40 ++++++++++++++++++++++
.../extensions/docgen/CausewayModuleExtDocgen.java | 26 ++++++++------
.../extensions/docgen/help}/DefaultHelpVm.java | 6 ++--
.../docgen/help}/DefaultHelpVm.layout.xml | 0
.../docgen/help}/DocumentationService.java | 4 ++-
.../docgen/help}/DocumentationServiceDefault.java | 6 ++--
.../extensions/docgen/menu}/DocumentationMenu.java | 7 ++--
extensions/pom.xml | 1 +
14 files changed, 86 insertions(+), 26 deletions(-)
diff --git a/bom/pom.xml b/bom/pom.xml
index 6ba892e0fb..1720305b1d 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -790,6 +790,15 @@ It is therefore a copy of org.apache:apache, with customisations clearly identif
<type>jar</type>
<scope>compile</scope>
</dependency>
+
+ <!-- org.apache.causeway.extensions (docgen) -->
+ <dependency>
+ <groupId>org.apache.causeway.extensions</groupId>
+ <artifactId>causeway-extensions-docgen</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
<!-- org.apache.causeway.extensions (excel) -->
<dependency>
diff --git a/core/runtimeservices/src/main/java/module-info.java b/core/runtimeservices/src/main/java/module-info.java
index 483fc21bad..69986102e3 100644
--- a/core/runtimeservices/src/main/java/module-info.java
+++ b/core/runtimeservices/src/main/java/module-info.java
@@ -20,7 +20,6 @@ module org.apache.causeway.core.runtimeservices {
exports org.apache.causeway.core.runtimeservices;
exports org.apache.causeway.core.runtimeservices.bookmarks;
exports org.apache.causeway.core.runtimeservices.command;
- exports org.apache.causeway.core.runtimeservices.helpui;
exports org.apache.causeway.core.runtimeservices.email;
exports org.apache.causeway.core.runtimeservices.eventbus;
exports org.apache.causeway.core.runtimeservices.executor;
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
index 4db5185f96..6fd8fbdacb 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
@@ -36,8 +36,6 @@ import org.apache.causeway.core.runtimeservices.email.EmailServiceDefault;
import org.apache.causeway.core.runtimeservices.eventbus.EventBusServiceSpring;
import org.apache.causeway.core.runtimeservices.executor.MemberExecutorServiceDefault;
import org.apache.causeway.core.runtimeservices.factory.FactoryServiceDefault;
-import org.apache.causeway.core.runtimeservices.helpui.DocumentationMenu;
-import org.apache.causeway.core.runtimeservices.helpui.DocumentationServiceDefault;
import org.apache.causeway.core.runtimeservices.homepage.HomePageResolverServiceDefault;
import org.apache.causeway.core.runtimeservices.i18n.po.TranslationServicePo;
import org.apache.causeway.core.runtimeservices.i18n.po.TranslationServicePoMenu;
@@ -88,7 +86,6 @@ import org.apache.causeway.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDe
CommandDtoFactoryDefault.class,
CommandExecutorServiceDefault.class,
CommandPublisherDefault.class,
- DocumentationServiceDefault.class,
EmailNotificationServiceDefault.class,
EmailServiceDefault.class,
EntityChangesPublisherDefault.class,
@@ -135,7 +132,6 @@ import org.apache.causeway.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDe
RepositoryServiceDefault.class,
// @DomainService's
- DocumentationMenu.class,
TranslationServicePoMenu.class,
// Exception Recognizers
diff --git a/examples/demo/domain/pom.xml b/examples/demo/domain/pom.xml
index eefabdca76..b1e141b99e 100644
--- a/examples/demo/domain/pom.xml
+++ b/examples/demo/domain/pom.xml
@@ -96,6 +96,10 @@
<groupId>org.apache.causeway.valuetypes</groupId>
<artifactId>causeway-valuetypes-vega-metamodel</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.causeway.extensions</groupId>
+ <artifactId>causeway-extensions-docgen</artifactId>
+ </dependency>
<!-- JDO specific -->
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java
index e1027d6f01..3ce146375b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java
@@ -28,6 +28,7 @@ import org.apache.causeway.applib.CausewayModuleApplibChangeAndExecutionLoggers;
import org.apache.causeway.applib.CausewayModuleApplibMixins;
import org.apache.causeway.core.config.presets.CausewayPresets;
import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
+import org.apache.causeway.extensions.docgen.CausewayModuleExtDocgen;
import org.apache.causeway.testing.fixtures.applib.CausewayModuleTestingFixturesApplib;
@Configuration
@@ -35,6 +36,7 @@ import org.apache.causeway.testing.fixtures.applib.CausewayModuleTestingFixtures
CausewayModuleApplibChangeAndExecutionLoggers.class,
CausewayModuleApplibMixins.class,
CausewayModuleCoreRuntimeServices.class,
+ CausewayModuleExtDocgen.class,
CausewayModuleTestingFixturesApplib.class,
})
@PropertySources({
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
index 9309a8feea..ebbb64922f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
@@ -392,7 +392,7 @@ For latest we use: https://raw.githubusercontent.com/apache/causeway/master/anto
<mb3:named/>
<mb3:section>
<mb3:named>Documentation</mb3:named>
- <mb3:serviceAction objectType="causeway.runtimeservices.DocumentationMenu" id="help"/>
+ <mb3:serviceAction objectType="causeway.ext.docgen.DocumentationMenu" id="help"/>
</mb3:section>
<mb3:section>
<mb3:named>Configuration</mb3:named>
diff --git a/extensions/core/docgen/pom.xml b/extensions/core/docgen/pom.xml
new file mode 100644
index 0000000000..7a5316d456
--- /dev/null
+++ b/extensions/core/docgen/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.causeway.extensions</groupId>
+ <artifactId>causeway-extensions</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>causeway-extensions-docgen</artifactId>
+ <name>Apache Causeway Ext - Docgen</name>
+
+ <description>
+ Provides a set of code mining features that can help building documentation for your application.
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.causeway.core</groupId>
+ <artifactId>causeway-core-metamodel</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.causeway.valuetypes</groupId>
+ <artifactId>causeway-valuetypes-asciidoc-applib</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationService.java b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/CausewayModuleExtDocgen.java
similarity index 57%
copy from core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationService.java
copy to extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/CausewayModuleExtDocgen.java
index e2eaf2438a..e3fb969bce 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationService.java
+++ b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/CausewayModuleExtDocgen.java
@@ -16,19 +16,25 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.core.runtimeservices.helpui;
+package org.apache.causeway.extensions.docgen;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+import org.apache.causeway.extensions.docgen.help.DocumentationServiceDefault;
+import org.apache.causeway.extensions.docgen.menu.DocumentationMenu;
/**
- * Provides the content for the {@link DocumentationMenu} entries.
- * <p>
- * Currently there is only one, namely (<i>help</i>).
- *
- * @see DocumentationMenu
- * @since 2.x {@index}
+ * Adds the {@link DocumentationMenu} with its auto-configured menu entries.
+ * @since 2.0 {@index}
*/
-public interface DocumentationService {
+@Configuration
+@Import({
+ DocumentationMenu.class,
+ DocumentationServiceDefault.class,
+})
+public class CausewayModuleExtDocgen {
- /** Returns a view-model or value that represents the application's primary help page. */
- Object getHelp();
+ public static final String NAMESPACE = "causeway.ext.docgen";
}
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DefaultHelpVm.java b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DefaultHelpVm.java
similarity index 91%
rename from core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DefaultHelpVm.java
rename to extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DefaultHelpVm.java
index 648e5ae940..7294b520a0 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DefaultHelpVm.java
+++ b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DefaultHelpVm.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.core.runtimeservices.helpui;
+package org.apache.causeway.extensions.docgen.help;
import javax.inject.Inject;
import javax.inject.Named;
@@ -30,12 +30,12 @@ import org.apache.causeway.applib.annotation.ObjectSupport;
import org.apache.causeway.applib.annotation.Property;
import org.apache.causeway.applib.annotation.PropertyLayout;
import org.apache.causeway.applib.value.Markup;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
+import org.apache.causeway.extensions.docgen.CausewayModuleExtDocgen;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-@Named(CausewayModuleCoreRuntimeServices.NAMESPACE + ".DefaultHelpVm")
+@Named(CausewayModuleExtDocgen.NAMESPACE + ".DefaultHelpVm")
@DomainObject(nature = Nature.VIEW_MODEL)
@DomainObjectLayout(
named = "Application Help",
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DefaultHelpVm.layout.xml b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DefaultHelpVm.layout.xml
similarity index 100%
rename from core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DefaultHelpVm.layout.xml
rename to extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DefaultHelpVm.layout.xml
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationService.java b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DocumentationService.java
similarity index 90%
rename from core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationService.java
rename to extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DocumentationService.java
index e2eaf2438a..35e105d291 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationService.java
+++ b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DocumentationService.java
@@ -16,7 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.core.runtimeservices.helpui;
+package org.apache.causeway.extensions.docgen.help;
+
+import org.apache.causeway.extensions.docgen.menu.DocumentationMenu;
/**
* Provides the content for the {@link DocumentationMenu} entries.
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationServiceDefault.java b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DocumentationServiceDefault.java
similarity index 98%
rename from core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationServiceDefault.java
rename to extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DocumentationServiceDefault.java
index 122c59fba3..843366d171 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationServiceDefault.java
+++ b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/help/DocumentationServiceDefault.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.core.runtimeservices.helpui;
+package org.apache.causeway.extensions.docgen.help;
import java.util.HashMap;
import java.util.Map;
@@ -53,13 +53,13 @@ import org.apache.causeway.core.metamodel.spec.ActionScope;
import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
import org.apache.causeway.core.metamodel.specloader.SpecificationLoader;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
+import org.apache.causeway.extensions.docgen.CausewayModuleExtDocgen;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Service
-@Named(CausewayModuleCoreRuntimeServices.NAMESPACE + ".DocumentationServiceDefault")
+@Named(CausewayModuleExtDocgen.NAMESPACE + ".DocumentationServiceDefault")
@Priority(PriorityPrecedence.MIDPOINT)
@Qualifier("Default")
@RequiredArgsConstructor(onConstructor_ = {@Inject})
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationMenu.java b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/menu/DocumentationMenu.java
similarity index 91%
rename from core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationMenu.java
rename to extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/menu/DocumentationMenu.java
index cfb27dae56..83b92a5719 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/helpui/DocumentationMenu.java
+++ b/extensions/core/docgen/src/main/java/org/apache/causeway/extensions/docgen/menu/DocumentationMenu.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.core.runtimeservices.helpui;
+package org.apache.causeway.extensions.docgen.menu;
import javax.inject.Inject;
import javax.inject.Named;
@@ -30,7 +30,8 @@ import org.apache.causeway.applib.annotation.MemberSupport;
import org.apache.causeway.applib.annotation.NatureOfService;
import org.apache.causeway.applib.annotation.PriorityPrecedence;
import org.apache.causeway.applib.annotation.SemanticsOf;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
+import org.apache.causeway.extensions.docgen.CausewayModuleExtDocgen;
+import org.apache.causeway.extensions.docgen.help.DocumentationService;
import lombok.RequiredArgsConstructor;
@@ -42,7 +43,7 @@ import lombok.RequiredArgsConstructor;
* @see DocumentationService
* @since 2.x {@index}
*/
-@Named(CausewayModuleCoreRuntimeServices.NAMESPACE + ".DocumentationMenu")
+@Named(CausewayModuleExtDocgen.NAMESPACE + ".DocumentationMenu")
@DomainService(nature = NatureOfService.VIEW)
@DomainServiceLayout(
menuBar = DomainServiceLayout.MenuBar.TERTIARY
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 3370102759..75b665b63c 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -91,6 +91,7 @@
<modules>
<module>core/commandlog</module>
+ <module>core/docgen</module>
<module>core/excel</module>
<module>core/executionlog</module>
<module>core/executionoutbox</module>