You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2016/07/27 10:49:52 UTC
incubator-eagle git commit: [EAGLE-398] Refine example application
for developer to easily know how to create a new app
Repository: incubator-eagle
Updated Branches:
refs/heads/develop c017fe4cd -> 8777936d2
[EAGLE-398] Refine example application for developer to easily know how to create a new app
https://issues.apache.org/jira/browse/EAGLE-398
Author: Hao Chen <ha...@apache.org>
Closes #279 from haoch/fix-example-app.
Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/8777936d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/8777936d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/8777936d
Branch: refs/heads/develop
Commit: 8777936d2edfd02ff55f3f7cd6a9caa78b8c74bd
Parents: c017fe4
Author: Hao Chen <ha...@apache.org>
Authored: Wed Jul 27 18:49:38 2016 +0800
Committer: Hao Chen <ha...@apache.org>
Committed: Wed Jul 27 18:49:38 2016 +0800
----------------------------------------------------------------------
.../app/spi/AbstractApplicationProvider.java | 2 +-
.../app/example/ExampleApplicationProvider.java | 33 +-----
.../example/ExampleApplicationProvider2.java | 33 +++++-
.../resources/ExampleApplicationMetadata.xml | 109 -------------------
.../META-INF/apps/example/metadata.xml | 2 +-
5 files changed, 35 insertions(+), 144 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/8777936d/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/AbstractApplicationProvider.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/AbstractApplicationProvider.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/AbstractApplicationProvider.java
index 37311eb..4cb4367 100644
--- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/AbstractApplicationProvider.java
+++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/AbstractApplicationProvider.java
@@ -47,7 +47,7 @@ public abstract class AbstractApplicationProvider<T extends Application> impleme
protected void configure (){
// do nothing by default
}
-
+�
protected AbstractApplicationProvider(String applicationDescConfig) {
this();
ApplicationProviderDescConfig descWrapperConfig = ApplicationProviderDescConfig.loadFromXML(applicationDescConfig);
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/8777936d/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider.java
----------------------------------------------------------------------
diff --git a/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider.java b/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider.java
index 5949853..0efc7e1 100644
--- a/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider.java
+++ b/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider.java
@@ -16,43 +16,14 @@
*/
package org.apache.eagle.app.example;
-import org.apache.eagle.alert.engine.coordinator.StreamColumn;
-import org.apache.eagle.alert.engine.coordinator.StreamDefinition;
import org.apache.eagle.app.spi.AbstractApplicationProvider;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
/**
* Define application provider programmatically
*/
public class ExampleApplicationProvider extends AbstractApplicationProvider<ExampleApplication> {
- @Override
- protected void configure() {
- setType("EXAMPLE_APPLICATION");
- setName("Example Monitoring Application");
- setVersion("0.5.0-incubating");
- setAppClass(ExampleApplication.class);
- setViewPath("/apps/example");
- setAppConfig("ExampleApplicationConf.xml");
- setStreams(Arrays.asList(createSampleStreamDefinition("SAMPLE_STREAM_1"), createSampleStreamDefinition("SAMPLE_STREAM_2")));
- }
-
- private static StreamDefinition createSampleStreamDefinition(String streamId){
- StreamDefinition sampleStreamDefinition = new StreamDefinition();
- sampleStreamDefinition.setStreamId(streamId);
- sampleStreamDefinition.setTimeseries(true);
- sampleStreamDefinition.setValidate(true);
- sampleStreamDefinition.setDescription("Auto generated sample Schema for "+streamId);
- List<StreamColumn> streamColumns = new ArrayList<>();
-
- streamColumns.add(new StreamColumn.Builder().name("metric").type(StreamColumn.Type.STRING).build());
- streamColumns.add(new StreamColumn.Builder().name("source").type(StreamColumn.Type.STRING).build());
- streamColumns.add(new StreamColumn.Builder().name("timestamp").type(StreamColumn.Type.LONG).build());
- streamColumns.add(new StreamColumn.Builder().name("value").type(StreamColumn.Type.DOUBLE).build());
- sampleStreamDefinition.setColumns(streamColumns);
- return sampleStreamDefinition;
+ public ExampleApplicationProvider() {
+ super("/META-INF/apps/example/metadata.xml");
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/8777936d/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider2.java
----------------------------------------------------------------------
diff --git a/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider2.java b/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider2.java
index ca5a69b..b11aa37 100644
--- a/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider2.java
+++ b/eagle-examples/eagle-app-example/src/main/java/org/apache/eagle/app/example/ExampleApplicationProvider2.java
@@ -16,14 +16,43 @@
*/
package org.apache.eagle.app.example;
+import org.apache.eagle.alert.engine.coordinator.StreamColumn;
+import org.apache.eagle.alert.engine.coordinator.StreamDefinition;
import org.apache.eagle.app.spi.AbstractApplicationProvider;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
/**
* Define application provider with metadata.xml
*/
public class ExampleApplicationProvider2 extends AbstractApplicationProvider<ExampleApplication> {
- public ExampleApplicationProvider2() {
- super("/META-INF/apps/example/metadata.xml");
+ @Override
+ protected void configure() {
+ setType("EXAMPLE_APPLICATION_2");
+ setName("Example Monitoring Application 2");
+ setVersion("0.5.0-incubating");
+ setAppClass(ExampleApplication.class);
+ setViewPath("/apps/example");
+ setAppConfig("ExampleApplicationConf.xml");
+ setStreams(Arrays.asList(createSampleStreamDefinition("SAMPLE_STREAM_1"), createSampleStreamDefinition("SAMPLE_STREAM_2")));
+ }
+
+ private static StreamDefinition createSampleStreamDefinition(String streamId){
+ StreamDefinition sampleStreamDefinition = new StreamDefinition();
+ sampleStreamDefinition.setStreamId(streamId);
+ sampleStreamDefinition.setTimeseries(true);
+ sampleStreamDefinition.setValidate(true);
+ sampleStreamDefinition.setDescription("Auto generated sample Schema for "+streamId);
+ List<StreamColumn> streamColumns = new ArrayList<>();
+
+ streamColumns.add(new StreamColumn.Builder().name("metric").type(StreamColumn.Type.STRING).build());
+ streamColumns.add(new StreamColumn.Builder().name("source").type(StreamColumn.Type.STRING).build());
+ streamColumns.add(new StreamColumn.Builder().name("timestamp").type(StreamColumn.Type.LONG).build());
+ streamColumns.add(new StreamColumn.Builder().name("value").type(StreamColumn.Type.DOUBLE).build());
+ sampleStreamDefinition.setColumns(streamColumns);
+ return sampleStreamDefinition;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/8777936d/eagle-examples/eagle-app-example/src/main/resources/ExampleApplicationMetadata.xml
----------------------------------------------------------------------
diff --git a/eagle-examples/eagle-app-example/src/main/resources/ExampleApplicationMetadata.xml b/eagle-examples/eagle-app-example/src/main/resources/ExampleApplicationMetadata.xml
deleted file mode 100644
index 0e5536c..0000000
--- a/eagle-examples/eagle-app-example/src/main/resources/ExampleApplicationMetadata.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- ~ 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.
- -->
-
-<application>
- <type>EXAMPLE_APPLICATION_2</type>
- <name>Example Monitoring Application</name>
- <version>0.5.0-incubating</version>
- <appClass>org.apache.eagle.app.example.ExampleApplication</appClass>
- <viewPath>/apps/example</viewPath>
- <configuration>
- <property>
- <name>message</name>
- <displayName>Message</displayName>
- <value>Hello, example application!</value>
- <description>Just an sample configuration property</description>
- </property>
- </configuration>
- <streams>
- <stream>
- <streamId>SAMPLE_STREAM_1</streamId>
- <description>Sample output stream #1</description>
- <validate>true</validate>
- <timeseries>true</timeseries>
- <columns>
- <column>
- <name>metric</name>
- <type>string</type>
- </column>
- <column>
- <name>source</name>
- <type>string</type>
- </column>
- <column>
- <name>value</name>
- <type>double</type>
- <defaultValue>0.0</defaultValue>
- </column>
- </columns>
- </stream>
- <stream>
- <streamId>SAMPLE_STREAM_2</streamId>
- <description>Sample output stream #2</description>
- <validate>true</validate>
- <timeseries>true</timeseries>
- <columns>
- <column>
- <name>metric</name>
- <type>string</type>
- </column>
- <column>
- <name>source</name>
- <type>string</type>
- </column>
- <column>
- <name>value</name>
- <type>double</type>
- <defaultValue>0.0</defaultValue>
- </column>
- </columns>
- </stream>
- </streams>
- <docs>
- <install>
-# Step 1: Create source kafka topic named "${site}_example_source_topic"
-
-./bin/kafka-topics.sh --create --topic example_source_topic --replication-factor 1 --replication 1
-
-# Step 2: Set up data collector to flow data into kafka topic in
-
-./bin/logstash -f log_collector.conf
-
-## `log_collector.conf` sample as following:
-
-input {
-
-}
-filter {
-
-}
-output{
-
-}
-
-# Step 3: start application
-
-# Step 4: monitor with featured portal or alert with policies
- </install>
- <uninstall>
-# Step 1: stop and uninstall application
-# Step 2: delete kafka topic named "${site}_example_source_topic"
-# Step 3: stop logstash
- </uninstall>
- </docs>
-</application>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/8777936d/eagle-examples/eagle-app-example/src/main/resources/META-INF/apps/example/metadata.xml
----------------------------------------------------------------------
diff --git a/eagle-examples/eagle-app-example/src/main/resources/META-INF/apps/example/metadata.xml b/eagle-examples/eagle-app-example/src/main/resources/META-INF/apps/example/metadata.xml
index 0e5536c..b6a8569 100644
--- a/eagle-examples/eagle-app-example/src/main/resources/META-INF/apps/example/metadata.xml
+++ b/eagle-examples/eagle-app-example/src/main/resources/META-INF/apps/example/metadata.xml
@@ -17,7 +17,7 @@
-->
<application>
- <type>EXAMPLE_APPLICATION_2</type>
+ <type>EXAMPLE_APPLICATION</type>
<name>Example Monitoring Application</name>
<version>0.5.0-incubating</version>
<appClass>org.apache.eagle.app.example.ExampleApplication</appClass>