You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by th...@apache.org on 2017/03/07 06:58:30 UTC

[25/30] apex-malhar git commit: Renamed demos to examples. Packages and artifactid names are changed as suggested.

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/highlevelapi/src/test/java/org/apache/apex/malhar/stream/sample/cookbook/MaxPerKeyExamplesTest.java
----------------------------------------------------------------------
diff --git a/demos/highlevelapi/src/test/java/org/apache/apex/malhar/stream/sample/cookbook/MaxPerKeyExamplesTest.java b/demos/highlevelapi/src/test/java/org/apache/apex/malhar/stream/sample/cookbook/MaxPerKeyExamplesTest.java
deleted file mode 100644
index ec28b40..0000000
--- a/demos/highlevelapi/src/test/java/org/apache/apex/malhar/stream/sample/cookbook/MaxPerKeyExamplesTest.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * 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.apex.malhar.stream.sample.cookbook;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.Callable;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import org.apache.hadoop.conf.Configuration;
-
-import com.google.common.base.Throwables;
-
-import com.datatorrent.api.LocalMode;
-import com.datatorrent.lib.db.jdbc.JdbcTransactionalStore;
-import com.datatorrent.stram.StramLocalCluster;
-
-/**
- * Test for MaxPerKeyExamples Application.
- */
-public class MaxPerKeyExamplesTest
-{
-
-  private static final String INPUT_TUPLE_CLASS = "org.apache.apex.malhar.stream.sample.cookbook.InputPojo";
-  private static final String OUTPUT_TUPLE_CLASS = "org.apache.apex.malhar.stream.sample.cookbook.OutputPojo";
-  private static final String DB_DRIVER = "org.h2.Driver";
-  private static final String DB_URL = "jdbc:h2:~/test";
-  private static final String INPUT_TABLE = "InputTable";
-  private static final String OUTPUT_TABLE = "OutputTable";
-  private static final String USER_NAME = "root";
-  private static final String PSW = "password";
-  private static final String QUERY = "SELECT * FROM " + INPUT_TABLE + ";";
-
-  private static final double[] MEANTEMPS = {85.3, 75.4};
-
-  @BeforeClass
-  public static void setup()
-  {
-    try {
-      Class.forName(DB_DRIVER).newInstance();
-
-      Connection con = DriverManager.getConnection(DB_URL,USER_NAME,PSW);
-      Statement stmt = con.createStatement();
-
-      String createMetaTable = "CREATE TABLE IF NOT EXISTS " + JdbcTransactionalStore.DEFAULT_META_TABLE + " ( "
-          + JdbcTransactionalStore.DEFAULT_APP_ID_COL + " VARCHAR(100) NOT NULL, "
-          + JdbcTransactionalStore.DEFAULT_OPERATOR_ID_COL + " INT NOT NULL, "
-          + JdbcTransactionalStore.DEFAULT_WINDOW_COL + " BIGINT NOT NULL, "
-          + "UNIQUE (" + JdbcTransactionalStore.DEFAULT_APP_ID_COL + ", "
-          + JdbcTransactionalStore.DEFAULT_OPERATOR_ID_COL + ", " + JdbcTransactionalStore.DEFAULT_WINDOW_COL + ") "
-          + ")";
-      stmt.executeUpdate(createMetaTable);
-
-      String createInputTable = "CREATE TABLE IF NOT EXISTS " + INPUT_TABLE
-          + "(MONTH INT(2) not NULL, DAY INT(2), YEAR INT(4), MEANTEMP DOUBLE(10) )";
-      stmt.executeUpdate(createInputTable);
-
-      String createOutputTable = "CREATE TABLE IF NOT EXISTS " + OUTPUT_TABLE
-          + "(MONTH INT(2) not NULL, MEANTEMP DOUBLE(10) )";
-      stmt.executeUpdate(createOutputTable);
-
-      String cleanTable = "truncate table " + INPUT_TABLE;
-      stmt.executeUpdate(cleanTable);
-
-      stmt = con.createStatement();
-
-      String sql = "INSERT INTO " + INPUT_TABLE + " VALUES (6, 21, 2014, 85.3)";
-      stmt.executeUpdate(sql);
-      sql = "INSERT INTO " + INPUT_TABLE + " VALUES (7, 20, 2014, 75.4)";
-      stmt.executeUpdate(sql);
-      sql = "INSERT INTO " + INPUT_TABLE + " VALUES (6, 18, 2014, 45.3)";
-      stmt.executeUpdate(sql);
-
-    } catch (Throwable e) {
-      throw Throwables.propagate(e);
-    }
-  }
-
-  @AfterClass
-  public static void cleanup()
-  {
-    try {
-      Class.forName(DB_DRIVER).newInstance();
-
-      Connection con = DriverManager.getConnection(DB_URL, USER_NAME, PSW);
-      Statement stmt = con.createStatement();
-
-      String dropInputTable = "DROP TABLE " + INPUT_TABLE;
-      stmt.executeUpdate(dropInputTable);
-
-      String dropOutputTable = "DROP TABLE " + OUTPUT_TABLE;
-      stmt.executeUpdate(dropOutputTable);
-
-    } catch (Throwable e) {
-      throw Throwables.propagate(e);
-    }
-
-  }
-
-  public void setConfig(Configuration conf)
-  {
-    conf.set("dt.operator.jdbcInput.prop.store.userName", USER_NAME);
-    conf.set("dt.operator.jdbcInput.prop.store.password", PSW);
-    conf.set("dt.operator.jdbcInput.prop.store.databaseDriver", DB_DRIVER);
-    conf.set("dt.operator.jdbcInput.prop.batchSize", "5");
-    conf.set("dt.operator.jdbcInput.port.outputPort.attr.TUPLE_CLASS", INPUT_TUPLE_CLASS);
-    conf.set("dt.operator.jdbcInput.prop.store.databaseUrl", DB_URL);
-    conf.set("dt.operator.jdbcInput.prop.tableName", INPUT_TABLE);
-    conf.set("dt.operator.jdbcInput.prop.query", QUERY);
-
-    conf.set("dt.operator.jdbcOutput.prop.store.userName", USER_NAME);
-    conf.set("dt.operator.jdbcOutput.prop.store.password", PSW);
-    conf.set("dt.operator.jdbcOutput.prop.store.databaseDriver", DB_DRIVER);
-    conf.set("dt.operator.jdbcOutput.prop.batchSize", "5");
-    conf.set("dt.operator.jdbcOutput.port.input.attr.TUPLE_CLASS", OUTPUT_TUPLE_CLASS);
-    conf.set("dt.operator.jdbcOutput.prop.store.databaseUrl", DB_URL);
-    conf.set("dt.operator.jdbcOutput.prop.tablename", OUTPUT_TABLE);
-  }
-
-  public int getNumEntries()
-  {
-    Connection con;
-    try {
-      con = DriverManager.getConnection(DB_URL,USER_NAME,PSW);
-      Statement stmt = con.createStatement();
-
-      String countQuery = "SELECT count(DISTINCT (MONTH, MEANTEMP)) from " + OUTPUT_TABLE;
-      ResultSet resultSet = stmt.executeQuery(countQuery);
-      resultSet.next();
-      return resultSet.getInt(1);
-    } catch (SQLException e) {
-      throw new RuntimeException("fetching count", e);
-    }
-  }
-
-  public Map<Integer, Double> getMaxMeanTemp()
-  {
-    Map<Integer, Double> result = new HashMap<>();
-    Connection con;
-    try {
-      con = DriverManager.getConnection(DB_URL,USER_NAME,PSW);
-      Statement stmt = con.createStatement();
-
-      String countQuery = "SELECT DISTINCT * from " + OUTPUT_TABLE;
-      ResultSet resultSet = stmt.executeQuery(countQuery);
-      while (resultSet.next()) {
-        result.put(resultSet.getInt("MONTH"), resultSet.getDouble("MEANTEMP"));
-
-      }
-      return result;
-    } catch (SQLException e) {
-      throw new RuntimeException("fetching count", e);
-    }
-  }
-
-  @Test
-  public void MaxPerKeyExampleTest() throws Exception
-  {
-    LocalMode lma = LocalMode.newInstance();
-    Configuration conf = new Configuration(false);
-    setConfig(conf);
-
-    MaxPerKeyExamples app = new MaxPerKeyExamples();
-
-    lma.prepareDAG(app, conf);
-
-    LocalMode.Controller lc = lma.getController();
-    ((StramLocalCluster)lc).setExitCondition(new Callable<Boolean>()
-    {
-      @Override
-      public Boolean call() throws Exception
-      {
-        return getNumEntries() == 2;
-      }
-    });
-
-    lc.run(5000);
-
-    double[] result = new double[2];
-    result[0] = getMaxMeanTemp().get(6);
-    result[1] = getMaxMeanTemp().get(7);
-    Assert.assertArrayEquals(MEANTEMPS, result, 0.0);
-  }
-}

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/highlevelapi/src/test/resources/data/word.txt
----------------------------------------------------------------------
diff --git a/demos/highlevelapi/src/test/resources/data/word.txt b/demos/highlevelapi/src/test/resources/data/word.txt
deleted file mode 100644
index 7e28409..0000000
--- a/demos/highlevelapi/src/test/resources/data/word.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/highlevelapi/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/demos/highlevelapi/src/test/resources/log4j.properties b/demos/highlevelapi/src/test/resources/log4j.properties
deleted file mode 100644
index 592eb19..0000000
--- a/demos/highlevelapi/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# 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.
-#
-
-log4j.rootLogger=INFO,CONSOLE
-
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-log4j.appender.CONSOLE.threshold=INFO
-#log4j.appender.CONSOLE.threshold=${test.log.console.threshold}
-test.log.console.threshold=WARN
-
-log4j.appender.RFA=org.apache.log4j.RollingFileAppender
-log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
-log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-log4j.appender.RFA.File=/tmp/app.log
-
-# to enable, add SYSLOG to rootLogger
-log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
-log4j.appender.SYSLOG.syslogHost=127.0.0.1
-log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
-log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n
-log4j.appender.SYSLOG.Facility=LOCAL1
-
-#log4j.logger.org=INFO
-
-#log4j.logger.org.apache.commons.beanutils=warn
-log4j.logger.com.datatorrent=INFO
-log4j.logger.org.apache.apex=INFO

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/highlevelapi/src/test/resources/sampletweets.txt
----------------------------------------------------------------------
diff --git a/demos/highlevelapi/src/test/resources/sampletweets.txt b/demos/highlevelapi/src/test/resources/sampletweets.txt
deleted file mode 100644
index c113130..0000000
--- a/demos/highlevelapi/src/test/resources/sampletweets.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Last week, I published a blog announcing that Apex was accepted as an Apache incubator project.
-This week, I\u2019ll give you a little more detail on what Apache Apex is, and why it\u2019s important.
-
-Apache #Hadoop has been around for over a decade. It has become the de-facto big data platform,
-allowing enterprises to transform their business operations by turning big data into something useful, meaningful,
-and revenue-generating. #Hadoop promised the enablement of big data without incurring the costs you would normally think such powerful
-processing systems would demand. This tremendous promise of transforming business operations continues to fuel high growth in the industry.
-
-It all got started when Hadoop engineers at Yahoo! asked, \u201cHow can we build an efficient search indexing capability?\u201d
-The ensuing iterations and some inspiration resulted in the #MapReduce programming model. Although powerful, MapReduce wasn\u2019t perfect.
-
-Mastering MapReduce required a steep learning curve. Migrating applications to MapReduce required an almost complete rewrite.
-Equally worrisome was the fact that MapReduce had batch processing paradigm and \u201ccompute going to data\u201d at its core,
-thus posing a deterrent to Hadoop realizing its true potential.
-
-Expectedly enough, #MapReduce was an impediment that did little to bolster productization of big data.
-Not to be deterred, there were faster substitutes for MapReduce. Just like Hadoop, these models required deeper expertise, were tough to operate and difficult to master.
-As such, #Hadoop disrupted the way big data needs were handled, but remained largely under-productized.
-
-A decade after Hadoop was started, only a small percentage of big data projects are in production.
-Data is growing rapidly and the ability to harness big data has become a decisive competitive advantage.
-MapReduce impedes this demand (actually more of a scramble) to transform into a data-driven business.
-
-In hindsight, it is clear that in the early days, the subsequent success of Hadoop was not anticipated.
-If they had anticipated Hadoop\u2019s success, the question would have been, \u201cWhat can we do with massively distributed resources?\u201d
-The answer to this question, which came about soon after, was YARN (Hadoop 2.0), the next generation Hadoop.
-For the first time, #YARN brought the capability of exploring how distributed resources handling big data could perform \u201ca lot of things\u201d,
-thus going beyond the early MapReduce paradigm, and in a way beyond batch or even compute-going-to-data paradigms.
-YARN presented the capability to allow big data to not just become big in size, but broader in use cases. With its enabling capability as a Hadoop facilitator,
-YARN has pushed Hadoop towards realizing its true potential. The Hadoop predicament is similar to what
-cellphones would have been without the more popular features such as messaging and internet connectivity.
-
-
-In their early years, cellphones upset the landline market, but did not foster an immediate market furor till
-it transformed into the new-age \u201csmartphone\u201d with impressive features.
-YARN is most certainly the enabling factor for big data dreaming bigger and wider, and with it, Hadoop 2.0 is now a true de-facto distributed operating system.
-
-What\u2019s needed is bleeding edge YARN-based platforms capable of radically realizing Hadoop\u2019s potential
-
-Now is the right time to not only productize big data, but to see how setting it in motion can ensure realization of greater business goals.
-A Herculean task, this demands platforms that are easy to deploy, require nothing beyond everyday IT expertise, can effortlessly integrate with an existing IT infrastructure while ensuring ease of migration.
-The new-age Hadoop platforms need to be designed with an approach to reduce time-to-market by shortening the application lifecycle, from building to launching, thus quickening the realization of revenue for businesses.
-They will also have to reduce time for developers to develop, devOps to operationalize, and finally reduce time to insight for business.
-Platforms such as these will need to learn, adapt, and change to meet the burgeoning needs of the big data world.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/highlevelapi/src/test/resources/wordcount/word.txt
----------------------------------------------------------------------
diff --git a/demos/highlevelapi/src/test/resources/wordcount/word.txt b/demos/highlevelapi/src/test/resources/wordcount/word.txt
deleted file mode 100644
index edd0f51..0000000
--- a/demos/highlevelapi/src/test/resources/wordcount/word.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-word1 word2 word7 word9 word2 word3 word2 word4 word7 word3 word9 word9 word5 word5 word4 word2 word1 error
-bye
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/iteration/pom.xml
----------------------------------------------------------------------
diff --git a/demos/iteration/pom.xml b/demos/iteration/pom.xml
deleted file mode 100644
index 1e2fe7c..0000000
--- a/demos/iteration/pom.xml
+++ /dev/null
@@ -1,37 +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.
-
--->
-<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">
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>iteration-demo</artifactId>
-  <packaging>jar</packaging>
-
-  <name>Apache Apex Malhar Iteration Demo</name>
-  <description>DataTorrent demo applications that demonstrates the iteration feature.</description>
-
-  <parent>
-    <groupId>org.apache.apex</groupId>
-    <artifactId>malhar-demos</artifactId>
-    <version>3.7.0-SNAPSHOT</version>
-  </parent>
-
-</project>

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/iteration/src/assemble/appPackage.xml
----------------------------------------------------------------------
diff --git a/demos/iteration/src/assemble/appPackage.xml b/demos/iteration/src/assemble/appPackage.xml
deleted file mode 100644
index 4138cf2..0000000
--- a/demos/iteration/src/assemble/appPackage.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--
-
-    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.
-
--->
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-  <id>appPackage</id>
-  <formats>
-    <format>jar</format>
-  </formats>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <fileSets>
-    <fileSet>
-      <directory>${basedir}/target/</directory>
-      <outputDirectory>/app</outputDirectory>
-      <includes>
-        <include>${project.artifactId}-${project.version}.jar</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/target/deps</directory>
-      <outputDirectory>/lib</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/src/site/conf</directory>
-      <outputDirectory>/conf</outputDirectory>
-      <includes>
-        <include>*.xml</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/src/main/resources/META-INF</directory>
-      <outputDirectory>/META-INF</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/src/main/resources/app</directory>
-      <outputDirectory>/app</outputDirectory>
-    </fileSet>
-  </fileSets>
-
-</assembly>
-

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/iteration/src/main/java/com/datatorrent/demos/iteration/Application.java
----------------------------------------------------------------------
diff --git a/demos/iteration/src/main/java/com/datatorrent/demos/iteration/Application.java b/demos/iteration/src/main/java/com/datatorrent/demos/iteration/Application.java
deleted file mode 100644
index 7fbdfd1..0000000
--- a/demos/iteration/src/main/java/com/datatorrent/demos/iteration/Application.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * 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 com.datatorrent.demos.iteration;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.hadoop.conf.Configuration;
-
-import com.datatorrent.api.Context;
-import com.datatorrent.api.DAG;
-import com.datatorrent.api.DefaultInputPort;
-import com.datatorrent.api.DefaultOutputPort;
-import com.datatorrent.api.StreamingApplication;
-import com.datatorrent.api.annotation.ApplicationAnnotation;
-import com.datatorrent.common.util.BaseOperator;
-import com.datatorrent.common.util.DefaultDelayOperator;
-import com.datatorrent.lib.testbench.RandomEventGenerator;
-
-/**
- * Iteration demo : <br>
- *
- * <pre>
- * LocalMode.runApp(new Application(), 600000); // 10 min run
- * </pre>
- *
- * Run Success : <br>
- * For successful deployment and run, user should see the Fibonacci sequence, something like the
- * following output on the console:
- *
- * <pre>
- * 1
- * 1
- * 2
- * 3
- * 5
- * 8
- * 13
- * 21
- * 34
- * 55
- * ...
- * </pre>
- *
- *
- * @since 3.4.0
- */
-@ApplicationAnnotation(name = "IterationDemo")
-public class Application implements StreamingApplication
-{
-  private static final Logger LOG = LoggerFactory.getLogger(Application.class);
-  private String extraOutputFileName; // for unit test
-
-  public static class FibonacciOperator extends BaseOperator
-  {
-    public long currentNumber = 1;
-    private transient long tempNum;
-    public transient DefaultInputPort<Object> dummyInputPort = new DefaultInputPort<Object>()
-    {
-      @Override
-      public void process(Object tuple)
-      {
-      }
-    };
-    public transient DefaultInputPort<Long> input = new DefaultInputPort<Long>()
-    {
-      @Override
-      public void process(Long tuple)
-      {
-        tempNum = (currentNumber == 1) ? 1 : tuple;
-      }
-    };
-    public transient DefaultOutputPort<Long> output = new DefaultOutputPort<>();
-
-
-    @Override
-    public void endWindow()
-    {
-      output.emit(currentNumber);
-      currentNumber += tempNum;
-      if (currentNumber <= 0) {
-        currentNumber = 1;
-      }
-    }
-  }
-
-  public static class StdoutOperator extends BaseOperator
-  {
-    private String extraOutputFileName; // for unit test
-    private transient PrintStream extraOutputStream;
-    /**
-     * This is the input port which receives the tuples that will be written to stdout.
-     */
-    public final transient DefaultInputPort<Object> input = new DefaultInputPort<Object>()
-    {
-      @Override
-      @SuppressWarnings("UseOfSystemOutOrSystemErr")
-      public void process(Object t)
-      {
-        String s = t.toString();
-        LOG.info(s);
-        if (extraOutputStream != null) {
-          extraOutputStream.println(s);
-        }
-      }
-    };
-
-    @Override
-    public void setup(Context.OperatorContext context)
-    {
-      if (extraOutputFileName != null) {
-        try {
-          extraOutputStream = new PrintStream(new FileOutputStream(extraOutputFileName), true);
-        } catch (IOException ex) {
-          throw new RuntimeException(ex);
-        }
-      }
-    }
-
-    @Override
-    public void teardown()
-    {
-      extraOutputStream.close();
-    }
-
-    public void setExtraOutputFileName(String fileName)
-    {
-      this.extraOutputFileName = fileName;
-    }
-  }
-
-  public void setExtraOutputFileName(String fileName)
-  {
-    this.extraOutputFileName = fileName;
-  }
-
-  @Override
-  public void populateDAG(DAG dag, Configuration conf)
-  {
-    RandomEventGenerator rand = dag.addOperator("rand", new RandomEventGenerator());
-    FibonacciOperator fib = dag.addOperator("FIB", FibonacciOperator.class);
-    DefaultDelayOperator opDelay = dag.addOperator("opDelay", DefaultDelayOperator.class);
-    StdoutOperator console = new StdoutOperator();
-    console.setExtraOutputFileName(extraOutputFileName);
-    dag.addOperator("console", console);
-    dag.addStream("dummy_to_operator", rand.integer_data, fib.dummyInputPort);
-    dag.addStream("operator_to_delay", fib.output, opDelay.input, console.input);
-    dag.addStream("delay_to_operator", opDelay.output, fib.input);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/iteration/src/main/java/com/datatorrent/demos/iteration/package-info.java
----------------------------------------------------------------------
diff --git a/demos/iteration/src/main/java/com/datatorrent/demos/iteration/package-info.java b/demos/iteration/src/main/java/com/datatorrent/demos/iteration/package-info.java
deleted file mode 100644
index d0b62ea..0000000
--- a/demos/iteration/src/main/java/com/datatorrent/demos/iteration/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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.
- */
-/**
- * Iteration demonstration application.
- */
-package com.datatorrent.demos.iteration;

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/iteration/src/main/resources/META-INF/properties.xml
----------------------------------------------------------------------
diff --git a/demos/iteration/src/main/resources/META-INF/properties.xml b/demos/iteration/src/main/resources/META-INF/properties.xml
deleted file mode 100644
index 5212b91..0000000
--- a/demos/iteration/src/main/resources/META-INF/properties.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-
-    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.
-
--->
-<configuration>
-  <!-- Memory settings for all demos -->
-  <property>
-    <name>dt.attr.MASTER_MEMORY_MB</name>
-    <value>512</value>
-  </property>
-  <property>
-    <name>dt.attr.DEBUG</name>
-    <value>true</value>
-  </property>
-  <property>
-    <name>dt.application.*.operator.*.attr.MEMORY_MB</name>
-    <value>128</value>
-  </property>
-  <property>
-    <name>dt.application.*.operator.*.attr.JVM_OPTIONS</name>
-    <value>-Xmx128M</value>
-  </property>
-  <property>
-    <name>dt.application.*.operator.*.port.*.attr.BUFFER_MEMORY_MB</name>
-    <value>128</value>
-  </property>
-
-</configuration>

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/iteration/src/test/java/com/datatorrent/demos/iteration/ApplicationTest.java
----------------------------------------------------------------------
diff --git a/demos/iteration/src/test/java/com/datatorrent/demos/iteration/ApplicationTest.java b/demos/iteration/src/test/java/com/datatorrent/demos/iteration/ApplicationTest.java
deleted file mode 100644
index 9fb89ac..0000000
--- a/demos/iteration/src/test/java/com/datatorrent/demos/iteration/ApplicationTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * 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 com.datatorrent.demos.iteration;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import org.apache.hadoop.conf.Configuration;
-
-import com.datatorrent.api.LocalMode;
-
-/**
- *
- */
-public class ApplicationTest
-{
-  @Test
-  public void testIterationApp() throws Exception
-  {
-    LocalMode lma = LocalMode.newInstance();
-    Configuration conf = new Configuration(false);
-    Application app = new Application();
-    String outputFileName = "target/output.txt";
-    long timeout = 10 * 1000; // 10 seconds
-
-    new File(outputFileName).delete();
-    app.setExtraOutputFileName(outputFileName);
-    lma.prepareDAG(app, conf);
-    LocalMode.Controller lc = lma.getController();
-    lc.runAsync();
-
-    long startTime = System.currentTimeMillis();
-    do {
-      try {
-        Thread.sleep(500);
-      } catch (InterruptedException ex) {
-        break;
-      }
-      File file = new File(outputFileName);
-      if (file.length() > 50) {
-        break;
-      }
-    }
-    while (System.currentTimeMillis() - startTime < timeout);
-
-    lc.shutdown();
-    try (BufferedReader br = new BufferedReader(new FileReader(outputFileName))) {
-      Assert.assertEquals("1", br.readLine());
-      Assert.assertEquals("1", br.readLine());
-      Assert.assertEquals("2", br.readLine());
-      Assert.assertEquals("3", br.readLine());
-      Assert.assertEquals("5", br.readLine());
-      Assert.assertEquals("8", br.readLine());
-      Assert.assertEquals("13", br.readLine());
-      Assert.assertEquals("21", br.readLine());
-      Assert.assertEquals("34", br.readLine());
-      Assert.assertEquals("55", br.readLine());
-      Assert.assertEquals("89", br.readLine());
-      Assert.assertEquals("144", br.readLine());
-      Assert.assertEquals("233", br.readLine());
-      Assert.assertEquals("377", br.readLine());
-      Assert.assertEquals("610", br.readLine());
-      Assert.assertEquals("987", br.readLine());
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/iteration/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/demos/iteration/src/test/resources/log4j.properties b/demos/iteration/src/test/resources/log4j.properties
deleted file mode 100644
index cf0d19e..0000000
--- a/demos/iteration/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# 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.
-#
-
-log4j.rootLogger=DEBUG,CONSOLE
-
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-log4j.appender.CONSOLE.threshold=${test.log.console.threshold}
-test.log.console.threshold=DEBUG
-
-log4j.appender.RFA=org.apache.log4j.RollingFileAppender
-log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
-log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-log4j.appender.RFA.File=/tmp/app.log
-
-# to enable, add SYSLOG to rootLogger
-log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
-log4j.appender.SYSLOG.syslogHost=127.0.0.1
-log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
-log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n
-log4j.appender.SYSLOG.Facility=LOCAL1
-
-log4j.logger.org=info
-#log4j.logger.org.apache.commons.beanutils=warn
-log4j.logger.com.datatorrent=debug
-log4j.logger.org.apache.apex=debug

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/machinedata/pom.xml
----------------------------------------------------------------------
diff --git a/demos/machinedata/pom.xml b/demos/machinedata/pom.xml
deleted file mode 100644
index 5d5bac2..0000000
--- a/demos/machinedata/pom.xml
+++ /dev/null
@@ -1,66 +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.
-
--->
-<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">
-  <modelVersion>4.0.0</modelVersion>
-  
-  <artifactId>machinedata-demo</artifactId>
-  <packaging>jar</packaging>
-
-  <name>Apache Apex Malhar MachineData Demo</name>
-  <description></description>
-
-  <parent>
-    <groupId>org.apache.apex</groupId>
-    <artifactId>malhar-demos</artifactId>
-    <version>3.7.0-SNAPSHOT</version>
-  </parent>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.apex</groupId>
-      <artifactId>malhar-contrib</artifactId>
-      <version>${project.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>*</groupId>
-          <artifactId>*</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>redis.clients</groupId>
-      <artifactId>jedis</artifactId>
-      <version>2.5.1</version>
-    </dependency>
-    <dependency>
-      <groupId>javax.mail</groupId>
-      <artifactId>javax.mail-api</artifactId>
-      <version>1.5.2</version>
-    </dependency>
-    <dependency>
-      <groupId>com.sun.mail</groupId>
-      <artifactId>javax.mail</artifactId>
-      <version>1.5.2</version>
-    </dependency>
-  </dependencies>
-
-</project>

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/machinedata/src/assemble/appPackage.xml
----------------------------------------------------------------------
diff --git a/demos/machinedata/src/assemble/appPackage.xml b/demos/machinedata/src/assemble/appPackage.xml
deleted file mode 100644
index 4138cf2..0000000
--- a/demos/machinedata/src/assemble/appPackage.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--
-
-    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.
-
--->
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-  <id>appPackage</id>
-  <formats>
-    <format>jar</format>
-  </formats>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <fileSets>
-    <fileSet>
-      <directory>${basedir}/target/</directory>
-      <outputDirectory>/app</outputDirectory>
-      <includes>
-        <include>${project.artifactId}-${project.version}.jar</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/target/deps</directory>
-      <outputDirectory>/lib</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/src/site/conf</directory>
-      <outputDirectory>/conf</outputDirectory>
-      <includes>
-        <include>*.xml</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/src/main/resources/META-INF</directory>
-      <outputDirectory>/META-INF</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/src/main/resources/app</directory>
-      <outputDirectory>/app</outputDirectory>
-    </fileSet>
-  </fileSets>
-
-</assembly>
-

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/machinedata/src/main/html/global.js
----------------------------------------------------------------------
diff --git a/demos/machinedata/src/main/html/global.js b/demos/machinedata/src/main/html/global.js
deleted file mode 100644
index 753f58f..0000000
--- a/demos/machinedata/src/main/html/global.js
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * 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.
- */
-/**
- * Declaration and initialization for global variables.
- */
-
-// url parameters   
-var params;
-
-// Data Points 
-var aggrData; 
-var aggrDataPoints;
-var contData;
-var contDataPoints;
-
-// CPU data table 
-var cpuTable;
-var cpuChart; 
-var cpuView;
-
-// ram data table 
-var ramTable;
-var ramChart; 
-var ramView;  
-
-// hdd data table 
-var hddTable;
-var hddChart; 
-var hddView;  
-
-// chart options
-var chartOptions;
-
-// Date formatter  
-var dateFormatter;
-
-// window look back value 
-var lookback;
-var aggrLookBack;
-var contLookBack;
-var contRefresh;
-
-// Get split query string
-function QueryString() {
-  var query_string = {};
-  var query = window.location.search.substring(1);
-  return query;
-}
-function SplitQuery(query)
-{  
-	var params = {};
-	var vars = query.split("&");
-	for (var i=0;i<vars.length;i++)
-	{
-		var pair = vars[i].split("=");
-		if(pair.length == 2) 
-		{
-			params[pair[0]] = pair[1];
-		}
-	}
-	return params;
-}  
-
-// Initialize global variable(s)
-function InitializeGlobal()
-{
-  // Initialize params  
-  params = SplitQuery(QueryString()); 
-       
-  // Initialize data points 
-  aggrDataPoints = new Array();
-  contDataPoints = new Array();
-    
-  // Initialize cpu table 
-  cpuTable = new google.visualization.DataTable(); 
-  cpuTable.addColumn('datetime', 'Time');
-  cpuTable.addColumn('number', 'CPU');
-  chartOptions = { width: 600, height: 300, legend: 'none', pointSize: 0, lineWidth : 1 };
-  cpuChart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
-  cpuView = new google.visualization.DataView(cpuTable);
-
-  // Initialize ram table 
-  ramTable = new google.visualization.DataTable(); 
-  ramTable.addColumn('datetime', 'Time');
-  ramTable.addColumn('number', 'RAM');;
-  ramChart = new google.visualization.ScatterChart(document.getElementById('chart1_div'));
-  ramView = new google.visualization.DataView(ramTable);
-
-  // Initialize hdd table 
-  hddTable = new google.visualization.DataTable(); 
-  hddTable.addColumn('datetime', 'Time');
-  hddTable.addColumn('number', 'HDD');;
-  hddChart = new google.visualization.ScatterChart(document.getElementById('chart2_div'));
-  hddView = new google.visualization.DataView(hddTable);
-    
-  // get lookback value  
-  lookback = (new Date().getTime()/1000) - 3600*6;
-  if (params['lookback'] && (params['lookback'].length > 0)) lookback = (new Date().getTime()/1000) - (3600*(parseInt(params['lookback'])));
-  aggrLookBack = lookback;
-     
-  // get continuos lookback 
-  contLookBack = lookback;
-  contRefresh = 5;
-
-  // get param lookback  
-  paramLookBack = 6;
-  if (params['lookback'] && (params['lookback'].length > 0)) paramLookBack = parseInt(params['lookback']);
-  //if (params['refresh'] && (params['refresh'].length > 0)) contRefresh = parseInt(params['refresh']);
-}
-
-
-/**
- * Function to create fetch urls from given parameters
- */
-function DataUrl() 
-{       
-    var url = "json.php?bucket=m";
-    url += "&customer=";
-    if (params['customer'])
-    {	
-      url += params['customer'];
-    }
-    url += "&product=";
-    if (params['product'])
-    {	
-      url += params['product'];
-    }
-    url += "&os=";
-    if (params['os'])
-    {	
-      url += params['os'];
-    }
-    url += "&software1=";
-    if (params['software1'])
-    {
-      url += params['software1'];
-    }
-    url += "&software2=";
-    if (params['software2'])
-    {
-      url += params['software2'];
-    }
-    url += "&software3=";
-    if (params['software3'])
-    {
-      url += params['software3'];
-    }
-     url += "&from=";
-    url += Math.floor(lookback);
-    return url;   
-}
-
-/**
- * Creates data table with time stamp and cpu values.
- * Draw line chart for time vs cpu.
- */
-function DrawCPUChart()
-{
-  // create/delete rows 
-  if (cpuTable.getNumberOfRows() < aggrDataPoints.length)
-  {    
-    var numRows = aggrDataPoints.length - cpuTable.getNumberOfRows();
-    cpuTable.addRows(numRows);
-  } else {
-    for(var i=(cpuTable.getNumberOfRows()-1); i >= aggrDataPoints.length; i--)
-    {
-      cpuTable.removeRow(i);    
-    }
-  }
-    
-  // Populate data table with time/cpu data points. 
-  for(var i=0; i < cpuTable.getNumberOfRows(); i++)
-  {
-    //if(parseFloat(aggrDataPoints[i].cpu) < 500) continue;
-    cpuTable.setCell(i, 0, new Date(parseInt(aggrDataPoints[i].timestamp)));
-    cpuTable.setCell(i, 1, parseFloat(aggrDataPoints[i].cpu));
-  }
-
-  // Draw line chart.
-  chartOptions.title = 'CPU Usage (%)';
-  cpuChart.draw(cpuView, chartOptions); 
-}     
-
-/**
- * Creates data table with time stamp and revenu values.
- * Draw line chart for time vs ram.
- */
-function DrawRAMChart()
-{
-  // create/delete rows 
-  if (ramTable.getNumberOfRows() < aggrDataPoints.length)
-  {    
-    var numRows = aggrDataPoints.length - ramTable.getNumberOfRows();
-    ramTable.addRows(numRows);
-  } else {
-    for(var i=(ramTable.getNumberOfRows()-1); i >= aggrDataPoints.length; i--)
-    {
-      ramTable.removeRow(i);    
-    }
-  }
-
-  // Populate data table with time/ram data points. 
-  for(var i=0; i < ramTable.getNumberOfRows(); i++)
-  {
-    ramTable.setCell(i, 0, new Date(parseInt(aggrDataPoints[i].timestamp)));
-    ramTable.setCell(i, 1, parseFloat(aggrDataPoints[i].ram));
-  }
-
-  // Draw line chart.
-  chartOptions.title = 'RAM Usage (%)';
-  ramChart.draw(ramView, chartOptions); 
-}  
-
-/**
- * Creates data table with time stamp and hdd values.
- * Draw line chart for time vs hdd.
- */
-function DrawHDDChart()
-{
-  // create/delete rows 
-  if (hddTable.getNumberOfRows() < aggrDataPoints.length)
-  {    
-    var numRows = aggrDataPoints.length - hddTable.getNumberOfRows();
-    hddTable.addRows(numRows);
-  } else {
-    for(var i=(hddTable.getNumberOfRows()-1); i >= aggrDataPoints.length; i--)
-    {
-      hddTable.removeRow(i);    
-    }
-  }
-
-  // Populate data table with time/hdd data points. 
-  for(var i=0; i < hddTable.getNumberOfRows(); i++)
-  {
-    hddTable.setCell(i, 0, new Date(parseInt(aggrDataPoints[i].timestamp)));
-    hddTable.setCell(i, 1, parseInt(aggrDataPoints[i].hdd));
-  }
-
-  // Draw line chart.
-  chartOptions.title = 'HDD Usage (%)';
-  hddChart.draw(hddView, chartOptions); 
-}
-
-/**
- * Sort json array  
- */
-function sortByKey(array, key) {
-    return array.sort(function(a, b) {
-        var x = a[key]; var y = b[key];
-        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
-    });
-}
-

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/machinedata/src/main/html/index.php
----------------------------------------------------------------------
diff --git a/demos/machinedata/src/main/html/index.php b/demos/machinedata/src/main/html/index.php
deleted file mode 100644
index 6b93570..0000000
--- a/demos/machinedata/src/main/html/index.php
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * 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.
- */
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Machine Generated Data Demo </title>
-
-<link rel="stylesheet" type="text/css" href="malhar.css">
-
-<!-- Google charts include -->
-<script type="text/javascript" src="https://www.google.com/jsapi"></script>
-<script type="text/javascript">
-google.load('visualization', '1', {'packages':['corechart']});
-</script>
-
-<!-- Malhar charting utils -->
-<script type="text/javascript" src="global.js"></script>
-
-<!-- window onload -->
-<script type="text/javascript">
-
-function DrawAggrCharts()
-{
-  // get refresh url 
-  lookback = aggrLookBack; 
-  var url = DataUrl();        
-
-  // fetch data, draw charts
-  try
-  {
-    var connect = new XMLHttpRequest();
-    connect.onreadystatechange = function() {
-      if(connect.readyState==4 && connect.status==200) {
-
-console.log(url);
-        aggrData = connect.response;
-        var pts = JSON.parse(aggrData);
-        aggrDataPoints = new Array();
-        for(var i=0; i <  pts.length; i++) aggrDataPoints.push(pts[i]);
-        DrawCPUChart();
-        DrawRAMChart();
-        DrawHDDChart();
-        //DrawImpressionsChart();
-        delete aggrData;
-      }
-    }
-    connect.open('GET',  url, true);
-    connect.send(null);
-  } catch(e) {
-  }
-  aggrLookBack += 30;
-}
-
-function DrawContCharts()  
-{    
-  // get refresh url 
-  lookback = contLookBack; 
-  var url = DataUrl();    
-  //document.getElementById('chart_div').innerHTML = url;
-
-  // fetch data, draw charts
-  try
-  {
-    var connect = new XMLHttpRequest();
-    connect.onreadystatechange = function() {
-      if(connect.readyState==4 && connect.status==200) {
-        contData = connect.response;   
-        var newPts = JSON.parse(contData); 
-        contDataPoints = new Array();
-        for(var i=0; i <  newPts.length; i++) contDataPoints.push(newPts[i]);
-        DrawCtrChart() ;
-        DrawMarginChart();
-        delete contData;
-        delete newPts;
-      }
-    }
-    connect.open('GET',  url, true);
-    connect.send(null);
-  } catch(e) {
-  }
-  contLookBack += contRefresh;
-}
-
-window.onload = function() {
-
-  // Initialize global 
-  InitializeGlobal();   
-
-  // Inituialize form fields  
-  if (params['customer']) document.getElementById('customer').value = params['customer'];
-  if (params['product']) document.getElementById('product').value = params['product'];
-  if (params['os']) document.getElementById('os').value = params['os'];
-  if (params['software1']) document.getElementById('software1').value = params['software1'];
-  if (params['software2']) document.getElementById('software2').value = params['software2'];
-  if (params['software3']) document.getElementById('software3').value = params['software3'];
-  if (params['refresh'])
-  {
-    document.getElementById('refresh').value = params['refresh'];   
-  } else {
-    document.getElementById('refresh').value = 5;
-  }    
-  if (params['lookback'])
-  {
-    document.getElementById('lookback').value = params['lookback'];   
-  } else {
-    document.getElementById('lookback').value = 6;
-  }
-       
-  // draw charts 
-  DrawAggrCharts();
-  //DrawContCharts();
-  setInterval(DrawAggrCharts, 30000);
-  //setInterval(DrawContCharts, contRefresh * 1000);
-};
-
-</script>
-
-</head>
-<body>
-
-    <div id="header">
-        <ul class="dashboard-modes">
-            <li>
-                <a href="#" class="active">Machine Generated Data Demo </a>
-            </li>
-        </ul>
-
-    </div>
-	
-	<div id="main">
-    <div id="pagecontent">
-        <div class="dashboardMgr">
-            <div class="inner" style="">
-                <h2 class="title">View Real Time Data Charts</h2> 
-                <form method="GET" action="index.php">
-                    
-                    <label for="customer">Customer ID:</label>
-                    <select name="customer" id="customer" style="width:200px;">
-                  		<option value="">ALL</option>
-                		<?php
-                   			for ($i = 1; $i <= 5; $i++) {
-                  				print "<option value=\"$i\">Customer $i</option>\n";
-                			}
-                		?>
-             		</select>
-             		
-            		<label for="">Product ID:</label>
-            		<select name="product" id="product" style="width:200px;">
-              		    <option value="">ALL</option>
-                		<?php
-                			for ($i = 4; $i <= 6; $i++) {
-                  				print "<option value=\"$i\">Product $i</option>\n";
-                			}
-                		?>
-            		</select>
-        		
-        		    <label for="">Product OS:</label>
-            		<select name="os" id="os" style="width:200px;">
-              		    <option value="">ALL</option>
-        		        <?php
-                			for ($i = 10; $i <= 12; $i++) {
-                  				print "<option value=\"$i\">OS $i</option>\n";
-                			}
-        	            ?>
-            		</select>
-            		
-                    <label for="software1">Software1 Ver:</label>
-                    <select name="software1" id="software1" style="width:200px;">
-                  		<option value="">ALL</option>
-                		<?php
-                   			for ($i = 10; $i <= 12; $i++) {
-                  				print "<option value=\"$i\">Software1 Version $i</option>\n";
-                			}
-                		?>
-             		</select>
-
-                    <label for="software2">Software2 Ver:</label>
-                    <select name="software2" id="software2" style="width:200px;">
-                  		<option value="">ALL</option>
-                		<?php
-                   			for ($i = 12; $i <= 14; $i++) {
-                  				print "<option value=\"$i\">Software2 Version $i</option>\n";
-                			}
-                		?>
-             		</select>
-
-                    <label for="software3">Software3 Ver:</label>
-                    <select name="software3" id="software3" style="width:200px;">
-                  		<option value="">ALL</option>
-                		<?php
-                   			for ($i = 4; $i <= 6; $i++) {
-                  				print "<option value=\"$i\">Software3 Version $i</option>\n";
-                			}
-                		?>
-             		</select>
-
-            		<label for="">Refresh Interval:</label>
-            		<div class="input-append">
-                        <input type="text" name="refresh" id="refresh" class="input-small"/>
-                        <span class="add-on">Secs</span>
-                    </div>
-                    
-
-        		    <label for="">Look Back:</label>
-        		    <div class="input-append">
-                        <input type="text" name="lookback" id="lookback" class="input-small"/>
-                        <span class="add-on">Hours</span>
-                    </div>
-                    
-                    <input type="submit" value="submit" class="btn btn-primary" />
-                    
-                </form>
-            </div>
-            <div class="collapser-container">
-                <div class="collapser">
-                    <div class="collapse-dot"></div>
-                    <div class="collapse-dot"></div>
-                    <div class="collapse-dot"></div>
-                </div>
-            </div>
-        </div>
-        <div class="dashboardMain">
-            
-	<!-- <table><tbody>
-                <tr>
-        	      <td><div id="chart_div"></div></td>	
-        	      <td><div id="chart1_div" ></div></td>	
-                 </tr>
-                 <tr>
-        	     <td><div id="chart2_div" ></div></td>	
-        	     <td><div id="chart3_div" ></div></td>
-                 </tr>
-                 <tr>
-        	   <td><div id="chart4_div" ></div></td>	
-        	    <td><div id="chart5_div" ></div></td>	
-                 </tr>
-        	 </tr></tbody></table> -->
-    	<div class="chart-ctnr" id="chart_div"></div>
-        <div class="chart-ctnr" id="chart1_div" ></div>	
-        <div class="chart-ctnr" id="chart2_div" ></div>	
-<!--        <div class="chart-ctnr" id="chart3_div" ></div>
-        <div class="chart-ctnr" id="chart4_div" ></div>	
-        <div class="chart-ctnr" id="chart5_div" ></div> -->
-        </div>		
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/apex-malhar/blob/d5bf96ca/demos/machinedata/src/main/html/json.php
----------------------------------------------------------------------
diff --git a/demos/machinedata/src/main/html/json.php b/demos/machinedata/src/main/html/json.php
deleted file mode 100644
index 75a7117..0000000
--- a/demos/machinedata/src/main/html/json.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-/*
- * 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.
- */
-header("Content-type: application/json");
-$redis = new Redis();
-$redis->connect('localhost');
-$redis->select(15);
-$from = $_GET['from'];
-$bucket = $_GET['bucket'];
-$customer = $_GET['customer'];
-$product = $_GET['product'];
-$os = $_GET['os'];
-$software1 = $_GET['software1'];
-$software2 = $_GET['software2'];
-$software3 = $_GET['software3'];
-
-switch ($bucket) {
-case 'D':
-  $format = 'Ymd';
-  $incr = 60 * 60 * 24;
-  break;
-case 'h':
-  $format = 'YmdH';
-  $incr = 60 * 60;
-  break;
-case 'm':
-  $format = 'YmdHi';
-  $incr = 60;
-  break;
-default:
-  break;
-}
-
-$arr = array();
-if ($customer != '') {
-  $arr[] = "0:".$customer;
-} 
-if ($product != '') {
-  $arr[] = "1:".$product;
-} 
-if ($os != '') {
-  $arr[] = "2:".$os;
-} 
-if ($software1 != '') {
-  $arr[] = "3:".$software1;
-} 
-if ($software2 != '') {
-  $arr[] = "4:".$software2;
-} 
-if ($software3 != '') {
-  $arr[] = "5:".$software3;
-} 
-$subpattern = "";
-if (count($arr) != 0) {
-  $subpattern = join("|", $arr);
-}
-
-$result = array();
-
-while ($from < time()) {
-  $date = gmdate($format, $from);
-  if ($subpattern != '') {
-    $key = $bucket . '|' . $date . '|' . $subpattern;
-  } else {
-    $key = $bucket . '|' . $date ;
-  }
-  $hash = $redis->hGetAll($key);
-  if ($hash) {
-    $cpu = $hash['cpu'];
-    $ram = $hash['ram'];
-    $hdd = $hash['hdd'];
-    $result[] = array('timestamp'=> $from * 1000, 'cpu'=>$cpu, 'ram'=>$ram, 'hdd'=>$hdd);
-  }
-  $from += $incr;
-}
-
-array_pop($result);
-print json_encode($result);
-
-?>