From ffb19cd33761f429de58e9c3df8b3116fbe70a1d Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 31 Jul 2023 13:48:02 +0200 Subject: [PATCH] [Fix] Fix the reflexion warning on ontology generation in s-pipes-modules --- .../main/java/RdfAnnotationProcessorMojo.java | 41 +++++++++++++------ s-pipes-modules/pom.xml | 37 ++++++++--------- 2 files changed, 46 insertions(+), 32 deletions(-) diff --git a/s-pipes-modules-utils/s-pipes-module-creator-maven-plugin/src/main/java/RdfAnnotationProcessorMojo.java b/s-pipes-modules-utils/s-pipes-module-creator-maven-plugin/src/main/java/RdfAnnotationProcessorMojo.java index 4de3cc2d..621c5775 100644 --- a/s-pipes-modules-utils/s-pipes-module-creator-maven-plugin/src/main/java/RdfAnnotationProcessorMojo.java +++ b/s-pipes-modules-utils/s-pipes-module-creator-maven-plugin/src/main/java/RdfAnnotationProcessorMojo.java @@ -52,21 +52,32 @@ public class RdfAnnotationProcessorMojo extends AbstractMojo { @Parameter(defaultValue = "${project}", readonly = true, required = true) MavenProject project; - @Parameter(defaultValue = "${project.groupId}", readonly = true, required = true) - String javaModuleName; - - @Parameter(required = false, readonly = true) - String moduleClassName; + /** + * The mode in which the plugin is running. 2 values are supported: + * + * Defaults to RDF_FOR_ALL_CHILDREN if no mode is explicitly specified. + */ + @Parameter(readonly = true) + GenerationMode mode; - @Parameter(required = false, readonly = true) + /** + * The Java module which should be scanned for the SPipes Module classes. + */ + @Parameter(required = true, readonly = true) String modulePackageName; - @Parameter(required = false, readonly = true) + /** + * Filename of the ontology file generated by the plugin. + */ + @Parameter(required = true, readonly = true) String ontologyFilename; - @Parameter(required = false, readonly = true) - GenerationMode mode; - enum GenerationMode { RDF_FOR_MODULE, RDF_FOR_ALL_CHILDREN @@ -105,6 +116,7 @@ public void execute() throws MojoExecutionException { } + @SuppressWarnings("unchecked") // Maven returns untyped list which must be manually retyped private void generateRdfForAllModules() throws MalformedURLException, ClassNotFoundException, FileNotFoundException { //read all submodules getLog().info("Generating an RDF for all sub-modules"); @@ -113,7 +125,8 @@ private void generateRdfForAllModules() throws MalformedURLException, ClassNotFo //find module's main class var moduleClasses = readAllModuleClasses(submodule); - getLog().info("Module: " + submodule.getName() + " | Classes: [" + moduleClasses.stream() + getLog().info("Scanned maven module '" + submodule.getName() + "' and found " + moduleClasses.size() + + " SPipes Module(s): [" + moduleClasses.stream() .map(Class::getSimpleName) .collect(Collectors.joining(", ")) + "]"); @@ -129,7 +142,7 @@ private void generateRdfForAllModules() throws MalformedURLException, ClassNotFo } writeModelToStdout(model); try { - writeToTargetFolderFile(model, "all-modules.ttl"); + writeToTargetFolderFile(model, ontologyFilename); } catch (IOException e) { getLog().error("Failed to write model to the output file", e); } @@ -164,7 +177,9 @@ private Set> readAllModuleClasses(MavenProject project) throws Malforme var reflectionConfig = new ConfigurationBuilder() .setUrls(ClasspathHelper.forClassLoader(classLoader)) .setScanners(new SubTypesScanner(false), new TypeAnnotationsScanner()) - .filterInputsBy(new FilterBuilder().includePackage(modulePackageName)); + .filterInputsBy(new FilterBuilder().includePackage(modulePackageName)) + .setExpandSuperTypes(false); + var classSearcher = new Reflections(reflectionConfig); //Find classes with the module annotation diff --git a/s-pipes-modules/pom.xml b/s-pipes-modules/pom.xml index b566649f..a6f7f996 100644 --- a/s-pipes-modules/pom.xml +++ b/s-pipes-modules/pom.xml @@ -51,25 +51,24 @@ - - - - - - - - - - - - - - - - - - - + + cz.cvut.kbss + s-pipes-module-creator-maven-plugin + ${project.parent.version} + false + + + + process-annotations + + + RDF_FOR_ALL_CHILDREN + cz.cvut.spipes + all-modules.ttl + + + +