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 2020/12/09 13:37:53 UTC
[isis] branch master updated: ISIS-2473: check method return types
and parameter types for whether need to cross-reference
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 b5a6013 ISIS-2473: check method return types and parameter types for whether need to cross-reference
b5a6013 is described below
commit b5a60137e755f4f196f72b2e6b95a66e8139a613
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Dec 9 13:12:57 2020 +0100
ISIS-2473: check method return types and parameter types for whether
need to cross-reference
also renaming doclet->adoclet
---
.../modules/generated/pages/index/RoleMemento.adoc | 2 +-
.../modules/generated/pages/index/UserMemento.adoc | 12 ++--
.../modules/generated/pages/index/UserService.adoc | 8 +--
.../modules/generated/pages/system-overview.adoc | 12 ++--
.../cli/doclet/{Doclet.java => Adoclet.java} | 20 +++----
.../{DocletContext.java => AdocletContext.java} | 28 +++++----
.../cli/doclet/{Doclets.java => Adoclets.java} | 2 +-
.../apache/isis/tooling/cli/doclet/ToAsciiDoc.java | 70 +++++++++++++++++++---
.../isis/tooling/cli/projdoc/ProjectDocModel.java | 16 ++---
.../isis/tooling/cli/projdoc/ProjectDocWriter.java | 8 +--
.../doclet/{DocletTest.java => AdocletTest.java} | 12 ++--
.../cli/test/doclet/samples/UserMemento.java | 4 ++
.../cli/test/doclet/samples/UserService.java | 2 +-
13 files changed, 127 insertions(+), 69 deletions(-)
diff --git a/antora/components/system/modules/generated/pages/index/RoleMemento.adoc b/antora/components/system/modules/generated/pages/index/RoleMemento.adoc
index e3162ed..5aae575 100644
--- a/antora/components/system/modules/generated/pages/index/RoleMemento.adoc
+++ b/antora/components/system/modules/generated/pages/index/RoleMemento.adoc
@@ -1,6 +1,6 @@
= RoleMemento
-Immutable serializable value held by xref:system:generated:index/UserMemento.adoc[UserMemento] .
+Immutable serializable value held by xref:system:generated:index/UserMemento.adoc[UserMemento] .
.RoleMemento
[source,java]
diff --git a/antora/components/system/modules/generated/pages/index/UserMemento.adoc b/antora/components/system/modules/generated/pages/index/UserMemento.adoc
index b1644a8..41fcf6a 100644
--- a/antora/components/system/modules/generated/pages/index/UserMemento.adoc
+++ b/antora/components/system/modules/generated/pages/index/UserMemento.adoc
@@ -22,15 +22,15 @@ class UserMemento {
----
-<.> `UserMemento system()` The framework's internal user with unrestricted privileges.
+<.> `xref:system:generated:index/UserMemento.adoc[UserMemento] system()` The framework's internal user with unrestricted privileges.
-<.> `UserMemento ofName(@NonNull final String name)` Creates a new user with the specified name and no roles.
+<.> `xref:system:generated:index/UserMemento.adoc[UserMemento] ofName(String name)` Creates a new user with the specified name and no roles.
-<.> `UserMemento ofNameAndRoles(@NonNull final String name, final RoleMemento... roles)` Creates a new user with the specified name and assigned roles.
+<.> `xref:system:generated:index/UserMemento.adoc[UserMemento] ofNameAndRoles(String name, xref:system:generated:index/RoleMemento.adoc[RoleMemento] roles)` Creates a new user with the specified name and assigned roles.
-<.> `UserMemento ofNameAndRoleNames(@NonNull final String name, final String... roleNames)` Creates a new user with the specified name and assigned role names.
+<.> `xref:system:generated:index/UserMemento.adoc[UserMemento] ofNameAndRoleNames(String name, String roleNames)` Creates a new user with the specified name and assigned role names.
-<.> `UserMemento ofNameAndRoleNames(@NonNull final String name, @NonNull final Stream<String> roleNames)` Creates a new user with the specified name and assigned role names.
+<.> `xref:system:generated:index/UserMemento.adoc[UserMemento] ofNameAndRoleNames(String name, Stream<String> roleNames)` Creates a new user with the specified name and assigned role names.
-<.> `boolean isCurrentUser(@Nullable final String userName)` Determine if the specified name is this user.
+<.> `boolean isCurrentUser(String userName)` Determine if the specified name is this user.
diff --git a/antora/components/system/modules/generated/pages/index/UserService.adoc b/antora/components/system/modules/generated/pages/index/UserService.adoc
index fe6a32a..d6b8572 100644
--- a/antora/components/system/modules/generated/pages/index/UserService.adoc
+++ b/antora/components/system/modules/generated/pages/index/UserService.adoc
@@ -1,6 +1,6 @@
= UserService
-The xref:system:generated:index/UserService.adoc[UserService] allows the domain object to obtain the identity of the user
+The xref:system:generated:index/UserService.adoc[UserService] allows the domain object to obtain the identity of the user
interacting with said object.
@@ -23,12 +23,12 @@ interface UserService {
----
-<.> `Optional<UserMemento> currentUser()` Optionally gets the details about the current user,
+<.> `Optional<xref:system:generated:index/UserMemento.adoc[UserMemento]> currentUser()` Optionally gets the details about the current user,
based on whether an _ExecutionContext_ can be found with the current thread's context.
-<.> `UserMemento getUser()` Gets the details about the current user.
+<.> `xref:system:generated:index/UserMemento.adoc[UserMemento] getUser()` Gets the details about the current user.
-<.> `UserMemento currentUserElseFail()` Gets the details about the current user.
+<.> `xref:system:generated:index/UserMemento.adoc[UserMemento] currentUserElseFail()` Gets the details about the current user.
<.> `Optional<String> currentUserName()` Optionally gets the the current user's name,
based on whether an _ExecutionContext_ can be found with the current thread's context.
diff --git a/antora/components/system/modules/generated/pages/system-overview.adoc b/antora/components/system/modules/generated/pages/system-overview.adoc
index e90bee3..86abb09 100644
--- a/antora/components/system/modules/generated/pages/system-overview.adoc
+++ b/antora/components/system/modules/generated/pages/system-overview.adoc
@@ -337,9 +337,9 @@ _Dependencies_
* org.assertj:assertj-core:jar:<managed>
* org.jmock:jmock:jar:<managed>
-_Doclets_
+_Document Index Entries_
-xref:system:generated:index/RoleMemento.adoc[RoleMemento] , xref:system:generated:index/UserMemento.adoc[UserMemento] , xref:system:generated:index/UserService.adoc[UserService]
+xref:system:generated:index/RoleMemento.adoc[RoleMemento], xref:system:generated:index/UserMemento.adoc[UserMemento], xref:system:generated:index/UserService.adoc[UserService]
@@ -1379,12 +1379,12 @@ skinparam {
maxMessageSize 100
}
hide stereotype
-skinparam rectangle<<22>> {
+skinparam rectangle<<11>> {
BackgroundColor #438dd5
FontColor #fffffe
BorderColor #2E6295
}
-skinparam rectangle<<11>> {
+skinparam rectangle<<22>> {
BackgroundColor #438dd5
FontColor #fffffe
BorderColor #2E6295
@@ -1474,12 +1474,12 @@ skinparam rectangle<<20>> {
FontColor #fffffe
BorderColor #2E6295
}
-skinparam rectangle<<10>> {
+skinparam rectangle<<21>> {
BackgroundColor #438dd5
FontColor #fffffe
BorderColor #2E6295
}
-skinparam rectangle<<21>> {
+skinparam rectangle<<10>> {
BackgroundColor #438dd5
FontColor #fffffe
BorderColor #2E6295
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Doclet.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Adoclet.java
similarity index 88%
rename from tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Doclet.java
rename to tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Adoclet.java
index fc1b577..d032859 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Doclet.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Adoclet.java
@@ -39,19 +39,19 @@ import lombok.extern.log4j.Log4j2;
@Value
@Log4j2
-public class Doclet {
+public class Adoclet {
private final ClassOrInterfaceDeclaration td;
- public static Stream<Doclet> parse(final @NonNull File sourceFile) {
+ public static Stream<Adoclet> parse(final @NonNull File sourceFile) {
try {
val cu = StaticJavaParser.parse(sourceFile);
return Stream.of(cu)
.flatMap(CompilationUnits::streamPublicTypeDeclarations)
- .filter(Doclets::hasIndexDirective)
- .map(Doclet::new);
+ .filter(Adoclets::hasIndexDirective)
+ .map(Adoclet::new);
} catch (Exception e) {
log.error("failed to parse java source file {}", sourceFile, e);
@@ -65,13 +65,13 @@ public class Doclet {
}
public String getAsciiDocXref(
- final @NonNull DocletContext docletContext) {
+ final @NonNull AdocletContext docletContext) {
val toAdocConverter = ToAsciiDoc.of(docletContext);
return toAdocConverter.xref(this);
}
public String toAsciiDoc(
- final @NonNull DocletContext docletContext) {
+ final @NonNull AdocletContext docletContext) {
val doc = AsciiDocFactory.doc();
@@ -102,7 +102,7 @@ public class Doclet {
mds.forEach(md->{
java.append(String.format("\n %s // <.>\n",
- Doclets.toNormalizedMethodDeclaration(md)));
+ Adoclets.toNormalizedMethodDeclaration(md)));
});
@@ -119,11 +119,9 @@ public class Doclet {
md.getJavadoc()
.ifPresent(javadoc->{
-
- footNotes.append(String.format("\n<.> `%s` %s\n",
- Doclets.toNormalizedMethodDeclaration(md),
+ footNotes.append(String.format("\n<.> %s %s\n",
+ toAdocConverter.methodDeclaration(md),
toAdocConverter.javadoc(javadoc)));
-
});
});
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/DocletContext.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/AdocletContext.java
similarity index 64%
rename from tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/DocletContext.java
rename to tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/AdocletContext.java
index 8986336..18090ea 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/DocletContext.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/AdocletContext.java
@@ -19,8 +19,10 @@
package org.apache.isis.tooling.cli.doclet;
import java.io.File;
+import java.util.ArrayList;
import java.util.Map;
import java.util.Optional;
+import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.isis.commons.internal.collections._Maps;
@@ -32,14 +34,14 @@ import lombok.Value;
import lombok.val;
@Value @Builder
-public class DocletContext {
+public class AdocletContext {
private final @NonNull String xrefPageIdFormat;
- private final Map<String, Doclet> docletIndex = _Maps.newTreeMap();
+ private final Map<String, Adoclet> adocletIndex = _Maps.newTreeMap();
- public DocletContext add(final @NonNull Doclet doclet) {
- val previousKey = docletIndex.put(doclet.getName(), doclet);
+ public AdocletContext add(final @NonNull Adoclet adoclet) {
+ val previousKey = adocletIndex.put(adoclet.getName(), adoclet);
if(previousKey!=null) {
throw _Exceptions.unrecoverableFormatted(
"doclet index entries must be unique (index key collision on %s)",
@@ -48,17 +50,21 @@ public class DocletContext {
return this;
}
- public Stream<Doclet> add(final @NonNull File sourceFile) {
- return Doclet.parse(sourceFile)
- .peek(this::add);
+ public Stream<Adoclet> add(final @NonNull File sourceFile) {
+ return Adoclet.parse(sourceFile)
+ .peek(this::add)
+ // ensure the stream is consumed here,
+ // current implementation does not expect more than 1 result per source file
+ .collect(Collectors.toCollection(()->new ArrayList<>(1)))
+ .stream();
}
- public Stream<Doclet> streamDoclets() {
- return docletIndex.values().stream();
+ public Stream<Adoclet> streamAdoclets() {
+ return adocletIndex.values().stream();
}
- public Optional<Doclet> getDoclet(String key) {
- return Optional.ofNullable(docletIndex.get(key));
+ public Optional<Adoclet> getAdoclet(String key) {
+ return Optional.ofNullable(adocletIndex.get(key));
}
}
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Doclets.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Adoclets.java
similarity index 98%
rename from tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Doclets.java
rename to tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Adoclets.java
index 15c0030..40a4183 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Doclets.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/Adoclets.java
@@ -26,7 +26,7 @@ import org.apache.isis.tooling.javamodel.Javadocs;
import lombok.NonNull;
import lombok.val;
-final class Doclets {
+final class Adoclets {
/**
* Whether to include given {@link TypeDeclaration} with the index.
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/ToAsciiDoc.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/ToAsciiDoc.java
index e020386..3b1067c 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/ToAsciiDoc.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/doclet/ToAsciiDoc.java
@@ -18,6 +18,12 @@
*/
package org.apache.isis.tooling.cli.doclet;
+import java.util.stream.Collectors;
+
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
import com.github.javaparser.javadoc.Javadoc;
import com.github.javaparser.javadoc.description.JavadocInlineTag;
import com.github.javaparser.javadoc.description.JavadocSnippet;
@@ -29,11 +35,52 @@ import lombok.val;
@Value(staticConstructor = "of")
class ToAsciiDoc {
- private final DocletContext docletContext;
+ private final AdocletContext docletContext;
+ public String methodDeclaration(final @NonNull MethodDeclaration md) {
+ return String.format("`%s %s(%s)`",
+ type(md.getType()),
+ md.getNameAsString(),
+ md.getParameters()
+ .stream()
+ .map(this::parameterDeclaration)
+ .collect(Collectors.joining(", ")));
+ }
+
+ public String type(final @NonNull Type type) {
+ if(type instanceof ClassOrInterfaceType) {
+ return classOrInterfaceType((ClassOrInterfaceType) type);
+ }
+ return type.asString();
+ }
+
+ public String classOrInterfaceType(final @NonNull ClassOrInterfaceType type) {
+ val sb = new StringBuilder();
+ sb.append(xrefIfRequired(type.getNameAsString())); // type simple name, no generics
+ type.getTypeArguments()
+ .ifPresent(typeArgs->{
+ sb
+ .append("<")
+ .append(
+ typeArgs.stream()
+ .map(typeArg->type(typeArg))
+ .collect(Collectors.joining(", "))
+ )
+ .append(">");
+ });
+
+ return sb.toString();
+ }
+
+
+ public String parameterDeclaration(Parameter p) {
+ return String.format("%s %s",
+ type(p.getType()),
+ p.getNameAsString());
+ }
+
//TODO method java-doc needs further post processing when spanning multiple paragraphs
- public String javadoc(
- final @NonNull Javadoc javadoc) {
+ public String javadoc(final @NonNull Javadoc javadoc) {
val adoc = new StringBuilder();
@@ -53,14 +100,13 @@ class ToAsciiDoc {
return adoc.toString();
}
- public String inlineTag(
- final @NonNull JavadocInlineTag inlineTag) {
+ public String inlineTag(final @NonNull JavadocInlineTag inlineTag) {
val inlineContent = inlineTag.getContent().trim();
switch(inlineTag.getType()) {
case LINK:
- val refDoclet = docletContext.getDoclet(inlineContent).orElse(null);
+ val refDoclet = docletContext.getAdoclet(inlineContent).orElse(null);
if(refDoclet!=null) {
return String.format(" %s ", xref(refDoclet));
}
@@ -69,13 +115,18 @@ class ToAsciiDoc {
}
}
- public String xref(
- final @NonNull Doclet doclet) {
- return String.format(" xref:%s[%s] ",
+ public String xref(final @NonNull Adoclet doclet) {
+ return String.format("xref:%s[%s]",
String.format(docletContext.getXrefPageIdFormat(), doclet.getName()),
doclet.getName());
}
+ public String xrefIfRequired(final @NonNull String docIndexKey) {
+ return docletContext.getAdoclet(docIndexKey)
+ .map(this::xref)
+ .orElse(docIndexKey);
+ }
+
// -- HELPER
/*
@@ -84,5 +135,6 @@ class ToAsciiDoc {
private static String normalizeHtmlTags(final @NonNull String s) {
return s.replace("<p>", "\n").replace("</p>", "");
}
+
}
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 a1833cf..e55d252 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
@@ -42,7 +42,7 @@ import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.commons.internal.graph._Graph;
import org.apache.isis.tooling.c4.C4;
import org.apache.isis.tooling.cli.CliConfig;
-import org.apache.isis.tooling.cli.doclet.DocletContext;
+import org.apache.isis.tooling.cli.doclet.AdocletContext;
import org.apache.isis.tooling.javamodel.AnalyzerConfigFactory;
import org.apache.isis.tooling.javamodel.CodeClasses;
import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
@@ -87,7 +87,7 @@ public class ProjectDocModel {
modules = new TreeSet<ProjectNode>();
projTree.depthFirst(modules::add);
- val docletContext = DocletContext.builder()
+ val docletContext = AdocletContext.builder()
.xrefPageIdFormat(cliConfig.getDocletXrefPageIdFormat())
.build();
@@ -179,7 +179,7 @@ public class ProjectDocModel {
final @NonNull Document doc,
final @NonNull String sectionName,
final @Nullable String groupIdPattern,
- final @NonNull DocletContext docletContext) {
+ final @NonNull AdocletContext docletContext) {
val titleBlock = block(doc);
@@ -275,7 +275,7 @@ public class ProjectDocModel {
sb.append(String.format("%s: %s\n", key, value));
}
- private String details(ProjectNode module, DocletContext docletContext) {
+ private String details(ProjectNode module, AdocletContext docletContext) {
val description = module.getDescription().trim();
val dependencyList = module.getDependencies()
.stream()
@@ -291,7 +291,7 @@ public class ProjectDocModel {
.collect(Collectors.joining())
.trim();
- val docletCompactList = gatherDoclets(module.getProjectDirectory(), docletContext)
+ val indexEntriesCompactList = gatherAdoclets(module.getProjectDirectory(), docletContext)
.stream()
.collect(Collectors.joining(", "))
.trim();
@@ -310,8 +310,8 @@ public class ProjectDocModel {
sb.append(toAdocSection("Dependencies", dependencyList));
}
- if(!docletCompactList.isEmpty()) {
- sb.append(toAdocSection("Doclets", docletCompactList));
+ if(!indexEntriesCompactList.isEmpty()) {
+ sb.append(toAdocSection("Document Index Entries", indexEntriesCompactList));
}
return sb.toString();
@@ -325,7 +325,7 @@ public class ProjectDocModel {
return String.format("* %s\n", element);
}
- private SortedSet<String> gatherDoclets(File projDir, DocletContext docletContext) {
+ private SortedSet<String> gatherAdoclets(File projDir, AdocletContext docletContext) {
val analyzerConfig = AnalyzerConfigFactory.maven(projDir, Language.JAVA).main();
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 ae53253..612a082 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
@@ -28,7 +28,7 @@ import org.asciidoctor.ast.Document;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.tooling.cli.CliConfig;
-import org.apache.isis.tooling.cli.doclet.DocletContext;
+import org.apache.isis.tooling.cli.doclet.AdocletContext;
import org.apache.isis.tooling.model4adoc.AsciiDocWriter;
import lombok.NonNull;
@@ -41,7 +41,7 @@ final class ProjectDocWriter {
static void write(
final @NonNull CliConfig cliConfig,
final @NonNull Document doc,
- final @NonNull DocletContext docletContext) {
+ final @NonNull AdocletContext docletContext) {
try {
@@ -49,12 +49,12 @@ final class ProjectDocWriter {
if(cliConfig.isDryRun()) {
System.out.println(adoc);
- for(val doclet : docletContext.getDocletIndex().values()) {
+ for(val doclet : docletContext.getAdocletIndex().values()) {
System.out.println(doclet.toAsciiDoc(docletContext));
}
} else {
writeTo(cliConfig.getOutputFile(), adoc);
- for(val doclet : docletContext.getDocletIndex().values()) {
+ for(val doclet : docletContext.getAdocletIndex().values()) {
val docletFile = new File(cliConfig.getDocletOutputFolder(), doclet.getName() + ".adoc");
writeTo(docletFile, doclet.toAsciiDoc(docletContext));
}
diff --git a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/DocletTest.java b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/AdocletTest.java
similarity index 80%
rename from tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/DocletTest.java
rename to tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/AdocletTest.java
index de3331b..9352718 100644
--- a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/DocletTest.java
+++ b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/AdocletTest.java
@@ -22,7 +22,7 @@ import java.io.File;
import org.junit.jupiter.api.Test;
-import org.apache.isis.tooling.cli.doclet.DocletContext;
+import org.apache.isis.tooling.cli.doclet.AdocletContext;
import org.apache.isis.tooling.javamodel.AnalyzerConfigFactory;
import lombok.val;
@@ -31,7 +31,7 @@ import guru.nidi.codeassert.config.Language;
import static guru.nidi.codeassert.config.Language.JAVA;
-class DocletTest {
+class AdocletTest {
@Test
void testJavaDocMining() {
@@ -39,22 +39,20 @@ class DocletTest {
val projDir = new File("./").getAbsoluteFile();
val analyzerConfig = AnalyzerConfigFactory.mavenTest(projDir, Language.JAVA).main();
- val docletContext = DocletContext.builder()
+ val docletContext = AdocletContext.builder()
.xrefPageIdFormat("system:generated:index/%s.adoc")
.build();
analyzerConfig.getSources(JAVA)
.stream()
// .filter(source->source.toString().contains("UserService"))
- .peek(source->System.out.println("parsing source: " + source))
+ //.peek(source->System.out.println("parsing source: " + source))
.forEach(docletContext::add);
- docletContext.streamDoclets()
+ docletContext.streamAdoclets()
.forEach(doclet->{
- System.out.println("--------------------------------------------------");
System.out.println(doclet.toAsciiDoc(docletContext));
- System.out.println("--------------------------------------------------");
});
}
diff --git a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserMemento.java b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserMemento.java
index b208843..070741d 100644
--- a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserMemento.java
+++ b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserMemento.java
@@ -20,6 +20,10 @@ package org.apache.isis.tooling.cli.test.doclet.samples;
import lombok.Value;
+/**
+ * Immutable serializable value holding details about a user and its roles.
+ * @since 2.0 {@index}
+ */
@Value
public class UserMemento {
diff --git a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserService.java b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserService.java
index 89cff30..51f5ad9 100644
--- a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserService.java
+++ b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/doclet/samples/UserService.java
@@ -50,7 +50,7 @@ public interface UserService {
* @param arg1 - first argument (non-null)
* @param arg2 - second argument (non-null)
*/
- Optional<UserMemento> currentUser(@NonNull String arg1, @NonNull String arg2);
+ Optional<UserMemento> currentUser(@NonNull String arg1, @NonNull Optional<UserMemento> arg2);
/**
* Gets the details about the current user.