Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A9847200B13 for ; Wed, 1 Jun 2016 07:56:25 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id A8508160A48; Wed, 1 Jun 2016 05:56:25 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 55DD1160A41 for ; Wed, 1 Jun 2016 07:56:24 +0200 (CEST) Received: (qmail 76444 invoked by uid 500); 1 Jun 2016 05:56:23 -0000 Mailing-List: contact commits-help@eagle.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@eagle.incubator.apache.org Delivered-To: mailing list commits@eagle.incubator.apache.org Received: (qmail 76435 invoked by uid 99); 1 Jun 2016 05:56:23 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2016 05:56:23 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 253C51A5804 for ; Wed, 1 Jun 2016 05:56:23 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id jWG4zwz4qxQQ for ; Wed, 1 Jun 2016 05:56:17 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with SMTP id 1BD265F560 for ; Wed, 1 Jun 2016 05:56:16 +0000 (UTC) Received: (qmail 76333 invoked by uid 99); 1 Jun 2016 05:56:16 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2016 05:56:16 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 40FACDFE61; Wed, 1 Jun 2016 05:56:16 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ralphsu@apache.org To: commits@eagle.incubator.apache.org Date: Wed, 01 Jun 2016 05:56:17 -0000 Message-Id: <0e4b92b92f084dfcb6f49809d046d50d@git.apache.org> In-Reply-To: <255f27474f434d698401997b0858d9f6@git.apache.org> References: <255f27474f434d698401997b0858d9f6@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [02/19] incubator-eagle git commit: EAGLE-324: Init branch-v0.5 archived-at: Wed, 01 Jun 2016 05:56:25 -0000 http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/75a8265c/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/java/org/apache/eagle/service/alert/resource/impl/MongoImplTest.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/java/org/apache/eagle/service/alert/resource/impl/MongoImplTest.java b/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/java/org/apache/eagle/service/alert/resource/impl/MongoImplTest.java new file mode 100644 index 0000000..16b53d4 --- /dev/null +++ b/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/java/org/apache/eagle/service/alert/resource/impl/MongoImplTest.java @@ -0,0 +1,187 @@ +/* + * 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.eagle.service.alert.resource.impl; + +import java.util.Date; +import java.util.List; + +import org.apache.eagle.alert.coordination.model.Kafka2TupleMetadata; +import org.apache.eagle.alert.coordination.model.ScheduleState; +import org.apache.eagle.alert.coordination.model.internal.PolicyAssignment; +import org.apache.eagle.alert.coordination.model.internal.Topology; +import org.apache.eagle.alert.engine.coordinator.PolicyDefinition; +import org.apache.eagle.alert.engine.coordinator.Publishment; +import org.apache.eagle.alert.engine.coordinator.PublishmentType; +import org.apache.eagle.alert.engine.coordinator.StreamingCluster; +import org.apache.eagle.alert.metadata.impl.MongoMetadataDaoImpl; +import org.apache.eagle.alert.metadata.resource.IMetadataDao; +import org.apache.eagle.alert.metadata.resource.OpResult; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.typesafe.config.Config; +import com.typesafe.config.ConfigFactory; + +import de.flapdoodle.embed.mongo.MongodExecutable; +import de.flapdoodle.embed.mongo.MongodProcess; +import de.flapdoodle.embed.mongo.MongodStarter; +import de.flapdoodle.embed.mongo.config.MongodConfigBuilder; +import de.flapdoodle.embed.mongo.config.Net; +import de.flapdoodle.embed.mongo.distribution.Version; +import de.flapdoodle.embed.process.runtime.Network; + +/** + * @since May 1, 2016 + * + */ +public class MongoImplTest { + private static Logger LOG = LoggerFactory.getLogger(MongoImplTest.class); + static IMetadataDao dao; + + private static MongodExecutable mongodExe; + private static MongodProcess mongod; + + public static void before() { + try { + MongodStarter starter = MongodStarter.getDefaultInstance(); + mongodExe = starter.prepare(new MongodConfigBuilder().version(Version.V3_2_1) + .net(new Net(27017, Network.localhostIsIPv6())).build()); + mongod = mongodExe.start(); + } catch (Exception e) { + LOG.error("start embed mongod failed, assume some external mongo running. continue run test!", e); + } + } + + @BeforeClass + public static void setup() { + before(); + + System.setProperty("config.resource", "/application-mongo.conf"); + ConfigFactory.invalidateCaches(); + Config config = ConfigFactory.load().getConfig("datastore"); + dao = new MongoMetadataDaoImpl(config); + + } + + @AfterClass + public static void teardown() { + if (mongod != null) { + mongod.stop(); + mongodExe.stop(); + } + } + + private String TOPO_NAME = "topoName"; + + @Test + public void test_apis() { + // topology + { + OpResult result = dao.addTopology(new Topology(TOPO_NAME, 3, 5)); + System.out.println(result.message); + Assert.assertEquals(200, result.code); + List topos = dao.listTopologies(); + Assert.assertEquals(1, topos.size()); + + result = dao.addTopology(new Topology(TOPO_NAME + "-new", 3, 5)); + topos = dao.listTopologies(); + Assert.assertEquals(2, topos.size()); + // add again: replace existing one + result = dao.addTopology(new Topology(TOPO_NAME, 4, 5)); + topos = dao.listTopologies(); + Assert.assertEquals(2, topos.size()); + Assert.assertEquals(TOPO_NAME, topos.get(0).getName()); + Assert.assertEquals(4, topos.get(0).getNumOfGroupBolt()); + } + // assignment + { + PolicyAssignment assignment = new PolicyAssignment(); + assignment.setPolicyName("policy1"); + OpResult result = dao.addAssignment(assignment); + Assert.assertEquals(200, result.code); + List assigns = dao.listAssignments(); + Assert.assertEquals(1, assigns.size()); + } + // cluster + { + StreamingCluster cluster = new StreamingCluster(); + cluster.setName("dd"); + OpResult result = dao.addCluster(cluster); + Assert.assertEquals(200, result.code); + List assigns = dao.listClusters(); + Assert.assertEquals(1, assigns.size()); + } + // data source + { + Kafka2TupleMetadata dataSource = new Kafka2TupleMetadata(); + dataSource.setName("ds"); + OpResult result = dao.addDataSource(dataSource); + Assert.assertEquals(200, result.code); + List assigns = dao.listDataSources(); + Assert.assertEquals(1, assigns.size()); + } + // policy + { + PolicyDefinition policy = new PolicyDefinition(); + policy.setName("ds"); + OpResult result = dao.addPolicy(policy); + Assert.assertEquals(200, result.code); + List assigns = dao.listPolicies(); + Assert.assertEquals(1, assigns.size()); + } + // publishment + { + Publishment publishment = new Publishment(); + publishment.setName("pub-"); + OpResult result = dao.addPublishment(publishment); + Assert.assertEquals(200, result.code); + List assigns = dao.listPublishment(); + Assert.assertEquals(1, assigns.size()); + } + // publishment + { + PublishmentType publishmentType = new PublishmentType(); + publishmentType.setType("KAFKA"); + OpResult result = dao.addPublishmentType(publishmentType); + Assert.assertEquals(200, result.code); + List assigns = dao.listPublishmentType(); + Assert.assertEquals(1, assigns.size()); + } + } + + private void test_addstate() { + ScheduleState state = new ScheduleState(); + state.setVersion("state-" + System.currentTimeMillis()); + state.setGenerateTime(String.valueOf(new Date().getTime())); + OpResult result = dao.addScheduleState(state); + Assert.assertEquals(200, result.code); + } + + @Test + public void test_readCurrentState() { + test_addstate(); + ScheduleState state = dao.getScheduleState(); + Assert.assertNotNull(state); + + System.out.println(state.getVersion()); + System.out.println(state.getGenerateTime()); + } +} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/75a8265c/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf b/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf new file mode 100644 index 0000000..20461c8 --- /dev/null +++ b/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf @@ -0,0 +1,6 @@ +{ + "datastore": { + "metadataDao": "org.apache.eagle.service.alert.resource.impl.InMemMetadataDaoImpl", + "connection": "localhost:27017" + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/75a8265c/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/policy-sample.json ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/policy-sample.json b/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/policy-sample.json new file mode 100644 index 0000000..56a53e7 --- /dev/null +++ b/eagle-core/eagle-alert/alert/alert-metadata-parent/alert-metadata/src/test/resources/policy-sample.json @@ -0,0 +1,32 @@ +{ + "name": "policy1", + "description": "test policy", + "inputStreams": [ + "in-stream-1", + "in-stream-2" + ], + "outputStreams": [ + "out-stream-1" + ], + "definition": { + "type": "siddhiCEPEngine", + "value": "select count(*) from in-stream-1" + }, + "partitionSpec": [ + { + "streamId": "in-stream-1", + "type": "GROUPBY", + "columns": [ + "col-1", + "col-2" + ], + "sortSpec": { + "column": "col-1", + "windowPeriod": "60", + "order": "asc", + "windowMargin": 30000 + } + } + ], + "parallelismHint": 2 +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/75a8265c/eagle-core/eagle-alert/alert/alert-metadata-parent/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/alert/alert-metadata-parent/pom.xml b/eagle-core/eagle-alert/alert/alert-metadata-parent/pom.xml new file mode 100644 index 0000000..e9e3534 --- /dev/null +++ b/eagle-core/eagle-alert/alert/alert-metadata-parent/pom.xml @@ -0,0 +1,29 @@ + + + + 4.0.0 + + + org.apache.eagle + alert-parent + 0.0.1-SNAPSHOT + + alert-metadata-parent + pom + + + alert-metadata + alert-metadata-service + + http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/75a8265c/eagle-core/eagle-alert/alert/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/alert/pom.xml b/eagle-core/eagle-alert/alert/pom.xml new file mode 100644 index 0000000..9d2c845 --- /dev/null +++ b/eagle-core/eagle-alert/alert/pom.xml @@ -0,0 +1,387 @@ + + + + 4.0.0 + + org.apache.eagle + alert-parent + 0.0.1-SNAPSHOT + pom + + + alert-common + alert-engine + alert-metadata-parent + alert-coordinator + alert-assembly + alert-devtools + + + + + 1.8 + + + UTF-8 + 2.0.2 + + + 4.12 + + + 1.2.1 + 19.0 + 3.3.2 + 3.2.1 + 2.6 + 0.6.1 + 3.1.0 + 3.0.0-M6 + + + 3.0.5 + + + 1.7 + 1.4 + + + 2.4.5 + 1.9.13 + 2.4.5 + 1.9.13 + + + 0.9.3 + 0.9.3.2.2.0.0-2041 + 0.8.2.0 + 0.8.1.2.2.0.0-2041 + kafka_2.10 + 0.3 + 1.7.20 + 1.7.20 + 1.1.7 + + + 1.19.1 + + + + + 9.2.3.v20140905 + 7.0.55 + 1.5.8 + 2.8.0 + 3.2.2 + 1.10.19 + 2.2 + 2.2.0 + + + + + Maven Central Repository + http://central.maven.org/maven2/ + + + HDP Release Repository + http://repo.hortonworks.com/content/repositories/releases/ + + + HDP Central Repository + http://repo.hortonworks.com/content/repositories/central/ + + + WSO2 Public + http://maven.wso2.org/nexus/content/groups/wso2-public + + + + + + + com.fasterxml.jackson.core + jackson-core + ${fastxml.version} + + + com.fasterxml.jackson.core + jackson-databind + ${fastxml.version} + + + javax.mail + mail + ${javax.mail.version} + + + org.apache.velocity + velocity + ${velocity.version} + + + org.mockito + mockito-all + ${mockito.version} + + + org.apache.curator + curator-framework + ${curator-framework.version} + + + org.apache.curator + curator-recipes + ${curator-framework.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${fasterxml-jackson.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + commons-collections + commons-collections + ${commons-collections.version} + + + commons-lang + commons-lang + ${commons-lang.version} + + + junit + junit + ${junit.version} + test + + + com.fasterxml.jackson.core + jackson-databind + ${fasterxml-jackson.version} + + + org.apache.storm + storm-kafka + ${storm-kafka.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j-log4j12.veresion} + + + org.apache.storm + storm-core + ${storm.version} + + + org.slf4j + log4j-over-slf4j + + + org.apache.logging.log4j + log4j-slf4j-impl + + + ch.qos.logback + logback-classic + + + + + org.apache.kafka + ${kafka.artifact.id} + ${kafka.version} + + + org.sfl4j + slf4j-log4j + + + + + com.sun.jersey + jersey-client + ${jersey.version} + + + org.codehaus.jackson + jackson-jaxrs + ${codehaus-jackson.version} + + + org.codehaus.jackson + jackson-xc + ${codehaus-jackson.version} + + + org.codehaus.jackson + jackson-mapper-asl + ${codehaus-jackson.version} + + + com.typesafe + config + ${typesafe-config.version} + + + com.netflix.archaius + archaius-core + ${archaius.version} + + + io.dropwizard.metrics + metrics-core + ${metrics.version} + + + io.dropwizard.metrics + metrics-jvm + ${metrics.version} + + + org.wso2.siddhi + siddhi-core + ${siddhi.version} + + + org.slf4j + slf4j-simple + + + + + org.wso2.siddhi + siddhi-query-api + ${siddhi.version} + + + org.wso2.siddhi + siddhi-query-compiler + ${siddhi.version} + + + org.wso2.siddhi + siddhi-extension-regex + ${siddhi.version} + + + org.wso2.siddhi + siddhi-extension-string + ${siddhi.version} + + + org.apache.kafka + kafka-clients + ${kafka-clients.version} + + + + org.slf4j + slf4j-log4j12 + + + + + com.101tec + zkclient + ${zkclient.version} + + + com.sun.jersey + jersey-server + ${jersey.version} + + + com.sun.jersey + jersey-servlet + ${jersey.version} + + + com.sun.jersey.contribs + jersey-multipart + ${jersey.version} + + + org.apache.tomcat.embed + tomcat-embed-core + ${tomcat-embed.version} + + + com.google.guava + guava + ${guava.version} + + + org.slf4j + slf4j-api + ${slf4j-api.veresion} + + + + + + + + io.swagger + swagger-jaxrs + ${swagger.version} + + + org.mapdb + mapdb + ${mapdb.version} + + + joda-time + joda-time + ${joda.version} + + + + org.elasticsearch + metrics-elasticsearch-reporter + ${metrics-elasticsearch-reporter.version} + + + + + + + + + maven-compiler-plugin + ${maven-compiler.version} + + ${java.version} + ${java.version} + UTF-8 + 2048m + true + + + + org.eclipse.jetty + jetty-maven-plugin + ${jetty.version} + + + + +