You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by ni...@apache.org on 2019/09/30 14:56:39 UTC

[metron] branch master updated: METRON-2266 REST debug instructions (merrimanr via nickwallen) closes apache/metron#1520

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

nickallen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metron.git


The following commit(s) were added to refs/heads/master by this push:
     new eaee9f8  METRON-2266 REST debug instructions (merrimanr via nickwallen) closes apache/metron#1520
eaee9f8 is described below

commit eaee9f84f27c9fcf35cf2b0492352016b5b88b76
Author: merrimanr <me...@gmail.com>
AuthorDate: Mon Sep 30 10:56:08 2019 -0400

    METRON-2266 REST debug instructions (merrimanr via nickwallen) closes apache/metron#1520
---
 metron-interface/metron-rest/README.md             |  19 ++++++++
 metron-interface/metron-rest/pom.xml               |  49 +++++++++++++++++++++
 .../readme-images/debug-configuration.png          | Bin 0 -> 119283 bytes
 .../readme-images/debug-maven-profile.png          | Bin 0 -> 240634 bytes
 4 files changed, 68 insertions(+)

diff --git a/metron-interface/metron-rest/README.md b/metron-interface/metron-rest/README.md
index aa28260..a5b0e2e 100644
--- a/metron-interface/metron-rest/README.md
+++ b/metron-interface/metron-rest/README.md
@@ -26,6 +26,7 @@ This module provides a RESTful API for interacting with Metron.
 * [Security](#security)
 * [API](#api)
 * [Testing](#testing)
+* [Local Development](#local-development)
 
 ## Prerequisites
 
@@ -1125,6 +1126,24 @@ METRON_SPRING_OPTIONS="--kerberos.enabled=true"
 
 The metron-rest application will be available at http://node1:8082/swagger-ui.html#/.
 
+## Local Development
+
+The REST application can be run in DEBUG mode in an IDE (integrated development environment).  This can be a useful tool for development and troubleshooting issues because it enables fast iteration and breakpoints anywhere in code that runs in REST.
+The following instructions are for Intellij.
+
+1. Build Metron from the root directory with `mvn clean install -DskipTests`
+1. Spin up full dev (required to start REST locally)
+1. Create a Run/Debug Configuration in Intellij using the dropdown in the top right or the `Run > Edit Configurations...` menu item
+1. Add a `Spring Boot` Configuration and set the properties as shown in the screenshot below:
+![debug configuration](readme-images/debug-configuration.png)
+1. Using the Maven Projects tab, set check the `local-dev` profile in the `Profiles` section:
+![debug maven profile](readme-images/debug-maven-profile.png)
+1. Start the `REST` Configuration in Debug mode using the Debug button in the top right or the `Run > Debug 'REST'` menu item 
+
+The REST application should now available at `http://localhost:8080/swagger-ui.html`.
+
+Note: Some endpoints may not work correctly due to the networking setup in full dev.  This includes endpoints that connect to Kafka, HDFS and HBase.  Copying the `hbase-site.xml` file from `/etc/hbase/conf/` on full dev to `/metron-interface/metron-rest/src/main/resources` locally will suppress the Zookeeper errors on startup.
+
 ## License
 
 This project depends on the Java Transaction API.  See https://java.net/projects/jta-spec/ for more details.
diff --git a/metron-interface/metron-rest/pom.xml b/metron-interface/metron-rest/pom.xml
index c67a5d5..66dd99e 100644
--- a/metron-interface/metron-rest/pom.xml
+++ b/metron-interface/metron-rest/pom.xml
@@ -702,5 +702,54 @@
           </build>
       </profile>
 
+      <profile>
+
+          <id>local-dev</id>
+          <dependencies>
+              <dependency>
+                  <groupId>org.apache.metron</groupId>
+                  <artifactId>metron-parsers</artifactId>
+                  <version>${project.parent.version}</version>
+                  <scope>compile</scope>
+              </dependency>
+              <dependency>
+                  <groupId>org.apache.metron</groupId>
+                  <artifactId>metron-parsing-storm</artifactId>
+                  <version>${project.parent.version}</version>
+                  <scope>compile</scope>
+              </dependency>
+              <dependency>
+                  <groupId>org.apache.metron</groupId>
+                  <artifactId>metron-parsers-common</artifactId>
+                  <version>${project.parent.version}</version>
+                  <scope>compile</scope>
+              </dependency>
+              <dependency>
+                  <groupId>org.apache.metron</groupId>
+                  <artifactId>metron-indexing-common</artifactId>
+                  <version>${project.parent.version}</version>
+                  <scope>compile</scope>
+              </dependency>
+              <dependency>
+                  <groupId>org.apache.metron</groupId>
+                  <artifactId>metron-elasticsearch-common</artifactId>
+                  <version>${project.parent.version}</version>
+                  <scope>runtime</scope>
+              </dependency>
+              <dependency>
+                  <groupId>org.javassist</groupId>
+                  <artifactId>javassist</artifactId>
+                  <version>3.19.0-GA</version>
+                  <scope>compile</scope>
+              </dependency>
+              <dependency>
+                  <groupId>org.apache.metron</groupId>
+                  <artifactId>stellar-common</artifactId>
+                  <version>${project.parent.version}</version>
+                  <scope>compile</scope>
+              </dependency>
+          </dependencies>
+      </profile>
+
   </profiles>
 </project>
diff --git a/metron-interface/metron-rest/readme-images/debug-configuration.png b/metron-interface/metron-rest/readme-images/debug-configuration.png
new file mode 100644
index 0000000..ccea8e0
Binary files /dev/null and b/metron-interface/metron-rest/readme-images/debug-configuration.png differ
diff --git a/metron-interface/metron-rest/readme-images/debug-maven-profile.png b/metron-interface/metron-rest/readme-images/debug-maven-profile.png
new file mode 100644
index 0000000..29da9c5
Binary files /dev/null and b/metron-interface/metron-rest/readme-images/debug-maven-profile.png differ