You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by bo...@apache.org on 2022/12/25 20:00:35 UTC

[streampipes] 03/06: add checkstyle to streampipes-maven-plugin

This is an automated email from the ASF dual-hosted git repository.

bossenti pushed a commit to branch chore/add-checkstyle
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 8c56830fb77569100a58919f26a01db672110853
Author: bossenti <bo...@posteo.de>
AuthorDate: Sun Dec 25 20:56:30 2022 +0100

    add checkstyle to streampipes-maven-plugin
---
 streampipes-container-standalone/pom.xml           |   1 -
 streampipes-maven-plugin/pom.xml                   |   7 +-
 .../apache/streampipes/smp/CreateAssetMojo.java    |  32 +++--
 .../streampipes/smp/ExtractDocumentationMojo.java  |  70 ++++++-----
 .../streampipes/smp/constants/PeGridConst.java     |   4 +-
 .../smp/extractor/AssetModelItemExtractor.java     |  16 +--
 .../smp/extractor/ControllerExtractor.java         |   9 +-
 .../smp/extractor/ControllerFileFinder.java        |   6 +-
 .../smp/extractor/DockerImageExtractor.java        |  10 +-
 .../streampipes/smp/extractor/ElementFinder.java   |   3 +-
 .../streampipes/smp/extractor/FieldReplacer.java   |  17 ++-
 .../smp/extractor/LocalesExtractor.java            |   5 +-
 .../extractor/PipelineElementTypeExtractor.java    |   2 +-
 .../extractor/ResourceDirectoryElementFinder.java  |   7 +-
 .../streampipes/smp/generator/AssetGenerator.java  |  14 +--
 .../smp/generator/DataJsonGenerator.java           |   7 +-
 .../smp/generator/MarkdownHeaderGenerator.java     |  24 ++--
 .../generator/PipelineElementGridGenerator.java    |  30 +++--
 .../PipelineElementOverviewGenerator.java          |   7 +-
 .../smp/generator/SidebarConfigGenerator.java      |   5 +-
 .../apache/streampipes/smp/model/AssetModel.java   |  12 +-
 .../smp/parser/DocumentationParser.java            |   4 +-
 .../parser/PipelineElementDescriptionReplacer.java |   2 +-
 .../smp/parser/PipelineElementNameReplacer.java    |   2 +-
 .../streampipes/smp/util/DuplicateRemover.java     |   8 +-
 .../org/apache/streampipes/smp/util/Utils.java     |  16 +--
 .../src/main/resources/docker-compose.yml          |   4 +-
 .../src/main/resources/documentation.md            |   2 -
 .../src/main/resources/expected.documentation.md   |   2 -
 .../smp/extractor/TestAssetModelExtractor.java     |  15 ++-
 .../smp/generator/TestMarkdownTitleRemover.java    | 140 ++++++++++-----------
 .../TestPipelineElementOverviewGenerator.java      |   3 +-
 .../smp/parser/TestDocumentationParser.java        |   9 +-
 33 files changed, 260 insertions(+), 235 deletions(-)

diff --git a/streampipes-container-standalone/pom.xml b/streampipes-container-standalone/pom.xml
index 3b1a44b3b..c6de4457f 100644
--- a/streampipes-container-standalone/pom.xml
+++ b/streampipes-container-standalone/pom.xml
@@ -50,7 +50,6 @@
         <!-- Test dependencies -->
     </dependencies>
     <build>
-        <finalName>streampipes-connect-container-master</finalName>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
diff --git a/streampipes-maven-plugin/pom.xml b/streampipes-maven-plugin/pom.xml
index 7fba39f4f..9f6f36872 100644
--- a/streampipes-maven-plugin/pom.xml
+++ b/streampipes-maven-plugin/pom.xml
@@ -16,7 +16,8 @@
   ~ 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">
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <artifactId>streampipes-parent</artifactId>
         <groupId>org.apache.streampipes</groupId>
@@ -222,6 +223,10 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/CreateAssetMojo.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/CreateAssetMojo.java
index e8af443d3..d5567453d 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/CreateAssetMojo.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/CreateAssetMojo.java
@@ -19,6 +19,11 @@
 package org.apache.streampipes.smp;
 
 
+import org.apache.streampipes.smp.extractor.ControllerFileFinder;
+import org.apache.streampipes.smp.generator.AssetGenerator;
+import org.apache.streampipes.smp.model.AssetModel;
+import org.apache.streampipes.smp.util.DuplicateRemover;
+
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -27,10 +32,6 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
-import org.apache.streampipes.smp.extractor.ControllerFileFinder;
-import org.apache.streampipes.smp.generator.AssetGenerator;
-import org.apache.streampipes.smp.model.AssetModel;
-import org.apache.streampipes.smp.util.DuplicateRemover;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 
@@ -42,20 +43,17 @@ import java.util.List;
  */
 @Mojo(name = "create-assets", defaultPhase = LifecyclePhase.NONE)
 public class CreateAssetMojo
-        extends AbstractMojo {
+    extends AbstractMojo {
 
+  private static final String APP_ID_PROPERTY = "appId";
+  private static final String GENERATE_ALL_PROPERTY = "all";
   @Parameter(defaultValue = "${session}")
   private MavenSession session;
-
   @Parameter(defaultValue = "${project}", readonly = true)
   private MavenProject project;
-
   @Component
   private Prompter prompter;
 
-  private static final String APP_ID_PROPERTY = "appId";
-  private static final String GENERATE_ALL_PROPERTY = "all";
-
   public void execute() throws MojoExecutionException {
 
     String appId = this.session.getExecutionProperties().getProperty(APP_ID_PROPERTY);
@@ -64,8 +62,8 @@ public class CreateAssetMojo
 
     if (appId != null) {
       getLog().info("Generating asset directory for element " + appId);
-      AssetModel assetModel = new AssetModel(appId, "Pipeline Element Name", "Pipeline Element " +
-              "Description");
+      AssetModel assetModel = new AssetModel(appId, "Pipeline Element Name", "Pipeline Element "
+          + "Description");
       new AssetGenerator(baseDir.getAbsolutePath(), assetModel);
     }
 
@@ -74,20 +72,20 @@ public class CreateAssetMojo
       getLog().info("Generating asset directories for source root " + sourceRoots.get(0));
 
       getLog().info("Finding controllers...");
-      List<AssetModel> allAssetModels =  new ControllerFileFinder(getLog(), baseDir.getAbsolutePath(),
-              sourceRoots.get(0),
-              "**/*Controller.java").makeAssetModels();
+      List<AssetModel> allAssetModels = new ControllerFileFinder(getLog(), baseDir.getAbsolutePath(),
+          sourceRoots.get(0),
+          "**/*Controller.java").makeAssetModels();
 
       getLog().info("Checking for already existing asset directories...");
 
       List<AssetModel> filteredModels =
-              new DuplicateRemover(baseDir.getAbsolutePath(), allAssetModels).removeAlreadyExisting();
+          new DuplicateRemover(baseDir.getAbsolutePath(), allAssetModels).removeAlreadyExisting();
 
       try {
         String proceed = prompter.prompt(makeProceedText(filteredModels));
         if (proceed.equals("Y")) {
           filteredModels.forEach(am -> new AssetGenerator(baseDir.getAbsolutePath(), am)
-           .genreateAssetDirectoryAndContents());
+              .genreateAssetDirectoryAndContents());
         }
       } catch (PrompterException e) {
         e.printStackTrace();
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/ExtractDocumentationMojo.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/ExtractDocumentationMojo.java
index 3d095db4d..1942bec18 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/ExtractDocumentationMojo.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/ExtractDocumentationMojo.java
@@ -18,6 +18,18 @@
 
 package org.apache.streampipes.smp;
 
+import org.apache.streampipes.smp.extractor.ControllerFileFinder;
+import org.apache.streampipes.smp.extractor.ResourceDirectoryElementFinder;
+import org.apache.streampipes.smp.generator.DataJsonGenerator;
+import org.apache.streampipes.smp.generator.ImagePathReplacer;
+import org.apache.streampipes.smp.generator.MarkdownHeaderGenerator;
+import org.apache.streampipes.smp.generator.MarkdownTitleRemover;
+import org.apache.streampipes.smp.generator.PipelineElementOverviewGenerator;
+import org.apache.streampipes.smp.generator.SidebarConfigGenerator;
+import org.apache.streampipes.smp.model.AssetModel;
+import org.apache.streampipes.smp.util.DirectoryManager;
+import org.apache.streampipes.smp.util.Utils;
+
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
@@ -27,12 +39,6 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
-import org.apache.streampipes.smp.extractor.ControllerFileFinder;
-import org.apache.streampipes.smp.extractor.ResourceDirectoryElementFinder;
-import org.apache.streampipes.smp.generator.*;
-import org.apache.streampipes.smp.model.AssetModel;
-import org.apache.streampipes.smp.util.DirectoryManager;
-import org.apache.streampipes.smp.util.Utils;
 
 import java.io.File;
 import java.io.IOException;
@@ -68,7 +74,7 @@ public class ExtractDocumentationMojo extends AbstractMojo {
   public void execute() throws MojoExecutionException, MojoFailureException {
     String targetDir = this.session.getExecutionRootDirectory() + File.separator + "target";
     String spIgnoreFile =
-            this.session.getExecutionRootDirectory() + File.separator + SP_IGNORE_FILENAME;
+        this.session.getExecutionRootDirectory() + File.separator + SP_IGNORE_FILENAME;
     Path docsBasePath = Paths.get(targetDir, DOCS_ROOT_FOLDER);
 
     List<MavenProject> projects = session.getProjects();
@@ -95,12 +101,12 @@ public class ExtractDocumentationMojo extends AbstractMojo {
       if (currentModule.getName().equals("streampipes-connect-adapters")) {
         System.out.println("Opening adapters");
         allAssetModels = new ResourceDirectoryElementFinder(sourceRoots.get(0), getLog(), baseDir.getAbsolutePath())
-                .makeAssetModels();
+            .makeAssetModels();
         allAssetModels.forEach(am -> System.out.println(am.getAppId()));
       } else {
         allAssetModels = new ControllerFileFinder(getLog(),
-                baseDir.getAbsolutePath(), sourceRoots.get(0),
-                "**/*Controller.java").makeAssetModels();
+            baseDir.getAbsolutePath(), sourceRoots.get(0),
+            "**/*Controller.java").makeAssetModels();
       }
 
       allAssetModels.forEach(am -> {
@@ -111,32 +117,33 @@ public class ExtractDocumentationMojo extends AbstractMojo {
 
       List<String> finalPipelineElementsToExclude = pipelineElementsToExclude;
       documentedPipelineElements.addAll(
-              allAssetModels
-                      .stream()
-                      .filter(am -> finalPipelineElementsToExclude.stream().noneMatch(pe -> pe.equals(am.getAppId())))
-                      .collect(Collectors.toList()));
+          allAssetModels
+              .stream()
+              .filter(am -> finalPipelineElementsToExclude.stream().noneMatch(pe -> pe.equals(am.getAppId())))
+              .collect(Collectors.toList()));
     }
     try {
       Collections.sort(documentedPipelineElements);
-      documentedPipelineElements.forEach(am -> System.out.println(am.getAppId() + ", " + am.getPipelineElementName() + ", " + am.getPipelineElementDescription()));
+      documentedPipelineElements.forEach(am -> System.out.println(
+          am.getAppId() + ", " + am.getPipelineElementName() + ", " + am.getPipelineElementDescription()));
 
       for (AssetModel assetModel : documentedPipelineElements) {
         Path docsPath = Paths.get(targetDir, DOCS_ROOT_FOLDER, DOCS_FOLDER,
-                "pe");
+            "pe");
         Path docsWebsitePath = Paths.get(targetDir, DOCS_ROOT_FOLDER, DOCS_WEBSITE_FOLDER,
-                assetModel.getAppId());
+            assetModel.getAppId());
         Path imgPath = Paths.get(targetDir, DOCS_ROOT_FOLDER, IMG_FOLDER,
-                assetModel.getAppId());
+            assetModel.getAppId());
         DirectoryManager.createIfNotExists(docsPath);
         DirectoryManager.createIfNotExists(imgPath);
 
         Boolean iconExists = Files.exists(Utils.makeResourcePath(assetModel.getBaseDir(),
-                assetModel.getAppId()).resolve("icon.png"));
+            assetModel.getAppId()).resolve("icon.png"));
 
         if (iconExists) {
           Files.copy(Utils.makeResourcePath(assetModel.getBaseDir(),
                   assetModel.getAppId()).resolve("icon.png")
-                  , imgPath.resolve("icon.png"));
+              , imgPath.resolve("icon.png"));
         } else {
           ClassLoader classLoader = this.getClass().getClassLoader();
           InputStream inputStream = classLoader.getResourceAsStream("placeholder-icon.png");
@@ -144,21 +151,21 @@ public class ExtractDocumentationMojo extends AbstractMojo {
         }
 
         String originalDocumentationFileContents =
-                FileUtils.readFileToString(Utils.makeResourcePath(assetModel.getBaseDir(),
-                        assetModel.getAppId()).resolve("documentation.md").toFile());
+            FileUtils.readFileToString(Utils.makeResourcePath(assetModel.getBaseDir(),
+                assetModel.getAppId()).resolve("documentation.md").toFile());
 
         // modify docs for documentation page
         String documentationFileContents =
-                new MarkdownTitleRemover(originalDocumentationFileContents).removeTitle();
+            new MarkdownTitleRemover(originalDocumentationFileContents).removeTitle();
 
         documentationFileContents =
-                new MarkdownHeaderGenerator(assetModel, documentationFileContents).createHeaders();
+            new MarkdownHeaderGenerator(assetModel, documentationFileContents).createHeaders();
 
         documentationFileContents = new ImagePathReplacer(documentationFileContents,
-                assetModel.getAppId()).replaceContentForDocs();
+            assetModel.getAppId()).replaceContentForDocs();
 
-        FileUtils.writeStringToFile(docsPath.resolve(assetModel.getAppId() +".md").toFile(),
-                documentationFileContents);
+        FileUtils.writeStringToFile(docsPath.resolve(assetModel.getAppId() + ".md").toFile(),
+            documentationFileContents);
 
       }
 
@@ -169,16 +176,17 @@ public class ExtractDocumentationMojo extends AbstractMojo {
         FileUtils.writeStringToFile(docsBasePath.resolve("pipeline-elements.md").toFile(), header);
       }
 
-      String pipelineElementOverviewContent = new PipelineElementOverviewGenerator(documentedPipelineElements).generate();
+      String pipelineElementOverviewContent =
+          new PipelineElementOverviewGenerator(documentedPipelineElements).generate();
       FileUtils.writeStringToFile(docsBasePath.resolve("pipeline-elements.md").toFile(),
-              pipelineElementOverviewContent, true);
+          pipelineElementOverviewContent, true);
 
 
       FileUtils.writeStringToFile(docsBasePath.resolve("sidebars.json").toFile(),
-              new SidebarConfigGenerator(documentedPipelineElements).generate());
+          new SidebarConfigGenerator(documentedPipelineElements).generate());
 
       FileUtils.writeStringToFile(docsBasePath.resolve("_data.json").toFile(),
-              new DataJsonGenerator(documentedPipelineElements).generate());
+          new DataJsonGenerator(documentedPipelineElements).generate());
 
 
     } catch (IOException e) {
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/constants/PeGridConst.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/constants/PeGridConst.java
index 79185613e..50e361eea 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/constants/PeGridConst.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/constants/PeGridConst.java
@@ -36,8 +36,8 @@ public class PeGridConst {
   public static final String PE_CONTAINER_ITEM_HEADER_PE = "pe-container-item-header-pe";
 
   public static final String PE_CONTAINER_ITEM_LABEL = "pe-container-item-label";
-  public static final String PE_CONTAINER_ITEM_LABEL_PROCESSOR = "pe-container-item-label" +
-          "-processor";
+  public static final String PE_CONTAINER_ITEM_LABEL_PROCESSOR = "pe-container-item-label"
+      + "-processor";
   public static final String PE_CONTAINER_ITEM_LABEL_SINK = "pe-container-item-label-sink";
   public static final String PE_CONTAINER_ITEM_LABEL_NAME = "pe-container-item-label-name";
 
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/AssetModelItemExtractor.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/AssetModelItemExtractor.java
index 60d0c1022..74c6873dd 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/AssetModelItemExtractor.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/AssetModelItemExtractor.java
@@ -26,12 +26,12 @@ import java.util.regex.Pattern;
 
 public class AssetModelItemExtractor {
 
-  private static final String REGEX = "(DataSinkBuilder|ProcessingElementBuilder)\\.create\\" +
-          "((\".*?\"),.*?(\".*?\"),.*?(\".*?\")\\)";
+  private static final String REGEX = "(DataSinkBuilder|ProcessingElementBuilder)\\.create\\"
+      + "((\".*?\"),.*?(\".*?\"),.*?(\".*?\")\\)";
 
-  private static final String ONLY_APP_ID_REGEX = "(DataSinkBuilder|ProcessingElementBuilder)\\" +
-          ".create\\" +
-          "((\".*?\")\\)";
+  private static final String ONLY_APP_ID_REGEX = "(DataSinkBuilder|ProcessingElementBuilder)\\"
+      + ".create\\"
+      + "((\".*?\")\\)";
 
   private static final Pattern pattern = Pattern.compile(REGEX);
   private static final Pattern onlyAppIdPattern = Pattern.compile(ONLY_APP_ID_REGEX);
@@ -40,7 +40,7 @@ public class AssetModelItemExtractor {
 
   public AssetModelItemExtractor(String declareModelContent) {
     this.declareModelContent = declareModelContent
-            .replaceAll("\n", "");
+        .replaceAll("\n", "");
 
   }
 
@@ -84,7 +84,7 @@ public class AssetModelItemExtractor {
 
   private String removeQuotes(String text) {
     return text
-            .replaceAll("\" \\+ \"", "")
-            .replaceAll("\"", "");
+        .replaceAll("\" \\+ \"", "")
+        .replaceAll("\"", "");
   }
 }
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerExtractor.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerExtractor.java
index a7700f3fb..7f2c0436a 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerExtractor.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerExtractor.java
@@ -19,6 +19,7 @@
 package org.apache.streampipes.smp.extractor;
 
 import org.apache.streampipes.smp.model.AssetModel;
+
 import org.jboss.forge.roaster.Roaster;
 import org.jboss.forge.roaster.model.source.JavaClassSource;
 
@@ -27,9 +28,9 @@ import java.nio.file.Paths;
 
 public class ControllerExtractor {
 
+  private static String declareModelMethod = "declareModel";
   private String filename;
   private String baseDir;
-  private static String DECLARE_MODEL_METHOD = "declareModel";
 
   public ControllerExtractor(String baseDir, String filename) {
     this.filename = filename;
@@ -39,10 +40,10 @@ public class ControllerExtractor {
   public AssetModel extractControllerDetails() throws Exception {
     String fileContents = new String(Files.readAllBytes(Paths.get(filename)));
     JavaClassSource clazz = Roaster.parse(JavaClassSource.class, fileContents);
-    if (clazz.hasMethodSignature(DECLARE_MODEL_METHOD)) {
-      String declareMethodContent = (clazz.getMethod(DECLARE_MODEL_METHOD).getBody());
+    if (clazz.hasMethodSignature(declareModelMethod)) {
+      String declareMethodContent = (clazz.getMethod(declareModelMethod).getBody());
       declareMethodContent =
-              new FieldReplacer(clazz, declareMethodContent).replaceDeclareModelContent();
+          new FieldReplacer(clazz, declareMethodContent).replaceDeclareModelContent();
       AssetModel assetModel = new AssetModelItemExtractor(declareMethodContent).extractAssetItem();
       if (assetModel.getPipelineElementName() == null) {
         assetModel = new LocalesExtractor(baseDir, assetModel).extract();
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerFileFinder.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerFileFinder.java
index 53bb64579..d6d5dae10 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerFileFinder.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ControllerFileFinder.java
@@ -18,10 +18,11 @@
 
 package org.apache.streampipes.smp.extractor;
 
+import org.apache.streampipes.smp.model.AssetModel;
+
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.shared.model.fileset.FileSet;
 import org.apache.maven.shared.model.fileset.util.FileSetManager;
-import org.apache.streampipes.smp.model.AssetModel;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -50,7 +51,8 @@ public class ControllerFileFinder extends ElementFinder {
     List<AssetModel> allAssetModels = new ArrayList<>();
     for (String file : findFiles()) {
       try {
-        allAssetModels.add(new ControllerExtractor(baseDir, sourceRoot + File.separator + file).extractControllerDetails());
+        allAssetModels.add(
+            new ControllerExtractor(baseDir, sourceRoot + File.separator + file).extractControllerDetails());
       } catch (Exception e) {
         log.error(e.getMessage());
         log.info("Could not parse file " + file + ", skipping...");
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/DockerImageExtractor.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/DockerImageExtractor.java
index 3a9d357e5..a62d70795 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/DockerImageExtractor.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/DockerImageExtractor.java
@@ -34,9 +34,9 @@ public class DockerImageExtractor {
   private static final String Image = "image";
   private static final String Services = "services";
   private static final String Colon = ":";
-  private static final String ImagePrefix = "${SP_PE_DOCKER_REGISTRY}/streampipes" +
-          "/streampipes" +
-          "-pipeline-elements/";
+  private static final String ImagePrefix = "${SP_PE_DOCKER_REGISTRY}/streampipes"
+      + "/streampipes"
+      + "-pipeline-elements/";
 
   private String baseDir;
 
@@ -50,7 +50,7 @@ public class DockerImageExtractor {
     Yaml yaml = new Yaml();
     try {
       Map<String, Object> fileContents =
-              yaml.load(new String(Files.readAllBytes(dockerComposePath)));
+          yaml.load(new String(Files.readAllBytes(dockerComposePath)));
 
       return extractNameFromYaml(fileContents);
 
@@ -65,7 +65,7 @@ public class DockerImageExtractor {
     AtomicReference<String> imageName = new AtomicReference<>("");
     if (services.size() > 0) {
       services.forEach((key, value) -> imageName.set(parseValue(((Map<String,
-              Object>) value).get(Image).toString())));
+          Object>) value).get(Image).toString())));
     }
 
     return imageName.get();
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ElementFinder.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ElementFinder.java
index 9c5bc8519..55818c8d1 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ElementFinder.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ElementFinder.java
@@ -17,9 +17,10 @@
  */
 package org.apache.streampipes.smp.extractor;
 
-import org.apache.maven.plugin.logging.Log;
 import org.apache.streampipes.smp.model.AssetModel;
 
+import org.apache.maven.plugin.logging.Log;
+
 import java.util.List;
 
 public abstract class ElementFinder {
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/FieldReplacer.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/FieldReplacer.java
index 081e514c9..a66182032 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/FieldReplacer.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/FieldReplacer.java
@@ -25,14 +25,13 @@ import java.util.regex.Pattern;
 
 public class FieldReplacer {
 
+  private static final String CHECK_FIELD_REGEX = "(DataSinkBuilder|ProcessingElementBuilder)\\"
+      + ".create\\"
+      + "((.*?),(.*?)\\)";
+  private static final Pattern checkFieldPattern = Pattern.compile(CHECK_FIELD_REGEX);
   private String declareModelContent;
   private JavaClassSource source;
 
-  private static final String CHECK_FIELD_REGEX = "(DataSinkBuilder|ProcessingElementBuilder)\\" +
-          ".create\\" +
-          "((.*?),(.*?)\\)";
-  private static final Pattern checkFieldPattern = Pattern.compile(CHECK_FIELD_REGEX);
-
 
   public FieldReplacer(JavaClassSource source, String declareModelContent) {
     this.source = source;
@@ -41,11 +40,11 @@ public class FieldReplacer {
 
   public String replaceDeclareModelContent() {
     Matcher matcher = checkFieldPattern.matcher(this.declareModelContent);
-    while(matcher.find()) {
+    while (matcher.find()) {
       String match = matcher.group(2);
       if (!match.startsWith("\"")) {
         declareModelContent = declareModelContent.replaceFirst(match,
-                getFieldValue(match));
+            getFieldValue(match));
       }
     }
     return declareModelContent;
@@ -53,7 +52,7 @@ public class FieldReplacer {
 
   private String getFieldValue(String fieldName) {
     return "\""
-            + source.getField(fieldName).getStringInitializer()
-            + "\"";
+        + source.getField(fieldName).getStringInitializer()
+        + "\"";
   }
 }
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/LocalesExtractor.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/LocalesExtractor.java
index 3c46a272b..ec50554f7 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/LocalesExtractor.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/LocalesExtractor.java
@@ -27,11 +27,10 @@ import java.util.Properties;
 
 public class LocalesExtractor {
 
-  private AssetModel assetModel;
-  private String baseDir;
-
   private static final String TITLE = ".title";
   private static final String DESCRIPTION = ".description";
+  private AssetModel assetModel;
+  private String baseDir;
 
   public LocalesExtractor(String baseDir, AssetModel assetModel) {
     this.baseDir = baseDir;
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/PipelineElementTypeExtractor.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/PipelineElementTypeExtractor.java
index 462a72f31..df5322fba 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/PipelineElementTypeExtractor.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/PipelineElementTypeExtractor.java
@@ -37,7 +37,7 @@ public class PipelineElementTypeExtractor {
     } else if (typeString.equals(SinkString)) {
       return PeType.SINK;
     } else {
-      throw new IllegalArgumentException("Unknown pipeline element type " +typeString);
+      throw new IllegalArgumentException("Unknown pipeline element type " + typeString);
     }
   }
 }
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ResourceDirectoryElementFinder.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ResourceDirectoryElementFinder.java
index 66e5ce192..1151b78f5 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ResourceDirectoryElementFinder.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ResourceDirectoryElementFinder.java
@@ -17,11 +17,12 @@
  */
 package org.apache.streampipes.smp.extractor;
 
-import org.apache.maven.plugin.logging.Log;
 import org.apache.streampipes.smp.constants.PeType;
 import org.apache.streampipes.smp.model.AssetModel;
 import org.apache.streampipes.smp.util.Utils;
 
+import org.apache.maven.plugin.logging.Log;
+
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -46,8 +47,8 @@ public class ResourceDirectoryElementFinder extends ElementFinder {
     File[] resourceDirs = resourceDirPath.toFile().listFiles(File::isDirectory);
     if (resourceDirs != null) {
       List<File> appDirs = Arrays.stream(resourceDirs)
-            .filter(rd -> rd.getName().startsWith("org.apache.streampipes"))
-              .collect(Collectors.toList());
+          .filter(rd -> rd.getName().startsWith("org.apache.streampipes"))
+          .collect(Collectors.toList());
 
       appDirs.forEach(ap -> {
         try {
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/AssetGenerator.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/AssetGenerator.java
index 664f64095..7f6bd8c1b 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/AssetGenerator.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/AssetGenerator.java
@@ -18,23 +18,23 @@
 
 package org.apache.streampipes.smp.generator;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.streampipes.smp.model.AssetModel;
 import org.apache.streampipes.smp.parser.DocumentationParser;
 import org.apache.streampipes.smp.util.Utils;
 
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 
 public class AssetGenerator {
 
+  private static final String DOCUMENTATION_FILE = "documentation.md";
   private AssetModel assetModel;
   private String baseDir;
 
-  private static final String DOCUMENTATION_FILE = "documentation.md";
-
   public AssetGenerator(String baseDir, AssetModel assetModel) {
     this.assetModel = assetModel;
     this.baseDir = baseDir;
@@ -48,10 +48,10 @@ public class AssetGenerator {
     InputStream inputStream = classLoader.getResourceAsStream(DOCUMENTATION_FILE);
     try {
       String content =
-              new DocumentationParser(assetModel)
-                      .parseAndStoreDocumentation(IOUtils.toString(inputStream));
+          new DocumentationParser(assetModel)
+              .parseAndStoreDocumentation(IOUtils.toString(inputStream));
       FileUtils.writeStringToFile(new File(resourcePath + File.separator + DOCUMENTATION_FILE),
-              content);
+          content);
     } catch (IOException e) {
       e.printStackTrace();
     }
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/DataJsonGenerator.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/DataJsonGenerator.java
index 4d1dc3ceb..f99239841 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/DataJsonGenerator.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/DataJsonGenerator.java
@@ -18,11 +18,12 @@
 
 package org.apache.streampipes.smp.generator;
 
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
 import org.apache.streampipes.smp.constants.PeType;
 import org.apache.streampipes.smp.model.AssetModel;
 
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+
 import java.util.List;
 
 public class DataJsonGenerator extends OutputGenerator {
@@ -63,7 +64,7 @@ public class DataJsonGenerator extends OutputGenerator {
 
   private String makeDockerHubLink(PeType peType, String moduleName) {
     String dockerHubRepoName = peType == PeType.ADAPTER ? "connect-worker" : moduleName.replace("streampipes-", "");
-    return "https://hub.docker.com/r/apachestreampipes/" +dockerHubRepoName;
+    return "https://hub.docker.com/r/apachestreampipes/" + dockerHubRepoName;
   }
 
   private String makeGithubLink(String moduleName) {
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/MarkdownHeaderGenerator.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/MarkdownHeaderGenerator.java
index c81062061..b78835da3 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/MarkdownHeaderGenerator.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/MarkdownHeaderGenerator.java
@@ -33,18 +33,18 @@ public class MarkdownHeaderGenerator {
   public String createHeaders() {
     StringBuilder builder = new StringBuilder();
     builder
-            .append("---\n")
-            .append("id: ")
-            .append(assetModel.getAppId())
-            .append("\n")
-            .append("title: ")
-            .append(assetModel.getPipelineElementName())
-            .append("\n")
-            .append("sidebar_label: ")
-            .append(assetModel.getPipelineElementName())
-            .append("\n")
-            .append("---\n\n")
-            .append(markdown);
+        .append("---\n")
+        .append("id: ")
+        .append(assetModel.getAppId())
+        .append("\n")
+        .append("title: ")
+        .append(assetModel.getPipelineElementName())
+        .append("\n")
+        .append("sidebar_label: ")
+        .append(assetModel.getPipelineElementName())
+        .append("\n")
+        .append("---\n\n")
+        .append(markdown);
 
     return builder.toString();
   }
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementGridGenerator.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementGridGenerator.java
index 1e3bfb268..42a08b50c 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementGridGenerator.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementGridGenerator.java
@@ -18,12 +18,17 @@
 
 package org.apache.streampipes.smp.generator;
 
-import j2html.tags.DomContent;
 import org.apache.streampipes.smp.constants.PeGridConst;
 import org.apache.streampipes.smp.constants.PeType;
 import org.apache.streampipes.smp.model.AssetModel;
 
-import static j2html.TagCreator.*;
+import j2html.tags.DomContent;
+
+import static j2html.TagCreator.a;
+import static j2html.TagCreator.div;
+import static j2html.TagCreator.i;
+import static j2html.TagCreator.img;
+import static j2html.TagCreator.text;
 
 public class PipelineElementGridGenerator {
 
@@ -34,8 +39,8 @@ public class PipelineElementGridGenerator {
   private static final String GITHUB = "Code on Github";
   private static final String DOCKER_HUB = "Docker Container";
 
-  private static final String STREAMPIPES_GITHUB_URL = "https://www.github" +
-          ".com/apache/incubator-streampipes-extensions/tree/dev/";
+  private static final String STREAMPIPES_GITHUB_URL = "https://www.github"
+      + ".com/apache/incubator-streampipes-extensions/tree/dev/";
 
   private static final String DOCKER_HUB_URL = "https://hub.docker.com/r/streampipes/";
 
@@ -51,9 +56,9 @@ public class PipelineElementGridGenerator {
 
   private DomContent makeContainerItem() {
     return div(makeContainerItemHeader(),
-            makeContainerItemBody(),
-            makeContainerItemFooter()).withClasses(PeGridConst.PE_CONTAINER_ITEM,
-            getContainerItemType());
+        makeContainerItemBody(),
+        makeContainerItemFooter()).withClasses(PeGridConst.PE_CONTAINER_ITEM,
+        getContainerItemType());
   }
 
   private DomContent makeContainerItemFooter() {
@@ -106,11 +111,12 @@ public class PipelineElementGridGenerator {
 
   private DomContent makeContainerItemHeader() {
     return div(makeContainerItemIconWrapper(),
-            makeContainerItemHeaderPe()).withClass(PeGridConst.PE_CONTAINER_ITEM_HEADER);
+        makeContainerItemHeaderPe()).withClass(PeGridConst.PE_CONTAINER_ITEM_HEADER);
   }
 
   private DomContent makeContainerItemHeaderPe() {
-    return div(makeContainerItemLabel(), makeContainerItemLabelName()).withClass(PeGridConst.PE_CONTAINER_ITEM_HEADER_PE);
+    return div(makeContainerItemLabel(), makeContainerItemLabelName()).withClass(
+        PeGridConst.PE_CONTAINER_ITEM_HEADER_PE);
   }
 
   private DomContent makeContainerItemLabelName() {
@@ -127,7 +133,7 @@ public class PipelineElementGridGenerator {
 
   private String makeLabelType() {
     return assetModel.getPeType().equals(PeType.PROCESSOR) ? PeGridConst.PE_CONTAINER_ITEM_LABEL_PROCESSOR :
-            PeGridConst.PE_CONTAINER_ITEM_LABEL_SINK;
+        PeGridConst.PE_CONTAINER_ITEM_LABEL_SINK;
   }
 
   private DomContent makeContainerItemIconWrapper() {
@@ -140,12 +146,12 @@ public class PipelineElementGridGenerator {
 
   private String makeIconType() {
     return assetModel.getPeType().equals(PeType.PROCESSOR) ? PeGridConst.PE_ITEM_ICON_PROCESSOR :
-            PeGridConst.PE_ITEM_ICON_SINK;
+        PeGridConst.PE_ITEM_ICON_SINK;
   }
 
   private String getContainerItemType() {
     return assetModel.getPeType().equals(PeType.PROCESSOR) ? PeGridConst.PE_CONTAINER_ITEM_PROCESSOR :
-            PeGridConst.PE_CONTAINER_ITEM_SINK;
+        PeGridConst.PE_CONTAINER_ITEM_SINK;
   }
 
 }
\ No newline at end of file
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementOverviewGenerator.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementOverviewGenerator.java
index af5f0c682..75277ffbe 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementOverviewGenerator.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/PipelineElementOverviewGenerator.java
@@ -18,11 +18,12 @@
 
 package org.apache.streampipes.smp.generator;
 
-import j2html.tags.ContainerTag;
-import j2html.tags.DomContent;
 import org.apache.streampipes.smp.constants.PeGridConst;
 import org.apache.streampipes.smp.model.AssetModel;
 
+import j2html.tags.ContainerTag;
+import j2html.tags.DomContent;
+
 import java.util.List;
 
 import static j2html.TagCreator.div;
@@ -36,7 +37,7 @@ public class PipelineElementOverviewGenerator extends OutputGenerator {
   public String generate() {
 
     ContainerTag gridContent = div().withClass(PeGridConst.PE_GRID_CONTAINER);
-    for(AssetModel am : assetModels) {
+    for (AssetModel am : assetModels) {
       gridContent.with(makeGrid(am));
     }
     String markdownContent = gridContent.render();
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/SidebarConfigGenerator.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/SidebarConfigGenerator.java
index 9a1d560ce..3c492e66d 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/SidebarConfigGenerator.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/generator/SidebarConfigGenerator.java
@@ -18,9 +18,10 @@
 
 package org.apache.streampipes.smp.generator;
 
+import org.apache.streampipes.smp.model.AssetModel;
+
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
-import org.apache.streampipes.smp.model.AssetModel;
 
 import java.util.List;
 
@@ -33,7 +34,7 @@ public class SidebarConfigGenerator extends OutputGenerator {
 
   public String generate() {
     JsonArray pipelineElements = new JsonArray();
-    assetModels.forEach(pe -> pipelineElements.add("pe/" +pe.getAppId()));
+    assetModels.forEach(pe -> pipelineElements.add("pe/" + pe.getAppId()));
 
     JsonObject pipelineElementObject = new JsonObject();
     pipelineElementObject.add("Pipeline Elements", pipelineElements);
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/model/AssetModel.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/model/AssetModel.java
index 5446da380..60447217d 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/model/AssetModel.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/model/AssetModel.java
@@ -76,14 +76,14 @@ public class AssetModel implements Comparable<AssetModel> {
     return moduleName;
   }
 
-  public String getContainerName() {
-    return containerName;
-  }
-
   public void setModuleName(String moduleName) {
     this.moduleName = moduleName;
   }
 
+  public String getContainerName() {
+    return containerName;
+  }
+
   public void setContainerName(String containerName) {
     this.containerName = containerName;
   }
@@ -98,8 +98,8 @@ public class AssetModel implements Comparable<AssetModel> {
 
   @Override
   public String toString() {
-    return pipelineElementName + " (" + peType.toString() + ", " + appId + "): " +
-            pipelineElementDescription + "\n";
+    return pipelineElementName + " (" + peType.toString() + ", " + appId + "): "
+        + pipelineElementDescription + "\n";
   }
 
   public int compareTo(AssetModel other) {
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/DocumentationParser.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/DocumentationParser.java
index bb2773d51..9c8bcb00d 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/DocumentationParser.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/DocumentationParser.java
@@ -31,9 +31,9 @@ public class DocumentationParser {
   public String parseAndStoreDocumentation(String markdown) {
 
     markdown = new PipelineElementNameReplacer(assetModel.getPipelineElementName(),
-            markdown).replace();
+        markdown).replace();
     markdown = new PipelineElementDescriptionReplacer(assetModel.getPipelineElementDescription(),
-            markdown).replace();
+        markdown).replace();
 
     return markdown;
 
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementDescriptionReplacer.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementDescriptionReplacer.java
index b2e4dffe8..47bc54c27 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementDescriptionReplacer.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementDescriptionReplacer.java
@@ -23,7 +23,7 @@ import java.util.regex.Pattern;
 public class PipelineElementDescriptionReplacer extends PlaceholderReplacer {
 
   private static final String PLACEHOLDER = "pipelineElementDescription";
-  private static final String REGEX = "(\\$\\{" +PLACEHOLDER + ")(.*)(})";
+  private static final String REGEX = "(\\$\\{" + PLACEHOLDER + ")(.*)(})";
   private static final Pattern pattern = Pattern.compile(REGEX);
 
   public PipelineElementDescriptionReplacer(String newContent, String markdown) {
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementNameReplacer.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementNameReplacer.java
index cd049633f..bd5ef204d 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementNameReplacer.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/parser/PipelineElementNameReplacer.java
@@ -23,7 +23,7 @@ import java.util.regex.Pattern;
 public class PipelineElementNameReplacer extends PlaceholderReplacer {
 
   private static final String PLACEHOLDER = "pipelineElementName";
-  private static final String REGEX = "(\\$\\{" +PLACEHOLDER + ")(.*)(})";
+  private static final String REGEX = "(\\$\\{" + PLACEHOLDER + ")(.*)(})";
   private static final Pattern pattern = Pattern.compile(REGEX);
 
   public PipelineElementNameReplacer(String pipelineElementName, String markdown) {
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/DuplicateRemover.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/DuplicateRemover.java
index f157a2ca9..5dc380eff 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/DuplicateRemover.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/DuplicateRemover.java
@@ -37,9 +37,9 @@ public class DuplicateRemover {
   public List<AssetModel> removeAlreadyExisting() {
 
     return assetModels
-            .stream()
-            .filter(am -> !(new File(Utils.makePath(sourceDir, am.getAppId() + File.separator +
-                    "documentation.md")).exists()))
-            .collect(Collectors.toList());
+        .stream()
+        .filter(am -> !(new File(Utils.makePath(sourceDir, am.getAppId() + File.separator
+            + "documentation.md")).exists()))
+        .collect(Collectors.toList());
   }
 }
diff --git a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/Utils.java b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/Utils.java
index 92ed17997..d412986a4 100644
--- a/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/Utils.java
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/Utils.java
@@ -26,14 +26,14 @@ public class Utils {
 
   public static String makePath(String sourceRoot, String appId) {
     return sourceRoot
-            + File.separator
-            + "src"
-            + File.separator
-            + "main"
-            + File.separator
-            + "resources"
-            + File.separator
-            + appId;
+        + File.separator
+        + "src"
+        + File.separator
+        + "main"
+        + File.separator
+        + "resources"
+        + File.separator
+        + appId;
   }
 
   public static Path makeResourcePath(String sourcePath) {
diff --git a/streampipes-maven-plugin/src/main/resources/docker-compose.yml b/streampipes-maven-plugin/src/main/resources/docker-compose.yml
index 6fa91543d..b7f4c2a7a 100644
--- a/streampipes-maven-plugin/src/main/resources/docker-compose.yml
+++ b/streampipes-maven-plugin/src/main/resources/docker-compose.yml
@@ -19,8 +19,8 @@ services:
     image: ${SP_DOCKER_REGISTRY}/streampipes/streampipes-pipeline-elements/processors-text-mining-flink:${SP_PE_VERSION}
     depends_on:
       - "consul"
-#    ports:
-#      - "8098:8090"
+    #    ports:
+    #      - "8098:8090"
     environment:
       - SP_ICON_HOST=${SP_ICON_HOST}
     networks:
diff --git a/streampipes-maven-plugin/src/main/resources/documentation.md b/streampipes-maven-plugin/src/main/resources/documentation.md
index a0b07caf7..bd5da361f 100644
--- a/streampipes-maven-plugin/src/main/resources/documentation.md
+++ b/streampipes-maven-plugin/src/main/resources/documentation.md
@@ -33,7 +33,6 @@ Add a detailed description here
 
 ## Required input
 
-
 ***
 
 ## Configuration
@@ -42,7 +41,6 @@ Describe the configuration parameters here
 
 ### 1st parameter
 
-
 ### 2nd parameter
 
 ## Output
\ No newline at end of file
diff --git a/streampipes-maven-plugin/src/main/resources/expected.documentation.md b/streampipes-maven-plugin/src/main/resources/expected.documentation.md
index 4f9efeae1..5b3d257a9 100644
--- a/streampipes-maven-plugin/src/main/resources/expected.documentation.md
+++ b/streampipes-maven-plugin/src/main/resources/expected.documentation.md
@@ -33,7 +33,6 @@ Add a detailed description here
 
 ## Required input
 
-
 ***
 
 ## Configuration
@@ -42,7 +41,6 @@ Describe the configuration parameters here
 
 ### 1st parameter
 
-
 ### 2nd parameter
 
 ## Output
\ No newline at end of file
diff --git a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/extractor/TestAssetModelExtractor.java b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/extractor/TestAssetModelExtractor.java
index 87dd9b28c..d9dff31ba 100644
--- a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/extractor/TestAssetModelExtractor.java
+++ b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/extractor/TestAssetModelExtractor.java
@@ -20,6 +20,7 @@ package org.apache.streampipes.smp.extractor;
 
 import org.apache.streampipes.smp.constants.PeType;
 import org.apache.streampipes.smp.model.AssetModel;
+
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -27,7 +28,8 @@ import static org.junit.Assert.assertNull;
 
 public class TestAssetModelExtractor {
 
-  private String declareModelContent = "return ProcessingElementBuilder.create(\"org.apache.streampipes.processors.filters.jvm.numericalfilter\", \"Numerical Filter\", \"Numerical Filter Description\")\n" +
+  private String declareModelContent =
+      "return ProcessingElementBuilder.create(\"org.apache.streampipes.processors.filters.jvm.numericalfilter\", \"Numerical Filter\", \"Numerical Filter Description\")\n" +
           "            .category(DataProcessorType.FILTER)\n" +
           "            .providesAssets(Assets.DOCUMENTATION, Assets.ICON)\n" +
           "            .requiredStream(StreamRequirementsBuilder\n" +
@@ -44,7 +46,8 @@ public class TestAssetModelExtractor {
           "            .supportedFormats(SupportedFormats.jsonFormat())\n" +
           "            .build();";
 
-  private String declareModelContent2 = "return ProcessingElementBuilder.create(\"org.apache.streampipes.processors.filters.jvm.processor.mergestartandend\",\n" +
+  private String declareModelContent2 =
+      "return ProcessingElementBuilder.create(\"org.apache.streampipes.processors.filters.jvm.processor.mergestartandend\",\n" +
           "            \"MergeStartAndEnd\", \"Merges two event streams if there is a start and an end\")\n" +
           "            .category(DataProcessorType.TRANSFORM)\n" +
           "            .iconUrl(FiltersJvmConfig.getIconUrl(\"projection\"))\n" +
@@ -61,7 +64,8 @@ public class TestAssetModelExtractor {
           "            .supportedProtocols(SupportedProtocols.jms(), SupportedProtocols.kafka())\n" +
           "            .build();";
 
-  private String getDeclareModelContent3 = "return DataSinkBuilder.create(\"org.apache.streampipes.sinks.brokers.jvm.jms\")\n" +
+  private String getDeclareModelContent3 =
+      "return DataSinkBuilder.create(\"org.apache.streampipes.sinks.brokers.jvm.jms\")\n" +
           "            .withLocales(Locales.EN)\n" +
           "            .withAssets(Assets.DOCUMENTATION, Assets.ICON)\n" +
           "            .requiredStream(StreamRequirementsBuilder\n" +
@@ -76,7 +80,8 @@ public class TestAssetModelExtractor {
           "            .supportedProtocols(SupportedProtocols.kafka(), SupportedProtocols.jms())\n" +
           "            .build();";
 
-  private String getGetDeclareModelContent4 = "return ProcessingElementBuilder.create(\"org.apache.streampipes.processors.filters.jvm.numericalfilter\")\n" +
+  private String getGetDeclareModelContent4 =
+      "return ProcessingElementBuilder.create(\"org.apache.streampipes.processors.filters.jvm.numericalfilter\")\n" +
           "            .category(DataProcessorType.FILTER)\n" +
           "            .withAssets(Assets.DOCUMENTATION, Assets.ICON)\n" +
           "            .withLocales(Locales.EN)\n" +
@@ -92,7 +97,7 @@ public class TestAssetModelExtractor {
           "            .supportedProtocols(SupportedProtocols.kafka(), SupportedProtocols.jms())\n" +
           "            .supportedFormats(SupportedFormats.jsonFormat())\n" +
           "            .build();";
-  
+
 
   @Test
   public void testAssetExtraction4() {
diff --git a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestMarkdownTitleRemover.java b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestMarkdownTitleRemover.java
index d1a2f96b1..3bcbaeb99 100644
--- a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestMarkdownTitleRemover.java
+++ b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestMarkdownTitleRemover.java
@@ -25,78 +25,78 @@ import static org.junit.Assert.assertEquals;
 public class TestMarkdownTitleRemover {
 
   private String content = "---\n" +
-          "id: org.apache.streampipes.processor.imageclassification.image-rectifier\n" +
-          "title: Image Rectifier\n" +
-          "sidebar_label: Image Rectifier\n" +
-          "---\n" +
-          "\n" +
-          "## Image Rectifier\n" +
-          "\n" +
-          "<p align=\"center\"> \n" +
-          "    <img src=\"/img/pipeline-elements/org.apache.streampipes.processor.imageclassification.image-rectifier/icon.png\" width=\"150px;\"/>\n" +
-          "</p>\n" +
-          "\n" +
-          "***\n" +
-          "\n" +
-          "## Description\n" +
-          "\n" +
-          "Image Rectification: Rectifies  + an image\n" +
-          "Add a detailed description here\n" +
-          "\n" +
-          "***\n" +
-          "\n" +
-          "## Required input\n" +
-          "\n" +
-          "\n" +
-          "***\n" +
-          "\n" +
-          "## Configuration\n" +
-          "\n" +
-          "Describe the configuration parameters here\n" +
-          "\n" +
-          "### 1st parameter\n" +
-          "\n" +
-          "\n" +
-          "### 2nd parameter\n" +
-          "\n" +
-          "## Output";
+      "id: org.apache.streampipes.processor.imageclassification.image-rectifier\n" +
+      "title: Image Rectifier\n" +
+      "sidebar_label: Image Rectifier\n" +
+      "---\n" +
+      "\n" +
+      "## Image Rectifier\n" +
+      "\n" +
+      "<p align=\"center\"> \n" +
+      "    <img src=\"/img/pipeline-elements/org.apache.streampipes.processor.imageclassification.image-rectifier/icon.png\" width=\"150px;\"/>\n" +
+      "</p>\n" +
+      "\n" +
+      "***\n" +
+      "\n" +
+      "## Description\n" +
+      "\n" +
+      "Image Rectification: Rectifies  + an image\n" +
+      "Add a detailed description here\n" +
+      "\n" +
+      "***\n" +
+      "\n" +
+      "## Required input\n" +
+      "\n" +
+      "\n" +
+      "***\n" +
+      "\n" +
+      "## Configuration\n" +
+      "\n" +
+      "Describe the configuration parameters here\n" +
+      "\n" +
+      "### 1st parameter\n" +
+      "\n" +
+      "\n" +
+      "### 2nd parameter\n" +
+      "\n" +
+      "## Output";
 
   private String expected = "---\n" +
-          "id: org.apache.streampipes.processor.imageclassification.image-rectifier\n" +
-          "title: Image Rectifier\n" +
-          "sidebar_label: Image Rectifier\n" +
-          "---\n" +
-          "\n" +
-          "\n" +
-          "\n" +
-          "<p align=\"center\"> \n" +
-          "    <img src=\"/img/pipeline-elements/org.apache.streampipes.processor.imageclassification.image-rectifier/icon.png\" width=\"150px;\"/>\n" +
-          "</p>\n" +
-          "\n" +
-          "***\n" +
-          "\n" +
-          "## Description\n" +
-          "\n" +
-          "Image Rectification: Rectifies  + an image\n" +
-          "Add a detailed description here\n" +
-          "\n" +
-          "***\n" +
-          "\n" +
-          "## Required input\n" +
-          "\n" +
-          "\n" +
-          "***\n" +
-          "\n" +
-          "## Configuration\n" +
-          "\n" +
-          "Describe the configuration parameters here\n" +
-          "\n" +
-          "### 1st parameter\n" +
-          "\n" +
-          "\n" +
-          "### 2nd parameter\n" +
-          "\n" +
-          "## Output";
+      "id: org.apache.streampipes.processor.imageclassification.image-rectifier\n" +
+      "title: Image Rectifier\n" +
+      "sidebar_label: Image Rectifier\n" +
+      "---\n" +
+      "\n" +
+      "\n" +
+      "\n" +
+      "<p align=\"center\"> \n" +
+      "    <img src=\"/img/pipeline-elements/org.apache.streampipes.processor.imageclassification.image-rectifier/icon.png\" width=\"150px;\"/>\n" +
+      "</p>\n" +
+      "\n" +
+      "***\n" +
+      "\n" +
+      "## Description\n" +
+      "\n" +
+      "Image Rectification: Rectifies  + an image\n" +
+      "Add a detailed description here\n" +
+      "\n" +
+      "***\n" +
+      "\n" +
+      "## Required input\n" +
+      "\n" +
+      "\n" +
+      "***\n" +
+      "\n" +
+      "## Configuration\n" +
+      "\n" +
+      "Describe the configuration parameters here\n" +
+      "\n" +
+      "### 1st parameter\n" +
+      "\n" +
+      "\n" +
+      "### 2nd parameter\n" +
+      "\n" +
+      "## Output";
 
   @Test
   public void testTitleRemover() {
diff --git a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestPipelineElementOverviewGenerator.java b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestPipelineElementOverviewGenerator.java
index cb77c85bc..87e60b975 100644
--- a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestPipelineElementOverviewGenerator.java
+++ b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/generator/TestPipelineElementOverviewGenerator.java
@@ -20,6 +20,7 @@ package org.apache.streampipes.smp.generator;
 
 import org.apache.streampipes.smp.constants.PeType;
 import org.apache.streampipes.smp.model.AssetModel;
+
 import org.junit.Test;
 
 import java.util.Arrays;
@@ -34,7 +35,7 @@ public class TestPipelineElementOverviewGenerator {
   public void testHtmlGenerator() {
     am.setPeType(PeType.PROCESSOR);
     String html =
-            new PipelineElementOverviewGenerator(Arrays.asList(am)).generate();
+        new PipelineElementOverviewGenerator(Arrays.asList(am)).generate();
 
     System.out.println(html);
 
diff --git a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/parser/TestDocumentationParser.java b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/parser/TestDocumentationParser.java
index 24dbbfc9f..aeca03005 100644
--- a/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/parser/TestDocumentationParser.java
+++ b/streampipes-maven-plugin/src/test/java/org/apache/streampipes/smp/parser/TestDocumentationParser.java
@@ -18,8 +18,9 @@
 
 package org.apache.streampipes.smp.parser;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.streampipes.smp.model.AssetModel;
+
+import org.apache.commons.io.IOUtils;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -33,13 +34,13 @@ public class TestDocumentationParser {
   public void testPipelineElementNameReplacement() throws IOException {
     ClassLoader classLoader = this.getClass().getClassLoader();
     AssetModel assetModel = new AssetModel("abc", "Numerical Filter", "Numerical Filter " +
-            "Description");
+        "Description");
 
     String originalContent = IOUtils.toString(classLoader.getResourceAsStream("documentation.md"));
     String expectedContent = IOUtils.toString(classLoader.getResourceAsStream("expected.documentation.md"));
     String content =
-            new DocumentationParser(assetModel)
-                    .parseAndStoreDocumentation(originalContent);
+        new DocumentationParser(assetModel)
+            .parseAndStoreDocumentation(originalContent);
 
     assertEquals(expectedContent, content);
   }