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 2021/02/23 00:11:45 UTC
[isis] 07/11: ISIS-2444: putative fixes to xref's in system overview
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 524902459c2bf81dcdbba9f5977855c36ef99ee0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Feb 22 22:51:12 2021 +0000
ISIS-2444: putative fixes to xref's in system overview
... let's see
---
.../org/apache/isis/tooling/cli/CliConfig.java | 4 +-
.../cli/adocfix/OrphanedIncludeStatementFixer.java | 18 +++++---
.../isis/tooling/cli/projdoc/ProjectDocModel.java | 53 +++++++++++-----------
.../isis/tooling/cli/projdoc/ProjectDocWriter.java | 4 +-
.../apache/isis/tooling/j2adoc/J2AdocContext.java | 10 ++--
5 files changed, 48 insertions(+), 41 deletions(-)
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
index 08b8d37..1439a48 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
@@ -92,8 +92,8 @@ public class CliConfig {
@Data
public static class Index {
- private String documentGlobalIndexPath = "pages/index";
- private String documentGlobalIndexXrefPageIdFormat = "system:generated:index/%s.adoc";
+ private String documentGlobalIndexPath = "pages";
+ private String documentGlobalIndexXrefPageIdFormat = "refguide:%s:index/%s.adoc";
private boolean fixOrphanedAdocIncludeStatements = false;
private boolean skipTitleHeader = false;
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
index 0e77eb4..bcb4f73 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
@@ -63,9 +63,10 @@ public final class OrphanedIncludeStatementFixer {
val originLines = _Text.readLinesFromFile(adocFile, StandardCharsets.UTF_8);
val lines = IncludeStatements.rewrite(originLines, include->{
- if(include.isLocal()
- || !( "system".equals(include.getComponent()) // TODO should be reasoned from config
- && "generated".equals(include.getModule()))) { // TODO should be reasoned from config
+ final boolean inGlobalIndex =
+ "refguide".equals(include.getComponent()) // TODO should be reasoned from config
+ && include.getNamespace().startsWith(Can.of("index")); // TODO should be reasoned from config
+ if(include.isLocal() || !inGlobalIndex) {
return null; // keep original line, don't mangle
}
@@ -75,14 +76,17 @@ public final class OrphanedIncludeStatementFixer {
j2aContext.findUnitByTypeSimpleName(typeSimpleName)
.ifPresent(unit->{
+ val module = unit.getNamespace().stream()
+ .skip(j2aContext.getNamespacePartsSkipCount())
+ .findFirst().get();
val expected = IncludeStatement.builder()
- .component("system")
- .module("generated")
+ .component("refguide")
+ .module(module)
.type("page")
.namespace(unit.getNamespace().stream()
- .skip(j2aContext.getNamespacePartsSkipCount())
+ .skip(j2aContext.getNamespacePartsSkipCount() + 1) // +1 because is part of the module
.collect(Can.toCan())
- .add(0, "index") //TODO this is antora config specific
+ .add(0, "index") // TODO this is antora config specific
)
.canonicalName(typeSimpleName)
.ext(".adoc")
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
index 9c61f39..936e20d 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
@@ -106,12 +106,9 @@ public class ProjectDocModel {
modules = new TreeSet<ProjectNode>();
projTree.depthFirst(modules::add);
- final SortedSet<File> asciiDocFiles = new TreeSet<>();
val j2aContext = J2AdocContext.builder()
- //.compactFormat()
-// .javaSourceWithFootnotesFormat()
- .formatterFactory(new Function<J2AdocContext, UnitFormatter>() {
+ .formatterFactory(new Function<>() {
@SneakyThrows
@Override
public UnitFormatter apply(J2AdocContext j2AdocContext) {
@@ -127,15 +124,6 @@ public class ProjectDocModel {
.skipTitleHeader(cliConfig.getCommands().getIndex().isSkipTitleHeader())
.build();
- val doc = doc();
- doc.setTitle("System Overview");
-
- _Strings.nonEmpty(cliConfig.getGlobal().getLicenseHeader())
- .ifPresent(notice->AsciiDocFactory.attrNotice(doc, notice));
-
- _Strings.nonEmpty(cliConfig.getCommands().getOverview().getDescription())
- .ifPresent(block(doc)::setSource);
-
// partition modules into sections
val sections = new ArrayList<Section>();
cliConfig.getGlobal().getSections().forEach((section, groupIdArtifactIdPattern)->{
@@ -164,9 +152,20 @@ public class ProjectDocModel {
}
// now generate the overview or index
- writeSections(sections, doc, j2aContext, mode, asciiDocFiles::add);
+ final SortedSet<File> asciiDocFiles = new TreeSet<>();
- ProjectDocWriter.write(cliConfig, doc, j2aContext, mode);
+ val overviewDoc = doc();
+ overviewDoc.setTitle("System Overview");
+
+ _Strings.nonEmpty(cliConfig.getGlobal().getLicenseHeader())
+ .ifPresent(notice->AsciiDocFactory.attrNotice(overviewDoc, notice));
+
+ _Strings.nonEmpty(cliConfig.getCommands().getOverview().getDescription())
+ .ifPresent(block(overviewDoc)::setSource);
+
+ writeSections(sections, overviewDoc, j2aContext, mode, asciiDocFiles::add);
+
+ ProjectDocWriter.write(cliConfig, overviewDoc, j2aContext, mode);
// update include statements ...
OrphanedIncludeStatementFixer.fixIncludeStatements(asciiDocFiles, cliConfig, j2aContext);
@@ -265,7 +264,7 @@ public class ProjectDocModel {
containerView.addAllContainers();
containerView.enableAutomaticLayout(RankDirection.LeftRight);
-
+
val plantUmlSource = c4.toPlantUML(containerView);
return plantUmlSource;
}
@@ -296,19 +295,19 @@ public class ProjectDocModel {
private void writeSections(
final @NonNull List<Section> sections,
- final @NonNull Document doc,
+ final @NonNull Document overviewDoc,
final @NonNull J2AdocContext j2aContext,
final @NonNull Mode mode,
final @NonNull Consumer<File> onAdocFile) {
sections.forEach(section -> {
- writeSection(section, doc, j2aContext, mode, onAdocFile);
+ writeSection(section, overviewDoc, j2aContext, mode, onAdocFile);
});
}
private void writeSection(
final @NonNull Section section,
- final @NonNull Document doc,
+ final @NonNull Document overviewDoc,
final @NonNull J2AdocContext j2aContext,
final @NonNull Mode mode,
final @NonNull Consumer<File> onAdocFile) {
@@ -316,7 +315,7 @@ public class ProjectDocModel {
val sectionName = section.getSectionName();
val groupIdPattern = section.getGroupIdArtifactIdPattern();
- val titleBlock = block(doc);
+ val titleBlock = block(overviewDoc);
val headingLevel =
(groupIdPattern == null || !groupIdPattern.contains(":"))
@@ -329,10 +328,10 @@ public class ProjectDocModel {
return;
}
- val descriptionBlock = block(doc);
+ val descriptionBlock = block(overviewDoc);
val groupDiagram = new GroupDiagram(C4.of(sectionName, null));
- val table = table(doc);
+ val table = table(overviewDoc);
table.setTitle(String.format("Projects/Modules (%s)", sectionName));
table.setAttribute("cols", "3a,5a", true);
table.setAttribute("header-option", "", true);
@@ -408,14 +407,14 @@ public class ProjectDocModel {
// Group: org.apache.isis.commons
// Artifact: isis-commons
// Type: jar
- // Folder: \commons
+ // Directory: /commons
// ----
private String coordinates(ProjectNode module, String projRelativePath) {
val coors = new StringBuilder();
appendKeyValue(coors, "Group", module.getArtifactCoordinates().getGroupId());
appendKeyValue(coors, "Artifact", module.getArtifactCoordinates().getArtifactId());
appendKeyValue(coors, "Type", module.getArtifactCoordinates().getPackaging());
- appendKeyValue(coors, "Folder", projRelativePath);
+ appendKeyValue(coors, "Directory", projRelativePath.replaceAll("\\\\", "/"));
return String.format("%s\n%s",
module.getName(),
AsciiDocFactory.toString(doc->
@@ -475,13 +474,13 @@ public class ProjectDocModel {
}
private static String toAdocSection(String title, String content) {
-
+
//XXX collapsible will be supported with antora 3
// return AsciiDocFactory.toString(doc->{
// val collapsibleBlock = AsciiDocFactory.collapsibleBlock(doc, content);
// collapsibleBlock.setTitle(title);
// });
-
+
// render as Sidebar block for now
return String.format(".%s\n****\n%s\n****\n\n", title, content);
}
@@ -489,7 +488,7 @@ public class ProjectDocModel {
private static String toAdocListItem(String element) {
return String.format("* %s\n", element);
}
-
+
private static String toAdocCompactListItem(String element) {
return String.format("%s +\n", element);
}
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
index 9be58c0..b8cc9ea 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
@@ -41,7 +41,7 @@ final class ProjectDocWriter {
@SneakyThrows
static void write(
final @NonNull CliConfig cliConfig,
- final @NonNull Document systemSummaryAdoc,
+ final @NonNull Document overviewAdoc,
final @NonNull J2AdocContext j2aContext,
final @NonNull ProjectDocModel.Mode mode) {
@@ -67,7 +67,7 @@ final class ProjectDocWriter {
// write system overview
val overviewFile = new File(pagesFolder, overview.getSystemOverviewFilename());
log.info("writing system overview: {}", overviewFile.getName());
- docWriter.accept(systemSummaryAdoc, overviewFile);
+ docWriter.accept(overviewAdoc, overviewFile);
++writeCount;
}
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
index e573c08..636f7ad 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
@@ -260,16 +260,20 @@ public class J2AdocContext {
public String xref(final @NonNull J2AdocUnit unit) {
- val xrefCoordinates = unit.getNamespace()
+ val xrefModule = unit.getNamespace()
.stream()
.skip(getNamespacePartsSkipCount())
+ .findFirst().get();
+ val xrefCoordinates = unit.getNamespace()
+ .stream()
+ .skip(getNamespacePartsSkipCount() + 1)
.collect(Can.toCan())
.add(unit.getCanonicalName())
.stream()
.collect(Collectors.joining("/"));
- val xref = String.format("xref:%s[%s]",
- String.format(getXrefPageIdFormat(), xrefCoordinates),
+ val xref = String.format("xref:s[%s]",
+ String.format(getXrefPageIdFormat(), xrefModule, xrefCoordinates),
unit.getFriendlyName());
return xref;