You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2020/05/26 19:15:22 UTC

[incubator-streampipes] 01/03: [STREAMPIPES-140] Add feature to create adapter documentation, delete UI images from core

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

riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git

commit dff37c33ca4c75263603e761c75bebc66a00aeb9
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Sun May 24 21:31:54 2020 +0200

    [STREAMPIPES-140] Add feature to create adapter documentation, delete UI images from core
---
 .../streampipes/smp/ExtractDocumentationMojo.java  |  27 ++++----
 .../smp/extractor/ControllerFileFinder.java        |  10 +--
 .../Utils.java => extractor/ElementFinder.java}    |  35 ++++------
 .../extractor/ResourceDirectoryElementFinder.java  |  72 +++++++++++++++++++++
 .../smp/generator/DataJsonGenerator.java           |   7 +-
 .../org/apache/streampipes/smp/util/Utils.java     |   4 ++
 ui/src/assets/img/connect/coindesk.png             | Bin 17868 -> 0 bytes
 ui/src/assets/img/connect/dice.png                 | Bin 13079 -> 0 bytes
 ui/src/assets/img/connect/file.png                 | Bin 12881 -> 0 bytes
 ui/src/assets/img/connect/gdelt.png                | Bin 33450 -> 0 bytes
 ui/src/assets/img/connect/iexcloud.png             | Bin 15675 -> 0 bytes
 ui/src/assets/img/connect/influxdb.png             | Bin 9982 -> 0 bytes
 ui/src/assets/img/connect/kafka.jpg                | Bin 12955 -> 0 bytes
 ui/src/assets/img/connect/nsw.png                  | Bin 3016 -> 0 bytes
 ui/src/assets/img/connect/opc.png                  | Bin 5087 -> 0 bytes
 ui/src/assets/img/connect/pulsar.png               | Bin 22890 -> 0 bytes
 ui/src/assets/img/connect/rest.png                 | Bin 17467 -> 0 bytes
 ui/src/assets/img/connect/slack.png                | Bin 17473 -> 0 bytes
 ui/src/assets/img/connect/sql.png                  | Bin 99909 -> 0 bytes
 ui/src/assets/img/connect/wikipedia.png            | Bin 65221 -> 0 bytes
 20 files changed, 112 insertions(+), 43 deletions(-)

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 e18eda2..46f2489 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
@@ -28,7 +28,7 @@ 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.DockerImageExtractor;
+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;
@@ -86,19 +86,27 @@ public class ExtractDocumentationMojo extends AbstractMojo {
     for (MavenProject currentModule : projects) {
       File baseDir = currentModule.getBasedir();
       List<String> sourceRoots = currentModule.getCompileSourceRoots();
+      List<AssetModel> allAssetModels = new ArrayList<>();
       //String targetDir = this.project.getModel().getBuild().getDirectory();
 
-      String dockerImageName =
-              new DockerImageExtractor(baseDir.getAbsolutePath()).extractImageName();
-
-      List<AssetModel> allAssetModels = new ArrayList<>(new ControllerFileFinder(getLog(),
-              baseDir.getAbsolutePath(), sourceRoots.get(0),
-              "**/*Controller.java").makeAssetModels());
+      //String dockerImageName =
+      //        new DockerImageExtractor(baseDir.getAbsolutePath()).extractImageName();
+
+      if (currentModule.getName().equals("streampipes-connect-adapters")) {
+        System.out.println("Opening adapters");
+        allAssetModels = new ResourceDirectoryElementFinder(sourceRoots.get(0), getLog(), baseDir.getAbsolutePath())
+                .makeAssetModels();
+        allAssetModels.forEach(am -> System.out.println(am.getAppId()));
+      } else {
+        allAssetModels = new ControllerFileFinder(getLog(),
+                baseDir.getAbsolutePath(), sourceRoots.get(0),
+                "**/*Controller.java").makeAssetModels();
+      }
 
       allAssetModels.forEach(am -> {
         am.setBaseDir(baseDir.getAbsolutePath());
         am.setModuleName(currentModule.getName());
-        am.setContainerName(dockerImageName);
+        //am.setContainerName(dockerImageName);
       });
 
       List<String> finalPipelineElementsToExclude = pipelineElementsToExclude;
@@ -106,10 +114,7 @@ public class ExtractDocumentationMojo extends AbstractMojo {
               allAssetModels
                       .stream()
                       .filter(am -> finalPipelineElementsToExclude.stream().noneMatch(pe -> pe.equals(am.getAppId())))
-                      .filter(am -> new File(Utils.makePath(baseDir.getAbsolutePath(),
-                              am.getAppId())).exists())
                       .collect(Collectors.toList()));
-
     }
     try {
       Collections.sort(documentedPipelineElements);
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 274436e..53bb645 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
@@ -27,18 +27,13 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
-public class ControllerFileFinder {
+public class ControllerFileFinder extends ElementFinder {
 
-  private String sourceRoot;
   private String filterPattern;
-  private Log log;
-  private String baseDir;
 
   public ControllerFileFinder(Log log, String baseDir, String sourceRoot, String filterPattern) {
-    this.sourceRoot = sourceRoot;
+    super(sourceRoot, log, baseDir);
     this.filterPattern = filterPattern;
-    this.log = log;
-    this.baseDir = baseDir;
   }
 
   public String[] findFiles() {
@@ -50,6 +45,7 @@ public class ControllerFileFinder {
     return fileSetManager.getIncludedFiles(fileSet);
   }
 
+  @Override
   public List<AssetModel> makeAssetModels() {
     List<AssetModel> allAssetModels = new ArrayList<>();
     for (String file : findFiles()) {
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/extractor/ElementFinder.java
similarity index 52%
copy from streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/util/Utils.java
copy to streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ElementFinder.java
index 94f8b3b..9c5bc85 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/extractor/ElementFinder.java
@@ -15,33 +15,24 @@
  * limitations under the License.
  *
  */
+package org.apache.streampipes.smp.extractor;
 
-package org.apache.streampipes.smp.util;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.streampipes.smp.model.AssetModel;
 
-import java.io.File;
-import java.nio.file.Path;
-import java.nio.file.Paths;
+import java.util.List;
 
-public class Utils {
+public abstract class ElementFinder {
 
-  public static String makePath(String sourceRoot, String appId) {
-    return sourceRoot
-            + File.separator
-            + "src"
-            + File.separator
-            + "main"
-            + File.separator
-            + "resources"
-            + File.separator
-            + appId;
-  }
-
-  public static Path makeResourcePath(String sourcePath, String appId) {
-    return Paths.get(sourcePath, "src", "main", "resources", appId);
-  }
+  protected String sourceRoot;
+  protected Log log;
+  protected String baseDir;
 
-  public static String makeLocalesPath(String sourceRoot, String appId) {
-    return makePath(sourceRoot, appId) + File.separator + "strings.en";
+  public ElementFinder(String sourceRoot, Log log, String baseDir) {
+    this.sourceRoot = sourceRoot;
+    this.log = log;
+    this.baseDir = baseDir;
   }
 
+  public abstract List<AssetModel> makeAssetModels();
 }
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
new file mode 100644
index 0000000..66e5ce1
--- /dev/null
+++ b/streampipes-maven-plugin/src/main/java/org/apache/streampipes/smp/extractor/ResourceDirectoryElementFinder.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+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 java.io.File;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class ResourceDirectoryElementFinder extends ElementFinder {
+
+
+  public ResourceDirectoryElementFinder(String sourceRoot, Log log, String baseDir) {
+    super(sourceRoot, log, baseDir);
+    System.out.println(sourceRoot);
+    System.out.println(baseDir);
+  }
+
+  @Override
+  public List<AssetModel> makeAssetModels() {
+    List<AssetModel> adapterModels = new ArrayList<>();
+    Path resourceDirPath = Utils.makeResourcePath(baseDir);
+    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());
+
+      appDirs.forEach(ap -> {
+        try {
+          adapterModels.add(extractModel(baseDir, ap));
+        } catch (IOException e) {
+          e.printStackTrace();
+        }
+      });
+    }
+
+    return adapterModels;
+  }
+
+  private AssetModel extractModel(String sourceRoot, File resourceDir) throws IOException {
+    AssetModel model = new AssetModel();
+
+    model.setPeType(PeType.ADAPTER);
+    model.setAppId(resourceDir.getName());
+    return new LocalesExtractor(sourceRoot, model).extract();
+  }
+
+}
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 5b0059e..4d1dc3c 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
@@ -20,6 +20,7 @@ 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 java.util.List;
@@ -54,14 +55,14 @@ public class DataJsonGenerator extends OutputGenerator {
     entry.addProperty("type", am.getPeType().getFriendly());
     entry.addProperty("name", am.getPipelineElementName());
     entry.addProperty("description", am.getPipelineElementDescription());
-    entry.addProperty("dockerHubLink", makeDockerHubLink(am.getModuleName()));
+    entry.addProperty("dockerHubLink", makeDockerHubLink(am.getPeType(), am.getModuleName()));
     entry.addProperty("githubLink", makeGithubLink(am.getModuleName()));
 
     return entry;
   }
 
-  private String makeDockerHubLink(String moduleName) {
-    String dockerHubRepoName = moduleName.replace("streampipes-", "");
+  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;
   }
 
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 94f8b3b..92ed179 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
@@ -36,6 +36,10 @@ public class Utils {
             + appId;
   }
 
+  public static Path makeResourcePath(String sourcePath) {
+    return Paths.get(sourcePath, "src", "main", "resources");
+  }
+
   public static Path makeResourcePath(String sourcePath, String appId) {
     return Paths.get(sourcePath, "src", "main", "resources", appId);
   }
diff --git a/ui/src/assets/img/connect/coindesk.png b/ui/src/assets/img/connect/coindesk.png
deleted file mode 100644
index 420be61..0000000
Binary files a/ui/src/assets/img/connect/coindesk.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/dice.png b/ui/src/assets/img/connect/dice.png
deleted file mode 100644
index 05cc7c3..0000000
Binary files a/ui/src/assets/img/connect/dice.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/file.png b/ui/src/assets/img/connect/file.png
deleted file mode 100644
index 2b3a037..0000000
Binary files a/ui/src/assets/img/connect/file.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/gdelt.png b/ui/src/assets/img/connect/gdelt.png
deleted file mode 100644
index b9ec80c..0000000
Binary files a/ui/src/assets/img/connect/gdelt.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/iexcloud.png b/ui/src/assets/img/connect/iexcloud.png
deleted file mode 100644
index 48afa81..0000000
Binary files a/ui/src/assets/img/connect/iexcloud.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/influxdb.png b/ui/src/assets/img/connect/influxdb.png
deleted file mode 100644
index 1f9bb88..0000000
Binary files a/ui/src/assets/img/connect/influxdb.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/kafka.jpg b/ui/src/assets/img/connect/kafka.jpg
deleted file mode 100644
index e882823..0000000
Binary files a/ui/src/assets/img/connect/kafka.jpg and /dev/null differ
diff --git a/ui/src/assets/img/connect/nsw.png b/ui/src/assets/img/connect/nsw.png
deleted file mode 100644
index f9ab06c..0000000
Binary files a/ui/src/assets/img/connect/nsw.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/opc.png b/ui/src/assets/img/connect/opc.png
deleted file mode 100644
index ab68d43..0000000
Binary files a/ui/src/assets/img/connect/opc.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/pulsar.png b/ui/src/assets/img/connect/pulsar.png
deleted file mode 100644
index d1b1228..0000000
Binary files a/ui/src/assets/img/connect/pulsar.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/rest.png b/ui/src/assets/img/connect/rest.png
deleted file mode 100644
index b44424d..0000000
Binary files a/ui/src/assets/img/connect/rest.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/slack.png b/ui/src/assets/img/connect/slack.png
deleted file mode 100644
index 4a86273..0000000
Binary files a/ui/src/assets/img/connect/slack.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/sql.png b/ui/src/assets/img/connect/sql.png
deleted file mode 100644
index 084246f..0000000
Binary files a/ui/src/assets/img/connect/sql.png and /dev/null differ
diff --git a/ui/src/assets/img/connect/wikipedia.png b/ui/src/assets/img/connect/wikipedia.png
deleted file mode 100644
index 46112dc..0000000
Binary files a/ui/src/assets/img/connect/wikipedia.png and /dev/null differ