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/09/16 10:13:49 UTC
[isis] branch master updated: ISIS-2426: tooling: find all
Spring-managed classes within a project
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 bb55fd7 ISIS-2426: tooling: find all Spring-managed classes within a project
bb55fd7 is described below
commit bb55fd7f96213414926d6ae195816fff3832c211
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 16 12:13:32 2020 +0200
ISIS-2426: tooling: find all Spring-managed classes within a project
---
.../isis/tooling/javamodel/test/AnalyzerTest.java | 35 +++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/tooling/javamodel/src/test/java/org/apache/isis/tooling/javamodel/test/AnalyzerTest.java b/tooling/javamodel/src/test/java/org/apache/isis/tooling/javamodel/test/AnalyzerTest.java
index 6b20c8e..fc45c65 100644
--- a/tooling/javamodel/src/test/java/org/apache/isis/tooling/javamodel/test/AnalyzerTest.java
+++ b/tooling/javamodel/src/test/java/org/apache/isis/tooling/javamodel/test/AnalyzerTest.java
@@ -34,6 +34,8 @@ import org.apache.isis.tooling.javamodel.AnalyzerConfigFactory;
import lombok.val;
import guru.nidi.codeassert.config.Language;
+import guru.nidi.codeassert.model.CodeClass;
+import guru.nidi.codeassert.model.Model;
import static guru.nidi.codeassert.config.Language.JAVA;
@@ -65,12 +67,43 @@ class AnalyzerTest {
.map(sourceFile->_Files.toRelativePath(commonPath, sourceFile))
.map(s->s.replace("\\", "/"))
.map(s->s.replace("/src/main/java/org/apache/isis/", "o.a.i/"))
- .peek(System.out::println)
+ //.peek(System.out::println) //debug
.collect(Collectors.toSet());
assertHasSomeSourceFiles(sources);
}
+ @Test
+ void testAnnotationGathering() {
+
+ val analyzerConfig = AnalyzerConfigFactory.maven(projDir, Language.JAVA).main();
+
+ val model = Model.from(analyzerConfig.getClasses()).read();
+
+ Set<String> components = model.getClasses()
+ .stream()
+ .filter(codeClass->codeClass
+ .getAnnotations()
+ .stream()
+ .map(CodeClass::getName)
+ .anyMatch(name->name.startsWith("org.springframework.stereotype.")))
+ .map(CodeClass::getName)
+ .map(s->s.replace("org.apache.isis.", "o.a.i."))
+ //.peek(System.out::println) //debug
+ .collect(Collectors.toSet());
+
+ assertHasSomeComponents(components);
+ }
+
+ // -- HELPER
+
+ private void assertHasSomeComponents(Set<String> components) {
+ assertTrue(components.contains("o.a.i.core.runtime.persistence.transaction.AuditerDispatchService"));
+ assertTrue(components.contains("o.a.i.core.runtime.persistence.transaction.ChangedObjectsService"));
+ assertTrue(components.contains("o.a.i.core.runtime.events.persistence.TimestampService"));
+ assertTrue(components.contains("o.a.i.core.runtime.events.RuntimeEventService"));
+ }
+
private void assertHasSomeSourceFiles(Set<String> sources) {
assertTrue(sources.contains("o.a.i/core/runtime/context/IsisAppCommonContext.java"));
assertTrue(sources.contains("o.a.i/core/runtime/context/IsisContext.java"));